*{box-sizing:border-box}:root{color:#292a30;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--primary:#81333b;--muted:#626b7c;--border:#d8dbe1;background:#eeeeef;font-family:Arial,system-ui,sans-serif}body{min-width:320px;min-height:100dvh;margin:0}button,input{font:inherit}button{cursor:pointer;border-radius:8px;min-height:48px;padding:12px 18px;font-weight:600}button:disabled,fieldset:disabled button{cursor:wait;opacity:.55}button:focus-visible,input:focus-visible,label:focus-within,[tabindex]:focus-visible{outline-offset:3px;outline:3px solid #b97f88}fieldset{border:0;min-width:0;margin:0;padding:0}h1,h2,p{margin-top:0}h2{font-size:21px;line-height:1.35}p{line-height:1.55}.app-shell{max-width:620px;padding:env(safe-area-inset-top) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));margin:auto}.topbar{justify-content:center;align-items:center;gap:10px;min-height:98px;padding:20px 28px;display:flex;position:relative}.topbar h1{text-align:center;margin:0;font-size:22px}.environment{color:#6a5a60;text-transform:uppercase;letter-spacing:.08em;font-size:10px;position:absolute;top:5px;right:0}.back{color:var(--primary);background:0 0;border:0;padding:2px 16px;font-size:36px;position:absolute;left:-12px}.auth{max-width:420px;margin:clamp(12px,7vh,70px) auto 0}.card{border:1px solid var(--border);background:#f8f8f9;border-radius:18px;padding:24px}.auth-card{box-shadow:0 5px 20px #0000000d}.brand{text-align:center;margin-bottom:28px}.brand h2{margin:12px 0 6px;font-size:23px}.brand p{color:var(--muted);margin:0;font-size:14px}.brand-mark{background:#eee3e5;border-radius:22px;width:76px;height:76px;margin:auto;padding:11px}.brand-mark svg{width:100%;height:100%;fill:var(--primary)}.mark-check{fill:none;stroke:#fff;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.field{margin:0 0 20px;display:block;position:relative}.field>span{color:#555960;background:#f8f8f9;padding:0 5px;font-size:12px;position:absolute;top:-7px;left:12px}.field input{color:#292a30;background:0 0;border:1px solid #888d98;border-radius:7px;width:100%;min-height:56px;padding:15px;font-size:16px;display:block}.field input:focus{border-color:var(--primary)}.password{position:relative}.password input{padding-right:74px}.reveal{color:var(--primary);background:0 0;border:0;padding:8px 12px;font-size:12px;position:absolute;top:4px;right:4px}.primary{background:var(--primary);color:#fff;border:1px solid var(--primary)}.primary:hover:enabled{background:#6c2930}.secondary{color:var(--primary);background:0 0;border:1px solid #a47a80}.secondary:hover:enabled{background:#f1e8ea}.text-button{color:var(--primary);background:0 0;border:0}.full{width:100%}.options{border-top:1px solid var(--border);gap:10px;padding-top:10px;display:grid}.privacy-note{text-align:center;color:var(--muted);max-width:330px;margin:26px auto;font-size:12px}footer{color:var(--muted);text-align:center;margin:30px 0 10px;font-size:11px}.notice{overflow-wrap:anywhere;border-radius:10px;margin:18px 0 0;padding:14px;font-size:14px;line-height:1.5}.error{color:#86292d;background:#fae8e8;border:1px solid #e9bfc2}.success{color:#285b35;background:#e9f3eb;border:1px solid #c5ddcb}.busy{color:var(--muted);justify-content:center;align-items:center;gap:9px;margin:16px 0 0;font-size:13px;display:flex}.spinner{border:2px solid #d3b4b9;border-top-color:var(--primary);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.intro{color:var(--muted);margin-bottom:26px;font-size:14px}.photo-row{border:1px solid var(--border);border-radius:12px;align-items:center;gap:14px;margin-bottom:26px;padding:12px;display:flex}.photo-row img,.photo-placeholder{object-fit:cover;border-radius:8px;flex:none;width:64px;height:72px}.photo-placeholder{color:var(--primary);background:#eee3e5;place-items:center;font-size:30px;display:grid}.photo-label{cursor:pointer;font-size:14px;position:relative}.photo-label span{color:var(--muted);margin-top:5px;font-size:12px;line-height:1.45;display:block}.photo-label input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.workspace{gap:16px;display:grid}.workspace>.notice{margin:0}.profile{align-items:center;gap:12px;padding-bottom:10px;display:flex}.avatar{width:44px;height:44px;color:var(--primary);background:#e7d6d9;border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.profile h2{overflow-wrap:anywhere;margin:3px 0 0;font-size:17px}.eyebrow{color:var(--muted);letter-spacing:.1em;margin:0;font-size:10px;font-weight:600}.logout{margin-left:auto;padding:8px;font-size:12px}.card-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.card-top h2{margin:0;font-size:18px}.status{white-space:nowrap;background:#e9e9ed;border-radius:30px;padding:7px 10px;font-size:11px}.status.working{color:#2b6137;background:#e3eee4}.status.lunch{color:#74530a;background:#f4ebd4}.status.ended{color:#75343d;background:#eadde0}.date{color:var(--muted);margin:13px 0 24px;font-size:12px}.attendance-card h2{letter-spacing:-.5px;margin-bottom:10px;font-size:25px}.muted{color:var(--muted);margin:10px 0 18px;font-size:14px}.attendance-actions{gap:10px;margin-top:24px;display:grid}.small{color:var(--muted);margin:16px 0 0;font-size:12px;line-height:1.6}.location-symbol{color:var(--primary);font-size:28px}.site{border-top:1px solid var(--border);gap:10px;margin-top:16px;padding-top:16px;display:flex}.site strong{font-size:13px}.site p{color:var(--muted);margin:5px 0;font-size:12px}.distance-dot,.history-dot{background:#8a8a92;border-radius:50%;flex:none;width:9px;height:9px;margin-top:4px}.green{background:#2f7d46}.yellow{background:#c89100}.red{background:#a44348}dl{gap:14px;margin:0;display:grid}dl div{justify-content:space-between;font-size:14px;display:flex}dt{color:var(--muted)}dd{margin:0}.history ol{margin:0;padding:0;list-style:none}.history li{border-bottom:1px solid #e7e7eb;align-items:center;gap:12px;padding:13px 0;font-size:14px;display:flex}.history time{font-variant-numeric:tabular-nums;margin-left:auto}.history-dot{background:var(--primary);margin-top:0}dialog{border:1px solid var(--border);color:#292a30;background:#f8f8f9;border-radius:16px;width:calc(100% - 40px);max-width:380px;padding:24px}dialog::backdrop{background:#0007}dialog p{font-size:15px}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}@media (width<=360px){.app-shell{padding-left:14px;padding-right:14px}.card{padding:20px}.topbar h1{font-size:20px}.profile{gap:8px}.logout{max-width:75px}}
