:root{--bg: #0b0f14;--card: #121923;--surface2: #0f151d;--hover: #1a2332;--skel: #222d3f;--border: #1f2a37;--border2: #2b3a4d;--text: #e6edf3;--text2: #cbd5e1;--muted: #8b98a8;--accent: #03b4e1;--on-accent: #022331;--link: #03b4e1;--pos: #22c55e;--warn: #f59e0b;--bad: #ef4444;--notice-bg: #2a1f0a;--topbar: #0f151d;--nav: #141c2b;--nav-hover: #1c2740;--nav-active: #2a3550;--nav-active-text: #ffffff;--nav-sub: #2b3a4d;--chip-blue: #0e5a70;--chip-bad: #6b2323;--scrim: rgba(0, 0, 0, .5);--overlay: rgba(0, 0, 0, .88);color-scheme:dark;--brand-blue: #03b4e1;--brand-green: #22c55e;--brand-green-d: #15803d;--brand-grad: linear-gradient(90deg, #22c55e, #03b4e1)}:root[data-theme=light]{--bg: #f3f6f5;--card: #ffffff;--surface2: #f6f9f8;--hover: #edf3f0;--skel: #e3ebe7;--border: #dce4e0;--border2: #c9d4cf;--text: #12201a;--text2: #2f3d36;--muted: #5f6f67;--accent: #03b4e1;--on-accent: #022331;--link: #0277a0;--pos: #15803d;--warn: #b45309;--bad: #c62828;--notice-bg: #fff7e6;--topbar: #ffffff;--nav: #f7faf9;--nav-hover: #eaf1ee;--nav-active: #dcf1f8;--nav-active-text: #0b3a4a;--nav-sub: #c9d4cf;--chip-blue: #9bd7ea;--chip-bad: #f1b4b4;--scrim: rgba(15, 30, 25, .35);--overlay: rgba(10, 20, 16, .85);color-scheme:light}@media (prefers-color-scheme: light){:root:not([data-theme]){--bg: #f3f6f5;--card: #ffffff;--surface2: #f6f9f8;--hover: #edf3f0;--skel: #e3ebe7;--border: #dce4e0;--border2: #c9d4cf;--text: #12201a;--text2: #2f3d36;--muted: #5f6f67;--accent: #03b4e1;--on-accent: #022331;--link: #0277a0;--pos: #15803d;--warn: #b45309;--bad: #c62828;--notice-bg: #fff7e6;--topbar: #ffffff;--nav: #f7faf9;--nav-hover: #eaf1ee;--nav-active: #dcf1f8;--nav-active-text: #0b3a4a;--nav-sub: #c9d4cf;--chip-blue: #9bd7ea;--chip-bad: #f1b4b4;--scrim: rgba(15, 30, 25, .35);--overlay: rgba(10, 20, 16, .85);color-scheme:light}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}h1{font-size:1.3rem;margin:0}h2{font-size:1rem;margin:0 0 12px}.muted{color:var(--muted);font-size:.85rem}.wrap{width:100%;max-width:1100px;margin:0 auto;padding:20px 16px 40px;display:grid;gap:16px}header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px}.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.two{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.sensor{display:grid;gap:4px;border-top:3px solid var(--accent)}.sensor.warn{border-top-color:var(--warn)}.sensor.na{border-top-color:var(--border)}.value{font-size:1.9rem;font-weight:600}.value small{font-size:.9rem;color:var(--muted);margin-left:4px;font-weight:400}.hint{font-size:.75rem;color:var(--muted)}.sensor.warn .hint{color:var(--warn)}button{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px 12px;cursor:pointer;font:inherit;font-size:.85rem}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.4;cursor:not-allowed}button.active,button.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600}.badge{font-size:.75rem;padding:4px 10px;border-radius:999px;border:1px solid var(--border)}.badge.on{color:var(--link);border-color:var(--accent)}.badge.off{color:var(--muted)}.notice{background:var(--notice-bg);border:1px solid var(--warn);color:var(--warn);padding:10px 14px;border-radius:10px;font-size:.85rem}.bar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.tabs{display:flex;gap:6px;flex-wrap:wrap}.chart{height:280px}.relay{padding:12px 0;border-bottom:1px solid var(--border);display:grid;gap:8px}.relay:last-child{border-bottom:0}.relay .head{display:flex;justify-content:space-between;align-items:center}.log{list-style:none;margin:0;padding:0;display:grid;gap:8px}.log li{display:flex;justify-content:space-between;gap:8px;font-size:.88rem;flex-wrap:wrap}.err{color:var(--bad);font-size:.8rem;margin:6px 0 0}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login .card{width:100%;max-width:360px;display:grid;gap:12px}input{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font:inherit}input:focus{outline:1px solid var(--accent)}.group{font-size:.78rem;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px}.dose{margin:0 0 8px;font-size:.85rem;color:var(--link)}.shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;height:56px;padding:0 12px;background:var(--topbar);border-bottom:1px solid var(--border)}.topbar:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand-grad)}.topbar .brand{display:inline-flex;align-items:center;gap:8px;font-size:1.05rem;letter-spacing:.01em}.topbar .brand b{color:var(--text);font-weight:400;font-size:1.15rem}.topbar .brand b span{color:var(--link)}.topbar .who{margin-left:auto}.burger{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;background:transparent;border:0;color:var(--text);border-radius:10px;cursor:pointer}.burger:hover{background:var(--hover)}.scrim{position:fixed;top:56px;right:0;bottom:0;left:0;z-index:38;background:var(--scrim)}.sidenav{position:fixed;top:56px;bottom:0;left:0;z-index:40;width:250px;display:flex;flex-direction:column;gap:2px;padding:12px 10px;overflow-y:auto;background:var(--nav);border-right:1px solid var(--border);transform:translate(-100%);transition:transform .2s ease;visibility:hidden}.sidenav.open{transform:none;visibility:visible}.sidenav button{display:flex;align-items:center;gap:14px;width:100%;min-height:44px;padding:10px 14px;background:transparent;border:0;border-radius:8px;color:var(--text2);font:inherit;text-align:left;cursor:pointer}.sidenav button:hover{background:var(--nav-hover);color:var(--text)}.sidenav button.active{background:var(--nav-active);color:var(--nav-active-text);font-weight:600}.sidenav button.active svg{color:var(--link)}.sidenav .chev{margin-left:auto;transition:transform .15s ease}.sidenav .chev.up{transform:rotate(90deg)}.sidenav .grp{display:flex;flex-direction:column;gap:2px}.sidenav .subs{display:flex;flex-direction:column;gap:2px;margin:0 0 4px 22px;padding-left:12px;border-left:1px solid var(--border2)}.sidenav .subs button{min-height:40px;padding:8px 12px;font-size:.9rem}.sidenav .navfoot{margin-top:auto;padding:10px 14px 6px;font-size:.72rem;line-height:1.4;color:var(--muted)}.sidenav .logout{border-top:1px solid var(--border);border-radius:0 0 8px 8px;padding-top:14px}.content{min-width:0}@media (min-width: 900px){.burger,.scrim{display:none}.sidenav{transform:none;visibility:visible;transition:none}.content{margin-left:250px}}@media (prefers-reduced-motion: reduce){.sidenav{transition:none}}.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:8px;margin-bottom:12px;align-items:end}.fld{display:grid;gap:4px;font-size:.75rem;color:var(--muted);min-width:0}.fld input,.fld select{width:100%;min-width:0}select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 10px;font:inherit;font-size:.9rem}.tw{overflow-x:auto}table.t{width:100%;border-collapse:collapse;font-size:.85rem}table.t th,table.t td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--border);white-space:nowrap}table.t th{color:var(--muted);font-weight:500}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px}.stat b{display:block;font-size:1.5rem;margin-top:4px}.pos{color:var(--pos)}.neg{color:var(--bad)}.upl{display:inline-block;border:1px solid var(--border);border-radius:8px;padding:7px 12px;cursor:pointer;font-size:.85rem}.upl:hover{border-color:var(--accent)}.hgrid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}@media (min-width: 1100px){.hgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.hcard.wide{grid-column:1 / -1}}.hcard{display:grid;gap:12px;align-content:start;min-width:0}.hhead{display:flex;justify-content:space-between;align-items:center;gap:8px}.hhead h2{margin:0}button.link{border:0;padding:4px 6px;color:var(--link);font-size:.85rem}button.link:hover{text-decoration:underline}.hstats{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.hstats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.hstat{display:grid;gap:2px;padding:10px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;min-width:0}.hstat b{font-size:1.25rem;font-weight:600;overflow-wrap:break-word}.hstat b.word{font-size:1.05rem;line-height:1.3}.hstat .hint{overflow-wrap:anywhere}.warnc{color:var(--warn)}.hsplit{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}@media (min-width: 760px){.hsplit{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}}.hcol{display:grid;gap:14px;align-content:start}.hchart{height:230px;margin-top:6px}.hchart.sm{height:190px}.dtable{margin-top:6px;font-size:.85rem}.dtable summary{cursor:pointer;color:var(--muted);padding:4px 0}.hbars{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:10px}.hbars .hbl{display:flex;justify-content:space-between;gap:8px;font-size:.85rem;margin-bottom:4px}.hbars .track{height:8px;background:var(--surface2);border-radius:4px;overflow:hidden}.hbars .fill{height:100%;border-radius:4px;min-width:4px}.hrank{margin:8px 0 0;padding-left:20px;display:grid;gap:6px;font-size:.88rem}.hrank li span.muted{display:block;font-size:.8rem}.hact{list-style:none;margin:0;padding:0;display:grid;gap:10px}.hact li{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:baseline;font-size:.88rem}.hact .dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.hact .dot.bad{background:var(--bad)}.hact li>div{overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.login .card{position:relative;overflow:hidden}.login .card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--brand-grad)}.login-logo{display:block;width:300px;max-width:100%;height:auto;margin:-8px auto -14px}.login-logo.for-light{display:none}:root[data-theme=light] .login-logo.for-dark{display:none}:root[data-theme=light] .login-logo.for-light{display:block}@media (prefers-color-scheme: light){:root:not([data-theme]) .login-logo.for-dark{display:none}:root:not([data-theme]) .login-logo.for-light{display:block}}.login .card>.muted{text-align:center}.sidenav button.active svg,.sidenav .grp>button.active svg{color:var(--link)}.hact .dot{background:var(--brand-green)}.sidenav .navfoot .th-brand{color:var(--text);font-size:.85rem}.wrap>*{min-width:0}.card{min-width:0;overflow-wrap:anywhere}code{overflow-wrap:anywhere;font-size:.82em;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:1px 6px}.gw>summary{cursor:pointer;display:flex;gap:6px 12px;align-items:baseline;flex-wrap:wrap;list-style-position:outside}.gw>summary b{font-size:1rem}.gw .status{font-size:.82rem}.gw .hook{display:grid;gap:6px;margin:12px 0;padding:10px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;font-size:.82rem;color:var(--muted)}.gw .hook div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.gw .form{margin-top:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px 16px;align-items:start}.gw .fld{font-size:.8rem}.gw .fld .flbl{color:var(--text);font-weight:500;font-size:.85rem}.gw .fld .src{justify-self:start;font-size:.7rem;padding:1px 8px;border-radius:99px;border:1px solid var(--border);color:var(--muted)}.gw .fld .src.db{color:var(--link);border-color:var(--chip-blue)}.gw .fld .src.del{color:var(--bad);border-color:var(--chip-bad)}.gw .fld .help{line-height:1.4}button.mini{justify-self:start;font-size:.75rem;padding:3px 10px}.gw .actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:4px}.gw>summary a{margin-left:auto;font-size:.82rem;color:var(--link);text-decoration:none}.gw>summary a:hover{text-decoration:underline}a{color:var(--link)}@media (max-width: 640px){.tw{overflow-x:visible}table.t,table.t tbody,table.t tr,table.t td{display:block;width:100%}table.t thead{display:none}table.t tr{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:4px 12px;margin-bottom:10px}.tw{margin-top:10px}table.t td{position:relative;padding:8px 0 8px calc(36% + 10px);min-height:36px;border-bottom:1px dashed var(--border);white-space:normal!important;min-width:0!important;overflow-wrap:anywhere}table.t td:last-child{border-bottom:0}table.t td:before{content:attr(data-label);position:absolute;left:0;top:9px;width:36%;color:var(--muted);font-size:.76rem;line-height:1.35}table.t td:not([data-label]),table.t td[data-label=""]{padding-left:0}table.t td:not([data-label]):before,table.t td[data-label=""]:before{content:none}table.t td:empty{display:none}table.t td input:not([type=checkbox]):not([type=radio]),table.t td select{width:100%!important;min-width:0}table.t td .row{justify-content:flex-start}table.t td>button,table.t td>select,table.t td>input{margin:2px 6px 2px 0}.stat b{font-size:1.25rem}}.guide h2{margin-bottom:10px}.gsteps{list-style:none;margin:0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));counter-reset:none}.gsteps li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:12px;background:var(--surface2);border:1px solid var(--border);border-radius:10px}.gnum{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.85rem;color:var(--on-accent);background:var(--brand-grad)}.gsteps b{display:block}.gwhen{display:inline-block;margin:3px 0 4px;font-size:.72rem;padding:1px 8px;border-radius:99px;border:1px solid var(--chip-blue);color:var(--link)}.gsteps p{margin:0;font-size:.85rem;color:var(--text2);line-height:1.45}table.t.gtable td,table.t.gtable th{white-space:normal;vertical-align:top;line-height:1.45}.glist{margin:0;padding-left:18px;display:grid;gap:7px;font-size:.88rem;line-height:1.45}.glist.num{list-style:decimal}.gtwo{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}.glabel-wrap{display:grid;gap:18px;grid-template-columns:minmax(0,1fr);align-items:start}@media (min-width: 900px){.glabel-wrap{grid-template-columns:minmax(0,1fr) 280px}}.glabel{margin:0;justify-self:center;width:100%;max-width:280px;background:#fff;color:#10231a;border-radius:12px;padding:14px;display:grid;gap:6px;border-top:4px solid #15803d;box-shadow:0 0 0 1px #d9e7e1}.glabel-top{display:flex;align-items:center;gap:8px;font-size:1.05rem;color:#15803d}.glabel-top span span{color:#03b4e1}.glabel-name{font-size:1rem}.glabel-row{display:flex;justify-content:space-between;font-size:.82rem;border-bottom:1px dashed #d9e7e1;padding-bottom:3px}.glabel-row span{color:#64748b}.glabel .mono{font-family:ui-monospace,Consolas,monospace;letter-spacing:.04em}.glabel-qr{display:flex;gap:10px;align-items:center;font-size:.75rem;color:#64748b;margin-top:4px}.glabel .qr{flex:0 0 56px;height:56px;border-radius:4px;background:repeating-conic-gradient(#10231a 0,#10231a 25%,#fff 0,#fff 50%) 0 0 / 14px 14px;border:3px solid #10231a}.glabel small{font-size:.7rem;color:#64748b}.glabel figcaption{color:#64748b;font-size:.7rem;text-align:center}.gcheck{list-style:none;margin:0;padding:0;display:grid;gap:4px}.gcheck label{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:.88rem}.gcheck label:hover{background:var(--surface2)}.gcheck input{width:18px;height:18px;margin-top:1px;accent-color:var(--link);flex:0 0 auto}.gcheck input:checked+span{color:var(--muted);text-decoration:line-through}@media print{.topbar,.sidenav,.scrim,.guide header button{display:none!important}.content{margin-left:0!important}body{background:#fff;color:#000}.card,.gsteps li{background:#fff!important;border-color:#ccc!important;break-inside:avoid}.gsteps p,.glist,.gtable td,.gcheck label{color:#000!important}.notice{background:#fff;color:#000}}.gtable.fixed{table-layout:fixed}.gtable th{white-space:normal}@media (max-width: 640px){.gtable.fixed{table-layout:auto}}.lgrid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);align-items:start}@media (min-width: 1000px){.lgrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.lform{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));align-items:end;margin-bottom:8px}.lform .wide{grid-column:1 / -1}.lmore{margin-top:6px;font-size:.85rem}.lmore summary{cursor:pointer;color:var(--muted);padding:6px 0}.lpreview{display:grid;gap:12px;align-content:start}.lstage{display:grid;place-items:center;padding:18px;border-radius:10px;background:repeating-linear-gradient(45deg,var(--surface2) 0 8px,var(--card) 8px 16px);overflow:auto}.lbl{box-sizing:border-box;background:#fff;color:#000;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.2mm;padding:1.6mm 1.8mm;font-family:DejaVu Sans,Inter,system-ui,sans-serif;overflow:hidden;border-radius:1mm;box-shadow:0 0 0 1px #d9e7e1;-webkit-print-color-adjust:exact;print-color-adjust:exact}.lbl-main{display:flex;flex-direction:column;gap:.4mm;min-width:0}.lbl-brand{display:flex;align-items:center;gap:1mm;font-size:3.4mm;line-height:1;color:#15803d}.lbl-brand img{width:3.6mm;height:3.6mm}.lbl-brand span span{color:#03b4e1}.lbl-name{font-size:3mm;line-height:1.15;overflow-wrap:anywhere}.lbl-rows{display:flex;flex-direction:column;font-size:2.2mm;line-height:1.25;color:#222}.lbl-rows b{color:#000}.lbl-batch{font-family:ui-monospace,Consolas,DejaVu Sans Mono,monospace;font-size:2.9mm;letter-spacing:.15mm;margin-top:auto}.lbl-foot{font-size:1.7mm;line-height:1.2;color:#333}.lbl-qr{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4mm}.lbl-qr .qr{width:17mm;height:17mm}.lbl-qr small{font-size:1.7mm;color:#333}.lbl-t50{padding:1.2mm 1.4mm;gap:1mm}.lbl-t50 .lbl-brand{font-size:2.8mm}.lbl-t50 .lbl-brand img{width:3mm;height:3mm}.lbl-t50 .lbl-name{font-size:2.5mm}.lbl-t50 .lbl-rows{font-size:1.9mm}.lbl-t50 .lbl-batch{font-size:2.5mm}.lbl-t50 .lbl-qr .qr{width:19mm;height:19mm}.lbl-t50 .lbl-qr small{display:none}.lbl-t60 .lbl-qr .qr{width:24mm;height:24mm}.lbl-t60 .lbl-name{font-size:3.4mm}.lbl-t60 .lbl-rows{font-size:2.5mm}.lbl-a4 .lbl-qr .qr{width:22mm;height:22mm}#label-print{display:none}@media print{body.print-labels{background:#fff!important;margin:0}body.print-labels #root{display:none!important}body.print-labels #label-print{display:block}#label-print .lpage{break-after:page;page-break-after:always}#label-print .lpage:last-child{break-after:auto;page-break-after:auto}#label-print .lbl{border-radius:0;box-shadow:none}#label-print.lsheet-a4 .lpage{display:grid;justify-content:center}#label-print.lsheet-a4 .lbl{box-shadow:inset 0 0 0 .1mm #ddd}}.journal textarea{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font:inherit;resize:vertical}.journal textarea:focus{outline:1px solid var(--accent)}.jform{display:grid;gap:10px;margin-bottom:12px}.jform .form{margin-bottom:0}.jphoto-row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.jpick{display:inline-flex;gap:8px;flex-wrap:wrap}.jpick .upl{display:inline-flex;align-items:center;gap:6px;min-height:40px}.jpick .cam{border-color:var(--link);color:var(--link);font-weight:600}.jpick.compact .upl{min-height:32px;padding:4px 10px;font-size:.8rem}.jpreview{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.jpreview img{width:96px;height:96px;object-fit:cover;border-radius:10px;border:1px solid var(--border)}.jpreview>div{display:grid;gap:6px}.jbar{display:flex;gap:12px;align-items:end;justify-content:space-between;flex-wrap:wrap;margin:4px 0 10px}.jlist{list-style:none;margin:0;padding:0;display:grid;gap:10px}.jentry{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;padding:10px;background:var(--surface2);border:1px solid var(--border);border-radius:10px}.jthumb{width:92px;height:92px}.jimg,.jph-wait,.jnone{display:block;width:92px;height:92px;border-radius:8px;object-fit:cover}.jph-wait{background:linear-gradient(90deg,var(--hover),var(--skel),var(--hover))}.jnone{display:grid;place-items:center;color:var(--border);border:1px dashed var(--border)}.jph-btn{padding:0;border:0;background:none;border-radius:8px;cursor:zoom-in;display:block}.jph-bad{font-size:.72rem;color:var(--muted)}.jtext{display:grid;gap:4px;align-content:start;min-width:0}.jtext p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.9rem}.jbig{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--overlay);display:grid;place-items:center;align-content:center;gap:12px;padding:16px;cursor:zoom-out}.jbig-img{max-width:100%;max-height:78vh;border-radius:10px}.jbig p{margin:0;color:#e6edf3;max-width:720px;text-align:center;font-size:.9rem}@media (max-width: 640px){.jentry{grid-template-columns:72px minmax(0,1fr)}.jthumb,.jimg,.jph-wait,.jnone{width:72px;height:72px}}.gh3{font-size:.9rem;margin:14px 0 8px;color:var(--text)}.gtime{list-style:none;margin:0;padding:0;display:grid;gap:8px}.gtime li{display:grid;grid-template-columns:minmax(90px,auto) auto minmax(0,1fr);gap:4px 10px;align-items:baseline;padding:8px 10px;background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--brand-green);border-radius:8px;font-size:.86rem}.gtime .gwhen{margin:0;justify-self:start}@media (max-width: 640px){.gtime li{grid-template-columns:1fr auto}.gtime li .muted{grid-column:1 / -1}}.print-only{display:none}@media print{.print-only{display:block}.guide .tabs{display:none}}.content{display:flex;flex-direction:column;min-height:calc(100vh - 56px)}.content>.site-foot{margin-top:auto}.content>*{width:100%}.login{grid-template-rows:1fr auto}.login>.site-foot{align-self:end;width:100%}.site-foot{border-top:1px solid var(--border);padding:18px 16px 22px;font-size:.78rem;color:var(--muted)}.site-foot-in{max-width:1100px;margin:0 auto;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;justify-content:space-between}.site-foot-brand{display:inline-flex;align-items:center;gap:7px;font-size:.95rem;color:var(--text)}.site-foot-brand span span{color:var(--brand-blue)}.site-foot-note{margin:0;flex:1 1 260px}.site-foot-links{display:flex;gap:14px;flex-wrap:wrap}.site-foot-links a{color:var(--muted);text-decoration:none}.site-foot-links a:hover{color:var(--link);text-decoration:underline}.site-foot-copy{margin:0;flex-basis:100%}@media (min-width: 760px){.site-foot-copy{flex-basis:auto}}@media print{.site-foot{display:none}}.theme-switch{display:inline-flex;padding:3px;gap:2px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.theme-switch button{display:inline-flex;align-items:center;gap:5px;border:0;padding:5px 9px;border-radius:7px;font-size:.78rem;color:var(--muted);background:transparent;min-height:30px}.theme-switch button:hover:not(:disabled){color:var(--text);border:0}.theme-switch button[aria-pressed=true]{background:var(--card);color:var(--text);box-shadow:0 0 0 1px var(--border2);font-weight:600}.sidenav .theme-row{padding:8px 10px 4px;display:grid;gap:6px}.sidenav .theme-row>span{font-size:.72rem;color:var(--muted);padding-left:4px}.sidenav .theme-row .theme-switch{width:100%}.sidenav .theme-row .theme-switch button{flex:1;justify-content:center}.login-theme{position:fixed;top:12px;right:12px;z-index:5}.sidenav .theme-row .theme-switch button{padding:5px 4px;font-size:.74rem;gap:4px;min-width:0}.sidenav .theme-row .theme-switch{box-sizing:border-box;max-width:100%}@media (max-width: 760px),(pointer: coarse){.site-foot-links a,.gw>summary a{display:inline-flex;align-items:center;min-height:40px}button.mini{min-height:36px;padding:6px 12px;font-size:.8rem}button.link{min-height:40px;padding:8px}.theme-switch button{min-height:40px}}.assets .ahead{justify-content:space-between;margin-bottom:10px}.assets .ahead h2{margin:0}.assets .aform{padding:12px;margin-bottom:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.assets .afilter{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}.assets .fld.wide{grid-column:span 2}@media (max-width: 520px){.assets .fld.wide{grid-column:auto}}.assets .chk{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:var(--muted);min-height:36px}.assets tr.gone td{opacity:.6}.assets .aact{flex-wrap:nowrap;gap:6px}@media (max-width: 760px){.assets .aact{flex-wrap:wrap}}.atag{display:inline-block;font-size:.75rem;padding:2px 9px;border-radius:99px;border:1px solid var(--border2);white-space:nowrap}.atag.baik{color:var(--pos)}.atag.perlu_perawatan{color:var(--warn);border-color:var(--warn)}.atag.rusak{color:var(--bad);border-color:var(--bad)}.amaint h2 .muted{font-weight:400;margin-left:6px}.assets .nw,.assets .atable code,.assets .aact button,.assets .atable .muted{white-space:nowrap}.assets .atable td:nth-child(2) .muted,.assets .atable td:nth-child(3){white-space:normal}.assets .aact button{padding-left:10px;padding-right:10px}@media (min-width: 761px){.assets section.card{overflow-x:auto}}@media (min-width: 761px){.assets .atable td:nth-child(2),.assets .atable th:nth-child(2){min-width:170px}.assets .atable td:nth-child(3),.assets .atable th:nth-child(3){min-width:120px}.assets .atable th{white-space:nowrap}}.bookings .bhead{justify-content:space-between;align-items:end;margin-bottom:10px}.bookings .bhead h2{margin:0}.bookings .badd{margin-top:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.bookings .badd summary{cursor:pointer;color:var(--link);min-height:32px;display:flex;align-items:center}.bookings .badd[open] summary{margin-bottom:10px}.bookings .chk{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:var(--muted);min-height:36px}.bookings tr.gone td{opacity:.6}.bookings .nw,.bookings .bact button{white-space:nowrap}.bookings .bact{flex-wrap:nowrap;gap:6px}@media (max-width: 760px){.bookings .bact{flex-wrap:wrap}}.btag{display:inline-block;font-size:.75rem;padding:2px 9px;border-radius:99px;border:1px solid var(--border2);white-space:nowrap}.btag.menunggu_dp{color:var(--warn);border-color:var(--warn)}.btag.terbooking{color:var(--pos);border-color:var(--pos)}.btag.jadi_pesanan{color:var(--link)}.btag.batal{color:var(--muted)}@media (min-width: 761px){.bookings section.card{overflow-x:auto}.bookings .btable td:nth-child(2),.bookings .btable td:nth-child(3){min-width:150px}.bookings .btable th{white-space:nowrap}}.finance .fhead{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:end;justify-content:space-between}.finance .fhead h1{margin:0}.finance .fbar{justify-content:space-between;align-items:end;margin-bottom:10px}.finance .fbar h2{margin:0}.finance .fchart{height:260px}.finance .fscroll{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.finance .fscroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ftable{border-collapse:collapse;font-size:.78rem;width:100%;min-width:940px;font-variant-numeric:tabular-nums}.ftable th,.ftable td{padding:6px 7px;border-bottom:1px solid var(--border);white-space:nowrap;text-align:right}.ftable thead th{color:var(--muted);font-weight:500;background:var(--surface2)}.ftable th[scope=row],.ftable thead th:first-child{text-align:left;position:sticky;left:0;background:var(--card);font-weight:500;z-index:1}.ftable thead th:first-child{background:var(--surface2)}.ftable tr.grp th{background:var(--surface2);color:var(--muted);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.ftable tr.sum th,.ftable tr.sum td,.ftable tr.net th,.ftable tr.net td{font-weight:700}.ftable tr.net td,.ftable tr.net th{border-top:2px solid var(--border2)}.ftable td.tot{font-weight:600}.finance .nw,.finance .fact button{white-space:nowrap}.finance .fact{flex-wrap:nowrap;gap:6px}@media (max-width: 760px){.finance .fact{flex-wrap:wrap}}.finance tr.gone td{opacity:.6}.finance .fadd,.finance .fnote{margin-bottom:12px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.finance .fadd summary,.finance .fnote summary{cursor:pointer;color:var(--link);min-height:32px;display:flex;align-items:center}.finance .fadd[open] summary{margin-bottom:10px}.finance .fnote{margin:12px 0 0;font-size:.85rem}.finance .fnote ul{margin:6px 0;padding-left:18px;display:grid;gap:6px}.finance .fpay{padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);margin:0}.finance .fpay>b{grid-column:1 / -1}.ftag{display:inline-block;font-size:.72rem;padding:1px 8px;border-radius:99px;border:1px solid var(--border2);color:var(--muted);white-space:nowrap}.ftag.ok{color:var(--pos);border-color:var(--pos)}.ftag.bad{color:var(--bad);border-color:var(--bad)}.fbudget{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:12px}.fbudget .row{justify-content:space-between;margin-bottom:4px}.fbudget .row b{margin-right:auto}.fbar-track{height:10px;border-radius:99px;background:var(--skel);overflow:hidden}.fbar-track span{display:block;height:100%;border-radius:99px;background:var(--pos)}.fbar-track span.near{background:var(--warn)}.fbar-track span.over{background:var(--bad)}@media (min-width: 761px){.finance section.card{overflow-x:auto}.finance table.t th{white-space:nowrap}.finance table.t td:nth-child(2){min-width:130px}}@media print{body:not(.print-labels) .topbar,body:not(.print-labels) .sidenav,body:not(.print-labels) .scrim,.no-print{display:none!important}body:not(.print-labels) .content{margin-left:0!important}.finance .fscroll{overflow:visible;border:0}.ftable{min-width:0;font-size:7.5pt}.ftable th,.ftable td{padding:3px 4px}.finance .card{break-inside:avoid;border-color:#bbb}}.manual .mtoc{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.manual .mtoc button{font-size:.8rem;padding:6px 10px;min-height:36px}.manual .mchap{scroll-margin-top:70px}.manual .mwho{margin:-4px 0 4px}.manual .mintro{margin:0 0 4px;color:var(--text2);font-size:.9rem}.manual .mitem{padding:12px 0 2px;border-top:1px solid var(--border);margin-top:10px}.manual .mitem h3{margin:0 0 4px;font-size:.98rem}.manual .mwhere{display:inline-block;margin-bottom:6px;font-size:.75rem;padding:2px 9px;border-radius:99px;border:1px solid var(--chip-blue);color:var(--link)}.manual .mitem ol,.manual .mitem ul,.manual .mitem p{margin:4px 0 8px;font-size:.88rem;line-height:1.55;color:var(--text2);max-width:78ch}.manual .mitem ol,.manual .mitem ul{padding-left:20px;display:grid;gap:4px}.manual .mnotes{list-style:none;padding:8px 12px!important;border-left:3px solid var(--warn);background:var(--notice-bg);border-radius:0 8px 8px 0;color:var(--text)!important}@media print{.manual .mchap{break-inside:auto}.manual .mitem{break-inside:avoid}.manual .mnotes{background:none;border-left-color:#999}}table.t tr.editing>td{white-space:normal;padding:10px 8px}.editform{margin:0;padding:12px;border:1px solid var(--accent);border-radius:10px;background:var(--surface2)}.editform>.row{grid-column:1 / -1}tr.editing .fpay{border-color:var(--accent)}@media (max-width: 760px){table.t tr.editing>td:before{content:none}table.t tr.editing>td{display:block}}.jgroups{display:grid;gap:10px}.jgroup{border:1px solid var(--border);border-radius:12px;background:var(--card)}.jgroup>summary{cursor:pointer;padding:10px 12px;display:grid;gap:2px;list-style-position:outside;border-radius:12px}.jgroup>summary:hover{background:var(--hover)}.jgroup[open]>summary{border-bottom:1px solid var(--border);border-radius:12px 12px 0 0;background:var(--surface2)}.jg-title{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}.jg-title code{font-size:.72rem}.jg-tag{font-size:.72rem;padding:1px 8px;border-radius:99px;border:1px solid var(--border2);color:var(--muted);white-space:nowrap}.jg-tag.tumbuh{color:var(--pos);border-color:var(--pos)}.jg-tag.panen{color:var(--link);border-color:var(--chip-blue)}.jg-tag.gagal{color:var(--bad);border-color:var(--bad)}.jgroup>.jlist{padding:10px}.jbar{flex-wrap:wrap}.acell{display:flex;gap:10px;align-items:center;min-width:0}.aph{position:relative;display:inline-block;flex:none;line-height:0}.athumb{display:block;width:48px;height:48px;border-radius:8px;object-fit:cover}.athumb.jph-wait{width:48px;height:48px}.aph-more{position:absolute;right:-6px;top:-6px;min-width:20px;padding:0 5px;height:20px;border-radius:99px;background:var(--accent);color:var(--on-accent);font-size:.7rem;font-weight:700;display:grid;place-items:center;line-height:1;pointer-events:none}.aph-tag{position:absolute;left:3px;bottom:3px;font-size:.62rem;line-height:1.2;padding:1px 5px;border-radius:5px;background:#000000b8;color:#fff;pointer-events:none}.aph-tag.sesudah{background:#15803d}.aph-tag.sebelum{background:#b45309}.aph-row{display:flex;gap:6px;flex-wrap:wrap;max-width:220px}.aphoto{display:grid;gap:10px;padding:10px;margin-bottom:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.aphoto-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.aphoto-grid{display:flex;gap:10px;flex-wrap:wrap}.aphoto-img{display:block;width:112px;height:112px;border-radius:10px;object-fit:cover}.aphoto-img.jph-wait{width:112px;height:112px}.aphoto-new{display:grid;gap:8px;margin-bottom:10px}.apending{list-style:none;margin:0;padding:0;display:flex;gap:10px;flex-wrap:wrap}.apending li{display:grid;grid-template-columns:72px minmax(120px,1fr);gap:6px 10px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}.apending img{grid-row:span 2;width:72px;height:72px;object-fit:cover;border-radius:8px}.apending button{justify-self:start}.abig{cursor:default}.abig-bar{display:flex;gap:8px;align-items:end;flex-wrap:wrap;justify-content:center;padding:8px 10px;border-radius:12px;background:var(--card);border:1px solid var(--border)}.abig-bar .fld{min-width:130px}@media (max-width: 760px){.aphoto-img,.aphoto-img.jph-wait{width:92px;height:92px}}.aph-tag{white-space:nowrap;font-size:.6rem;padding:1px 4px;left:2px;bottom:2px}.aph-row .athumb,.aph-row .athumb.jph-wait{width:60px;height:60px}.aph-row{max-width:270px}@media (min-width: 761px){.assets table.t.atable th{white-space:nowrap}}.halert{border-color:var(--warn);border-left:4px solid var(--warn)}.halert.late{border-color:var(--bad);border-left-color:var(--bad)}.halert-list li>span:first-child{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;min-width:0}.halert-list li>span:last-child{white-space:nowrap;font-weight:600}.adetail h2{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:0}.adgrid{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;margin:10px 0}.adl{flex:1 1 260px;min-width:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:0 18px}.adl>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--border);font-size:.9rem}.adl dt{color:var(--muted);flex:none}.adl dd{margin:0;text-align:right;overflow-wrap:anywhere;font-weight:600}.adqr{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:.78rem}.adqr .qr{width:120px;height:120px;border-radius:6px}.alabels>.muted{margin:6px 0 12px}.alabels .alocal{font-size:.82rem}.apick-bar{align-items:center;margin:10px 0 6px}.apick{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto;border:1px solid var(--border);border-radius:8px}.apick li{padding:7px 10px;border-bottom:1px solid var(--border);font-size:.9rem}.apick li:last-child{border-bottom:0}.apick label{display:flex;gap:8px;align-items:center;min-width:0;overflow-wrap:anywhere}.albl{overflow:hidden}.albl-kind{font-size:1.6mm;letter-spacing:.2mm;color:#333;line-height:1.1}.albl .lbl-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.albl .lbl-rows span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.albl .lbl-batch{font-size:3.4mm}.albl.lbl-t50 .lbl-batch{font-size:3mm}.albl .lbl-qr small{white-space:nowrap}
