:root{color:#172026;background:#f5f7f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}.shell{min-height:100vh}.topbar{align-items:center;background:#fff;border-bottom:1px solid #dce3e7;display:flex;gap:24px;justify-content:space-between;padding:20px 28px}h1,h2,h3,p{margin:0}h1{font-size:24px;font-weight:700}h2{font-size:15px;font-weight:700}.topbar p,.token-note,.empty{color:#64727b;font-size:14px}.topbar-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.segmented{background:#e9eef1;border:1px solid #d5dde2;border-radius:8px;display:grid;grid-template-columns:repeat(2,1fr);overflow:hidden;width:220px}.unit-toggle{width:120px}.segmented button{background:transparent;border:0;cursor:pointer;min-height:38px}.segmented button.active{background:#1f6f78;color:#fff}.workspace{display:grid;gap:20px;grid-template-columns:minmax(380px,520px) minmax(0,1fr);padding:20px}.panel,.control-card,.notice,.empty{background:#fff;border:1px solid #dce3e7;border-radius:8px}.controls{align-self:start;display:grid;gap:18px}.control-card{display:grid;gap:16px;padding:18px}.submit-card{padding:10px 12px}.control-group{display:grid;gap:12px}.group-label{align-items:baseline;color:#172026;display:flex;flex-wrap:wrap;font-size:12px;font-weight:800;gap:4px;letter-spacing:.04em;text-transform:uppercase}.group-label em{color:#85939c;font-size:12px;font-style:normal;font-weight:500;letter-spacing:0;line-height:1.35;text-transform:none}label{color:#3c4a52;display:grid;font-size:13px;font-weight:600;gap:7px}code.flag{background:#eef3f5;border:1px solid #d7e0e4;border-radius:5px;color:#1f6f78;display:inline-block;font-size:12px;font-weight:600;padding:2px 6px;width:fit-content}.field-label{align-items:baseline;display:flex;flex-wrap:wrap;gap:6px;min-width:0}.field-label .flag{flex:0 0 auto;max-width:100%}.default-tag{background:#eef2f4;border-radius:10px;color:#5b6b74;cursor:help;flex:0 0 auto;font-size:10px;font-weight:600;letter-spacing:.02em;line-height:1.4;margin-left:auto;padding:1px 7px;text-transform:uppercase;white-space:nowrap}input,select{background:#fff;border:1px solid #cbd6dc;border-radius:6px;color:#172026;min-height:40px;padding:8px 10px;width:100%}input:focus,select:focus{border-color:#1f6f78;outline:2px solid rgba(31,111,120,.16)}.grid2{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.grid2 label,.override-grid label{align-items:start;display:grid;grid-row:span 2;grid-template-rows:subgrid;min-width:0}details{border-top:1px solid #e4eaee;padding-top:12px}summary{cursor:pointer;font-size:14px;font-weight:700}.override-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.primary{background:#1f6f78;border:0;border-radius:6px;color:#fff;cursor:pointer;font-weight:700;min-height:42px}.primary:disabled{cursor:not-allowed;opacity:.55}.ghost{background:#eef3f5;border:1px solid #d7e0e4;border-radius:6px;color:#1f6f78;cursor:pointer;font-size:13px;font-weight:600;padding:6px 12px}.results,.stack{display:grid;gap:14px}.empty,.notice{padding:18px}.notice{color:#233139}.notice.error{border-color:#e3aaa6;color:#8d2c24}.notice.error ul{margin:10px 0 0;padding-left:18px}.notice.error li{margin-bottom:6px}.notice.assumptions{background:#fff8e6;border-color:#e8c876;color:#6b5316;padding:0}.notice.assumptions summary{color:#4d3b0f;padding:14px 18px}.notice.assumptions[open] summary{border-bottom:1px solid #f0dca6}.notice.assumptions .count{background:#e8c876;border-radius:10px;color:#4d3b0f;font-size:12px;margin-left:6px;padding:1px 8px}.notice.assumptions ul{margin:0;padding:12px 18px 16px 34px}.notice.assumptions li{font-size:13px;line-height:1.5;margin-bottom:8px}.metrics{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.sizes{align-items:start;display:grid;gap:14px;grid-template-columns:minmax(200px,300px) minmax(0,1fr)}.sizes-fixed,.sizes-scenarios{display:grid;gap:10px}.scenario-card{background:#fff;border:1px solid #dce3e7;border-radius:8px;color:inherit;cursor:pointer;font:inherit;overflow:hidden;padding:0;text-align:left;transition:border-color .16s ease,border-width .16s ease,box-shadow .16s ease,transform .16s ease;width:100%}.scenario-card:hover{border-color:#22a6b3;border-width:1px;box-shadow:0 8px 22px #1f6f7824;transform:translateY(-1px)}.scenario-card.active{border-color:#14b8a6;border-width:2px;box-shadow:0 0 0 3px #14b8a62e,0 12px 28px #14b8a629}.scenario-card.active .scenario-head{background:linear-gradient(90deg,#ecfdf5,#fff 65%)}.scenario-card.active .scenario-count{background:#ccfbf1;color:#0f766e}.scenario-card.warning{border-color:#ff8472}.scenario-head{align-items:center;background:#fff;border-bottom:1px solid #e4eaee;display:flex;gap:12px;padding:10px 14px}.scenario-count{align-items:baseline;background:#e7f0f1;border-radius:7px;color:#1f6f78;display:inline-flex;font-size:18px;font-weight:700;gap:3px;padding:5px 10px}.scenario-count small{font-size:11px;font-weight:600}.scenario-title{display:flex;flex-direction:column;gap:2px}.scenario-title strong{font-size:14px}.scenario-title span{color:#66757e;font-size:12px}.scenario-stats{display:grid;grid-template-columns:1fr 1fr}.scenario-stat{background:#fff;display:grid;gap:6px;padding:12px 14px}.scenario-stat>span{color:#5f7a7e;font-size:12px}.scenario-stat>strong{color:#1f6f78;font-size:18px;line-height:1.2}.scenario-stat.total{background:#1f6f78}.scenario-stat.total>span{color:#cfe6e8}.scenario-stat.total>strong{color:#fff}.scenario-stat em{color:#66757e;font-size:11px;font-style:normal}.scenario-stat.total em{color:#cfe6e8}.metric{background:#fff;border:1px solid #dce3e7;border-radius:8px;display:grid;gap:8px;min-height:88px;padding:14px}.metric.primary{background:#1f6f78;border-color:#1f6f78}.metric.primary span{color:#cfe6e8}.metric.primary strong{color:#fff}.metric span{color:#66757e;font-size:13px}.metric strong{font-size:18px;line-height:1.25}.panel{padding:16px}.panel>summary{font-size:15px}.panel-head{align-items:center;display:flex;justify-content:space-between}.panel-body{display:grid;gap:14px;margin-top:12px}.hint{color:#66757e;font-size:13px}.command{background:#10262b;border:0;color:#d6eef0;font-size:12.5px;line-height:1.6}.flag-table{display:grid;gap:6px}.flag-row{align-items:center;border-top:1px solid #eef2f4;display:grid;gap:10px;grid-template-columns:minmax(160px,auto) 1fr auto;padding-top:6px}.flag-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;overflow-wrap:anywhere}.badge{border-radius:10px;font-size:11px;font-weight:600;padding:2px 8px;white-space:nowrap}.badge-you{background:#e2effb;color:#1c5a8f}.badge-default{background:#eef2f4;color:#5b6b74}.badge-model{background:#e4f3ec;color:#1f7a4d}.badge-hardware{background:#e0f7f4;color:#0f766e}.badge-assumed{background:#fdf0d3;color:#8d6a1f}.badge-missing{background:#f7dedb;color:#8d2c24}.formula-list{display:grid;gap:10px}.formula-line{display:grid;gap:6px}.formula-line>span{color:#66757e;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.var-table{border-top:1px solid #e4eaee;display:grid;padding-top:12px}.var-head{color:#85939c;display:grid;font-size:11px;font-weight:700;grid-template-columns:minmax(200px,1fr) minmax(140px,.7fr);letter-spacing:.04em;padding-bottom:6px;text-transform:uppercase}.var-row{align-items:center;border-top:1px solid #eef2f4;display:grid;gap:10px;grid-template-columns:minmax(200px,1fr) minmax(140px,.7fr);padding:8px 0}.var-name{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px}.var-role{color:#66757e;font-size:12px}.var-val{align-items:center;display:flex;gap:8px;justify-content:space-between}.var-val span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;overflow-wrap:anywhere}code,pre{background:#f3f6f7;border:1px solid #dce3e7;border-radius:6px;color:#233139;display:block;overflow-x:auto;padding:10px;white-space:pre-wrap}.inline-code{display:inline;padding:1px 5px;white-space:normal}pre{font-size:12px;margin:0;max-height:360px}@media(max-width:960px){.topbar,.workspace{grid-template-columns:1fr}.topbar{align-items:stretch;display:grid}.topbar-actions{justify-content:stretch}.segmented,.unit-toggle{width:100%}.workspace{display:grid}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.sizes{grid-template-columns:1fr}}@media(max-width:560px){.grid2,.override-grid,.metrics,.scenario-stats,.flag-row,.var-row,.var-head{grid-template-columns:1fr}.topbar,.workspace{padding:16px}}
