@import "https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap";:root{color:#1e293b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--blue-700:#1d4ed8;--blue-600:#2563eb;--blue-500:#3b82f6;--green-600:#16a34a;--amber-600:#d97706;--red-600:#dc2626;--slate-900:#0f172a;--slate-700:#334155;--slate-500:#64748b;--slate-200:#e2e8f0;--white:#fff;background:#f8fafc;font-family:Roboto,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(#2563eb1a,#2563eb00 22rem),#f8fafc;min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}.dashboard-shell{width:min(100%,72rem);margin:0 auto;padding:1rem}.page-shell{width:min(100%,56rem);margin:0 auto;padding:1rem}.dashboard-header{gap:1rem;padding:1.25rem 0 1.5rem;display:grid}.dashboard-header h1,.page-header h1,.section-heading h2{color:var(--slate-900);letter-spacing:0;margin:0}.dashboard-header h1,.page-header h1{font-size:2.5rem;line-height:.95}.page-header{padding:1.25rem 0 1.5rem}.header-copy,.page-header>p:not(.eyebrow){max-width:34rem;color:var(--slate-700);margin:.75rem 0 0;font-size:1.0625rem;line-height:1.55}.eyebrow{color:var(--blue-700);letter-spacing:0;text-transform:uppercase;margin:0 0 .35rem;font-size:.78rem;font-weight:700}.header-status{color:#166534;background:#16a34a1a;border:1px solid #16a34a4d;border-radius:999px;align-self:start;align-items:center;gap:.55rem;width:fit-content;padding:.55rem .8rem;font-weight:700;display:inline-flex}.status-dot{background:var(--green-600);border-radius:999px;width:.65rem;height:.65rem;box-shadow:0 0 0 .25rem #16a34a29}.summary-section,.feed-section{padding:1rem 0 1.5rem}.section-heading{margin-bottom:.85rem}.section-heading h2{font-size:1.35rem}.summary-grid{gap:.75rem;display:grid}.summary-card,.feed-item{border:1px solid var(--slate-200);background:#ffffffeb;border-radius:8px;box-shadow:0 .75rem 2rem #0f172a0f}.summary-card{border-left:.35rem solid var(--blue-500);padding:1rem}.summary-card--steady{border-left-color:var(--green-600)}.summary-card--attention{border-left-color:var(--amber-600)}.summary-card--active{border-left-color:var(--blue-600)}.summary-label{color:var(--slate-500);font-size:.85rem;font-weight:700;display:block}.summary-card strong{color:var(--slate-900);margin-top:.45rem;font-size:1.65rem;line-height:1.1;display:block}.summary-card p,.feed-item p{color:var(--slate-700);margin:.45rem 0 0;line-height:1.5}.feed-list{gap:.75rem;display:grid}.list-panel,.notes-panel{border:1px solid var(--slate-200);background:#ffffffeb;border-radius:8px;padding:1rem;box-shadow:0 .75rem 2rem #0f172a0f}.list-panel h2,.notes-panel h2{color:var(--slate-900);letter-spacing:0;margin:0 0 1rem;font-size:1.35rem}.visit-list{gap:.75rem;display:grid}.feed-item,.visit-card{grid-template-columns:4.5rem 1fr;gap:.9rem;padding:1rem;display:grid}.visit-card{border:1px solid var(--slate-200);border-left:.35rem solid var(--blue-600);background:var(--white);border-radius:8px}.feed-item time,.visit-card time{color:var(--slate-500);font-size:.85rem;font-weight:700}.feed-item h3,.visit-card h3{color:var(--slate-900);margin:0;font-size:1rem}.visit-card p{color:var(--slate-700);margin:.45rem 0 0}.notes-panel label{color:var(--slate-700);margin-bottom:.5rem;font-weight:700;display:block}.notes-panel textarea{resize:vertical;border:1px solid var(--slate-200);width:100%;min-height:12rem;color:var(--slate-900);background:var(--white);border-radius:8px;padding:.85rem}.visit-notes-shell{width:min(100%,72rem);margin:0 auto;padding:.85rem .85rem 6rem}.handoff-shell{width:min(100%,68rem);margin:0 auto;padding:.85rem .85rem 4rem}.compliance-shell{width:min(100%,76rem);margin:0 auto;padding:.85rem .85rem 4rem}.visit-notes-header{gap:1rem;display:grid}.handoff-view{gap:.9rem;display:grid}.handoff-header{gap:1rem;display:grid}.compliance-header{gap:1rem;padding:1.25rem 0 1.5rem;display:grid}.compliance-header h1{color:var(--slate-900);letter-spacing:0;margin:0;font-size:2.5rem;line-height:.95}.compliance-header-actions{align-self:start;gap:.65rem;width:min(100%,18rem);display:grid}.compliance-export-panel,.compliance-export-actions{gap:.55rem;display:grid}.compliance-export-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.compliance-export-status{color:var(--slate-700);margin:0;font-weight:700}.compliance-identity{background:#eff6ff;border:1px solid #2563eb38;border-radius:8px;gap:.25rem;padding:.75rem .9rem;display:grid}.compliance-identity span{overflow-wrap:anywhere;color:var(--slate-900);font-weight:700}.compliance-identity strong{overflow-wrap:anywhere;color:#1e40af;font-size:.85rem}.compliance-filter-panel,.compliance-table-panel{border:1px solid var(--slate-200);background:#fffffff0;border-radius:8px;padding:1rem;box-shadow:0 .75rem 2rem #0f172a0f}.compliance-filter-panel{gap:1rem;margin-bottom:1rem;display:grid}.compliance-filter-grid{gap:.75rem;display:grid}.compliance-filter-grid label{color:var(--slate-700);gap:.45rem;font-weight:700;display:grid}.compliance-filter-grid input,.compliance-filter-grid select{border:1px solid var(--slate-200);background:var(--white);width:100%;min-height:2.75rem;color:var(--slate-900);border-radius:8px;padding:.65rem .75rem}.compliance-filter-actions,.compliance-pagination{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.compliance-table-panel{gap:.85rem;display:grid;overflow:hidden}.compliance-table-scroll{width:100%;overflow-x:auto}.compliance-table{border-collapse:collapse;width:100%;min-width:58rem}.compliance-table th,.compliance-table td{border-top:1px solid var(--slate-200);text-align:left;vertical-align:top;padding:.8rem}.compliance-table th{color:var(--slate-500);text-transform:uppercase;font-size:.78rem}.compliance-table td{color:var(--slate-900)}.compliance-table time{color:var(--slate-700);font-weight:700}.compliance-table code{white-space:normal;overflow-wrap:anywhere;color:var(--slate-700)}.compliance-pagination{border-top:1px solid var(--slate-200);justify-content:space-between;padding-top:.85rem}.compliance-pagination span{color:var(--slate-700);font-weight:700}.compliance-denied{margin-top:1rem}.handoff-header-actions{align-self:start;gap:.65rem;width:min(100%,18rem);display:grid}.handoff-download-action{width:100%}.handoff-generated{color:#1e40af;background:#eff6ff;border:1px solid #2563eb38;border-radius:8px;align-self:start;gap:.25rem;width:100%;padding:.75rem .9rem;display:grid}.handoff-generated span{color:var(--slate-700);text-transform:uppercase;font-size:.78rem;font-weight:700}.handoff-generated strong{color:var(--slate-900)}.handoff-overview-grid{gap:.75rem;display:grid}.handoff-metric-card,.handoff-section{border:1px solid var(--slate-200);background:#fffffff0;border-radius:8px;box-shadow:0 .75rem 2rem #0f172a0f}.handoff-metric-card{border-left:.35rem solid var(--blue-600);min-height:9rem;padding:1rem}.handoff-metric-card--success{border-left-color:var(--green-600)}.handoff-metric-card--active{border-left-color:var(--blue-500)}.handoff-metric-card--warning{border-left-color:var(--amber-600)}.handoff-metric-card strong{color:var(--slate-900);margin-top:.45rem;font-size:2rem;line-height:1;display:block}.handoff-metric-card p{color:var(--slate-700);margin:.5rem 0 0;line-height:1.45}.handoff-section-stack{gap:.85rem;display:grid}.handoff-section{overflow:hidden}.handoff-section-heading{justify-content:space-between;align-items:start;gap:1rem;padding:1rem;display:flex}.handoff-section-heading h2{color:var(--slate-900);letter-spacing:0;margin:0;font-size:1.2rem}.handoff-section-heading p{color:var(--slate-700);margin:.3rem 0 0}.handoff-section-heading>span{color:#047857;background:#ecfdf5;border-radius:999px;justify-content:center;min-width:2.25rem;padding:.3rem .65rem;font-weight:700;display:inline-flex}.handoff-section .empty-state{margin:0 1rem 1rem}.handoff-entry-list{display:grid}.handoff-entry{border-top:1px solid var(--slate-200);grid-template-columns:4.75rem minmax(0,1fr);gap:.85rem;padding:1rem;display:grid}.handoff-entry time{color:var(--slate-500);font-size:.85rem;font-weight:700}.handoff-entry h3{color:var(--slate-900);letter-spacing:0;margin:0;font-size:1rem}.handoff-entry p{color:var(--slate-700);margin:.45rem 0 0;line-height:1.5}.handoff-entry-meta{flex-wrap:wrap;gap:.4rem;margin-top:.65rem;display:flex}.handoff-entry-meta span{color:var(--slate-700);background:#f1f5f9;border-radius:999px;padding:.28rem .55rem;font-size:.78rem;font-weight:700}.handoff-entry-warning{color:#92400e;font-weight:700}.handoff-error{margin-top:.25rem}.handoff-skeleton{gap:.85rem;display:grid}.handoff-skeleton-card,.handoff-skeleton-section{border:1px solid var(--slate-200);background:#ffffffe6;border-radius:8px;box-shadow:0 .75rem 2rem #0f172a0a}.handoff-skeleton-card{gap:.7rem;min-height:9rem;padding:1rem;display:grid}.handoff-skeleton-section{gap:.75rem;padding:1rem;display:grid}.handoff-skeleton-card span,.handoff-skeleton-card strong,.handoff-skeleton-card p,.handoff-skeleton-section span,.handoff-skeleton-section p{background:linear-gradient(90deg,#e2e8f0,#f8fafc,#e2e8f0) 0 0/200% 100%;border-radius:999px;animation:1.4s ease-in-out infinite skeleton-shimmer;display:block;overflow:hidden}.handoff-skeleton-card span{width:5.5rem;height:.85rem}.handoff-skeleton-card strong{width:3rem;height:2rem}.handoff-skeleton-card p,.handoff-skeleton-section p{width:100%;height:.85rem}.handoff-skeleton-section span{width:11rem;height:1.25rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.offline-indicator{color:#92400e;background:#fffbeb;border:1px solid #d9770659;border-radius:999px;align-items:center;width:fit-content;padding:.55rem .8rem;font-weight:700;display:inline-flex}.recorder-panel,.notes-list-panel,.note-detail-panel,.upload-status{border:1px solid var(--slate-200);background:#fffffff0;border-radius:8px;box-shadow:0 .75rem 2rem #0f172a0f}.recorder-panel{gap:1rem;padding:1rem;display:grid}.recorder-heading,.panel-heading-row,.upload-status{justify-content:space-between;align-items:center;gap:1rem;display:flex}.recorder-heading h2,.notes-list-panel h2,.note-detail-panel h2,.transcript-panel h3,.structured-form h3{color:var(--slate-900);letter-spacing:0;margin:0}.recording-timer{color:#3730a3;text-align:center;background:#eef2ff;border-radius:8px;min-width:4.2rem;padding:.5rem .65rem;font-weight:700}.waveform-canvas{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;width:100%;height:8.5rem}.recorder-controls,.form-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.recorder-controls{z-index:2;background:#fffffffa;border:1px solid #e2e8f0e6;border-radius:8px;padding:.65rem;position:sticky;bottom:.75rem;box-shadow:0 .75rem 2rem #0f172a1f}button{border:1px solid var(--slate-200);background:var(--white);min-height:2.75rem;color:var(--slate-900);cursor:pointer;border-radius:8px;padding:.65rem .85rem;font-weight:700;transition:border-color .18s,background .18s,color .18s,transform .18s}button:hover:not(:disabled){border-color:var(--blue-500);transform:translateY(-1px)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #2563eb40}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.62}.primary-action{border-color:var(--blue-600);background:var(--blue-600);color:var(--white)}.quiet-action{color:var(--slate-700)}.upload-status{margin-top:.85rem;padding:.85rem 1rem}.upload-status p,.panel-heading-row p,.empty-state p,.transcript-panel p{color:var(--slate-700);margin:.35rem 0 0;line-height:1.5}.upload-status progress{width:min(11rem,42vw);height:.85rem;accent-color:var(--blue-600)}.upload-status--error{background:#fef2f2;border-color:#dc262659}.notes-workspace{gap:.85rem;margin-top:.85rem;display:grid}.notes-list-panel,.note-detail-panel{padding:1rem}.panel-heading-row{margin-bottom:.85rem}.panel-heading-row>span{color:#047857;background:#ecfdf5;border-radius:999px;justify-content:center;min-width:2rem;padding:.25rem .55rem;font-weight:700;display:inline-flex}.visit-note-list{gap:.55rem;display:grid}.visit-note-row{text-align:left;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;width:100%;min-height:4.25rem;display:grid}.visit-note-row strong,.visit-note-row small{display:block}.visit-note-row small{color:var(--slate-500);margin-top:.25rem}.visit-note-row--selected{border-color:var(--blue-600);background:#eff6ff}.status-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:.3rem .6rem;font-size:.78rem;font-weight:700;display:inline-flex}.status-badge--draft{color:#334155;background:#f1f5f9}.status-badge--processing{color:#92400e;background:#fef3c7}.status-badge--ready{color:#166534;background:#dcfce7}.status-badge--failed{color:#991b1b;background:#fee2e2}.empty-state{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;padding:1rem}.empty-state--error,.inline-error{color:#991b1b}.empty-state--error{background:#fef2f2;border-color:#dc262659}.state-action{margin-top:.75rem}.feed-footer{justify-items:start;gap:.65rem;margin-top:.85rem;display:grid}.muted-text{color:var(--slate-700);margin:0}.inline-error{margin:0;font-weight:700}.note-detail-grid{gap:1rem;display:grid}.transcript-panel{border-left:.35rem solid var(--blue-600);padding-left:.85rem}.structured-form{gap:.55rem;display:grid}.structured-form label{color:var(--slate-700);font-weight:700}.structured-form input,.structured-form textarea{border:1px solid var(--slate-200);background:var(--white);width:100%;color:var(--slate-900);border-radius:8px;padding:.75rem}.structured-form textarea{resize:vertical;min-height:5.25rem}.feed-item--success{border-left:.35rem solid var(--green-600)}.feed-item--warning{border-left:.35rem solid var(--amber-600)}.feed-item--info{border-left:.35rem solid var(--blue-600)}.iot-dashboard-section{padding:1rem 0 1.5rem}.iot-dashboard-grid{gap:.75rem;display:grid}.iot-panel,.anomaly-panel{border:1px solid var(--slate-200);background:#fffffff0;border-radius:8px;padding:1rem;box-shadow:0 .75rem 2rem #0f172a0f}.iot-panel h3,.anomaly-panel h3,.iot-device-card h4,.alert-item h4{color:var(--slate-900);letter-spacing:0;margin:0}.iot-panel h3,.anomaly-panel h3{font-size:1.05rem}.anomaly-panel{border-left:.35rem solid var(--green-600);gap:.75rem;margin-bottom:.75rem;display:grid}.anomaly-panel--active{border-color:#dc262659;border-left-color:var(--red-600);background:#fff7ed}.alert-count,.device-count{color:#075985;text-align:center;background:#e0f2fe;border-radius:999px;min-width:2rem;padding:.25rem .55rem;font-size:.85rem;font-weight:700}.alert-count{color:#991b1b;background:#fee2e2}.alert-list,.iot-device-list,.device-registration-form{gap:.75rem;display:grid}.alert-item,.iot-device-card{border:1px solid var(--slate-200);background:var(--white);border-radius:8px;gap:.75rem;padding:.85rem;display:grid}.alert-item{border-left:.35rem solid var(--red-600)}.alert-item time,.sensor-timeline-item time{color:var(--slate-500);font-size:.82rem;font-weight:700}.alert-item p,.iot-device-card p,.sensor-timeline-item p{color:var(--slate-700);margin:.35rem 0 0;line-height:1.45}.device-metrics{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.connection-badge,.battery-meter,.inline-success{border-radius:999px;padding:.35rem .55rem;font-size:.85rem;font-weight:700}.connection-badge--online{color:#166534;background:#dcfce7}.connection-badge--offline{color:#991b1b;background:#fee2e2}.connection-badge--degraded{color:#92400e;background:#fef3c7}.connection-badge--unknown,.battery-meter{color:#334155;background:#f1f5f9}.inline-success{color:#166534;background:#dcfce7;width:fit-content;margin:0}.device-registration-form label{color:var(--slate-700);font-weight:700}.device-registration-form input,.device-registration-form select{border:1px solid var(--slate-200);background:var(--white);width:100%;min-height:2.75rem;color:var(--slate-900);border-radius:8px;padding:.65rem .75rem}.device-form-row{gap:.75rem;display:grid}.sensor-timeline{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.sensor-timeline-item{border-left:.35rem solid var(--blue-600);background:#f8fafc;border-radius:8px;grid-template-columns:5rem 1fr;gap:.85rem;padding:.85rem;display:grid;position:relative}.sensor-timeline-item--door{border-left-color:var(--amber-600)}.sensor-timeline-item--motion{border-left-color:var(--green-600)}@media (width>=48rem){.dashboard-shell,.page-shell,.visit-notes-shell,.handoff-shell,.compliance-shell{padding:2rem}.visit-notes-header,.handoff-header{grid-template-columns:minmax(0,1fr) auto;align-items:start}.compliance-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;padding-top:2.5rem}.compliance-header h1{font-size:4rem}.handoff-header-actions{justify-items:stretch}.compliance-filter-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.recorder-controls{grid-template-columns:repeat(5,minmax(0,1fr));position:static}.notes-workspace{grid-template-columns:minmax(16rem,.42fr) minmax(0,1fr);align-items:start}.note-detail-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.dashboard-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;padding-top:2.5rem}.dashboard-header h1,.page-header h1{font-size:4rem}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.iot-dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(18rem,.8fr);align-items:start}.iot-panel--devices{grid-row:span 2}.device-form-row,.alert-item,.iot-device-card{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.handoff-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.feed-item,.visit-card,.handoff-entry{grid-template-columns:6rem 1fr}}@media (prefers-reduced-motion:no-preference){.status-dot{animation:2.4s ease-in-out infinite status-pulse}}@keyframes status-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}
