:root{--blue:#2563eb;--blue-dark:#173d80;--ink:#172033;--muted:#64748b;--line:#e3eaf3;--bg:#f3f6fb;--green:#059669;--red:#dc2626}*{box-sizing:border-box}html,body{margin:0;min-height:100%;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}button,input,select,textarea{font:inherit}.mobile-page{width:min(680px,100%);min-height:100vh;margin:auto;padding:16px 14px 92px}.app-hero{position:relative;padding:22px 20px;overflow:hidden;border-radius:20px;color:#fff;background:linear-gradient(135deg,#102a56,#2563eb);box-shadow:0 14px 34px rgb(30 64 175/22%)}.app-hero::after{position:absolute;right:-50px;bottom:-70px;width:180px;height:180px;border-radius:50%;background:rgb(255 255 255/9%);content:""}.eyebrow{color:#bfdbfe;font-size:11px;font-weight:700;letter-spacing:.12em}.app-hero h1{position:relative;z-index:1;margin:7px 0 4px;font-size:24px}.app-hero p{position:relative;z-index:1;margin:0;color:#dbeafe;font-size:13px}.card{margin-top:14px;padding:17px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 7px 22px rgb(15 23 42/5%)}.card h2,.card h3{margin:0}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:11px}.info label{display:block;margin-bottom:4px;color:var(--muted);font-size:11px}.info strong{display:block;overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-top:14px}.quick-card{display:grid;min-height:104px;align-content:center;gap:8px;padding:16px;border:0;border-radius:15px;color:var(--ink);background:#fff;box-shadow:0 7px 22px rgb(15 23 42/6%);text-align:left}.quick-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;color:#2563eb;background:#eff6ff;font-weight:800}.quick-card strong{font-size:15px}.field{display:grid;gap:6px;margin-bottom:14px}.field label{color:#475569;font-size:13px;font-weight:650}.field input,.field select,.field textarea{width:100%;min-height:45px;padding:10px 12px;border:1px solid #d5dfeb;border-radius:10px;color:var(--ink);background:#fff;outline:none}.field textarea{min-height:86px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 3px rgb(59 130 246/12%)}.primary,.secondary{min-height:46px;padding:10px 16px;border:0;border-radius:10px;font-weight:700}.primary{color:#fff;background:var(--blue)}.secondary{color:#334155;background:#eef2f7}.full-button{width:100%}.message{margin:13px 0;padding:11px 13px;border-radius:9px;font-size:13px}.message.success{color:#166534;background:#f0fdf4}.message.error{color:#b91c1c;background:#fef2f2}.bottom-nav{position:fixed;z-index:20;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(3,1fr);width:min(680px,100%);margin:auto;padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgb(255 255 255/96%);backdrop-filter:blur(12px)}.bottom-nav a{display:grid;gap:3px;padding:7px;color:#64748b;text-align:center;text-decoration:none;font-size:11px}.bottom-nav a.active{color:var(--blue);font-weight:700}.login-wrap{display:grid;min-height:100vh;place-items:center;padding:22px}.login-card{width:min(430px,100%);padding:27px 22px;border-radius:21px;background:#fff;box-shadow:0 22px 55px rgb(15 23 42/14%)}.login-logo{display:grid;width:54px;height:54px;place-items:center;border-radius:16px;color:#fff;background:linear-gradient(135deg,#2563eb,#1e40af);font-size:22px;font-weight:800}.login-card h1{margin:18px 0 6px;font-size:24px}.login-card>p{margin:0 0 23px;color:var(--muted);font-size:13px}.section-tabs{display:flex;gap:7px;margin:14px 0;overflow-x:auto}.section-tabs button{flex:0 0 auto;min-height:39px;padding:8px 13px;border:0;border-radius:10px;color:#475569;background:#fff;box-shadow:0 4px 14px rgb(15 23 42/5%)}.section-tabs button.active{color:#fff;background:var(--blue)}.section{display:none}.section.active{display:block}.record-list{display:grid;gap:10px}.record{padding:13px;border:1px solid var(--line);border-radius:11px;background:#fbfcfe}.record h4{margin:0;font-size:14px}.record time{display:block;margin-top:5px;color:var(--muted);font-size:11px}.record p{margin:8px 0 0;color:#475569;font-size:12px;line-height:1.6;white-space:pre-wrap}.maintenance-item{margin-bottom:11px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fbfcfe}.maintenance-item strong{display:block;margin-bottom:9px;font-size:13px}.result-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.result-options label{display:flex;align-items:center;justify-content:center;gap:5px;padding:8px;border:1px solid #d7e0ec;border-radius:8px;background:#fff;font-size:12px}.empty{padding:34px 12px;color:#94a3b8;text-align:center}.scanner{display:none;margin-top:13px}.scanner.active{display:block}.scanner video{width:100%;border-radius:14px;background:#0f172a}.top-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.back-link{color:#2563eb;text-decoration:none;font-size:13px}.user-chip{color:#dbeafe;font-size:12px}@media(max-width:390px){.quick-grid,.grid-2{grid-template-columns:1fr}.result-options{grid-template-columns:1fr}}
.dashboard-card{margin-top:14px;padding:16px;border-radius:17px;color:#fff;background:linear-gradient(135deg,#1d4ed8,#2563eb);box-shadow:0 10px 28px rgb(37 99 235/20%)}.dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-heading h3{margin:0;font-size:16px}.dashboard-heading p{margin:4px 0 0;color:#dbeafe;font-size:11px}.dashboard-heading>strong{font-size:22px}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.dashboard-grid article{padding:11px 9px;border:1px solid rgb(255 255 255/18%);border-radius:12px;background:rgb(255 255 255/12%)}.dashboard-grid span,.dashboard-grid small{display:block;color:#dbeafe;font-size:10px}.dashboard-grid b{display:block;margin:5px 0 2px;font-size:24px}.dashboard-grid .completed b{color:#bbf7d0}.dashboard-grid .pending b{color:#fde68a}.department-dashboard{display:grid;gap:7px;margin-top:10px}.department-dashboard>div{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:9px 10px;border-radius:10px;color:#eff6ff;background:rgb(15 23 42/18%);font-size:12px}.department-dashboard>div small{grid-column:1/-1;color:#bfdbfe}.department-dashboard>span{display:block;padding:8px 2px;color:#dbeafe;font-size:12px}.dashboard-error{color:#fecaca!important}