:root{--primary:#173f5f;--primary-2:#20639b;--accent:#3caea3;--success:#178a68;--danger:#c0392b;--warning:#e67e22;--bg:#f4f7fa;--surface:#fff;--text:#17212b;--muted:#667684;--border:#dbe3e9;--shadow:0 14px 45px rgba(23,63,95,.12);--radius:18px;--font:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{color-scheme:light}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.5}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.hidden{display:none!important}.muted{color:var(--muted)}.full{width:100%}.span-2{grid-column:span 2}.stack-lg{display:grid;gap:18px}.eyebrow{color:var(--primary-2);font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.topbar{height:72px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1080px)/2));box-shadow:0 5px 18px rgba(0,0,0,.16)}.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none}.brand-mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.16);font-size:1.15rem;font-weight:900}.brand strong,.brand small{display:block}.brand small{font-size:.68rem;opacity:.72}.topbar-actions{display:flex;align-items:center;gap:10px}.user-chip{font-size:.82rem;font-weight:700;background:rgba(255,255,255,.12);padding:8px 12px;border-radius:999px}.button{border:0;border-radius:11px;padding:11px 17px;font-weight:750;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:.18s ease;min-height:43px}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.42;cursor:not-allowed;transform:none}.button.primary{background:var(--primary);color:#fff}.button.success{background:var(--success);color:#fff}.button.danger{background:var(--danger);color:#fff}.button.secondary{background:#fff;color:var(--primary);border:1px solid var(--border)}.button.ghost-light{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);min-height:36px;padding:7px 13px}.auth-page{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:30px 16px}.auth-card{width:min(430px,100%);background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:34px;box-shadow:var(--shadow)}.auth-card h1{margin:7px 0 5px;font-size:1.8rem}.auth-card>p{margin:0 0 25px}.admin-link{display:block;margin-top:20px;text-align:center;color:var(--primary-2);font-size:.85rem;font-weight:700;text-decoration:none}label{font-size:.82rem;font-weight:750;display:grid;gap:7px}input,textarea,select{width:100%;border:1px solid var(--border);border-radius:11px;padding:11px 13px;background:#fff;color:var(--text);outline:none;transition:.18s}input:focus,textarea:focus,select:focus{border-color:var(--primary-2);box-shadow:0 0 0 3px rgba(32,99,155,.12)}.form-error{margin:0;color:var(--danger);font-size:.84rem;font-weight:700}.app-page{padding:26px 16px 60px}.registration-shell{width:min(720px,100%);margin:auto}.group-card{text-align:center;background:#fff;border:1px solid var(--border);border-radius:18px;padding:15px;box-shadow:0 7px 24px rgba(23,63,95,.07)}.group-card span,.group-card small{display:block;color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.group-card strong{display:block;color:var(--primary);font:900 2.25rem/1.15 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.25em;margin-left:.25em}.stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;list-style:none;margin:24px 0;padding:0}.stepper li{display:flex;align-items:center;justify-content:center;gap:6px;color:#91a0ac;font-size:.72rem;font-weight:800}.stepper li span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#e4eaef}.stepper li.active{color:var(--primary)}.stepper li.active span,.stepper li.done span{background:var(--primary);color:#fff}.step-panel,.result-panel{background:#fff;border:1px solid var(--border);border-radius:22px;padding:28px;box-shadow:0 10px 35px rgba(23,63,95,.08)}.panel-heading h2,.result-panel h2{margin:5px 0;font-size:1.45rem}.panel-heading p{margin:0 0 24px;color:var(--muted)}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.choice-card{background:#fff;border:2px solid var(--border);border-radius:17px;padding:22px 14px;display:grid;justify-items:center;gap:7px;cursor:pointer;color:var(--text)}.choice-card:hover,.choice-card.selected{border-color:var(--primary-2);background:#f4f9fd}.choice-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#eaf2f8;color:var(--primary);font-weight:900;font-size:1.2rem}.choice-card small{color:var(--muted);text-align:center}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel-actions{display:flex;justify-content:space-between;gap:12px;margin-top:26px}.panel-actions.end{justify-content:flex-end}.camera-card{background:#e9eef2;border:2px dashed #b7c5cf;border-radius:18px;overflow:hidden;aspect-ratio:4/3;display:grid;place-items:center}.camera-media{width:100%;height:100%;object-fit:cover}.camera-placeholder{text-align:center;color:var(--muted)}.camera-placeholder span{font-size:4rem;line-height:1}.camera-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:14px}.file-button input{position:absolute;opacity:0;pointer-events:none}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.summary-item{background:#f6f8fa;border:1px solid var(--border);border-radius:12px;padding:12px}.summary-item small{display:block;color:var(--muted);font-weight:700}.summary-item strong{display:block;margin-top:3px}.agreement{max-height:300px;overflow:auto;background:#f8fafb;border:1px solid var(--border);border-radius:14px;padding:18px;font-size:.88rem;white-space:pre-line}.check-row{display:flex;grid-template-columns:auto 1fr;align-items:flex-start;gap:10px;margin-top:18px;background:#edf7f4;border:1px solid #cde7df;padding:14px;border-radius:12px}.check-row input{width:19px;height:19px;margin:1px 0}.result-panel{text-align:center}.success-icon{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:#dff5ed;color:var(--success);font-size:2.2rem;font-weight:900;margin:0 auto 14px}.result-actions{display:flex;gap:10px;justify-content:center;margin-top:25px}.report-list{display:grid;gap:8px;text-align:left;margin:22px 0}.report-row{display:flex;justify-content:space-between;gap:12px;background:#f7f9fb;border:1px solid var(--border);border-radius:12px;padding:12px}.notice{border-radius:12px;padding:12px 15px;margin-bottom:12px;background:#fff3cd;color:#735a00;border:1px solid #ffe69c}.toast{position:fixed;right:20px;bottom:20px;z-index:1000;max-width:390px;background:#17212b;color:#fff;border-radius:12px;padding:13px 17px;box-shadow:var(--shadow);font-weight:700}.toast.error{background:var(--danger)}
.admin-body{background:#f3f6f9}.admin-layout{min-height:100vh;display:grid;grid-template-columns:245px 1fr}.admin-sidebar{background:var(--primary);color:#fff;padding:22px 15px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.admin-brand{padding:0 7px 23px}.admin-nav{display:grid;gap:5px}.admin-nav button{border:0;background:transparent;color:rgba(255,255,255,.72);text-align:left;border-radius:10px;padding:12px 14px;font-weight:750;cursor:pointer}.admin-nav button:hover,.admin-nav button.active{background:rgba(255,255,255,.13);color:#fff}.sidebar-logout{margin-top:auto;background:rgba(255,255,255,.1);color:#fff}.admin-main{padding:30px;min-width:0}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.admin-header h1{margin:3px 0 0}.admin-section{display:grid;gap:20px}.content-card,.table-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:0 7px 25px rgba(23,63,95,.05)}.content-card h2{font-size:1.05rem;margin:0 0 6px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:20px}.stat-card span{font-size:.75rem;color:var(--muted);font-weight:800;text-transform:uppercase}.stat-card strong{display:block;font-size:2rem;color:var(--primary);margin-top:5px}.toolbar{display:flex;gap:9px;flex-wrap:wrap}.toolbar input{width:auto;min-width:210px;flex:1}.table-card{padding:0;overflow:hidden}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{padding:13px 14px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}th{background:#f7f9fb;color:var(--muted);font-size:.72rem;text-transform:uppercase}td input[type=checkbox],th input[type=checkbox]{width:17px;height:17px}.table-person strong,.table-person small{display:block}.table-person small{color:var(--muted)}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eaf2f8;color:var(--primary);font-size:.7rem;font-weight:800}.badge.success{background:#def4eb;color:var(--success)}.badge.danger{background:#fbe6e3;color:var(--danger)}.icon-button{border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 9px;cursor:pointer}.pagination{display:flex;justify-content:center;align-items:center;gap:8px;padding:14px}.two-column,.settings-grid{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:18px}.settings-grid{grid-template-columns:1fr 1fr}.item-list,.list-grid{display:grid;gap:10px;margin-top:14px}.item-row,.frequency-row{border:1px solid var(--border);border-radius:12px;padding:13px;display:flex;align-items:center;justify-content:space-between;gap:10px}.item-meta strong,.item-meta small{display:block}.item-meta small{color:var(--muted)}.row-actions{display:flex;gap:7px}.frequency-alert{background:#fff4e8;border:1px solid #ffd5ac;color:#9a4c00;border-radius:14px;padding:14px;margin-bottom:13px}.details-dialog{width:min(700px,calc(100% - 24px));border:0;border-radius:20px;padding:28px;box-shadow:0 25px 80px rgba(0,0,0,.25)}.details-dialog::backdrop{background:rgba(10,25,35,.55)}.dialog-close{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:2rem;cursor:pointer}.detail-photo{width:150px;height:150px;object-fit:cover;border-radius:16px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-top:18px}.detail-field{background:#f6f8fa;border-radius:11px;padding:11px}.detail-field small,.detail-field strong{display:block}.detail-field small{color:var(--muted)}
@media(max-width:850px){.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto}.admin-nav{display:flex;overflow:auto}.admin-nav button{white-space:nowrap}.sidebar-logout{margin:12px 0 0}.admin-main{padding:18px}.stat-grid{grid-template-columns:repeat(2,1fr)}.two-column{grid-template-columns:1fr}}
@media(max-width:620px){.topbar{padding:0 14px}.user-chip{display:none}.app-page{padding:16px 10px 40px}.step-panel,.result-panel{padding:20px 16px}.choice-grid,.form-grid,.summary-grid,.settings-grid,.detail-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.stepper li{font-size:0}.stepper li span{font-size:.72rem}.result-actions,.panel-actions{flex-direction:column-reverse}.panel-actions .button,.result-actions .button{width:100%}.group-card strong{font-size:1.9rem}.admin-header{align-items:flex-start}.admin-header .button{display:none}.stat-grid{grid-template-columns:1fr 1fr}.toolbar{display:grid}.toolbar input{width:100%;min-width:0}.details-dialog{padding:22px 16px}.detail-photo{width:110px;height:110px}}
/* Administrative account setup and recovery */
.link-button{width:100%;padding:0;border:0;background:transparent;cursor:pointer}
.recovery-code-box{display:grid;gap:12px;margin:22px 0}
.recovery-code-box code{display:block;padding:16px 12px;border:1px dashed var(--primary-2);border-radius:12px;background:#f3f8fc;color:var(--primary);font-size:1rem;font-weight:900;letter-spacing:.08em;text-align:center;overflow-wrap:anywhere;user-select:all}
.install-button{margin-top:16px}
