:root{--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--bg:#f4f7fb;--card:#fff;--brand:#111827;--accent:#2563eb;--warn:#f59e0b;--danger:#dc2626;--ok:#16a34a;--shadow:0 14px 34px rgba(15,23,42,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}a{color:#1d4ed8;text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{background:#111827;color:#fff;padding:22px 18px;position:sticky;top:0;height:100vh;overflow:auto}.sidebar-brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;margin-bottom:28px}.sidebar-brand:hover{text-decoration:none}.brand-mark{width:42px;height:42px;border-radius:12px;background:#fff;color:#111827;display:inline-flex;align-items:center;justify-content:center;font-weight:900;letter-spacing:-.04em}.sidebar-brand strong{display:block;font-size:17px}.sidebar-brand small{display:block;color:#cbd5e1;margin-top:2px}.nav-section{color:#94a3b8;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;margin:20px 10px 8px}.sidebar-nav a{display:flex;align-items:center;min-height:38px;color:#e5e7eb;text-decoration:none;border-radius:10px;padding:9px 12px;margin:3px 0;font-weight:700}.sidebar-nav a:hover{background:#1f2937;color:#fff;text-decoration:none}.main-shell{min-width:0}.topbar{height:86px;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:18px 34px;position:sticky;top:0;z-index:5}.topbar h1{font-size:24px;line-height:1.1;margin:3px 0 0}.eyebrow{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-weight:900}.topbar-actions{display:flex;align-items:center;gap:10px}.user-chip{background:#f1f5f9;border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:#334155;font-weight:800}.container{max-width:1180px;margin:0 auto;padding:28px 34px 60px}.page-intro{color:#475569;margin-top:-12px;margin-bottom:18px}.card,.verify-card{background:var(--card);border-radius:16px;padding:20px;box-shadow:var(--shadow);border:1px solid rgba(226,232,240,.75);margin-bottom:20px}.narrow{max-width:460px;margin:28px auto}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:16px}.ops-stats{grid-template-columns:repeat(4,minmax(150px,1fr))}.stats .card,.dashboard-stats .card{margin:0}.stats strong,.dashboard-stats strong{display:block;font-size:34px;line-height:1;font-weight:900;letter-spacing:-.04em}.stats span,.dashboard-stats span{display:block;color:#475569;margin-top:8px}.card.warning{border-left:5px solid var(--warn)}.card.danger{border-left:5px solid var(--danger)}.card.task-card.done{border-left:5px solid var(--ok)}.card.task-card.todo{border-left:5px solid var(--warn)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 22px}.button,.primary,button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:#111827;color:#fff;padding:10px 14px;text-decoration:none;cursor:pointer;font-weight:800;line-height:1.1}.button:hover,button:hover{text-decoration:none;filter:brightness(1.08)}.button.secondary{background:#64748b}.small-button{padding:8px 11px;font-size:12px}.inline{display:inline}.message{background:#dbeafe;border:1px solid #bfdbfe;color:#1e3a8a;padding:12px;border-radius:10px;margin-bottom:14px;font-weight:700}.page-header{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}th,td{text-align:left;padding:12px;border-bottom:1px solid #e5e7eb;vertical-align:middle}th{background:#f8fafc;color:#334155;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.compact-table th,.compact-table td{padding:9px 10px}.table-scroll{overflow-x:auto}.small{font-size:12px;color:#64748b}.empty{color:#64748b;font-style:italic}.pill,.badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:900}.pill.ok,.badge.pub{background:#dcfce7;color:#166534}.pill.bad,.badge.mandatory{background:#fee2e2;color:#991b1b}.pill.warn,.badge.draft{background:#fef3c7;color:#92400e}.pill.neutral,.badge{background:#e5e7eb;color:#374151}.badge.sleep{background:#111827;color:#fff}.badge.optional{background:#e0f2fe;color:#075985}.row-danger{background:#fef2f2}.row-warning{background:#fffbeb}.row-ok{background:#f0fdf4}input,select,textarea{width:100%;max-width:680px;padding:10px 11px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;box-sizing:border-box}input:focus,select:focus,textarea:focus{outline:3px solid #dbeafe;border-color:#60a5fa}input[type=file]{border:0;padding-left:0;background:transparent}input[type=checkbox],input[type=radio]{width:auto;max-width:none}label{font-weight:800;display:block;margin-bottom:5px}.helptext{font-size:12px;color:#64748b;margin-top:4px}.errorlist{color:#991b1b;margin:6px 0 0;padding-left:18px}.field-row{margin-bottom:15px}.form-grid{display:grid;grid-template-columns:250px 1fr;gap:26px;align-items:start}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:680px}.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-row label{margin:0}.checkbox-list label{font-weight:500}.checkbox-list input{margin-right:8px}.photo-panel{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:14px}.employee-photo-preview,.employee-photo-placeholder{width:180px;height:220px;object-fit:cover;border-radius:12px;border:1px solid #cbd5e1;background:#f1f5f9;margin-bottom:12px}.employee-photo-placeholder{display:flex;align-items:center;justify-content:center;color:#64748b;font-weight:900}.employee-photo-placeholder.large{width:150px;height:180px;margin:0}.employee-thumb{width:42px;height:52px;object-fit:cover;border-radius:8px;border:1px solid #cbd5e1}.photo-dot{color:#94a3b8}.employee-detail-header{display:flex;gap:22px;align-items:flex-start}.employee-photo-large{width:150px;height:180px;object-fit:cover;border-radius:14px;border:1px solid #cbd5e1}.verify-card{text-align:center;max-width:560px;margin:40px auto}.status-ok{background:#dcfce7;color:#166534;padding:16px;border-radius:12px;font-weight:900}.status-bad{background:#fee2e2;color:#991b1b;padding:16px;border-radius:12px;font-weight:900}.compliance-section{border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:18px;margin:18px 0}.compliance-section h2{margin-top:0}.mqs-subsection{border-left:4px solid #111827;background:#fff;border-radius:12px;padding:14px;margin:14px 0}.inline-filter{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-filter select{max-width:190px}pre{background:#111827;color:#f9fafb;border-radius:12px;padding:14px;overflow:auto}.roster-toolbar,.page-subnav{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}.roster-layout{display:grid;grid-template-columns:230px 1fr;gap:18px}.staff-palette{position:sticky;top:108px;align-self:start}.staff-chip{background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:9px;margin-bottom:8px;cursor:grab}.day-card{background:#fff;border-radius:14px;padding:15px;box-shadow:var(--shadow);margin-bottom:14px}.placement-block{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.placement-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.shift-list{display:grid;gap:8px;margin-top:8px}.shift-card{background:#fff;border:1px solid var(--line);border-left:7px solid #111827;border-radius:12px;padding:10px;display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.shift-card.drag-target{outline:2px dashed #2563eb}.shift-card .meta{color:#64748b;font-size:13px}.mini-actions{display:flex;gap:8px;flex-wrap:wrap}.mini-actions .button,.mini-actions button{font-size:12px;padding:7px 9px}.hours-cards{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px}.hours-cards .card{text-align:center}.hours-cards strong{display:block;font-size:26px}.record-block{border-left:4px solid #111827;background:#f8fafc;border-radius:10px;padding:12px;margin:10px 0}.field-row ul{list-style:none;margin:0;padding:0}.field-row li{margin:5px 0}.field-row li label{font-weight:500;display:flex;align-items:center;gap:8px}.client-alert{background:#fff7ed;border-left:5px solid #f97316;padding:12px;border-radius:10px}.task-requirements{display:flex;gap:6px;flex-wrap:wrap}.task-schedule-preview{background:#eef2ff;border-left:5px solid #4f46e5;padding:12px;border-radius:10px}.task-photo{max-width:220px;border-radius:10px;border:1px solid #cbd5e1}.signout-panel{border-left:5px solid #2563eb}.signout-warning{border-left:5px solid var(--danger)}.hidden-field{display:none}
@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.topbar{position:relative;height:auto;padding:18px}.container{padding:20px}.ops-stats,.dashboard-stats,.stats,.grid-2,.hours-cards{grid-template-columns:1fr 1fr}.roster-layout{display:block}.staff-palette{position:static}.form-grid{display:block}}
@media(max-width:700px){.sidebar-nav{grid-template-columns:1fr}.topbar{display:block}.topbar-actions{margin-top:12px}.container{padding:16px}.ops-stats,.dashboard-stats,.stats,.grid-2,.hours-cards,.two-col{display:block}.dashboard-stats .card,.stats .card,.hours-cards .card{margin-bottom:12px}.employee-detail-header{display:block}.employee-photo-large,.employee-photo-placeholder.large{margin-bottom:16px}.shift-card,.placement-head,.page-header{display:block}.actions .button,.actions button{width:100%}}
/* v19 polish */
.brand-logo-wrap{width:104px;min-height:58px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;padding:7px;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.brand-logo{display:block;width:92px;height:auto;object-fit:contain}.sidebar-brand{align-items:center}.sidebar-brand strong{font-size:18px}.sidebar-brand small{font-size:12px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 20px}.dashboard-clean{grid-template-columns:repeat(3,minmax(160px,1fr));margin-bottom:18px}.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 20px}.quick-card{display:block;background:#fff;border:1px solid rgba(226,232,240,.85);box-shadow:var(--shadow);border-radius:16px;padding:16px;text-decoration:none;color:var(--ink)}.quick-card:hover{text-decoration:none;transform:translateY(-1px)}.quick-card strong{display:block;font-size:16px;margin-bottom:5px}.quick-card span{color:var(--muted);font-size:13px}.card-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.card-head h2{margin:0}.form-section{border:1px solid var(--line);background:#fbfdff;border-radius:14px;padding:16px;margin:0 0 18px}.form-section h3{margin:0 0 12px}.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;max-width:860px}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px 22px}.profile-grid p{margin:4px 0}.supervision-note{white-space:pre-wrap}.brand-mark{display:none}
@media(max-width:1100px){.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-clean{grid-template-columns:repeat(2,minmax(0,1fr))}.three-col{grid-template-columns:1fr 1fr}.brand-logo-wrap{width:88px;min-height:48px}.brand-logo{width:78px}}
@media(max-width:700px){.quick-grid,.dashboard-clean,.three-col,.profile-grid{display:block}.quick-card{margin-bottom:12px}.card-head{display:block}.brand-logo-wrap{width:96px;margin-bottom:8px}.sidebar-brand{display:block}}
/* v20 incident report dynamic form */
.incident-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.incident-guide{border-radius:16px;padding:16px;color:#fff;box-shadow:var(--shadow)}.incident-guide h2{margin:0 0 8px;font-size:18px}.incident-guide p{margin:0;line-height:1.35}.incident-guide.critical{background:#991b1b}.incident-guide.major{background:#b45309}.incident-guide.concern{background:#3f7f2b}.incident-warning{padding:12px;border-radius:12px;margin:0 0 14px;font-weight:800}.incident-warning.cat1{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.incident-warning.cat2{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.incident-warning.significant{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.incident-warning.internal{background:#e0f2fe;color:#075985;border:1px solid #bae6fd}.incident-form-card .form-section{background:#fff}.incident-type-list ul{columns:2;max-width:900px}.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;max-width:900px}.dynamic-section[hidden],.conditional-field[hidden],#category-warning[hidden]{display:none!important}.incident-form-card textarea{max-width:900px}.incident-form-card input,.incident-form-card select{max-width:420px}.incident-form-card input[type=file]{max-width:680px}
@media(max-width:900px){.incident-guide-grid,.checkbox-grid{grid-template-columns:1fr}.incident-type-list ul{columns:1}}
.detail-list { display: grid; grid-template-columns: 210px 1fr; gap: 10px 18px; margin: 0; }
.detail-list dt { font-weight: 700; color: #475569; }
.detail-list dd { margin: 0; color: #0f172a; }
.report-block { border-top: 1px solid #e5e7eb; padding: 14px 0; }
.report-block:first-of-type { border-top: 0; }
.report-block h3 { margin: 0 0 6px; font-size: 15px; }
.report-block p { margin: 0; white-space: normal; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
@media (max-width: 760px) { .detail-list { grid-template-columns: 1fr; } .detail-list dt { margin-top: 8px; } }
