:root{font:16px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#253149;background:#f3f4f8;--blue:#315cce;--muted:#6b768c;--line:#e0e5ee}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #92afea;outline-offset:3px}button{border:1px solid var(--line);border-radius:9px;padding:12px 15px;background:white;color:#253149;min-height:44px}.primary{background:var(--blue);color:white;border-color:var(--blue)}.wide{width:100%}a,.link{color:var(--blue)}.link{background:none;border:0;text-align:left;padding-left:0}.shell{max-width:680px;margin:auto;padding:20px 18px 110px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.brand{font-size:20px;font-weight:650}.brand b{display:inline-grid;place-items:center;width:32px;height:32px;background:#253149;color:white;border-radius:8px;margin-right:7px}.avatar{border-radius:50%;background:#e7ebf2;display:grid;place-items:center;width:42px;height:42px;font-size:12px}h1{font-size:29px;letter-spacing:-.7px;margin:12px 0 4px}h2{font-size:20px;margin:0 0 13px}h3{font-size:17px;margin:0}p{margin:7px 0}.muted{color:var(--muted)}.small{font-size:13px}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:20px;margin-top:18px}.time{font-size:30px;font-weight:650;margin:14px 0 0}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.badge{display:inline-block;font-size:12px;padding:5px 9px;border-radius:7px;background:#edf0f5;color:#56627a}.good{background:#e5f3e9;color:#34694a}.warm{background:#fff3dc;color:#8c5b19}.bad{background:#fce6df;color:#9d4830}.shift-row{border-top:1px solid var(--line);padding:18px 0}.shift-row:first-of-type{margin-top:10px}.shift-row .row{margin-top:12px}.shift-row:last-child{padding-bottom:0}label{display:grid;gap:7px;color:#59677e;font-size:14px;margin:15px 0}input,select,textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;padding:12px;color:#253149;background:white}textarea{min-height:90px}.check{display:flex;align-items:flex-start;gap:10px}.check input{width:20px;flex-shrink:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:center;margin:18px 0}.stats strong{display:block;font-size:28px}.stats span{font-size:12px;color:var(--muted)}.notice{padding:12px 14px;border-radius:8px;background:#fff3dc;color:#805519;font-size:14px;margin:15px 0}.error{color:#a03b29;font-size:14px;white-space:pre-wrap}.error:empty{display:none}nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:8px;background:white;border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));z-index:3}nav button{border:0;flex:1;max-width:200px;font-size:14px;padding:10px 7px}nav button[aria-pressed=true]{color:var(--blue);background:#edf2ff}dialog{border:1px solid var(--line);border-radius:13px;width:min(94vw,520px);padding:22px;max-height:90dvh;overflow:auto;color:#253149}dialog::backdrop{background:#1c29475c}dialog img{display:block;width:min(100%,340px);margin:15px auto}dialog video{width:100%;max-height:300px;background:#202738;border-radius:8px;margin-top:15px}dialog .close{float:right;min-width:44px}.qr-link{overflow-wrap:anywhere;font-size:13px}.checklist{padding-left:21px;color:#59677e;font-size:14px}.offline{background:#fff3dc;padding:12px;font-size:14px;border-radius:8px}.nav-space{height:20px}#mobile-toast{position:fixed;bottom:85px;left:18px;right:18px;margin:auto;max-width:620px;background:#253149;color:white;border-radius:8px;padding:12px;display:none;z-index:10}.empty{padding:15px 0;color:var(--muted)}details{margin-top:14px}summary{cursor:pointer;font-weight:500}.login{max-width:440px;margin:50px auto}.install{font-size:13px;color:var(--muted)}.install button{font-size:13px;padding:7px 10px}@media print{nav,button,header{display:none}.shell{padding:0}dialog{position:static;display:block;border:0}}
nav .nav-scan{background:var(--blue);color:#fff;font-weight:650;box-shadow:0 3px 12px #315cce25}nav .nav-scan::before{content:'▣';display:block;font-size:23px;line-height:1.1;margin-bottom:4px}nav button{max-width:165px;font-size:13px}.calendar-panel h2{font-size:18px;margin:0;text-transform:capitalize}.calendar-panel .row{flex-wrap:nowrap}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:18px 0}.weekday{text-align:center;color:var(--muted);font-size:12px;padding:6px 0}.calendar-day{display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:66px;padding:7px 1px;border-color:transparent;background:#f5f6f9}.calendar-day small{display:block;font-size:10px;min-height:15px;max-width:100%;overflow:hidden}.calendar-day.has-shift{background:#edf2ff;color:#315cce}.calendar-day.has-absence{background:#fff3dc;color:#8c5b19}.calendar-day.is-done{background:#e5f3e9;color:#34694a}.calendar-day.is-today span{font-weight:800;text-decoration:underline;text-underline-offset:4px}.calendar-day[aria-pressed=true]{outline:2px solid var(--blue);outline-offset:-2px}.calendar-legend{display:flex;gap:14px;flex-wrap:wrap}.calendar-legend span:first-child{color:var(--blue)}.calendar-legend span:nth-child(2){color:#34694a}.calendar-legend span:last-child{color:#8c5b19}.selected-date{margin-top:24px;text-transform:capitalize}@media(max-width:400px){.calendar-panel{padding:14px}.calendar-grid{gap:3px}.calendar-day{min-height:60px}nav{gap:3px;padding-left:5px;padding-right:5px}nav button{font-size:11px;padding:8px 3px}}
