@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Syne:wght@400;500;600;700&display=swap";.upload-page{max-width:520px;margin:0 auto;padding:2rem 1.5rem}.upload-content{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);padding:1.5rem 1.75rem}.upload-title{font-family:var(--sans);letter-spacing:-.02em;color:var(--text);margin-bottom:4px;font-size:18px;font-weight:700}.upload-sub{font-size:12px;font-family:var(--mono);color:var(--text-3);margin-bottom:1.5rem}.upload-form{flex-direction:column;gap:1.25rem;display:flex}.upload-field{flex-direction:column;gap:6px;display:flex}.upload-label{font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3)}.upload-select{font-size:13px;font-family:var(--mono);border-radius:var(--radius-sm);border:.5px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;outline:none;padding:8px 12px}.upload-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.upload-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.upload-dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius-sm);text-align:center;cursor:pointer;background:var(--bg);justify-content:center;align-items:center;min-height:80px;padding:1.25rem 1rem;transition:all .15s;display:flex}.upload-dropzone:hover,.upload-dropzone.dropzone-active{border-color:var(--accent);background:var(--accent-dim)}.upload-dropzone.dropzone-accept{border-color:var(--ok);background:var(--ok-bg)}.upload-dropzone.dropzone-has-file{border-style:solid;border-color:var(--ok);background:var(--ok-bg)}.dropzone-text{font-size:12px;font-family:var(--mono);color:var(--text-2)}.dropzone-file{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.dropzone-check{color:var(--ok);flex-shrink:0}.dropzone-filename{font-size:12px;font-family:var(--mono);color:var(--text)}.dropzone-remove{cursor:pointer;color:var(--text-3);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:color .15s,background .15s;display:flex}.dropzone-remove:hover{color:var(--over);background:var(--over-bg)}.upload-message{font-size:12px;font-family:var(--mono);border-radius:var(--radius-sm);padding:10px 12px}.upload-success{background:var(--ok-bg);color:var(--ok)}.upload-error{background:var(--over-bg);color:var(--over)}.upload-submit{font-size:13px;font-family:var(--mono);background:var(--text);color:var(--bg);border-radius:var(--radius-sm);cursor:pointer;border:none;padding:10px 16px;font-weight:500;transition:opacity .15s}.upload-submit:hover:not(:disabled){opacity:.9}.upload-submit:disabled{opacity:.6;cursor:not-allowed}.sandbox-page{max-width:1160px;margin:0 auto}.sandbox-loading,.sandbox-empty{font-family:var(--mono);color:var(--text-3);padding:2rem;font-size:12px}.sandbox-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.sandbox-title{font-family:var(--sans);letter-spacing:-.02em;color:var(--text);font-size:18px;font-weight:700}.sandbox-period-select{font-family:var(--mono);border-radius:var(--radius-sm);border:.5px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;outline:none;padding:8px 12px;font-size:13px}.sandbox-period-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.sandbox-baseline{margin-bottom:1rem}.sandbox-baseline-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.sandbox-sessions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.sandbox-session-pills{flex-wrap:wrap;gap:6px;display:flex}.sandbox-pill{border-radius:var(--radius-sm);border:.5px solid var(--border);background:var(--surface);cursor:pointer;font-family:var(--mono);color:var(--text);text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;font-size:12px;transition:all .15s;display:flex}.sandbox-pill:hover{border-color:var(--border-strong);background:var(--surface-2)}.sandbox-pill-active{background:var(--text);border-color:var(--text);color:var(--bg)}.sandbox-pill-active .sandbox-pill-date{color:#ffffffb3}.sandbox-pill-date{color:var(--text-3);font-size:10px}.sandbox-title-input{font-family:var(--mono);color:inherit;background:0 0;border:none;outline:none;width:100%;min-width:80px;padding:0;font-size:12px}.sandbox-title-input::placeholder{color:#ffffff80}.sandbox-new-btn{font-family:var(--mono);border-radius:var(--radius-sm);border:.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;padding:8px 14px;font-size:12px;font-weight:500;transition:all .15s}.sandbox-new-btn:hover{border-color:var(--accent);background:var(--accent-dim)}.sandbox-panels{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.sandbox-left,.sandbox-right{min-width:0}.sandbox-assumptions{flex-direction:column;height:100%;display:flex}.sandbox-assumption-scroll{max-height:320px;margin-bottom:.5rem;overflow-y:auto}.sandbox-assumption-group{margin-bottom:1rem}.sandbox-group-title{font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:8px}.sandbox-field{align-items:center;gap:8px;margin-bottom:8px;display:flex}.sandbox-field label{font-size:11px;font-family:var(--mono);color:var(--text-2);min-width:140px}.sandbox-field input[type=number]{width:90px;font-size:11px;font-family:var(--mono);border:.5px solid var(--border);background:var(--bg);color:var(--text);border-radius:5px;outline:none;padding:4px 8px}.sandbox-field input[type=number]:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.sandbox-field input[type=range]{max-width:120px;accent-color:var(--accent);flex:1}.sandbox-slider-val{font-size:11px;font-family:var(--mono);color:var(--text-2);min-width:32px}.sandbox-adjusted{flex-direction:column;gap:6px;margin-bottom:1rem;display:flex}.sandbox-adjusted-row{font-size:11px;font-family:var(--mono);align-items:center;gap:12px;display:flex}.sandbox-adjusted-row span:first-child{color:var(--text-2);flex:1}.sandbox-adjusted-row span:nth-child(2){color:var(--text);text-align:right;min-width:70px;font-weight:500}.sandbox-adjusted-row span:last-child{text-align:right;min-width:60px;font-weight:500}.sandbox-adjusted-net{border-top:.5px solid var(--border);margin-top:4px;padding-top:8px;font-weight:600}.sandbox-delta-ok{color:var(--ok)}.sandbox-delta-over{color:var(--over)}.sandbox-send-btn{font-size:13px;font-family:var(--mono);background:var(--text);color:var(--bg);border-radius:var(--radius-sm);cursor:pointer;border:none;padding:10px 16px;font-weight:500;transition:opacity .15s}.sandbox-send-btn:hover:not(:disabled){opacity:.9}.sandbox-send-btn:disabled{opacity:.5;cursor:not-allowed}.sandbox-chat-panel{flex-direction:column;height:560px;display:flex}.sandbox-chat-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sandbox-email-btn{font-size:11px;font-family:var(--mono);border-radius:var(--radius-sm);border:.5px solid var(--border);background:var(--surface-2);color:var(--text-2);cursor:pointer;padding:6px 12px;transition:all .15s}.sandbox-email-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.sandbox-email-btn:disabled{opacity:.6;cursor:not-allowed}.sandbox-chat-messages{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 0;display:flex;overflow-y:auto}.sandbox-msg{flex-direction:column;align-self:flex-start;gap:4px;max-width:90%;display:flex}.sandbox-msg-controller{align-self:flex-start}.sandbox-msg-user{align-self:flex-end}.sandbox-msg-role{font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.05em;color:var(--text-3)}.sandbox-msg-body{font-size:12px;font-family:var(--mono);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word;padding:10px 14px;line-height:1.5}.sandbox-msg-user .sandbox-msg-body{background:var(--surface);border:.5px solid var(--border);color:var(--text)}.sandbox-msg-controller .sandbox-msg-body{background:var(--surface-2);border:.5px solid var(--border);color:var(--text)}.sandbox-msg-error .sandbox-msg-body{background:var(--over-bg);color:var(--over);border-color:#c930304d}.sandbox-loading-dots{color:var(--text-3);font-style:italic}.sandbox-chat-input-wrap{border-top:.5px solid var(--border);flex-shrink:0;gap:8px;padding-top:12px;display:flex}.sandbox-chat-input{font-size:12px;font-family:var(--mono);border-radius:var(--radius-sm);border:.5px solid var(--border);background:var(--bg);color:var(--text);outline:none;flex:1;padding:10px 12px}.sandbox-chat-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.sandbox-chat-input::placeholder{color:var(--text-3)}.sandbox-send-msg-btn{font-size:12px;font-family:var(--mono);background:var(--text);color:var(--bg);border-radius:var(--radius-sm);cursor:pointer;border:none;padding:10px 16px;font-weight:500;transition:opacity .15s}.sandbox-send-msg-btn:hover:not(:disabled){opacity:.9}.sandbox-send-msg-btn:disabled{opacity:.5;cursor:not-allowed}@media (width<=860px){.sandbox-panels{grid-template-columns:1fr}.sandbox-baseline-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=540px){.sandbox-baseline-grid{grid-template-columns:1fr}}:root{--bg:#f0efe9;--surface:#fafaf7;--surface-2:#e8e7e1;--border:#0000001a;--border-strong:#0000002e;--text:#1a1a16;--text-2:#5a5a54;--text-3:#8a8a82;--over:#c93030;--over-bg:#fceaea;--ok:#2e7d1e;--ok-bg:#e6f3e1;--accent:#4f8ef7;--accent-dim:#4f8ef726;--warn-bg:#fef3e2;--warn-text:#7a4a08;--info-bg:#e8f2fd;--info-text:#0c3d6b;--mono:"DM Mono", monospace;--sans:"Syne", sans-serif;--radius:10px;--radius-sm:6px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh}.app{min-height:100vh}.content{max-width:1160px;margin:0 auto;padding:0 1.5rem 3rem}.header{border-bottom:.5px solid var(--border-strong);justify-content:space-between;align-items:center;max-width:1160px;margin:0 auto 1.5rem;padding:1.1rem 1.5rem;display:flex}.header-left{align-items:center;gap:12px;display:flex}.logo-mark{background:var(--text);width:34px;height:34px;color:var(--bg);border-radius:8px;justify-content:center;align-items:center;display:flex}h1{font-family:var(--sans);letter-spacing:-.02em;color:var(--text);font-size:18px;font-weight:700}.header-sub{color:var(--text-3);font-size:11px;font-family:var(--mono);margin-top:1px}.header-right{align-items:center;gap:8px;display:flex}.flag-pill{font-size:11px;font-family:var(--mono);background:var(--over-bg);color:var(--over);border:.5px solid #c9303033;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-weight:500;display:flex}.date-pill{font-size:11px;font-family:var(--mono);color:var(--text-2);background:var(--surface-2);border-radius:20px;padding:4px 10px}.alerts-wrap{flex-direction:column;gap:6px;margin-bottom:1.25rem;display:flex}.alert-row{border-radius:var(--radius-sm);font-size:12px;font-family:var(--mono);align-items:flex-start;gap:10px;padding:9px 12px;display:flex}.alert-warn{background:var(--warn-bg);color:var(--warn-text)}.alert-info{background:var(--info-bg);color:var(--info-text)}.alert-icon{opacity:.8;flex-shrink:0;margin-top:1px}.alert-content{flex:1;line-height:1.5}.alert-month{margin-right:6px;font-weight:500}.alert-dismiss{cursor:pointer;opacity:.5;color:inherit;background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px;display:flex}.alert-dismiss:hover{opacity:1}.metric-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:1.25rem;display:grid}.metric-card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);padding:14px 16px}.metric-label{font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:6px}.metric-value{letter-spacing:-.03em;color:var(--text);font-size:22px;font-weight:600}.metric-sub{font-size:11px;font-family:var(--mono);margin-top:4px}.metric-status-over{color:var(--over)}.metric-status-ok{color:var(--ok)}.metric-status-neutral{color:var(--text-3)}.month-tabs{flex-wrap:wrap;gap:6px;margin-bottom:1.25rem;display:flex}.month-tab{border-radius:var(--radius-sm);border:.5px solid var(--border);background:var(--surface);cursor:pointer;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 14px;transition:all .15s;display:flex}.month-tab:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-2)}.month-tab-active{background:var(--text)!important;border-color:var(--text)!important}.month-tab-active .month-tab-name{color:#ffffffe6}.month-tab-active .month-tab-total{color:#fff9}.month-tab-disabled{opacity:.4;cursor:not-allowed}.month-tab-name{color:var(--text);font-size:12px;font-weight:600}.month-tab-total{font-size:10px;font-family:var(--mono)}.tab-over{color:var(--over)}.tab-ok{color:var(--ok)}.panel{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:1rem 1.25rem}.panel-title{font-size:10px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:12px}.data-table{border-collapse:collapse;width:100%;font-size:12px;font-family:var(--mono)}.data-table th{color:var(--text-3);text-align:right;border-bottom:.5px solid var(--border);letter-spacing:.04em;padding:0 6px 8px;font-size:10px;font-weight:500}.data-table th:first-child{text-align:left}.data-table td{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;border-bottom:.5px solid #0000000d;padding:7px 6px}.data-table td:first-child{text-align:left}.data-table tr:last-child td{border-bottom:none}.td-over{color:var(--over);font-weight:500}.vendor-name-cell{align-items:center;gap:7px;display:flex}.vendor-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.threshold-input{width:68px;font-size:11px;font-family:var(--mono);border:.5px solid var(--border);background:var(--bg);color:var(--text);text-align:right;border-radius:5px;outline:none;padding:3px 6px}.threshold-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.badge{font-size:10px;font-family:var(--mono);letter-spacing:.02em;border-radius:20px;padding:2px 7px;font-weight:500;display:inline-flex}.badge-over{background:var(--over-bg);color:var(--over)}.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-neutral{background:var(--surface-2);color:var(--text-3)}.two-col{grid-template-columns:1.6fr 1fr;gap:1rem;margin-bottom:0;display:grid}.col-main,.col-side{min-width:0}.dept-bars{flex-direction:column;gap:10px;display:flex}.dept-bar-row{align-items:center;gap:10px;display:flex}.dept-bar-label{font-size:11px;font-family:var(--mono);color:var(--text-2);justify-content:space-between;min-width:130px;display:flex}.dept-bar-val{color:var(--text);font-weight:500}.dept-bar-track{background:var(--surface-2);border-radius:3px;flex:1;height:14px;overflow:hidden}.dept-bar-fill{border-radius:3px;height:100%;transition:width .4s}.dept-bar-pct{font-size:10px;font-family:var(--mono);color:var(--text-3);text-align:right;min-width:38px}.mini-bars{flex-direction:column;gap:8px;display:flex}.mini-bar-row{cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:3px 0;transition:background .1s;display:flex}.mini-bar-row:hover{background:var(--surface-2)}.mini-bar-selected{background:#0000000a}.mini-bar-empty{cursor:default}.mini-bar-empty:hover{background:0 0}.mini-bar-label{font-size:11px;font-family:var(--mono);color:var(--text-2);flex-shrink:0;width:52px}.mini-bar-track{background:var(--surface-2);border-radius:3px;flex:1;height:20px;position:relative;overflow:hidden}.mini-bar-target{background:var(--accent);opacity:.7;z-index:1;width:1.5px;position:absolute;top:0;bottom:0}.mini-bar-fill{border-radius:3px;height:100%;transition:width .35s}.mini-bar-val{font-size:11px;font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;width:58px;font-weight:500}.muted{color:var(--text-3)!important}.legend-row{flex-wrap:wrap;gap:14px;margin-bottom:10px;display:flex}.legend-item{font-size:10px;font-family:var(--mono);color:var(--text-3);align-items:center;gap:5px;display:flex}.legend-dot{border-radius:2px;flex-shrink:0;width:10px;height:10px}@media (width<=860px){.metric-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}}@media (width<=540px){.metric-grid{grid-template-columns:1fr 1fr}.content{padding:0 1rem 2rem}.header{padding:1rem}}
