:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef1f4;color:#18202a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--panel: #ffffff;--line: #d9e0e7;--muted: #607083;--ink: #18202a;--accent: #2563eb;--accent-strong: #1d4ed8;--success: #14804a;--warning: #b7791f;--danger: #c2410c;--shadow: 0 16px 40px rgba(24, 32, 42, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;min-height:38px;padding:.55rem .8rem;transition:background .16s ease,border-color .16s ease,color .16s ease}button:hover{border-color:#9aa8b7;background:#f8fafc}button.active,.primary-button{border-color:var(--accent);background:var(--accent);color:#fff}button.active:hover,.primary-button:hover{border-color:var(--accent-strong);background:var(--accent-strong)}.ghost-button{background:#f8fafc}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);min-height:38px;padding:.55rem .65rem}textarea{resize:vertical}label{display:grid;gap:.35rem;color:#344256;font-size:.9rem;font-weight:650}fieldset{border:1px solid var(--line);border-radius:8px;margin:0;padding:.8rem}legend{color:#344256;font-size:.9rem;font-weight:700;padding:0 .35rem}table{width:100%;border-collapse:collapse;min-width:900px}th,td{border:1px solid var(--line);padding:.3rem .55rem;text-align:left;vertical-align:middle;font-size:.85rem}th{background:#f1f5f9;color:#475569;font-size:.74rem;letter-spacing:0;text-transform:uppercase;white-space:nowrap}td{color:#253245}tbody tr:nth-child(2n) td{background:#fafcfe}tfoot td{background:#f1f5f9}.app-shell{width:min(1520px,calc(100vw - 32px));margin:0 auto;padding:24px 0 48px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.app-header h1,h2{margin:0;letter-spacing:0}.app-header h1{font-size:clamp(1.6rem,3vw,2.4rem)}h2{font-size:1.05rem}.eyebrow{color:var(--accent);font-size:.76rem;font-weight:800;letter-spacing:0;margin:0 0 .18rem;text-transform:uppercase}.tabs{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;margin-bottom:1rem}.metric{border:1px solid var(--line);border-left:4px solid #6b7a90;border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:1rem;min-height:96px}.metric span{display:block;color:var(--muted);font-size:.85rem;margin-bottom:.45rem}.metric strong{display:block;color:var(--ink);font-size:1.12rem;line-height:1.25}.metric.success{border-left-color:var(--success)}.metric.danger{border-left-color:var(--danger)}.treasury-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:.9rem}.treasury-grid .metric{box-shadow:none;min-height:78px;padding:.75rem}.roster-box{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.dashboard-layout,.split-layout{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:1rem;margin-bottom:1rem}.split-layout{grid-template-columns:repeat(3,minmax(280px,1fr))}.two-columns{grid-template-columns:minmax(320px,420px) minmax(0,1fr)}.panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:1rem}.form-panel{display:grid;align-content:start;gap:.9rem}.table-panel{margin-bottom:1rem}.section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.form-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.checkbox-list{display:flex;flex-wrap:wrap;gap:.5rem .85rem}.checkbox-row{align-items:center;display:flex;flex-direction:row;gap:.45rem;font-weight:600}.checkbox-row input{width:16px;min-height:16px}.player-list{display:grid;gap:.45rem;list-style:none;margin:0 0 1rem;padding:0}.player-list li{border:1px solid var(--line);border-radius:8px;padding:.65rem .75rem;background:#f8fafc}.inline-form,.button-row{display:flex;gap:.6rem}.inline-form input{min-width:0}.table-wrap{overflow-x:auto}.actions-cell{display:flex;gap:.45rem;justify-content:flex-end;white-space:nowrap}.actions-cell button{min-height:32px;padding:.35rem .55rem}.positive{color:var(--success);font-weight:750}.negative{color:var(--danger);font-weight:750}.warning{color:var(--warning);font-weight:750}.muted{color:var(--muted);margin:.35rem 0 0}.session-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.session-switcher{min-width:min(360px,100%)}.badge{border-radius:999px;display:inline-flex;font-size:.78rem;font-weight:800;padding:.25rem .55rem}.badge.liquid{background:#dcfce7;color:#166534}.badge.estimated{background:#fef3c7;color:#92400e}.export-panel{max-width:900px}.export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.export-button{align-items:flex-start;display:grid;gap:.2rem;min-height:86px;padding:1rem;text-align:left}.export-button span{font-weight:800}.export-button small{color:var(--muted)}.empty-state{border:1px dashed #aab6c4;border-radius:8px;background:#fff;padding:2rem;text-align:center}@media(max-width:1120px){.summary-grid,.split-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-layout,.two-columns{grid-template-columns:1fr}}@media(max-width:720px){.app-shell{width:min(100vw - 20px,1520px);padding-top:14px}.app-header,.session-head{align-items:stretch;flex-direction:column}.tabs{justify-content:flex-start}.summary-grid,.split-layout,.form-grid,.form-grid.compact,.treasury-grid,.export-grid{grid-template-columns:1fr}.inline-form,.button-row{flex-direction:column}table{min-width:760px}}.sync-badge{display:inline-block;margin-top:.4rem;padding:.15rem .6rem;border-radius:999px;border:1px solid var(--line);font-size:.78rem;color:var(--muted);background:var(--panel)}.sync-badge.sync-synchronise{border-color:#14804a59;color:var(--success)}.sync-badge.sync-enregistrement{border-color:#2563eb59;color:var(--accent-strong)}.sync-badge.sync-hors-ligne{border-color:#c2410c66;color:var(--danger)}.login-panel{max-width:420px;margin:14vh auto 0;padding:2rem;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);text-align:center}.login-hint{color:var(--muted)}.login-denied{color:var(--danger);border:1px solid rgba(194,65,12,.35);border-radius:8px;padding:.6rem .8rem;background:#c2410c0f}.login-button{display:inline-block;margin-top:.8rem;padding:.7rem 1.2rem;border-radius:8px;text-decoration:none}.user-chip{display:flex;align-items:center;gap:.5rem;padding:.3rem .5rem;border:1px solid var(--line);border-radius:999px;background:var(--panel)}.user-chip img{width:26px;height:26px;border-radius:50%}.user-chip span{font-size:.85rem;color:var(--muted)}.user-chip button{min-height:30px;padding:.25rem .6rem;font-size:.8rem;border-radius:999px}.sale-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.9rem}.sale-tag{display:inline-block;margin-left:.45rem;padding:.05rem .45rem;border:1px solid rgba(183,121,31,.4);border-radius:999px;font-size:.72rem;color:var(--warning);background:#b7791f12}.sale-received-input{width:92px;border:1px solid var(--line);border-radius:6px;padding:.25rem .4rem;font-size:.85rem}.sale-status-select{border:1px solid var(--line);border-radius:6px;padding:.25rem .3rem;font-size:.85rem;background:var(--panel)}.table-fine th,.table-fine td{padding:.1rem .45rem;font-size:.8rem;line-height:1.35}.table-fine th{font-size:.68rem}.table-fine td button{min-height:20px;padding:0 .5rem;font-size:.72rem;border-radius:4px}.form-fine{gap:.55rem}.form-fine input,.form-fine select,.form-fine textarea{min-height:26px;padding:.2rem .45rem;font-size:.85rem;border-radius:6px}.form-fine label{font-size:.78rem;font-weight:600;gap:.2rem}.form-fine .form-grid{gap:.5rem}.form-fine fieldset{padding:.45rem .6rem}.form-fine legend{font-size:.78rem}.form-fine .checkbox-list{gap:.25rem .7rem}.form-fine .checkbox-row{font-size:.82rem;font-weight:500}.form-fine .checkbox-row input{width:14px;min-height:14px}.form-fine button{min-height:28px;padding:.25rem .7rem;font-size:.85rem}.form-fine .section-title{margin-bottom:.4rem}.player-chips{display:flex;flex-wrap:wrap;gap:.35rem}button.player-chip{min-height:24px;padding:.08rem .65rem;border-radius:999px;font-size:.8rem;border:1px solid var(--line);background:#f8fafc;color:#344256}button.player-chip:hover{border-color:var(--accent);background:#eef4fb}button.player-chip.selected{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.player-chip.selected:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.chip-actions{display:flex;gap:.6rem;margin-top:.4rem}.chip-actions button{border:none;background:transparent;min-height:20px;padding:0;font-size:.74rem;color:var(--accent);cursor:pointer}.chip-actions button:hover{background:transparent;border:none;text-decoration:underline}.table-fine td input,.table-fine td select{min-height:22px;padding:.05rem .35rem;font-size:.78rem;border-radius:5px}select.sale-status-select.status-vendu{background:#dcfce7;border-color:#86efac;color:#166534;font-weight:600}select.sale-status-select.status-averifier{background:#fef3c7;border-color:#fcd34d;color:#92400e;font-weight:600}select.sale-status-select.status-envente{background:#e0ecfd;border-color:#93c5fd;color:#1d4ed8}select.sale-status-select.status-pricecheck{background:#ede9fe;border-color:#c4b5fd;color:#5b21b6}select.sale-status-select.status-retire{background:#e2e8f0;border-color:#cbd5e1;color:#475569}.app-shell{padding-bottom:96px}.sheet-tabs{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;align-items:stretch;gap:2px;padding:0 12px 6px;background:#e6eaef;border-top:1px solid #c2ccd6;overflow-x:auto}button.sheet-tab{border:1px solid #c2ccd6;border-top:none;border-radius:0 0 7px 7px;background:var(--tab-color, #64748b);color:#fff;font-size:.8rem;font-weight:600;min-height:30px;padding:.2rem .95rem;white-space:nowrap}button.sheet-tab:hover{background:var(--tab-color, #64748b);border-color:#c2ccd6;filter:brightness(1.15)}button.sheet-tab.active{background:#fff;color:var(--tab-color, #1e293b);border-color:#c2ccd6;box-shadow:inset 0 3px 0 var(--tab-color, #64748b);filter:none;min-height:34px}.sheet-tabs-spacer{flex:1}button.sheet-tab.secondary{background:#f1f5f9;color:#475569;font-weight:500}button.sheet-tab.secondary:hover{background:#f8fafc;filter:none}button.sheet-tab.secondary.active{background:#fff;color:#1e293b;box-shadow:inset 0 3px #94a3b8}.create-session-panel{max-width:860px;margin-bottom:1rem}.joueurs-add-form{margin-top:.8rem;max-width:420px}.fiche-actions{display:flex;align-items:center;gap:.5rem}.fiche-actions select{min-width:280px}.fiche-input{width:84px}.roster-name-cell{min-width:210px}.player-rename{width:100%;max-width:210px;background:transparent;border:1px solid transparent;border-radius:5px;padding:.22rem .45rem;font:inherit;color:inherit;transition:border-color .12s ease,background .12s ease}.player-rename:hover{border-color:#ffffff1f}.player-rename:focus{border-color:#2563eb99;background:#ffffff0a;outline:none}.player-account{display:block;font-size:.72rem;padding-left:.5rem;margin-top:.12rem;letter-spacing:.02em}.roster-row.clickable{cursor:pointer}.roster-row.clickable:hover{background:#ffffff0a}.roster-remaining{display:inline-flex;align-items:center;gap:.4rem}.expand-caret{font-size:.75em;opacity:.7}.roster-detail-row>td{padding:0}.roster-detail{display:flex;flex-direction:column;gap:.3rem;padding:.5rem 1rem .7rem 1.5rem;background:#ffffff05}.roster-detail-head{font-size:.8rem;margin-bottom:.15rem}.roster-detail-line{display:flex;justify-content:space-between;gap:1.5rem;width:100%;max-width:380px;font-variant-numeric:tabular-nums;appearance:none;background:#ffffff08;border:1px solid var(--border, rgba(255, 255, 255, .08));border-radius:6px;color:inherit;font:inherit;text-align:left;padding:.35rem .7rem;cursor:pointer;transition:background .12s ease,border-color .12s ease}.roster-detail-line:hover:not(:disabled){background:#2563eb24;border-color:#2563eb80}.roster-detail-line:disabled{cursor:default;opacity:.6}.roster-detail-row-line{display:flex;align-items:stretch;gap:.4rem}.roster-pay-button{appearance:none;border:1px solid rgba(109,189,90,.5);background:#6dbd5a1f;color:#6dbd5a;border-radius:6px;padding:.35rem .75rem;font:inherit;font-size:.82rem;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease}.roster-pay-button:hover{background:#6dbd5a40;border-color:#6dbd5acc}.remaining-due{color:#ea580c;font-variant-numeric:tabular-nums}.fiche-total{font-variant-numeric:tabular-nums;font-weight:600;cursor:help}.fiche-raw{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;margin:.6rem 0 .2rem;padding:.6rem .8rem;border:1px solid var(--border, rgba(255, 255, 255, .08));border-radius:8px;background:#ffffff05}.fiche-raw-auto,.fiche-raw-manual{display:flex;flex-direction:column;gap:.2rem}.fiche-raw-inputs{display:flex;align-items:center;gap:.35rem}.expense-form-panel{max-width:820px}.expense-form{display:flex;flex-direction:column;gap:.9rem}.expense-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem .9rem}.expense-form-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;color:var(--muted, #9aa4b2)}.expense-form-grid input,.expense-form-grid select{width:100%}.expense-form-grid .span-2{grid-column:span 2}.expense-form-grid .span-full{grid-column:1 / -1}.expense-form .primary-button{align-self:flex-start;min-width:220px}.expense-summary{font-variant-numeric:tabular-nums}.expense-session-select{min-width:140px}.cat-chip{display:inline-block;padding:.08rem .55rem;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);font-size:.78rem;white-space:nowrap}.row-delete{background:transparent;border:none;color:var(--muted, #8b95a3);cursor:pointer;font-size:.9rem;line-height:1;padding:.2rem .45rem;border-radius:5px;transition:background .12s ease,color .12s ease}.row-delete:hover{color:#ef4444;background:#ef444421}.row-delete:disabled{opacity:.3;cursor:not-allowed}.row-delete:disabled:hover{color:var(--muted, #8b95a3);background:transparent}.create-session-form{display:grid;gap:.65rem}.create-session-grid{display:grid;grid-template-columns:110px 150px minmax(220px,1fr) 110px;gap:.5rem}.players-row-head{display:flex;align-items:baseline;gap:.8rem;margin-bottom:.35rem;font-size:.78rem;font-weight:600;color:#344256}.players-row-head .chip-actions{margin-top:0}.create-session-footer{display:flex;align-items:flex-end;gap:.6rem}.create-session-footer .notes-inline{flex:1}.create-session-footer button{white-space:nowrap;padding-left:1.2rem;padding-right:1.2rem}@media(max-width:760px){.create-session-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.create-row td,.create-row-players td{background:#fffbeb}.create-row td input{min-width:64px}.create-row-actions{display:flex;gap:.3rem;white-space:nowrap}.create-row-actions button:disabled{opacity:.5;cursor:not-allowed}.create-row-extra{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .9rem;padding:.1rem 0}.create-row-extra .players-count-label{font-size:.78rem;font-weight:600;color:#344256;white-space:nowrap}.create-row-extra .player-chips{flex:1;min-width:260px}.create-row-extra .chip-actions{margin-top:0}.create-row-notes{width:220px}.app-header{margin-bottom:.9rem}.app-title{display:flex;align-items:baseline;gap:.6rem}.app-title .eyebrow{margin:0}.app-title h1{font-size:1.15rem;font-weight:800}.app-title .sync-badge{margin-top:0}.header-right{display:flex;align-items:center;gap:.5rem}.theme-toggle{min-height:32px;min-width:36px;padding:.2rem .5rem;border-radius:999px;font-size:1rem;line-height:1}.tab-badge{display:inline-block;margin-left:.4rem;padding:0 .4rem;border-radius:999px;background:#f59e0b;color:#fff;font-size:.68rem;font-weight:700}.sale-search{flex:1;min-width:220px;max-width:340px;margin-left:auto;min-height:30px;padding:.25rem .6rem;font-size:.85rem;border-radius:999px}tbody tr.row-a-verifier td{background:#fffbeb}tbody tr:hover td{background:#eef4fb}[data-theme=dark]{color-scheme:dark;background:#0f141b;color:#dbe4ee;--panel: #161d27;--line: #2a3441;--muted: #8b9bad;--ink: #dbe4ee;--accent: #3b82f6;--accent-strong: #2563eb;--shadow: 0 16px 40px rgba(0, 0, 0, .35)}[data-theme=dark] button{background:#1d2632;color:var(--ink);border-color:var(--line)}[data-theme=dark] button:hover{background:#243042;border-color:#3b4859}[data-theme=dark] button.active,[data-theme=dark] .primary-button{background:var(--accent);border-color:var(--accent);color:#fff}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:#10161f;color:var(--ink);border-color:var(--line)}[data-theme=dark] label,[data-theme=dark] legend,[data-theme=dark] .players-count-label,[data-theme=dark] .checkbox-row{color:#b7c4d4}[data-theme=dark] th{background:#1b2430;color:#9fb0c3}[data-theme=dark] td{color:#cbd6e2}[data-theme=dark] tbody tr:nth-child(2n) td{background:#19212c}[data-theme=dark] tfoot td{background:#1b2430}[data-theme=dark] tbody tr.row-vendu td{background:#122419}[data-theme=dark] tbody tr.row-a-verifier td{background:#2a230f}[data-theme=dark] tbody tr:hover td{background:#223042}[data-theme=dark] .create-row td,[data-theme=dark] .create-row-players td{background:#2a230f}[data-theme=dark] .sheet-tabs{background:#0b0f15;border-top-color:#2a3441}[data-theme=dark] button.sheet-tab.active{background:#161d27}[data-theme=dark] button.sheet-tab.secondary{background:#1d2632;color:#9fb0c3}[data-theme=dark] button.sheet-tab.secondary.active{background:#161d27;color:#dbe4ee}[data-theme=dark] button.player-chip{background:#1d2632;color:#cbd6e2;border-color:var(--line)}[data-theme=dark] button.player-chip.selected{background:var(--accent);border-color:var(--accent);color:#fff}[data-theme=dark] .player-list li,[data-theme=dark] .ghost-button{background:#1d2632}[data-theme=dark] select.sale-status-select.status-vendu{background:#14331f;border-color:#1f5c38;color:#6ee7a0}[data-theme=dark] select.sale-status-select.status-averifier{background:#332a10;border-color:#6b5618;color:#fbd34d}[data-theme=dark] select.sale-status-select.status-envente{background:#14233b;border-color:#1e4173;color:#7ab5fb}[data-theme=dark] select.sale-status-select.status-pricecheck{background:#241a3d;border-color:#463075;color:#c0a6f7}[data-theme=dark] select.sale-status-select.status-retire{background:#1d2632;border-color:#2a3441;color:#8b9bad}[data-theme=dark] .sale-tag{background:#fbd34d14;border-color:#fbd34d59;color:#fbd34d}[data-theme=dark] .login-denied{background:#ef5c2a1a;border-color:#ef5c2a66}.danger-button{border-color:#c2410c73;color:var(--danger)}.danger-button:hover{background:#c2410c14;border-color:var(--danger)}.fiche-players{margin-top:.9rem}.players-hint{font-weight:400;font-size:.75rem}[data-theme=dark] .danger-button{background:transparent;border-color:#ef7a4666;color:#f0966c}[data-theme=dark] .danger-button:hover{background:#ef7a461a;border-color:#f0966c}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}th.sortable:hover{background:#e2e8f0}[data-theme=dark] th.sortable:hover{background:#232f3d}.sort-arrow{color:var(--accent);font-size:.7rem}.muted-cell{color:var(--muted)}.scan-feedback{font-size:.75rem;max-width:380px;text-align:right}.session-sales-block{margin-top:1rem;border-top:1px solid var(--line);padding-top:.9rem}.session-scan-footer{margin-top:1rem;display:flex;justify-content:flex-end}.status-pill{display:inline-block;padding:.05rem .5rem;border-radius:999px;font-size:.74rem;font-weight:600;border:1px solid transparent}.status-pill.status-vendu{background:#dcfce7;border-color:#86efac;color:#166534}.status-pill.status-averifier{background:#fef3c7;border-color:#fcd34d;color:#92400e}.status-pill.status-envente{background:#e0ecfd;border-color:#93c5fd;color:#1d4ed8}.status-pill.status-pricecheck{background:#ede9fe;border-color:#c4b5fd;color:#5b21b6}.status-pill.status-retire{background:#e2e8f0;border-color:#cbd5e1;color:#475569}[data-theme=dark] .status-pill.status-vendu{background:#14331f;border-color:#1f5c38;color:#6ee7a0}[data-theme=dark] .status-pill.status-averifier{background:#332a10;border-color:#6b5618;color:#fbd34d}[data-theme=dark] .status-pill.status-envente{background:#14233b;border-color:#1e4173;color:#7ab5fb}[data-theme=dark] .status-pill.status-pricecheck{background:#241a3d;border-color:#463075;color:#c0a6f7}[data-theme=dark] .status-pill.status-retire{background:#1d2632;border-color:#2a3441;color:#8b9bad}tbody tr.row-vendu td{background:#f0fdf4}tbody tr.row-averifier td{background:#fffbeb}[data-theme=dark] tbody tr.row-averifier td{background:#2a230f}.settle-input{width:72px}.scan-button-wrap{display:inline-flex;align-items:center;gap:.5rem}.scan-button-wrap .scan-progress{margin:0;font-size:.8rem;white-space:nowrap}button.scan-button{min-height:30px;padding:.25rem .7rem;font-size:.82rem}button.fiche-mini-button{min-height:26px;padding:.1rem .6rem;font-size:.78rem;border-radius:6px}select.status-pill-select{appearance:none;-webkit-appearance:none;width:auto;min-height:0;cursor:pointer;text-align:center;text-align-last:center}
