:root{
  --bg:#060b14;--bg-2:#09111d;--panel:#0d1626;--panel-2:#111f35;--panel-3:#172a46;
  --text:#f4f7fb;--muted:#91a1b8;--line:#203554;--blue:#2e63ff;--blue-2:#8ab0ff;
  --gold:#ffffff;--red:#e9364c;--green:#55d69e;--yellow:#f0c849;--shadow:0 18px 50px rgba(0,0,0,.30);
  --radius:18px;--radius-sm:12px;--sidebar:230px;
}
body[data-theme="light"]{
  --bg:#eef3f9;--bg-2:#f5f8fc;--panel:#ffffff;--panel-2:#f7f9fc;--panel-3:#edf3fb;
  --text:#102034;--muted:#61738c;--line:#d8e1ed;--shadow:0 18px 45px rgba(28,53,86,.10);
}
*{box-sizing:border-box}
html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 78% 0%,rgba(46,99,255,.14),transparent 32%),radial-gradient(circle at 8% 0%,rgba(233,54,76,.09),transparent 24%),var(--bg);min-height:100vh;color:var(--text)}
button,input,select,textarea{font:inherit}button{color:inherit}button,input,select,textarea{outline:none}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:0 0 0 3px rgba(45,119,255,.25)}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,rgba(7,12,22,.98),rgba(9,18,34,.96));border-right:1px solid #183155;padding:16px 12px 12px;display:flex;flex-direction:column;z-index:40;backdrop-filter:blur(16px);overflow:hidden}
body[data-theme="light"] .sidebar{background:rgba(255,255,255,.96);border-right-color:var(--line)}
.brand{display:flex;align-items:center;gap:10px;padding:2px 4px 12px;flex:0 0 auto}.brand img{width:38px;height:38px;object-fit:contain}.brand strong{font-size:15px;letter-spacing:-.02em;display:block}.brand strong em{font-style:normal;color:var(--gold);font-size:10px;vertical-align:top;margin-left:3px}.brand span{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.side-nav{display:grid;gap:4px;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:1px 4px 10px 0;scrollbar-width:thin;scrollbar-color:#294363 transparent;overscroll-behavior:contain}.side-nav::-webkit-scrollbar{width:6px}.side-nav::-webkit-scrollbar-track{background:transparent}.side-nav::-webkit-scrollbar-thumb{background:#294363;border-radius:999px}.side-nav::-webkit-scrollbar-thumb:hover{background:#3b5d88}.nav-btn{border:0;background:transparent;color:var(--muted);display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:10px;text-align:left;cursor:pointer;transition:.18s;min-height:38px;flex:0 0 auto}.nav-btn span{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;background:rgba(255,255,255,.04);font-size:14px;flex:0 0 24px}.nav-btn b{font-size:11.5px;font-weight:650}.nav-btn:hover,.nav-btn.active{color:var(--text);background:rgba(46,99,255,.14)}.nav-btn.active span{background:linear-gradient(180deg,#315dff,#1a43c7);color:#fff}
.sidebar-foot{margin-top:6px;display:grid;gap:6px;flex:0 0 auto;padding-top:9px;border-top:1px solid rgba(32,53,84,.72)}.sidebar-foot .ghost-btn{padding:7px 9px;font-size:9.5px}.sidebar-foot small{color:var(--muted);font-size:9px;text-align:center;margin-top:2px}.file-label{cursor:pointer;display:flex;align-items:center;justify-content:center}
.main{margin-left:var(--sidebar);min-width:0}.topbar{height:78px;position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid rgba(32,53,84,.86);background:rgba(6,11,20,.88);backdrop-filter:blur(18px)}body[data-theme="light"] .topbar{background:rgba(238,243,249,.86)}
.topbar-left,.topbar-actions,.actions,.row-buttons{display:flex;align-items:center;gap:9px}.topbar h1{font-size:19px;margin:1px 0 0;letter-spacing:-.02em}.eyebrow{display:block;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.eyebrow.gold{color:var(--gold)}
.view{display:none;padding:24px 28px 90px;animation:fade .18s ease}.view.active{display:block}@keyframes fade{from{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:none}}
.primary-btn,.secondary-btn,.ghost-btn,.danger-btn,.icon-btn,.text-btn{border:0;border-radius:10px;cursor:pointer;transition:.18s}.primary-btn{background:linear-gradient(180deg,#3c73ff,#224ee8);color:#fff;padding:10px 14px;font-size:12px;font-weight:750;box-shadow:0 10px 24px rgba(46,99,255,.25)}.primary-btn:hover{background:linear-gradient(180deg,#4b80ff,#2a57ec);transform:translateY(-1px)}.secondary-btn{background:var(--panel-3);border:1px solid var(--line);padding:9px 13px;font-size:12px;font-weight:700}.ghost-btn{background:transparent;border:1px solid var(--line);padding:9px 12px;font-size:11px;font-weight:700}.ghost-btn:hover,.secondary-btn:hover{border-color:#466ca5;background:rgba(46,99,255,.08)}.danger-btn{background:rgba(255,91,109,.09);border:1px solid rgba(255,91,109,.28);color:#ff9aa7;padding:9px 12px;font-size:11px;font-weight:700}.icon-btn{width:36px;height:36px;background:var(--panel-2);border:1px solid var(--line);display:grid;place-items:center}.text-btn{background:transparent;color:var(--blue-2);font-size:11px;font-weight:750}.full{width:100%}
.panel{background:linear-gradient(180deg,rgba(255,255,255,.014),transparent),var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.panel-head h3{margin:3px 0 0;font-size:16px;letter-spacing:-.02em}
.hero-card{background:linear-gradient(135deg,rgba(46,99,255,.18),rgba(233,54,76,.08) 72%),var(--panel);border:1px solid var(--line);border-radius:24px;display:flex;align-items:center;justify-content:space-between;padding:42px;min-height:270px;box-shadow:var(--shadow);overflow:hidden}.hero-copy{max-width:720px}.hero-copy h2{font-size:39px;line-height:1.06;margin:10px 0 14px;letter-spacing:-.05em}.hero-copy p{color:var(--muted);max-width:650px;line-height:1.65;font-size:14px}.hero-copy .actions{margin-top:24px}.hero-logo{width:220px;height:220px;display:grid;place-items:center;position:relative}.hero-logo:before{content:"";position:absolute;inset:10px;border-radius:50%;background:radial-gradient(circle,rgba(46,99,255,.18),rgba(233,54,76,.08));filter:blur(3px)}.hero-logo img{max-width:150px;max-height:150px;position:relative;filter:drop-shadow(0 18px 28px rgba(0,0,0,.25))}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}.stat{padding:20px;border-radius:16px;background:var(--panel);border:1px solid var(--line)}.stat span,.stat small{display:block;color:var(--muted);font-size:10px}.stat strong{display:block;font-size:30px;margin:5px 0 1px;letter-spacing:-.04em}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.dashboard-grid .panel{padding:20px}.empty{border:1px dashed var(--line);border-radius:12px;color:var(--muted);padding:30px;text-align:center;font-size:12px}.empty.compact{padding:18px;margin-top:14px}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}.section-head h2{font-size:28px;margin:3px 0 6px;letter-spacing:-.04em}.section-head p{color:var(--muted);font-size:12px;margin:0;max-width:670px}
/* tactics */
.tactics-shell{display:grid;grid-template-columns:195px minmax(0,1fr) 235px;gap:14px;align-items:start}.tactical-tools,.properties{padding:16px;position:sticky;top:94px;max-height:calc(100vh - 112px);overflow:auto}.tool-section{margin-top:17px}.tool-section>label{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.tool-section select{width:100%}.compact-gap{display:grid;gap:8px}.team-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.team-switch button{border:1px solid var(--line);background:var(--panel-2);padding:8px 3px;border-radius:9px;font-size:9px;color:var(--muted);cursor:pointer}.team-switch button.active{border-color:var(--blue);color:var(--text);box-shadow:inset 0 0 0 1px rgba(45,119,255,.4)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.dot.blue{background:#2d77ff}.dot.red{background:#ff5b6d}.dot.yellow{background:#f0c849}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tool{min-height:54px;border:1px solid var(--line);background:var(--panel-2);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:17px;cursor:pointer}.tool span{font-size:9px;color:var(--muted)}.tool:hover,.tool.active{border-color:var(--blue);background:rgba(45,119,255,.09)}.tool.active span{color:var(--blue-2)}.row-buttons>*{flex:1}.tactical-center{min-width:0;display:grid;gap:14px}.board-card{padding:16px}.board-head,.timeline-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.board-title{background:transparent;border:0;color:var(--text);font-size:18px;font-weight:800;padding:3px 0;width:min(420px,80vw)}.board-actions,.play-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.canvas-wrap{width:100%;aspect-ratio:1200/780;background:#0b1f3c;border-radius:14px;overflow:hidden;position:relative;border:1px solid rgba(255,255,255,.08);touch-action:none}.canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.canvas-wrap.half-pitch-vertical{max-width:650px;margin-inline:auto}.half-pitch-canvas.half-pitch-vertical{aspect-ratio:780/1010!important}.half-pitch-canvas.half-pitch-horizontal{aspect-ratio:1010/780!important}.pitch-orientation-hint{display:block;margin-top:6px;color:var(--muted);font-size:9px;line-height:1.35}.board-hint{color:var(--muted);font-size:10px;margin-top:9px}.timeline-card{padding:16px}.timeline{display:flex;gap:9px;overflow-x:auto;padding:3px 1px 8px}.sequence-card{min-width:150px;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);cursor:pointer;position:relative}.sequence-card.active{border-color:var(--blue);box-shadow:inset 0 0 0 1px rgba(45,119,255,.25)}.sequence-card .seq-num{width:24px;height:24px;border-radius:7px;background:var(--panel-3);display:grid;place-items:center;font-size:10px;font-weight:800}.sequence-card.active .seq-num{background:var(--blue);color:#fff}.sequence-card strong{display:block;font-size:11px;margin-top:8px}.sequence-card small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.timeline-editor{border-top:1px solid var(--line);margin-top:9px;padding-top:12px}.timeline-edit-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:8px;align-items:end}.properties .empty{margin-top:13px}.property-form{display:grid;gap:11px;margin-top:14px}.property-form label,.property-form .check-row{font-size:10px;color:var(--muted)}.property-form input,.property-form select{margin-top:5px}.check-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:10px}.check-row input{width:auto}.color-row{display:grid;grid-template-columns:1fr 42px;gap:8px}.color-row input[type=color]{padding:3px}
/* forms */
input,select,textarea{width:100%;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px 11px;font-size:12px;transition:.18s}textarea{resize:vertical;line-height:1.5}label{font-size:10px;color:var(--muted);font-weight:650}label input,label select,label textarea{margin-top:6px}.form-grid{display:grid;gap:11px;margin-top:12px}.form-grid.two{grid-template-columns:repeat(2,1fr)}.form-grid.three{grid-template-columns:repeat(3,1fr)}.actions.end{justify-content:flex-end;margin-top:14px}.search-input{margin:14px 0}
/* sessions */
.sessions-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px}.session-list-panel{padding:16px;position:sticky;top:94px;max-height:calc(100vh - 112px);overflow:auto}.session-list{display:grid;gap:8px}.session-item{border:1px solid var(--line);border-radius:12px;padding:11px;background:var(--panel-2);cursor:pointer}.session-item.active{border-color:var(--blue);background:rgba(45,119,255,.08)}.session-item strong{display:block;font-size:11px}.session-item small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.session-workspace{display:grid;gap:14px}.session-general{padding:18px}.exercise-builder{padding:16px;min-height:480px}.exercise-topbar{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:12px}.exercise-tabs{display:flex;gap:7px;overflow-x:auto;min-width:0}.exercise-tab{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:9px;padding:8px 10px;white-space:nowrap;font-size:10px;cursor:pointer}.exercise-tab.active{border-color:var(--blue);color:var(--text);background:rgba(45,119,255,.10)}.exercise-header-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}.exercise-editor-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin-top:14px}.exercise-fields{display:grid;gap:11px}.exercise-preview{border:1px solid var(--line);border-radius:14px;background:var(--panel-2);padding:11px;align-self:start}.exercise-preview canvas{width:100%;border-radius:10px;display:block;background:#0b1f3c}.exercise-preview .actions{justify-content:space-between;margin-top:9px}.exercise-reorder{display:flex;gap:5px}
/* players */
.players-grid{display:grid;grid-template-columns:310px minmax(0,1fr) 340px;gap:14px}.players-grid>.panel{padding:16px}.player-list{display:grid;gap:8px;margin-top:14px}.player-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:11px;border:1px solid var(--line);background:var(--panel-2);cursor:pointer}.player-row.selected{border-color:var(--blue);box-shadow:inset 0 0 0 1px rgba(46,99,255,.24)}.player-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#163e84);display:grid;place-items:center;font-weight:800;font-size:11px;color:#fff}.player-row strong{font-size:11px;display:block}.player-row small{font-size:9px;color:var(--muted)}.player-row .mini-actions{display:flex;gap:4px}.mini-btn{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:4px}.player-meta-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.tiny-chip{font-size:9px;padding:3px 7px;border-radius:999px;background:rgba(46,99,255,.1);color:var(--blue-2);border:1px solid rgba(46,99,255,.14)}.player-stats-panel{min-height:100%}.stats-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}.mini-stat{border:1px solid var(--line);border-radius:12px;background:var(--panel-2);padding:12px}.mini-stat span{display:block;color:var(--muted);font-size:9px}.mini-stat strong{display:block;font-size:19px;margin-top:4px}.player-notes{display:grid;gap:10px;margin-top:12px}.note-box{border:1px solid var(--line);background:var(--panel-2);border-radius:12px;padding:12px}.note-box h4{margin:0 0 7px;font-size:11px}.note-box p{margin:0;color:var(--muted);font-size:11px;line-height:1.55;white-space:pre-wrap}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:14px}.cal-head{font-size:9px;color:var(--muted);text-align:center;padding:3px}.cal-day{min-height:74px;border:1px solid var(--line);border-radius:10px;padding:7px;background:var(--panel-2)}.cal-day.muted-day{opacity:.35}.cal-day .day-num{font-size:9px;color:var(--muted)}.cal-session{display:block;width:100%;border:0;border-radius:6px;background:rgba(46,99,255,.15);color:var(--blue-2);font-size:8px;padding:5px;margin-top:4px;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-session.selected{background:var(--blue);color:#fff}.attendance-editor{margin-top:12px}.attendance-table{display:grid;gap:5px;margin-top:10px}.attendance-row{display:grid;grid-template-columns:minmax(100px,1fr) repeat(6,34px);gap:4px;align-items:center}.attendance-row strong{font-size:10px}.status-btn{width:34px;height:30px;border:1px solid var(--line);background:var(--panel-2);border-radius:7px;font-size:9px;cursor:pointer}.status-btn.active{border-color:var(--blue);background:var(--blue);color:white}.attendance-legend{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:9px;margin-top:6px}
/* matches */
.matches-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:14px}.matches-layout>.panel{padding:18px}.subpanel{margin:14px 0;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);padding:13px}.subpanel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.subpanel-head h4{margin:0;font-size:13px}.mini-label{display:block;font-size:10px;color:var(--muted);font-weight:700;margin-bottom:7px;text-transform:uppercase;letter-spacing:.08em}.lineup-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.picker-grid{display:grid;grid-template-columns:1fr;gap:7px;max-height:240px;overflow:auto}.picker-btn{width:100%;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:9px 10px;border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;gap:8px;align-items:center}.picker-btn small{color:var(--muted);font-size:9px}.picker-btn.active-starter{border-color:var(--blue);background:rgba(46,99,255,.12)}.picker-btn.active-bench{border-color:#6f85aa;background:rgba(138,176,255,.06)}.event-builder{display:grid;grid-template-columns:88px 1fr 1.3fr 1.3fr auto;gap:8px;align-items:end}.event-list{display:grid;gap:7px;margin-top:10px}.event-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px;border-radius:10px;border:1px solid var(--line);background:var(--panel)}.event-item strong{font-size:11px}.event-item small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.event-tag{font-size:9px;padding:4px 7px;border-radius:999px;background:rgba(46,99,255,.1);color:var(--blue-2);border:1px solid rgba(46,99,255,.16)}.match-auto-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.summary-box{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:10px}.summary-box span{display:block;color:var(--muted);font-size:9px}.summary-box strong{display:block;font-size:12px;margin-top:4px;line-height:1.4}.match-list{display:grid;gap:9px;margin-top:14px}.match-item{border:1px solid var(--line);background:var(--panel-2);border-radius:12px;padding:12px}.match-score{display:flex;justify-content:space-between;gap:8px;align-items:center}.match-score strong{font-size:13px}.score-chip{font-size:16px;font-weight:850}.match-item p{color:var(--muted);font-size:10px;line-height:1.5}.match-item .actions{justify-content:flex-end}.match-extra{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
/* modal/presentation */
.toast{position:fixed;right:22px;bottom:24px;background:#12263f;color:#fff;padding:11px 14px;border-radius:10px;border:1px solid #294b76;box-shadow:var(--shadow);font-size:11px;opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s;z-index:100}.toast.show{opacity:1;transform:none}.modal-backdrop{position:fixed;inset:0;background:rgba(1,7,14,.72);display:grid;place-items:center;z-index:100;padding:20px}.modal-backdrop[hidden]{display:none}.modal{width:min(540px,100%);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 30px 90px rgba(0,0,0,.5)}.presentation-overlay{position:fixed;inset:0;background:radial-gradient(circle at 50% 40%,#0b1830 0%,#03070d 62%);z-index:200;display:flex;flex-direction:column;padding:14px;overflow:hidden;user-select:none}.presentation-overlay[hidden]{display:none}.presentation-chrome{transition:opacity .28s ease,transform .28s ease}.presentation-overlay.controls-hidden .presentation-chrome{opacity:0;pointer-events:none}.presentation-overlay.controls-hidden .presentation-top{transform:translateY(-18px)}.presentation-overlay.controls-hidden .presentation-controls{transform:translateY(18px)}.presentation-top{display:flex;justify-content:space-between;align-items:center;color:#fff;padding:3px 4px 10px;gap:16px}.presentation-brand{display:flex;align-items:center;gap:12px;min-width:0}.presentation-brand img{width:46px;height:46px;object-fit:contain;flex:0 0 auto}.presentation-brand strong{display:block;font-size:16px;max-width:min(60vw,760px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.presentation-brand small{display:block;color:#9db0cc;font-size:10px;margin-top:2px}.presentation-top-actions{display:flex;align-items:center;gap:8px}.presentation-stage{flex:1;min-height:0;display:grid;place-items:center;padding:2px;overflow:hidden}.presentation-overlay canvas{display:block;max-width:100%;max-height:100%;width:100%;height:auto;border-radius:14px;background:#0b1f3c;box-shadow:0 25px 80px rgba(0,0,0,.42)}.presentation-overlay canvas.half-pitch-canvas{width:auto;height:100%;max-width:100%;max-height:100%;align-self:center}.presentation-overlay canvas.half-pitch-horizontal{width:100%;height:auto}.presentation-controls{display:flex;justify-content:center;align-items:center;gap:9px;padding-top:10px;flex-wrap:wrap;color:#fff}.presentation-controls .icon-btn{flex:0 0 auto}.presentation-play{min-width:112px}.presentation-loop-active{border-color:var(--blue)!important;background:rgba(46,99,255,.18)!important;color:#fff!important}.presentation-speed{display:flex;align-items:center;gap:7px;color:#9db0cc;font-size:10px;font-weight:700}.presentation-speed select{width:auto;min-width:72px;padding:8px 24px 8px 9px;background:#0e1b2c;color:#fff;border-color:#294365}.presentation-hint{width:100%;text-align:center;color:#71849f;font-size:9px;padding-top:1px}.presentation-overlay:fullscreen{padding:16px;background:radial-gradient(circle at 50% 40%,#0b1830 0%,#02050a 68%)}.presentation-overlay:fullscreen .presentation-stage{padding:0}.bottom-nav{display:none}
/* print */
.print-sheet{display:none}.print-page{background:#fff;color:#111;font-family:Arial,sans-serif;width:210mm;min-height:297mm;padding:12mm 13mm;position:relative}.print-header{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border-bottom:3px solid #11346d;padding-bottom:7mm}.print-header h1{font-size:20px;margin:1mm 0 0;text-transform:uppercase}.print-header img{width:22mm;height:22mm;object-fit:contain}.print-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:3mm;margin:5mm 0}.print-meta div{border:1px solid #ccd4df;border-radius:3mm;padding:3mm}.print-meta span{font-size:8px;color:#657287;text-transform:uppercase;font-weight:700}.print-meta strong{display:block;font-size:10px;margin-top:1mm}.print-board{width:100%;height:87mm;object-fit:contain;background:#0b1f3c;border-radius:3mm;border:1px solid #cbd3de}.print-content{display:grid;grid-template-columns:1fr 1fr;gap:4mm;margin-top:5mm}.print-box{border:1px solid #ccd4df;border-radius:3mm;padding:4mm;break-inside:avoid}.print-box h3{margin:0 0 2mm;font-size:9px;text-transform:uppercase;color:#11346d}.print-box p{white-space:pre-wrap;font-size:9px;line-height:1.45;margin:0}.print-footer{position:absolute;bottom:8mm;left:13mm;right:13mm;display:flex;justify-content:space-between;border-top:1px solid #d9dee6;padding-top:3mm;color:#748093;font-size:8px}
.save-status{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);display:grid;gap:4px}.save-status b{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text)}.save-status span{font-size:10px;color:var(--muted)}
.tool-shortcuts{margin-top:8px;color:var(--muted);font-size:10px;line-height:1.5}.tool-shortcuts kbd{display:inline-block;padding:2px 5px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-size:10px;font-family:inherit;box-shadow:inset 0 -1px 0 rgba(255,255,255,.04)}

@media (max-width:1180px){.players-grid{grid-template-columns:260px 1fr}.player-stats-panel{grid-column:1/-1}.event-builder{grid-template-columns:1fr 1fr}.event-builder>label:nth-child(3),.event-builder>label:nth-child(4){grid-column:1/-1}.event-builder button{grid-column:1/-1}}
@media print{
  @page{size:A4 portrait;margin:0}
  body *{visibility:hidden!important}.print-sheet,.print-sheet *{visibility:visible!important}.print-sheet{display:block!important;position:absolute;inset:0;background:#fff}.print-page{page-break-after:always}.print-page:last-child{page-break-after:auto}
}
@media (max-width:1180px){.tactics-shell{grid-template-columns:180px minmax(0,1fr)}.properties{grid-column:1/-1;position:static;max-height:none}.property-form{grid-template-columns:repeat(4,1fr)}.properties .panel-head{grid-column:1/-1}.timeline-edit-grid{grid-template-columns:2fr 1fr 1fr 1fr}.timeline-edit-grid .actions{grid-column:1/-1}.players-grid{grid-template-columns:260px 1fr}}
@media (max-width:900px){:root{--sidebar:210px}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main{margin-left:0}.topbar{padding:0 16px}.mobile-only{display:grid!important}.view{padding:18px 15px 100px}.hero-card{padding:28px}.hero-copy h2{font-size:31px}.hero-logo{width:130px}.hero-logo img{max-width:95px}.stats-grid{grid-template-columns:repeat(2,1fr)}.tactics-shell{display:block}.tactical-tools,.properties{position:static;max-height:none;margin-bottom:12px}.tool-grid{grid-template-columns:repeat(4,1fr)}.tactical-center{gap:12px}.sessions-layout,.players-grid,.matches-layout{grid-template-columns:1fr}.session-list-panel{position:static;max-height:none}.session-list{grid-template-columns:repeat(2,1fr)}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;z-index:35;left:8px;right:8px;bottom:8px;background:rgba(7,16,29,.94);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:16px;padding:7px;box-shadow:var(--shadow)}body[data-theme="light"] .bottom-nav{background:rgba(255,255,255,.94)}.bottom-nav button{border:0;background:transparent;color:var(--muted);display:grid;place-items:center;gap:2px;font-size:15px;padding:5px;border-radius:9px}.bottom-nav button span{font-size:8px}.bottom-nav button.active{color:var(--blue-2);background:rgba(45,119,255,.10)}.bottom-nav .center-action{background:var(--blue);color:#fff;transform:translateY(-11px);box-shadow:0 8px 20px rgba(45,119,255,.3)}.exercise-editor-grid{grid-template-columns:1fr}.calendar{gap:3px}.cal-day{min-height:58px;padding:4px}.cal-session{font-size:7px}}
@media (max-width:640px){.topbar-actions .primary-btn{display:none}.topbar h1{font-size:16px}.hero-card{padding:22px;min-height:auto}.hero-logo{display:none}.hero-copy h2{font-size:27px}.dashboard-grid{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.form-grid.two,.form-grid.three{grid-template-columns:1fr}.tool-grid{grid-template-columns:repeat(3,1fr)}.board-head,.timeline-head{align-items:flex-start;flex-direction:column}.board-title{width:100%}.timeline-edit-grid{grid-template-columns:1fr 1fr}.timeline-edit-grid>label:first-child{grid-column:1/-1}.sessions-layout{display:block}.session-list-panel{margin-bottom:12px}.session-list{grid-template-columns:1fr}.exercise-topbar{align-items:flex-start;flex-direction:column}.players-grid{display:block}.players-grid>.panel{margin-bottom:12px}.attendance-row{grid-template-columns:minmax(80px,1fr) repeat(6,30px)}.status-btn{width:30px;height:28px}.calendar{overflow-x:auto;grid-template-columns:repeat(7,minmax(64px,1fr))}.attendance-panel{overflow:hidden}.match-form-panel{margin-bottom:12px}.property-form{grid-template-columns:1fr 1fr}.toast{right:10px;left:10px;bottom:84px;text-align:center}.board-actions{width:100%}.board-actions>*{flex:1}.row-buttons{width:100%}.row-buttons>*{flex:1}}
@media (max-width:640px){.presentation-overlay{padding:8px}.presentation-brand img{width:34px;height:34px}.presentation-brand strong{font-size:13px}.presentation-top-actions .ghost-btn{display:none}.presentation-controls{gap:6px}.presentation-controls .ghost-btn{padding:8px 9px}.presentation-hint{display:none}.presentation-speed{order:8;width:100%;justify-content:center}.presentation-stage{padding:0}}
@media (min-width:901px){.mobile-only{display:none!important}}

/* V3.1 — library & season stats */
.library-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start}.library-filters,.library-panel{padding:16px}.library-filters{position:sticky;top:94px;display:grid;gap:11px}.library-filters label{font-size:10px;color:var(--muted)}.exercise-library-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.library-card{border:1px solid var(--line);border-radius:15px;background:var(--panel-2);padding:14px;display:grid;gap:10px}.library-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.library-card h4{margin:3px 0 0;font-size:14px}.library-card p{margin:0;color:var(--muted);font-size:10px;line-height:1.55}.library-meta{display:flex;gap:6px;flex-wrap:wrap}.library-card canvas{width:100%;border-radius:10px;background:#0b1f3c;border:1px solid rgba(255,255,255,.06)}.library-card .actions{justify-content:flex-end}.empty-library{grid-column:1/-1}
.stats-season-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px}.season-stat{border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:18px}.season-stat span{display:block;font-size:10px;color:var(--muted)}.season-stat strong{display:block;font-size:26px;margin-top:4px;letter-spacing:-.03em}.season-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.5fr);gap:14px}.season-player-table-panel,.season-side-panel{padding:16px}.table-wrap{overflow:auto;margin-top:14px}.season-table{width:100%;border-collapse:collapse;font-size:11px}.season-table th,.season-table td{padding:10px 9px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.season-table th{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.season-table tbody tr:hover{background:rgba(46,99,255,.05)}.leader-list,.theme-list{display:grid;gap:8px;margin-top:13px}.leader-row,.theme-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel-2);border-radius:11px;padding:10px}.leader-row strong,.theme-row strong{font-size:11px}.leader-row span,.theme-row span{font-size:10px;color:var(--muted)}.season-side-panel h4{font-size:11px;margin:18px 0 7px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.event-builder{grid-template-columns:80px 100px 1fr 1.25fr 1.25fr auto}.period-chip{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 7px;background:rgba(255,255,255,.05);border:1px solid var(--line);font-size:9px;color:var(--muted)}
.callup-list{display:grid;grid-template-columns:1fr 1fr;gap:5mm;margin-top:7mm}.callup-box{border:1px solid #cbd3de;border-radius:3mm;padding:4mm}.callup-box h3{margin:0 0 3mm;color:#173b7b;font-size:11px;text-transform:uppercase}.callup-player{display:flex;justify-content:space-between;border-bottom:1px solid #e5e8ee;padding:2.4mm 0;font-size:10px}.callup-player:last-child{border-bottom:0}.match-print-events{display:grid;gap:2mm;margin-top:4mm}.match-print-event{border:1px solid #d8dee8;border-radius:2mm;padding:2.5mm 3mm;font-size:9px}.match-print-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:3mm;margin:4mm 0}.match-print-summary div{border:1px solid #d8dee8;border-radius:2mm;padding:3mm}.match-print-summary span{display:block;font-size:7px;color:#667488;text-transform:uppercase}.match-print-summary strong{font-size:12px;display:block;margin-top:1mm}
@media(max-width:1180px){.library-layout,.season-layout{grid-template-columns:1fr}.library-filters{position:static}.stats-season-grid{grid-template-columns:repeat(3,1fr)}.exercise-library-list{grid-template-columns:1fr 1fr}.event-builder{grid-template-columns:1fr 1fr}.event-builder>label:nth-child(4),.event-builder>label:nth-child(5){grid-column:auto}.event-builder button{grid-column:1/-1}}
@media(max-width:700px){.exercise-library-list{grid-template-columns:1fr}.stats-season-grid{grid-template-columns:repeat(2,1fr)}.event-builder{grid-template-columns:1fr}.event-builder>label,.event-builder button{grid-column:1!important}.callup-list{grid-template-columns:1fr}}

/* Vista+ Club Edition */
.workspace-context{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--panel-2);border-radius:11px;padding:5px 7px 5px 9px;min-width:210px}
.context-category{font-size:10px;color:var(--muted);font-weight:800;letter-spacing:.08em;white-space:nowrap}
.workspace-context select{border:0;background:transparent;padding:3px 24px 3px 4px;font-size:11px;font-weight:750;color:var(--text);min-width:120px}
.user-chip{border:1px solid var(--line);background:var(--panel-2);border-radius:11px;padding:5px 9px 5px 5px;display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--text)}
.user-avatar{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--blue),#162f7b);display:grid;place-items:center;color:#fff;font-size:10px;font-weight:850}
.user-chip-copy{display:grid;text-align:left;line-height:1.1}.user-chip-copy b{font-size:10px;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip-copy small{font-size:8px;color:var(--muted);margin-top:3px}
.connection-pill{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);font-size:9px;color:var(--muted)}.connection-pill i{width:7px;height:7px;border-radius:50%;background:#f0c849;box-shadow:0 0 0 4px rgba(240,200,73,.08)}.connection-pill.online i{background:#55d69e;box-shadow:0 0 0 4px rgba(85,214,158,.08)}.connection-pill.offline i{background:#ff5b6d;box-shadow:0 0 0 4px rgba(255,91,109,.08)}
.account-popover{position:fixed;right:24px;top:70px;z-index:90;width:245px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:13px;box-shadow:0 22px 60px rgba(0,0,0,.38);display:grid;gap:9px}.account-popover[hidden]{display:none}.account-popover>div{padding:2px 2px 8px;border-bottom:1px solid var(--line)}.account-popover strong,.account-popover small{display:block}.account-popover strong{font-size:12px}.account-popover small{font-size:9px;color:var(--muted);margin-top:3px}
.auth-overlay{position:fixed;inset:0;z-index:500;background:radial-gradient(circle at 70% 10%,rgba(46,99,255,.18),transparent 35%),radial-gradient(circle at 10% 20%,rgba(233,54,76,.12),transparent 28%),#050a12;display:grid;place-items:center;padding:24px}.auth-overlay.hidden{display:none}.auth-shell{width:min(980px,100%);display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center}.auth-brand{padding:44px;display:flex;gap:22px;align-items:center}.auth-brand img{width:150px;height:150px;object-fit:contain;filter:drop-shadow(0 26px 44px rgba(0,0,0,.35))}.auth-brand h1{font-size:64px;line-height:.9;letter-spacing:-.07em;margin:8px 0 12px}.auth-brand h1 span{color:var(--blue-2)}.auth-brand p{color:var(--muted);margin:0;font-size:15px}.auth-card{background:linear-gradient(180deg,rgba(255,255,255,.025),transparent),var(--panel);border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:0 30px 90px rgba(0,0,0,.42)}.auth-card h2{font-size:28px;margin:7px 0 8px;letter-spacing:-.035em}.auth-card>p{color:var(--muted);font-size:12px;line-height:1.6;margin:0 0 20px}.auth-card label{display:block;font-size:10px;color:var(--muted);margin-top:12px}.auth-card label input{margin-top:6px}.auth-actions{display:grid;gap:10px;margin-top:18px}.auth-message{font-size:10px;color:var(--muted);min-height:18px;margin-top:10px;line-height:1.45}.auth-message.error{color:#ff9aa7}.auth-message.success{color:#75e4b7}.local-auth-extra{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.local-auth-extra[hidden]{display:none}.local-auth-extra>span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.local-auth-extra p{font-size:10px;color:var(--muted);line-height:1.5}.auth-foot{grid-column:1/-1;text-align:center;color:#5e6f87}
.admin-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.admin-overview .stat{box-shadow:none}.admin-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.admin-layout>.panel{padding:18px}.admin-category-list,.admin-user-list{display:grid;gap:10px;margin-top:14px}.admin-category{border:1px solid var(--line);border-radius:14px;background:var(--panel-2);padding:12px}.admin-category-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.admin-category-head strong{font-size:12px}.admin-category-head small{color:var(--muted);font-size:9px}.team-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);margin-top:8px}.team-row:first-of-type{margin-top:10px}.team-row b{font-size:11px}.team-row small{color:var(--muted);font-size:9px}.admin-user{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);background:var(--panel-2);padding:10px;border-radius:12px}.admin-user strong{font-size:11px;display:block}.admin-user small{color:var(--muted);font-size:9px;display:block;margin-top:2px}.role-badge{font-size:8px;padding:4px 7px;border:1px solid rgba(46,99,255,.2);background:rgba(46,99,255,.1);color:var(--blue-2);border-radius:999px;white-space:nowrap}
body.platform-loading .app-shell{filter:blur(1.5px);pointer-events:none;user-select:none}.admin-only[hidden]{display:none!important}
@media (max-width:1050px){.workspace-context{display:none}.user-chip-copy{display:none}.user-chip{padding:5px}.admin-layout{grid-template-columns:1fr}.admin-overview{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.auth-shell{grid-template-columns:1fr}.auth-brand{justify-content:center;padding:10px 16px;text-align:left}.auth-brand img{width:90px;height:90px}.auth-brand h1{font-size:44px}.auth-card{padding:22px}.auth-foot{grid-column:auto}.admin-overview{grid-template-columns:1fr 1fr}.topbar-actions .user-chip{display:flex}}
@media (max-width:520px){.auth-brand{gap:12px}.auth-brand img{width:72px;height:72px}.auth-brand h1{font-size:38px}.admin-overview{grid-template-columns:1fr}.user-chip{display:none!important}}
body.viewer-mode .main input:not(#teamSwitcher),body.viewer-mode .main textarea,body.viewer-mode .main select:not(#teamSwitcher),body.viewer-mode .main .primary-btn:not([data-goto]),body.viewer-mode .main .secondary-btn,body.viewer-mode .main .danger-btn{pointer-events:none;opacity:.58}body.viewer-mode .main:before{content:"Mode lecture seule";position:fixed;right:18px;bottom:18px;z-index:45;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-size:9px;color:var(--muted);box-shadow:var(--shadow)}
body.viewer-mode #boardCanvas,body.viewer-mode .tactical-tools .tool,body.viewer-mode #captureSequenceBtn,body.viewer-mode #clearBoardBtn,body.viewer-mode #deleteSelectedBtn{pointer-events:none!important;opacity:.62}
.team-row small{display:block;margin-top:3px}

/* ========================= VISTA+ CLUB FEATURES ========================= */
.club-session-links{display:grid;grid-template-columns:minmax(180px,.7fr) 1.3fr;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.principle-picker{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}.principle-check{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--line);background:var(--panel-2);border-radius:10px;cursor:pointer}.principle-check input{width:auto;margin:0}.principle-check b{display:block;font-size:10px}.principle-check small{display:block;color:var(--muted);font-size:8px;margin-top:1px}
.planning-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.planning-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:14px}.planning-layout>.panel,.cycle-panel{padding:16px}.cycle-list{display:grid;gap:10px;margin-top:14px}.cycle-card{border:1px solid var(--line);background:var(--panel-2);border-radius:14px;padding:13px}.cycle-card-head{display:flex;justify-content:space-between;gap:10px}.cycle-card h4{margin:3px 0 0;font-size:13px}.cycle-card p{color:var(--muted);font-size:10px;line-height:1.5;margin:9px 0}.cycle-dates{font-size:9px;color:var(--muted)}.progress-line{height:6px;border-radius:999px;background:var(--panel);overflow:hidden;margin:9px 0 5px}.progress-line i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--blue-2));border-radius:inherit}.cycle-card small{font-size:9px;color:var(--muted)}.season-timeline{display:grid;gap:8px;margin-top:14px}.timeline-session{display:grid;grid-template-columns:95px minmax(0,1fr) 190px;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);background:var(--panel-2);border-radius:11px}.timeline-date{font-size:10px;color:var(--blue-2);font-weight:750}.timeline-session strong{display:block;font-size:11px}.timeline-session small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.timeline-session select{margin:0}
.method-phases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.method-phase{padding:16px}.method-list{display:grid;gap:8px;margin-top:13px}.method-item{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);background:var(--panel-2);border-radius:12px}.method-item strong{font-size:11px}.method-item p{color:var(--muted);font-size:10px;line-height:1.5;margin:5px 0 0}
.centre-layout,.category-dashboard{display:grid;grid-template-columns:1fr 1fr;gap:14px}.centre-layout>.panel,.category-dashboard>.panel{padding:16px}.notice-list,.audit-list,.category-team-list{display:grid;gap:9px;margin-top:14px}.notice-card{border:1px solid var(--line);background:var(--panel-2);border-radius:13px;padding:13px}.notice-card-head{display:flex;align-items:center;justify-content:space-between}.notice-card h4{font-size:12px;margin:9px 0 6px}.notice-card p{color:var(--muted);font-size:10px;line-height:1.55;white-space:pre-wrap}.notice-card small{font-size:9px;color:var(--muted)}.audit-row{display:grid;grid-template-columns:9px minmax(0,1fr);gap:10px;padding:10px;border-bottom:1px solid var(--line)}.audit-row>i{width:7px;height:7px;border-radius:50%;background:var(--blue);margin-top:4px;box-shadow:0 0 0 4px rgba(46,99,255,.10)}.audit-row strong,.audit-row span,.audit-row small{display:block}.audit-row strong{font-size:10px}.audit-row span{font-size:9px;color:var(--muted);margin-top:2px}.audit-row small{font-size:8px;color:var(--muted);margin-top:4px}.category-team-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px;border:1px solid var(--line);background:var(--panel-2);border-radius:12px}.category-team-row strong{display:block;font-size:11px}.category-team-row small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.category-team-metrics{text-align:right}.category-team-metrics span{display:block;color:var(--blue-2);font-size:10px;font-weight:750}.theme-bar{margin:12px 0}.theme-bar>div{display:flex;justify-content:space-between;font-size:10px}.theme-bar>div span{color:var(--muted)}.theme-bar>i{display:block;height:7px;border-radius:999px;background:var(--panel-2);overflow:hidden;margin-top:5px}.theme-bar>i>b{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#e9364c);border-radius:inherit}
.field-mode-overlay{position:fixed;inset:0;background:#050a12;z-index:240;padding:18px;display:flex;flex-direction:column}.field-mode-overlay[hidden]{display:none}.field-mode-top{display:flex;align-items:center;justify-content:space-between;color:#fff;margin-bottom:14px}.field-mode-top strong{display:block;font-size:20px;margin-top:3px}.field-mode-body{display:grid;grid-template-columns:280px minmax(0,1fr) 320px;gap:14px;flex:1;min-height:0}.field-timer-card,.field-exercise-card,.field-notes-card{border:1px solid #203554;background:#0d1626;border-radius:18px;padding:20px;color:#fff}.field-timer-card{display:flex;flex-direction:column;justify-content:center;text-align:center}.field-timer-card>span{color:#91a1b8;font-size:11px;text-transform:uppercase;letter-spacing:.12em}.field-timer-card>strong{font-size:58px;letter-spacing:-.05em;margin:10px 0 18px}.field-timer-card .actions{justify-content:center}.field-exercise-card{display:flex;flex-direction:column;justify-content:center}.field-exercise-card h2{font-size:38px;margin:8px 0 12px;letter-spacing:-.04em}.field-exercise-card p{font-size:16px;line-height:1.65;color:#d6deea;max-width:760px}.field-exercise-meta{display:flex;gap:8px;flex-wrap:wrap}.field-exercise-meta span{padding:6px 9px;border:1px solid #294568;background:#111f35;border-radius:999px;font-size:10px}.field-exercise-card .actions{margin-top:20px}.field-notes-card{display:flex;flex-direction:column;justify-content:center}.field-notes-card textarea{min-height:150px}
.club-readonly .view input:not([type="month"]),.club-readonly .view textarea,.club-readonly .view select,.club-readonly #boardCanvas{pointer-events:none;opacity:.72}.club-readonly .view .primary-btn,.club-readonly .view .secondary-btn,.club-readonly .view .danger-btn,.club-readonly .view .tool,.club-readonly .view .status-btn,.club-readonly .view .picker-btn,.club-readonly .view .mini-btn{pointer-events:none;opacity:.55}.club-readonly #exportStatsCsvBtn,.club-readonly #exportSessionPdfBtn,.club-readonly #exportPngBtn,.club-readonly #presentationBtn,.club-readonly #monthlyReportBtn{pointer-events:auto;opacity:1}
@media(max-width:1100px){.planning-layout,.centre-layout,.category-dashboard{grid-template-columns:1fr}.method-phases{grid-template-columns:1fr}.field-mode-body{grid-template-columns:1fr;overflow:auto}.field-timer-card>strong{font-size:42px}.field-exercise-card h2{font-size:30px}}
@media(max-width:700px){.planning-overview{grid-template-columns:1fr 1fr}.club-session-links{grid-template-columns:1fr}.timeline-session{grid-template-columns:1fr}.timeline-session select{width:100%}.field-mode-overlay{padding:10px}.field-mode-body{gap:9px}.field-timer-card,.field-exercise-card,.field-notes-card{padding:16px}.field-exercise-card h2{font-size:25px}.field-exercise-card p{font-size:13px}}

/* ========================= VISTA+ OPTIMIZED / RESPONSIVE ========================= */
.install-app-btn{white-space:nowrap}
.inline-toggle{display:flex!important;align-items:center;gap:8px;color:var(--muted);font-size:10px}.inline-toggle input{width:auto;margin:0}
.session-review-panel{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.review-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.review-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.review-status select{min-width:160px}.review-comments{display:grid;gap:8px;margin-top:10px}.review-comment{padding:10px 12px;border:1px solid var(--line);background:var(--panel-2);border-radius:11px}.review-comment strong{display:block;font-size:10px}.review-comment small{display:block;color:var(--muted);font-size:8px;margin-top:3px}.review-comment p{font-size:10px;line-height:1.5;margin:7px 0 0;white-space:pre-wrap}.review-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:10px}.review-add input{margin:0}
.performance-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.performance-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:14px}.performance-layout>.panel{padding:16px}.performance-axis-list{display:grid;gap:10px;margin-top:14px}.axis-card{border:1px solid var(--line);background:var(--panel-2);border-radius:14px;padding:13px}.axis-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.axis-card h4{font-size:13px;margin:3px 0 0}.axis-card p{color:var(--muted);font-size:10px;line-height:1.5;margin:8px 0}.axis-meta{display:flex;gap:6px;flex-wrap:wrap}.axis-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:10px}.axis-progress button{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px;font-size:9px;cursor:pointer}.axis-progress button.active{background:var(--blue);border-color:var(--blue);color:#fff}.objective-player{border:1px solid var(--line);background:var(--panel-2);border-radius:12px;padding:11px;margin-top:8px}.objective-player strong{font-size:11px}.objective-player p{color:var(--muted);font-size:9px;line-height:1.45;margin:4px 0}.objective-progress{height:6px;background:var(--panel);border-radius:99px;overflow:hidden}.objective-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--green))}
.clubplan-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:14px}.clubplan-layout>.panel{padding:16px}.club-booking-list,.facility-list{display:grid;gap:9px;margin-top:14px}.booking-card,.facility-card{border:1px solid var(--line);background:var(--panel-2);border-radius:12px;padding:12px}.booking-card{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:12px;align-items:center}.booking-time{font-weight:800;font-size:12px;color:var(--blue-2)}.booking-card strong,.facility-card strong{font-size:11px;display:block}.booking-card small,.facility-card small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.conflict-banner{padding:11px 13px;border-radius:12px;border:1px solid rgba(240,200,73,.35);background:rgba(240,200,73,.08);color:#f6d873;font-size:10px;margin-bottom:12px}.conflict-badge{display:inline-flex;padding:3px 7px;border-radius:999px;background:rgba(233,54,76,.12);border:1px solid rgba(233,54,76,.25);color:#ff9aa7;font-size:8px}
.global-search-panel{padding:18px}.global-search-box{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--panel-2);border-radius:14px;padding:0 14px}.global-search-box span{font-size:20px;color:var(--blue-2)}.global-search-box input{border:0;background:transparent;font-size:18px;padding:15px 0;margin:0;width:100%;color:var(--text)}.search-filter-row{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.search-filter{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:999px;padding:7px 10px;font-size:9px;cursor:pointer}.search-filter.active{background:var(--blue);border-color:var(--blue);color:#fff}.global-search-results{display:grid;gap:8px}.search-result{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);background:var(--panel-2);border-radius:12px;cursor:pointer}.search-result:hover{border-color:#466ca5}.search-result-icon{width:36px;height:36px;border-radius:10px;background:rgba(46,99,255,.1);display:grid;place-items:center}.search-result strong{font-size:11px;display:block}.search-result small{font-size:9px;color:var(--muted);display:block;margin-top:3px}.search-result-type{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--blue-2)}
.history-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px}.history-layout>.panel{padding:16px}.trash-list,.snapshot-list{display:grid;gap:9px;margin-top:14px}.trash-item,.snapshot-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);background:var(--panel-2);border-radius:12px}.trash-item strong,.snapshot-item strong{font-size:11px;display:block}.trash-item small,.snapshot-item small{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.favorite-btn.active{color:#f0c849}.library-card-meta-editor{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}.library-card-meta-editor select,.library-card-meta-editor input{margin:0;padding:7px 8px;font-size:9px}
.presentation-stage{position:relative}.presentation-stage canvas{position:absolute;inset:0;width:100%;height:100%}.presentation-stage #presentationCanvas{z-index:1}.presentation-stage #presentationAnnotationCanvas{z-index:2;pointer-events:none;touch-action:none}.presentation-stage.annotating #presentationAnnotationCanvas{pointer-events:auto;cursor:crosshair}.presentation-annotation-active{border-color:var(--yellow)!important;color:var(--yellow)!important}.remote-code-card{display:grid;place-items:center;border:1px solid var(--line);background:var(--panel-2);border-radius:14px;padding:18px;margin:12px 0}.remote-code-card span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.remote-code-card strong{font-size:36px;letter-spacing:.15em;margin-top:6px}.remote-controller{position:fixed;inset:0;z-index:500;background:#050a12;display:grid;place-items:center;padding:16px}.remote-controller[hidden]{display:none}.remote-controller-card{width:min(440px,100%);text-align:center;color:#fff}.remote-controller-card img{width:86px;height:86px;object-fit:contain}.remote-controller-card h2{font-size:28px;margin:8px 0}.remote-controller-card p{color:#91a1b8}.remote-controller-controls{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:10px;margin-top:20px}.remote-controller-controls.secondary{grid-template-columns:1fr 1fr}.remote-controller-controls button{min-height:74px;border:1px solid #294568;background:#111f35;color:#fff;border-radius:16px;font-size:22px;font-weight:800}.remote-controller-controls.secondary button{font-size:12px;min-height:54px}
.player-objectives{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.player-objective-row{display:grid;grid-template-columns:minmax(0,1fr) 95px auto;gap:6px;align-items:center;margin-top:7px}.player-objective-row input,.player-objective-row select{margin:0}.player-objective-list{display:grid;gap:7px;margin-top:9px}.player-objective-item{padding:9px;border:1px solid var(--line);background:var(--panel-2);border-radius:10px}.player-objective-item-head{display:flex;justify-content:space-between;gap:8px}.player-objective-item strong{font-size:10px}.player-objective-item small{color:var(--muted);font-size:8px}
.board-zoomed{overflow:auto!important;align-items:flex-start!important;justify-content:flex-start!important}.board-zoomed canvas{max-width:none!important;max-height:none!important}.board-template-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.board-template-chip{border:1px solid var(--line);background:var(--panel-2);border-radius:999px;padding:5px 8px;font-size:8px;cursor:pointer}
.notification-dot{display:inline-flex;min-width:17px;height:17px;border-radius:999px;background:var(--red);color:white;align-items:center;justify-content:center;font-size:8px;margin-left:auto;padding:0 4px}.nav-btn .notification-dot{width:auto;background:var(--red)}
.offline-banner{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:90;padding:8px 12px;border-radius:999px;background:#8a641b;color:#fff;font-size:9px;box-shadow:var(--shadow)}

/* Tablet: keep full functionality while reducing chrome */
@media(max-width:1180px){
  :root{--sidebar:205px}.tactics-shell{grid-template-columns:175px minmax(0,1fr)}.properties{grid-column:1/-1;position:static;max-height:none}.performance-layout,.clubplan-layout,.history-layout{grid-template-columns:1fr}.performance-overview{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .topbar{height:68px;padding:0 12px}.topbar-actions{gap:6px}.topbar-actions .quick-session-label{display:none}.install-app-btn{padding:8px 9px;font-size:9px}.view{padding:14px 12px 92px}.section-head h2{font-size:24px}.hero-card{padding:24px}.hero-copy h2{font-size:30px}.stats-grid{gap:8px}.stat{padding:14px}.stat strong{font-size:24px}.session-workspace,.exercise-editor-grid,.matches-layout,.season-layout,.library-layout{min-width:0}.performance-overview{grid-template-columns:repeat(2,1fr)}.booking-card{grid-template-columns:75px minmax(0,1fr)}.booking-card>.actions{grid-column:1/-1}.global-search-box input{font-size:15px}
  .presentation-controls{max-width:calc(100vw - 18px);overflow-x:auto;justify-content:flex-start}.presentation-hint{display:none}
}
@media(max-width:700px){
  html,body{overscroll-behavior-y:none}.sidebar{width:min(86vw,310px)}.topbar-left .eyebrow{display:none}.topbar h1{font-size:15px}.topbar-actions .install-app-btn{display:none}.hero-card{padding:20px;min-height:0}.hero-copy h2{font-size:25px}.hero-copy p{font-size:12px}.hero-copy .actions{display:grid;grid-template-columns:1fr 1fr}.hero-copy .actions>*:last-child{grid-column:1/-1}.stats-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.section-head{align-items:stretch}.section-head>.actions{width:100%;overflow-x:auto;padding-bottom:2px}.section-head>.actions>*{flex:0 0 auto}.session-general,.exercise-builder,.match-form-panel,.season-player-table-panel,.season-side-panel,.global-search-panel{padding:13px!important}.form-grid.two,.form-grid.three{grid-template-columns:1fr}.club-session-links{grid-template-columns:1fr}.review-add{grid-template-columns:1fr}.players-grid{display:block}.players-grid>.panel{margin-bottom:10px}.calendar{grid-template-columns:repeat(7,minmax(54px,1fr));overflow-x:auto}.attendance-row{grid-template-columns:minmax(78px,1fr) repeat(6,30px)}.status-btn{width:30px}.performance-overview{grid-template-columns:1fr 1fr}.axis-progress{grid-template-columns:1fr}.global-search-results{gap:6px}.search-result{grid-template-columns:32px minmax(0,1fr)}.search-result-type{grid-column:2}.history-layout,.performance-layout,.clubplan-layout{display:block}.history-layout>.panel,.performance-layout>.panel,.clubplan-layout>.panel{margin-bottom:10px}.library-card-meta-editor{grid-template-columns:1fr}.field-mode-body{display:block;overflow:auto}.field-timer-card,.field-exercise-card,.field-notes-card{margin-bottom:9px}.field-mode-overlay{padding:8px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.field-timer-card>strong{font-size:44px}.field-exercise-card h2{font-size:24px}.remote-controller-controls button{min-height:70px}.presentation-top{padding-top:max(10px,env(safe-area-inset-top))}.presentation-controls{padding-bottom:max(10px,env(safe-area-inset-bottom))}
  .tactics-shell{display:block}.tactical-tools,.properties{position:static;max-height:none;margin-bottom:10px}.tactical-tools .tool-grid{grid-template-columns:repeat(4,1fr)}.tool{min-height:52px}.board-card{padding:10px}.board-head{align-items:flex-start}.board-actions{width:100%;overflow-x:auto}.board-actions>*{flex:0 0 auto}.timeline-card{padding:10px}.canvas-wrap{border-radius:10px}.canvas-wrap.half-pitch-vertical{max-width:100%}
}
@media(max-width:480px){
  .view{padding:10px 8px 86px}.hero-logo{display:none}.hero-copy .actions{grid-template-columns:1fr}.hero-copy .actions>*:last-child{grid-column:auto}.stats-grid{gap:6px}.stat{padding:11px}.stat strong{font-size:21px}.section-head h2{font-size:21px}.topbar-actions #globalSearchBtn{display:none}.tactical-tools .tool-grid{grid-template-columns:repeat(3,1fr)}.performance-overview{grid-template-columns:1fr}.booking-card{grid-template-columns:1fr}.player-objective-row{grid-template-columns:1fr}.remote-controller-card h2{font-size:24px}.presentation-speed{display:none}
}

@media(display-mode:standalone){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav{bottom:max(8px,env(safe-area-inset-bottom))}}
.shared-library-panel{padding:16px;margin-top:14px}.shared-library-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.shared-library-card{border:1px solid var(--line);background:var(--panel-2);border-radius:13px;padding:12px}.shared-library-card h4{font-size:12px;margin:6px 0}.shared-library-card p{color:var(--muted);font-size:9px;line-height:1.45;min-height:38px}.shared-library-card small{display:block;color:var(--muted);font-size:8px;margin-top:4px}.share-scope{display:inline-flex;padding:3px 7px;border:1px solid rgba(46,99,255,.2);background:rgba(46,99,255,.09);color:var(--blue-2);border-radius:999px;font-size:8px}.library-share-btn{margin-left:auto}
@media(max-width:1000px){.shared-library-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.shared-library-list{grid-template-columns:1fr}}
.admin-advanced-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.admin-advanced-grid>.panel{padding:18px}.admin-advanced-grid .secondary-btn{margin-top:12px}
@media(max-width:900px){.admin-advanced-grid{grid-template-columns:1fr}}
@media(max-width:900px){button,.ghost-btn,.secondary-btn,.primary-btn,.danger-btn{min-height:42px}.icon-btn{width:42px;height:42px}.bottom-nav button{min-height:48px}}


/* Vista+ — contraste nuit & séparation des espaces de gestion */
body[data-theme="dark"] select{
  color-scheme:dark;
  background-color:#101d31;
  color:#f4f7fb;
  border-color:#294363;
}
body[data-theme="dark"] select:hover{border-color:#3b5f8d;background-color:#13233a}
body[data-theme="dark"] select:focus{border-color:#4c78ff;background-color:#13233a}
body[data-theme="dark"] select option,
body[data-theme="dark"] select optgroup{
  background:#0d1829;
  color:#f4f7fb;
}
body[data-theme="dark"] select option:checked{background:#244fba;color:#fff}
body[data-theme="dark"] .workspace-context select{
  background:#0c1728;
  border-color:#294363;
  color:#f6f8fc;
}
.nav-admin-separator{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin:8px 4px 1px;padding-top:12px;border-top:1px solid rgba(233,54,76,.28)}
.nav-admin-separator[hidden]{display:none}
.nav-admin-separator>span{height:1px;background:linear-gradient(90deg,rgba(233,54,76,.42),transparent)}
.nav-admin-separator>b{font-size:7.5px;letter-spacing:.14em;color:#d88995;font-weight:850;white-space:nowrap}
.nav-btn.admin-nav{position:relative;border:1px solid rgba(233,54,76,.08);background:rgba(233,54,76,.025)}
.nav-btn.admin-nav>span{background:rgba(233,54,76,.10);color:#ff9fac}
.nav-btn.admin-nav>small{margin-left:auto;font-size:7px;color:#b97882;text-transform:uppercase;letter-spacing:.05em}
.nav-btn.admin-nav:hover,.nav-btn.admin-nav.active{background:rgba(233,54,76,.12);border-color:rgba(233,54,76,.22)}
.nav-btn.admin-nav.active>span{background:linear-gradient(180deg,#e94a5e,#b8273b);color:#fff}
.nav-btn.admin-nav-strong{background:linear-gradient(90deg,rgba(233,54,76,.07),rgba(233,54,76,.015))}
body[data-theme="light"] .nav-admin-separator{border-top-color:rgba(190,45,62,.20)}
body[data-theme="light"] .nav-admin-separator>b{color:#a64a58}
body[data-theme="light"] .nav-btn.admin-nav{background:#fff8f9;border-color:#f1d6da}
body[data-theme="light"] .nav-btn.admin-nav>span{background:#fbe9ec;color:#b62f43}
.admin-panel-help{margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.4}
.admin-user{grid-template-columns:38px minmax(0,1fr) auto!important}
.admin-user-main{min-width:0}.admin-user-main strong{display:block}.admin-user-main small{display:block;margin-top:3px}
.admin-user-access{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.admin-user-categories{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.category-chip{display:inline-flex;align-items:center;padding:3px 6px;border-radius:999px;background:rgba(46,99,255,.11);border:1px solid rgba(46,99,255,.20);color:var(--blue-2);font-size:8px;font-weight:750}
.category-chip.manager{background:rgba(233,54,76,.09);border-color:rgba(233,54,76,.20);color:#ff9fac}
.manage-categories-btn{white-space:nowrap}
.category-access-modal{width:min(620px,100%)}
.category-access-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.category-access-item{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--panel-2);border-radius:12px;padding:11px;cursor:pointer;transition:.16s}
.category-access-item:hover{border-color:#466ca5}
.category-access-item:has(input:checked){border-color:var(--blue);background:rgba(46,99,255,.10)}
.category-access-item input{width:16px;height:16px;margin:0;accent-color:var(--blue)}
.category-access-item span{display:grid;gap:2px}.category-access-item strong{font-size:11px}.category-access-item small{font-size:8px;color:var(--muted)}
.category-access-note{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:start;padding:10px 11px;margin-top:12px;border-radius:10px;background:rgba(46,99,255,.07);border:1px solid rgba(46,99,255,.13)}
.category-access-note>span{color:var(--blue-2);font-weight:900}.category-access-note p{margin:0;color:var(--muted);font-size:9px;line-height:1.5}
@media(max-width:700px){.nav-btn.admin-nav>small{display:none}.category-access-list{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-user-access{grid-column:2/-1;justify-content:flex-start}.admin-user{grid-template-columns:38px minmax(0,1fr)!important}}
@media(max-width:430px){.category-access-list{grid-template-columns:1fr}}

/* Centre intégré à l’accueil */
.dashboard-centre{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.dashboard-centre-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:12px}
.dashboard-centre-head h2{margin:4px 0 4px;font-size:20px;letter-spacing:-.025em}
.dashboard-centre-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.dashboard-centre-grid>.panel{min-height:210px}
.nav-btn .notification-dot{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e9364c;color:#fff;font-size:8px;font-weight:850;display:grid;place-items:center;box-shadow:0 0 0 3px rgba(233,54,76,.10)}
@media(max-width:700px){.dashboard-centre-head{align-items:stretch;flex-direction:column}.dashboard-centre-head .primary-btn{width:100%}}
