/*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}}:root{--bg:#eceff1;--surface:#fff;--surface-2:#f4f6f8;--line:#d5dbe0;--line-2:#e5e9ec;--ink:#15202a;--ink-2:#4a5865;--ink-3:#77848f;--accent:#f2b300;--accent-line:#d99f00;--on-accent:#1b1500;--accent-soft:#fff2c2;--accent-text:#6b4e00;--rail:#121b23;--rail-2:#1c2832;--rail-ink:#a9b5bf;--rail-hi:#fff;--rail-line:#26333e;--good:#1c7a50;--good-soft:#ddf1e6;--warn:#9c5e00;--warn-soft:#fbebcf;--crit:#b4321f;--crit-soft:#f9e0dc;--info:#235e9f;--info-soft:#dfeaf7;--in:#2e6cb0;--in-soft:#e0ebf7;--out:#6a4da6;--out-soft:#ece6f6;--scrim:#090e1361;--shadow:0 1px 2px #15202a0d,0 8px 24px #15202a14;--f-display:"Barlow Semi Condensed","Arial Narrow",system-ui,sans-serif;--f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Consolas,monospace;--r:6px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e151b;--surface:#151f28;--surface-2:#1a2630;--line:#2a3743;--line-2:#22303b;--ink:#e5ebf0;--ink-2:#a8b4bf;--ink-3:#7c8995;--accent:#f5c02e;--accent-line:#f5c02e;--on-accent:#1b1500;--accent-soft:#3a3110;--accent-text:#f5c94e;--rail:#0a1015;--rail-2:#16212a;--rail-ink:#9aa7b2;--rail-hi:#fff;--rail-line:#1e2a34;--good:#45c08a;--good-soft:#12301f;--warn:#e9a843;--warn-soft:#382811;--crit:#f2715f;--crit-soft:#3b1914;--info:#72a9e6;--info-soft:#15283c;--in:#6fa3e2;--in-soft:#152a41;--out:#a98be8;--out-soft:#251d3b;--scrim:#0000008c;--shadow:0 1px 2px #0000004d,0 8px 24px #00000059;color-scheme:dark}}:root[data-theme=dark]{--bg:#0e151b;--surface:#151f28;--surface-2:#1a2630;--line:#2a3743;--line-2:#22303b;--ink:#e5ebf0;--ink-2:#a8b4bf;--ink-3:#7c8995;--accent:#f5c02e;--accent-line:#f5c02e;--on-accent:#1b1500;--accent-soft:#3a3110;--accent-text:#f5c94e;--rail:#0a1015;--rail-2:#16212a;--rail-ink:#9aa7b2;--rail-hi:#fff;--rail-line:#1e2a34;--good:#45c08a;--good-soft:#12301f;--warn:#e9a843;--warn-soft:#382811;--crit:#f2715f;--crit-soft:#3b1914;--info:#72a9e6;--info-soft:#15283c;--in:#6fa3e2;--in-soft:#152a41;--out:#a98be8;--out-soft:#251d3b;--scrim:#0000008c;--shadow:0 1px 2px #0000004d,0 8px 24px #00000059;color-scheme:dark}*{box-sizing:border-box}body,html{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{font-family:var(--f-display);letter-spacing:.005em;text-wrap:balance;margin:0;font-weight:600}p{margin:0}.mono{font-family:var(--f-mono);letter-spacing:-.01em;font-size:12.5px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-3)}.ic{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}:focus-visible{outline:2px solid var(--info);outline-offset:2px}.app{grid-template-columns:240px minmax(0,1fr);min-height:100%;display:grid}.rail{background:var(--rail);color:var(--rail-ink);z-index:40;flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;padding:18px 18px 14px;display:flex}.brand-mark{background:repeating-linear-gradient(-45deg,var(--accent)0 5px,var(--rail)5px 10px);width:30px;height:30px;box-shadow:inset 0 0 0 2px var(--accent);border-radius:5px}.brand-name{font-family:var(--f-display);color:var(--rail-hi);letter-spacing:.01em;font-size:23px;font-weight:700}.site{border:1px solid var(--rail-line);border-radius:var(--r);margin:0 14px 10px;padding:9px 11px;font-size:12.5px;line-height:1.35}.site b{color:var(--rail-hi);font-weight:500;display:block}.nav{flex-direction:column;gap:2px;padding:4px 10px 16px;display:flex}.nav-group{text-transform:uppercase;letter-spacing:.12em;color:#64727e;padding:14px 10px 6px;font-size:10.5px}.nav-btn{width:100%;color:var(--rail-ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:11px;padding:8px 10px;font-size:13.5px;display:flex}.nav-btn:hover,.nav-btn[aria-current=page]{background:var(--rail-2);color:var(--rail-hi)}.nav-btn[aria-current=page]{box-shadow:inset 3px 0 0 var(--accent)}.nav-btn .badge{background:var(--crit);color:#fff;border-radius:999px;margin-left:auto;padding:0 7px;font-size:11px;font-weight:600;line-height:18px}.rail-foot{border-top:1px solid var(--rail-line);align-items:center;gap:10px;margin-top:auto;padding:14px 18px 18px;font-size:12.5px;display:flex}.avatar{background:var(--rail-2);width:32px;height:32px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:12.5px;font-weight:600;display:grid}.rail-foot b{color:var(--rail-hi);font-weight:500;display:block}.main{flex-direction:column;min-width:0;display:flex}.topbar{top:env(safe-area-inset-top,0);z-index:30;background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:14px;padding:12px 24px;display:flex;position:sticky}.btn.menu-btn{display:none}.title-wrap{flex:260px;min-width:0}.title-wrap h1{font-size:25px;line-height:1.1}.title-wrap p{color:var(--ink-3);margin-top:2px;font-size:12.5px}.status-bar{flex-wrap:wrap;gap:8px;display:flex}.conn,.status-bar{align-items:center}.conn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;gap:7px;padding:4px 11px 4px 9px;font-size:12.5px;display:inline-flex}.conn:hover{border-color:var(--ink-3)}.dot{background:var(--good);border-radius:50%;flex:none;width:8px;height:8px}.dot.off{background:var(--crit);box-shadow:0 0 0 3px var(--crit-soft)}.conn .q{color:var(--warn);font-size:11.5px}.clock,.conn .q{font-family:var(--f-mono)}.clock{color:var(--ink-2);padding:0 4px;font-size:12.5px}.sample{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-text);background:var(--accent-soft);border-radius:4px;padding:3px 7px;font-size:11px;font-weight:600}.view{min-width:0;padding-block:22px 48px;padding-inline:24px}.grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;display:grid}.s3{grid-column:span 3}.s4{grid-column:span 4}.s5{grid-column:span 5}.s6{grid-column:span 6}.s7{grid-column:span 7}.s8{grid-column:span 8}.s12{grid-column:span 12}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:0}.card-h{flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px 10px;display:flex}.card-h h2{font-size:18px}.card-h .sub{color:var(--ink-3);font-size:12.5px}.card-h .right{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.card-b{padding:4px 16px 16px}.spec{font-family:var(--f-mono);color:var(--ink-3);border:1px solid var(--line);white-space:nowrap;border-radius:4px;padding:0 5px;font-size:11px}.note{color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r);align-items:flex-start;gap:8px;padding:9px 12px;font-size:12.5px;display:flex}.note .ic{width:16px;height:16px;color:var(--ink-3);margin-top:1px}.note.warn{background:var(--warn-soft);color:var(--ink);border-color:#0000}.note.warn .ic{color:var(--warn)}.note.crit{background:var(--crit-soft);color:var(--ink);border-color:#0000}.note.crit .ic{color:var(--crit)}.note.ok{background:var(--good-soft);color:var(--ink);border-color:#0000}.note.ok .ic{color:var(--good)}.kpi{cursor:default;flex-direction:column;gap:6px;padding:14px 16px 12px;display:flex}.kpi.link{cursor:pointer}.kpi.link:hover{border-color:var(--ink-3)}.kpi-l{color:var(--ink-2);justify-content:space-between;gap:8px;font-size:12px;display:flex}.kpi-v{font-family:var(--f-display);font-variant-numeric:tabular-nums;align-items:baseline;gap:5px;font-size:34px;font-weight:600;line-height:1;display:flex}.kpi-v small{color:var(--ink-3);font-size:16px;font-weight:500}.kpi-f{justify-content:space-between;align-items:flex-end;gap:10px;display:flex}.kpi-s{color:var(--ink-3);font-size:12px}.spark{flex:none;width:96px;height:30px}.spark .area{fill:var(--info-soft)}.spark .line{fill:none;stroke:var(--info);stroke-width:1.6px}.spark .end{fill:var(--info)}.kpi.warn .kpi-v{color:var(--warn)}.kpi.crit .kpi-v{color:var(--crit)}.chip{white-space:nowrap;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:2px 9px 2px 8px;font-size:12px;font-weight:500;display:inline-flex}.chip:before{content:"";background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.chip.ok{background:var(--good-soft);color:var(--good);border-color:#0000}.chip.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.chip.crit{background:var(--crit-soft);color:var(--crit);border-color:#0000}.chip.info{background:var(--info-soft);color:var(--info);border-color:#0000}.chip.accent{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.chip.plain:before{display:none}.tag{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:1px 7px;font-size:11.5px;display:inline-flex}.tag.rule{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.btn,.tag.rule{font-weight:500}.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:7px;padding:8px 14px;font-size:13.5px;line-height:1.2;display:inline-flex}.btn:hover{border-color:var(--ink-3)}.btn .ic{width:16px;height:16px}.btn.primary{background:var(--accent);border-color:var(--accent-line);color:var(--on-accent);font-weight:600}.btn.primary:hover{filter:brightness(1.04)}.btn.ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{color:var(--crit)}.btn.sm{padding:5px 10px;font-size:12.5px}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.btn-row{gap:8px}.btn-row,.tabs{flex-wrap:wrap;display:flex}.tabs{gap:4px;margin-bottom:14px}.tab{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:12.5px;display:inline-flex}.tab b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.tab[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.tab[aria-pressed=true] b{color:var(--bg)}.tbl-wrap{overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:13.5px}.tbl th{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 12px;font-size:11px;font-weight:600}.tbl td{border-bottom:1px solid var(--line-2);vertical-align:middle;padding:10px 12px}.tbl tr:last-child td{border-bottom:0}.tbl td.r,.tbl th.r{text-align:right}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--surface-2)}.tbl .sub{color:var(--ink-3);font-size:12px;display:block}.tbl input[type=number],.tbl input[type=text]{border:1px solid var(--line);background:var(--surface);border-radius:4px;width:100%;min-width:70px;padding:5px 7px}.d-pos{color:var(--good)}.d-neg{color:var(--crit)}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field label{color:var(--ink-2);font-size:12px;font-weight:500}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--surface);border-radius:6px;width:100%;padding:8px 10px}.field textarea{font-family:var(--f-mono);resize:vertical;min-height:120px;font-size:12.5px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-grid .full{grid-column:1/-1}.check{cursor:pointer;align-items:flex-start;gap:9px;font-size:13px;display:flex}.check input{width:16px;height:16px;accent-color:var(--accent-line);margin-top:2px}.err{color:var(--crit);font-size:12.5px}.sw{background:var(--line);cursor:pointer;border:0;border-radius:999px;flex:none;width:38px;height:22px;padding:0;position:relative}.sw:after{content:"";background:var(--surface);border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.sw[aria-checked=true]{background:var(--good)}.sw[aria-checked=true]:after{transform:translate(16px)}.sw.alarm[aria-checked=true]{background:var(--crit)}.sw:disabled{opacity:.45;cursor:not-allowed}.dock-scroll{overflow-x:auto}.dock{min-width:780px;position:relative}.dock-head,.dock-row{grid-template-columns:72px minmax(0,1fr);display:grid}.hours{font-family:var(--f-mono);color:var(--ink-3);grid-template-columns:repeat(14,1fr);font-size:11px;display:grid}.hours span{border-left:1px solid var(--line-2);padding:0 0 6px 4px}.dock-label{font-family:var(--f-display);flex-direction:column;justify-content:center;padding-right:8px;font-size:16px;font-weight:600;line-height:1.05;display:flex}.dock-label small{font-family:var(--f-body);color:var(--ink-3);font-size:11px;font-weight:400}.track{border-top:1px solid var(--line-2);background-image:linear-gradient(90deg,var(--line-2)1px,transparent 1px);background-size:7.14286% 100%;height:50px;position:relative}.dock.compact .track{height:40px}.blk{white-space:nowrap;cursor:pointer;text-align:left;color:var(--ink);border:1px solid;border-radius:4px;flex-direction:column;justify-content:center;padding:3px 7px;font-size:11.5px;line-height:1.25;display:flex;position:absolute;top:5px;bottom:5px}.blk,.blk b{text-overflow:ellipsis;overflow:hidden}.blk b{font-weight:600}.blk span{color:var(--ink-2);text-overflow:ellipsis;overflow:hidden}.dock.compact .blk span{display:none}.blk.in{background:var(--in-soft);border-color:var(--in)}.blk.out{background:var(--out-soft);border-color:var(--out)}.blk.done{opacity:.5}.blk.current{box-shadow:inset 4px 0 0 var(--accent)}.blk.late{border-color:var(--crit);background-image:repeating-linear-gradient(-45deg,transparent 0 6px,var(--crit-soft)6px 12px);border-style:dashed}.blk:hover{filter:brightness(.97)}.nowline{pointer-events:none;width:2px;top:22px;bottom:0}.nowline,.nowline:before{background:var(--crit);position:absolute}.nowline:before{content:attr(data-t);font-family:var(--f-mono);color:#fff;border-radius:3px;padding:1px 4px;font-size:10.5px;top:-20px;left:50%;transform:translate(-50%)}.legend{color:var(--ink-2);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border:1px solid;border-radius:2px;width:14px;height:10px;margin-right:5px;display:inline-block}.legend .l-in{background:var(--in-soft);border-color:var(--in)}.legend .l-out{background:var(--out-soft);border-color:var(--out)}.legend .l-late{border-color:var(--crit);background:repeating-linear-gradient(-45deg,transparent 0 3px,var(--crit-soft)3px 6px);border-style:dashed}.legend .l-cur{background:var(--surface);border-color:var(--line);box-shadow:inset 4px 0 0 var(--accent)}.zones{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.zone{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);flex-direction:column;padding:12px}.zone,.zone h3{gap:8px;display:flex}.zone h3{justify-content:space-between;font-size:15px}.zone h3 span{font-family:var(--f-mono);color:var(--ink-3);font-size:12px;font-weight:400}.zone-item{background:var(--surface);border:1px solid var(--line-2);cursor:pointer;text-align:left;border-radius:4px;width:100%;padding:6px 8px;font-size:12.5px}.zone-item:hover{border-color:var(--ink-3)}.zone-empty{color:var(--ink-3);font-size:12.5px}.alerts{flex-direction:column;display:flex}.alert{cursor:pointer;text-align:left;background:0 0;border:0;border-bottom:1px solid var(--line-2);align-items:flex-start;gap:10px;width:100%;padding:10px 0;display:flex}.alert:last-child{border-bottom:0}.alert:hover .alert-t{text-decoration:underline}.sev{background:var(--warn);border-radius:2px;flex:none;align-self:stretch;width:4px}.sev.crit{background:var(--crit)}.alert-t{font-size:13.5px;font-weight:500}.alert-d{color:var(--ink-3);font-size:12.5px}.flow{flex-direction:column;gap:10px;padding:14px 16px 16px;display:flex}.flow-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.flow-top h3{align-items:center;gap:8px;font-size:17px;display:flex}.flow-top .big{font-family:var(--f-display);font-variant-numeric:tabular-nums;font-size:28px;font-weight:600}.stack{background:var(--surface-2);border-radius:3px;gap:2px;height:10px;display:flex;overflow:hidden}.stack i{height:100%;display:block}.flow ul{color:var(--ink-2);grid-template-columns:1fr 1fr;gap:4px 12px;margin:0;padding:0;font-size:12.5px;list-style:none;display:grid}.flow li{justify-content:space-between;gap:6px;display:flex}.flow li b{font-variant-numeric:tabular-nums;color:var(--ink)}.sw-dot{border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.scrim{background:var(--scrim);opacity:0;pointer-events:none;z-index:50;transition:opacity .2s;position:fixed;inset:0}.scrim.on{opacity:1;pointer-events:auto}.drawer{background:var(--surface);border-left:1px solid var(--line);width:min(600px,100%);box-shadow:var(--shadow);z-index:60;padding-top:env(safe-area-inset-top,0);flex-direction:column;transition:transform .22s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.drawer.open{transform:none}.drawer-h{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:18px 20px 14px;display:flex}.drawer-h h2{font-size:22px;line-height:1.15}.drawer-h p{color:var(--ink-3);margin-top:3px;font-size:12.5px}.drawer-h .btn{margin-left:auto}.drawer-b{flex-direction:column;flex:1;gap:18px;padding:16px 20px 32px;display:flex;overflow-y:auto}.sec h3{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-size:14px;font-family:var(--f-body);align-items:center;gap:8px;margin-bottom:8px;font-weight:600;display:flex}.kv{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;display:grid}.kv div{flex-direction:column;gap:1px;min-width:0;display:flex}.kv span{color:var(--ink-3);font-size:11.5px}.kv b{overflow-wrap:anywhere;font-size:13.5px;font-weight:500}.steps{gap:4px;display:flex}.step{flex:1;min-width:0}.step i{background:var(--line);border-radius:3px;height:5px;display:block}.step.done i{background:var(--good)}.step.cur i{background:var(--accent)}.step span{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;margin-top:5px;font-size:11px;display:block;overflow:hidden}.step.cur span{color:var(--ink);font-weight:600}.actions{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);flex-direction:column;gap:10px;padding:14px;display:flex}.bar{background:var(--line-2);border-radius:4px;height:8px;overflow:hidden}.bar i{background:var(--good);height:100%;display:block}.doc-prev{grid-template-columns:1fr 1fr;gap:10px;display:grid}.doc{border:1px solid var(--line);background:var(--surface);border-radius:4px;flex-direction:column;gap:4px;padding:12px;font-size:12px;display:flex}.doc b{font-family:var(--f-display);font-size:16px}.label-prev{border:1px dashed var(--ink-3);font-family:var(--f-mono);background:var(--surface);border-radius:4px;flex-direction:column;gap:3px;padding:10px 12px;font-size:12px;display:flex}.barcode{background:repeating-linear-gradient(90deg,var(--ink)0 2px,transparent 2px 3px,var(--ink)3px 4px,transparent 4px 7px,var(--ink)7px 10px,transparent 10px 11px);height:34px;margin-top:4px}.ls{border-bottom:1px solid var(--line-2);flex-direction:column;gap:6px;padding:10px 0;display:flex}.ls:last-child{border-bottom:0}.ls-top{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.gauge{background:var(--line-2);height:8px;position:relative}.gauge,.gauge i{border-radius:4px}.gauge i{background:var(--good);position:absolute;top:0;bottom:0;left:0}.gauge i.low{background:var(--crit)}.gauge u{background:var(--ink-2);width:2px;position:absolute;top:-3px;bottom:-3px}.term-wrap{grid-template-columns:minmax(0,360px) minmax(0,1fr);align-items:start;gap:24px;display:grid}.phone{background:var(--rail);width:100%;max-width:360px;box-shadow:var(--shadow);border-radius:34px;padding:12px}.screen{color:#14202a;background:#f3f5f6;border-radius:24px;flex-direction:column;min-height:600px;display:flex;overflow:hidden}.scr-top{color:#fff;background:#14202a;justify-content:space-between;align-items:center;padding:12px 16px 10px;font-size:12px;display:flex}.scr-top b{font-family:var(--f-display);font-size:17px;font-weight:600}.scr-b{flex-direction:column;flex:1;gap:10px;padding:14px;display:flex}.t-task{text-align:left;cursor:pointer;color:#14202a;background:#fff;border:1px solid #d5dbe0;border-radius:10px;flex-direction:column;gap:3px;width:100%;padding:12px;display:flex}.t-task:hover{border-color:#77848f}.t-task .t-type{text-transform:uppercase;letter-spacing:.08em;color:#6b4e00;font-size:11px;font-weight:600}.t-task b{font-size:14.5px}.t-task span{color:#4a5865;font-size:12.5px}.t-prompt{background:#fff;border:1px solid #d5dbe0;border-radius:10px;padding:14px}.t-prompt small{text-transform:uppercase;letter-spacing:.08em;color:#77848f;font-size:11px;font-weight:600}.t-prompt .expect{font-family:var(--f-mono);color:#14202a;margin-top:4px;font-size:20px;font-weight:500}.t-prompt p{color:#4a5865;margin-top:4px;font-size:13px}.t-steps{gap:4px;display:flex}.t-steps i{background:#d5dbe0;border-radius:3px;flex:1;height:5px}.t-steps i.d{background:#1c7a50}.t-steps i.c{background:#f2b300}.t-input{gap:6px;display:flex}.t-input input{min-width:0;font-family:var(--f-mono);color:#14202a;background:#fff;border:2px solid #14202a;border-radius:8px;flex:1;padding:12px;font-size:15px}.t-big{color:#1b1500;background:#f2b300;border:0;border-radius:10px;padding:14px;font-size:15px;font-weight:600}.t-big,.t-sec{cursor:pointer;width:100%}.t-sec{color:#14202a;background:#fff;border:1px solid #c9d1d8;border-radius:10px;padding:11px;font-size:13px}.t-err{background:#b4321f;animation:shake .35s}.t-err,.t-ok{color:#fff;border-radius:10px;padding:12px;font-size:13.5px;font-weight:500}.t-ok{background:#1c7a50}@keyframes shake{0%,to{transform:none}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.t-demo{grid-template-columns:1fr 1fr;gap:6px;display:grid}.trace{grid-template-columns:minmax(0,1fr) minmax(0,320px);gap:16px;display:grid}.tl{margin:0;padding:0;list-style:none}.tl,.tl li{position:relative}.tl li{padding:0 0 18px 28px}.tl li:before{content:"";background:var(--line);width:2px;position:absolute;top:6px;bottom:-6px;left:7px}.tl li:last-child:before{display:none}.tl li:after{content:"";background:var(--surface);border:2px solid var(--ink-3);border-radius:50%;width:12px;height:12px;position:absolute;top:4px;left:2px}.tl li.in:after{border-color:var(--in)}.tl li.out:after{border-color:var(--out);background:var(--out)}.tl li.prod:after{border-color:var(--accent-line);background:var(--accent)}.tl li.store:after{border-color:var(--good)}.tl .when{font-family:var(--f-mono);color:var(--ink-3);font-size:11.5px}.tl .what{font-weight:500}.tl .where{color:var(--ink-2);font-size:12.5px}.search{flex-wrap:wrap;gap:8px;display:flex}.search input{border:1px solid var(--line);background:var(--surface);border-radius:6px;flex:220px;min-width:0;padding:10px 12px;font-size:14px}.lot-link,.search input{font-family:var(--f-mono)}.lot-link{color:var(--info);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;font-size:12.5px;text-decoration:underline}.rule{border-bottom:1px solid var(--line-2);align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.rule:last-child{border-bottom:0}.rule-id{font-family:var(--f-mono);color:var(--ink-3);flex:none;width:44px;padding-top:2px;font-size:12px}.rule-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.rule-main b{font-weight:600}.rule-sent{color:var(--ink-2);font-size:13px}.rule-sent em{color:var(--ink);font-style:normal;font-weight:600}.rule.off .rule-main{opacity:.55}.preview{border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 6px 6px 0;padding:10px 12px;font-size:13.5px}.mods{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.mod{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);flex-direction:column;gap:8px;padding:14px;display:flex}.mod-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.mod-top b{font-family:var(--f-display);font-size:17px;font-weight:600}.mod p{color:var(--ink-2);font-size:12.5px}.matrix td,.matrix th{text-align:center}.matrix td:first-child,.matrix th:first-child{text-align:left}.yes{color:var(--good)}.no{color:var(--line)}.toasts{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:80;flex-direction:column;gap:8px;max-width:min(380px,100% - 32px);display:flex;position:fixed}.toast{background:var(--ink);color:var(--bg);box-shadow:var(--shadow);border-radius:6px;align-items:flex-start;gap:9px;padding:10px 14px;font-size:13px;animation:tin .2s;display:flex}.toast .ic{width:16px;height:16px;color:var(--good);margin-top:1px}.toast.crit .ic{color:var(--crit)}.toast.warn .ic{color:var(--accent)}@keyframes tin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (max-width:1180px){.s3{grid-column:span 6}.s4,.s5,.s6,.s7,.s8{grid-column:span 12}.mods,.zones{grid-template-columns:repeat(2,minmax(0,1fr))}.trace{grid-template-columns:1fr}}@media (max-width:960px){.app{grid-template-columns:minmax(0,1fr)}.rail{width:260px;padding-top:env(safe-area-inset-top,0);transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.rail.open{z-index:55;transform:none}.btn.menu-btn{display:inline-flex}.term-wrap{grid-template-columns:minmax(0,1fr)}.phone{margin:0 auto}}@media (max-width:640px){.view{padding-inline:16px}.topbar{padding:10px 16px}.s3{grid-column:span 12}.mods,.zones{grid-template-columns:minmax(0,1fr)}.kv{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:minmax(0,1fr)}.doc-prev{grid-template-columns:1fr}.clock{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.site select{background:var(--rail-2);width:100%;color:var(--rail-hi);border:1px solid var(--rail-line);border-radius:5px;margin-top:6px;padding:5px 8px;font-size:12.5px}.rail-foot .logout{color:var(--rail-ink);cursor:pointer;background:0 0;border:0;border-radius:4px;margin-left:auto;padding:4px}.rail-foot .logout:hover{color:var(--rail-hi);background:var(--rail-2)}.rail-foot>div{min-width:0}.rail-foot>div b,.rail-foot>div span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.empty{padding:6px 0}.empty,.loading{color:var(--ink-3);font-size:13px}.loading{padding:24px 0}.err-box{background:var(--crit-soft);color:var(--ink);border-radius:var(--r);gap:8px;padding:10px 12px;font-size:13px;display:flex}.err-box .ic{color:var(--crit);width:16px;height:16px;margin-top:1px}.day-nav{align-items:center;gap:6px;display:flex}.day-nav input{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:5px 8px}.day-nav input,.file-pick,.photo-link{font-size:12.5px}.photo-link{color:var(--info);text-decoration:underline}.matrix select{border:1px solid var(--line);background:var(--surface);border-radius:4px;padding:3px 6px;font-size:12.5px}.role-pills{flex-wrap:wrap;gap:4px;display:flex}.role-pill{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-2);border-radius:999px;padding:1px 8px;font-size:11.5px}.role-pill[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.role-pill.main{cursor:default;background:var(--accent-soft);color:var(--accent-text);border-color:#0000;font-weight:600}.login{background:var(--bg);place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:16px;padding:28px;display:flex}.login-brand{align-items:center;gap:10px;display:flex}.login-card .btn{width:100%;padding:11px 14px}.login-sep{color:var(--ink-3);align-items:center;gap:10px;font-size:12px;display:flex}.login-sep:after,.login-sep:before{content:"";background:var(--line);flex:1;height:1px}.login-foot{color:var(--ink-3);text-align:center;font-size:12px}.terrain{color:#14202a;background:#f3f5f6;flex-direction:column;min-height:100vh;display:flex}.terrain .screen{border-radius:0;min-height:100vh}.doc-page{color:#111;min-height:100vh;font-family:var(--f-body);background:#fff;padding:32px}.doc-page h1{font-family:var(--f-display);margin:14px 0 4px;font-size:28px}.doc-page table{border-collapse:collapse;width:100%;margin-top:16px;font-size:13px}.doc-page td,.doc-page th{text-align:left;border:1px solid #999;padding:6px 8px}.doc-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;display:grid}.doc-box{border:1px solid #999;min-height:70px;padding:10px;font-size:13px}.doc-box small{text-transform:uppercase;letter-spacing:.06em;color:#555;margin-bottom:4px;font-size:10.5px;display:block}.doc-actions{gap:8px;margin-bottom:20px;display:flex}.labels{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.label{font-family:var(--f-mono);break-inside:avoid;border:1px solid #111;flex-direction:column;gap:3px;padding:12px;font-size:12.5px;display:flex}.label svg{width:100%;height:70px;margin-top:6px}@media print{.doc-actions{display:none}.doc-page{padding:0}}