@import "https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@400;500;600;700&display=swap";:root{--navy:#0f2a4a;--navy-dark:#081a30;--gold:#b8934a;--bg:#f4f6f9;--card:#fff;--border:#dde3ea;--text:#1c2a3a;--muted:#64748b;--danger:#c0392b;--success:#1e8449;--radius:12px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Noto Sans Thai,system-ui,sans-serif}.page{justify-content:center;min-height:100vh;padding:24px 16px 48px;display:flex}.page--center{align-items:center}.page--wide{width:100%;max-width:1200px;margin:0 auto;display:block}.card{background:var(--card);border-radius:var(--radius);width:100%;max-width:720px;padding:28px;box-shadow:0 2px 16px #0f2a4a14}.card--narrow{max-width:380px}.card--success{text-align:center}.success-icon{background:var(--success);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 16px;font-size:32px;display:flex}.form-header{text-align:center;border-bottom:3px solid var(--gold);margin-bottom:24px;padding-bottom:16px}.form-header h1{color:var(--navy);margin:0 0 4px;font-size:1.4rem}.form-header__subtitle{color:var(--muted);margin:0;font-size:.85rem}.form-grid{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:8px;display:grid}.form-grid--3{grid-template-columns:repeat(3,1fr)}.field{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.field--full{grid-column:1/-1}.field label{color:var(--navy);font-size:.9rem;font-weight:600}.req{color:var(--danger);margin-left:2px}.field input,.search-form input{border:1.5px solid var(--border);color:var(--text);background:#fff;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:1rem}.field input:focus,.search-form input:focus{border-color:var(--navy);outline:none}.fieldset{border:1.5px solid var(--border);border-radius:var(--radius);margin:18px 0;padding:16px}.fieldset legend{color:var(--navy);padding:0 8px;font-weight:600}.photo-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.photo-slot__label{color:var(--navy);margin-bottom:8px;font-weight:600}.photo-slot__preview{aspect-ratio:1;border:2px dashed var(--border);background:#f8fafc;border-radius:10px;justify-content:center;align-items:center;margin-bottom:10px;display:flex;position:relative;overflow:hidden}.photo-slot__preview img{object-fit:cover;width:100%;height:100%}.photo-slot__placeholder{color:var(--muted);font-size:.85rem}.photo-slot__busy{background:#ffffffd9;justify-content:center;align-items:center;font-size:.85rem;display:flex;position:absolute;inset:0}.photo-slot__actions{flex-wrap:wrap;gap:8px;display:flex}.btn{cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-family:inherit;font-size:.95rem;transition:filter .15s}.btn:hover{filter:brightness(.95)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--navy);color:#fff}.btn--ghost{color:var(--navy);background:#eef1f5}.btn--danger-ghost{color:var(--danger);background:#fbeceb}.btn--sm{padding:6px 10px;font-size:.8rem}.btn--block{width:100%}.form-actions{margin-top:20px}.alert{border-radius:8px;margin:12px 0;padding:10px 14px;font-size:.9rem}.alert--error{color:var(--danger);background:#fbeceb}.honeypot{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.admin-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.admin-toolbar h1{color:var(--navy);margin:0;font-size:1.2rem}.admin-toolbar__actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search-form{gap:6px;display:flex}.table-wrap{background:var(--card);border-radius:var(--radius);overflow:auto;box-shadow:0 2px 16px #0f2a4a14}.admin-table{border-collapse:collapse;width:100%;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px}.admin-table th{background:var(--navy);color:#fff;position:sticky;top:0}.thumb-group{gap:4px;display:flex}.thumb{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:44px;height:44px}.empty-row{text-align:center;color:var(--muted);padding:32px!important}.page-footer{text-align:center;border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.admin-link{color:var(--muted);font-size:.8rem;text-decoration:none}.admin-link:hover{color:var(--navy);text-decoration:underline}@media (width<=640px){.form-grid,.form-grid--3{grid-template-columns:1fr}.card{padding:20px}}
