:root{--bg: #0b0e0c;--panel: #161b15;--panel-2: #1c231b;--line: #28301f;--line-soft: #1f271e;--ink: #eef2ec;--soft: #9aa69a;--faint: #808a80;--green: #4ec294;--green-l: #63d9a6;--amber: #e2b869;--sky: #7bb0e0;--danger: #e0765f;--green-bg: rgba(78, 194, 148, .15);--amber-bg: rgba(226, 184, 105, .15);--sky-bg: rgba(123, 176, 224, .14);--danger-bg: rgba(224, 118, 95, .14);--radius: 13px;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--green-l);text-decoration:none}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono)}.muted{color:var(--faint);font-size:13px}.app{min-height:100%;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;padding:12px clamp(16px,4vw,32px);background:#0b0e0ce6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:15px;letter-spacing:-.01em}.brand .mark{width:24px;height:24px;border-radius:7px;background:linear-gradient(145deg,var(--green-l),var(--green));display:grid;place-items:center;color:#07130c;font-weight:800;font-size:13px}.topnav{display:flex;gap:4px;margin-left:8px}.topnav a{font-size:13.5px;color:var(--faint);padding:7px 12px;border-radius:8px;font-weight:500}.topnav a:hover{color:var(--ink);background:var(--panel)}.topnav a.active{color:var(--ink);background:var(--panel-2)}.account{margin-left:auto;display:flex;align-items:center;gap:10px}.account .email{font-size:12.5px;color:var(--faint)}.account .email:hover{color:var(--soft)}.content{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:clamp(20px,3.5vw,34px) clamp(16px,4vw,32px) 48px}.tabbar{display:none}@media (max-width: 720px){.topnav,.account .email{display:none}.content{padding-bottom:86px}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:30;background:#0f130ef5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px))}.tabbar a{flex:1;display:grid;justify-items:center;gap:4px;font-size:10px;color:var(--faint);padding:4px 2px}.tabbar a .ic{width:20px;height:20px;border-radius:7px;border:2px solid currentColor;opacity:.85}.tabbar a.active{color:var(--green)}.tabbar a.active .ic{background:var(--green-bg);border-color:var(--green)}}.page-title{font-size:clamp(22px,4vw,28px);letter-spacing:-.02em;font-weight:750;margin:0;text-wrap:balance}.page-sub{margin:6px 0 22px;color:var(--soft);font-size:14.5px;max-width:64ch}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card+.card,.stack>*+*{margin-top:16px}.card-h{font-size:14px;font-weight:650;margin:0 0 14px}.kicker{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:650}.grid{display:grid;gap:16px;grid-template-columns:1fr}@media (min-width: 640px){.grid-2{grid-template-columns:1fr 1fr}}@media (min-width: 860px){.grid-3{grid-template-columns:1fr 1fr 1fr}}.figure{font-family:var(--serif);font-weight:600;letter-spacing:-.01em;line-height:1;font-variant-numeric:tabular-nums;font-size:clamp(30px,6vw,40px)}.figure small{font-family:var(--sans);font-size:.34em;color:var(--faint);font-weight:500}.metrics{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:12px}.metrics div{font-size:11.5px;color:var(--soft)}.metrics b{display:block;font-size:14px;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.status{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;white-space:nowrap}.status .ic{width:15px;height:15px;border-radius:50%;display:grid;place-items:center;font-size:9px;flex:none}.status.over{color:var(--amber)}.status.over .ic{background:var(--amber-bg)}.status.under{color:var(--sky)}.status.under .ic{background:var(--sky-bg)}.status.ok{color:var(--green-l)}.status.ok .ic{background:var(--green-bg)}.badge{display:inline-block;font-size:10.5px;font-weight:650;padding:2px 8px;border-radius:999px;letter-spacing:.02em}.badge.over{background:var(--amber-bg);color:var(--amber)}.badge.under,.badge.warn{background:var(--sky-bg);color:var(--sky)}.badge.ok{background:var(--green-bg);color:var(--green-l)}.badge.off{background:var(--panel-2);color:var(--faint)}.alloc-list{display:grid;gap:15px}.alloc-row{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center;padding-bottom:15px;border-bottom:1px solid var(--line-soft)}.alloc-row:last-child{border-bottom:0;padding-bottom:0}.alloc-name{font-size:13.5px;color:var(--ink);font-weight:600;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.alloc-name .tk{font-family:var(--mono);font-size:10px;color:var(--faint);font-weight:400}.track{grid-column:1 / -1;height:7px;border-radius:5px;background:var(--panel-2);position:relative;margin-top:8px}.track .fill{position:absolute;top:0;bottom:0;left:0;border-radius:5px}.track .fill.g{background:linear-gradient(90deg,var(--green),var(--green-l))}.track .fill.a{background:linear-gradient(90deg,#c79a44,var(--amber))}.track .tgt{position:absolute;top:-4px;bottom:-9px;width:2px;background:var(--ink);opacity:.7}.track .tgt:after{content:attr(data-label);position:absolute;top:14px;left:50%;transform:translate(-50%);font-size:9px;color:var(--soft);white-space:nowrap;font-variant-numeric:tabular-nums}.alloc-say{grid-column:1 / -1;font-size:11.5px;color:var(--soft);line-height:1.35;margin-top:22px}.align{display:flex;align-items:center;gap:16px}.align svg{width:56px;height:56px;flex:none}.align .v{font-size:14px;color:var(--ink);font-weight:600;margin-top:2px}.align .h{font-size:11.5px;color:var(--soft);margin-top:3px;line-height:1.35}.months{display:flex;gap:6px;margin-top:12px}.months .m{flex:1;text-align:center}.months .m .bar{height:26px;border-radius:5px;background:var(--panel-2);border:1px solid var(--line)}.months .m.on .bar{background:linear-gradient(180deg,var(--green-l),var(--green));border-color:transparent}.months .m span{display:block;font-size:9px;color:var(--faint);margin-top:5px;text-transform:capitalize}.nudge{font-size:12px;color:var(--soft);margin-top:12px;line-height:1.4}.nudge b{color:var(--green-l);font-weight:600}.btn{font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);padding:9px 15px;border-radius:9px;transition:border-color .15s,background .15s}.btn:hover:not(:disabled){border-color:var(--green)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--green);border-color:var(--green);color:#07130c;font-weight:700}.btn.primary:hover:not(:disabled){background:var(--green-l)}.btn.ghost{background:transparent;color:var(--soft)}.btn.danger{background:transparent;border:0;color:var(--danger);padding:4px 8px}.btn.block{display:block;width:100%;text-align:center}.btn+.btn{margin-top:8px}.cluster{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.label{display:block;font-size:12px;color:var(--soft);margin-bottom:6px}.input{width:100%;font-family:inherit;font-size:14px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:10px 12px}.input:focus{outline:none;border-color:var(--green)}.input.big{font-family:var(--serif);font-size:24px;padding:12px 14px}.field-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.field-row>.f{flex:1;min-width:150px}.rows{display:grid;gap:10px}.list-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--panel-2);border:1px solid var(--line);border-radius:11px;padding:12px 14px}.list-row .grow{flex:1;min-width:120px}.list-row .t1{font-size:14px;font-weight:600}.list-row .t2{font-size:12px;color:var(--faint);margin-top:2px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:440px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line-soft);white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-weight:650}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.banner{border-radius:10px;padding:11px 14px;font-size:14px;margin-bottom:16px}.banner.error{background:var(--danger-bg);border:1px solid var(--danger);color:#ffc4b7}.banner.notice{background:var(--green-bg);border:1px solid transparent;color:var(--green-l)}.banner.info{background:var(--sky-bg);border-left:3px solid var(--sky);color:#cfe3f4}.steps{display:flex;gap:6px;margin:12px 0}.step{flex:1;font-size:10.5px;color:var(--soft);background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:9px 10px;line-height:1.3}.step b{display:block;color:var(--ink);font-size:11px;margin-bottom:2px}.step.now{border-color:var(--green)}.disclaimer{font-size:10.5px;color:var(--faint);line-height:1.45;margin-top:12px}.empty{text-align:center;padding:8px 6px 4px}.empty .figure{margin:6px 0}.ob-steps{display:grid;gap:10px;margin:18px auto 0;max-width:460px;text-align:left}.ob{display:flex;gap:12px;align-items:flex-start;background:var(--panel-2);border:1px solid var(--line);border-radius:11px;padding:13px 15px}.ob .n{width:22px;height:22px;border-radius:7px;background:var(--green-bg);color:var(--green-l);font-weight:700;font-size:12px;display:grid;place-items:center;flex:none}.ob.done .n{background:var(--green);color:#07130c}.ob b{display:block;font-size:13.5px}.ob p{margin:3px 0 0;font-size:12px;color:var(--soft);line-height:1.4}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:360px}.split-line{display:flex;align-items:center;justify-content:space-between;font-size:13px;gap:10px}.split-line+.split-line{margin-top:9px}.split-line .v{font-family:var(--mono);color:var(--green-l);font-weight:600}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
