:root{--cream:#f3ead8;--cream-deep:#e9dcc2;--paper:#fbf6ec;--ink:#181410;--ink-soft:#4a4138;--orange:#e8612c;--orange-deep:#c44a1d;--court:#d99a52;--line:#2a2018;--white:#fffdf8;--danger:#d23b2e;--ok:#2f9e44;--pg:#2d9cdb;--sg:#27ae60;--sf:#e8732c;--pf:#9b51e0;--c:#eb5757;--shadow:4px 4px 0 var(--ink);--shadow-sm:3px 3px 0 var(--ink);--shadow-lg:7px 7px 0 var(--ink);--border:2.5px solid var(--ink);--radius:10px;--display:"Anton", "Arial Narrow", sans-serif;--body:"Outfit", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--body);color:var(--ink);background-color:var(--cream);-webkit-font-smoothing:antialiased;background-image:repeating-linear-gradient(90deg,#00000009 0 1px,#0000 1px 7px),radial-gradient(circle at 20% 10%,#e8612c14,#0000 45%),radial-gradient(circle at 90% 80%,#d99a521f,#0000 40%);line-height:1.45}button{font-family:var(--body);cursor:pointer}input,select{font-family:var(--body)}a{color:var(--orange-deep);text-decoration:none}h1,h2,h3{font-family:var(--display);letter-spacing:.01em;text-transform:uppercase;font-weight:400;line-height:.98}.app{flex-direction:column;min-height:100%;display:flex}.topbar{z-index:30;background:var(--ink);color:var(--cream);border-bottom:4px solid var(--orange);align-items:center;gap:16px;padding:14px 22px;display:flex;position:sticky;top:0}.brand{color:var(--cream);align-items:center;gap:11px;display:flex}.brand__mark{flex:none;width:34px;height:34px}.brand__name{font-family:var(--display);letter-spacing:.02em;font-size:1.7rem}.brand__name span{color:var(--orange)}.topbar__spacer{flex:1}.btn{border:var(--border);background:var(--white);color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:8px;padding:9px 16px;font-size:.92rem;font-weight:700;transition:transform 80ms,box-shadow 80ms,background .12s;display:inline-flex}.btn:hover{box-shadow:var(--shadow);transform:translate(-1px,-1px)}.btn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.btn--primary{background:var(--orange);color:var(--white)}.btn--ghost{box-shadow:none;background:0 0;border-color:#0000}.btn--ghost:hover{box-shadow:none;background:#0000000f}.btn--sm{box-shadow:2px 2px 0 var(--ink);padding:5px 11px;font-size:.8rem}.btn--danger{background:var(--danger);color:var(--white)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:var(--shadow-sm);transform:none}.btn-icon{border:2px solid var(--ink);background:var(--white);border-radius:8px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:1rem;font-weight:800;line-height:1;display:inline-flex}.btn-icon:hover{background:var(--cream-deep)}.btn-icon--danger:hover{background:var(--danger);color:var(--white)}.page{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:28px 22px 70px}.panel{background:var(--paper);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.tabs{flex-wrap:wrap;gap:8px;margin:22px 0 24px;display:flex}.tab{border:var(--border);background:var(--paper);color:var(--ink);border-radius:var(--radius);font-family:var(--display);letter-spacing:.03em;text-transform:uppercase;box-shadow:var(--shadow-sm);padding:9px 18px;font-size:1.05rem;transition:transform 80ms,background .1s}.tab:hover{transform:translateY(-2px)}.tab--active{background:var(--orange);color:var(--white)}.roster-head{flex-wrap:wrap;align-items:flex-end;gap:18px;display:flex}.roster-title{color:var(--ink);font-size:clamp(2.2rem,5vw,3.6rem)}.roster-title-input{font-family:var(--display);text-transform:uppercase;border:none;border-bottom:3px dashed var(--court);color:var(--ink);background:0 0;width:min(100%,640px);padding:0 2px 4px;font-size:clamp(2.2rem,5vw,3.6rem)}.roster-title-input:focus{border-bottom-color:var(--orange);outline:none}.eyebrow{font-family:var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--orange-deep);font-size:.82rem}.save-pill{color:var(--ink-soft);align-items:center;gap:7px;font-size:.82rem;font-weight:600;display:inline-flex}.save-dot{background:var(--ink-soft);border-radius:50%;width:9px;height:9px}.save-dot--saving{background:var(--court);animation:.9s ease-in-out infinite pulse}.save-dot--saved{background:var(--ok)}.save-dot--error{background:var(--danger)}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}.sharebar{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.readonly-banner{background:var(--ink);color:var(--cream);border-radius:var(--radius);align-items:center;gap:10px;margin-top:14px;padding:10px 16px;font-size:.9rem;font-weight:600;display:flex}.readonly-banner b{color:var(--orange)}.pos{font-family:var(--display);letter-spacing:.04em;color:var(--white);border:2px solid var(--ink);border-radius:6px;justify-content:center;align-items:center;min-width:30px;padding:2px 7px;font-size:.78rem;display:inline-flex}.pos--PG{background:var(--pg)}.pos--SG{background:var(--sg)}.pos--SF{background:var(--sf)}.pos--PF{background:var(--pf)}.pos--C{background:var(--c)}.pos--ghost{background:var(--white);color:var(--ink);border-style:dashed}.roster-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.pcard{background:var(--paper);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:16px 16px 14px;transition:transform .1s,box-shadow .1s;display:flex;position:relative}.pcard:hover{box-shadow:var(--shadow-lg);transform:translate(-2px,-2px)}.pcard__num{font-family:var(--display);color:var(--cream-deep);z-index:0;pointer-events:none;font-size:3rem;line-height:1;position:absolute;top:6px;right:12px}.pcard__name{font-family:var(--display);z-index:1;max-width:78%;font-size:1.5rem;line-height:1}.pcard__pos{z-index:1;align-items:center;gap:6px;display:flex}.pcard__meta{color:var(--ink-soft);z-index:1;gap:14px;font-size:.82rem;font-weight:600;display:flex}.pcard__meta span b{color:var(--ink)}.pcard__actions{z-index:1;gap:8px;margin-top:auto;padding-top:6px;display:flex}.empty-state{text-align:center;border:3px dashed var(--court);border-radius:var(--radius);background:var(--paper);padding:56px 20px}.empty-state h3{margin-bottom:8px;font-size:1.8rem}.empty-state p{color:var(--ink-soft);margin-bottom:18px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.section-head h2{font-size:1.9rem}.section-sub{color:var(--ink-soft);text-transform:none;font-size:.92rem;font-family:var(--body);letter-spacing:0;margin-top:2px}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:60;background:#1814108c;justify-content:center;align-items:center;padding:20px;animation:.15s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--paper);border:var(--border);border-radius:var(--radius);width:100%;max-width:460px;box-shadow:var(--shadow-lg);padding:22px;animation:.16s cubic-bezier(.2,1.2,.4,1) pop}@keyframes pop{0%{opacity:0;transform:scale(.94)translateY(8px)}}.modal h2{margin-bottom:16px;font-size:1.7rem}.field{margin-bottom:14px}.field label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:5px;font-size:.82rem;font-weight:700;display:block}.field input,.field select{border:var(--border);background:var(--white);width:100%;color:var(--ink);border-radius:8px;padding:9px 11px;font-size:.95rem}.field input:focus,.field select:focus{box-shadow:var(--shadow-sm);outline:none}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-row--3{grid-template-columns:1fr 1fr 1fr}.field-error{color:var(--danger);margin-top:4px;font-size:.82rem;font-weight:600}.modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.depth-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.depth-col{background:var(--paper);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;min-height:140px;display:flex}.depth-col__head{border-bottom:2.5px solid var(--ink);font-family:var(--display);text-transform:uppercase;align-items:center;gap:8px;padding:10px 12px;display:flex}.depth-col__head .label{color:var(--ink-soft);font-size:.78rem}.depth-col__body{flex-direction:column;flex:1;gap:8px;padding:10px;display:flex}.depth-row{background:var(--white);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);cursor:grab;border-radius:8px;align-items:center;gap:9px;padding:7px 9px;display:flex}.depth-row:active{cursor:grabbing}.depth-row.dragging{opacity:.4}.depth-row__rank{font-family:var(--display);color:var(--orange-deep);text-align:center;flex:none;width:18px;font-size:1.1rem}.depth-row__name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.9rem;font-weight:700;overflow:hidden}.depth-row__num{font-family:var(--display);color:var(--ink-soft);font-size:.95rem}.depth-row .tag2{letter-spacing:.05em;background:var(--cream-deep);border:1.5px solid var(--ink);text-transform:uppercase;border-radius:4px;padding:1px 4px;font-size:.6rem;font-weight:800}.depth-empty{color:var(--ink-soft);text-align:center;padding:16px 4px;font-size:.8rem;font-style:italic}.starter-flag{font-family:var(--display);letter-spacing:.06em;background:var(--orange);color:var(--white);border-radius:4px;padding:2px 5px;font-size:.6rem}.court-layout{grid-template-columns:1.45fr 1fr;align-items:start;gap:20px;display:grid}.court{aspect-ratio:1/1.02;border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:repeating-linear-gradient(0deg,#0000000a 0 2px,#0000 2px 26px),linear-gradient(160deg,#e3a85f,#d9974a);position:relative;overflow:hidden}.court__lines{pointer-events:none;position:absolute;inset:0}.court__slot{width:23%;position:absolute;transform:translate(-50%,-50%)}.slot{border:2.5px solid var(--ink);box-shadow:var(--shadow-sm);text-align:center;background:#fffdf8eb;border-radius:10px;padding:8px 6px;transition:transform .1s,box-shadow .1s,background .12s;position:relative}.slot__pos{font-family:var(--display);letter-spacing:.04em;font-size:.95rem}.slot__player{white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.86rem;font-weight:800;overflow:hidden}.slot__empty{color:var(--ink-soft);margin-top:2px;font-size:.74rem;font-style:italic}.slot--over{background:var(--white);box-shadow:var(--shadow);transform:scale(1.06)}.slot--eligible{outline:3px dashed var(--ok);outline-offset:2px;border-style:solid}.slot--ineligible-over{outline:3px dashed var(--danger);outline-offset:2px}.slot__warn{background:var(--danger);color:var(--white);border:2px solid var(--ink);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.7rem;font-weight:900;display:flex;position:absolute;top:-8px;right:-8px}.slot__clear{background:var(--ink);color:var(--white);border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.8rem;line-height:1;display:flex;position:absolute;top:-8px;left:-8px}.bench{background:var(--paper);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.bench__title{font-family:var(--display);justify-content:space-between;align-items:center;margin-bottom:4px;font-size:1.4rem;display:flex}.bench__list{flex-direction:column;gap:8px;margin-top:12px;display:flex}.chip{background:var(--white);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);cursor:grab;border-radius:8px;align-items:center;gap:9px;padding:8px 10px;display:flex}.chip:active{cursor:grabbing}.chip.dragging{opacity:.4}.chip__name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.9rem;font-weight:700;overflow:hidden}.chip__num{font-family:var(--display);color:var(--ink-soft)}.drag-overlay .chip,.drag-overlay .depth-row{box-shadow:var(--shadow);transform:rotate(-2deg)}.lineup-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.lineup-card{background:var(--paper);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.lineup-card h3{margin-bottom:12px;font-size:1.4rem}.lineup-slots{flex-direction:column;gap:7px;margin-bottom:14px;display:flex}.lineup-slot{align-items:center;gap:9px;font-size:.88rem;display:flex}.lineup-slot .nm{font-weight:700}.lineup-slot .empty{color:var(--ink-soft);font-style:italic}.lineup-card__actions{gap:8px;display:flex}.hero{text-align:center;padding:40px 16px 30px}.hero h1{font-size:clamp(3rem,9vw,6.5rem);line-height:.9}.hero h1 span{color:var(--orange);-webkit-text-stroke:2px var(--ink)}.hero p{max-width:540px;color:var(--ink-soft);margin:16px auto 26px;font-size:1.1rem}.hero__cta{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.btn--xl{box-shadow:var(--shadow);padding:14px 26px;font-size:1.1rem}.owned{margin-top:48px}.owned h2{margin-bottom:16px;font-size:1.6rem}.owned-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.owned-card{background:var(--paper);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;transition:transform .1s,box-shadow .1s;display:flex}.owned-card:hover{box-shadow:var(--shadow);transform:translate(-2px,-2px)}.owned-card__name{font-family:var(--display);font-size:1.25rem;line-height:1}.owned-card__sub{color:var(--ink-soft);font-size:.78rem}.config-warn{border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff3cd;max-width:640px;margin:24px auto;padding:20px}.config-warn h3{margin-bottom:8px;font-size:1.4rem}.config-warn code{background:var(--ink);color:var(--cream);border-radius:4px;padding:1px 6px;font-size:.85em}.config-warn ol{margin:10px 0 0 20px;line-height:1.7}.center-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:50vh;display:flex}.center-state h2{font-size:2.4rem}.spinner{border:4px solid var(--cream-deep);border-top-color:var(--orange);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{background:var(--ink);color:var(--cream);box-shadow:var(--shadow);z-index:80;border-radius:999px;padding:11px 20px;font-size:.9rem;font-weight:600;animation:.18s pop;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.unit-tag{z-index:1;font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--white);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:5px;align-self:flex-start;padding:2px 7px;font-size:.62rem}.pcard__salary{z-index:1;font-family:var(--display);letter-spacing:.02em;color:var(--orange-deep);font-size:1rem}.segmented{border:var(--border);box-shadow:var(--shadow-sm);background:var(--paper);border-radius:999px;display:inline-flex;overflow:hidden}.segmented__btn{font-family:var(--body);color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:8px 16px;font-size:.82rem;font-weight:700;transition:background .12s,color .12s}.segmented__btn+.segmented__btn{border-left:var(--border)}.segmented__btn.is-active{background:var(--orange);color:var(--white)}.segmented__btn:not(.is-active):hover{background:var(--cream-deep);color:var(--ink)}.budget{background:var(--ink);color:var(--cream);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:14px 28px;margin-bottom:20px;padding:16px 20px;display:flex}.budget__total{flex-direction:column;gap:2px;display:flex}.budget__label{letter-spacing:.1em;text-transform:uppercase;color:var(--court);font-size:.72rem;font-weight:700}.budget__value{font-family:var(--display);color:var(--white);font-size:2rem;line-height:1}.budget__sub{color:var(--cream-deep);opacity:.8;font-size:.78rem}.budget__breakdown{flex-wrap:wrap;gap:8px 22px;margin-left:auto;display:flex}.budget__unit{align-items:center;gap:7px;font-size:.85rem;display:flex}.budget__dot{border:1.5px solid var(--cream);border-radius:50%;flex:none;width:11px;height:11px}.budget__unit-name{color:var(--cream-deep);font-weight:600}.budget__unit-val{font-family:var(--display);color:var(--white)}.section-head__tools{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.unit-tag--inline{align-self:auto;display:inline-block}.squad-controls{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.squad-controls__search,.squad-controls__select{font-family:var(--body);border:var(--border);background:var(--paper);color:var(--ink);box-shadow:var(--shadow-sm);border-radius:8px;padding:9px 12px;font-size:.9rem}.squad-controls__search{flex:200px;min-width:160px}.squad-controls__search:focus,.squad-controls__select:focus{border-color:var(--orange);outline:none}.squad-controls__sort{align-items:center;gap:8px;display:flex}.squad-controls__sort label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:.72rem;font-weight:700}.ptable__sortable{padding:0!important}.ptable__sort-btn{width:100%;height:100%;text-align:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:11px 14px;display:block}.ptable__r .ptable__sort-btn{text-align:right}.ptable__sort-btn:hover{color:var(--orange)}.ptable th.is-sorted{background:var(--orange-deep)}.ptable-wrap{border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--paper);overflow-x:auto}.ptable{border-collapse:collapse;width:100%;font-size:.9rem}.ptable thead th{text-align:left;font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--cream);background:var(--ink);white-space:nowrap;padding:11px 14px;font-size:.78rem;font-weight:400}.ptable tbody td{border-top:2px solid var(--cream-deep);vertical-align:middle;padding:10px 14px}.ptable tbody tr:hover{background:var(--cream)}.ptable__num-col{white-space:nowrap;width:1%;font-family:var(--display);color:var(--ink-soft)}.ptable__name{font-weight:700}.ptable__pos{align-items:center;gap:6px;display:flex}.ptable__r{text-align:right;white-space:nowrap}.ptable__salary{font-family:var(--display);color:var(--orange-deep)}.ptable__muted{color:var(--ink-soft)}.ptable__actions{white-space:nowrap;justify-content:flex-end;gap:6px;display:flex}@media (width<=860px){.court-layout{grid-template-columns:1fr}.depth-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.depth-grid,.field-row,.field-row--3{grid-template-columns:1fr}.topbar{padding:12px 16px}.page{padding:20px 14px 60px}}
