:root{--ink:#182021;--paper:#fbfaf5;--ivory:#f1eee5;--blue:#bed3df;--line:#c8c8c0;--muted:#68706f;--serif:"Noto Serif Thai",serif;--sans:"IBM Plex Sans Thai",sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--sans);background:var(--ivory)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}.admin-body{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.admin-sidebar{position:sticky;top:0;height:100vh;background:var(--ink);color:#fff;padding:28px 22px;display:flex;flex-direction:column}.admin-brand{display:grid;grid-template-columns:38px 1fr;align-items:center;margin-bottom:50px}.admin-brand span,.login-brand span{grid-row:1/3;width:34px;height:34px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-style:italic}.admin-brand strong{font-family:var(--serif);font-weight:400}.admin-brand small{color:#aeb8b7;font-size:.67rem;text-transform:uppercase;letter-spacing:.1em}.admin-sidebar nav{display:grid;gap:7px}.admin-sidebar nav a{padding:11px 14px;border-left:2px solid transparent;color:#bdc6c5}.admin-sidebar nav a:hover,.admin-sidebar nav a.active{background:#303a3b;color:#fff;border-color:var(--blue)}.sidebar-bottom{margin-top:auto;display:grid;gap:8px;font-size:.8rem}.sidebar-bottom a,.sidebar-bottom button{color:#b7c1c0;background:transparent;border:0;padding:8px 0;text-align:left;cursor:pointer}.admin-main{min-width:0}.admin-header{height:110px;padding:0 42px;border-bottom:1px solid var(--line);background:var(--paper);display:flex;align-items:center;justify-content:space-between}.admin-header p,.card-heading p,.form-section>div>p{margin:0;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.09em}.admin-header h1{font:400 2.2rem/1.2 var(--serif);margin:3px 0 0}.admin-user{display:flex;align-items:center;gap:12px;font-size:.85rem}.admin-user i{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--blue);font-style:normal}.admin-content{padding:36px 42px 70px;max-width:1500px}.admin-flash,.admin-errors{margin:22px 42px 0;padding:13px 18px;border:1px solid #7aa289;background:#e6f1e9}.admin-errors{border-color:#bb7c72;background:#f6e8e4}.admin-errors ul{margin:6px 0}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.stat-card{min-height:190px;padding:24px;background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column}.stat-card.blue{background:var(--blue)}.stat-card.dark{background:var(--ink);color:#fff}.stat-card span{font-size:.8rem}.stat-card strong{font:300 4rem/1 var(--serif);margin:18px 0}.stat-card a{font-size:.8rem;margin-top:auto;text-decoration:underline}.admin-card{background:var(--paper);border:1px solid var(--line)}.card-heading{padding:22px 24px;border-bottom:1px solid var(--line);display:flex;align-items:end;justify-content:space-between}.card-heading h2,.compact-form h2,.form-section h2{font:400 1.75rem/1.2 var(--serif);margin:3px 0}.admin-link{font-size:.8rem;text-decoration:underline}.data-row{display:grid;grid-template-columns:1.2fr 1.2fr .8fr .6fr;align-items:center;gap:20px;padding:15px 24px;border-bottom:1px solid #deded7;font-size:.85rem}.data-row>span{min-width:0}.data-row span:first-child{display:flex;flex-direction:column}.data-row small{color:var(--muted)}.table-head{background:var(--ivory);font-size:.7rem;text-transform:uppercase;letter-spacing:.07em}.empty-state{padding:50px 24px;text-align:center;color:var(--muted)}.status{font-style:normal;font-size:.7rem;padding:5px 9px;border-radius:99px;background:#eee;text-transform:uppercase}.status.pending{background:#f5dfb5}.status.confirmed,.status.completed{background:#d8eadb}.status.cancelled{background:#ead7d3}.page-actions{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-actions>p{color:var(--muted)}.admin-button{display:inline-flex;justify-content:center;gap:20px;background:var(--ink);color:#fff;border:1px solid var(--ink);padding:11px 18px;cursor:pointer}.admin-button:hover{background:#344040}.class-admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.admin-class-card{background:var(--paper);border:1px solid var(--line)}.admin-class-card>img{width:100%;aspect-ratio:1.6;object-fit:cover;border-bottom:1px solid var(--line)}.admin-class-card>div{padding:20px}.admin-class-card h2{font:400 1.6rem var(--serif);margin:12px 0 4px}.admin-class-card p{color:var(--muted);font-size:.86rem;min-height:54px}.admin-class-card small{color:var(--muted)}.inline-actions{display:flex;justify-content:space-between;margin-top:20px;padding-top:14px;border-top:1px solid var(--line);font-size:.82rem}.inline-actions button,.danger{border:0;background:transparent;color:#9a4036;cursor:pointer}.admin-form label{display:grid;gap:6px;font-size:.8rem;font-weight:500}.admin-form input,.admin-form textarea,.admin-form select,.bookings-table select{background:#fff;border:1px solid var(--line);padding:10px 11px;outline:none;width:100%}.admin-form input:focus,.admin-form textarea:focus,.admin-form select:focus{border-color:var(--ink);box-shadow:0 0 0 2px var(--blue)}.form-wide{padding:0}.form-section{display:grid;grid-template-columns:280px 1fr;gap:60px;padding:32px;border-bottom:1px solid var(--line)}.form-section>div>span{font-size:.83rem;color:var(--muted)}.form-fields{display:grid;gap:17px;max-width:720px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.checkbox{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:flex-start}.checkbox input{width:auto}.form-submit{padding:20px 32px;display:flex;align-items:center;justify-content:flex-end;gap:28px}.form-submit>a{font-size:.82rem}.schedule-admin-layout{display:grid;grid-template-columns:330px 1fr;gap:20px;align-items:start}.compact-form{padding:24px;display:grid;gap:16px;position:sticky;top:20px}.schedule-admin-list{display:grid}.schedule-admin-row{display:grid;grid-template-columns:120px 1fr auto auto;gap:18px;align-items:center;padding:14px 20px;border-bottom:1px solid #deded7}.day-box{display:flex;flex-direction:column}.schedule-admin-row>div:nth-child(2){display:flex;flex-direction:column}.schedule-admin-row small{color:var(--muted)}.filter-tabs{display:flex;gap:8px}.filter-tabs a{padding:8px 14px;border:1px solid var(--line);background:var(--paper);font-size:.8rem}.filter-tabs a.active{background:var(--ink);color:#fff}.bookings-table .data-row{grid-template-columns:1.1fr 1.1fr 1fr 1.4fr 130px}.bookings-table a{font-weight:500}.bookings-table form{display:block}.pagination{padding:18px}.pagination svg{width:18px}.pagination nav>div:first-child{display:none}.pagination nav>div:last-child{display:flex;justify-content:space-between;align-items:center}.login-page{min-height:100vh;display:grid;grid-template-columns:58% 42%;background:var(--paper)}.login-image{position:relative}.login-image img{width:100%;height:100vh;object-fit:cover}.login-image>a{position:absolute;left:30px;top:30px;background:var(--paper);padding:10px 16px;border:1px solid var(--ink);font-size:.8rem}.login-panel{padding:7vw;display:flex;flex-direction:column;justify-content:center}.login-brand{display:flex;align-items:center;gap:12px;font:400 1.4rem var(--serif);margin-bottom:60px}.login-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.login-panel h1{font:300 clamp(3rem,5vw,5.6rem)/1.15 var(--serif);margin:5px 0 18px;letter-spacing:-.04em}.login-panel>p:not(.login-kicker){color:var(--muted);max-width:440px}.login-panel .admin-form{display:grid;gap:17px;margin-top:24px}.login-panel .admin-button{margin-top:8px}.login-panel .admin-errors{margin:15px 0 0}@media(max-width:900px){.admin-body{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto;padding:16px}.admin-brand{margin-bottom:18px}.admin-sidebar nav{display:flex;overflow-x:auto}.sidebar-bottom{display:none}.admin-header{padding:0 22px}.admin-content{padding:24px 18px}.stat-grid,.class-admin-grid{grid-template-columns:1fr}.schedule-admin-layout{grid-template-columns:1fr}.compact-form{position:static}.form-section{grid-template-columns:1fr;gap:24px}.data-table{overflow-x:auto}.data-row{min-width:720px}.login-page{grid-template-columns:1fr}.login-image{display:none}.login-panel{padding:40px 24px}.bookings-table .data-row{min-width:980px}}
