:root{font-family:-apple-system,BlinkMacSystemFont,"Noto Sans TC","Segoe UI",sans-serif;color:#172033;background:#f4f1ea;--navy:#10233f;--orange:#e89432;--green:#198754;--red:#c9362b}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(155deg,#10233f,#244d75)}.login-card{width:min(430px,100%);padding:30px;border-radius:28px;background:#fff;box-shadow:0 28px 80px #0005}.login-card img{width:74px;border-radius:18px}.eyebrow{color:var(--orange);font-weight:800;letter-spacing:.1em}.login h1{font-size:32px;margin:.2em 0}.login form{display:grid;gap:10px}.login input,.login button{height:52px;border-radius:14px;border:1px solid #ccd2dc;padding:0 16px}.login button,.primary{background:var(--navy);color:#fff;border:0;font-weight:800}.login small{color:var(--red)}header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#10233ff5;color:#fff}.brand{display:flex;align-items:center;gap:10px}.brand img{width:40px;border-radius:10px}.brand strong,.brand small{display:block}.brand small{opacity:.7}.ghost{background:#ffffff1c;color:#fff;border:1px solid #ffffff55;border-radius:10px;padding:9px}.tabs{position:sticky;top:64px;z-index:4;display:grid;grid-template-columns:1fr 1fr;background:#fff;border-bottom:1px solid #ddd}.tabs button{padding:14px 6px;border:0;background:#fff;font-weight:800;color:#667}.tabs button.active{color:var(--navy);box-shadow:inset 0 -4px var(--orange)}main{max-width:1100px;margin:auto;padding:18px}.screen{display:none}.screen.active{display:block}.summary{display:flex;align-items:baseline;gap:6px;padding:16px;border-radius:18px;background:var(--navy);color:#fff}.summary b{font-size:25px;margin-left:12px}.filters,.project-box{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin:14px 0}.filters input,.filters select,.project-box select{width:100%;height:46px;border:1px solid #c7ccd4;border-radius:12px;background:#fff;padding:0 12px}.project-box{grid-template-columns:1fr 1fr;padding:14px;background:#fff;border-radius:16px}.project-box label{font-weight:800;display:grid;gap:6px}.list,.checks{display:grid;gap:9px}.sop-row,.check-row{width:100%;text-align:left;padding:15px;border:1px solid #d7d8da;border-radius:15px;background:#fff;display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:start}.sop-row .num{font-weight:900;color:var(--orange)}.sop-row b,.check-row b{display:block;margin-bottom:5px}.sop-row p,.check-row p{margin:0;line-height:1.55}.badge{font-size:12px;border-radius:999px;padding:4px 8px;background:#edf0f4;color:#475}.badge.changed{background:#fff0db;color:#935500}.more,.outline{width:100%;padding:14px;margin:12px 0;border:1px solid var(--navy);border-radius:13px;background:#fff;color:var(--navy);font-weight:800}.inspection-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.inspection-summary button{border:1px solid #ddd;border-radius:13px;background:#fff;padding:10px 4px}.inspection-summary b{display:block;font-size:22px}.primary{border-radius:13px;padding:13px}.primary:disabled{opacity:.4}.empty{padding:40px;text-align:center;color:#778}.check-row.warning{border:2px solid var(--red);background:#fff7f5}.check-row.completed{border-color:#8ac8a8;background:#f3fff8}.check-icon{font-size:29px;line-height:1}.warning .check-icon{color:var(--red)}.completed .check-icon{color:var(--green)}dialog{padding:0;border:0;border-radius:22px;width:min(680px,calc(100% - 18px));max-height:94vh;box-shadow:0 30px 90px #0007}dialog::backdrop{background:#071221aa}.dialog-head{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:60px 1fr 60px;align-items:center;padding:12px;background:var(--navy);color:#fff}.dialog-head button{border:0;background:transparent;color:#fff}.back{font-size:30px}.dialog-head small,.dialog-head b{display:block;text-align:center}.dialog-body{padding:18px;overflow:auto}.topic{color:#79633f}.dialog-body textarea{width:100%;border:1px solid #bbc1ca;border-radius:12px;padding:12px;line-height:1.55;margin:8px 0}.speech,.dialog-actions,.status-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.speech button,.dialog-actions button,.status-actions button{flex:1;min-width:100px;padding:12px;border:1px solid #ccd2dc;border-radius:12px;background:#fff}.speech label{display:flex;gap:6px}.dialog-actions .primary{background:var(--navy);color:#fff}.status-actions .done{background:var(--green);color:#fff}.status-actions .warn{background:var(--red);color:#fff}.photo{display:block;border:1px dashed #8893a2;border-radius:12px;padding:14px;margin:10px 0}.photo input{display:block;margin-top:8px}.danger{width:100%;border:0;background:transparent;color:var(--red);padding:14px}.history-item{padding:10px;border-left:3px solid var(--orange);margin:8px 0;background:#f7f5ef}#toast{position:fixed;z-index:20;left:50%;bottom:30px;transform:translateX(-50%) translateY(30px);background:#172033;color:#fff;padding:12px 18px;border-radius:999px;opacity:0;transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:translateX(-50%)}@media(max-width:650px){main{padding:12px}.filters,.project-box{grid-template-columns:1fr}.inspection-summary{grid-template-columns:1fr 1fr}.sop-row,.check-row{grid-template-columns:34px 1fr}.sop-row .badge,.check-row .badge{grid-column:2}.dialog-body{padding:14px}.tabs button{font-size:14px}}
