:root{--bg:#f5efe6;--surface:#fffaf3;--ink:#2d2a26;--muted:#7a716a;--sage:#6f7f63;--sage-dark:#5a6950;--terra:#b8694a;--border:#e6dccd;--radius:16px;--shadow:0 6px 24px #3c2d1e12}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Inter,system-ui,sans-serif;font-size:15px;line-height:1.5}h1,h2,h3{letter-spacing:-.01em;margin:0 0 6px;font-family:Fraunces,Georgia,serif;font-weight:600}h1{font-size:clamp(2rem,4vw,2.8rem)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:5;justify-content:space-between;align-items:center;padding:18px clamp(16px,4vw,48px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:8px;font-family:Fraunces,serif;font-size:1.25rem;font-weight:600;display:flex}.brand-mark{color:var(--terra)}.nav{gap:6px;display:flex}.nav a{color:var(--muted);border-radius:999px;padding:7px 16px;font-weight:500}.nav a.active{background:var(--ink);color:var(--surface)}.main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:32px clamp(16px,4vw,48px) 60px}.footer{text-align:center;color:var(--muted);border-top:1px solid var(--border);padding:18px;font-size:.8rem}.hero{max-width:620px;margin-bottom:26px}.hero.compact{margin-bottom:18px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--terra);margin:0 0 6px;font-size:.72rem;font-weight:600}.muted{color:var(--muted);margin:0}.fine{color:var(--muted);margin:4px 0 10px;font-size:.8rem}.section-title{margin:26px 0 14px;font-size:1.3rem}.day-strip{grid-template-columns:repeat(7,1fr);gap:10px;display:grid}.day-strip.small{gap:6px;margin-bottom:16px}.day{background:var(--surface);border:1px solid var(--border);cursor:pointer;color:var(--ink);border-radius:14px;flex-direction:column;align-items:center;padding:12px 4px;transition:all .15s;display:flex}.day:hover{border-color:var(--sage)}.day.active{background:var(--sage);border-color:var(--sage);color:#fff}.day-wk{text-transform:uppercase;letter-spacing:.08em;opacity:.8;font-size:.75rem}.day-num{font-family:Fraunces,serif;font-size:1.5rem;font-weight:600;line-height:1.2}.day-strip.small .day-num{font-size:1.1rem}.day-mo{opacity:.7;font-size:.72rem}.class-list{flex-direction:column;gap:12px;display:flex}.class-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:100px 1fr auto;align-items:center;gap:20px;padding:20px 22px;display:grid}.class-card.is-full{opacity:.7}.class-time strong{font-family:Fraunces,serif;font-size:1.2rem;display:block}.class-time span{color:var(--muted);font-size:.82rem}.class-info h3{margin:0 0 2px;font-size:1.15rem}.tag{color:var(--muted);background:#efe6d8;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:500;display:inline-block}.meter{background:#ece3d5;border-radius:99px;max-width:260px;height:5px;margin:10px 0 4px;overflow:hidden}.meter span{background:var(--sage);border-radius:99px;height:100%;display:block}.is-full .meter span{background:var(--terra)}.spots{color:var(--muted);margin:0;font-size:.8rem}.btn{background:var(--sage);color:#fff;cursor:pointer;text-align:center;border:none;border-radius:999px;padding:10px 24px;font-weight:600;transition:background .15s;display:inline-block}.btn:hover{background:var(--sage-dark)}.btn.ghost{color:var(--ink);border:1px solid var(--border);background:0 0}.btn.ghost:hover{border-color:var(--ink)}.btn.danger{background:var(--terra)}.btn.full{width:100%}.btn.small{padding:8px 16px;font-size:.85rem}.pill{color:var(--sage-dark);background:#e9efe4;border-radius:999px;padding:5px 14px;font-size:.8rem;font-weight:600;display:inline-block}.pill.locked{color:var(--terra);background:#f6e3da}.link{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem;text-decoration:underline}.danger-text{color:var(--terra);margin-top:10px}.overlay{z-index:20;background:#2d2a2673;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:20px;width:100%;max-width:440px;padding:30px;position:relative;box-shadow:0 20px 60px #0003}.close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1.6rem;position:absolute;top:14px;right:16px}.form{flex-direction:column;gap:12px;margin-top:18px;display:flex}.form label,.panel label{color:var(--muted);flex-direction:column;gap:5px;font-size:.82rem;font-weight:500;display:flex}input,select{border:1px solid var(--border);color:var(--ink);background:#fff;border-radius:10px;padding:10px 12px}input:focus,select:focus{outline:2px solid var(--sage);outline-offset:-1px;border-color:#0000}.error{color:var(--terra);margin:0;font-size:.85rem}.confirm{text-align:center;flex-direction:column;align-items:center;gap:10px;margin-top:22px;display:flex}.check{background:var(--sage);color:#fff;border-radius:50%;place-items:center;width:52px;height:52px;font-size:1.4rem;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.panel.narrow{max-width:480px;margin:20px auto}.panel.center{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.details{grid-template-columns:110px 1fr;gap:8px;margin:18px 0 22px;display:grid}.details dt{color:var(--muted)}.details dd{margin:0;font-weight:500}.row{flex-wrap:wrap;gap:10px;display:flex}.stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.stat b{font-family:Fraunces,serif;font-size:1.8rem;font-weight:600;display:block}.stat span{color:var(--muted);font-size:.8rem}.staff-grid{grid-template-columns:1fr 320px;align-items:start;gap:24px;display:grid}.side{flex-direction:column;gap:16px;display:flex}.side .form{margin-top:0}.two{grid-template-columns:1fr 1fr;gap:10px;display:grid}.staff-row{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:8px;overflow:hidden}.staff-row-head{cursor:pointer;text-align:left;width:100%;color:var(--ink);background:0 0;border:none;grid-template-columns:80px 1fr auto 24px;align-items:center;gap:12px;padding:14px 18px;display:grid}.st-time{font-weight:600}.st-title{flex-direction:column;font-weight:500;display:flex}.st-title small{color:var(--muted);font-weight:400}.chev{color:var(--muted);text-align:center;font-size:1.2rem}.staff-row-body{border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:10px;padding:4px 18px 16px;display:flex}.roster{width:100%;margin:8px 0 0;padding:0;list-style:none}.roster li{border-bottom:1px dashed var(--border);align-items:center;gap:10px;padding:8px 0;display:flex}.roster li>span:first-child{flex:1}.roster small{color:var(--muted);margin-left:6px}.inline-form{flex-wrap:wrap;gap:8px;width:100%;display:flex}.inline-form input{flex:1;min-width:130px;padding:8px 10px}.locked-note{color:var(--terra);margin:0;font-size:.85rem}.integrations,.activity{margin:8px 0 0;padding:0;list-style:none}.integrations li{border-bottom:1px solid var(--border);justify-content:space-between;padding:7px 0;font-size:.88rem;display:flex}.integrations em{color:var(--terra);font-size:.78rem;font-style:normal}.activity li{border-bottom:1px solid var(--border);justify-content:space-between;gap:10px;padding:7px 0;font-size:.84rem;display:flex}.activity small{color:var(--muted);white-space:nowrap}@media (width<=820px){.staff-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.class-card{grid-template-columns:1fr auto}.class-time{grid-column:1/-1;align-items:baseline;gap:10px;display:flex}.day-strip{gap:5px}.day-num{font-size:1.15rem}.day-mo{display:none}}
