:root{--bg: #f6f7f9;--surface: #ffffff;--text: #1c2330;--text-muted: #5d6778;--border: #dde1e8;--primary: #2f5bea;--primary-hover: #2449c4;--primary-text: #ffffff;--success: #1f7a4d;--success-bg: #e3f4ea;--warning: #8a5a00;--warning-bg: #fdf1d8;--danger: #b42318;--danger-bg: #fdeceb;--radius: 10px;--shadow: 0 1px 2px rgb(16 24 40 / 6%);color-scheme:light}:root[data-theme=dark]{--bg: #11151c;--surface: #1a2029;--text: #e6e9ef;--text-muted: #9aa4b5;--border: #2c3440;--primary: #6b8cff;--primary-hover: #8aa4ff;--primary-text: #0d1117;--success: #6fd49c;--success-bg: #173826;--warning: #f2c26b;--warning-bg: #3b2f14;--danger: #ff8a80;--danger-bg: #3d1a18;--shadow: none;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}h1{font-size:1.5rem;margin:0}a{color:var(--primary)}.container{max-width:760px;margin:0 auto;padding:0 16px}.page{padding-top:1.5rem;padding-bottom:3rem}.muted{color:var(--text-muted)}.site-header{background:var(--surface);border-bottom:1px solid var(--border)}.site-header-inner{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;min-height:56px;padding-top:.5rem;padding-bottom:.5rem}.brand{display:flex;flex-shrink:0;border-radius:9px}.brand img{display:block;width:36px;height:36px;border-radius:9px}.brand:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.site-nav{display:flex;gap:1rem;flex:1}.site-nav a{color:var(--text-muted);text-decoration:none;padding:.25rem 0;border-bottom:2px solid transparent}.site-nav a.active{color:var(--text);border-bottom-color:var(--primary)}.account{display:flex;align-items:center;gap:.5rem}.account-name{color:var(--text-muted);max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:560px){.site-nav{order:3;flex-basis:100%}.account{margin-left:auto}.account-name{display:none}}.page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1.25rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:40px;padding:.5rem 1rem;border:1px solid transparent;border-radius:8px;font:inherit;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;white-space:nowrap}.btn:disabled{opacity:.55;cursor:default}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-primary{background:var(--primary);color:var(--primary-text)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--text-muted)}.btn-danger{background:var(--danger);color:var(--surface)}.btn-link{background:none;color:var(--primary);padding:.25rem .5rem;min-height:auto;font-weight:500}.btn-small{min-height:34px;padding:.3rem .75rem}.btn-block{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.class-card{display:grid;grid-template-columns:6.5rem 1fr auto;gap:.25rem 1rem;align-items:start;padding:.9rem 1rem;margin-bottom:.6rem}.class-card.is-mine{border-left:4px solid var(--primary)}.class-card.is-cancelled .class-title,.class-card.is-cancelled .class-time{color:var(--text-muted);text-decoration:line-through}.class-time{font-weight:600;font-variant-numeric:tabular-nums}.class-title{font-size:1.05rem;margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.meta{margin:.15rem 0 0;color:var(--text-muted);font-size:.93rem}.class-action{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.action-note{color:var(--text-muted);font-size:.9rem;max-width:14rem;text-align:right}@media(max-width:560px){.class-card{grid-template-columns:1fr}.class-action{align-items:stretch;margin-top:.5rem}.action-note{max-width:none;text-align:left}}.notice{margin:.5rem 0 0;padding:.4rem .6rem;border-radius:6px;background:var(--success-bg);color:var(--success);font-size:.93rem}.notice-error{background:var(--danger-bg);color:var(--danger)}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;text-decoration:none;background:var(--border);color:var(--text-muted)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.alert{padding:.75rem 1rem;border-radius:8px;margin:0 0 1rem}.alert-error{background:var(--danger-bg);color:var(--danger)}.empty{text-align:center;padding:2rem 1rem;color:var(--text-muted)}.tabs{display:inline-flex;background:var(--border);border-radius:8px;padding:3px}.tab{border:0;background:none;font:inherit;padding:.35rem .9rem;border-radius:6px;color:var(--text-muted);cursor:pointer}.tab.active{background:var(--surface);color:var(--text);font-weight:600}.auth-card{max-width:420px;margin:1rem auto;padding:1.5rem}.auth-card h1{margin-bottom:.5rem}.field{display:flex;flex-direction:column;gap:.3rem;margin:1rem 0}.field>span{font-weight:600;font-size:.93rem}.field input{font:inherit;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}.field input:focus{outline:2px solid var(--primary);outline-offset:-1px}.field-hint{color:var(--text-muted)}.field-error{color:var(--danger)}.auth-links{display:flex;flex-direction:column;gap:.4rem;margin:1.25rem 0 0;font-size:.93rem;color:var(--text-muted)}.admin-nav{display:flex;flex-wrap:wrap;gap:.25rem;margin:-.5rem 0 1.25rem;border-bottom:1px solid var(--border)}.admin-nav a{padding:.5rem .75rem;color:var(--text-muted);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}.admin-nav a.active{color:var(--text);border-bottom-color:var(--primary);font-weight:600}.page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.intro{margin:-.5rem 0 1.25rem}.admin-class{margin-bottom:.6rem}.admin-class .class-card{border:0;margin:0;box-shadow:none;background:none}.admin-class.is-cancelled .class-title,.admin-class.is-cancelled .class-time{color:var(--text-muted);text-decoration:line-through}.confirm-text{font-size:.9rem;text-align:right}.attendees{border-top:1px solid var(--border);padding:.75rem 1rem}.attendees h4{margin:.25rem 0 .4rem;font-size:.9rem}.attendee-list{margin:0 0 .75rem;padding-left:1.5rem}.attendee-list li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem 0}.attendee-actions{display:flex;gap:.25rem}.btn-link.danger{color:var(--danger)}.member-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem 1rem;margin-bottom:.5rem}.role-help{margin:0 0 1.25rem;padding-left:1.25rem;color:var(--text-muted);font-size:.93rem}.search{min-width:14rem}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.form-card{padding:1.25rem 1.5rem;max-width:640px}.field-row{display:flex;flex-wrap:wrap;gap:0 1rem}.field-row .field{flex:1 1 9rem;margin-bottom:.25rem}.form-actions{display:flex;align-items:center;gap:.5rem;margin-top:1.25rem}.alert-warning{background:var(--warning-bg);color:var(--warning)}.search,.role-select select,.field select,.field textarea{font:inherit;padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text)}.search:focus,.role-select select:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}.field textarea{resize:vertical}.form-section{font-size:1.05rem;margin:1.75rem 0 0;padding-top:1.25rem;border-top:1px solid var(--border)}.opening-hours{border:0;padding:0}.opening-hours legend{font-weight:600;font-size:.93rem;padding:0;margin-bottom:.3rem}.hours-edit-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;min-height:2.75rem}.hours-edit-row input[type=time]{padding:.35rem .5rem}.hours-edit-row .field-error{flex-basis:100%}.hours-day{display:flex;align-items:center;gap:.4rem;width:8.5rem;font-weight:500}.hours-day input{padding:0;width:1.1rem;height:1.1rem}.open-until{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.field>label{font-weight:600;font-size:.93rem}.day-picker{border:0;padding:0}.day-picker legend{font-weight:600;font-size:.93rem;padding:0;margin-bottom:.3rem}.day-options{display:flex;flex-wrap:wrap;gap:.4rem}.day-option{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .7rem;border:1px solid var(--border);border-radius:999px;cursor:pointer;-webkit-user-select:none;user-select:none}.day-option:has(input:checked){border-color:var(--primary);color:var(--primary);font-weight:600}.day-option input{margin:0;padding:0;width:1rem;height:1rem}.day-shortcuts{display:flex;flex-wrap:wrap;gap:.25rem;margin-left:-.5rem}.notify-toggle{display:flex;align-items:center;gap:.4rem;margin-top:.4rem;font-size:.9rem;color:var(--text-muted);cursor:pointer}.notify-toggle input{width:1rem;height:1rem;margin:0}
