@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-Regular.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/IBMPlexMono-Medium.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/IBMPlexMono-SemiBold.woff2) format("woff2")}@font-face{font-family:Hubot Sans;font-style:normal;font-weight:200 900;font-stretch:75% 125%;font-display:swap;src:url(/fonts/HubotSans-var.woff2) format("woff2-variations")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/HankenGrotesk-var.woff2) format("woff2-variations")}:root{--d-surface: #0c0b0a;--d-ink: oklch(.955 .006 85);--d-chrome: oklch(.63 .007 75);--d-accent: oklch(.78 .14 215);--l-surface: oklch(.955 .012 82);--l-ink: oklch(.26 .012 60);--l-chrome: oklch(.52 .018 65);--l-accent: oklch(.6 .13 215);--surface: var(--d-surface);--ink: var(--d-ink);--chrome: var(--d-chrome);--accent: var(--d-accent);--hair: color-mix(in oklab, var(--ink), transparent 86%);--raise: color-mix(in oklab, var(--ink), var(--surface) 96%);--raise-2: color-mix(in oklab, var(--ink), var(--surface) 92%);--accent-dim: color-mix(in oklab, var(--accent), var(--surface) 82%);--ok: oklch(.75 .13 155);--warn: oklch(.78 .13 75);--bad: oklch(.68 .16 25);--type-chrome: "IBM Plex Mono", ui-monospace, monospace;--type-display: "Hubot Sans", system-ui, sans-serif;--type-body: "Hanken Grotesk", system-ui, sans-serif}[data-mode=light]{--surface: var(--l-surface);--ink: var(--l-ink);--chrome: var(--l-chrome);--accent: var(--l-accent);--hair: color-mix(in oklab, var(--ink), transparent 82%);--raise: color-mix(in oklab, var(--ink), var(--surface) 97%);--raise-2: color-mix(in oklab, var(--ink), var(--surface) 93%);--accent-dim: color-mix(in oklab, var(--accent), var(--surface) 84%)}.k-chrome{font-family:var(--type-chrome);font-weight:500;letter-spacing:.04em;line-height:1.2;font-feature-settings:"zero" 1;text-transform:uppercase;color:var(--chrome)}.k-display{font-family:var(--type-display);font-weight:900;font-stretch:125%;font-variation-settings:"wdth" 125;letter-spacing:-.01em;line-height:.88;text-transform:uppercase;color:var(--ink)}.k-wordmark{font-family:var(--type-display);font-weight:900;font-stretch:125%;font-variation-settings:"wdth" 125;letter-spacing:.02em;text-transform:uppercase;color:var(--ink)}.k-body{font-family:var(--type-body);font-weight:400;letter-spacing:0;line-height:1.6;color:var(--ink)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--surface);color:var(--ink);font-family:var(--type-body);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,select,textarea{font:inherit;color:var(--ink);background:var(--raise);border:1px solid var(--hair);border-radius:2px;padding:7px 10px;outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input[type=date]{color-scheme:dark}[data-mode=light] input[type=date]{color-scheme:light}::placeholder{color:var(--chrome);opacity:.6}.shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.main{flex:1;overflow:auto}.topbar{flex:0 0 52px;display:flex;align-items:center;gap:28px;padding:0 24px;border-bottom:1px solid var(--hair)}.topnav{display:flex;gap:4px;flex:1}.topnav a{font-family:var(--type-chrome);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;color:var(--chrome);border-bottom:2px solid transparent;margin-bottom:-2px}.topnav a:hover{color:var(--ink)}.topnav a.active{color:var(--ink);border-bottom-color:var(--accent)}.topclock{font-family:var(--type-chrome);font-weight:500;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--chrome);font-feature-settings:"zero" 1}.transport{flex:0 0 76px;display:flex;align-items:center;gap:20px;padding:0 24px;border-top:1px solid var(--hair);background:color-mix(in oklab,var(--ink),var(--surface) 97%)}.transport.recording{border-top-color:color-mix(in oklab,var(--accent),transparent 50%)}.t-btn{width:44px;height:44px;border-radius:2px;flex-shrink:0;border:1px solid color-mix(in oklab,var(--accent),transparent 50%);background:transparent;color:var(--accent);font-size:16px;display:flex;align-items:center;justify-content:center}.t-btn:hover{background:color-mix(in oklab,var(--accent),transparent 88%)}.t-btn.stop{border-color:var(--accent);background:var(--accent);color:var(--surface);font-size:15px}.t-btn.stop:hover{background:color-mix(in oklab,var(--accent),var(--ink) 15%)}.timecode{font-family:var(--type-chrome);font-weight:500;font-size:26px;line-height:1;font-feature-settings:"zero" 1;color:var(--chrome)}.timecode.on{color:var(--accent)}.t-label{font-family:var(--type-chrome);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--chrome);margin-top:4px}.t-divider{width:1px;align-self:stretch;margin:14px 0;background:var(--hair)}.t-field input,.t-field select{font-size:12px;padding:5px 8px;background:var(--raise-2)}.readouts{display:grid;border-bottom:1px solid var(--hair)}.readouts.c4{grid-template-columns:repeat(4,1fr)}.readouts.c5{grid-template-columns:repeat(5,1fr)}.readout{padding:22px 24px 18px;border-right:1px solid var(--hair)}.readout .l{font-family:var(--type-chrome);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--chrome)}.readout .v{font-family:var(--type-display);font-weight:900;font-stretch:125%;font-variation-settings:"wdth" 125;font-size:34px;line-height:1;letter-spacing:-.01em;margin-top:10px}.readout .d{font-size:12px;color:var(--chrome);margin-top:6px}.readouts.c5 .readout{padding:18px 24px 16px}.readouts.c5 .readout .v{font-size:26px;margin-top:8px}.readouts.c5 .readout .d{font-size:11.5px;margin-top:5px}.screen{padding:28px 24px 40px}.cols{display:grid;grid-template-columns:1.25fr 1fr;gap:0;min-width:980px}.cols>section{padding:28px 24px 40px}.cols>section:first-child{border-right:1px solid var(--hair)}.sect-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px}.sect-head h2{font-family:var(--type-display);font-weight:900;font-stretch:125%;font-variation-settings:"wdth" 125;letter-spacing:-.01em;line-height:.88;text-transform:uppercase;font-size:22px}.sect-head.sub h2{font-size:18px}.sect-head .meta{font-family:var(--type-chrome);font-size:9px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--chrome)}.sect-head .meta a{color:var(--accent)}.sect-head .meta a:hover{color:var(--ink)}.gap{margin-top:32px}.rowline{border-bottom:1px solid var(--hair)}.rowline.click{cursor:pointer}.rowline.click:hover{background:var(--raise)}.rowname{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rowmeta{font-family:var(--type-chrome);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--chrome);margin-top:2px}.gridhead{font-family:var(--type-chrome);font-size:8px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--chrome);padding:8px 4px;border-bottom:1px solid var(--hair)}.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--type-chrome);font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:2px;border:1px solid var(--hair);color:var(--chrome);white-space:nowrap}.chip:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--chrome);flex-shrink:0}.chip.accent{color:var(--accent);border-color:color-mix(in oklab,var(--accent),transparent 60%)}.chip.accent:before{background:var(--accent)}.chip.ok{color:var(--ok);border-color:color-mix(in oklab,var(--ok),transparent 60%)}.chip.ok:before{background:var(--ok)}.chip.warn{color:var(--warn);border-color:color-mix(in oklab,var(--warn),transparent 60%)}.chip.warn:before{background:var(--warn)}.chip.bad{color:var(--bad);border-color:color-mix(in oklab,var(--bad),transparent 60%)}.chip.bad:before{background:var(--bad)}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--type-chrome);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:9px 16px;border-radius:2px;border:1px solid var(--hair);color:var(--ink);background:var(--raise);white-space:nowrap}.btn:hover{border-color:var(--chrome)}.btn.primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}.btn.primary:hover{background:color-mix(in oklab,var(--accent),var(--ink) 12%)}.btn.ghost{background:transparent}.btn.danger:hover{border-color:var(--bad);color:var(--bad)}.btn.sm{padding:5px 10px;font-size:9px}.btn:disabled{opacity:.4;cursor:default}.actlink{font-family:var(--type-chrome);font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);cursor:pointer}.actlink:hover{color:var(--ink)}.actlink.dim{color:var(--chrome)}.tabs{display:flex;gap:18px;padding:12px 24px;border-bottom:1px solid var(--hair)}.tab{font-family:var(--type-chrome);font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--chrome);padding:2px 0;border-bottom:2px solid transparent}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);border-bottom-color:var(--accent)}.card{background:var(--raise);border:1px solid var(--hair);border-radius:3px;padding:18px 20px}.card+.card{margin-top:16px}.card h3{font-family:var(--type-chrome);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--chrome);margin-bottom:14px}.grid{display:grid;gap:16px}.grid.c2{grid-template-columns:1fr 1fr}.grid.c3{grid-template-columns:repeat(3,1fr)}@media (max-width: 1100px){.grid.c3,.grid.c2{grid-template-columns:1fr}}.stat .v{font-family:var(--type-display);font-weight:900;font-stretch:125%;font-variation-settings:"wdth" 125;font-size:26px;line-height:1;letter-spacing:-.01em}.stat .l{font-family:var(--type-chrome);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--chrome);margin-top:8px}.stat .d{font-size:12px;color:var(--chrome);margin-top:4px}table.k{width:100%;border-collapse:collapse}table.k th{font-family:var(--type-chrome);font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--chrome);text-align:left;padding:8px 10px;border-bottom:1px solid var(--hair)}table.k td{padding:10px;border-bottom:1px solid var(--hair);font-size:13px;vertical-align:middle}table.k tr.row:hover td{background:var(--raise-2);cursor:pointer}table.k td.num,table.k th.num{text-align:right;font-family:var(--type-chrome);font-feature-settings:"zero" 1}.field{display:flex;flex-direction:column;gap:5px}.field>label{font-family:var(--type-chrome);font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--chrome)}.form-row{display:flex;gap:12px}.form-row .field{flex:1}.locked-val{font-size:13px;padding:8px 0;min-height:20px;color:var(--ink);border-bottom:1px solid var(--hair)}.bar{height:4px;background:var(--hair);border-radius:2px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent);border-radius:2px}.bar>i.over{background:var(--bad)}.muted{color:var(--chrome)}.mono{font-family:var(--type-chrome);font-feature-settings:"zero" 1}.spacer{flex:1}.row-flex{display:flex;align-items:center;gap:12px}.hr{border:none;border-top:1px solid var(--hair);margin:16px 0}.empty{padding:48px;text-align:center;color:var(--chrome);font-size:13px}.page{padding:32px 40px 64px;max-width:1280px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:28px}.page-head h1{font-size:30px}.crumb{margin-bottom:8px;font-size:10px;display:flex;gap:8px;align-items:center}.crumb a:hover{color:var(--accent)}.avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;flex-shrink:0;border:1px solid var(--hair);background:var(--raise-2);font-family:var(--type-chrome);font-size:9px;color:var(--chrome)}.login{height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:32px}.login .box{width:360px;display:flex;flex-direction:column;gap:14px}.doc{background:var(--surface);color:var(--ink);border:1px solid var(--hair);width:210mm;min-height:297mm;padding:18mm 18mm 20mm;margin:0 auto;box-sizing:border-box;box-shadow:0 4px 32px #00000052}.page:has(.doc){overflow-x:auto}.pcomposer-doc{display:flex;flex-direction:column;align-items:center;gap:8mm}.psheet{width:210mm;height:297mm;position:relative;overflow:hidden;box-shadow:0 4px 32px #00000052;break-after:page;flex:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.psheet:last-child{break-after:auto}.psheet-doc .doc{width:100%;height:100%;min-height:0;border:none;box-shadow:none;margin:0;overflow:hidden}.composer{display:grid;grid-template-columns:172px 1fr 320px;gap:18px;align-items:start}.composer-rail{display:flex;flex-direction:column;gap:2px;position:sticky;top:12px}.composer-rail-head,.composer-insp-head{font-family:var(--type-chrome);font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--chrome);margin-bottom:8px}.composer-page{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding:8px;border:1px solid transparent;border-radius:3px;cursor:pointer;font-size:12.5px}.composer-page:hover{background:var(--raise)}.composer-page.on{background:var(--raise-2);border-color:var(--hair)}.composer-page-n{font-family:var(--type-chrome);font-size:10px;color:var(--chrome)}.composer-page-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-page-ctl{display:flex;gap:2px;opacity:0;transition:opacity .12s}.composer-page:hover .composer-page-ctl,.composer-page.on .composer-page-ctl{opacity:1}.composer-page-ctl button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--chrome);cursor:pointer;font-size:11px;padding:2px 3px;border-radius:3px;line-height:1}.composer-page-ctl button:hover:not(:disabled){background:var(--raise-2);color:var(--ink)}.composer-page-ctl button.danger:hover:not(:disabled){color:var(--bad)}.composer-page-ctl button:disabled{opacity:.3;cursor:default}.composer-add{position:absolute;top:100%;left:0;right:0;margin-top:4px;z-index:20;background:var(--surface);border:1px solid var(--hair);border-radius:4px;padding:4px;display:flex;flex-direction:column;box-shadow:0 8px 24px #0006}.composer-add button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--ink);cursor:pointer;text-align:left;padding:7px 10px;border-radius:3px;font-size:12.5px}.composer-add button:hover{background:var(--raise-2)}.composer-canvas{display:flex;justify-content:center;overflow:hidden}.composer-inspector{display:flex;flex-direction:column;gap:12px;position:sticky;top:12px;max-height:calc(100vh - 120px);overflow-y:auto;padding-right:4px}.cal-monthlabel{font-family:var(--type-display);font-size:22px;font-weight:900;font-stretch:125%;margin:2px 0 14px}.cal-grid{border:1px solid var(--hair);border-radius:4px;overflow:hidden}.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--hair)}.cal-dowcell{padding:8px 10px;font-family:var(--type-chrome);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--chrome)}.cal-dowcell.we{color:color-mix(in oklab,var(--chrome),transparent 35%)}.cal-week{position:relative;display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--hair)}.cal-week:last-child{border-bottom:0}.cal-day{position:relative;border-right:1px solid var(--hair);padding:6px 8px;overflow:hidden}.cal-day:last-child{border-right:0}.cal-day.we{background:color-mix(in oklab,var(--ink),transparent 97%)}.cal-day.out{background:var(--raise)}.cal-day.out .cal-daynum{color:color-mix(in oklab,var(--chrome),transparent 45%)}.cal-daynum{font-family:var(--type-chrome);font-size:11px;color:var(--chrome)}.cal-daynum.today{background:var(--accent);color:var(--surface);border-radius:9px;padding:1px 6px;font-weight:600}.cal-dues{position:absolute;left:6px;right:6px;bottom:5px;display:flex;flex-direction:column;gap:2px}.cal-due{display:flex;align-items:center;gap:5px;cursor:pointer;min-width:0}.cal-due i{width:6px;height:6px;border-radius:50%;flex-shrink:0}.cal-due span{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-due:hover span{text-decoration:underline}.cal-bar{position:absolute;height:15px;border-radius:2px;border-left:2px solid var(--accent);background:color-mix(in oklab,var(--accent),transparent 80%);display:flex;align-items:center;padding:0 6px;cursor:pointer;overflow:hidden;z-index:2}.cal-bar:hover{background:color-mix(in oklab,var(--accent),transparent 66%)}.cal-bar span{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.li-stack{display:flex;flex-direction:column;gap:8px}.li-card{border:1px solid var(--hair);border-radius:4px;padding:10px;display:flex;flex-direction:column;gap:9px;background:var(--raise)}.li-head{display:flex;gap:8px;align-items:center}.li-head select{flex:1;min-width:0}.li-nums{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:8px}.li-nums .field input{width:100%}.li-foot{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px}.imgwell{position:relative;aspect-ratio:16/10;border:1px dashed var(--hair);border-radius:4px;overflow:hidden;cursor:pointer;background:var(--raise);display:flex;align-items:center;justify-content:center}.imgwell:hover{border-color:var(--accent)}.imgwell img{width:100%;height:100%;object-fit:cover}.imgwell-empty{font-size:11.5px;color:var(--chrome)}.imgwell-badge{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0006;color:#fff;font-size:11px}.imgwell-err{color:var(--bad);font-size:11px}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gallery-cell{position:relative;aspect-ratio:4/3;border:1px solid var(--hair);border-radius:3px;overflow:hidden}.gallery-cell img{width:100%;height:100%;object-fit:cover}.gallery-ctl{position:absolute;top:4px;right:4px;display:flex;gap:2px;opacity:0;transition:opacity .12s}.gallery-cell:hover .gallery-ctl{opacity:1}.gallery-ctl button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;width:20px;height:20px;border-radius:3px;cursor:pointer;background:#0000009e;color:#fff;font-size:11px;line-height:1}.gallery-ctl button:hover:not(:disabled){background:#000000d1}.gallery-ctl button.danger:hover{background:var(--bad)}.gallery-ctl button:disabled{opacity:.35;cursor:default}.gallery-add{-webkit-appearance:none;-moz-appearance:none;appearance:none;aspect-ratio:4/3;border:1px dashed var(--hair);border-radius:3px;cursor:pointer;background:var(--raise);color:var(--chrome);font-size:11.5px}.gallery-add:hover:not(:disabled){border-color:var(--accent);color:var(--ink)}.doc .doc-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:40px}.doc table.k td{font-size:13px}.doc .totals{margin-top:20px;margin-left:auto;width:280px;display:flex;flex-direction:column;gap:6px}.doc .totals .t-row{display:flex;justify-content:space-between;font-size:13px}.doc .totals .t-row.grand{border-top:1px solid var(--ink);padding-top:8px;font-weight:600;font-size:15px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in oklab,var(--d-surface),transparent 30%);display:flex;align-items:center;justify-content:center;z-index:40}.modal{background:var(--surface);border:1px solid var(--hair);border-radius:3px;width:560px;max-width:94vw;max-height:88vh;overflow-y:auto;padding:24px}.modal h2{font-size:18px;margin-bottom:18px}.toast{position:fixed;right:20px;bottom:96px;z-index:60;display:flex;align-items:center;gap:12px;background:var(--raise-2);border:1px solid color-mix(in oklab,var(--warn),transparent 55%);border-radius:3px;padding:12px 16px;max-width:440px}@page{size:A4;margin:0}@media print{.topbar,.transport,.no-print{display:none!important}.shell{height:auto}.main{overflow:visible;padding:0}html,body{background:#fff;margin:0}.page{padding:0!important;margin:0!important;max-width:none!important}.doc{border:none;box-shadow:none;margin:0;width:210mm;min-height:297mm}.pcomposer-doc{gap:0!important}.psheet{box-shadow:none!important}}
