:root{--ink:#1f2a22;--ink-soft:#4a5449;--paper:#eceee2;--paper-alt:#e1e4d5;--card:#fbfaf6;--clay:#8a6f5c;--clay-dark:#6e574a;--gold:#c9a66b;--moss:#5b7a5b;--moss-bg:#e4ebe2;--warn:#b5533c;--warn-bg:#f3e3dd;--pending:#a6863f;--pending-bg:#f3ecd9;--line:#d6d2c0;--shadow:0 1px 2px #1f2a220f, 0 8px 24px -12px #1f2a222e;--radius:16px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Work Sans,sans-serif}h1,h2,h3,.display{letter-spacing:-.01em;margin:0;font-family:Fraunces,serif;font-weight:600}.mono{font-family:IBM Plex Mono,monospace}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}::selection{background:var(--gold);color:var(--ink)}.topbar{border-bottom:1px solid var(--line);backdrop-filter:blur(6px);z-index:50;background:#eceee2eb;justify-content:space-between;align-items:center;padding:20px clamp(20px,5vw,56px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;display:flex}.brand-mark{background-image:url(/assets/image/logo.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:50%;width:34px;height:34px}.brand-name{font-family:Fraunces,serif;font-size:19px;font-weight:600}.brand-sub{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.nav-links{background:var(--paper-alt);border:1px solid var(--line);border-radius:999px;padding:4px;display:flex}.nav-links a{color:var(--ink-soft);border-radius:999px;padding:9px 18px;font-size:13px;font-weight:600;transition:all .2s}.nav-links a.active{background:var(--ink);color:var(--paper)}main{max-width:1180px;margin:0 auto;padding:clamp(20px,5vw,56px)}.hero{border-radius:var(--radius);isolation:isolate;min-height:440px;color:var(--card);background-image:linear-gradient(#141a1426 0%,#141a148c 68%,#141a14d1 100%),url(https://images.unsplash.com/photo-1646941785701-892dc6652a3a?w=1800&q=80&auto=format&fit=crop);background-position:50% 30%;background-size:cover;grid-template-columns:1.2fr 1fr;align-items:end;gap:40px;margin:0 0 44px;padding:44px clamp(20px,4vw,48px);display:grid;position:relative;overflow:hidden}.hero h1{color:var(--card);font-size:clamp(32px,4.4vw,52px);line-height:1.05}.hero p.lead{color:#fbfaf6db;max-width:46ch;margin-top:14px;font-size:16px;line-height:1.55}.hero-tag{text-transform:uppercase;letter-spacing:.12em;color:var(--gold);align-items:center;gap:8px;margin-bottom:14px;font-size:11px;font-weight:700;display:inline-flex}.hero-tag:before{content:"";background:var(--gold);width:16px;height:1px}.breath{backdrop-filter:blur(2px);border:1px solid #fbfaf666;border-radius:50%;justify-content:center;justify-self:end;align-items:center;width:130px;height:130px;display:flex;position:relative}.breath:before{content:"";background:radial-gradient(circle at 35% 30%, var(--gold), var(--clay) 70%);opacity:.92;border-radius:50%;animation:5.2s ease-in-out infinite breathe;position:absolute;inset:14px}.breath span{z-index:2;color:var(--card);letter-spacing:.1em;text-transform:uppercase;text-align:center;padding:0 6px;font-size:10.5px;font-weight:600;position:relative}@keyframes breathe{0%,to{transform:scale(.82)}50%{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.breath:before{animation:none}}.page-head{margin:0 0 26px}.page-head .eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--clay-dark);font-size:11px;font-weight:700}.page-head h1{margin-top:6px;font-size:32px}.section-head{justify-content:space-between;align-items:baseline;margin-bottom:18px;display:flex}.section-head h2{font-size:24px}.section-head .count{color:var(--ink-soft);font-size:13px}.class-grid{gap:14px;display:grid}.class-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:auto 1fr auto auto;align-items:center;gap:22px;padding:20px 22px;display:grid}.class-time{text-align:center;border-right:1px solid var(--line);min-width:104px;padding-right:20px;font-family:IBM Plex Mono,monospace}.class-time .t{font-size:20px;font-weight:600}.class-time .date-stack{flex-direction:column;gap:4px;display:flex}.class-time .date-day{color:var(--ink);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700}.class-time .date-full{color:var(--ink-soft);font-size:12px;line-height:1.4}.class-info h3{margin-bottom:4px;font-size:18px}.class-info .meta{color:var(--ink-soft);flex-wrap:wrap;gap:10px;font-size:13px;display:flex}.tag{background:var(--paper-alt);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:600;display:inline-block}.mats{align-items:center;gap:5px;display:flex}.mat-dot{border:1.4px solid var(--clay-dark);border-radius:2px;width:9px;height:9px}.mat-dot.filled{background:var(--clay-dark)}.mats-label{color:var(--ink-soft);margin-top:6px;font-size:11px}.class-price{text-align:right}.class-price .amount{font-family:IBM Plex Mono,monospace;font-size:16px;font-weight:600}.btn{border:none;border-radius:10px;align-items:center;gap:6px;padding:11px 18px;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--clay-dark)}.btn-primary:disabled{background:var(--line);color:var(--ink-soft);cursor:not-allowed}.btn-ghost{color:var(--ink);border:1px solid var(--line);background:0 0}.btn-delete-class{color:#dc2626;background:0 0;border:1px solid #fecaca;border-radius:8px;justify-content:center;align-items:center;min-width:38px;min-height:38px;padding:8px 10px;display:inline-flex}.btn-delete-class:hover{background:#cc0808;border-color:#f87171}.delete-icon{font-size:16px;line-height:1}.btn-ghost:hover{border-color:var(--ink)}.btn-block{justify-content:center;width:100%}.btn-sm{border-radius:8px;padding:7px 12px;font-size:12px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);max-width:560px;margin:0 auto;padding:32px}.panel-head{margin-bottom:22px}.panel-head .eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--clay-dark);font-size:11px;font-weight:700}.panel-head h2{margin-top:6px;font-size:24px}.field{margin-bottom:16px}.field label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field input,.field select{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);border-radius:10px;padding:11px 13px;font-family:inherit;font-size:14px}.field input:focus,.field select:focus{outline:2px solid var(--clay);outline-offset:1px}.summary-line{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;font-size:14px;display:flex}.summary-line:last-of-type{border-bottom:none}.summary-value{text-align:right;justify-content:flex-end;max-width:62%;display:flex}.summary-total{font-size:16px;font-weight:700}.wa-status{color:var(--ink-soft);flex-direction:column;align-items:flex-end;gap:4px;font-size:13px;display:flex}.wa-status.success{color:var(--moss);font-weight:700}.wa-status.error{border:1px solid var(--line);background:var(--paper-alt);border-radius:10px;align-items:flex-end;padding:8px 10px}.wa-helper{color:var(--ink-soft);max-width:230px;font-size:12px}.wa-action-btn{background:var(--ink);color:var(--paper);border-radius:999px;justify-content:center;align-items:center;margin-top:2px;padding:9px 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.wa-action-btn:hover{background:var(--clay-dark)}.bank-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:6px;display:grid}.bank-opt{border:1.5px solid var(--line);text-align:center;letter-spacing:.03em;background:var(--paper);border-radius:10px;padding:12px 8px;font-size:13px;font-weight:700}.bank-opt.selected{border-color:var(--ink);background:var(--ink);color:var(--paper)}.va-card{background:var(--ink);color:var(--paper);border-radius:var(--radius);margin-bottom:20px;padding:26px 28px}.va-card .bank-name{text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-size:13px;font-weight:700}.va-number{letter-spacing:.02em;word-break:break-all;margin:10px 0 4px;font-family:IBM Plex Mono,monospace;font-size:28px;font-weight:600}.va-copy{color:var(--paper);background:#fbfaf61f;border:1px solid #fbfaf640;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600}.va-copy:hover{background:#fbfaf638}.countdown{color:var(--paper);opacity:.85;align-items:center;gap:10px;margin-top:16px;font-size:13px;display:flex}.countdown .clock{color:var(--gold);font-family:IBM Plex Mono,monospace;font-size:15px;font-weight:600}.steps{border:1px solid var(--line);border-radius:var(--radius);margin-bottom:20px;overflow:hidden}.step-row{border-bottom:1px solid var(--line);color:var(--ink-soft);padding:14px 18px;font-size:13.5px}.step-row:last-child{border-bottom:none}.step-row b{color:var(--ink)}.status-banner{border-radius:10px;align-items:center;gap:10px;margin-bottom:18px;padding:11px 16px;font-size:13px;font-weight:600;display:flex}.status-banner.pending{background:var(--pending-bg);color:var(--pending)}.status-banner.paid{background:var(--moss-bg);color:var(--moss)}.status-banner.expired{background:var(--warn-bg);color:var(--warn)}.dot-pulse{background:currentColor;border-radius:50%;width:8px;height:8px;animation:1.4s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.confirm-mark{background:var(--moss-bg);width:56px;height:56px;color:var(--moss);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:26px;display:flex}.confirm-mark.anomaly{background:var(--warn-bg);color:var(--warn)}.center-text{text-align:center}.anomaly-card{border:1px solid var(--warn-bg);text-align:left;background:linear-gradient(135deg,#fff7f2 0%,#fdf2eb 100%);border-radius:12px;margin:0 0 20px;padding:16px 18px}.anomaly-title{color:var(--warn);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:13px;font-weight:700}.anomaly-card p{color:var(--ink-soft);margin:0 0 8px;font-size:14px;line-height:1.5}.anomaly-list{color:var(--ink-soft);gap:4px;margin:0;padding-left:18px;font-size:13px;display:grid}.kpi-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px;display:grid}.kpi-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.kpi-card .label{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}.kpi-card .value{margin-top:6px;font-family:Fraunces,serif;font-size:28px}.kpi-card .sub{color:var(--ink-soft);margin-top:2px;font-size:12px}.dash-grid{grid-template-columns:2fr 1fr;align-items:start;gap:24px;display:grid}.filter-row{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.filter-chip{border:1px solid var(--line);background:var(--card);color:var(--ink-soft);border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:600}.filter-chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}table{border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);width:100%;overflow:hidden}thead th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);background:var(--paper-alt);border-bottom:1px solid var(--line);padding:12px 14px;font-size:11px}tbody td{border-bottom:1px solid var(--line);padding:13px 14px;font-size:13.5px}tbody tr:last-child td{border-bottom:none}.full-width{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:6px;width:100%;margin-top:4px;padding:10px}.roster-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:12px;padding:16px;transition:border-color .2s;box-shadow:0 2px 4px #00000008}.roster-card:hover{border-color:#cbd5e1}.badge{border-radius:12px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-block}.badge.paid{color:#166534;background-color:#dcfce7}.badge.pending{color:#854d0e;background-color:#fef08a}.badge.expired{color:#991b1b;background-color:#fee2e2}.roster-card h3{margin-bottom:8px;font-size:15px}.occ-bar{background:var(--paper-alt);border-radius:999px;height:6px;margin:8px 0 6px;overflow:hidden}.occ-fill{background:var(--clay-dark);height:100%}.roster-meta{color:var(--ink-soft);justify-content:space-between;font-size:12px;display:flex}.add-class-container{margin-bottom:32px;padding:0}.add-class-container h3{text-transform:uppercase;letter-spacing:.05em;color:var(--clay-dark);margin:0 0 12px;font-size:14px;font-weight:700}.add-class-form{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px;display:grid}.add-class-form input,.add-class-form select,.add-class-form .btn{box-sizing:border-box;border-radius:8px;height:42px;margin:0;padding:0 12px;font-size:13px}.add-class-form input,.add-class-form select{background:var(--card);border:1px solid #d6d2c099}.add-class-form input:focus,.add-class-form select:focus{outline:2px solid var(--clay);border-color:#0000}.add-class-form .btn{justify-content:center;width:100%;line-height:1}.notice{background:var(--paper-alt);border:1px dashed var(--line);color:var(--ink-soft);border-radius:12px;margin-bottom:20px;padding:12px 16px;font-size:12.5px}.table-wrap{border-radius:var(--radius);overflow-x:auto}.login-wrap{justify-content:center;align-items:center;min-height:calc(100vh - 140px);padding:20px 0;display:flex}.login-mark{background:conic-gradient(from 220deg, var(--clay), var(--gold), var(--moss), var(--clay));border-radius:50%;width:44px;height:44px;margin:0 auto 16px}.demo-creds{background:var(--paper-alt);border:1px dashed var(--line);color:var(--ink-soft);border-radius:10px;margin-bottom:18px;padding:10px 14px;font-size:12.5px}.demo-creds b{color:var(--ink)}footer{text-align:center;color:var(--ink-soft);padding:30px;font-size:12px}@media (width<=860px){.hero{grid-template-columns:1fr}.breath{justify-self:start}.class-card{text-align:left;grid-template-columns:1fr}.class-time{border-right:none;border-bottom:1px solid var(--line);padding-bottom:10px}.class-price{text-align:left}.kpi-grid{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}.bank-grid{grid-template-columns:repeat(2,1fr)}.topbar{padding:16px 20px}}@media (width<=600px){.topbar{flex-wrap:wrap;gap:10px}.brand-sub{display:none}.nav-links{width:100%}.nav-links a{text-align:center;flex:1;padding:9px 8px;font-size:12.5px}main{padding:16px}.hero{border-radius:12px;min-height:auto;padding:28px 18px}.hero h1{font-size:28px}.hero p.lead{font-size:14px}.breath{width:84px;height:84px}.breath span{font-size:9px}.panel{padding:22px 18px}.class-card{gap:14px;padding:16px}.bank-grid{grid-template-columns:repeat(2,1fr);gap:8px}.bank-opt{padding:10px 6px;font-size:12px}.va-number{font-size:21px}.va-card{padding:20px}thead th,tbody td{padding:10px;font-size:12.5px}.kpi-card .value{font-size:22px}}@media (width<=420px){.kpi-grid{grid-template-columns:1fr 1fr;gap:10px}.kpi-card{padding:14px 16px}.page-head h1{font-size:26px}.steps{font-size:12px}.step-row{padding:12px 14px}.add-class-form{grid-template-columns:1fr}}.btn-outline{border:1px solid var(--clay);color:var(--clay-dark);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:12px;font-weight:500;transition:all .2s}.btn-outline:hover{background:var(--clay-dark);color:#fff}.booking-cards-wrapper{flex-direction:column;gap:12px;max-height:620px;padding-right:4px;display:flex;overflow-y:auto}.log-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:8px;padding:12px 14px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 1px 3px #00000005}.log-card:hover{transform:translateY(-1px);box-shadow:0 4px 6px #0000000d}.log-card-top{justify-content:space-between;align-items:center;display:flex}.log-card-id{color:#4a5568;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:600}.log-card-name{color:#1a202c;margin:0;font-size:14px;font-weight:700}.log-card-meta{color:#718096;border-top:1px dashed #edf2f7;justify-content:space-between;align-items:center;margin-top:2px;padding-top:6px;font-size:12px;display:flex}.modal-overlay{backdrop-filter:blur(2px);z-index:9999;background:#0006;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.modal-overlay.show{display:flex}.modal-content{background:#fff;border-radius:12px;width:90%;max-width:680px;max-height:85vh;padding:24px;animation:.25s ease-out slideUp;overflow-y:auto;box-shadow:0 10px 25px #00000026}.modal-header{border-bottom:1px solid #edf2f7;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:14px;display:flex}.modal-header h3{margin:0;font-family:Fraunces,serif;font-size:20px}.modal-close-btn{cursor:pointer;color:#a0aec0;background:0 0;border:none;font-size:28px;line-height:1}.modal-close-btn:hover{color:#4a5568}@keyframes slideUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.add-class-form{grid-template-columns:repeat(3,1fr)}}@media (width<=600px){.add-class-form{grid-template-columns:repeat(2,1fr)}}@media (width<=440px){.add-class-form{grid-template-columns:1fr}}.class-type-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:20px 22px}.class-type-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.class-type-head h3{margin-bottom:6px;font-size:19px}.class-type-head .meta{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.session-row{gap:10px;padding-bottom:4px;display:flex;overflow-x:auto}.session-chip{border:1.5px solid var(--line);text-align:center;background:var(--paper);border-radius:12px;flex:none;min-width:104px;padding:10px 12px;transition:all .15s}.session-chip:hover{border-color:var(--clay-dark)}.session-chip.full{opacity:.45}.session-date{color:var(--ink);font-size:12.5px;font-weight:700}.session-time{color:var(--ink-soft);margin-top:2px;font-size:12px}.session-left{color:var(--clay-dark);margin-top:6px;font-size:11px;font-weight:600}@media (width<=600px){.class-type-card{padding:16px}.session-chip{min-width:88px;padding:8px 10px}}@media (width<=992px){.dash-grid{grid-template-columns:1fr!important;gap:32px!important;display:grid!important}.kpi-grid{grid-template-columns:repeat(2,1fr)!important;gap:12px!important;display:grid!important}}@media (width<=768px){.kpi-grid{grid-template-columns:1fr!important}.filter-row{flex-wrap:wrap!important;gap:8px!important;display:flex!important}#main-class-table thead{display:none}#main-class-table tbody{width:100%;display:block}#class-table-body tr{background:#fff;border:1px solid #e2e8f0;border-radius:10px;grid-template-columns:1fr auto;grid-template-areas:"name level""time time""instructor price""occ price";align-items:center;gap:12px;margin-bottom:14px;padding:16px;display:grid;box-shadow:0 2px 5px #0000000a}#class-table-body td{text-align:left;border:none;flex-direction:column;align-items:flex-start;padding:0;display:flex}#class-table-body td:first-child{grid-area:name;margin-bottom:-4px;font-size:16px}#class-table-body td:nth-child(2){grid-area:instructor}#class-table-body td:nth-child(3){border-bottom:1px dashed #e2e8f0;grid-area:time;margin-bottom:4px;padding-bottom:10px}#class-table-body td:nth-child(4){grid-area:level;align-items:flex-end}#class-table-body td:nth-child(5){grid-area:occ}#class-table-body td:nth-child(6){color:var(--clay-dark);grid-area:price;justify-content:flex-end;align-items:flex-end;font-size:15px}#class-table-body td:before{content:attr(data-label);color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px;font-size:10px;font-weight:600}#class-table-body td:first-child:before,#class-table-body td:nth-child(4):before,#class-table-body td:nth-child(6):before{display:none}#class-table-body td:nth-child(5)>div{width:100%;justify-content:flex-start!important}#class-table-body td:nth-child(5) span{text-align:left!important}.custom-table-wrap{background:0 0!important;border:none!important}}
