:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#162521;font-synthesis:none;text-rendering:optimizelegibility;--brand:#125c50;--brand-strong:#0b463c;--brand-soft:#e2f1ed;--ink:#162521;--muted:#60716c;--line:#d9e2df;--surface:#fff;--danger:#b42318;--warning:#a15c00;--shadow:0 14px 40px #0d372f17;--radius:16px;background:#f4f7f5;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{background:radial-gradient(circle at 100% 0,#e7f4f0 0,#0000 38%),#f4f7f5;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,input,select{min-height:44px}button{cursor:pointer}a{color:var(--brand)}:focus-visible{outline-offset:2px;outline:3px solid #125c504d}.page{width:min(1120px,100% - 32px);margin:0 auto;padding:32px 0 96px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #d9e2dfe6}.button{background:var(--brand);color:#fff;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 18px;font-weight:650;text-decoration:none;display:inline-flex}.button:hover{background:var(--brand-strong)}.button.secondary{border-color:var(--line);color:var(--ink);background:#fff}.button.secondary:hover{background:#f7faf9}.button.danger{background:var(--danger)}.button:disabled{cursor:not-allowed;opacity:.55}.field-error,.error-banner{color:var(--danger)}.error-banner{background:#fff4f2;border:1px solid #f3b4ae;border-radius:10px;padding:12px 14px}.success-banner{color:#0b604c;background:#effaf6;border:1px solid #a9d7c9;border-radius:10px;padding:12px 14px}.muted{color:var(--muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.eyebrow{color:var(--brand);letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;font-size:.76rem;font-weight:800}.auth-page{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{width:min(460px,100%);padding:32px}.auth-card h1{margin:0 0 10px;font-size:clamp(1.75rem,6vw,2.35rem);line-height:1.12}.auth-card form{gap:10px;margin-top:28px;display:grid}.auth-card label,.form-field label{font-weight:700}.auth-card input,.form-field input,.form-field select,.form-field textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #bfcfca;border-radius:10px;padding:10px 12px}.auth-card input:focus,.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--brand);outline:0;box-shadow:0 0 0 3px #125c501f}.admin-entry{margin-top:24px;font-size:.9rem;display:inline-block}.app-header{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;position:sticky;top:0}.header-inner{align-items:center;gap:14px;width:min(1200px,100% - 24px);min-height:64px;margin:0 auto;display:flex}.brand{color:var(--ink);flex:none;font-weight:850;text-decoration:none}.header-inner nav{flex:1;gap:4px;padding:8px 0;display:flex;overflow-x:auto}.header-inner nav a{white-space:nowrap;color:var(--muted);border-radius:8px;padding:9px 11px;font-size:.88rem;text-decoration:none}.header-inner nav a.router-link-exact-active{background:var(--brand-soft);color:var(--brand-strong);font-weight:700}.link-button{min-height:40px;color:var(--brand);background:0 0;border:0;font-weight:700}.page-title{margin-bottom:24px}.page-title h1{margin:0;font-size:clamp(1.8rem,5vw,2.6rem)}.loading-card{padding:24px}.progress-card{gap:16px;padding:24px;display:grid}.progress-card strong{color:var(--brand);font-size:2.6rem}.progress-track{background:#dfebe7;border-radius:99px;height:10px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--brand);height:100%;display:block}.photo-card{gap:22px;margin-top:20px;padding:24px;display:grid}.photo-card h2,.section-heading h2,.preview-section h2,.complete-panel h2{margin:0}.photo-uploader{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.photo-frame{text-align:center;background:#f7faf9;border:1px dashed #9eb5ae;border-radius:12px;place-items:center;width:132px;height:176px;display:grid;overflow:hidden}.photo-frame img{object-fit:cover;width:100%;height:100%}.photo-controls{flex-wrap:wrap;flex:1;align-items:flex-start;gap:10px;min-width:220px;display:flex}.photo-controls small{flex-basis:100%}.section-grid{gap:12px;margin:20px 0;display:grid}.section-card{min-height:92px;color:var(--ink);justify-content:space-between;align-items:center;padding:18px;text-decoration:none;display:flex}.section-card:hover{border-color:#94b9af;transform:translateY(-1px)}.section-card span:first-child{gap:5px;display:grid}.section-card small{color:var(--muted)}.preview-button{width:100%}.section-form{padding:20px}.form-grid{gap:18px;display:grid}.form-field{align-content:start;gap:7px;display:grid}.form-field label span{color:var(--danger)}.field-hint{color:var(--muted)}.save-bar{z-index:15;border:1px solid var(--line);background:#fffffff7;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;min-height:68px;margin-top:20px;padding:12px 14px;display:flex;position:sticky;bottom:12px;box-shadow:0 12px 36px #0d372f26}.save-actions{gap:8px;display:flex}.save-ok{color:var(--brand);font-weight:700}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.section-heading p{margin:4px 0 0}.repeat-card{border:1px solid var(--line);border-radius:12px;margin:16px 0 0;padding:22px 16px 18px;position:relative}.repeat-card legend{padding:0 7px;font-weight:800}.remove-button{min-height:36px;color:var(--danger);background:0 0;border:0;position:absolute;top:8px;right:10px}.preview-section{margin-bottom:16px;padding:22px}.preview-heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.preview-heading img{object-fit:cover;border-radius:10px;width:96px;height:128px}.preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0 0;display:grid}.preview-grid div{min-width:0}.preview-grid dt{color:var(--muted);font-size:.8rem}.preview-grid dd{overflow-wrap:anywhere;margin:4px 0 0}.preview-row{border-top:1px solid var(--line);gap:4px;padding:14px 0;display:grid}.preview-row:first-of-type{border-top:0}.preview-row span{color:var(--muted)}.complete-panel{justify-content:space-between;align-items:center;gap:18px;padding:22px;display:flex}.admin-header{border-top:4px solid #203f75}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:14px;margin-bottom:16px;padding:16px;display:flex}.filter-form{flex-wrap:wrap;flex:1;align-items:end;gap:10px;display:flex}.filter-form label:not(.check-label){gap:5px;min-width:170px;font-weight:700;display:grid}.filter-form input[type=search],.filter-form select{background:#fff;border:1px solid #bfcfca;border-radius:9px;width:100%;min-height:44px;padding:8px 10px}.check-label{align-items:center;gap:7px;min-height:44px;font-weight:700;display:flex}.check-label input{min-height:auto}.toolbar-actions{flex-wrap:wrap;gap:9px;display:flex}.table-card{overflow:hidden}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:14px 12px}th{color:var(--muted);letter-spacing:.04em;background:#f4f8f6;font-size:.78rem}tbody tr:hover{background:#fafcfb}tbody tr.deleted{opacity:.72}td input[type=checkbox],th input[type=checkbox]{width:18px;height:18px;min-height:auto;accent-color:var(--brand)}.empty-table{text-align:center;color:var(--muted);padding:36px}.status-pill{color:#4d5d58;background:#edf2f0;border-radius:99px;margin-right:10px;padding:4px 9px;font-size:.78rem;font-weight:800;display:inline-flex}.status-pill.complete{color:#0a664e;background:#def4eb}.status-pill.deleted{color:#a33328;background:#fee9e7}.table-action{min-height:auto;color:var(--brand);background:0 0;border:0;padding:0;font-weight:750;text-decoration:none}.pagination{justify-content:center;align-items:center;gap:16px;margin-top:18px;display:flex}.admin-edit-card{padding:24px}.admin-profile-form>section{border-top:1px solid var(--line);padding:22px 0}.admin-profile-form>section:first-child{border-top:0;padding-top:0}.admin-profile-form h2{margin:0 0 18px}.admin-profile-form.readonly input:disabled,.admin-profile-form.readonly textarea:disabled{opacity:1;color:var(--ink);-webkit-text-fill-color:var(--ink);background:#f6f9f8;border-color:#0000}.edit-actions{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffffff7;border-radius:12px;justify-content:flex-end;gap:9px;margin-top:20px;padding:12px;display:flex;position:sticky;bottom:12px}.admin-photo-section{gap:20px;margin-top:18px;padding:24px;display:grid}.detail-back{margin-bottom:16px}.detail-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;padding:16px;display:flex}.detail-actions>div{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.detail-photo{align-items:center;gap:15px;margin-bottom:16px;padding:16px;display:flex}.detail-photo img{object-fit:cover;border-radius:9px;width:90px;height:120px}.dialog-backdrop{z-index:100;background:#0a19158f;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{width:min(440px,100%);padding:24px}.confirm-dialog h2{margin:0}.dialog-actions{justify-content:flex-end;gap:9px;margin-top:24px;display:flex}@media (width>=768px){.page{width:min(1120px,100% - 64px);padding-top:48px}.photo-card{grid-template-columns:1fr 1.25fr;align-items:center}.section-grid,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.full-field,.preview-grid .wide{grid-column:1/-1}.section-form{padding:28px}.admin-photo-section{grid-template-columns:.7fr 1.3fr;align-items:center}}@media (width<=620px){.header-inner{flex-wrap:wrap;align-items:flex-start;padding-top:10px}.header-inner nav{flex-basis:100%;order:3}.save-bar,.complete-panel{flex-direction:column;align-items:stretch}.save-actions{justify-content:flex-end}.preview-grid{grid-template-columns:1fr}.admin-toolbar,.detail-actions{flex-direction:column;align-items:stretch}.toolbar-actions .button{flex:1}}@media (prefers-reduced-motion:no-preference){button,a,input,select,textarea{transition:background-color .15s,border-color .15s,box-shadow .15s,transform .15s}}
