:root{--bg-main:#eff3f4;--bg-contrast:#1f2b37;--surface:#fff;--surface-alt:#f5f8f8;--surface-tint:#eef5f1;--text-main:#16212b;--text-soft:#50606d;--text-muted:#728290;--accent:#1f8f60;--accent-2:#1a6f93;--accent-soft:#1f8f601a;--blue-soft:#1a6f931a;--ok:#1f8f60;--danger:#dc2626;--border:#d4dde3;--border-strong:#b7c5cf;--shadow-soft:0 10px 30px #1e293b0f;--shadow-card:0 18px 40px #18273314;--font-app:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}body{font-family:var(--font-app);color:var(--text-main);background:radial-gradient(circle at 12% 12%,#1f8f6014,#0000 32%),radial-gradient(circle at 88% 10%,#1a6f9314,#0000 28%),linear-gradient(#f8fafb 0%,#edf2f4 100%)}h1,h2,h3,h4{font-family:var(--font-app);letter-spacing:-.02em;margin:0}.main-shell{width:min(1320px,100vw - 2rem);margin:1.1rem auto 2.4rem}.main-shell-dashboard{gap:.85rem;padding-bottom:1rem}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:20px;padding:1.05rem}.page-hero{box-shadow:none;background:0 0;border:0;align-items:center;padding:.15rem 0 .9rem;position:relative;overflow:hidden}.page-hero:after{content:"";opacity:1;background:linear-gradient(90deg,#1f8f602e,#1a6f9338,#0000 88%);height:1px;position:absolute;inset:auto 0 0}.page-title{color:var(--text-main);letter-spacing:-.05em;font-weight:800;line-height:.95}.page-hero-actions{z-index:1;position:relative}.view-tabs-shell{justify-content:flex-start;margin-top:-.15rem;display:flex}.page-nav{padding:0 0 .45rem}.view-tabs{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;gap:.45rem;padding:0;display:inline-flex}.view-tab{color:var(--text-soft);background:0 0;border:1px solid #0000;border-radius:10px;padding:.45rem .72rem;transition:background .18s,color .18s,border-color .18s,box-shadow .18s,transform .18s}.view-tab:hover{color:var(--text-main);transform:translateY(-1px)}.view-tab.active{color:var(--text-main);box-shadow:none;background:#1f8f6014;border-color:#1f8f6024}.brand-lockup{z-index:1;align-items:center;gap:.85rem;min-width:0;display:inline-flex;position:relative}.brand-lockup-logo{width:42px;height:42px;box-shadow:none;background:0 0;border:0;border-radius:0;flex:none;padding:.18rem}.grid{gap:1rem;display:grid}.grid.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid.five{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}label{color:var(--text-main);margin-bottom:.4rem;font-size:.85rem;font-weight:700;display:block}input,select,button,textarea{font:inherit}input,select{border:1px solid var(--border);width:100%;color:var(--text-main);background:linear-gradient(#fbfcfd 0%,#f5f8f9 100%);border-radius:12px;padding:.72rem .8rem;transition:border-color .18s,box-shadow .18s,background .18s}input:focus,select:focus,textarea:focus{background:#fff;border-color:#1f8f6073;outline:none;box-shadow:0 0 0 4px #1f8f601a}button{cursor:pointer;border:1px solid #0000;border-radius:12px;padding:.68rem .92rem;font-weight:700;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s,color .18s}button:hover:not(:disabled){transform:translateY(-1px)}button.primary{background:linear-gradient(135deg, var(--accent), #197884);color:#fff;border-color:#1036492e;box-shadow:0 14px 24px #1f8f602e}button.secondary{background:var(--bg-contrast);color:#fff;border-color:#1f293740;box-shadow:0 10px 20px #1f29372e}button.ghost{border-color:var(--border);color:var(--text-main);background:#ffffffe0;box-shadow:0 6px 16px #1827330a}button:disabled{opacity:.55;cursor:not-allowed;transform:none}.metric{box-shadow:none;background:0 0;border:0;border-top:1px solid #d4dde3e6;border-radius:0;padding:.72rem 0 .1rem}.metric .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.73rem}.metric .value{color:var(--text-main);margin-top:.3rem;font-weight:700}.calibration-card{box-shadow:none;background:0 0;border:0;border-top:1px solid #d4dde3e6;border-radius:0;gap:.95rem;padding:.95rem 0 .15rem;display:grid}.calibration-card.recent{box-shadow:none;border-top-color:#1f8f606b}.calibration-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.calibration-meta-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;display:grid}.calibration-summary-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem;display:grid}.calibration-summary-grid .metric{background:0 0}.status-pill{letter-spacing:.03em;color:#0f5136;background:#1f8f601f;border:1px solid #1f8f6047;border-radius:999px;align-items:center;padding:.36rem .72rem;font-size:.76rem;font-weight:700;display:inline-flex}.status-pill.status-idle{color:#334155;background:#5b6b791a;border-color:#5b6b7933}.status-pill.status-running{color:#195a74;background:#1a6f931f;border-color:#1a6f933d}.status-pill.status-success{color:#14553b;background:#1f8f6024;border-color:#1f8f6042}.status-pill.status-error{color:#7f1d1d;background:#dc262624;border-color:#dc262661}.section-card{box-shadow:none;background:0 0;border:0;border-top:1px solid #d4dde3eb;border-radius:0;gap:.95rem;padding:1rem 0 .2rem}.section-card>h2{color:var(--text-main);letter-spacing:-.04em;padding-top:.05rem}.alert-card{background:0 0;border-top:1px solid #dc262638;padding:.45rem 0 .25rem}.inline-callout{box-shadow:none;background:0 0;border-top:1px solid #1f8f602e;border-bottom:1px solid #1f8f6024;padding:.75rem 0}.control-panel{gap:1rem;display:grid}.control-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;padding-bottom:.1rem;display:flex}.status-progress-wrap{background:0 0;border:1px solid #d4dde3e6;border-left:0;border-right:0;border-radius:0;gap:.55rem;padding:.82rem 0;display:grid}.status-progress-meta{flex-wrap:wrap;justify-content:space-between;gap:.6rem;display:flex}.status-progress-track{background:#3b4e5e1f;border-radius:999px;width:100%;height:10px;overflow:hidden}.status-progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--accent), var(--accent-2));height:100%;transition:width .25s}.control-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.95rem;display:grid}.control-grid>div{background:0 0;border:0;border-radius:0;gap:.28rem;padding:.25rem 0 .15rem;display:grid}.control-actions{justify-content:flex-end;display:flex}.chart-wrap{box-shadow:none;background:0 0;border:0;border-top:1px solid #d4dde3e6;border-radius:0;padding:.75rem 0 .1rem}.chart-wrap h3,.chart-wrap h4{color:var(--text-main);letter-spacing:-.03em}.login-shell{place-items:center;min-height:100vh;padding:1.25rem;display:grid}.login-card{border:1px solid var(--border);background:linear-gradient(#fffffffc,#f7fafafa);border-radius:24px;width:min(480px,100%);padding:1.4rem;position:relative;overflow:hidden;box-shadow:0 24px 48px #1827331f}.login-card:after{content:"";background:linear-gradient(180deg, var(--accent), var(--accent-2));width:4px;position:absolute;inset:0 auto 0 0}.login-brand{margin-bottom:1rem}.login-form>div{gap:.28rem;display:grid}.error{color:var(--danger);font-size:.9rem}.success{color:var(--ok);font-size:.9rem}small.sub{color:var(--text-soft);line-height:1.35}.shift-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.9rem;display:grid}.shift-card{box-shadow:none;background:0 0;border:0;border-top:1px solid #d4dde3e6;border-radius:0;gap:.65rem;padding:.85rem 0 .05rem;display:grid}.shift-head{justify-content:space-between;align-items:flex-start;gap:.8rem;display:flex}.shift-head strong{font-size:.95rem}.shift-head small.sub{margin-top:.12rem;font-size:.78rem;display:block}.shift-pill{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-width:84px;padding:.22rem .55rem;font-size:.82rem;font-weight:700;display:inline-flex}.shift-pill.rpi{color:#0f5136;background:#1f8f601f;border-color:#1f8f6042}.shift-pill.sono{color:#195a74;background:#1a6f931f;border-color:#1a6f933d}.shift-slider{background:0 0;border:0;width:100%;height:1.5rem;margin:0;padding:0}.shift-slider.rpi{accent-color:var(--accent)}.shift-slider.sono{accent-color:var(--accent-2)}.shift-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.shift-quick{flex-wrap:wrap;gap:.35rem;display:flex}.shift-manual{align-items:center;gap:.35rem;display:flex}.shift-number{text-align:center;width:98px}.analysis-subsection{background:0 0;border:0;border-top:1px solid #d4dde3e6;border-radius:0;gap:.72rem;padding:.9rem 0 .05rem;display:grid}.analysis-subsection-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.analysis-subsection-head small.sub{margin-top:.18rem;display:block}.analysis-subsection-summary .metric{background:0 0;padding:.6rem 0 .08rem}.analysis-subsection-controls{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.75rem;display:grid}.analysis-subsection-control{gap:.32rem;display:grid}.analysis-subsection-control-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.analysis-subsection-control-head label{margin:0;font-size:.84rem;font-weight:700}.analysis-subsection-control-inputs{grid-template-columns:minmax(0,1fr) 88px;align-items:center;gap:.5rem;display:grid}.analysis-subsection-control-inputs .shift-number{width:88px}.band-picker{scrollbar-gutter:stable;border-top:1px solid #d4dde3b3;border-bottom:1px solid #d4dde3b3;grid-template-rows:repeat(2,minmax(0,auto));grid-auto-columns:minmax(84px,1fr);grid-auto-flow:column;gap:.45rem;padding:.2rem .05rem .45rem;display:grid;overflow:auto hidden}.band-chip{border:1px solid var(--border);color:var(--text-main);white-space:nowrap;background:#fff;border-radius:12px;min-height:38px;padding:.35rem .55rem;font-size:.82rem;font-weight:700;transition:background .15s,border-color .15s,color .15s,transform .15s}.band-chip:hover{background:#1f8f6014;border-color:#1f8f6061;transform:translateY(-1px)}.band-chip.active{color:#102a1e;background:linear-gradient(110deg,#1f8f602e,#1a6f931f);border-color:#1f8f6059}.band-selected-title{color:var(--text-soft);margin:.1rem .15rem .6rem;font-weight:700}.app-modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#121c2570;place-items:center;padding:1.15rem;display:grid;position:fixed;inset:0}.app-modal-backdrop-top{z-index:70;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#121c258f}.app-modal{background:linear-gradient(#fffffffc,#f8fbfcfa);border:1px solid #d4dde3f2;border-radius:24px;grid-template-rows:auto auto minmax(0,1fr) auto;gap:.95rem;width:min(1040px,100%);max-height:min(88vh,920px);padding:1.05rem;display:grid;overflow:hidden;box-shadow:0 30px 70px #121c252e}.audio-preview-modal{background:linear-gradient(#fff 0%,#f8fbfc 100%);grid-template-rows:auto minmax(0,1fr);width:min(920px,100%);max-height:min(80vh,760px);padding:.95rem}.app-modal-head,.app-modal-toolbar,.app-modal-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.app-modal-head,.app-modal-toolbar{border-bottom:1px solid #d4dde3bf;padding-bottom:.1rem}.app-modal-foot{border-top:1px solid #d4dde3bf;padding-top:.15rem}.audio-candidate-list{gap:.65rem;min-height:0;padding-right:.2rem;display:grid;overflow-y:auto}.audio-preview-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.55rem;display:flex}.audio-preview-grid{gap:.55rem;display:grid;overflow:hidden}.audio-preview-empty{color:var(--text-soft);background:linear-gradient(#1f8f600d,#1a6f9308);border:1px dashed #1f8f604d;border-radius:16px;padding:.9rem}.audio-preview-player{background:#fff;border:1px solid #d4dde3e6;border-radius:16px;padding:.5rem .65rem}.audio-preview-player audio{width:100%;height:32px}.results-playback-panel{background:0 0;border:1px solid #d4dde3e6;border-left:0;border-right:0;border-radius:0;gap:.6rem;padding:.85rem 0;display:grid}.results-playback-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.results-playback-controls{flex-wrap:wrap;gap:.45rem;display:flex}.results-playback-slider{width:100%;accent-color:var(--accent);margin:0}.audio-candidate-header,.audio-candidate-row{grid-template-columns:auto minmax(0,1.9fr) minmax(108px,.95fr) minmax(96px,.85fr) minmax(108px,.95fr) minmax(220px,1.2fr) minmax(120px,.9fr);align-items:center;gap:.8rem;display:grid}.audio-candidate-header{padding:0 .8rem .15rem}.audio-candidate-head-cell{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.75rem;font-weight:700}.audio-candidate-row{box-shadow:none;background:0 0;border:0;border-top:1px solid #d4dde3e6;border-radius:0;padding:.8rem;transition:border-color .18s,transform .18s,box-shadow .18s}.audio-candidate-row:hover{border-top-color:#1f8f6047;transform:none}.audio-candidate-row input[type=checkbox]{width:18px;height:18px;margin:0}.audio-candidate-main{gap:.12rem;min-width:0;display:grid}.audio-candidate-main strong,.audio-candidate-main small{overflow-wrap:anywhere}.audio-candidate-field{color:var(--text-soft);overflow-wrap:anywhere;min-width:0;font-size:.9rem}.audio-preview-action{justify-content:flex-start;display:flex}.audio-preview-trigger{white-space:nowrap;padding:.45rem .65rem}.audio-preview-trigger.active{background:linear-gradient(135deg,#1f8f6024,#1a6f9314);border-color:#1f8f6059}@media (max-width:1260px){.audio-candidate-header,.audio-candidate-row{grid-template-columns:auto minmax(0,1.55fr) minmax(96px,.9fr) minmax(82px,.75fr) minmax(96px,.9fr) minmax(168px,1.05fr) minmax(112px,.8fr)}}@media (max-width:720px){.analysis-subsection-control-inputs{grid-template-columns:1fr}.analysis-subsection-control-inputs .shift-number{width:100%}}@media (max-width:860px){.audio-candidate-header{display:none}.audio-candidate-row{grid-template-columns:auto minmax(0,1fr);align-items:flex-start}.audio-candidate-field{grid-column:2}.audio-candidate-field:before{content:attr(data-label) ": ";color:var(--text-main);font-weight:700}.audio-preview-action{grid-column:2}}@media (max-width:560px){.app-modal{max-height:min(92vh,920px);padding:.85rem}.app-modal-foot,.audio-preview-head{align-items:stretch}.audio-preview-modal{width:100%;max-height:min(88vh,760px)}}
