:root{font:16px/1.45 Arial,Helvetica,sans-serif;color:#17313c;background:#f2f5f4}*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}h1,h2,p{margin-top:0}h1{font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.1}h2{font-size:1.18rem}a{color:#006e80}:focus-visible{outline:3px solid #f0a64b;outline-offset:2px}.mast{background:#132f3b;color:#fff;border-bottom:4px solid #e98d49}.mast-inner{max-width:1200px;margin:auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font-size:1.25rem;font-weight:800}.brand small{display:block;font-size:.69rem;letter-spacing:.14em;text-transform:uppercase;color:#bed3d9}.shell{max-width:1200px;margin:auto;padding:28px 24px 56px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.73rem;font-weight:800;color:#a34f20}.muted{color:#526871}.intro{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:25px}.intro p{margin-bottom:0}.card{background:#fff;border:1px solid #d5e0df;border-radius:15px;padding:24px;box-shadow:0 6px 22px #12323a0a}.grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:20px}.stack{display:grid;gap:20px}.filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.field{display:grid;gap:6px;font-weight:750}.field input,.field select{min-height:46px;min-width:0;padding:10px;border:1px solid #8da8af;border-radius:9px;background:#fff;color:#17313c}.button{min-height:46px;border:0;border-radius:9px;padding:10px 16px;background:#007f8d;color:#fff;font-weight:800}.button.secondary{background:#e6f0f1;color:#194956}.button.ghost{background:transparent;color:inherit;border:1px solid #a4b9bd}.mast .button.ghost{border-color:#98b0ba;color:#fff}.notice{min-height:1.4em;margin:12px 0;color:#075f49}.notice.error{color:#a32e2e}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}.stat{padding:16px;border-radius:11px;background:#edf4f4}.stat strong{display:block;font-size:1.85rem;line-height:1.05;font-variant-numeric:tabular-nums}.stat span{display:block;margin-top:7px;font-size:.84rem;color:#46616a}.row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;border-top:1px solid #e1e9e8}.row:first-child{border-top:0}.row strong,.row small{display:block}.row small{margin-top:4px;color:#526871}.badge{display:inline-block;border-radius:999px;padding:4px 9px;background:#e1f2e8;color:#17613d;font-size:.75rem;font-weight:800}.badge.missing{background:#fff0d0;color:#704a05}.auth{max-width:430px;margin:5vh auto}.auth .field{margin:15px 0}.auth .button{width:100%}.auth-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.auth-actions .button{width:auto}.empty{padding:20px;border:1px dashed #b7c9cd;border-radius:10px;color:#526871}.photo{display:block;max-width:100%;max-height:360px;margin:14px 0;border-radius:9px}.sheet-detail{border-top:1px solid #e1e9e8;margin-top:18px;padding-top:16px}.sheet-detail summary{cursor:pointer;font-weight:750}.sheet-detail dl{display:grid;grid-template-columns:max-content 1fr;gap:7px 18px}.sheet-detail dt{color:#526871}.sheet-detail dd{margin:0}.footer{margin-top:24px;color:#526871;font-size:.86rem}@media(max-width:800px){.grid{grid-template-columns:1fr}.intro{display:block}.intro .filters{margin-top:18px}}@media(max-width:560px){.shell{padding:20px 14px 42px}.mast-inner{padding:14px}.card{padding:17px}.summary{grid-template-columns:1fr 1fr}.summary .stat:last-child{grid-column:1/-1}.filters>.field{flex:1 1 130px}.filters>.button{flex:1 1 100%}}.crew-pack{padding:10px 0;border-top:1px solid #d8e2e6}.crew-pack:first-child{border-top:0}.crew-pack h3{margin:0 0 8px;font-size:1rem}.pack-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.pack-line .button{width:auto;max-width:100%}.pack-line small{flex:1 1 100%;color:#4d6570}.tabs{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}.tab{font:inherit;font-weight:700;padding:10px 18px;border:1px solid #b9c9cf;border-radius:10px;background:#fff;color:#17313c;cursor:pointer}.tab.active{background:#132f3b;border-color:#132f3b;color:#fff}.machine-defects{margin-bottom:14px;border-left:6px solid #9db0b8}.machine-defects.worst-critical{border-left-color:#b91c1c}.machine-defects.worst-urgent{border-left-color:#d97706}.defect-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.defect-head h2{margin:0}.defect{padding:10px 12px;margin-top:10px;border:1px solid #d8e2e6;border-radius:10px;background:#fff}.defect.critical{background:#fee2e2;border-color:#f3a6a6}.defect.urgent{background:#fef3c7;border-color:#efd189}.defect p{margin:6px 0}.defect small{display:block;color:#4d6570}.badge.sev-critical{background:#b91c1c;color:#fff}.badge.sev-urgent{background:#d97706;color:#fff}.badge.sev-routine{background:#e3eaed;color:#17313c}.repeat{font-weight:700;color:#8a4508}.pdf-add{display:inline-flex;cursor:pointer}.pdf-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:14px}.pdf-actions .button{width:auto}.pdf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-top:14px}.pdf-page{display:grid;gap:6px;align-content:start;padding:10px;background:#fff;border:1px solid #d8e2e6;border-radius:10px;min-width:0}.pdf-page.selected{border-color:#132f3b;box-shadow:0 0 0 2px #132f3b}.pdf-page canvas{max-width:100%;height:auto;border:1px solid #e3eaed;justify-self:center}.pdf-page small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4d6570}.pdf-pick{display:flex;gap:6px;align-items:center;font-weight:700}.pdf-page-actions{display:flex;flex-wrap:wrap;gap:4px}.pdf-page-actions button{font:inherit;font-size:.8rem;padding:6px 8px;border:1px solid #b9c9cf;border-radius:7px;background:#f2f5f4;color:#17313c;cursor:pointer}.pdf-page-actions button:disabled{opacity:.4;cursor:default}.pdf-editor{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;gap:8px;padding:10px;background:#f2f5f4;overflow:auto}.pdf-editor-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pdf-editor-bar .button{width:auto}.pdf-modes{display:flex;flex-wrap:wrap;gap:6px}.pdf-edit-text{flex:1 1 180px;min-width:0;font:inherit;padding:10px;border:1px solid #b9c9cf;border-radius:8px}.pdf-editor-hint{margin:0;font-weight:700}.pdf-editor-sign{display:grid;gap:8px;justify-items:start}.pdf-sign-pad{width:100%;max-width:420px;background:#fff;border:1px dashed #6f8791;border-radius:8px;touch-action:none}.pdf-editor-stage{position:relative;align-self:center;width:100%;max-width:1000px}.pdf-edit-page{display:block;width:100%;height:auto;background:#fff;box-shadow:0 2px 10px #0003}.pdf-edit-marks{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:pointer}.roster-card{margin-bottom:14px}.roster-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:10px}.roster-form .field{flex:1 1 190px;min-width:0}.roster-form .button{width:auto}.roster-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:12px}.roster-days span{display:grid;justify-items:center;padding:4px 2px;border:1px solid #d8e2e6;border-radius:6px;background:#fff}.roster-days small{font-size:.65rem;color:#4d6570}.roster-days .swing-day{background:#fff3c4}.roster-days .swing-night{background:#d8e2f5}.person-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.person{font:inherit;font-weight:700;padding:10px 14px;border:1px solid #b9c9cf;border-radius:10px;background:#fff;color:#17313c;cursor:pointer}.person.active{background:#132f3b;border-color:#132f3b;color:#fff}.person small{font-weight:400;opacity:.75}.alloc{margin:14px 0}.alloc .tabs{margin:12px 0}.cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0}.cal-head .button{width:auto}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-dow{text-align:center;font-size:.72rem;font-weight:700;color:#4d6570}.cal-day{font:inherit;display:grid;justify-items:center;gap:1px;min-height:58px;padding:4px 1px;border:1px solid #d8e2e6;border-radius:8px;background:#fff;color:#17313c;cursor:pointer}.cal-day .cal-num{font-weight:700}.cal-day .cal-mark{font-size:.75rem}.cal-day small{font-size:.65rem;color:#8a4508}.cal-day.swing-day{background:#fff3c4}.cal-day.swing-night{background:#d8e2f5}.cal-day.swing-off{background:#eef2f3;color:#6b818a}.cal-day.leave-annual{background:#157347;border-color:#157347;color:#fff}.cal-day.leave-personal{background:#7c3aed;border-color:#7c3aed;color:#fff}.cal-day.leave-annual small,.cal-day.leave-personal small{color:#fff}.cal-day.changed{outline:3px solid #d97706;outline-offset:-1px}.cal-day.today .cal-num{text-decoration:underline}.small{font-size:.85rem}.cal-day.cal-still{cursor:default;pointer-events:none}.small .button{width:auto;padding:6px 12px;margin-left:6px}
