:root{font-family:system-ui,Arial,sans-serif;color:#172332;background:#f5f7fb;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;background:#1260e6;color:white;border-radius:10px;padding:11px 17px;font-weight:700}button:hover{filter:brightness(.93)}button.secondary{background:#e9f0ff;color:#1352ae}button.text-button{padding:5px;background:transparent;color:#1763de}a{color:#1763de;font-weight:700}h1,h2,h3{font-family:system-ui,Arial,sans-serif;margin:0 0 12px}h1{font-size:30px}h2{font-size:24px}h3{font-size:19px}p{color:#68758a;line-height:1.5;margin:0 0 16px}.muted{color:#68758a}.brand{font:800 29px system-ui,Arial;letter-spacing:-1.5px;color:#fff}.brand span{color:#4ba7ff}.brand small{display:block;font:500 11px 'DM Sans';letter-spacing:1.2px;text-transform:uppercase;color:#91a5c5;margin-top:2px}.auth-shell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0c1d39,#123d76)}.auth-card{width:min(440px,calc(100vw - 30px));background:#fff;padding:34px;border-radius:18px;box-shadow:0 20px 60px #0002}.auth-card .brand{color:#102848;margin-bottom:25px}.auth-card p{margin-bottom:25px}.auth-card form{display:grid;gap:15px}.auth-card form button{margin-top:5px}.auth-card .text-button{margin-top:20px}.auth-card #activate-form{padding-top:18px;border-top:1px solid #edf0f5}.auth-card #activate-form[hidden]{display:none}#app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{background:#0e2341;color:#fff;padding:28px 18px;display:flex;flex-direction:column;min-height:100vh}.sidebar .brand{margin:0 12px 35px}.sidebar nav{display:grid;gap:6px}.sidebar nav button{background:transparent;color:#a5b7d0;text-align:left;padding:12px 16px;border-radius:9px;font-weight:600}.sidebar nav button.active,.sidebar nav button:hover{color:#fff;background:#24466f}.side-footer{margin-top:auto;border-top:1px solid #334f70;padding:20px 14px 0;display:flex;justify-content:space-between;align-items:center}.side-footer span{font-size:12px;color:#c0cee0;max-width:130px}.side-footer .text-button{color:#87baff}main{padding:30px 38px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e4eaf2;padding-bottom:25px;margin-bottom:27px}.topbar h1{margin:3px 0 0}.eyebrow{color:#1562de;text-transform:uppercase;font-size:11px;font-weight:800;letter-spacing:1.6px}.top-actions{display:flex;align-items:center;gap:14px}.status-pill{background:#e4f7ed;color:#168450;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.section-head p{margin:0}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two.compact{gap:12px}.card{background:#fff;border:1px solid #e4eaf2;border-radius:16px;padding:22px;box-shadow:0 2px 8px #1a396006}.card p{font-size:13px}.stack{display:grid;gap:13px}label{display:grid;gap:6px;color:#30425a;font-size:13px;font-weight:700}input,select,textarea{width:100%;border:1px solid #d7e0ec;border-radius:9px;background:#fff;color:#1b2d44;padding:10px 12px;outline:none}input:focus,select:focus,textarea:focus{border-color:#2978ed;box-shadow:0 0 0 3px #2978ed20}input[type=color]{padding:3px;height:42px}input[type=file]{font-size:12px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}.space-top{margin-top:25px}.inline-actions{display:flex;align-items:center;gap:10px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.chip{background:#edf3ff;color:#2055a3;border-radius:99px;padding:6px 10px;font-size:12px;font-weight:700}.message{min-height:0}.message:not(:empty){padding:10px 14px;border-radius:9px;background:#e8f4ff;color:#1352ae;margin-bottom:18px}.message.error:not(:empty){background:#ffeded;color:#aa3030}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:#6e7d91;font-size:11px;text-transform:uppercase;letter-spacing:.7px}td,th{padding:12px;border-bottom:1px solid #edf0f5}td button{padding:6px 10px;font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{background:#f1f5fb;border-radius:12px;padding:15px}.stat strong{display:block;font:700 25px Outfit}.stat span{font-size:12px;color:#62748d}.camera-box{background:#0e2341;min-height:260px;border-radius:12px;display:grid;place-items:center;color:#b4c4d7;position:relative;overflow:hidden;margin-bottom:15px}.camera-box video{width:100%;height:260px;object-fit:cover}.camera-box span{position:absolute}.checkin-result{padding:18px 0;font-size:15px}.checkin-result strong{display:block;font:700 22px Outfit;margin-bottom:6px}.checkin-result .done{color:#0a915a}.checkin-result .pending{color:#d47e12}@media(max-width:950px){#app{grid-template-columns:1fr}.sidebar{min-height:auto;display:block;padding:15px}.sidebar .brand{margin:0 0 12px}.sidebar nav{display:flex;overflow:auto}.sidebar nav button{white-space:nowrap}.side-footer{display:none}main{padding:20px}.grid.two{grid-template-columns:1fr}.topbar{align-items:flex-start;gap:15px;flex-wrap:wrap}.inline-actions{flex-wrap:wrap}}

.password-field{display:flex;gap:8px}.password-field input{min-width:0;flex:1}.password-field button{width:auto;flex:none;background:#e9f0ff;color:#1352ae;padding:8px 12px}.auth-card #login-form[hidden],.auth-card #change-password-form[hidden]{display:none}#new-user-result{margin-top:14px;overflow-wrap:anywhere}

[hidden]{display:none!important}

.selected-row{background:#edf3ff}

.category-preview{display:block;border:1px solid #d7e0ec;border-radius:9px;background:#f1f5fb;padding:10px 12px;color:#172332;font-weight:700}

.clause-edit{margin-bottom:.8rem}
.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}

.shirt{font-size:1.05rem;margin:.4rem 0}

.clause-read{border-top:1px solid #eceff4;padding:.9rem 0}
.clause-read:first-child{border-top:0}
.clause-read h4{margin:0 0 .5rem;font-size:.95rem}
.clause-read p{margin:0 0 .6rem;line-height:1.55}
#acta-preview .preamble{margin:0 0 1rem;color:#4a5568}

.evidence{margin-top:.4rem}
.evidence summary{cursor:pointer;font-size:.8rem;color:#2563eb}
.evidence ol{margin:.4rem 0 0;padding-left:1.1rem;font-size:.75rem;line-height:1.45}
.evidence li{margin-bottom:.3rem}

.list-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
.list-head p{margin:0}
.filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,minmax(140px,1fr)) auto;gap:10px;margin-bottom:10px}
#filter-info{margin:0 0 10px;font-size:12px}
.person-match{background:#f1f5fb;border-radius:10px;padding:10px 12px;margin-bottom:8px;font-size:13px;line-height:2}
.person-match .chip{display:inline-block}
.clause-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:11px;color:#62748d;margin:6px 0 10px}
.clause-legend strong{color:#172332}
.registrations th.clause-col,.registrations td.clause-col{text-align:center;padding:12px 6px;width:34px}
.mark{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:13px;font-weight:800}
.mark.ok{background:#e4f7ed;color:#168450}
.mark.no{background:#ffeded;color:#aa3030}
.mark.wait{color:#b0bccc}
.row-actions{display:grid;gap:6px;min-width:130px}
button.danger{background:#fdecec;color:#aa3030}
tr.cancelled td{color:#9aa6b6;background:#fafbfc}
tr.cancelled td strong{text-decoration:line-through}
dialog.editor{border:0;border-radius:16px;padding:24px;width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 40px);box-shadow:0 20px 60px #0003}
dialog.editor::backdrop{background:#0e234180}
.person-box{border:1px solid #e4eaf2;border-radius:12px;padding:12px 14px;display:grid;gap:10px}
.person-box legend{font-size:12px;font-weight:800;color:#1352ae;padding:0 6px}
@media(max-width:950px){.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.list-head{flex-direction:column}}
.shared{color:#1352ae;font-weight:700}
.import-notes{margin:.4rem 0 0;padding-left:1.1rem;font-size:12px;max-height:220px;overflow:auto}
.auth-card .ap-lockup{margin-bottom:26px}
.sidebar .side-lockup{margin:0 8px 32px}
.sidebar .side-lockup>img{height:42px}
.sidebar .side-lockup .ap-word{font-size:22px}
@media(max-width:950px){.sidebar .side-lockup{margin:0 0 12px}}
.auth-card h1{margin-bottom:22px}
.auth-card .auth-footer{justify-content:center;margin:26px -34px -34px;padding:14px;border-top:1px solid #edf0f5;background:#f8fafd;border-radius:0 0 18px 18px}
.camera-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.camera-picker{display:flex;gap:10px;align-items:center;flex:1;min-width:0}
.camera-picker select{flex:1;min-width:0}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.3px}
.access-card textarea{width:100%;resize:vertical;background:#f8fafd;border:1px solid #d7e0ec;border-radius:10px;padding:12px;font-size:13px;line-height:1.5;margin-bottom:12px}
.button-link{display:inline-block;text-decoration:none;border-radius:10px;padding:11px 17px;font-weight:700}
.button-link.secondary{background:#e9f0ff;color:#1352ae}
.generate-password{background:#e9f0ff!important;color:#1352ae!important}
.local-test{margin-top:10px;font-size:13px}.local-test summary{cursor:pointer;color:#1763de;font-weight:700}.local-test p{margin-top:8px}
#outbox-list td small{display:block;margin-top:2px;color:#68758a}
#outbox-list td strong{display:block}
.outbox-filters{grid-template-columns:minmax(220px,2fr) minmax(140px,1fr)}
.mail-state{display:inline-block;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:800}
.mail-state.ok{background:#e4f7ed;color:#168450}
.mail-state.wait{background:#fff4dc;color:#9a6400}
.mail-state.bad{background:#ffeded;color:#aa3030}
.mail-error{color:#aa3030!important;font-weight:700;max-width:340px;overflow-wrap:anywhere}
tr.mail-failed td{background:#fff8f8}
.bad-text{color:#aa3030}
#outbox-summary{margin:0}
