*{box-sizing:border-box}
:root{
  --au:#145c45;--au-2:#1d7a5d;--au-dark:#0c3f30;--navy:#18344a;--gold:#c49a47;
  --text:#21302b;--muted:#6c7974;--bg:#f4f7f6;--card:#fff;--border:#dce6e2;
  --success:#137a48;--danger:#b93838;--warning:#9a6814;--info:#2d648e;
  --shadow:0 18px 55px rgba(23,54,43,.10);--radius:22px;
}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0;min-height:100%;font-family:Inter,"Segoe UI","Microsoft JhengHei",Arial,sans-serif;color:var(--text);background:var(--bg)}
body{background:
 radial-gradient(circle at 0 0,rgba(29,122,93,.12),transparent 28rem),
 radial-gradient(circle at 100% 12%,rgba(196,154,71,.09),transparent 22rem),
 linear-gradient(180deg,#f9fbfa 0,#f2f6f4 100%);}
a{color:var(--au);text-decoration:none}a:hover{text-decoration:none}
button,input,select,textarea{font:inherit}
.site-shell{min-height:100vh;display:flex;flex-direction:column}
.site-main{flex:1}
.public-topbar{height:6px;background:linear-gradient(90deg,var(--au-dark),var(--au-2),var(--gold))}
.public-nav{background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(220,230,226,.85);position:sticky;top:0;z-index:50}
.nav-inner{width:min(1180px,calc(100% - 30px));margin:auto;min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand-wrap{display:flex;align-items:center;gap:13px;min-width:0}
.brand-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(145deg,var(--au),var(--au-dark));display:grid;place-items:center;color:#fff;font-weight:900;letter-spacing:-1px;box-shadow:0 9px 24px rgba(20,92,69,.22)}
.brand-text{min-width:0}.brand-title{font-size:16px;font-weight:900;color:var(--au-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-sub{font-size:12px;color:var(--muted);margin-top:2px}
.nav-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.lang-switch{display:inline-flex;border:1px solid var(--border);background:#f7faf8;border-radius:999px;padding:3px;gap:2px}
.lang-switch a{padding:7px 10px;border-radius:999px;color:#64716c;font-size:13px;font-weight:800}.lang-switch a.active{background:#fff;color:var(--au);box-shadow:0 2px 8px rgba(26,64,50,.10)}
.container{width:min(1120px,calc(100% - 30px));margin:34px auto}
.hero{padding:36px 38px;border-radius:28px;color:#fff;background:linear-gradient(125deg,var(--au-dark) 0%,var(--au) 52%,#277b62 100%);position:relative;overflow:hidden;box-shadow:0 24px 65px rgba(15,70,52,.20);margin-bottom:22px}
.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.hero:before{width:340px;height:340px;right:-120px;top:-180px;border:1px solid rgba(255,255,255,.18)}.hero:after{width:250px;height:250px;right:75px;bottom:-200px;background:rgba(255,255,255,.05)}
.hero-kicker{font-size:13px;text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:#d8eee6;margin-bottom:10px}.hero h1{font-size:clamp(28px,4vw,42px);line-height:1.18;margin:0 0 10px;max-width:780px}.hero p{margin:0;color:#dfede8;font-size:16px;line-height:1.7;max-width:780px}
.hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:22px;align-items:end;position:relative;z-index:1}.hero-side{display:grid;gap:8px}.hero-chip{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.09);border-radius:14px;padding:11px 13px;font-size:13px;color:#edf7f3}.hero-chip strong{display:block;color:#fff;font-size:15px;margin-top:3px}
.card{background:rgba(255,255,255,.96);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}
.card.soft{box-shadow:0 12px 34px rgba(25,61,48,.06)}
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}.sidebar-stack{display:grid;gap:16px;position:sticky;top:98px}
.header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.title{font-size:30px;font-weight:900;letter-spacing:-.025em;margin:0 0 6px;color:var(--navy)}.subtitle{color:var(--muted);font-size:14px;line-height:1.6}
.section{margin-top:28px}.section:first-child{margin-top:0}.section-heading{display:flex;align-items:center;gap:11px;margin-bottom:16px}.section-icon{width:36px;height:36px;border-radius:11px;background:#e9f5f0;color:var(--au);display:grid;place-items:center;font-weight:900}.section-title{font-size:19px;font-weight:900;margin:0;color:var(--navy)}.section-sub{font-size:13px;color:var(--muted);margin-top:2px}
.info-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 22px}.info-cell{background:#f7faf8;border:1px solid var(--border);border-radius:15px;padding:14px}.info-cell .eyebrow{font-size:12px;color:var(--muted);font-weight:700}.info-cell strong{display:block;margin-top:4px;color:var(--au-dark);font-size:15px;line-height:1.45}
.notice{background:#f0f8f5;border:1px solid #cfe6dc;border-radius:15px;padding:15px 16px;line-height:1.75;color:#315045}.notice strong{color:var(--au-dark)}
.tip-card{background:#fffaf0;border:1px solid #ead9b2;border-radius:17px;padding:17px}.tip-title{font-weight:900;color:#72551d;margin-bottom:9px}.tip-list{margin:0;padding-left:19px;color:#705f3c;line-height:1.7;font-size:13px}.tip-list li+li{margin-top:5px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field-full{grid-column:1/-1}.field label{display:flex;justify-content:space-between;align-items:center;gap:10px;font-weight:800;margin-bottom:7px;color:#34433e}.field-hint{font-size:11px;color:#8a9792;font-weight:700}.req{color:#c33838}
input,select,textarea{width:100%;border:1px solid #cbd9d4;border-radius:12px;padding:12px 13px;font-size:15px;background:#fff;color:#16221e;transition:.18s ease}input:hover,select:hover,textarea:hover{border-color:#aebfb8}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--au-2);box-shadow:0 0 0 4px rgba(29,122,93,.11)}textarea{min-height:105px;resize:vertical}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:11px;padding:11px 16px;font-size:14px;font-weight:900;cursor:pointer;text-decoration:none;transition:.16s ease}.btn:hover{transform:translateY(-1px);text-decoration:none}.btn:disabled{opacity:.62;cursor:wait;transform:none}.btn-primary{background:linear-gradient(135deg,var(--au),var(--au-dark));color:#fff;box-shadow:0 9px 21px rgba(20,92,69,.18)}.btn-light{background:#f1f5f3;color:#30433b;border:1px solid #dce6e2}.btn-danger{background:#b93838;color:#fff}.btn-success{background:#187a4c;color:#fff}.btn-ghost{background:#fff;color:var(--au);border:1px solid var(--border)}.btn-sm{padding:7px 10px;font-size:12px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.actions.end{justify-content:flex-end}.actions .btn-primary{min-width:185px}
.slot-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px;color:var(--muted);font-size:13px}.slot-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.slot-group-title{grid-column:1/-1;margin-top:5px;font-size:12px;color:#6b7873;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.slot-item{position:relative}.slot-item input{position:absolute;opacity:0;pointer-events:none}.slot-item label{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:12px;border:1px solid #cbd9d4;border-radius:12px;cursor:pointer;background:#fff;font-weight:800;transition:.16s ease}.slot-item label .slot-state{font-size:11px;font-weight:900;color:var(--success);background:#ebf7f0;padding:4px 6px;border-radius:999px}.slot-item input:checked+label{border-color:var(--au);background:#edf7f3;color:var(--au-dark);box-shadow:0 0 0 3px rgba(29,122,93,.10)}.slot-item.disabled label{background:#f4f6f5;color:#9aa49f;cursor:not-allowed;border-style:dashed}.slot-item.disabled label .slot-state{color:#8e9894;background:#e9edeb}.slot-item.disabled label .slot-time{text-decoration:line-through}
.success-box{text-align:center;padding:8px 12px 20px}.success-icon{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;margin:0 auto 15px;background:#e9f7ef;color:var(--success);font-size:38px;font-weight:900;box-shadow:inset 0 0 0 8px #f4fbf7}
.info-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:18px;border:1px solid var(--border);border-radius:15px;overflow:hidden}.info-table th,.info-table td{padding:12px 14px;border-bottom:1px solid #e6eeeb;text-align:left;vertical-align:top}.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:0}.info-table th{width:185px;color:#55635e;background:#f7faf8;font-size:13px}.info-table td{font-weight:650}
.alert{padding:13px 15px;border-radius:12px;margin:14px 0;line-height:1.6}.alert.error{background:#fff0f0;border:1px solid #efcccc;color:#912c2c}.alert.ok{background:#ecf8f1;border:1px solid #cce7d7;color:#176b42}.small{font-size:12px;color:var(--muted)}
.site-footer{padding:26px 15px 30px;text-align:center;color:#77837f;font-size:12px}
/* admin */
.admin-body{background:#f1f5f3}.topnav{background:#103c2f;color:#fff;box-shadow:0 8px 25px rgba(8,47,35,.14);position:sticky;top:0;z-index:60}.topnav .inner{width:min(1220px,calc(100% - 28px));margin:auto;min-height:68px;display:flex;justify-content:space-between;align-items:center;gap:14px}.topnav .brand{font-weight:900;display:flex;align-items:center;gap:10px}.topnav .brand-mini{width:34px;height:34px;border-radius:10px;background:#fff;color:var(--au-dark);display:grid;place-items:center;font-weight:1000}.topnav .links{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.topnav .links>a{color:#dfece7;padding:9px 11px;border-radius:9px;font-size:13px;font-weight:800}.topnav .links>a:hover{background:rgba(255,255,255,.09);color:#fff}.topnav .lang-switch{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16)}.topnav .lang-switch a{color:#dfece7}.topnav .lang-switch a.active{background:#fff;color:var(--au-dark)}
.admin-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0 24px}.stat{background:#fff;border:1px solid var(--border);border-radius:17px;padding:18px;box-shadow:0 8px 25px rgba(28,60,48,.05)}.stat .num{font-size:32px;font-weight:950;color:var(--navy)}.stat .label{color:var(--muted);margin-top:5px;font-size:13px}.stat .accent{width:34px;height:5px;border-radius:999px;background:linear-gradient(90deg,var(--au),var(--gold));margin-bottom:13px}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:15px;background:#fff}.table{width:100%;border-collapse:collapse;min-width:920px}.table th,.table td{padding:11px 12px;border-bottom:1px solid #e6ece9;text-align:left;vertical-align:middle;font-size:13px}.table th{background:#f7faf8;white-space:nowrap;color:#586761;font-size:12px;text-transform:uppercase;letter-spacing:.02em}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fbfdfc}
.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900;background:#eef2f1;color:#334540;white-space:nowrap}.badge.blue{background:#eaf3f9;color:#285f83}.badge.green{background:#e7f6ed;color:#167044}.badge.red{background:#fceaea;color:#a72f2f}.badge.gray{background:#ecefed;color:#67736e}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin:16px 0}.filters>div{min-width:165px}.filters .grow{flex:1;min-width:230px}.filters label{font-size:12px;font-weight:850;color:#596862;display:block;margin-bottom:6px}
.pagination{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}.pagination a,.pagination span{padding:8px 11px;border:1px solid var(--border);border-radius:9px;background:#fff;font-size:13px}.pagination .current{background:var(--au);color:#fff;border-color:var(--au)}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:30px}.login-card{width:min(480px,100%);background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow);overflow:hidden}.login-head{background:linear-gradient(135deg,var(--au-dark),var(--au));padding:28px;color:#fff}.login-head .brand-mark{background:#fff;color:var(--au-dark);box-shadow:none}.login-body{padding:28px}.login-foot{margin-top:18px;text-align:center}
@media(max-width:900px){.content-grid{grid-template-columns:1fr}.sidebar-stack{position:static}.hero-grid{grid-template-columns:1fr}.hero-side{grid-template-columns:repeat(2,minmax(0,1fr))}.info-strip{grid-template-columns:1fr}.slot-list{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.container{margin:20px auto}.card{padding:20px;border-radius:18px}.grid{grid-template-columns:1fr}.field-full{grid-column:auto}.hero{padding:27px 22px;border-radius:22px}.hero-side{grid-template-columns:1fr}.header,.admin-head{flex-direction:column;align-items:flex-start}.title{font-size:25px}.nav-inner{min-height:66px}.brand-sub{display:none}.nav-actions>.btn{display:none}.topnav .inner{padding:9px 0;align-items:flex-start}.topnav .links{justify-content:flex-end}.stats{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.slot-list{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.brand-title{font-size:14px}.brand-mark{width:39px;height:39px}.lang-switch a{padding:6px 8px}.hero h1{font-size:27px}}

/* Enrollment check-in document checklist */
.bring-card{background:linear-gradient(180deg,#fff,#fbfdfc);border:1px solid var(--border);border-radius:17px;padding:18px;box-shadow:0 12px 34px rgba(25,61,48,.06)}
.bring-card-head{display:flex;align-items:flex-start;gap:11px}.bring-icon{flex:0 0 34px;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#e9f5f0;color:var(--au);font-weight:950}.bring-card-title{font-size:15px;font-weight:950;color:var(--navy);line-height:1.35;margin-bottom:3px}.bring-quick-list{margin:13px 0 14px;padding:0;list-style:none;display:grid;gap:7px}.bring-quick-list li{position:relative;padding-left:20px;font-size:12px;line-height:1.45;color:#52625c}.bring-quick-list li:before{content:'✓';position:absolute;left:0;top:0;color:var(--au);font-weight:950}.bring-full-link{width:100%}
.fee-warning{display:flex;gap:12px;align-items:flex-start;background:#fff7e7;border:1px solid #ead5a4;border-radius:14px;padding:14px 15px;color:#684f1d}.fee-warning.compact{display:block;margin:13px 0;padding:11px 12px}.fee-warning strong{display:block;font-size:14px;color:#6a4b0f}.fee-warning>div>span,.fee-warning.compact>span{display:block;font-size:12px;line-height:1.55;margin-top:2px}.fee-warning-icon{flex:0 0 28px!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;border-radius:50%;background:#f0c867;color:#543a00;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:18px!important;line-height:1!important;margin:0!important;padding:0!important;font-family:Arial,sans-serif;font-weight:900;vertical-align:top}
.checklist-panel{margin-top:24px;background:#fff;border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);padding:28px;scroll-margin-top:92px}.checklist-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.checklist-head .eyebrow{font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--au);text-transform:uppercase}.checklist-head h2{font-size:24px;line-height:1.25;margin:5px 0 6px;color:var(--navy)}.checklist-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.65;max-width:760px}.checklist-complete{margin:18px 0;padding:16px;border-radius:15px;background:#f5faf8;border:1px solid #dbeae4}.checklist-complete h3,.verify-box h3{font-size:14px;margin:0 0 10px;color:var(--au-dark)}.checklist-section-title{font-size:16px;margin:22px 0 12px;color:var(--navy)}.document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.document-item,.check-item{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid #e0e8e5;border-radius:13px;background:#fbfdfc;min-height:78px}.check-item.pre-item{min-height:auto;background:#fff}.check-box{flex:0 0 18px;width:18px;height:18px;border:2px solid #a9bbb4;border-radius:4px;margin-top:1px;background:#fff}.document-no{flex:0 0 22px;width:22px;height:22px;border-radius:7px;background:#e9f5f0;color:var(--au-dark);display:grid;place-items:center;font-size:11px;font-weight:900}.document-copy{min-width:0}.document-copy strong{display:block;color:#273831;font-size:13px;line-height:1.4}.document-copy span{display:block;color:#718079;font-size:11px;line-height:1.5;margin-top:3px}.verify-box{margin-top:18px;padding:16px 17px;border-left:4px solid var(--au);background:#f4f8f6;border-radius:0 13px 13px 0}.verify-box p{margin:0;color:#586a63;font-size:12px;line-height:1.75}.checklist-source-note{margin-top:11px;color:#8a9792;font-size:11px;text-align:right}
@media(max-width:760px){.document-grid{grid-template-columns:1fr}.checklist-head{flex-direction:column}.checklist-panel{padding:20px}.print-checklist{width:100%}}
@media print{.public-topbar,.public-nav,.site-footer,.hero,.content-grid,.actions,.print-checklist{display:none!important}.site-main{padding:0!important}.container{width:100%!important;margin:0!important}.checklist-panel{box-shadow:none!important;border:0!important;margin:0!important;padding:0!important}.document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.document-item{break-inside:avoid}.fee-warning,.verify-box{break-inside:avoid}}

/* Database-driven booking settings */
.checkline{display:flex!important;align-items:center;gap:10px;font-weight:800}
.checkline input{width:auto;min-width:18px;height:18px}
.table td input[type="time"],.table td input[type="number"],.table td select{padding:8px 9px;border-radius:8px;font-size:13px}
@media(max-width:900px){.topnav .links{max-width:72%;justify-content:flex-end}}
