:root{
  --bg:#f4f5f7;--surface:#fff;--surface2:#f8f9fb;--text:#18202a;--muted:#68717e;
  --border:#e1e5ea;--primary:#22314d;--primary2:#314667;--danger:#a43232;
  --success:#2f6b48;--warning:#a16816;--radius:15px;--shadow:0 12px 35px rgba(24,32,42,.08)
}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}
.app-shell{min-height:100vh;display:grid;grid-template-columns:245px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;background:#172133;color:#fff;display:flex;flex-direction:column;z-index:40}
.brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#fff;color:#172133;font-weight:800;font-size:20px}
.brand strong,.brand small{display:block}.brand small{color:#aeb8c8;font-size:12px;margin-top:2px}
nav{display:grid;gap:5px}.nav-item{padding:12px 13px;border-radius:10px;color:#d7deea}.nav-item:hover,.nav-item.active{background:#273651;color:#fff}
.sidebar-footer{margin-top:auto;padding:12px;display:grid;gap:3px;color:#aeb8c8;font-size:13px}.user-name{color:#fff;font-weight:700}.role{font-size:12px}.link-button{border:0;background:transparent;color:#cfd8e6;padding:8px 0;text-align:left}
.main{min-width:0}.topbar{min-height:86px;padding:17px 28px;display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20;backdrop-filter:blur(10px)}
.heading h1{margin:0;font-size:24px}.heading p{margin:4px 0 0;color:var(--muted);font-size:13px}.topbar-actions{margin-left:auto;display:flex;gap:8px;align-items:center}
.menu-button{display:none;border:1px solid var(--border);background:#fff;border-radius:10px;padding:8px 11px;font-size:20px}
.view{padding:24px 28px 50px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 2px rgba(0,0,0,.02)}
.primary,.secondary,.ghost,.danger{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:10px 14px;border:1px solid transparent;font-weight:650}
.primary{background:var(--primary);color:#fff}.primary:hover{background:var(--primary2)}.secondary{background:#fff;border-color:var(--border)}.ghost{background:transparent;border-color:var(--border)}.danger{background:#fff1f1;color:var(--danger);border-color:#efcccc}.wide{width:100%}
.flash{padding:13px 15px;border-radius:11px;margin-bottom:16px}.flash.success{background:#edf7f0;color:#245b3b;border:1px solid #cce4d4}.flash.error{background:#fff1f1;color:#842727;border:1px solid #efcccc}.flash ul{margin:7px 0 0}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric{padding:18px}.metric strong{display:block;font-size:27px;line-height:1.1}.metric span{display:block;color:var(--muted);font-size:13px;margin-top:4px}.metric-grid.compact .metric strong{font-size:22px}
.section-header{display:flex;align-items:center;justify-content:space-between;margin:26px 0 12px}.section-header h2{margin:0;font-size:18px}
.alert-list{overflow:hidden}.alert{display:grid;grid-template-columns:11px minmax(0,1fr);gap:11px;padding:14px 16px;border-bottom:1px solid var(--border)}.alert:last-child{border-bottom:0}.alert-dot{width:9px;height:9px;border-radius:50%;margin-top:5px}.alert.urgent .alert-dot{background:#c64444}.alert.medium .alert-dot{background:#dc9b35}.alert.low .alert-dot{background:#4d8a67}.alert p{margin:3px 0 0;color:var(--muted);font-size:14px}
.sessions{display:grid;gap:11px}.session-card{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px;border-left:5px solid #7a8ba5}.session-card.color-mat{border-left-color:#7a9fc8}.session-card.color-equipment{border-left-color:#9873b5}.session-card.color-barre{border-left-color:#bf6e80}.session-card.color-private{border-left-color:#5e9d73}.session-card.color-electro{border-left-color:#bc8747}.session-time strong{display:block;font-size:20px}.session-time span{color:var(--muted);font-size:12px}.session-main h3{margin:0 0 4px}.session-main p{margin:0;color:var(--muted);font-size:14px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.tag,.badge{display:inline-flex;border-radius:999px;background:#eef1f5;color:#445064;padding:5px 9px;font-size:12px}.danger-soft{background:#fff0f0;color:#933}.success-badge{background:#eaf6ee;color:#286344}
.workshop-teaser{padding:16px;display:flex;align-items:center;justify-content:space-between}.workshop-teaser p{margin:4px 0 0;color:var(--muted)}
.filters{padding:14px;display:grid;grid-template-columns:minmax(220px,1fr) 190px auto;gap:10px;margin-bottom:16px}
input,select,textarea{width:100%;border:1px solid #ccd3dc;border-radius:9px;background:#fff;color:var(--text);padding:10px 11px}textarea{resize:vertical}label{display:grid;gap:6px;font-size:13px;font-weight:650}
.form-card{padding:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.span-2{grid-column:span 2}.form-stack{display:grid;gap:13px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.checks-row{display:flex;gap:20px;flex-wrap:wrap;margin-top:16px}
fieldset{border:0;padding:0;margin:20px 0}legend{font-weight:750;margin-bottom:10px}.check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.check-card{display:flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:10px;padding:11px;background:var(--surface2)}.check-card input,.check input{width:auto}.check{display:flex;align-items:center;gap:8px;font-weight:500}
.table-card{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:14px 15px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border-bottom:0}.actions-cell{text-align:right}.empty{padding:28px;text-align:center;color:var(--muted)}small,.muted{color:var(--muted)}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.detail-card{padding:18px}.detail-card h2{font-size:16px;margin:0 0 13px}.detail-card p{line-height:1.55}.detail-card dl{display:grid;grid-template-columns:140px 1fr;gap:10px;margin:0}.detail-card dt{color:var(--muted)}.detail-card dd{margin:0}
.list{overflow:hidden}.list>a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.list>a:last-child{border-bottom:0}.list span{color:var(--muted);font-size:13px}
.session-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;background:var(--border)}.session-summary>div{background:#fff;padding:17px}.session-summary strong,.session-summary span{display:block}.session-summary span{color:var(--muted);font-size:13px;margin-top:4px}
.attendance-list{display:grid;gap:11px;margin-top:16px}.attendance-row{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(0,1.3fr);gap:18px;padding:16px}.person-block strong,.person-block span,.person-block small{display:block}.person-block span{color:var(--muted);font-size:13px;margin-top:3px}.health-note{margin-top:8px;padding:8px;background:#fff8e8;border-radius:8px;color:#77531a}
.attendance-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center}.attendance-buttons{grid-column:1/-1;display:flex;gap:7px;flex-wrap:wrap}.status-choice{display:block}.status-choice input{position:absolute;opacity:0;pointer-events:none}.status-choice span{display:block;border:1px solid var(--border);padding:8px 10px;border-radius:9px;font-weight:600}.status-choice input:checked+span{background:var(--primary);color:#fff;border-color:var(--primary)}
.workshop-grid,.student-cards{display:grid;gap:12px}.workshop-card{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:15px;align-items:center;padding:17px}.workshop-date{width:58px;height:58px;border-radius:13px;background:#eef1f5;display:grid;place-items:center;align-content:center}.workshop-date strong{font-size:22px}.workshop-date span{font-size:12px;color:var(--muted)}.workshop-card h2{margin:0;font-size:17px}.workshop-card p{margin:5px 0;color:var(--muted)}
.row-form{display:flex;gap:6px;align-items:center}.row-form select{min-width:110px;padding:8px}
.student-intro{padding:18px;background:#f8fafc}.student-intro p{margin:5px 0 0;color:var(--muted);line-height:1.45}.student-session{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px}.student-session h3{margin:4px 0}.student-session p{margin:0;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.05em;font-size:11px;color:var(--muted)}.contact-card{display:flex;justify-content:space-between;gap:12px;padding:18px;margin-top:25px}.contact-card span{color:var(--muted)}
.inline-form{display:flex;gap:8px}.inline-form input{min-width:145px}
.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:#eef1f5}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:28px}.login-brand{display:flex;align-items:center;gap:12px}.login-brand strong,.login-brand small{display:block}.login-brand small{color:var(--muted)}.login-card h1{margin:28px 0 5px}.login-card>p{color:var(--muted);margin:0 0 20px}
.overlay{display:none}
@media(max-width:1000px){.metric-grid{grid-template-columns:repeat(2,1fr)}.check-grid{grid-template-columns:repeat(2,1fr)}.attendance-row{grid-template-columns:1fr}.row-form{flex-wrap:wrap}}
@media(max-width:760px){
  .app-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:min(290px,86vw);transform:translateX(-105%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}.overlay.open{display:block;position:fixed;inset:0;background:rgba(10,18,30,.45);z-index:35}
  .menu-button{display:block}.topbar{padding:13px 15px;min-height:72px}.heading h1{font-size:20px}.topbar-actions{max-width:48%;overflow:auto}.view{padding:16px 14px 38px}
  .metric-grid{grid-template-columns:repeat(2,1fr);gap:9px}.metric{padding:14px}.metric strong{font-size:23px}
  .session-card{grid-template-columns:65px minmax(0,1fr);padding:14px}.session-open{grid-column:1/-1;width:100%}
  .filters{grid-template-columns:1fr}.form-grid,.detail-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.check-grid{grid-template-columns:1fr 1fr}
  .table-card{overflow:visible}table,thead,tbody,tr,th,td{display:block}thead{display:none}tr{padding:12px 14px;border-bottom:1px solid var(--border)}tr:last-child{border-bottom:0}td{border:0;padding:5px 0;display:flex;justify-content:space-between;gap:12px}td::before{content:attr(data-label);font-size:12px;color:var(--muted);font-weight:700}.actions-cell{text-align:left}.actions-cell a{width:100%;margin-top:6px}td[colspan]{display:block}
  .workshop-card{grid-template-columns:58px minmax(0,1fr)}.workshop-card>.badge{grid-column:1/-1;width:max-content}.student-session{display:grid}.session-summary{grid-template-columns:1fr}.attendance-form{grid-template-columns:1fr}.attendance-form button{width:100%}
  .inline-form{display:none}.row-form{display:grid;width:100%}.row-form select,.row-form button{width:100%}.contact-card{display:grid}
}
@media(max-width:430px){.check-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.topbar-actions .primary{padding:9px 10px;font-size:13px}}

.pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px}.disabled-button{opacity:.5;cursor:not-allowed}.pagination>span:not(.secondary){color:var(--muted);font-size:13px}
