:root{--ground: #0c0e11;--panel: #151920;--panel2: #1b2029;--line: #242a33;--text: #e9ecf1;--dim: #8b93a1;--faint: #5a6270;--ember: #ff5c1f;--good: #41d98d;--warn: #ffb020;--bad: #ff4d5e;--phase-hyp: #4fa9ff;--phase-str: var(--ember);--phase-pwr: #b08cff;--phase-unl: var(--faint);--sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro", system-ui, "Segoe UI", Roboto, sans-serif;--display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro", system-ui, sans-serif;--rad: 10px;--rad-sm: 7px;--sidebar-w: 216px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--ember);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--ember);outline-offset:2px}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100%}.sidebar{background:var(--panel);border-right:1px solid var(--line);padding:20px 12px;display:flex;flex-direction:column;gap:22px}.brand{font-family:var(--display);font-size:17px;font-weight:700;letter-spacing:2.4px;padding:4px 10px 0;white-space:nowrap}.brand em{font-style:normal;color:var(--ember)}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:block;padding:9px 10px;border-radius:var(--rad-sm);color:var(--dim);font-weight:600;font-size:13.5px;letter-spacing:.2px;text-decoration:none}.nav a:hover{background:var(--panel2);color:var(--text);text-decoration:none}.nav a.on{background:var(--panel2);color:var(--text);box-shadow:inset 2px 0 0 var(--ember)}.side-foot{margin-top:auto;padding:0 10px;color:var(--faint);font-size:11px;line-height:1.6;display:flex;flex-direction:column;gap:8px}.main{padding:26px 30px 60px;min-width:0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.page-head h1{font-family:var(--display);font-size:25px;font-weight:700;letter-spacing:-.4px;margin:0}.page-head p{margin:4px 0 0;color:var(--dim);font-size:13px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--rad);padding:18px}.card+.card{margin-top:16px}.card>h2{margin:0 0 12px;font-family:var(--display);font-size:15px;font-weight:700;letter-spacing:.1px}.card-sub{margin:-6px 0 14px;color:var(--dim);font-size:12.5px}.tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.tbl th{text-align:left;text-transform:uppercase;font-size:10.5px;font-weight:700;letter-spacing:1.1px;color:var(--faint);padding:0 12px 9px;border-bottom:1px solid var(--line);white-space:nowrap}.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tbody tr:hover td{background:var(--panel2)}.tbl tbody tr:last-child td{border-bottom:0}.tbl .num{text-align:right}.tbl .muted{color:var(--dim)}.empty{padding:26px 12px;text-align:center;color:var(--dim);font-size:13px}.pill{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:var(--panel2);color:var(--dim);font-size:10.5px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;white-space:nowrap}.pill.good{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,transparent)}.pill.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.pill.bad{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.pill.ember{color:var(--ember);border-color:color-mix(in srgb,var(--ember) 40%,transparent)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--panel2);color:var(--text);font:inherit;font-weight:600;font-size:13px;padding:8px 14px;border-radius:var(--rad-sm);cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){border-color:#2f3742}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--ember);border-color:var(--ember);color:#14100d}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.danger{color:var(--bad)}.btn.sm{padding:5px 10px;font-size:12px}.btn.link{background:none;border-color:transparent;color:var(--dim);padding:5px 6px}.btn.link:hover:not(:disabled){color:var(--text);border-color:transparent}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spacer{flex:1}.field{display:block;margin-bottom:12px}.field>span{display:block;text-transform:uppercase;font-size:10.5px;font-weight:700;letter-spacing:1.1px;color:var(--faint);margin-bottom:6px}input[type=text],input[type=email],input[type=password],select,textarea{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:var(--rad-sm);color:var(--text);font:inherit;font-size:16px;padding:9px 11px}input::placeholder,textarea::placeholder{color:var(--faint)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--rad-sm);overflow:hidden}.seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--panel2);color:var(--dim);font:inherit;font-weight:600;font-size:12.5px;padding:7px 16px;cursor:pointer}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-pressed=true]{background:var(--ember);color:#14100d}.msg{border:1px solid var(--line);border-radius:var(--rad-sm);padding:9px 12px;font-size:13px;margin:10px 0}.msg.err{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.msg.ok{color:var(--good);border-color:color-mix(in srgb,var(--good) 40%,transparent)}.msg.note{color:var(--dim)}.msg.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:12px;word-break:break-all}.centre{min-height:100%;display:flex;align-items:center;justify-content:center;padding:30px 18px}.centre>.card{width:100%;max-width:400px}.motto{color:var(--faint);font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;margin:0 0 18px}.ph-HYP{--phase: var(--phase-hyp)}.ph-STR{--phase: var(--phase-str)}.ph-PWR{--phase: var(--phase-pwr)}.ph-UNL{--phase: var(--phase-unl)}.rail{display:flex;flex-wrap:wrap;gap:5px}.rail-week{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:46px;padding:6px 0 7px;background:var(--panel2);border:1px solid var(--line);border-top:3px solid var(--phase, var(--line));border-radius:var(--rad-sm);color:var(--dim);font:inherit;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px}.rail-week em{font-style:normal;font-size:9px;font-weight:800;letter-spacing:.8px;color:var(--phase, var(--faint))}.rail-week:hover{color:var(--text)}.rail-week.on{background:color-mix(in srgb,var(--phase) 18%,var(--panel2));border-color:var(--phase);color:var(--text)}.rail-week.add{color:var(--faint);font-size:16px;border-top-color:var(--line)}.board{display:flex;align-items:flex-start;gap:12px;margin-top:16px;overflow-x:auto;padding-bottom:6px}.day-col{flex:0 0 250px;background:var(--ground);border:1px solid var(--line);border-radius:var(--rad);padding:10px;display:flex;flex-direction:column;gap:8px}.day-col>header{display:flex;align-items:center;gap:4px}.day-col .day-name{font-size:13px;font-weight:700;padding:6px 8px;background:transparent;border-color:transparent}.day-col .day-name:hover,.day-col .day-name:focus{background:var(--panel2);border-color:var(--line)}.day-col span.day-name.static{border:1px solid transparent;line-height:1.6}.day-col.add-day{-webkit-appearance:none;-moz-appearance:none;appearance:none;align-items:center;justify-content:center;min-height:90px;border-style:dashed;color:var(--faint);font:inherit;font-weight:600;cursor:pointer}.day-col.add-day:hover{color:var(--text);border-color:#2f3742}.slot{background:var(--panel);border:1px solid var(--line);border-radius:var(--rad-sm);padding:8px;display:flex;flex-direction:column;gap:6px}.slot.patched{box-shadow:inset 2px 0 0 var(--ember);border-color:color-mix(in srgb,var(--ember) 30%,var(--line))}.slot-head{display:flex;align-items:flex-start;gap:2px}.slot-name{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;color:var(--text);font:inherit;font-weight:600;font-size:12.5px;line-height:1.3;text-align:left;padding:2px 0;flex:1;cursor:pointer}.slot-name:hover{color:var(--ember)}.slot-tools{display:flex;flex-shrink:0}.slot-tools .btn{padding:2px 4px;font-size:11px}.slot .rx{display:grid;grid-template-columns:40px 10px 1fr;align-items:center;gap:5px}.slot .rx input{font-size:13px;padding:5px 7px}.slot .rx input:first-child{text-align:center;font-variant-numeric:tabular-nums}.slot .rx .x{color:var(--faint);text-align:center;font-size:12px}.slot .rx input:last-child{grid-column:1 / -1}.slot select{font-size:12.5px;padding:5px 7px}.slot-note{margin:0;color:var(--faint);font-size:11px;line-height:1.4}.add-slot{border-style:dashed;color:var(--dim);background:none}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#06080ba8;display:flex;align-items:center;justify-content:center;padding:24px 16px;z-index:20}.sheet{background:var(--panel);border:1px solid var(--line);border-radius:var(--rad);padding:16px;width:100%;max-width:520px;max-height:100%;display:flex;flex-direction:column}.pick-list{overflow-y:auto;border-top:1px solid var(--line)}.pick{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:12px;background:none;border:0;border-bottom:1px solid var(--line);color:var(--text);font:inherit;font-size:13px;text-align:left;padding:9px 8px;cursor:pointer}.pick:hover{background:var(--panel2)}.pick .muted{color:var(--faint);font-size:11px;text-transform:uppercase;letter-spacing:.8px;white-space:nowrap}.chart{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.chart svg{display:block;overflow:visible}.chart-grid{stroke:var(--line);stroke-width:1}.chart-line{stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.chart-bar{fill:var(--ember);opacity:.85}.chart-bar:hover{opacity:1}.chart-axis{display:flex;justify-content:space-between;color:var(--faint);font-size:10.5px;letter-spacing:.4px;margin-top:6px}.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;color:var(--dim);font-size:11.5px}.legend i{display:inline-block;width:10px;height:2px;margin-right:6px;vertical-align:middle;border-radius:2px;background:currentColor}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.stat{background:var(--ground);border:1px solid var(--line);border-radius:var(--rad-sm);padding:12px 14px}.stat b{display:block;font-family:var(--display);font-size:26px;font-weight:700;letter-spacing:-.6px;line-height:1.1;font-variant-numeric:tabular-nums}.stat span{display:block;margin-top:3px;color:var(--faint);text-transform:uppercase;font-size:10px;font-weight:700;letter-spacing:1.1px}.dots{display:inline-flex;gap:4px}.dots i{width:12px;height:12px;border-radius:3px;border:1px solid var(--line);background:var(--panel2)}.dots i.on{background:var(--ember);border-color:var(--ember)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px}.tabs button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-bottom:2px solid transparent;background:none;color:var(--dim);font:inherit;font-weight:600;font-size:13.5px;padding:8px 12px;margin-bottom:-1px;cursor:pointer}.tabs button:hover{color:var(--text)}.tabs button[aria-selected=true]{color:var(--text);border-bottom-color:var(--ember)}.tbl tr.click{cursor:pointer}.sheet.wide{max-width:620px;overflow-y:auto}.sheet>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.sheet h2{margin:0;font-family:var(--display);font-size:16px;font-weight:700}
