:root{color:#19202a;background:#f7f6f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}.auth-screen{align-items:center;background:linear-gradient(120deg,rgba(29,78,216,.12),transparent 44%),linear-gradient(210deg,rgba(5,150,105,.14),transparent 48%),#f7f6f2;display:flex;min-height:100vh;justify-content:center;padding:24px}.auth-panel{background:#ffffffeb;border:1px solid #dedbd2;border-radius:8px;box-shadow:0 18px 42px #22262f1f;max-width:460px;padding:32px;width:100%}.auth-panel h1{font-size:2rem;line-height:1.1;margin:16px 0 10px}.auth-panel p{color:#566071;line-height:1.55;margin:0}.brand-mark{align-items:center;background:#17324d;border-radius:8px;color:#fff;display:inline-flex;height:52px;justify-content:center;width:52px}.auth-actions,.segmented-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.button{align-items:center;border:1px solid transparent;border-radius:6px;display:inline-flex;font-weight:700;gap:8px;justify-content:center;min-height:42px;padding:10px 14px;white-space:nowrap}.button.primary{background:#17324d;color:#fff}.button.secondary{background:#fff;border-color:#cfd3da;color:#17324d}.button.danger{background:#fff;border-color:#c84b45;color:#9f2f2a}.button.compact{min-height:38px;padding:8px 12px}.icon-button{align-items:center;background:#fff;border:1px solid #cfd3da;border-radius:6px;color:#17324d;display:inline-flex;height:38px;justify-content:center;width:38px}.app-frame{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}.sidebar{background:#17324d;color:#fff;display:flex;flex-direction:column;gap:24px;padding:24px}.sidebar-brand{align-items:center;display:flex;font-size:1.18rem;font-weight:800;gap:10px}.nav-tabs{display:grid;gap:8px}.nav-tabs a{align-items:center;border-radius:6px;color:#dfe8ef;display:flex;gap:10px;padding:11px 12px;text-decoration:none}.nav-tabs a.active,.nav-tabs a:hover{background:#244b70;color:#fff}.sidebar-user{align-items:center;border-top:1px solid rgba(255,255,255,.2);display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;margin-top:auto;padding-top:18px}.sidebar-user span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content{min-width:0;padding:32px}.page-section{margin:0 auto;max-width:1160px}.page-header{align-items:center;display:flex;justify-content:space-between;gap:16px;margin-bottom:24px}.page-header h1{font-size:2rem;line-height:1.1;margin:0}.eyebrow{color:#6f5847;font-size:.78rem;font-weight:800;letter-spacing:0;margin:0 0 6px;text-transform:uppercase}.workspace-grid{align-items:start;display:grid;gap:24px;grid-template-columns:minmax(280px,360px) minmax(0,1fr)}.tool-panel,.list-panel{background:#fff;border:1px solid #ddd8cc;border-radius:8px;padding:20px}.list-panel.wide{min-height:320px}.tool-panel{display:grid;gap:14px}.tool-panel h2,.state-block h2{font-size:1.1rem;margin:0}label{color:#364152;display:grid;font-weight:700;gap:6px}input,select,textarea{border:1px solid #cfd3da;border-radius:6px;color:#19202a;min-height:40px;padding:8px 10px;width:100%}textarea{resize:vertical}.checkbox-label{align-items:center;display:flex;gap:9px}.checkbox-label input{min-height:18px;width:18px}.firmware-safety-banner{align-items:flex-start;background:#eef6f1;border:1px solid #b9d5c3;border-radius:8px;color:#184b37;display:flex;gap:12px;margin-bottom:24px;padding:16px}.firmware-safety-banner p{margin:4px 0 0}.firmware-release-list{display:grid;gap:14px;margin-top:16px}.firmware-release-card{border:1px solid #ddd8cc;border-radius:8px;padding:16px}.firmware-release-heading,.firmware-release-heading>div{align-items:center;display:flex;gap:10px;justify-content:space-between}.status-pill{border-radius:999px;font-size:.72rem;font-weight:800;padding:4px 8px;text-transform:uppercase}.status-pill.draft{background:#fff3c4;color:#735500}.status-pill.published{background:#dcefe4;color:#15583c}.status-pill.retired{background:#e8e9ec;color:#566071}.push-button{background:#9b6b13;color:#fff}.release-metadata{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:16px 0 0}.release-metadata div{min-width:0}.release-metadata dt{color:#697384;font-size:.76rem;font-weight:800;text-transform:uppercase}.release-metadata dd{margin:3px 0 0;overflow:hidden;text-overflow:ellipsis}.form-success{color:#0f6b4f;font-weight:700;margin:0}.form-error{color:#a33a2a;font-weight:700;margin:0}.card-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.horse-card,.session-row{border:1px solid #e0ded7;border-radius:8px;background:#fbfaf7}.horse-card{padding:16px}.horse-card h2,.session-row h2{font-size:1.08rem;margin:0}.horse-card dl{display:grid;gap:10px;margin:16px 0 0}.horse-card dl div{display:grid;gap:2px}.horse-card dt{color:#647082;font-size:.8rem;font-weight:800}.horse-card dd{align-items:center;display:flex;gap:6px;margin:0}.session-list{display:grid;gap:12px}.session-row{align-items:center;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(180px,auto);padding:16px}.session-row-expanded{align-items:stretch;grid-template-columns:1fr}.session-summary{align-items:center;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(180px,auto)}.session-row p{color:#647082;margin:6px 0 0}.session-meta{color:#364152;display:grid;gap:6px;justify-items:end}.session-meta span{align-items:center;display:inline-flex;gap:6px;font-weight:800}.session-meta p{margin:0;max-width:360px;text-align:right}.sessions-workspace{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.session-upload-panel input[type=file]{background:#fff;min-height:auto}.session-upload-progress{background:#eef5f0;border:1px solid #c8dccf;border-radius:8px;display:grid;gap:10px;margin-top:14px;padding:12px 14px}.session-upload-progress-copy{align-items:center;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr) auto}.session-upload-progress-copy div{display:grid;gap:2px}.session-upload-progress-copy span{color:#526171;font-size:.86rem}.session-upload-progress-icon{align-items:center;background:#d9eadf;border-radius:999px;color:#245c3b!important;display:inline-flex;height:32px;justify-content:center;width:32px}.session-upload-progress-copy b{color:#245c3b;font-size:.9rem}.session-upload-progress progress{accent-color:#315f49;height:9px;width:100%}.session-files{border-top:1px solid #e0ded7;display:grid;gap:10px;margin-top:14px;padding-top:14px}.session-files>p{margin:0}.session-file-row{align-items:center;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.session-file-row strong,.session-file-row span{display:block;min-width:0;overflow-wrap:anywhere}.session-file-row span{color:#647082;font-size:.9rem;margin-top:3px}.session-file-actions{align-items:center;display:flex;gap:8px}.playback-message{margin:18px auto 0;max-width:1160px}.playback-panel{background:#fff;border:1px solid #ddd8cc;border-radius:8px;display:grid;gap:18px;margin-top:24px;padding:20px}.playback-header{align-items:center;display:flex;gap:16px;justify-content:space-between}.playback-header h2{font-size:1.35rem;margin:0}.playback-grid{display:grid;gap:14px;grid-template-columns:minmax(320px,1.35fr) minmax(240px,1fr)}.playback-card{background:#fbfaf7;border:1px solid #e0ded7;border-radius:8px;min-height:220px;padding:14px}.playback-heatmap-card{grid-row:span 2}.playback-time-card{align-content:center;display:grid;gap:10px;justify-items:center;min-height:160px}.playback-time-card span,.force-trend span,.cog-panel span{color:#647082;font-size:.86rem;font-weight:800}.playback-time-card strong{font-size:2rem}.pressure-heatmap{background:#f0efe9;border-radius:6px;display:block;height:100%;min-height:458px;width:100%}.force-trend,.cog-panel{display:grid;gap:12px;height:100%}.force-trend svg{background:#fff;border:1px solid #e0ded7;border-radius:6px;min-height:170px;width:100%}.cog-target{aspect-ratio:1;justify-self:center;max-height:180px;max-width:180px;position:relative;width:min(100%,180px)}.cog-ring,.cog-dot{border-radius:50%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.cog-ring{border:1px solid #19202a}.cog-ring.outer{background:#f5f5f5;height:100%;width:100%}.cog-ring.middle{background:#b8bdc2;height:70%;width:70%}.cog-ring.inner{background:#727a83;height:40%;width:40%}.cog-dot{background:#111827;height:5%;width:5%;z-index:2}.cog-dot.active{background:#cb2e0e;border:2px solid #111827;height:10%;width:10%}.playback-controls{align-items:center;display:grid;gap:10px;grid-template-columns:58px minmax(160px,1fr) 58px auto 96px}.playback-controls span{color:#364152;font-variant-numeric:tabular-nums;font-weight:800;text-align:center}.playback-controls input[type=range]{padding:0}.state-block{align-items:center;color:#566071;display:grid;gap:8px;justify-items:center;min-height:220px;text-align:center}.state-block p{margin:0}.admin-safety-banner{background:#eef6f1;border:1px solid #b9d5c3;border-radius:8px;color:#184b37;margin-bottom:24px;padding:14px 16px}.admin-data-grid{align-items:start;display:grid;gap:24px;grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.admin-user-panel h2,.admin-section-heading h2,.list-panel>h2{margin:0}.admin-user-list,.admin-session-list,.problem-report-list{display:grid;gap:12px;margin-top:16px}.list-panel.wide.problem-report-section{margin-top:24px;min-height:0}.problem-report-section-heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.problem-report-section-heading h2,.problem-report-section-heading p{margin:0}.problem-report-section-heading p{color:#647082;margin-top:5px}.admin-user-card{align-items:flex-start;background:#fbfaf7;border:1px solid #e0ded7;border-radius:8px;color:#19202a;display:grid;gap:10px;grid-template-columns:auto minmax(0,1fr);padding:14px;text-align:left;width:100%}.admin-user-card.selected{background:#eef4f8;border-color:#244b70;box-shadow:inset 3px 0 #244b70}.admin-user-card span,.admin-user-card strong,.admin-user-card small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.admin-user-card small{color:#647082;margin-top:3px}.admin-section-heading{align-items:start;display:flex;justify-content:space-between}.admin-section-heading p{color:#647082;margin:5px 0 0}.admin-retention-toggle{align-items:flex-start;background:#eef6f1;border:1px solid #b9d5c3;border-radius:8px;display:flex;gap:10px;max-width:430px;padding:12px}.admin-retention-toggle input{margin-top:3px}.admin-retention-toggle span,.admin-retention-toggle strong,.admin-retention-toggle small{display:block}.admin-retention-toggle small{color:#496257;line-height:1.35;margin-top:3px}.admin-session-card,.problem-report-card{background:#fbfaf7;border:1px solid #e0ded7;border-radius:8px;padding:16px}.problem-report-card.closed{background:#f6f5f1}.admin-session-heading,.problem-report-heading,.admin-file-row{align-items:center;display:flex;gap:16px;justify-content:space-between}.admin-session-heading>div:first-child,.problem-report-heading>div:first-child,.admin-file-row>span{min-width:0}.admin-session-heading strong,.admin-session-heading span,.problem-report-heading strong,.problem-report-heading small,.admin-file-row strong,.admin-file-row small{display:block}.admin-session-heading span,.problem-report-heading small,.admin-file-row small{color:#647082;margin-top:4px}.admin-upload-status{min-width:140px;text-align:right}.admin-session-controls{align-items:flex-end;display:flex;gap:12px}.retained-session-label{color:#17623b!important;font-weight:700}.admin-upload-status progress{display:block;height:8px;margin-top:5px;width:140px}.admin-file-row{border-top:1px solid #e0ded7;margin-top:12px;padding-top:12px}.empty-admin-state{align-items:center;color:#647082;display:flex;gap:10px;justify-content:center;min-height:220px}.problem-report-heading>div{display:flex;flex-wrap:wrap;gap:8px 10px}.problem-report-actions{align-items:center;justify-content:flex-end}.status-pill.report-area{background:#fff3c4;color:#735500}.status-pill.report-status.active{background:#dff3e7;color:#17623b}.status-pill.report-status.closed{background:#e9ebee;color:#4d5663}.closed-report-details{color:#566071;font-size:.9rem;margin:-8px 0 18px}.empty-admin-state.compact{min-height:100px}.problem-description{font-size:1.03rem;line-height:1.55;margin:18px 0;white-space:pre-wrap}.report-metadata{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.report-metadata dt{color:#697384;font-size:.76rem;font-weight:800;text-transform:uppercase}.report-metadata dd{margin:3px 0 0;overflow-wrap:anywhere}@media(max-width:820px){.app-frame{grid-template-columns:1fr}.sidebar{gap:16px;padding:16px}.nav-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:20px}.workspace-grid,.admin-data-grid{grid-template-columns:1fr}.page-header{align-items:stretch;flex-direction:column}.session-row,.session-summary,.session-file-row,.playback-grid,.playback-controls{grid-template-columns:1fr}.session-meta{justify-items:start}.session-meta p{text-align:left}.session-file-actions{justify-content:flex-start}.admin-session-heading,.problem-report-heading,.admin-file-row,.admin-section-heading,.admin-session-controls{align-items:stretch;flex-direction:column}.admin-upload-status{text-align:left}.report-metadata{grid-template-columns:repeat(2,minmax(0,1fr))}.pressure-heatmap{min-height:320px}}
