:root{--bg:#0b1220;--surface:#16213a;--surface-2:#1f2d4d;--border:#2c3d63;--text:#eef2fa;--text-dim:#9fb0d0;--accent:#f5a623;--accent-text:#1a1200;--danger:#e5484d;--ok:#3dd68c}*{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:18px;line-height:1.5;-webkit-font-smoothing:antialiased}body,main{min-height:100dvh}main{max-width:480px;margin:0 auto;padding:24px 20px 48px;display:flex;flex-direction:column}h1{font-size:1.7rem;line-height:1.2}p{color:var(--text-dim)}.btn,button{display:flex;align-items:center;justify-content:center;width:100%;min-height:60px;padding:14px 20px;border:none;border-radius:14px;font-size:1.15rem;font-weight:700;cursor:pointer;touch-action:manipulation;background:var(--accent);color:var(--accent-text)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}input,select,textarea{width:100%;min-height:60px;padding:14px 16px;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1.25rem;font-family:inherit}textarea{min-height:90px;resize:vertical}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:44px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%239fb0d0' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 14px center}input:focus,select:focus,textarea:focus{outline:3px solid var(--accent);outline-offset:1px}.sev-btn{border:2px solid var(--border);background:var(--surface);color:var(--text);min-height:56px;font-size:1rem}.sev-btn.on{border-color:var(--sev,var(--accent));background:color-mix(in srgb,var(--sev,var(--accent)) 22%,var(--surface))}.dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;display:inline-block}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px}.stack{display:flex;flex-direction:column;gap:16px}.brand{color:var(--accent)}.error{color:var(--danger)}.error,.notice{font-weight:600}.notice{color:var(--ok)}.shell{display:flex;min-height:100dvh}.sidebar{display:flex;flex-direction:column;gap:6px;background:var(--surface);border-right:1px solid var(--border);padding:18px 14px}.sidebar .brandbar{padding:4px 8px 10px}.sidebar .brandbar,.sidebar .plantline{display:flex;align-items:center;gap:10px}.sidebar .plantline{padding:8px;margin-bottom:6px;color:var(--text);font-weight:600}.navlink{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 14px;border-radius:12px;color:var(--text-dim);font-weight:600;font-size:1.05rem;text-decoration:none;cursor:pointer}.navlink:hover{background:var(--surface-2);color:var(--text)}.navlink.active{background:var(--accent);color:var(--accent-text)}.navlink .ic{font-size:1.3rem;width:26px;text-align:center}.shell-content{flex:1 1;min-width:0;display:flex;flex-direction:column}main.shell-main{max-width:none;margin:0;min-height:auto;display:block}.shell-inner{padding:24px 20px 48px;max-width:760px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:16px}.shell-inner.wide{max-width:1120px}.topbar{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;background:var(--bg);z-index:20}.topbar .hamburger{width:48px;min-height:48px;padding:0;border-radius:12px;background:var(--surface-2);color:var(--text);font-size:1.4rem}.backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:30}@media (min-width:900px){.topbar{display:none}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100dvh;width:264px;flex-shrink:0}.shell-inner{padding:32px 44px 64px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:16px;gap:16px}}.sheet-doc{background:var(--surface);border:1px solid var(--surface-2);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}.sheet-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:2px solid var(--accent);padding-bottom:10px}.sheet-plant{font-weight:800;color:var(--text);font-size:1.05rem}.sheet-title{color:var(--text);letter-spacing:.03em}.sheet-meta{text-align:right;font-size:.85rem;color:var(--text-dim)}.sheet-people{display:flex;gap:18px;flex-wrap:wrap;font-size:.9rem;color:var(--text-dim)}.sheet-grid{border-collapse:collapse;width:100%;font-size:.92rem}.sheet-grid td,.sheet-grid th{border:1px solid var(--surface-2);padding:6px 8px;text-align:center;color:var(--text)}.sheet-grid th{background:var(--surface-2);font-weight:700}.sheet-grid td.param{text-align:left;color:var(--text-dim);min-width:170px}.sheet-grid td.bad{background:color-mix(in srgb,var(--danger) 18%,transparent)}.sheet-grid td.bad input{color:var(--danger);font-weight:700}.sheet-grid input{width:84px;min-height:40px;padding:4px 6px;text-align:center;background:var(--bg);border:1px solid var(--surface-2);border-radius:8px;color:var(--text);font-size:.92rem}@media print{.sheet-doc{background:#ffffff;color:#111827;border:1px solid #999}.sheet-doc *,.sheet-grid td,.sheet-grid th{color:#111827!important}.sheet-grid th{background:#eeeeee!important}}.qr-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:14px;gap:14px}.qr-label{background:#ffffff;color:#111827;border-radius:12px;padding:12px;text-align:center;page-break-inside:avoid;break-inside:avoid;border:1px solid #d1d5db}.qr-label img{width:100%;max-width:190px}.qr-label .qr-tag{font-weight:800;font-size:1.05rem;color:#111827}.qr-label .qr-meta{font-size:.8rem;color:#4b5563}.qr-label .qr-brand{font-size:.72rem;color:#9ca3af;letter-spacing:.06em}@media print{.no-print,.sidebar,.topbar{display:none!important}.shell,.shell-main,body{background:#ffffff!important}.shell-inner{max-width:none!important}}.offline-pill{margin:6px 10px;padding:8px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-size:.8rem;font-weight:700;text-align:center}.mimic-row{overflow-x:auto;padding:8px 2px 12px;-webkit-overflow-scrolling:touch}.mimic-row,.mimic-unit{display:flex;align-items:center}.mimic-unit{flex-direction:column;gap:6px;width:auto;min-width:92px;min-height:92px;padding:10px 8px 8px;border-radius:14px;border:2px solid var(--surface-2);background:var(--surface-2);cursor:pointer;position:relative;flex:0 0 auto;color:var(--text-dim);transition:transform .12s ease,border-color .12s ease}.mimic-unit:active{transform:scale(.96)}.mimic-unit .nm{font-size:.76rem;color:var(--text);text-align:center;line-height:1.15;max-width:110px}.mimic-unit .rd{font-size:.74rem;color:var(--text-dim);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.mimic-unit.monitor{border-color:#f5c451;color:#f5c451}.mimic-unit.action{border-color:var(--accent);color:var(--accent)}.mimic-unit.crit{border-color:var(--danger);color:var(--danger);animation:mimicPulse 1.6s ease-in-out infinite}.mimic-badge{position:absolute;top:-8px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;color:var(--accent-text);font-size:.72rem;font-weight:800;display:flex;align-items:center;justify-content:center}.flowline line{animation:mimicFlow 1.1s linear infinite}@keyframes mimicPulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--danger) 45%,transparent)}50%{box-shadow:0 0 0 9px transparent}}@keyframes mimicFlow{to{stroke-dashoffset:-16}}@media (prefers-reduced-motion:reduce){.flowline line,.mimic-unit.crit{animation:none}}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.78rem;font-weight:700;border:1px solid transparent}.badge.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 50%,transparent);background:color-mix(in srgb,var(--danger) 15%,transparent)}.badge.accent{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 15%,transparent)}.badge.warn{color:#f5c451;border-color:color-mix(in srgb,#f5c451 50%,transparent);background:color-mix(in srgb,#f5c451 15%,transparent)}.linkbtn{cursor:pointer;color:var(--accent);font-weight:700;font-size:.9rem;white-space:nowrap}.linkbtn:hover{text-decoration:underline}@media (max-width:899px){.sidebar{position:fixed;inset:0 auto 0 0;width:82%;max-width:320px;z-index:40;transform:translateX(-100%);transition:transform .2s ease}.sidebar.open{transform:none}}