@import"https://fonts.googleapis.com/css2?family=Barlow:wght@400;500;600;700&display=swap";:root{--bg-top: #f4f6ff;--bg-bottom: #fff3de;--ink: #15223f;--ink-soft: #4f5b73;--card: rgba(255, 255, 255, .92);--line: rgba(26, 44, 77, .14);--accent: #ff6f3d;--accent-ink: #ffffff;--accent-quiet: #ffe0d2;--ok: #097c42;--error: #b42318;--control-bg: #ffffff;--control-fg: #5a6479;--control-active-bg: #15223f;--control-active-fg: #ffffff}:root[data-theme=dark]{--bg-top: #0f1627;--bg-bottom: #1c2438;--ink: #e8eefb;--ink-soft: #a3afc9;--card: rgba(15, 24, 39, .92);--line: rgba(174, 189, 219, .16);--accent: #ff8458;--accent-ink: #ffffff;--accent-quiet: #3b2a23;--ok: #4fd08f;--error: #ff8b86;--control-bg: #1e2942;--control-fg: #bcc7e0;--control-active-bg: #f3f6ff;--control-active-fg: #15223f}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Barlow,Trebuchet MS,sans-serif;color:var(--ink);background:radial-gradient(circle at 8% 2%,rgba(255,228,199,.55) 0%,transparent 32%),radial-gradient(circle at 96% 0%,rgba(216,236,255,.45) 0%,transparent 34%),linear-gradient(185deg,var(--bg-top),var(--bg-bottom))}.checkin-shell{width:min(980px,100%);margin:0 auto;padding:18px 14px 24px;display:grid;gap:12px;animation:rise-in .22s ease-out}.hero-card,.state-card,.panel-card,.work-header{border:1px solid var(--line);border-radius:18px;background:var(--card);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);box-shadow:0 10px 22px #1426451f}.hero-card{padding:16px}.hero-title{margin:0;font-size:1.35rem;letter-spacing:.02em}.hero-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.hero-subtitle{margin:6px 0 0;color:var(--ink-soft)}.hero-meta{margin:10px 0 0;font-weight:600}.state-card{padding:14px}.state-card-error{border-color:#b423183d}.works-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.work-tile{min-height:150px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(165deg,#ffffffeb,#f7fbffcc);padding:14px;display:flex;flex-direction:column;justify-content:space-between;color:var(--ink);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}:root[data-theme=dark] .work-tile{background:linear-gradient(165deg,#1b253aeb,#121929d9)}.work-tile:active,.work-tile:hover{transform:translateY(-2px);border-color:#1b3b6057;box-shadow:0 10px 22px #112c4e2e}.work-code{font-size:1.05rem;font-weight:700}.work-name{margin-top:10px;font-size:1.02rem;line-height:1.15}.work-mode-chip{margin-top:8px;width:fit-content;border-radius:999px;border:1px solid var(--line);background:var(--accent-quiet);color:var(--ink);padding:4px 10px;font-size:.8rem;font-weight:700}.work-header{padding:12px;display:grid;gap:10px}.work-header-topline{display:flex;align-items:center;justify-content:space-between;gap:8px}.work-header-copy h1{margin:0;font-size:1.08rem;line-height:1.2}.work-header-copy p{margin:6px 0 0;color:var(--ink-soft)}.panel-card{padding:12px;display:grid;gap:8px}.panel-card h2{margin:0;font-size:1.03rem}.panel-hint{margin:0;color:var(--ink-soft)}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.action-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.action-button{min-height:76px;border-radius:14px;border:1px solid var(--line);background:var(--control-bg);color:var(--ink);font-size:1.05rem;font-weight:700}.action-button:disabled{opacity:.45}.action-button-active{border-color:transparent;background:linear-gradient(160deg,#ff8458,#ff5f2b);color:#fff9f4;box-shadow:0 10px 18px #ff693542}.action-button.denied.action-button-active{background:linear-gradient(160deg,#e25050,#b42318)}.scanner-actions,.capture-entry-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.capture-entry-manual-trigger{width:100%}.scanner-video{width:100%;border-radius:14px;border:1px solid var(--line);min-height:210px;background:#1a1f2f;object-fit:cover}.manual-form{display:grid;gap:8px}.manual-entry-surface{display:grid;gap:8px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--control-bg)}.manual-entry-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.manual-input{width:100%;min-height:50px;border-radius:12px;border:1px solid var(--line);padding:0 12px;background:var(--control-bg);color:var(--ink);font-size:1rem}.primary-action,.secondary-action,.candidate-button,.crew-chip button{border:0;border-radius:12px;min-height:50px;padding:0 14px;font-weight:700;font-size:.98rem}.primary-action{background:var(--accent);color:var(--accent-ink);box-shadow:0 8px 16px #ff6c3842}.primary-action:disabled{opacity:.55;box-shadow:none}.primary-action-block{width:100%}.secondary-action{background:var(--accent-quiet);color:var(--ink);border:1px solid rgba(255,105,53,.2);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;width:fit-content}.preference-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.preference-pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;border:1px solid var(--line);background:var(--control-bg);padding:4px}.preference-label{padding:0 8px;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.preference-button,.preference-icon-button{border:0;border-radius:999px;background:transparent;color:var(--control-fg);font-weight:700;min-height:30px;min-width:30px;padding:0 10px}.preference-icon-button{min-width:34px;padding:0;display:inline-flex;align-items:center;justify-content:center}.preference-button-active{background:var(--control-active-bg);color:var(--control-active-fg)}.preference-icon{width:16px;height:16px}.candidate-list,.crew-list{display:grid;gap:7px}.candidate-button{width:100%;background:var(--control-bg);border:1px solid var(--line);text-align:left;color:var(--ink)}.crew-chip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--control-bg);padding:8px}.crew-identity-label{overflow-wrap:anywhere}.crew-status-block{display:grid;gap:4px;justify-items:end;text-align:right}.crew-status-inline{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}.crew-not-present-action{min-height:36px;padding:0 10px;font-size:.84rem}.crew-status-tag{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--line);padding:4px 10px;font-size:.8rem;font-weight:700;background:#4f5b731f;color:var(--ink)}.crew-status-pending{background:#4f5b731f;color:var(--ink)}.crew-status-allowed{border-color:#097c4259;background:#097c4229;color:var(--ok)}.crew-status-denied{border-color:#b4231857;background:#b4231824;color:var(--error)}.crew-status-not_present{border-color:#3948663d;background:#3948661f;color:var(--ink-soft)}.crew-status-running_late{border-color:#b0751e59;background:#b0751e33;color:#8a5a00}:root[data-theme=dark] .crew-status-running_late{color:#ffd188}.precheck-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--control-bg);padding:10px}.precheck-photo,.precheck-photo-fallback{width:68px;height:68px;border-radius:12px;border:1px solid var(--line)}.precheck-photo{object-fit:cover;background:#17223a14}.precheck-photo-fallback{display:grid;place-items:center;font-size:1.2rem;font-weight:700;color:var(--ink-soft);background:linear-gradient(145deg,#ff865933,#5c7bb024)}.precheck-meta{margin:0;display:grid;gap:4px}.precheck-meta div{display:grid;grid-template-columns:118px minmax(0,1fr);gap:6px;align-items:baseline}.precheck-meta dt{margin:0;color:var(--ink-soft);font-size:.85rem}.precheck-meta dd{margin:0;font-weight:600;overflow-wrap:anywhere}.denial-reason-list{display:grid;gap:6px}.denial-reason-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--control-bg)}.denial-note-field{display:grid;gap:6px}.denial-note-field textarea{min-height:88px;width:100%;border-radius:10px;border:1px solid var(--line);padding:8px 10px;font:inherit;color:var(--ink);background:var(--control-bg);resize:vertical}.ok-text{margin:2px 0 0;font-weight:600;color:var(--ok)}.error-text{margin:2px 0 0;font-weight:600;color:var(--error)}.decision-modal-backdrop{position:fixed;inset:0;background:#080f1c7a;display:grid;place-items:center;padding:12px;z-index:30}.scanner-modal-backdrop{position:fixed;inset:0;background:#080f1c7a;display:grid;place-items:center;padding:12px;z-index:25}.scanner-modal-card{width:min(640px,100%);max-height:calc(100vh - 24px);overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 18px 34px #0c162657;padding:12px;display:grid;gap:10px}.scanner-modal-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.scanner-modal-header h2{margin:0;font-size:1.08rem}.decision-modal-card{width:min(620px,100%);max-height:calc(100vh - 24px);overflow:auto;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 18px 34px #0c162657;padding:12px;display:grid;gap:10px}.decision-modal-card h2{margin:0;font-size:1.08rem}.decision-modal-identity{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--control-bg);padding:10px}.decision-modal-photo,.decision-modal-photo-fallback{width:140px;height:140px;border-radius:12px;border:1px solid var(--line)}.decision-modal-photo{object-fit:cover;background:#17223a14}.decision-modal-photo-fallback{display:grid;place-items:center;font-size:1.1rem;font-weight:700;color:var(--ink-soft);background:linear-gradient(145deg,#ff865933,#5c7bb024)}.decision-modal-meta{margin:0;display:grid;gap:4px}.decision-modal-meta div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:6px;align-items:baseline}.decision-modal-meta dt{margin:0;color:var(--ink-soft);font-size:.85rem}.decision-modal-meta dd{margin:0;font-weight:600;overflow-wrap:anywhere}.decision-modal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.decision-modal-button{min-height:92px;border-radius:14px;border:1px solid var(--line);background:var(--control-bg);color:var(--ink);font-size:1.08rem;font-weight:700}.decision-modal-button-allow-active{border-color:#097c424d;background:linear-gradient(160deg,#18a368,#0e7e4d);color:#fff}.decision-modal-button-deny-active{border-color:#b423184d;background:linear-gradient(160deg,#dc5650,#b42318);color:#fff}.decision-modal-button:disabled{opacity:.5}.decision-modal-denied-body{display:grid;gap:8px}.decision-modal-denied-surface{border:1px solid var(--line);border-radius:12px;background:var(--control-bg);padding:10px;display:grid;gap:10px}.decision-modal-footer{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.activity-list{margin:0;padding:0;display:grid;gap:8px}.activity-entry{list-style:none;border-radius:12px;border:1px solid var(--line);background:var(--control-bg);padding:8px 10px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:baseline}.activity-entry-time{color:var(--ink-soft);font-size:.85rem;white-space:nowrap}.activity-entry-message{color:var(--ink);overflow-wrap:anywhere}.activity-entry-ok{border-color:#097c4252}.activity-entry-warn{border-color:#b0751e5c;background:linear-gradient(160deg,rgba(255,213,115,.2),var(--control-bg))}.activity-entry-error{border-color:#b4231854;background:linear-gradient(160deg,rgba(255,179,172,.25),var(--control-bg))}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:760px){.checkin-shell{padding:20px;gap:14px}.manual-form{grid-template-columns:minmax(0,1fr) auto}.manual-entry-actions{grid-template-columns:auto auto;justify-content:flex-end}}@media(max-width:560px){.precheck-card{grid-template-columns:1fr;align-items:start}.precheck-meta div{grid-template-columns:1fr;gap:2px}.capture-entry-actions,.manual-entry-actions,.crew-chip{grid-template-columns:1fr}.crew-status-block{justify-items:start;text-align:left}.decision-modal-identity{grid-template-columns:1fr;align-items:start}.decision-modal-meta div{grid-template-columns:1fr;gap:2px}.decision-modal-actions{grid-template-columns:1fr}.decision-modal-button{min-height:82px}}
