:root{color:#14202b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7f9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,textarea{letter-spacing:0}a{color:inherit}.app-shell{color:#14202b;background:#f5f7f9;grid-template-columns:268px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:#fff;border-right:1px solid #dbe3ea;flex-direction:column;gap:24px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand,.nav-button,.ghost-button,.primary-button,.secondary-button,.small-button,.job-card,.client-card,.list-row{font:inherit;cursor:pointer;border:0}.brand{text-align:left;color:#14202b;background:0 0;align-items:center;gap:12px;display:flex}.brand-mark{color:#fff;background:#0c6270;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.brand small,.topbar p,.panel p,.info span,.empty,.job-meta,.list-row small{color:#667482}.brand strong,.brand small{display:block}.sidebar nav{gap:6px;display:grid}.nav-button,.ghost-button{color:#526070;text-align:left;background:0 0;border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:0 12px;display:flex}.nav-button.active,.nav-button:hover,.ghost-button:hover{color:#0c6270;background:#eaf3f4}.sidebar-footer{gap:4px;margin-top:auto;display:grid}.main{min-width:0;padding:24px}.topbar{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.topbar h1{letter-spacing:0;margin:0;font-size:30px;line-height:1.1}.topbar-actions,.button-row,.photo-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search{color:#7a8794;cursor:text;background:#fff;border:1px solid #dbe3ea;border-radius:8px;align-items:center;gap:10px;min-width:260px;height:42px;padding:0 12px;font-size:14px;display:flex}.search:focus-within{border-color:#0c6270;box-shadow:0 0 0 3px #0c627026}.search input{color:#14202b;height:100%;font:inherit;background:0 0;border:0;outline:none;flex:1;margin:0;padding:0}.search input::placeholder{color:#7a8794}.primary-button,.secondary-button,.small-button,.file-button{border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 14px;font-weight:700;display:inline-flex}.primary-button{color:#fff;background:#0c6270}.primary-button:hover{background:#0a5260}.secondary-button,.small-button{color:#0c6270;background:#eaf3f4}.large{min-height:52px;font-size:16px}.compact{min-height:38px}.full{width:100%}.dashboard-grid{grid-template-columns:1.2fr .8fr;gap:16px;display:grid}.content-grid,.details-layout,.protocol-layout,.client-layout{gap:16px;display:grid}.details-layout{grid-template-columns:minmax(0,1fr) 320px}.office-panel{align-self:start;gap:14px;display:grid}.office-panel .primary-button{justify-content:center;width:100%}.status-flow{grid-template-columns:repeat(5,minmax(90px,1fr));gap:8px;margin:18px 0;display:grid}.status-flow span{color:#667482;background:#f8fafb;border:1px solid #dbe3ea;border-radius:8px;min-height:58px;padding:10px;font-size:13px}.status-flow strong{color:#9aa7b3;margin-bottom:4px;display:block}.status-flow .done{color:#176b96;background:#e8f3fb;border-color:#9fc9d0}.status-flow .done strong{color:#0c6270}.workflow-note{background:#f8fafb;border:1px solid #dbe3ea;border-radius:8px;gap:8px;padding:12px;display:grid}.workflow-note p{color:#667482;margin:0;line-height:1.45}.protocol-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start}.client-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start}.protocol-form{gap:16px;display:grid}.kpi-grid{grid-column:1/-1;grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px;display:grid}.kpi,.panel,.job-card{background:#fff;border:1px solid #dbe3ea;border-radius:8px;box-shadow:0 10px 24px #1f2d3d0d}.kpi{color:#0c6270;align-content:space-between;min-height:110px;padding:16px;display:grid}.kpi span{color:#667482;font-size:13px}.kpi strong{color:#14202b;font-size:30px}.panel{padding:18px}.wide{grid-column:span 1}.panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.panel h2,.job-card h2,.phone h3,.pdf-sheet h3{letter-spacing:0;color:#14202b;margin:0 0 6px}.panel h2,.job-card h2{font-size:18px;line-height:1.2}.lead{max-width:900px;font-size:17px;line-height:1.55}.flow{grid-template-columns:repeat(7,minmax(88px,1fr));gap:8px;display:grid}.flow span{color:#526070;background:#f5f9fa;border-radius:8px;gap:8px;min-height:78px;padding:12px;display:grid}.flow strong{color:#fff;background:#0c6270;border-radius:999px;place-items:center;width:28px;height:28px;font-size:13px;display:grid}.phone-panel{place-items:center;display:grid}.phone{background:#f7fafb;border:10px solid #14202b;border-radius:30px;width:min(100%,300px);min-height:520px;padding:18px;box-shadow:0 18px 40px #14202b29}.phone-top{color:#fff;background:#14202b;border-radius:999px;place-items:center;width:92px;height:22px;margin:0 auto 22px;font-size:11px;display:grid}.mini-checks{gap:8px;margin:18px 0;display:grid}.mini-checks span{background:#fff;border:1px solid #dbe3ea;border-radius:8px;padding:10px}.phone button{color:#fff;background:#0c6270;border:0;border-radius:8px;width:100%;min-height:48px;font-weight:700}.job-card{text-align:left;width:100%;color:inherit;gap:14px;padding:18px;display:grid}.job-card:hover{border-color:#9fc9d0}.job-card-statuses{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.job-meta{flex-wrap:wrap;gap:10px;font-size:13px;display:flex}.job-meta span,.chip,.status,.attention{background:#eef3f5;border-radius:999px;padding:5px 9px}.status{color:#526070;width:fit-content;margin-bottom:8px;font-size:12px;font-weight:700;display:inline-flex}.attention{width:fit-content;margin-bottom:8px;font-size:12px;font-weight:700;display:inline-flex}.attention.today{color:#176b96;background:#e8f3fb}.attention.overdue,.attention.followup{color:#926300;background:#fff5dd}.status.completed,.status.emailed,.status.sent,.status.planned{color:#18734e;background:#e6f6ef}.status.in_progress,.status.assigned{color:#176b96;background:#e8f3fb}.status.requires_followup,.status.new{color:#926300;background:#fff5dd}.filter-bar{flex-wrap:wrap;gap:8px;display:flex}.chip{background:#fff;border:1px solid #dbe3ea;min-height:38px}.chip.active{color:#fff;background:#0c6270;border-color:#0c6270}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0;display:grid}.compact-details{margin:14px 0}.info{gap:4px;min-width:0;display:grid}.info strong{overflow-wrap:anywhere}.callout,.error-box,.warning-box{border-radius:8px;margin:16px 0;padding:14px}.callout{background:#fff8e8;border:1px solid #f1d79d}.error-box{color:#992a2a;background:#fff0f0;border:1px solid #f1b4b4}.warning-box{color:#7a5a14;background:#fff8e8;border:1px solid #f1d79d}.warning-box p,.error-box p{margin:0;line-height:1.45}.warning-box p+p,.error-box p+p{margin-top:6px}label{color:#526070;gap:8px;font-size:14px;font-weight:700;display:grid}textarea,input,select{box-sizing:border-box;color:#14202b;width:100%;font:inherit;background:#fff;border:1px solid #cfd9e2;border-radius:8px;padding:11px 12px}.form-grid{gap:16px;display:grid}textarea{resize:vertical;min-height:96px}.checklist{gap:8px;display:grid}.check-row{color:#14202b;background:#f8fafb;border:1px solid #dbe3ea;border-radius:8px;grid-template-columns:22px minmax(0,1fr);align-items:center;min-height:44px;padding:0 10px}.check-row input{width:18px;height:18px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.photo-thumb{text-align:center;background:linear-gradient(135deg,#0c627014,#2a9d8f24),#f8fafb;border:1px dashed #9fb0bf;border-radius:8px;place-content:center;min-height:118px;padding:10px;display:grid;position:relative}.photo-thumb img{object-fit:cover;border-radius:6px;width:100%;height:112px;margin-bottom:8px}.photo-thumb button{color:#992a2a;background:#ffffffeb;border:0;border-radius:8px;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:8px;right:8px}.photo-thumb span{color:#0c6270;font-weight:800}.file-button{color:#0c6270;background:#eaf3f4}.file-button input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.signature-pad{position:relative}.signature-pad canvas{touch-action:none;background:#fff;border:1px solid #cfd9e2;border-radius:8px;width:100%;height:220px}.signature-placeholder{color:#9aa7b3;pointer-events:none;position:absolute;top:16px;left:16px}.sticky{gap:14px;display:grid;position:sticky;top:24px}.list{gap:8px;display:grid}.list-row,.reminder-row,.row-panel{justify-content:space-between;align-items:center;gap:12px;display:flex}.list-row{color:#14202b;background:#f8fafb;border-radius:8px;min-height:48px;padding:0 12px}.empty{background:#f8fafb;border-radius:8px;padding:18px}.protocol-preview{max-width:980px}.pdf-frame{background:#f5f5f5;border:1px solid #dbe3ea;border-radius:8px;width:100%;height:760px;margin-top:18px;display:block}@media (width<=1060px){.pdf-frame{height:560px}}@media (width<=620px){.pdf-frame{height:460px}}.pdf-sheet{background:#fff;border:1px solid #dbe3ea;gap:12px;margin-top:18px;padding:28px;display:grid;box-shadow:0 12px 32px #14202b1a}.pdf-header{color:#fff;background:#0c6270;border-radius:8px;justify-content:space-between;padding:14px;display:flex}.signature-preview{border-bottom:2px solid #9fb0bf;align-items:end;min-height:58px;margin:18px 0;padding:0 12px 8px;font-family:Georgia,serif;font-size:24px;font-style:italic;display:flex}.signature-image{object-fit:contain;object-position:left center;border-bottom:2px solid #9fb0bf;width:260px;max-width:100%;height:88px}.filter-select{color:#14202b;min-height:38px;font:inherit;background:#fff;border:1px solid #dbe3ea;border-radius:8px;padding:0 12px}.email-list,.email-card{gap:12px;display:grid}.email-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.email-card-head h2{margin:6px 0 4px;font-size:17px}.email-card-head small{color:#667482;font-size:13px}.email-body{white-space:pre-wrap;color:#14202b;background:#f8fafb;border:1px solid #e3eaf0;border-radius:8px;margin:0;padding:14px 16px;font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.55}.email-preview{gap:6px;display:grid}.email-preview-meta{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.email-preview-meta span{text-transform:uppercase;letter-spacing:.04em;color:#667482;font-size:12px}.email-snippet{color:#526070;white-space:pre-wrap;background:#f8fafb;border:1px solid #e3eaf0;border-radius:8px;margin:0;padding:10px 12px;font-family:inherit;font-size:13px}.client-card{text-align:left;width:100%;color:inherit;gap:8px;display:grid}.client-card:hover,.client-card.selected{border-color:#9fc9d0}.client-card.selected{box-shadow:0 0 0 2px #0c62701f,0 10px 24px #1f2d3d0d}.client-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.client-history h3{color:#14202b;margin:0 0 10px;font-size:15px}.history-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.device-list{flex-wrap:wrap;gap:8px;display:flex}.device-list span{color:#526070;background:#eef3f5;border-radius:999px;padding:6px 10px;font-size:13px}.client-tools{gap:12px;display:grid}.device-editor{background:#f8fafb;border:1px solid #dbe3ea;border-radius:8px;gap:8px;padding:12px;display:grid}.backup-panel{gap:12px;display:grid}.backup-panel p{margin:0}.import-message{color:#18734e;background:#e6f6ef;border-radius:8px;padding:10px 12px;font-weight:700}.tool-divider{background:#dbe3ea;height:1px;margin:4px 0}.status.draft,.status.prepared{color:#526070;background:#eef3f5}.status.failed,.status.cancelled{color:#992a2a;background:#ffe9e9}@media (width<=1060px){.app-shell{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #dbe3ea;border-right:0;height:auto;position:static}.sidebar nav,.sidebar-footer{display:flex;overflow-x:auto}.dashboard-grid,.details-layout,.protocol-layout,.client-layout{grid-template-columns:1fr}.kpi-grid,.flow{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{flex-direction:column}}@media (width<=620px){.main{padding:14px}.topbar h1{font-size:24px}.search{display:none}.kpi-grid,.detail-grid,.history-columns,.photo-grid{grid-template-columns:1fr}.topbar-actions,.primary-button{width:100%}.job-meta,.row-panel,.list-row,.reminder-row{flex-direction:column;align-items:flex-start}}
