:root{--ink:#16262B;--ink2:#1F343A;--ink3:#294249;--paper:#E9EDEC;--card:#FFFFFF;--rule:#CFD8D6;--rule2:#E3E9E8;--text:#16262B;--muted:#5E7379;--faint:#8A9C9F;--brass:#B4884A;--brass-l:#F4EADA;--oxide:#9A3F2E;--oxide-l:#F8E7E2;--moss:#3F6B52;--moss-l:#E4EFE8;--sky:#2E5F72;--sky-l:#E2ECEF;--rail:248px;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--sans:"IBM Plex Sans",system-ui,-apple-system,sans-serif;--disp:"Archivo","IBM Plex Sans",system-ui,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--paper);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none}a{color:var(--sky)}:focus-visible{outline:2px solid var(--brass);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.app{display:flex;min-height:100vh}.rail{width:var(--rail);flex:0 0 var(--rail);background:var(--ink);color:#dce5e4;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{padding:22px 20px 18px;border-bottom:1px solid rgba(255,255,255,.09)}.brand .mark{font-family:var(--disp);font-weight:800;font-size:26px;letter-spacing:-.03em;color:#fff;line-height:1}.brand .mark span{color:var(--brass)}.brand .sub{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#7e9498;margin-top:7px}.nav{padding:12px 10px;flex:1;overflow-y:auto}.nav button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border-radius:6px;color:#b7c7c8;font-size:13.5px;text-align:left;letter-spacing:-.01em}.nav button:hover{background:#ffffff0f;color:#fff}.nav button.on{background:var(--ink3);color:#fff;font-weight:600}.nav button.on .ic{color:var(--brass)}.nav .ic{width:16px;text-align:center;font-size:13px;color:#6e888c}.nav .tag{margin-left:auto;font-family:var(--mono);font-size:10px;background:#ffffff1a;padding:1px 6px;border-radius:20px}.railfoot{padding:14px 16px;border-top:1px solid rgba(255,255,255,.09);font-family:var(--mono);font-size:10px;color:#6e888c;line-height:1.6}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{background:var(--card);border-bottom:1px solid var(--rule);padding:14px 26px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;position:sticky;top:0;z-index:30}.topbar h1{font-family:var(--disp);font-size:20px;font-weight:800;letter-spacing:-.03em}.topbar .crumb{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:1px}.spacer{flex:1}.roleswitch{display:flex;background:var(--paper);border:1px solid var(--rule);border-radius:7px;padding:2px}.roleswitch button{padding:5px 13px;border-radius:5px;font-size:12.5px;font-weight:500;color:var(--muted)}.roleswitch button.on{background:var(--ink);color:#fff}.canvas{padding:24px 26px 60px;max-width:1420px;width:100%}.card{background:var(--card);border:1px solid var(--rule);border-radius:10px}.card-h{padding:14px 18px;border-bottom:1px solid var(--rule2);display:flex;align-items:center;gap:12px}.card-h h2{font-family:var(--disp);font-size:14px;font-weight:600;letter-spacing:-.01em}.card-h .note{font-family:var(--mono);font-size:10.5px;color:var(--faint);letter-spacing:.06em}.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}.grid{display:grid;gap:16px}.btn{background:var(--ink);color:#fff;padding:8px 15px;border-radius:7px;font-size:13px;font-weight:500;letter-spacing:-.01em}.btn:hover{background:var(--ink3)}.btn.ghost{background:var(--card);color:var(--text);border:1px solid var(--rule)}.btn.ghost:hover{background:var(--paper)}.btn.brass{background:var(--brass);color:#2a1d07}.btn.brass:hover{background:#c79a58}.btn.sm{padding:5px 10px;font-size:12px;border-radius:6px}.btn:disabled{opacity:.42;cursor:not-allowed}.pill{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;letter-spacing:.07em;text-transform:uppercase;padding:3px 8px;border-radius:20px;background:var(--paper);color:var(--muted);white-space:nowrap}.pill.moss{background:var(--moss-l);color:var(--moss)}.pill.brass{background:var(--brass-l);color:#7a5a22}.pill.oxide{background:var(--oxide-l);color:var(--oxide)}.pill.sky{background:var(--sky-l);color:var(--sky)}.dot{width:6px;height:6px;border-radius:50%;background:currentColor}table{width:100%;border-collapse:collapse}th{font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);text-align:left;font-weight:500;padding:9px 14px;border-bottom:1px solid var(--rule2);white-space:nowrap}td{padding:11px 14px;border-bottom:1px solid var(--rule2);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#f7f9f9}.r{text-align:right}.tw{overflow-x:auto}.strong{font-weight:600;letter-spacing:-.01em}.dim{color:var(--muted);font-size:12.5px}.tiny{font-size:11.5px;color:var(--faint)}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(184px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:10px;overflow:hidden}.metric{background:var(--card);padding:16px 18px}.metric .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.metric .v{font-family:var(--disp);font-size:21px;font-weight:800;letter-spacing:-.035em;margin-top:7px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.metric .d{font-size:11.5px;color:var(--muted);margin-top:3px}.metric.hi .v{color:var(--oxide)}.metric.ok .v{color:var(--moss)}.metric.br .v{color:var(--brass)}.yard{background:var(--ink);border-radius:10px;padding:0;overflow:hidden}.yard-h{padding:15px 20px;display:flex;align-items:center;gap:14px;border-bottom:1px solid rgba(255,255,255,.09)}.yard-h h2{font-family:var(--disp);font-size:14px;font-weight:600;color:#fff}.yard-h .note{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#7e9498}.track{display:flex;overflow-x:auto;padding:18px 20px 22px;gap:0}.stage{flex:0 0 168px;padding-right:14px;position:relative}.stage:after{content:"";position:absolute;left:0;right:14px;top:26px;height:1px;background:#ffffff21}.stage-h{display:flex;align-items:baseline;gap:7px;margin-bottom:20px}.stage-n{font-family:var(--mono);font-size:9.5px;color:#5f797d}.stage-t{font-family:var(--mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#9db2b4}.stage-v{font-family:var(--mono);font-size:11px;color:var(--brass);margin-bottom:10px;font-variant-numeric:tabular-nums}.chip{background:var(--ink3);border:1px solid rgba(255,255,255,.11);border-left:3px solid var(--brass);border-radius:5px;padding:7px 9px;margin-bottom:7px;width:calc(100% - 14px);text-align:left;display:block;transition:transform .12s ease,background .12s ease}.chip:hover{background:#33525a;transform:translate(2px)}.chip .c1{font-family:var(--mono);font-size:11px;color:#fff;font-weight:500}.chip .c2{font-size:10.5px;color:#8fa5a8;margin-top:2px}.chip.late{border-left-color:var(--oxide)}.chip.done{border-left-color:var(--moss)}.stage-empty{font-family:var(--mono);font-size:10px;color:#4e6367;padding:6px 0}.split{display:grid;grid-template-columns:1.55fr 1fr;gap:16px}@media (max-width:1080px){.split{grid-template-columns:1fr}}.bar{height:7px;background:var(--rule2);border-radius:20px;overflow:hidden;display:flex}.bar i{display:block;height:100%}.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}.legend span{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}.legend i{width:9px;height:9px;border-radius:2px;display:block}.kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--rule2)}.kv:last-child{border-bottom:none}.kv .k{color:var(--muted);font-size:12.5px}.kv .v{font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right}.warn{background:var(--oxide-l);border:1px solid #EBCFC7;border-left:3px solid var(--oxide);border-radius:8px;padding:12px 15px;font-size:12.5px;color:#6e2c20}.warn b{font-weight:600}.att{display:flex;gap:11px;padding:12px 0;border-bottom:1px solid var(--rule2)}.att:last-child{border-bottom:none}.att .sev{flex:0 0 4px;border-radius:3px;background:var(--rule)}.att.act .sev{background:var(--oxide)}.att.watch .sev{background:var(--brass)}.att.ok .sev{background:var(--moss)}.att .bd{flex:1;min-width:0}.att .ti{font-weight:600;font-size:13px;letter-spacing:-.01em;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.att .tx{font-size:12.5px;color:var(--muted);margin-top:3px;line-height:1.55}.att .ac{margin-top:8px}.attgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}@media (max-width:1180px){.attgrid{grid-template-columns:1fr}}.empty{padding:40px 20px;text-align:center;color:var(--faint)}.empty .t{font-family:var(--disp);font-size:15px;font-weight:600;color:var(--muted);margin-bottom:5px}.field{margin-bottom:13px}.field label{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);margin-bottom:5px}.qm{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--rule);background:var(--card);color:var(--sky);font-family:var(--mono);font-size:10px;font-weight:600;line-height:1;cursor:pointer;flex:0 0 15px}.qm:hover{background:var(--sky-l);border-color:var(--sky)}.helpbox{margin-top:8px;background:var(--sky-l);border:1px solid #C7DAE1;border-left:3px solid var(--sky);border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.55;color:#24444f}.helpbox .ht{font-weight:600;font-size:12.5px;margin-bottom:3px;letter-spacing:-.01em;text-transform:none;font-family:var(--sans)}.helpbox pre{font-family:var(--mono);font-size:10.5px;background:#ffffffbf;padding:8px 10px;border-radius:6px;margin:8px 0;white-space:pre-wrap;line-height:1.6}.helpbox .hx{color:#3a5a64;font-size:11.5px}.formulas pre{font-family:var(--mono);font-size:11px;line-height:1.85;white-space:pre-wrap;background:#f7f9f9;border:1px solid var(--rule2);border-radius:8px;padding:12px 14px}.field input,.field select,.field textarea{width:100%;padding:8px 11px;border:1px solid var(--rule);border-radius:7px;background:var(--card);font-size:13.5px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--sky);outline:none;box-shadow:0 0 0 3px var(--sky-l)}.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c181b8c;display:flex;align-items:flex-start;justify-content:center;padding:36px 16px;z-index:100;overflow-y:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--card);border-radius:12px;width:100%;max-width:560px;box-shadow:0 24px 60px #0000004d}.modal.wide{max-width:820px}.modal-h{padding:16px 20px;border-bottom:1px solid var(--rule2);display:flex;align-items:center;gap:12px}.modal-h h3{font-family:var(--disp);font-size:16px;font-weight:700;letter-spacing:-.02em}.modal-b{padding:20px}.modal-f{padding:14px 20px;border-top:1px solid var(--rule2);display:flex;gap:9px;justify-content:flex-end}.x{margin-left:auto;font-size:20px;color:var(--faint);line-height:1;padding:0 4px}.x:hover{color:var(--text)}.deed{font-family:"IBM Plex Serif",Georgia,serif;font-size:13px;line-height:1.72;color:#1a2a2e;background:#fff}.deed h4{font-family:var(--disp);font-size:16px;font-weight:800;text-align:center;letter-spacing:.02em;margin-bottom:3px}.deed .ref{font-family:var(--mono);font-size:10.5px;text-align:center;color:var(--faint);letter-spacing:.1em;margin-bottom:20px}.deed section{margin-bottom:14px}.deed h5{font-family:var(--disp);font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;margin-bottom:5px;color:var(--ink)}.deed table{margin:9px 0;font-size:12px}.deed td,.deed th{padding:6px 9px;border:1px solid var(--rule2)}.sigrow{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.sigbox{border-top:1.5px solid var(--ink);padding-top:9px}.sigbox .who{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.sigbox .nm{font-family:Segoe Script,Brush Script MT,cursive;font-size:22px;color:var(--sky);min-height:30px;margin-top:4px}@media print{.rail,.topbar,.modal-f,.modal-h{display:none!important}.scrim{position:static;padding:0;background:none}.modal{max-width:none;box-shadow:none}}@media (max-width:860px){.app{flex-direction:column}.rail{width:100%;height:auto;position:static;flex:none}.nav{display:flex;overflow-x:auto;padding:8px}.nav button{width:auto;white-space:nowrap}.nav .tag,.railfoot{display:none}.canvas{padding:16px 14px 50px}.topbar{padding:12px 14px}.f2,.sigrow{grid-template-columns:1fr}}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--ink)}.login .box{background:var(--card);border-radius:12px;padding:34px 36px;width:100%;max-width:400px}.login .mark{font-family:var(--disp);font-weight:800;font-size:30px;letter-spacing:-.03em}.login .mark span{color:var(--brass)}.toast{position:fixed;bottom:18px;right:18px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;font-size:13px;z-index:200;box-shadow:0 8px 30px #00000059}.toast.err{background:var(--oxide)}.login .roleswitch{width:100%}.login .roleswitch button{flex:1;text-align:center}.codebox{background:var(--brass-l);border:1px solid #E6D6BA;border-left:3px solid var(--brass);border-radius:8px;padding:13px 15px;margin-bottom:16px}.codebox .code{font-family:var(--mono);font-size:17px;font-weight:600;letter-spacing:.07em;color:#5e4312;margin:7px 0 11px;word-break:break-all;-webkit-user-select:all;user-select:all}
