:root{--green: #00A767;--green-dark: #008a55;--ink: #14201b;--muted: #6b7c74;--line: #e3e9e6;--bg: #f5f7f6;--red: #d64545;--amber: #c98a00}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);padding-bottom:env(safe-area-inset-bottom)}.app{max-width:520px;margin:0 auto;min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:10px;padding:14px 16px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.topbar img{height:26px}.topbar .sp{flex:1}.net{font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px}.net.on{color:var(--green-dark);background:#e3f6ee}.net.off{color:var(--amber);background:#fbf3df}.content{flex:1;padding:16px;padding-bottom:calc(74px + env(safe-area-inset-bottom))}.topbar .who{font-size:13px;text-align:right;color:var(--ink);line-height:1.15;background:none;border:none;padding:4px 2px;font-family:inherit;cursor:pointer}.topbar .who .signout{color:var(--green);font-weight:700;white-space:nowrap}.tabbar{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:520px;z-index:40;display:flex;align-items:stretch;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 12px #14201b0f}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:9px 4px 7px;background:none;border:none;cursor:pointer;color:var(--muted);font-size:11px;font-weight:600;text-decoration:none;font-family:inherit}.tab .ti{font-size:21px;line-height:1}.tab.active{color:var(--green)}.tab.scan .ti{background:var(--green);color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;margin-top:-14px;box-shadow:0 3px 10px #00a76766}.tab.scan{color:var(--green)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#14201b61;display:flex;align-items:flex-end}.sheet{width:100%;max-width:520px;margin:0 auto;background:#fff;border-radius:18px 18px 0 0;padding:8px 12px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px #14201b2e;animation:sheetUp .18s ease-out}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-grip{width:40px;height:4px;border-radius:2px;background:var(--line);margin:6px auto 8px}.sheet-item{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:none;border:none;padding:15px 10px;font-size:16px;font-weight:600;color:var(--ink);cursor:pointer;border-radius:10px;font-family:inherit}.sheet-item .si{font-size:20px;width:24px;text-align:center}.sheet-item:active{background:var(--bg)}.sheet-item.danger{color:var(--red)}.site-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-weight:700;font-size:14px;color:var(--ink);padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid var(--line)}.site-head .muted{font-weight:600;font-size:12px;white-space:nowrap}.site-head .chev{color:var(--muted);font-size:12px;display:inline-block;width:14px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 10px}.photo-thumb{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--bg)}.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;cursor:pointer}.photo-del{position:absolute;top:3px;right:3px;width:22px;height:22px;border:none;border-radius:50%;background:#14201b99;color:#fff;font-size:12px;line-height:1;cursor:pointer}.update-toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(84px + env(safe-area-inset-bottom));z-index:60;width:calc(100% - 24px);max-width:480px;display:flex;align-items:center;gap:10px;background:var(--ink);color:#fff;padding:12px 14px;border-radius:12px;box-shadow:0 6px 24px #14201b47;font-size:14px;font-weight:600;animation:sheetUp .2s ease-out}.update-toast span{flex:1}.update-toast button{background:var(--green);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit}.update-toast button.dismiss{background:transparent;color:#b7c4bd;padding:4px 6px;font-size:15px}h1{font-size:22px;margin:4px 0 2px}h2{font-size:16px;margin:20px 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.sub{color:var(--muted);margin:0 0 16px;font-size:14px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px}.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:none;border-radius:12px;padding:16px;font-size:17px;font-weight:700;cursor:pointer;margin-top:10px;background:var(--green);color:#fff}.btn:active{transform:translateY(1px)}.btn.lg{padding:22px;font-size:19px}.btn.secondary{background:#fff;color:var(--ink);border:1.5px solid var(--line)}.btn.danger{background:var(--red)}.btn:disabled{opacity:.55}.field{margin-bottom:12px}.field label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px}.field input,.field select{width:100%;padding:14px;font-size:16px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}.pin{letter-spacing:8px;text-align:center;font-size:24px}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.tag{font-family:ui-monospace,Menlo,monospace;font-weight:700}.pill{font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}.pill.available{color:var(--green-dark);background:#e3f6ee}.pill.out{color:var(--amber);background:#fbf3df}.pill.maintenance{color:var(--red);background:#fbe5e5}.pill.retired{color:var(--muted);background:#eef1f0}.muted{color:var(--muted);font-size:14px}.big{font-size:20px;font-weight:700}.center{text-align:center}.list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.list-item:last-child{border-bottom:none}.overdue{color:var(--red);font-weight:700}.stat-row{display:flex;gap:10px}.stat{flex:1;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center}.stat .n{font-size:26px;font-weight:800}.stat .l{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.err{color:var(--red);font-size:14px;margin:8px 0}.ok{color:var(--green-dark)}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:var(--ink);color:#fff;padding:12px 18px;border-radius:999px;font-size:14px;z-index:50}.scanbox{width:100%;border-radius:14px;overflow:hidden;background:#000}.link{color:var(--green-dark);font-weight:600;text-decoration:none;cursor:pointer}.splash{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px;min-height:60vh}.spin{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:s .8s linear infinite}@keyframes s{to{transform:rotate(360deg)}}.label-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lay-2 .label-grid{grid-template-columns:repeat(2,1fr)}.lay-3 .label-grid{grid-template-columns:repeat(3,1fr)}.lay-4 .label-grid{grid-template-columns:repeat(4,1fr)}.label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}.label-qr{position:relative;width:84px;height:84px;flex:0 0 84px}.label-qr img{width:100%;height:100%;display:block}.label-badge{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:26px;height:26px;background:#fff;border-radius:5px;padding:2px}.label-badge img{width:100%;height:100%;border-radius:4px}.label-txt{min-width:0}.label-tag{font-weight:800;font-size:14px}.label-name{font-size:10px;line-height:1.2;max-height:24px;overflow:hidden}.label-code{font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:12px;margin-top:2px}.label-foot{font-size:6px;color:var(--muted);margin-top:2px}.sheet-s004{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:12px}.slabel{width:150px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}.slabel-word{width:96px;height:auto;margin-bottom:4px}.slabel-qr{position:relative;width:96px;height:96px}.slabel-qr img{width:100%;height:100%;display:block}.slabel-badge{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:26px;height:26px;background:#fff;border-radius:5px;padding:2px}.slabel-badge img{width:100%;height:100%;border-radius:4px}.slabel-tag{font-weight:800;font-size:13px;color:#12201b;margin-top:4px;line-height:1.1}.slabel-sub{font-size:9px;color:var(--muted)}.slabel-code{font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:13px;margin-top:2px;color:#12201b}.slabel-foot{font-size:7px;color:var(--muted);margin-top:3px}@media print{@page{margin:0}.topbar,.no-print,h1,h2{display:none!important}html,body,.app,.content{background:#fff!important;padding:0!important;margin:0!important;max-width:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.lay-2,.lay-3,.lay-4{padding:.35in;box-sizing:border-box}.label-grid{gap:.12in}.label{break-inside:avoid;justify-content:center;overflow:hidden}.sheet-s004{display:grid;grid-template-columns:3in 3in;grid-template-rows:3in 3in 3in;column-gap:.125in;row-gap:.125in;width:8.5in;height:11in;box-sizing:border-box;padding:.871in 0 0 1.193in;margin:0;overflow:hidden;break-after:page;page-break-after:always}.sheet-s004:last-child{break-after:auto;page-break-after:auto}.slabel{width:3in;height:3in;border:none;border-radius:0;background:#fff;padding:.14in .1in;margin:0;justify-content:flex-start;overflow:hidden;break-inside:avoid}.slabel-word{width:1.35in;margin:.02in 0 .03in}.slabel-qr{width:1.5in;height:1.5in}.slabel-badge{width:.4in;height:.4in}.slabel-tag{font-size:17px;margin-top:.05in}.slabel-sub{font-size:10px}.slabel-code{font-size:17px}.slabel-foot{font-size:7.5px;margin-top:.04in}.lay-2 .label{height:4.95in;padding:.18in;gap:.18in}.lay-2 .label-qr{width:2.2in;height:2.2in;flex-basis:2.2in}.lay-2 .label-badge{width:.62in;height:.62in}.lay-2 .label-tag{font-size:26px}.lay-2 .label-name{font-size:15px;max-height:none}.lay-2 .label-code{font-size:22px}.lay-2 .label-foot{font-size:10px}.lay-3 .label{height:3.25in;padding:.12in;gap:.12in}.lay-3 .label-qr{width:1.4in;height:1.4in;flex-basis:1.4in}.lay-3 .label-badge{width:.4in;height:.4in}.lay-3 .label-tag{font-size:16px}.lay-3 .label-name{font-size:10px}.lay-3 .label-code{font-size:14px}.lay-3 .label-foot{font-size:7px}.lay-4 .label{height:2.4in;padding:.08in;gap:.08in}.lay-4 .label-qr{width:1in;height:1in;flex-basis:1in}.lay-4 .label-badge{width:.28in;height:.28in}.lay-4 .label-tag{font-size:12px}.lay-4 .label-name{font-size:8px}.lay-4 .label-code{font-size:11px}.lay-4 .label-foot{font-size:5.5px}}
