:root{--page:#f2f1ec;--card:#fff;--line:#e2e0d9;--ink:#1e2a22;--muted:#6b716c;--green:#4f7a5b;--green-pale:#e6efe8;--green-chip:#3d6449;--good:#3d7a4f;--watch:#b7862b;--serious:#b0473d}*{box-sizing:border-box}body{background:var(--page);color:var(--ink);font-variant-numeric:tabular-nums;margin:0;font:14px/1.45 Instrument Sans,system-ui,sans-serif}.mono,.rid{font-family:IBM Plex Mono,ui-monospace,monospace}.top{border-bottom:1px solid var(--ink);background:var(--page);justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.brand{letter-spacing:.01em;font-size:18px;font-weight:700}.env{text-transform:uppercase;letter-spacing:.08em;background:var(--green-pale);color:var(--green-chip);border-radius:4px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:600}.who{color:var(--muted);align-items:center;gap:12px;display:flex}button{font:inherit;cursor:pointer}.link{color:var(--green);background:0 0;border:none;padding:0}.primary{background:var(--green);color:#fff;border:none;border-radius:4px;padding:8px 18px;font-weight:600}.layout{grid-template-columns:300px 1fr;align-items:start;gap:20px;padding:20px 24px;display:grid}.library{background:var(--card);border:1px solid var(--line);border-radius:4px;max-height:calc(100vh - 100px);padding:12px;position:sticky;top:20px;overflow:auto}.group{margin-top:10px}.group-name{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:6px 4px;font-size:11px}.case{text-align:left;width:100%;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:4px;padding:4px 6px;display:block;overflow:hidden}.case:hover{background:var(--green-pale)}.case.active{background:var(--green);color:#fff}.card{background:var(--card);border:1px solid var(--line);border-radius:4px;margin-bottom:16px;padding:14px 16px}.card-title{border-bottom:1px solid var(--ink);margin-bottom:8px;padding-bottom:6px;font-weight:700}.purpose{margin:4px 0}.meta{color:var(--muted);margin:4px 0 0;font-size:12px}.tiles{grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px;display:grid}.tile{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--green);border-radius:4px;padding:10px 12px}.tile.bad{border-left-color:var(--serious)}.tile-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px}.tile-value{margin-top:2px;font-size:24px;font-weight:600}.tile-sub{color:var(--muted);font-size:11px}.grid2{grid-template-columns:3fr 2fr;align-items:start;gap:16px;display:grid}table.rows{border-collapse:collapse;width:100%}table.rows td{border-bottom:1px solid var(--line);vertical-align:top;padding:4px 6px}table.rows td.num{text-align:right;white-space:nowrap}table.rows tr.subtotal td{border-top:1px solid var(--ink);font-weight:700}.rid{color:var(--muted);font-size:10px;display:block}.note{color:var(--muted);font-size:11px;display:block}.pill{border-radius:10px;padding:1px 8px;font-size:11px;font-weight:600}.pill.ok{color:var(--good);background:#e3efe6}.pill.watch,.pill.warning{color:var(--watch);background:#f5ecd9}.error{border:1px solid var(--serious);color:var(--serious);background:#fbeeec;border-radius:4px;margin:16px 24px;padding:10px 14px}.loading{color:var(--muted);padding:40px}.signin{background:var(--card);border:1px solid var(--line);border-radius:4px;max-width:420px;margin:15vh auto;padding:28px}.seg{border:1px solid var(--line);background:var(--card);border-radius:4px;display:inline-flex;overflow:hidden}.seg button{color:var(--ink);background:0 0;border:none;padding:5px 12px}.seg button.on{background:var(--green);color:#fff}.views{margin-bottom:14px}.dash-bar{z-index:2;background:var(--page);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:8px 0;display:flex;position:sticky;top:0}.dash-nav{flex-wrap:wrap;gap:4px 10px;font-size:12px;display:flex}.dash-nav a{color:var(--ink);white-space:nowrap;text-decoration:none}.dash-nav a:hover{color:var(--green)}.chip{text-align:center;background:var(--green-pale);min-width:18px;color:var(--green-chip);border-radius:3px;margin-right:5px;padding:0 4px;font-size:11px;font-weight:600;display:inline-block}.switches{align-items:center;gap:14px;font-size:12px;display:flex}.check{color:var(--muted);align-items:center;gap:5px;display:flex}.dash-section{margin-bottom:26px;scroll-margin-top:60px}.dash-section h2{align-items:center;margin:18px 0 2px;font-size:18px;display:flex}.intro{color:var(--muted);margin:0 0 10px}.dash-grid{grid-template-columns:repeat(auto-fill,minmax(460px,1fr));align-items:start;gap:14px;display:grid}.dash-grid>.tiles,.dash-grid>.card.wide{grid-column:1/-1}.dash-grid .tiles{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin:0}.dash-grid .card{margin:0}.chart{position:relative}.chart text.axis{fill:var(--muted);font-size:10px}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 12px;margin-top:2px;font-size:11px;display:flex}.legend i{vertical-align:middle;width:12px;height:9px;margin-right:4px;display:inline-block}.tip{border:1px solid var(--line);pointer-events:none;background:#fffffff5;border-radius:4px;min-width:180px;padding:6px 8px;font-size:11px;position:absolute;top:8px;right:8px;box-shadow:0 1px 3px #0000000f}.tip div{justify-content:space-between;gap:12px;display:flex}.ids{color:var(--muted);word-break:break-all;margin-top:6px;font-size:10px}.scroll{overflow-x:auto}table.grid th{text-align:right;border-bottom:1px solid var(--ink);color:var(--muted);padding:4px 6px;font-size:11px;font-weight:600}table.grid th:first-child{text-align:left}.library details.qa{border-top:1px solid var(--line,#dcd9cf);margin-top:18px;padding-top:10px}.library details.qa summary{cursor:pointer;color:var(--muted,#6b6a63);font-size:12px}.library details.qa .note{color:var(--muted,#6b6a63);margin:6px 0 8px;font-size:11px}.views-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.views-row .views{margin-bottom:0}.scenario-bar{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--green);border-radius:4px;align-items:center;gap:12px;padding:6px 10px;display:flex}.scenario-bar.dirty{border-left-color:var(--watch)}.scenario-bar.bad{border-left-color:var(--serious)}.scenario-bar .primary{padding:6px 14px}.primary:disabled{opacity:.4;cursor:default}.change-list{max-height:240px;overflow:auto}.inputs-bar{z-index:2;background:var(--page);flex-wrap:wrap;align-items:center;gap:14px;padding:8px 0 10px;display:flex;position:sticky;top:0}.search{font:inherit;border:1px solid var(--line);background:var(--card);border-radius:4px;flex:0 320px;padding:6px 10px}.inputs-nav{flex-wrap:wrap;gap:4px;display:flex}.inputs-nav a{color:var(--green-chip);background:var(--green-pale);border-radius:3px;padding:1px 6px;font-size:12px;text-decoration:none}.in-sub{margin:10px 0 16px}.in-sub-title{margin-bottom:4px;font-size:13px;font-weight:600}.in-grid-wrap{margin-bottom:8px;overflow-x:auto}.in-table{border-collapse:collapse;width:100%}.in-table td,.in-table th{border-bottom:1px solid var(--line);vertical-align:top;text-align:left;padding:3px 6px}.in-label{min-width:280px;max-width:520px}.in-label .rid{color:var(--muted);font-size:11px;display:block}.in-unit{color:var(--muted);white-space:nowrap;width:90px;font-size:12px}.in-item{white-space:nowrap;min-width:96px;font-size:12px;font-weight:600}.in-item small{color:var(--muted);text-overflow:ellipsis;max-width:120px;font-weight:400;display:block;overflow:hidden}.in-cell{width:140px}.in-input{width:100%;min-width:92px;font:inherit;border:1px solid var(--line);text-align:right;background:#fff;border-radius:3px;padding:3px 6px}select.in-input,input[type=date].in-input{text-align:left}.in-input.changed{border-color:var(--watch);background:#f6ecd3}.in-input.unreadable{border-color:var(--serious);background:#f7e3e0}.in-table tr.bad td{background:#fbefed}.rule{color:var(--serious);margin-top:2px;font-size:12px}.rule .mono{word-break:break-all;font-size:11px}.layout>main{min-width:0}.in-section{overflow:hidden}.views-row{z-index:3;background:var(--page);padding:6px 0;position:sticky;top:0}.inputs-bar{top:52px}.in-input[inputmode=text]{text-align:left}
