*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:system-ui,-apple-system,sans-serif;background:#f5f5f0;color:#1a1a1a;}
.app{max-width:1150px;margin:0 auto;padding:1.5rem 1rem;}
.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;flex-wrap:wrap;gap:10px;}
.app-title{font-size:22px;font-weight:500;}
.app-title .blue{color:#185FA5;}
.clock-box{background:#1a1a1a;color:white;border-radius:12px;padding:10px 18px;text-align:center;min-width:180px;}
.clock-time{font-size:26px;font-weight:500;letter-spacing:2px;font-variant-numeric:tabular-nums;}
.clock-day{font-size:11px;color:#aaa;margin-top:2px;text-transform:capitalize;}
.tabs{display:flex;gap:4px;margin-bottom:1.25rem;flex-wrap:wrap;}
.tab{padding:7px 16px;border-radius:8px;font-size:13px;cursor:pointer;border:1px solid #ddd;background:white;color:#888;}
.tab.active{background:#185FA5;color:white;border-color:#185FA5;}
.section{display:none;}.section.active{display:block;}
.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:8px;}
.week-nav{display:flex;align-items:center;gap:6px;}
.week-nav button{background:white;border:1px solid #ddd;border-radius:8px;padding:6px 10px;cursor:pointer;color:#1a1a1a;font-size:14px;}
.week-nav button:hover{background:#f0f0f0;}
.week-label{font-size:15px;font-weight:500;}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:1.25rem;}
.stat-card{background:white;border-radius:10px;padding:14px;border:1px solid #e8e8e8;}
.stat-label{font-size:11px;color:#888;margin-bottom:5px;}
.stat-value{font-size:20px;font-weight:500;}
.stat-value.green{color:#1D9E75;}.stat-value.blue{color:#185FA5;}.stat-value.red{color:#E24B4A;}
.grid-wrapper{overflow-x:auto;background:white;border-radius:12px;border:1px solid #e8e8e8;position:relative;}
.grid{display:grid;grid-template-columns:54px repeat(7,1fr);min-width:620px;}
.day-header{background:#f8f8f5;padding:8px 4px;text-align:center;font-size:12px;font-weight:500;color:#666;border-bottom:1px solid #e8e8e8;border-right:1px solid #e8e8e8;}
.day-header.today{color:white;background:#1a1a1a;}
.corner{background:#f8f8f5;border-bottom:1px solid #e8e8e8;border-right:1px solid #e8e8e8;}
.time-label{font-size:11px;color:#aaa;padding:0 5px;text-align:right;border-right:1px solid #e8e8e8;display:flex;align-items:flex-start;justify-content:flex-end;padding-top:3px;height:28px;}
.slot{border-right:1px solid #eee;border-bottom:1px solid #eee;height:28px;cursor:pointer;position:relative;transition:background 0.1s;}
.slot:hover{background:#f8f8f5;}
.slot.today-col{background:#fafaf8;}
.slot:hover .add-hint{opacity:1;}
.add-hint{opacity:0;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;color:#ccc;pointer-events:none;}
.now-line{position:absolute;height:2px;background:#1a1a1a;z-index:10;pointer-events:none;}
.now-dot{position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#1a1a1a;}
.event{position:absolute;left:2px;right:2px;border-radius:5px;padding:2px 5px;font-size:11px;font-weight:500;overflow:hidden;cursor:default;z-index:2;line-height:1.3;}
.event.cours{background:#DDEEFA;color:#0C447C;border-left:3px solid #185FA5;}
.event.tournoi{background:#FDEADE;color:#712B13;border-left:3px solid #D85A30;}
.event.perso{background:#E8F5D5;color:#27500A;border-left:3px solid #639922;}
.event.autre{background:#ECEAE3;color:#444441;border-left:3px solid #888780;}
.event.entrainement{background:#F3E8FF;color:#5B21B6;border-left:3px solid #7C3AED;}
.event.entrainement.validated-done{opacity:0.6;}
.event.entrainement.validated-no{border-left-color:#E24B4A!important;background:#FEE2E2;color:#991B1B;opacity:0.7;}
.event-delete{float:right;font-size:14px;cursor:pointer;opacity:0.5;margin-left:4px;}
.event-delete:hover{opacity:1;}
.ev-btn{font-size:10px;padding:1px 5px;border-radius:4px;border:none;cursor:pointer;font-weight:500;margin-top:2px;margin-right:3px;}
.ev-btn.ok{background:#1D9E75;color:white;}
.ev-btn.ko{background:#E24B4A;color:white;}
.legend{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.legend-item{display:flex;align-items:center;gap:5px;font-size:12px;color:#888;}
.legend-dot{width:10px;height:10px;border-radius:50%;}
.dot-cours{background:#185FA5;}.dot-tournoi{background:#D85A30;}.dot-perso{background:#639922;}.dot-autre{background:#888780;}.dot-entrainement{background:#7C3AED;}
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:100;align-items:center;justify-content:center;}
.modal-bg.open{display:flex;}
.modal{background:white;border-radius:14px;padding:1.5rem;width:390px;max-width:95vw;box-shadow:0 8px 32px rgba(0,0,0,0.15);max-height:90vh;overflow-y:auto;}
.modal h3{font-size:16px;font-weight:500;margin-bottom:1.25rem;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:13px;color:#666;margin-bottom:5px;}
.field input,.field select,.field textarea{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:8px;font-size:14px;background:white;color:#1a1a1a;outline:none;font-family:inherit;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#185FA5;}
.field textarea{resize:vertical;min-height:65px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.toggle-row{display:flex;align-items:center;gap:8px;margin-bottom:14px;}
.toggle-row input[type=checkbox]{width:16px;height:16px;cursor:pointer;}
.toggle-row label{font-size:13px;color:#666;cursor:pointer;}
.rate-field{display:none;}.rate-field.visible{display:block;}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:1.25rem;flex-wrap:wrap;}
.btn{padding:8px 18px;border-radius:8px;font-size:14px;cursor:pointer;border:1px solid #ddd;background:white;color:#1a1a1a;}
.btn:hover{background:#f5f5f0;}
.btn.primary{background:#185FA5;color:white;border-color:#185FA5;}
.btn.primary:hover{background:#0C447C;}
.btn.danger{background:#E24B4A;color:white;border-color:#E24B4A;}
.btn.sm{padding:5px 12px;font-size:13px;}
.type-pills{display:flex;gap:6px;flex-wrap:wrap;}
.type-pill{padding:5px 12px;border-radius:20px;font-size:12px;cursor:pointer;border:1px solid #ddd;background:#f5f5f0;color:#666;}
.type-pill.selected.cours{background:#DDEEFA;color:#0C447C;border-color:#185FA5;}
.type-pill.selected.tournoi{background:#FDEADE;color:#712B13;border-color:#D85A30;}
.type-pill.selected.perso{background:#E8F5D5;color:#27500A;border-color:#639922;}
.type-pill.selected.autre{background:#ECEAE3;color:#444441;border-color:#888780;}
.type-pill.selected.entrainement{background:#F3E8FF;color:#5B21B6;border-color:#7C3AED;}
.card-white{background:white;border-radius:12px;border:1px solid #e8e8e8;}
.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.student-card{background:white;border-radius:12px;border:1px solid #e8e8e8;padding:1rem 1.25rem;cursor:pointer;transition:box-shadow 0.15s;}
.student-card:hover{box-shadow:0 2px 12px rgba(0,0,0,0.08);}
.student-avatar{width:38px;height:38px;border-radius:50%;background:#EBF4FD;color:#185FA5;display:flex;align-items:center;justify-content:center;font-weight:500;font-size:14px;flex-shrink:0;}
.student-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-top:10px;}
.student-stat{background:#f8f8f5;border-radius:7px;padding:7px 8px;}
.student-stat-label{font-size:10px;color:#aaa;margin-bottom:2px;}
.student-stat-value{font-size:14px;font-weight:500;}
.student-stat-value.green{color:#1D9E75;}
.empty-state{text-align:center;padding:3rem;color:#aaa;font-size:14px;}
.profile-back{cursor:pointer;color:#185FA5;font-size:13px;margin-bottom:1rem;display:inline-block;}
.sessions-list{background:white;border-radius:12px;border:1px solid #e8e8e8;overflow:hidden;}
.session-item{padding:12px 16px;border-bottom:1px solid #f0f0f0;}
.session-item:last-child{border-bottom:none;}
.session-date{font-size:12px;color:#aaa;margin-bottom:2px;}
.session-notes{font-size:13px;color:#666;}
.training-section{background:white;border-radius:12px;border:1px solid #e8e8e8;overflow:hidden;margin-top:1rem;}
.training-header-row{padding:12px 16px;background:#f8f8f5;border-bottom:1px solid #e8e8e8;font-size:14px;font-weight:500;}
.training-item{padding:10px 16px;border-bottom:1px solid #f5f5f0;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.training-item:last-child{border-bottom:none;}
.badge{font-size:11px;padding:3px 8px;border-radius:10px;font-weight:500;}
.badge.done{background:#E8F5D5;color:#27500A;}
.badge.notdone{background:#FDEADE;color:#712B13;}
.badge.pending{background:#f0f0f0;color:#888;}
.badge.future{background:#EBF4FD;color:#185FA5;}
.my-elo-section{background:white;border-radius:12px;border:1px solid #e8e8e8;padding:1rem 1.25rem;margin-bottom:1rem;}
.my-elo-section h4{font-size:14px;font-weight:500;margin-bottom:12px;}
.tournoi-card{background:white;border-radius:12px;border:1px solid #e8e8e8;padding:1.25rem;margin-bottom:12px;}
.tournoi-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.tournoi-name{font-size:15px;font-weight:500;}
.tournoi-meta{font-size:12px;color:#888;margin-bottom:10px;}
.tournoi-result{display:inline-block;font-size:13px;font-weight:500;padding:3px 10px;border-radius:8px;}
.tournoi-result.up{background:#E8F5D5;color:#27500A;}
.tournoi-result.down{background:#FDEADE;color:#712B13;}
.tournoi-result.eq{background:#f0f0f0;color:#666;}
.games-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px;}
.games-table th{text-align:left;padding:5px 8px;color:#888;font-weight:500;border-bottom:1px solid #f0f0f0;}
.games-table td{padding:5px 8px;border-bottom:1px solid #f8f8f8;}
.result-w{color:#1D9E75;font-weight:500;}
.result-d{color:#888;font-weight:500;}
.result-l{color:#E24B4A;font-weight:500;}
.month-group{margin-bottom:1.5rem;}
.month-title{font-size:13px;font-weight:500;color:#888;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:8px;}

/* === Patch visuel Chessenda === */
:root{
  --accent:#185FA5;
  --accent-dark:#0C447C;
  --bg:#f5f5f0;
  --surface:#ffffff;
  --surface-2:#f8f8f5;
  --text:#1a1a1a;
  --muted:#7b7b7b;
  --line:#e8e8e8;
  --shadow:0 18px 50px rgba(22,34,51,.10);
}
body{background:radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 12%, transparent), transparent 34%),var(--bg);color:var(--text);transition:background .25s ease,color .25s ease;}
body.theme-dark{--bg:#0f1117;--surface:#171a22;--surface-2:#202431;--text:#f6f7fb;--muted:#a5acba;--line:#2b3140;--shadow:0 20px 60px rgba(0,0,0,.35);}
body.theme-chess{background-color:var(--bg);background-image:linear-gradient(45deg,rgba(24,95,165,.055) 25%,transparent 25%),linear-gradient(-45deg,rgba(24,95,165,.055) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(24,95,165,.055) 75%),linear-gradient(-45deg,transparent 75%,rgba(24,95,165,.055) 75%);background-size:34px 34px;background-position:0 0,0 17px,17px -17px,-17px 0px;}
.app{max-width:1220px;}
.app-header{background:color-mix(in srgb,var(--surface) 92%,transparent);border:1px solid var(--line);border-radius:22px;padding:16px 18px;box-shadow:var(--shadow);backdrop-filter:blur(12px);}
.brand{display:flex;flex-direction:column;gap:3px;}
.app-title{font-size:25px;font-weight:800;letter-spacing:-.03em;}
.app-subtitle{font-size:12px;color:var(--muted);}
.blue,.tab.active,.stat-value.blue{color:var(--accent)!important;}
.header-actions{display:flex;align-items:center;gap:10px;}
.icon-btn{width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:19px;box-shadow:0 8px 24px rgba(0,0,0,.06);transition:transform .18s ease,background .18s ease,border-color .18s ease;}
.icon-btn:hover{transform:translateY(-2px) rotate(8deg);border-color:var(--accent);}
.clock-box{background:linear-gradient(135deg,var(--text),color-mix(in srgb,var(--accent) 45%,#111));box-shadow:0 12px 35px color-mix(in srgb,var(--accent) 22%,transparent);}
.tabs{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:6px;box-shadow:0 10px 35px rgba(0,0,0,.05);}
.tab{border:none;background:transparent;color:var(--muted);display:flex;align-items:center;gap:6px;transition:all .18s ease;}
.tab:hover{background:var(--surface-2);color:var(--text);transform:translateY(-1px);}
.tab.active{background:color-mix(in srgb,var(--accent) 14%,var(--surface));border-color:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 28%,transparent);}
.tab::before{font-size:14px}.tab:nth-child(1)::before{content:'📅'}.tab:nth-child(2)::before{content:'👥'}.tab:nth-child(3)::before{content:'⚡'}.tab:nth-child(4)::before{content:'🏆'}.tab:nth-child(5)::before{content:'📊'}.tab:nth-child(6)::before{content:'♟️'}
.section.active{animation:fadeUp .22s ease both;}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.stat-card,.card-white,.student-card,.tournoi-card,.my-elo-section,.training-section,.sessions-list,.grid-wrapper{background:var(--surface)!important;border-color:var(--line)!important;box-shadow:0 12px 35px rgba(0,0,0,.045);}
.stat-card,.student-card,.tournoi-card{transition:transform .18s ease,box-shadow .18s ease;}
.stat-card:hover,.student-card:hover,.tournoi-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.stat-label,.legend-item,.student-stat-label,.tournoi-meta,.session-date{color:var(--muted)!important;}
.week-nav button,.btn{background:var(--surface);color:var(--text);border-color:var(--line);transition:all .18s ease;}
.week-nav button:hover,.btn:hover{transform:translateY(-1px);border-color:var(--accent);}
.btn.primary,.tab.active{background:var(--accent)!important;color:white!important;border-color:var(--accent)!important;}
.btn.primary:hover{background:var(--accent-dark)!important;}
.grid{grid-template-columns:64px repeat(7,minmax(118px,1fr));min-width:920px;}
.corner,.day-header{background:var(--surface-2);border-color:var(--line);}
.day-header.today{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:white;}
.time-label,.slot{border-color:var(--line);}
.slot{height:32px;transition:background .12s ease,box-shadow .12s ease;}
.slot:hover{background:color-mix(in srgb,var(--accent) 7%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent);}
.slot.today-col{background:color-mix(in srgb,var(--accent) 4%,var(--surface));}
.event{border-radius:9px;font-size:11px;box-shadow:0 8px 18px rgba(0,0,0,.08);animation:popIn .16s ease both;}
@keyframes popIn{from{opacity:.2;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
.now-line,.now-dot{background:var(--accent);}
.modal-bg{backdrop-filter:blur(6px);}
.modal{background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow);animation:modalIn .18s ease both;}
@keyframes modalIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.field input,.field select,.field textarea,input[type="month"],input[type="number"],input[type="text"]{background:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important;}
.field input:focus,.field select:focus,.field textarea:focus,input:focus{border-color:var(--accent)!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent);}
.student-avatar{background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));color:var(--accent);}
.student-stat,.training-header-row{background:var(--surface-2)!important;}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;}
.modal-head h3{margin-bottom:4px;}.modal-head p{font-size:13px;color:var(--muted);line-height:1.4;}
.settings-modal{width:560px;}
.theme-swatches{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.swatch{width:34px;height:34px;border-radius:999px;border:3px solid var(--surface);box-shadow:0 0 0 1px var(--line),0 8px 20px rgba(0,0,0,.12);cursor:pointer;transition:transform .16s ease;}
.swatch:hover{transform:scale(1.12)}.swatch.blue{background:#185FA5}.swatch.violet{background:#7C3AED}.swatch.green{background:#1D9E75}.swatch.orange{background:#D85A30}.swatch.pink{background:#D946EF}
.custom-color{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:5px 10px;cursor:pointer;}
.custom-color input{width:24px;height:24px;border:0;background:transparent;padding:0;}
.setting-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.setting-card{border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:16px;padding:14px 10px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:all .18s ease;}
.setting-card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 12px 28px rgba(0,0,0,.08);}.setting-card span{font-size:22px}.setting-card strong{font-size:14px}.setting-card small{color:var(--muted);}
.toggle-line{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);background:var(--surface-2);border-radius:16px;padding:13px 14px;margin-top:8px;}.toggle-line span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.toggle-line input{width:20px;height:20px;accent-color:var(--accent);}
body.no-animations *,body.no-animations *::before,body.no-animations *::after{animation:none!important;transition:none!important;}
body.theme-dark .event.cours{background:#173453;color:#dcebff}body.theme-dark .event.tournoi{background:#4a2418;color:#ffdfd0}body.theme-dark .event.perso{background:#233b1d;color:#dff7cf}body.theme-dark .event.autre{background:#30323a;color:#f1f1f1}body.theme-dark .event.entrainement{background:#30204f;color:#eadcff}
@media(max-width:760px){.app-header{align-items:flex-start}.header-actions{width:100%;justify-content:space-between}.clock-box{flex:1}.setting-grid{grid-template-columns:1fr}.tabs{position:sticky;top:8px;z-index:20}.tab{flex:1;justify-content:center}.tab::before{display:none}.grid{min-width:820px}}

/* === Final polish / interaction fixes === */
:root{--slot-height:32px;}
button,.tab,.type-pill,.event,.student-card,.tournoi-card{user-select:none;}
button:focus-visible,.tab:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 30%,transparent);outline-offset:2px;}
.agenda-actions{display:flex;align-items:center;gap:8px;}
.btn.ghost{background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-color:color-mix(in srgb,var(--accent) 18%,var(--line));}
.slot,.time-label{height:var(--slot-height);}
.event{cursor:pointer;display:block;}
.event:hover{transform:translateY(-1px) scale(1.01);filter:saturate(1.05);}
.event strong{display:block;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.event-delete{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:rgba(255,255,255,.42);line-height:1;}
.event-delete:hover{background:rgba(255,255,255,.8);}
.split-actions{justify-content:space-between;align-items:center;}
.right-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.backup-box{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,var(--surface-2)),var(--surface-2));border-radius:16px;padding:13px 14px;margin-top:10px;}
.backup-box span{display:block;color:var(--muted);font-size:12px;margin-top:2px;}.backup-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,18px) scale(.98);background:var(--text);color:var(--surface);border:1px solid var(--line);border-radius:999px;padding:10px 16px;box-shadow:var(--shadow);opacity:0;z-index:500;font-size:13px;font-weight:650;transition:opacity .2s ease,transform .2s ease;}
.toast.show{opacity:1;transform:translate(-50%,0) scale(1);}
body.theme-dark .toast{background:#f6f7fb;color:#111318;border-color:#3a4152;}
body.theme-dark table,body.theme-dark .games-table,body.theme-dark .sessions-list{color:var(--text);}
body.theme-dark tr[style],body.theme-dark thead tr[style]{background:var(--surface)!important;border-color:var(--line)!important;}
body.theme-dark td,body.theme-dark th{border-color:var(--line)!important;color:var(--text);}
body.theme-dark [style*="background:white"]{background:var(--surface)!important;}
body.theme-dark [style*="color:#888"],body.theme-dark [style*="color:#aaa"],body.theme-dark [style*="color: #888"]{color:var(--muted)!important;}
body.theme-dark .profile-back{color:var(--accent)!important;}
.setting-card.active-setting{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent);}
.swatch.active-setting{transform:scale(1.08);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 24%,transparent),0 8px 20px rgba(0,0,0,.12);}
@media(max-width:760px){.header{align-items:stretch}.agenda-actions{width:100%;}.agenda-actions .btn{width:100%;justify-content:center}.backup-box{align-items:flex-start;flex-direction:column}.backup-actions{width:100%;}.backup-actions .btn{flex:1}.split-actions{align-items:stretch}.right-actions{width:100%;}.right-actions .btn{flex:1}.toast{width:calc(100% - 32px);text-align:center;}}

/* === Branding + auth + FIDE polish === */
.brand{display:flex;align-items:center;gap:12px;}
.brand-logo,.auth-brand-logo{width:56px;height:56px;display:block;filter:drop-shadow(0 10px 22px rgba(24,95,165,.18));}
.app-title{font-size:24px;font-weight:700;letter-spacing:-0.02em;}
.app-subtitle{font-size:13px;color:var(--muted);margin-top:2px;}
.header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.user-chip{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:8px 12px;box-shadow:var(--shadow);}
.user-chip-avatar{width:38px;height:38px;border-radius:14px;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;}
.user-chip-meta{display:flex;flex-direction:column;line-height:1.15;}
.user-chip-meta strong{font-size:13px;}
.user-chip-meta span{font-size:11px;color:var(--muted);}
.icon-btn{border:none;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px;cursor:pointer;box-shadow:var(--shadow);font-size:18px;}
.icon-btn:hover{transform:translateY(-1px);}
.clock-box{box-shadow:var(--shadow);}
.helper-note,.muted-copy{font-size:12px;color:var(--muted);line-height:1.5;}
.section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px;}
.auth-shell{position:fixed;inset:0;z-index:120;background:rgba(12,17,27,.58);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:18px;transition:opacity .25s ease,visibility .25s ease;}
.auth-shell.hidden{opacity:0;visibility:hidden;pointer-events:none;}
body.auth-locked .app{filter:blur(10px) saturate(.92);pointer-events:none;user-select:none;}
.auth-panel{width:min(460px,100%);background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:0 30px 80px rgba(0,0,0,.28);}
.auth-brand{display:flex;align-items:center;gap:16px;margin-bottom:18px;}
.auth-brand h1{font-size:28px;margin-bottom:4px;}
.auth-brand p{font-size:13px;color:var(--muted);line-height:1.55;}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--surface-2);border-radius:14px;padding:4px;margin-bottom:14px;}
.auth-tab{background:transparent;border:none;border-radius:10px;padding:10px 12px;cursor:pointer;font-weight:600;color:var(--muted);}
.auth-tab.active{background:var(--surface);color:var(--text);box-shadow:0 8px 20px rgba(0,0,0,.08);}
.auth-form{display:none;}
.auth-form.active{display:block;}
.auth-submit{width:100%;margin-top:6px;}
.auth-message{display:none;font-size:13px;border-radius:12px;padding:10px 12px;margin-bottom:12px;}
.auth-message.show{display:block;}
.auth-message.error{background:#fee2e2;color:#991b1b;}
.auth-message.success{background:#dcfce7;color:#166534;}
.auth-message.info{background:#dbeafe;color:#1d4ed8;}
.auth-footnote{margin-top:14px;font-size:12px;color:var(--muted);line-height:1.55;}
.student-trend{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin-bottom:10px;}
.student-trend-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;}
.student-trend-copy{font-size:12px;color:var(--text);}
.trend-badge{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700;}
.trend-badge.positive{background:#dcfce7;color:#166534;}
.trend-badge.negative{background:#fee2e2;color:#991b1b;}
.trend-badge.neutral{background:#e5e7eb;color:#374151;}
.student-source-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:11px;font-weight:600;}
.student-source-badge.manual{background:#f3f4f6;color:#4b5563;}
.mini-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:12px;}
.mini-stat-card{padding:10px 12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);display:flex;flex-direction:column;gap:4px;}
.mini-stat-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;}
.mini-stat-card strong{font-size:16px;}
.api-note{padding:12px 14px;border-radius:14px;background:#eff6ff;color:#1e3a8a;font-size:13px;line-height:1.5;}
.api-note.success{background:#ecfdf5;color:#166534;}
.api-note.warning{background:#fff7ed;color:#9a3412;}
.api-note.error{background:#fef2f2;color:#991b1b;}
.integration-box{margin-bottom:16px;}
.backup-box{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 14px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);margin-bottom:16px;}
.backup-box span{display:block;font-size:12px;color:var(--muted);margin-top:2px;}
@media (max-width:720px){
  .app{padding:1rem .75rem 1.5rem;}
  .auth-panel{padding:22px 18px;}
  .brand-logo,.auth-brand-logo{width:48px;height:48px;}
  .user-chip{width:100%;}
  .header-actions{width:100%;align-items:stretch;}
  .clock-box{width:100%;}
}

/* === Storage manager === */
.storage-panel{padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--surface-2);margin-bottom:16px;}
.storage-panel h4{font-size:15px;margin-bottom:3px;}
.storage-report{margin-top:10px;}
.storage-actions{justify-content:flex-start;margin-top:12px;}
.storage-actions .btn.danger{background:#fee2e2;color:#991b1b;border-color:#fecaca;}
.theme-dark .storage-actions .btn.danger{background:#3b1618;color:#fecaca;border-color:#7f1d1d;}

/* === Élève / FIDE v4 === */
.student-profile-hero{display:flex;align-items:center;gap:12px;margin-bottom:1.5rem;}
.elo-panel{overflow:hidden;}
.elo-chart-shell{margin-top:14px;padding:12px;border-radius:18px;background:var(--surface-2);border:1px solid var(--line);}
.delta-value.positive{color:#16a34a;}
.delta-value.negative{color:#dc2626;}
.delta-value.neutral{color:var(--text);}
.mini-stat-card small{font-size:11px;color:var(--muted);margin-top:2px;}
.sparkline-card{margin:10px 0 12px;padding:12px 14px;border-radius:18px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 10%,var(--surface-2)),var(--surface-2));border:1px solid var(--line);}
.sparkline-wrap{width:100%;}
.sparkline-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:11px;color:var(--muted);}
.sparkline-top strong{font-size:13px;color:var(--text);}
.sparkline-wrap svg{width:100%;height:86px;display:block;overflow:visible;}
.spark-area{fill:color-mix(in srgb,var(--accent) 14%,transparent);}
.spark-line{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 6px 12px color-mix(in srgb,var(--accent) 28%,transparent));}
.spark-dot{fill:var(--surface);stroke:var(--accent);stroke-width:3;}
.spark-dot.synthetic{stroke-dasharray:2 2;opacity:.75;}
.sparkline-empty{padding:16px;text-align:center;color:var(--muted);font-size:13px;}
body.theme-dark .sparkline-card{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 16%,#171a22),var(--surface-2));}
body.theme-dark .api-note{color:#dbeafe;}
.source-note{margin-top:10px;font-size:12px;color:var(--muted);line-height:1.5;word-break:break-all;}
.source-note code{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:2px 6px;color:var(--text);}

/* === Navigation polish v6: inline SVG icons, no emoji === */
.app-header .brand{display:flex!important;flex-direction:row!important;align-items:center!important;gap:12px!important;min-width:0;}
.app-header .brand > div{min-width:0;}
.brand-logo{width:46px!important;height:46px!important;flex:0 0 46px!important;object-fit:contain!important;display:block!important;filter:drop-shadow(0 8px 18px rgba(24,95,165,.16))!important;}
.auth-brand-logo{width:58px!important;height:58px!important;object-fit:contain!important;}
.app-title{line-height:1.05;white-space:nowrap;}
.app-subtitle{line-height:1.35;}
.tabs{gap:4px;align-items:center;}
.tab{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 15px;border-radius:13px;font-weight:600;line-height:1;border:0;}
.tab::before{content:none!important;display:none!important;}
.tab-icon{width:19px;height:19px;display:inline-flex;align-items:center;justify-content:center;color:currentColor;opacity:.86;transition:transform .18s ease,opacity .18s ease;color .18s ease;}
.tab-icon svg{width:19px;height:19px;display:block;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.tab:hover .tab-icon{opacity:1;transform:translateY(-1px) scale(1.05);}
.tab.active .tab-icon{opacity:1;color:white;}
.tab.active{box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 28%,transparent)!important;}
.no-animations .tab-icon,.no-animations .tab{transition:none!important;}
@media(max-width:760px){
  .app-header .brand{width:100%;}
  .brand-logo{width:42px!important;height:42px!important;flex-basis:42px!important;}
  .tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
  .tab{padding:9px 8px;font-size:12px;}
  .tab-icon{width:17px;height:17px;}
  .tab-icon svg{width:17px;height:17px;}
}
@media(max-width:480px){
  .tabs{grid-template-columns:repeat(2,1fr);}
  .app-subtitle{display:none;}
}

/* === Suivi paiement séances === */
.stat-value.amber,.student-stat-value.amber{color:#D97706;}
.amber-text{color:#D97706;}
.green-text{color:#1D9E75;}
.student-stats{grid-template-columns:repeat(4,1fr);}
.payment-chip{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.02em;}
.payment-chip.settled{background:#DCFCE7;color:#166534;}
.payment-chip.due{background:#FEF3C7;color:#92400E;}
.event-payment-line{display:flex;align-items:center;gap:5px;margin-top:2px;font-size:10px;opacity:.92;white-space:nowrap;}
.session-payment-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 5px;}
.session-payment-amount{font-weight:700;color:var(--text);}
.payment-toggle{padding:4px 9px!important;font-size:12px!important;border-radius:999px!important;}
.settled-row{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;}
.finance-summary{display:flex;justify-content:flex-end;gap:18px;flex-wrap:wrap;margin-top:12px;font-size:14px;color:var(--muted);}
@media (max-width:720px){.student-stats{grid-template-columns:repeat(2,1fr);}.session-payment-row{align-items:flex-start;}}

/* === Mobile app v8 === */
.auth-tabs.single-tab{grid-template-columns:1fr;}
@media (max-width: 820px){
  html{height:100%;}
  body{min-height:100%;overflow-x:hidden;-webkit-tap-highlight-color:transparent;}
  .app{max-width:100%;padding:12px 12px calc(100px + env(safe-area-inset-bottom));}
  .app-header{border-radius:24px;padding:14px;margin-bottom:12px;gap:12px;position:relative;}
  .app-header .brand{width:100%;gap:10px!important;}
  .brand-logo{width:42px!important;height:42px!important;flex-basis:42px!important;}
  .app-title{font-size:22px;}
  .app-subtitle{font-size:12px;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .header-actions{width:100%;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:stretch;}
  .user-chip{width:100%;min-width:0;box-shadow:none;border-radius:18px;}
  .user-chip-meta{min-width:0;}
  .user-chip-meta strong,.user-chip-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px;}
  .settings-btn{width:48px;height:48px;border-radius:18px;}
  .clock-box{display:none;}

  .tabs{position:fixed!important;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:95;display:grid!important;grid-template-columns:repeat(6,1fr)!important;gap:4px!important;padding:7px!important;border-radius:24px!important;background:color-mix(in srgb,var(--surface) 88%,transparent)!important;backdrop-filter:blur(18px);box-shadow:0 18px 50px rgba(0,0,0,.18),0 0 0 1px var(--line);margin:0!important;}
  .tab{min-width:0;flex-direction:column;gap:4px!important;padding:8px 4px!important;border-radius:18px!important;font-size:10px!important;line-height:1.05;letter-spacing:-.01em;}
  .tab span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .tab-icon,.tab-icon svg{width:20px!important;height:20px!important;}
  .tab.active{transform:translateY(-2px);box-shadow:0 10px 25px color-mix(in srgb,var(--accent) 28%,transparent)!important;}

  .section.active{animation:mobileFade .18s ease both;}
  @keyframes mobileFade{from{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:none}}

  .header{align-items:stretch;gap:10px;margin-bottom:12px;}
  .week-nav{width:100%;display:grid;grid-template-columns:42px 1fr 42px;gap:8px;}
  .week-nav .week-label{display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:8px 10px;}
  .week-nav .btn.ghost{grid-column:1 / -1;width:100%;}
  .week-nav button{min-height:42px;border-radius:14px;}
  .agenda-actions,.agenda-actions .btn{width:100%;}
  .agenda-actions .btn{min-height:44px;border-radius:15px;font-weight:700;}

  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px;}
  .stat-card{padding:12px;border-radius:18px;min-height:76px;}
  .stat-label{font-size:10px;line-height:1.25;}
  .stat-value{font-size:19px;}
  .legend{overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px;margin-bottom:9px;-webkit-overflow-scrolling:touch;}
  .legend::-webkit-scrollbar{display:none;}
  .legend-item{white-space:nowrap;}

  .grid-wrapper{border-radius:20px;margin-left:-2px;margin-right:-2px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
  .grid{min-width:760px;grid-template-columns:54px repeat(7,minmax(96px,1fr));}
  .time-label,.slot{height:36px;}
  .day-header{position:sticky;top:0;z-index:4;padding:9px 4px;}
  .corner{position:sticky;top:0;left:0;z-index:5;}
  .time-label{position:sticky;left:0;z-index:3;background:var(--surface-2);}
  .event{border-radius:11px;font-size:10px;padding:4px 6px;}
  .event-delete{font-size:13px;}
  .add-hint{opacity:.45;}

  .students-grid{grid-template-columns:1fr!important;gap:10px;}
  .student-card{border-radius:20px;padding:14px;}
  .student-stats{grid-template-columns:repeat(2,1fr)!important;}
  .student-profile-hero{align-items:flex-start;}
  .mini-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sparkline-card,.elo-chart-shell,.my-elo-section,.training-section,.tournoi-card,.sessions-list{border-radius:20px;}
  .student-card:hover,.stat-card:hover,.tournoi-card:hover{transform:none;}

  .training-item{align-items:flex-start;flex-direction:column;padding:13px 14px;}
  .training-item > div:last-child{width:100%;justify-content:flex-start;}
  .tournoi-header{align-items:flex-start;flex-direction:column;gap:10px;}
  .tournoi-header > div:last-child{width:100%;justify-content:space-between!important;}
  .games-table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;}
  #stats-by-student table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;}

  .modal-bg{align-items:flex-end!important;padding:0;}
  .modal{width:100%!important;max-width:100%!important;max-height:min(92dvh,720px);border-radius:28px 28px 0 0!important;padding:20px 16px calc(20px + env(safe-area-inset-bottom))!important;box-shadow:0 -24px 70px rgba(0,0,0,.30)!important;animation:sheetIn .2s ease both;}
  @keyframes sheetIn{from{opacity:.8;transform:translateY(42px)}to{opacity:1;transform:translateY(0)}}
  .settings-modal{width:100%!important;}
  .modal-actions,.right-actions{width:100%;display:grid!important;grid-template-columns:1fr 1fr;gap:8px;}
  .split-actions{grid-template-columns:1fr!important;}
  .split-actions .right-actions{grid-template-columns:1fr 1fr!important;}
  .modal-actions .btn{min-height:44px;border-radius:15px;}
  .field-row{grid-template-columns:1fr!important;gap:0;}
  .field input,.field select,.field textarea,input[type="month"],input[type="number"],input[type="text"],input[type="email"],input[type="password"],input[type="time"]{font-size:16px!important;min-height:44px;border-radius:14px!important;}
  .type-pills{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
  .type-pill{text-align:center;padding:10px 8px;border-radius:14px;}
  .toggle-row,.settled-row{border-radius:16px;min-height:48px;}

  .auth-shell{padding:12px;align-items:flex-end;}
  .auth-panel{width:100%;max-height:94dvh;overflow:auto;border-radius:28px;padding:20px 16px calc(20px + env(safe-area-inset-bottom));}
  .auth-brand{gap:12px;align-items:flex-start;}
  .auth-brand h1{font-size:25px;}
  .auth-brand p{font-size:12px;}
  .auth-tabs{border-radius:16px;}

  .storage-actions,.backup-actions{display:grid;grid-template-columns:1fr;gap:8px;width:100%;}
  .backup-box{align-items:stretch;}
  .finance-summary{justify-content:flex-start;gap:8px;}
}

@media (max-width: 420px){
  .tabs{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));padding:6px!important;border-radius:22px!important;}
  .tab{font-size:9px!important;padding:7px 2px!important;}
  .tab-icon,.tab-icon svg{width:18px!important;height:18px!important;}
  .stats{grid-template-columns:1fr 1fr;}
  .stat-card{padding:11px;min-height:70px;}
  .stat-value{font-size:18px;}
  .mini-stats-grid{grid-template-columns:1fr;}
  .app-title{font-size:21px;}
  .user-chip-meta span{max-width:140px;}
}

@media (display-mode: standalone){
  .app{padding-top:calc(14px + env(safe-area-inset-top));}
}

/* === Mobile hamburger drawer v9 === */
.mobile-menu-btn{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer;color:var(--text);}
.mobile-menu-btn span{display:block;width:20px;height:2px;border-radius:999px;background:currentColor;transition:transform .18s ease,opacity .18s ease;}
.mobile-menu-open .mobile-menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.mobile-menu-open .mobile-menu-btn span:nth-child(2){opacity:0;}
.mobile-menu-open .mobile-menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu-backdrop{display:none;position:fixed;inset:0;background:rgba(6,10,18,.48);backdrop-filter:blur(8px);z-index:180;opacity:0;transition:opacity .2s ease;}
.mobile-menu{display:none;position:fixed;top:0;right:0;bottom:0;width:min(86vw,360px);background:var(--surface);border-left:1px solid var(--line);box-shadow:-28px 0 80px rgba(0,0,0,.30);z-index:181;transform:translateX(104%);transition:transform .24s cubic-bezier(.2,.8,.2,1);padding:calc(18px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));overflow:auto;}
.mobile-menu-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;}
.mobile-menu-brand{display:flex;align-items:center;gap:12px;min-width:0;}
.mobile-menu-logo{width:46px;height:46px;display:block;filter:drop-shadow(0 10px 22px rgba(24,95,165,.18));}
.mobile-menu-brand strong{display:block;font-size:18px;letter-spacing:-.02em;}
.mobile-menu-brand span{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px;}
.mobile-menu-close{width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font-size:26px;line-height:1;cursor:pointer;}
.mobile-menu-nav{display:grid;gap:8px;margin-bottom:18px;}
.mobile-nav-link{width:100%;border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:18px;padding:14px 14px;display:flex;align-items:center;gap:12px;text-align:left;font-size:15px;font-weight:700;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease;}
.mobile-nav-link .tab-icon{width:22px;height:22px;color:var(--muted);}
.mobile-nav-link svg{width:22px;height:22px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.mobile-nav-link:hover{transform:translateX(-2px);border-color:var(--accent);}
.mobile-nav-link.active{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:#fff;border-color:transparent;box-shadow:0 12px 26px color-mix(in srgb,var(--accent) 24%,transparent);}
.mobile-nav-link.active .tab-icon{color:#fff;}
.mobile-menu-actions{display:grid;grid-template-columns:1fr;gap:10px;padding-top:14px;border-top:1px solid var(--line);}
.mobile-menu-actions .btn{width:100%;justify-content:center;}
.mobile-menu-open .mobile-menu-backdrop{display:block;opacity:1;}
.mobile-menu-open .mobile-menu{display:block;transform:translateX(0);}
body.mobile-menu-open{overflow:hidden;}
@media (min-width:761px){.mobile-menu,.mobile-menu-backdrop{display:none!important;}}
@media (max-width:760px){
  .mobile-menu-btn{display:flex;order:3;}
  .header-actions{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;width:100%;}
  .header-actions .user-chip{grid-column:1 / 2;min-width:0;}
  .header-actions .settings-btn{grid-column:2 / 3;grid-row:1;}
  .header-actions .clock-box{grid-column:1 / -1;width:100%;}
  .header-actions .mobile-menu-btn{grid-column:2 / 3;grid-row:2;justify-self:end;}
  .app{padding-bottom:24px!important;}
  .tabs{display:none!important;position:static!important;left:auto!important;right:auto!important;bottom:auto!important;grid-template-columns:none!important;box-shadow:none!important;margin:0!important;}
  .app-header{position:sticky;top:8px;z-index:70;backdrop-filter:blur(18px);background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--line);box-shadow:0 18px 45px rgba(0,0,0,.12);}
  .brand{width:100%;justify-content:space-between;}
  .brand-logo{width:46px!important;height:46px!important;}
}
@media (max-width:420px){
  .mobile-menu{width:min(92vw,360px);padding-left:14px;padding-right:14px;}
  .mobile-nav-link{padding:13px 12px;border-radius:16px;font-size:14px;}
  .mobile-menu-brand span{max-width:150px;}
}

/* === Mobile daily agenda v10 === */
@media (max-width:760px){
  .app-header{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center!important;gap:10px!important;padding:12px 14px!important;}
  .app-header .brand{grid-column:1!important;width:auto!important;justify-content:flex-start!important;min-width:0!important;}
  .app-header .brand > div{min-width:0!important;}
  .app-header .app-title{font-size:20px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .app-header .app-subtitle{display:none!important;}
  .header-actions{grid-column:2 / 4!important;grid-row:1!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;width:auto!important;gap:8px!important;}
  .header-actions .user-chip{display:none!important;}
  .header-actions .clock-box{display:none!important;}
  .header-actions .settings-btn,.header-actions .mobile-menu-btn{grid-column:auto!important;grid-row:auto!important;justify-self:auto!important;width:44px!important;height:44px!important;min-width:44px!important;border-radius:16px!important;box-shadow:0 10px 25px rgba(0,0,0,.08)!important;}
  .header-actions .mobile-menu-btn{display:flex!important;order:2!important;}
  .header-actions .settings-btn{order:1!important;}

  .week-nav{grid-template-columns:44px minmax(0,1fr) 44px!important;align-items:center!important;}
  .week-nav .week-label{text-transform:capitalize;font-size:14px!important;font-weight:700!important;min-height:44px;}

  .grid-wrapper{overflow-x:visible!important;border-radius:22px!important;}
  .grid.mobile-day-grid{min-width:0!important;width:100%!important;grid-template-columns:54px minmax(0,1fr)!important;}
  .grid.mobile-day-grid .day-header{font-size:13px!important;padding:10px 4px!important;text-transform:capitalize;}
  .grid.mobile-day-grid .time-label,.grid.mobile-day-grid .slot{height:40px!important;}
  .grid.mobile-day-grid .event{font-size:11px!important;padding:5px 7px!important;border-radius:12px!important;}
  .grid.mobile-day-grid .event strong{font-size:11px!important;}
  .grid.mobile-day-grid .event-payment-line{font-size:10px!important;gap:4px!important;}
  .grid.mobile-day-grid .payment-chip{font-size:9px!important;padding:2px 6px!important;}

  .legend{margin-left:2px;margin-right:2px;}
}

/* Invitation Supabase */
.invite-banner{
  padding:12px 14px;
  border-radius:14px;
  background:color-mix(in srgb,var(--accent) 12%, transparent);
  border:1px solid color-mix(in srgb,var(--accent) 24%, var(--line));
  color:var(--text);
  font-size:13px;
  line-height:1.45;
  margin-bottom:14px;
}
