:root{--bg:#f5f6f8;--surface:#fff;--line:#dfe2e7;--text:#1d2330;--muted:#646d7c;--primary:#1e4e8c;--primary-hover:#183f72;--danger:#b42318;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}h1{margin:0 0 4px;font-size:20px;font-weight:600}h2{margin:0 0 12px;font-size:15px;font-weight:600}.muted{color:var(--muted);margin:0}.small{margin-top:2px;font-size:12px}.layout{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;gap:20px;width:220px;padding:16px 12px;display:flex}.logo{align-items:center;gap:8px;padding:0 4px;font-weight:600;display:flex}.logo-mark{background:var(--primary);color:#fff;letter-spacing:.5px;border-radius:4px;padding:5px 6px;font-size:11px;font-weight:700}nav{gap:2px;display:grid}.nav{text-align:left;cursor:pointer;color:#3a4252;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.nav:hover{background:#f0f2f5}.nav.active{color:var(--primary);background:#e8eef7;font-weight:600}.sidebar-foot{border-top:1px solid var(--line);gap:8px;margin-top:auto;padding-top:12px;display:grid}.who{gap:2px;padding:0 4px;font-size:13px;display:grid}.who span{color:var(--muted);text-overflow:ellipsis;font-size:12px;overflow:hidden}.role{background:#eef0f3;border-radius:3px;justify-self:start;margin-top:4px;padding:1px 6px;color:#3a4252!important;font-size:11px!important}.role-admin{background:#e8eef7;color:var(--primary)!important}.content{flex:1;min-width:0;max-width:1200px;padding:24px 28px 40px}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:16px;padding:16px}.card.flush{padding:0;overflow-x:auto}.card.narrow{width:min(380px,100%);padding:24px}.card.narrow .logo{margin-bottom:20px;padding:0}.card.narrow h1{margin-bottom:16px}.card.narrow .muted{margin-bottom:16px;line-height:1.5}.center-page{place-items:center;min-height:100vh;padding:20px;display:grid}.stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:8px;gap:6px;padding:14px 16px;display:grid}.stat span{color:var(--muted);font-size:13px}.stat strong{font-size:22px;font-weight:600}.two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}.empty{color:var(--muted);text-align:center;padding:20px 16px}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;background:#fafbfc;padding:10px 12px;font-size:12px;font-weight:600}td{vertical-align:top;border-bottom:1px solid #eceef1;padding:10px 12px}tr:last-child td{border-bottom:0}.card:not(.flush) th,.card:not(.flush) td{background:0 0;padding-left:0}tr.inactive td{opacity:.55}.actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.actions select{border:1px solid var(--line);background:#fff;border-radius:5px;padding:4px 6px}.badge{color:#3a4252;white-space:nowrap;background:#eef0f3;border-radius:3px;padding:1px 7px;font-size:12px;display:inline-block}.b-high{color:#a1261b;background:#fdecea}.b-medium{color:#8a5a00;background:#fdf3e1}.b-low,.b-completed,.b-on-duty{color:#1e6b34;background:#e6f4ea}.b-in-progress{color:var(--primary);background:#e8eef7}.b-inactive{color:#777;background:#f1f1f1}.btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:6px;align-items:center;gap:6px;padding:7px 12px;font-weight:500;display:inline-flex}.btn:hover{background:#f3f4f6}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-hover)}.btn.danger{color:var(--danger)}.btn.small{padding:4px 8px;font-size:12px}.btn.full{justify-content:center;width:100%;padding:9px}.btn:disabled{opacity:.6;cursor:default}.icon{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:2px}.tabs{gap:4px;margin-bottom:12px;display:flex}.tab{cursor:pointer;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;padding:5px 10px}.tab.active{background:var(--surface);border-color:var(--line);color:var(--text);font-weight:500}label{color:#3a4252;gap:5px;margin-bottom:12px;font-size:13px;font-weight:500;display:grid}input,select,textarea{background:#fff;border:1px solid #cdd2da;border-radius:6px;width:100%;padding:8px 10px;font-weight:400}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:2px solid #c7d6ec}input:disabled{color:var(--muted);background:#f3f4f6}label.check{align-items:center;gap:8px;font-weight:400;display:flex}label.check input{width:auto}.row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.error{color:var(--danger);margin:0 0 12px;font-size:13px}.inline{gap:8px;display:flex}.inline input{width:200px}.duty{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.duty h2{margin-bottom:4px}.task-list{margin:0;padding:0;list-style:none}.task-list li{border-top:1px solid #eceef1;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.task-list li:first-child{border-top:0}.backdrop{z-index:10;background:#14182159;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{width:min(520px,100%);margin:0}.modal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-head h2{margin:0}.modal-foot{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.toast{color:#fff;z-index:20;background:#1d2330;border-radius:6px;max-width:360px;padding:10px 14px;font-size:13px;position:fixed;bottom:20px;right:20px}@media (width<=900px){.stats{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}}@media (width<=680px){input,select,textarea{font-size:16px}.layout{flex-direction:column}.sidebar{z-index:5;border-right:0;border-bottom:1px solid var(--line);flex-direction:row;justify-content:space-between;align-items:center;gap:10px;width:auto;padding:10px 14px;position:sticky;top:0}.sidebar-foot{border:0;align-items:center;gap:4px;margin:0;padding:0;display:flex}.sidebar-foot .who strong,.sidebar-foot .who>span:not(.role){display:none}.sidebar-foot .nav{width:auto;padding:6px 8px}nav{z-index:5;background:var(--surface);border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:0;right:0}.nav{text-align:center;flex-direction:column;justify-content:center;gap:2px;padding:6px 2px;font-size:11px}nav .nav{flex:1}.nav.active{background:0 0}.content{padding:14px 14px 90px}.page-head{flex-direction:column;align-items:stretch;gap:10px}.page-head .btn{justify-content:center;padding:10px}.stats{gap:8px}.stat{padding:10px 12px}.stat strong{font-size:19px}.tabs{overflow-x:auto}.tab{white-space:nowrap}.row{grid-template-columns:1fr;gap:0}.inline,.inline input{width:100%}.duty .btn{justify-content:center;width:100%}.task-list li{flex-direction:column;align-items:stretch}.task-list .actions{flex-wrap:wrap;justify-content:flex-start}.task-list .btn{padding:8px 12px;font-size:13px}.rtable thead{display:none}.rtable,.rtable tbody,.rtable tr,.rtable td{width:100%;display:block}.rtable tr{border-bottom:1px solid var(--line);padding:10px 14px}.card:not(.flush) .rtable tr{padding:10px 0}.rtable tr:last-child{border-bottom:0}.rtable td{text-align:right;border:0;justify-content:space-between;gap:12px;display:flex;padding:3px 0!important}.rtable td:before{content:attr(data-label);color:var(--muted);text-align:left;flex-shrink:0;font-size:12px}.rtable td:first-child{text-align:left;font-weight:600;display:block;padding-bottom:6px!important}.rtable td:first-child:before,.rtable td.actions:before{content:none}.rtable td.actions{flex-wrap:wrap;justify-content:flex-start;padding-top:8px!important}.rtable td.actions select{flex:1;padding:8px}.rtable td.actions .btn{padding:8px 12px}.backdrop{place-items:end stretch;padding:0}.modal{width:100%;max-height:92vh;padding-bottom:calc(16px + env(safe-area-inset-bottom));border-radius:12px 12px 0 0;overflow-y:auto}.toast{max-width:none;bottom:76px;left:14px;right:14px}}.task-list li>div:first-child{flex:1;min-width:0}.preview-bar{color:#6b4e00;background:#fff8e6;border:1px solid #f0d9a0;border-radius:6px;margin-bottom:16px;padding:8px 12px;font-size:13px}.center-page{align-content:center;gap:16px}.center-page .preview-bar{text-align:center;width:min(380px,100%);margin:0}.link{color:var(--primary);cursor:pointer;background:0 0;border:0;margin:14px auto 0;font-size:13px;text-decoration:underline;display:block}.two-col{margin-bottom:16px}.two-col>.card{margin-bottom:0}a.link{text-align:center}.stack{gap:8px;display:grid}.stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.stat-warn strong{color:var(--danger)}.b-active{color:var(--primary);background:#e8eef7}.b-closed{color:#1e6b34;background:#e6f4ea}.b-overdue,.b-no-check-out,[class*=b-][class$=-overdue]{color:#a1261b;background:#fdecea}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.toolbar .tabs{margin-bottom:0}.toolbar select,.toolbar .search{width:auto;min-width:180px}.inline-label{align-items:center;gap:8px;margin:0;display:flex}.inline-label input{width:auto}.chips{flex-wrap:wrap;gap:6px;margin:10px 0 12px;display:flex}.chip{background:#eef0f3;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:13px;display:inline-flex}.count{background:var(--primary);color:#fff;border-radius:9px;margin-left:auto;padding:0 6px;font-size:11px;line-height:18px}.notice-card{background:#f5f8fc;border-color:#c7d6ec;justify-content:space-between;align-items:center;gap:12px;display:flex}.notice-card h2{margin-bottom:2px}a{color:var(--primary)}@media (width<=680px){.stats{grid-template-columns:repeat(2,1fr)}nav{justify-content:flex-start;overflow-x:auto}nav .nav{flex:none;min-width:72px;position:relative}.count{margin:0;position:absolute;top:2px;right:10px}.toolbar select,.toolbar .search,.toolbar .inline-label,.toolbar .inline-label input,.page-head .inline-label input{width:100%}.notice-card{flex-direction:column;align-items:stretch}nav .nav{flex:1 0 auto;width:auto;min-width:68px}nav{scrollbar-width:none}nav::-webkit-scrollbar{display:none}}fieldset.sub{border:1px solid var(--line);background:#fafbfc;border-radius:6px;margin:0 0 12px;padding:10px 12px 0}fieldset.sub legend{color:var(--muted);padding:0 4px;font-size:12px}html{-webkit-text-size-adjust:100%}body{-webkit-tap-highlight-color:transparent;min-height:100dvh}button,.btn,.nav,.tab{touch-action:manipulation}input[type=date]{appearance:none;background:#fff;min-height:38px}@media (width<=680px){.sidebar{padding-top:calc(10px + env(safe-area-inset-top))}.content{padding-bottom:calc(90px + env(safe-area-inset-bottom))}.toast{bottom:calc(76px + env(safe-area-inset-bottom))}.btn{min-height:40px}.btn.small{min-height:34px}.toolbar .tabs{width:100%}}.notice-card{flex-wrap:wrap}.notice-card>div:first-child{flex:280px}.card-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.card-head h2,.card-head .link{margin:0}.link-strong{color:var(--primary);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-weight:600}.link.back{align-items:center;gap:4px;margin:0 0 6px;text-decoration:none;display:inline-flex}.record-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.record-grid>.card{margin-bottom:16px}.kv{grid-template-columns:130px 1fr;gap:6px 12px;margin:0;font-size:13px;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}.lookup-box{color:var(--muted);border:1px solid #cdd2da;border-radius:8px;align-items:center;gap:10px;margin-bottom:8px;padding:4px 12px;display:flex}.lookup-box input{border:0;outline:0;padding:10px 0;font-size:17px}.lookup-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #c7d6ec}.b-due-soon,.b-licence-due,.b-amc-due{color:#8a5a00;background:#fdf3e1}.b-upcoming,.b-scheduled,.b-no-amc,.b-no-warranty{color:#3a4252;background:#eef0f3}.b-amc-active,.b-licence-valid,.b-under-warranty{color:#1e6b34;background:#e6f4ea}.b-amc-expired,.b-licence-expired,.b-warranty-expired{color:#a1261b;background:#fdecea}.sigpad{background:#fff;border:1px dashed #aab3c0;border-radius:8px;margin-bottom:10px;overflow:hidden}.sigpad canvas{touch-action:none;cursor:crosshair;background:repeating-linear-gradient(#0000 0 135px,#d9dee6 135px 136px,#0000 136px);width:100%;display:block}.sigpad-foot{background:#fafbfc;border-top:1px solid #eceef1;justify-content:space-between;align-items:center;padding:6px 8px;display:flex}.sigview{flex-direction:column;gap:2px;margin:0;display:inline-flex}.sigview img{border:1px solid var(--line);background:#fff;border-radius:4px;width:160px;height:auto}.sigview.compact img{width:110px}.sigview figcaption{color:var(--muted);font-size:11px}@media (width<=900px){.record-grid{grid-template-columns:1fr}}@media (width<=680px){.kv{grid-template-columns:110px 1fr}.page-head .actions{flex-wrap:wrap}.page-head .actions .btn{flex:1;justify-content:center}.rtable td .sigview{align-items:flex-end}}.steps{gap:6px;margin:12px 0 0;padding-left:18px;font-size:13px;display:grid}.card h2 svg{vertical-align:-2px}.row.three{grid-template-columns:1fr 1fr 1fr}.row-line{align-items:center;gap:8px;margin-bottom:8px;display:flex}.row-line>span{text-align:right;width:16px;font-size:12px}.zones{grid-template-columns:repeat(5,1fr);gap:6px 8px;display:grid}.zones label{margin:0;font-size:11px}.zones input{padding:6px}.sira{color:#fff;text-align:center;background:#18367a;border-radius:6px;margin:4px 0 12px;padding:8px 10px;font-size:13px;font-weight:600}.checklist ol{counter-reset:c;margin:0;padding:0;list-style:none}.checklist li{counter-increment:c;border-top:1px solid #eceef1;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;font-size:13px;display:flex}.checklist li>span:before{content:counter(c) ". ";color:var(--muted)}.checklist-tools{gap:6px;margin-bottom:6px;display:flex}.yesno{border:1px solid #cdd2da;border-radius:6px;flex-shrink:0;display:inline-flex;overflow:hidden}.yesno button{cursor:pointer;background:#fff;border:0;min-width:46px;padding:6px 12px;font-weight:500}.yesno button+button{border-left:1px solid #cdd2da}.yesno button.on.yes{color:#fff;background:#1e6b34}.yesno button.on.no{color:#fff;background:#a1261b}.srno{color:#c81e1e;font-variant-numeric:tabular-nums}@media (width<=680px){.row.three{grid-template-columns:1fr 1fr}.zones{grid-template-columns:repeat(3,1fr)}.yesno button{min-width:50px;padding:9px 12px}}
