:root{--ink-950:#05070b;--ink-900:#0b1220;--navy-800:#11243a;--navy-700:#183554;--text-strong:#f4f7fb;--text-muted:#a9b7c9;--gold-500:#d5a63b;--gold-300:#f2d47a;--blue-action:#3c8dff;--success:#3abf92;--warning:#e5a943;--danger:#e46161;--rank-p:#d5a63b;--rank-d:#3abf92;--rank-r:#3c8dff;--rank-n:#e46161;--radius:10px;--gap:1rem;--font-title:"Sora","Segoe UI",system-ui,sans-serif;--font-body:"Manrope","Segoe UI",system-ui,sans-serif}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--ink-950);color:var(--text-strong);font-family:var(--font-body);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.55}h1,h2,h3{font-family:var(--font-title);letter-spacing:-.01em;margin:0}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--blue-action);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--ink-900);border-bottom:1px solid var(--navy-700);padding:.75rem 1.25rem;display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.brand{font-family:var(--font-title);font-weight:700;font-size:1.05rem;letter-spacing:.04em;color:var(--gold-500);text-transform:uppercase}.topbar-meta{display:flex;gap:1.5rem;margin-left:auto;flex-wrap:wrap;font-size:.85rem}.topbar-meta div{display:flex;flex-direction:column;line-height:1.25}.topbar-meta span:first-child{color:var(--text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.topbar-meta strong{font-weight:600}.nav{display:flex;gap:.25rem;padding:0 1.25rem;background:var(--ink-900);border-bottom:1px solid var(--navy-700);overflow-x:auto}.nav a{padding:.6rem .9rem;font-size:.9rem;color:var(--text-muted);border-bottom:2px solid transparent;white-space:nowrap}.nav a:hover{color:var(--text-strong)}.nav a[aria-current=page]{color:var(--text-strong);border-bottom-color:var(--blue-action)}.main{flex:1 1;padding:1.5rem 1.25rem 3rem;max-width:1180px;width:100%;margin:0 auto}.card{background:var(--navy-800);border:1px solid var(--navy-700);border-radius:var(--radius);padding:1rem 1.1rem}.section{margin-bottom:1.75rem}.section-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.7rem}.grid{display:grid;grid-gap:var(--gap);gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.muted{color:var(--text-muted)}.small{font-size:.82rem}.player-card{display:flex;flex-direction:column;gap:.65rem;transition:border-color .15s ease}.player-card:hover{border-color:var(--blue-action)}.player-head{display:flex;align-items:center;gap:.75rem}.portrait{width:44px;height:44px;flex:none;border-radius:50%;background:var(--ink-900);border:1px solid var(--navy-700);display:grid;place-items:center;font-size:.85rem;color:var(--text-muted)}.player-name,.portrait{font-family:var(--font-title)}.player-name{font-weight:600;font-size:1rem}.player-sub{font-size:.78rem;color:var(--text-muted)}.total-line{display:flex;align-items:baseline;gap:.4rem}.total-value{font-size:1.35rem;font-weight:700;font-family:var(--font-title)}.total-max{color:var(--text-muted);font-size:.85rem}.equipment-bonus{color:var(--gold-500);font-size:.8rem;font-weight:600}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;border:1px solid;white-space:nowrap}.chip-fresh{color:var(--success);border-color:color-mix(in srgb,var(--success) 45%,transparent);background:color-mix(in srgb,var(--success) 12%,transparent)}.chip-available{color:var(--blue-action);border-color:color-mix(in srgb,var(--blue-action) 45%,transparent);background:color-mix(in srgb,var(--blue-action) 12%,transparent)}.chip-watch{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 45%,transparent);background:color-mix(in srgb,var(--warning) 12%,transparent)}.chip-exhausted,.chip-veryTired{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 12%,transparent)}.chip-neutral{color:var(--text-muted);border-color:var(--navy-700)}.skill-family{margin-bottom:1.1rem}.skill-family-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.45rem}.skill-row{display:grid;grid-template-columns:1fr 3.5rem;align-items:center;grid-gap:.6rem;gap:.6rem;padding:.3rem 0}.skill-label{font-size:.88rem}.skill-bar{grid-column:1/-1;height:4px;background:var(--ink-900);border-radius:2px;overflow:hidden}.skill-bar-fill{height:100%;background:var(--blue-action);border-radius:2px}.skill-value{text-align:right;font-weight:600;font-size:.9rem}.alert{border-left:3px solid;padding:.6rem .85rem;border-radius:6px;background:var(--navy-800);margin-bottom:.5rem}.alert-info{border-color:var(--blue-action)}.alert-warning{border-color:var(--warning)}.alert-danger{border-color:var(--danger)}.alert-title{font-weight:600;font-size:.9rem}.alert-detail{font-size:.82rem;color:var(--text-muted)}.kv{display:flex;justify-content:space-between;padding:.35rem 0;border-bottom:1px solid var(--navy-700);font-size:.88rem}.kv:last-child{border-bottom:none}.kv span:first-child{color:var(--text-muted)}.back-link{display:inline-block;margin-bottom:1rem;font-size:.85rem;color:var(--blue-action)}.empty{padding:2rem;text-align:center;color:var(--text-muted)}.program-card{display:flex;align-items:flex-start;gap:.7rem;cursor:pointer;transition:border-color .15s ease}.program-card:hover{border-color:var(--blue-action)}.program-card input[type=radio]{margin-top:.2rem;accent-color:var(--blue-action);flex:none}.program-card:has(input:checked){border-color:var(--blue-action);background:color-mix(in srgb,var(--blue-action) 8%,var(--navy-800))}.button-primary{background:var(--blue-action);color:#04101f;border:none;border-radius:var(--radius);padding:.65rem 1.4rem;font-family:var(--font-body);font-size:.95rem;font-weight:600;cursor:pointer}.button-primary:hover{filter:brightness(1.08)}.button-primary:disabled{background:var(--navy-700);color:var(--text-muted);cursor:not-allowed}.button-secondary{background:transparent;color:var(--text-muted);border:1px solid var(--navy-700);border-radius:var(--radius);padding:.5rem 1rem;font-family:var(--font-body);font-size:.85rem;cursor:pointer}.button-secondary:hover{color:var(--text-strong);border-color:var(--blue-action)}@media (max-width:620px){.topbar-meta{width:100%;margin-left:0;gap:1rem}.main{padding:1rem .85rem 2rem}}.link-button{background:none;border:0;padding:0;font:inherit;color:var(--text-muted);cursor:pointer}.link-button:hover{color:var(--text-strong);text-decoration:underline}.action-message{display:flex;gap:.6rem;align-items:flex-start;margin-top:.85rem;padding:.7rem .9rem;border-radius:var(--radius);border-left:3px solid;font-size:.9rem;line-height:1.45}.action-glyph{font-size:.95rem;line-height:1.5}.action-success{border-left-color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent);color:var(--text-strong)}.action-warning{border-left-color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,transparent);color:var(--text-strong)}.action-danger{border-left-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--text-strong)}.stars{display:flex;align-items:center;gap:.1rem;font-size:1.05rem;line-height:1;margin-top:.55rem}.star-full{color:var(--warning)}.star-empty{color:var(--navy-700)}.star-half{position:relative;display:inline-block}.star-half-back{color:var(--navy-700)}.star-half-fill{position:absolute;inset:0;color:var(--warning);-webkit-clip-path:inset(0 50% 0 0);clip-path:inset(0 50% 0 0)}.unavailable{display:block;margin-top:.35rem;font-size:.82rem;color:var(--danger)}.player-card.is-unavailable{border-color:color-mix(in srgb,var(--danger) 35%,var(--navy-700))}.portrait-image{position:relative;overflow:hidden;padding:0}.portrait-initiales{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-title);font-size:.85rem;color:var(--text-muted)}.portrait-image img{position:relative;width:100%;height:100%;object-fit:cover;display:block}