:root{--bg-1:#132027;--bg-2:#0a1317;--panel:#f7f0d8;--ink:#201d16;--primary:#f06543;--secondary:#2e86ab;--accent:#95c623;--danger:#b80c09;--line:#2c2b28}*{box-sizing:border-box}body{background:radial-gradient(circle at top right, #314f5d, var(--bg-1) 35%, var(--bg-2) 75%);color:var(--ink);margin:0;font-family:Courier New,monospace;font-size:16px;line-height:1.35}.app-shell{max-width:1200px;margin:0 auto;padding:20px}@media (width<=600px){.app-shell{padding:10px}}.topbar{border:4px solid var(--line);z-index:1000;background:repeating-linear-gradient(45deg,#f8ca4d,#f8ca4d 12px,#f6ba2c 12px 24px);justify-content:space-between;align-items:center;gap:14px;padding:10px 16px;display:flex;position:sticky;top:0;box-shadow:8px 8px #000}.topbar-left{flex-shrink:1;align-items:center;gap:10px;min-width:0;display:flex}.topbar-right{flex-shrink:0;align-items:center;gap:10px;margin-left:auto;display:flex}.hamburger-btn{z-index:1100;padding:4px 10px;font-size:20px;display:none}.menu-overlay{z-index:900;background:#00000080;position:fixed;inset:0}.topbar-title{flex-direction:column;gap:1px;display:flex}.topbar h1{text-transform:uppercase;letter-spacing:1px;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:22px;line-height:1.1;overflow:hidden}.topbar-tagline{text-transform:uppercase;letter-spacing:2px;opacity:.6;font-size:11px}.squad-logo-wrap{flex-shrink:0;align-items:center;gap:5px;display:flex}.squad-logo-ball{filter:drop-shadow(2px 2px #000);font-size:20px;line-height:1}.tabs{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.tabs-topbar{justify-content:flex-end;margin-top:0;margin-left:auto}.layout-grid{grid-template-columns:minmax(280px,380px) 1fr;gap:12px;margin-top:16px;display:grid}.layout-stack{gap:12px;margin-top:16px;display:grid}.pixel-panel{background:var(--panel);border:4px solid var(--line);padding:12px;box-shadow:6px 6px #000}.accordion-header{cursor:pointer;justify-content:space-between;align-items:center;display:flex}.accordion-header h3{margin:0}.accordion-icon{font-size:18px;font-weight:900;display:none}@media (width<=900px){.accordion-icon{display:block}.player-form-accordion .accordion-content{border-top:2px dashed var(--line);margin-top:12px;padding-top:12px;display:none}.player-form-accordion.is-expanded .accordion-content{display:block}}@media (width>=901px){.accordion-header{cursor:default;pointer-events:none;margin-bottom:12px}}label{margin-bottom:8px;font-weight:700;display:block}input,select{border:3px solid var(--line);width:100%;margin-top:4px;margin-bottom:8px;padding:9px;font-family:inherit;font-size:15px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}@media (width<=500px){.grid-3,.grid-2{grid-template-columns:1fr}}.form-section{border:2px solid var(--dark);background:#ffffff59;margin-bottom:12px;padding:10px 12px}.form-section-title{text-transform:uppercase;letter-spacing:1px;color:var(--primary);border-bottom:2px solid var(--dark);margin-bottom:10px;padding-bottom:4px;font-size:12px;font-weight:700}.stats-group{margin-bottom:10px}.stats-group-label{text-transform:uppercase;color:#888;margin-bottom:4px;font-size:10px;font-weight:700}.pixel-btn{background:var(--primary);color:#fff;text-transform:uppercase;cursor:pointer;border:3px solid #111;padding:9px 12px;font-size:14px;font-weight:700;box-shadow:4px 4px #000}.pixel-btn:hover{transform:translate(-1px,-1px);box-shadow:5px 5px #000}.pixel-btn:disabled{opacity:.6;cursor:not-allowed}.pixel-btn.active,.pixel-btn.ghost{background:var(--secondary)}.pixel-btn.danger{background:var(--danger)}.pixel-btn.danger-ghost{background:var(--secondary);color:var(--danger);border-color:var(--danger)}.pixel-btn.danger-ghost:hover:not(:disabled){background:var(--danger);color:#fff}.roster-grid{gap:8px;display:grid}.roster-count{background:var(--primary);color:#fff;vertical-align:middle;border:2px solid #111;margin-left:8px;padding:1px 7px;font-size:12px;display:inline-block}.roster-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}@media (width<=600px){.roster-header-row{gap:4px}.roster-header-row h3{font-size:16px}.roster-clear-btn{padding:3px 8px;font-size:10px}}.roster-title-group{flex-direction:column;gap:2px;display:flex}.roster-selected-summary{color:#444;border-left:3px solid var(--accent);white-space:nowrap;text-overflow:ellipsis;background:#2d8c471a;max-width:400px;padding:4px 8px;font-size:13px;overflow:hidden}.roster-clear-btn{padding:4px 10px;font-size:11px}.roster-empty-state{text-align:center;border:2px dashed var(--primary);background:#0003;margin:12px 0;padding:24px 16px}.roster-empty-state p{margin-bottom:12px;font-size:13px;line-height:1.5}.roster-seed-btn{padding:8px 18px;font-size:13px}.roster-filters{border-bottom:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:8px 0 10px;display:flex}@media (width<=600px){.roster-filters{flex-flow:wrap;align-items:center;gap:6px}.roster-search,.roster-filter-select{flex:140px;margin:0;padding:6px;font-size:13px}.roster-sort-btns{justify-content:space-between;margin-top:4px}.roster-sort-btn{text-align:center;flex:1;padding:4px 2px;font-size:9px}.roster-avg-label{width:100%;margin-top:6px;font-size:11px}}.roster-search{flex:160px;min-width:0}.roster-filter-select{flex:0 160px;min-width:0}.roster-avg-label{white-space:nowrap;flex:180px;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.roster-avg-range{accent-color:var(--primary);cursor:pointer;flex:1}.roster-sort-btns{flex-wrap:wrap;flex:100%;gap:4px;display:flex}.roster-sort-btn{padding:4px 8px;font-size:11px;box-shadow:2px 2px #000}.fig-level-badge{background:var(--accent);color:#fff;z-index:6;border:2px solid #111;padding:2px 6px;font-size:11px;font-weight:900;position:absolute;top:-8px;right:-8px;box-shadow:2px 2px #000}.xp-bar-container{background:#ddd;border:1px solid #111;width:100%;height:8px;margin-top:4px;position:relative;overflow:hidden}.xp-bar-fill{background:var(--accent);height:100%;transition:width .3s ease-out}.field-tooltip-xp-info{border-top:1px dashed #fff3;margin-top:8px;padding-top:8px}.field-tooltip-xp-text{color:#aaa;justify-content:space-between;margin-bottom:3px;font-size:9px;display:flex}.figurine-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-top:8px;display:grid}.figurina-card{border:4px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fffbe8;flex-direction:column;transition:transform 80ms;display:flex;position:relative;box-shadow:5px 5px #000}.figurina-card:hover{z-index:10;transform:translate(-2px,-2px);box-shadow:7px 7px #000}.figurina-card.selected{outline:4px solid var(--accent);outline-offset:2px}.figurina-card.selected:after{content:"✓";color:#ffffffb3;pointer-events:none;z-index:5;text-shadow:0 0 10px #00000080;background:#2d8c4759;justify-content:center;align-items:center;font-size:64px;font-weight:900;display:flex;position:absolute;inset:0}.fig-header{background:var(--header-color,#555);color:#fff;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;border-bottom:3px solid #111;justify-content:space-between;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:700;display:flex}.fig-age{opacity:.9;font-size:10px}.fig-sprite-area{background:linear-gradient(#c8f0d4 0%,#e8f8ec 100%);border-bottom:3px solid #111;justify-content:center;align-items:center;padding:10px 0 6px;display:flex}.fig-name{border-bottom:2px dashed #bbb;align-items:center;gap:5px;padding:6px 8px 4px;display:flex}.fig-emoji{font-size:18px;line-height:1}.fig-name strong{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.roster-tooltip{z-index:1000;pointer-events:none;top:50%;transform:translateY(-50%)}.field-tooltip.right.roster-tooltip{left:calc(100% + 8px)}.field-tooltip.left.roster-tooltip{left:auto;right:calc(100% + 8px)}.fig-actions{background:#f5ecd2;border-top:3px solid #111;gap:4px;padding:6px 8px;display:flex}.fig-btn{text-align:center;flex:1;padding:5px 4px;font-size:14px}.star-rating{gap:2px;margin-top:4px;margin-bottom:4px;display:flex}.star-btn{cursor:pointer;color:#ccc;background:0 0;border:none;padding:0 1px;font-size:22px;line-height:1;transition:color .1s,transform .1s}.star-btn.filled{color:#f0a500}.star-btn:hover{transform:scale(1.25)}.player-card{border:3px solid var(--line);background:#fffbe8;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px;display:grid}.player-card.selected{outline:4px solid var(--accent)}.player-meta{gap:4px;display:grid}.player-actions{gap:6px;display:grid}.player-form-preview-layout{grid-template-columns:1fr 140px;align-items:center;gap:16px;display:grid}.player-form-preview-sprite{border:3px solid var(--line);background:linear-gradient(#c8f0d4 0%,#e8f8ec 100%);flex-direction:column;align-items:center;gap:8px;padding:12px;display:flex;box-shadow:4px 4px #000}.player-form-preview-name{text-transform:uppercase;text-align:center;white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:11px;font-weight:900;overflow:hidden}@media (width<=500px){.player-form-preview-layout{grid-template-columns:1fr}.player-form-preview-sprite{order:-1}}@keyframes idle-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes idle-breath{0%,to{transform:scaleY(1)}50%{transform-origin:bottom;transform:scaleY(1.05)}}@keyframes head-bob{0%,to{transform:translateY(0)}50%{transform:translateY(1px)}}.pixel-sprite.animate-idle{animation:idle-bob var(--idle-duration,3s) ease-in-out infinite;animation-delay:var(--idle-delay,0s);will-change:transform}.pixel-sprite.animate-idle .pixel-body{animation:idle-breath var(--idle-duration,3s) ease-in-out infinite;animation-delay:var(--idle-delay,0s);will-change:transform}.pixel-sprite.animate-idle .pixel-head{animation:head-bob var(--idle-duration,3s) ease-in-out infinite;animation-delay:var(--idle-delay,0s);will-change:transform}.pixel-sprite{image-rendering:pixelated;background:#e0f4ff;border:3px solid #101010;justify-content:center;align-items:center;display:inline-flex;position:relative}.sprite-small{width:36px;height:36px}.sprite-normal{width:48px;height:48px}.sprite-large{width:88px;height:88px}.skin-light{--sprite-skin:#f6d2b4}.skin-tan{--sprite-skin:#cf9e6d}.skin-dark{--sprite-skin:#7a4a2b}.hair-black{--sprite-hair:#1f1a17}.hair-brown{--sprite-hair:#5a3d2b}.hair-blonde{--sprite-hair:#e5c55c}.hair-red{--sprite-hair:#a8442f}.hair-grey{--sprite-hair:#9e9e9e}.shirt-red{--sprite-shirt-color:#ce2f2f;--sprite-shirt-image:none}.shirt-blue{--sprite-shirt-color:#2f5fce;--sprite-shirt-image:none}.shirt-green{--sprite-shirt-color:#2d8c47;--sprite-shirt-image:none}.shirt-yellow{--sprite-shirt-color:#d3b431;--sprite-shirt-image:none}.shirt-milan{--sprite-shirt-color:#c00;--sprite-shirt-image:repeating-linear-gradient(90deg, #c00, #c00 6px, #000 6px, #000 12px)}.shirt-juve{--sprite-shirt-color:#fff;--sprite-shirt-image:repeating-linear-gradient(90deg, #fff, #fff 6px, #000 6px, #000 12px)}.shirt-inter{--sprite-shirt-color:#039;--sprite-shirt-image:repeating-linear-gradient(90deg, #039, #039 6px, #000 6px, #000 12px)}.shirt-napoli{--sprite-shirt-color:#0093d7;--sprite-shirt-image:none}.shirt-roma{--sprite-shirt-color:#8e1f2f;--sprite-shirt-image:repeating-linear-gradient(90deg, #8e1f2f, #8e1f2f 6px, #f1b131 6px, #f1b131 12px)}.shirt-lazio{--sprite-shirt-color:#81bbec;--sprite-shirt-image:none}.shirt-fiorentina{--sprite-shirt-color:#4d0369;--sprite-shirt-image:none}.shirt-vicenza{--sprite-shirt-color:#ce2f2f;--sprite-shirt-image:repeating-linear-gradient(90deg, #ce2f2f, #ce2f2f 6px, #fff 6px, #fff 12px)}.shirt-arsenal{--sprite-shirt-color:#ef0107;--sprite-shirt-image:none}.shirt-manchester{--sprite-shirt-color:#da291c;--sprite-shirt-image:none}.pixel-head{background-color:var(--sprite-skin);border:2px solid #111;width:46%;height:38%;position:absolute;top:8%}.pixel-hair{background-color:var(--sprite-hair);width:100%;height:35%}.pixel-hair-long-ext{background-color:var(--sprite-hair);border:2px solid #111;border-top:none;width:145%;height:80%;position:absolute;top:100%;left:-22%}.pixel-body{background-color:var(--sprite-shirt-color,#888);background-image:var(--sprite-shirt-image,none);border:2px solid #111;width:54%;height:42%;position:absolute;bottom:8%}.pixel-initial{background:#ffffffd9;border:1px solid #111;padding:1px 2px;font-size:13px;line-height:1;position:absolute;bottom:2px;right:2px}.teams-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.team-row{align-items:center;gap:8px;min-height:38px;margin-bottom:6px;display:flex}@keyframes player-reveal{0%{opacity:0;filter:blur(4px);transform:scale(.5)translateY(12px)}60%{opacity:1;filter:blur();transform:scale(1.08)translateY(-2px)}to{opacity:1;transform:scale(1)translateY(0)}}.team-row-visible{animation:.45s cubic-bezier(.22,1,.36,1) both player-reveal}.team-row-hidden{opacity:.35}.team-row-unknown{align-items:center;gap:8px;display:flex}.team-row-silhouette{filter:grayscale()opacity(.5);font-size:22px;animation:1s ease-in-out infinite pulse-question}@keyframes pulse-question{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.85;transform:scale(1.15)}}.team-row-info{flex-direction:column;gap:1px;display:flex}.team-row-name{font-size:15px;font-weight:700}.team-row-name.muted{color:#888;letter-spacing:2px}.team-row-role{color:#888;text-transform:uppercase;letter-spacing:.5px;font-size:10px}.teams-preview-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.teams-preview-header h3{margin:0}.teams-revealing-badge{background:#fff3cd;border:2px solid #d3a800;padding:2px 8px;font-size:11px;animation:.7s step-start infinite blink-badge}@keyframes blink-badge{50%{opacity:0}}.teams-score-badge{background:#d4f5d4;border:2px solid #2d8c47;padding:2px 8px;font-size:11px}.teams-preview-header-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.teams-regen-btn{padding:4px 10px;font-size:11px;box-shadow:2px 2px #000}.team-a-label{color:#2f5fce}.team-b-label{color:#ce2f2f}.team-row.swappable{cursor:pointer}.team-row.swappable:hover{background:#0000000f}.team-row.swap-selected{outline-offset:1px;background:#2d8c472e;outline:2px solid #2d8c47}.team-row.swap-target{outline:2px dashed var(--primary);outline-offset:1px;background:#f065431f}.swap-icon{flex-shrink:0;font-size:14px;font-weight:700}.team-row-overall{color:#fff;background:#444;border:2px solid #111;flex-shrink:0;margin-left:auto;padding:1px 5px;font-size:11px;font-weight:700;line-height:1.4}.team-row-emoji{margin-right:3px;font-size:13px;line-height:1}.swap-hint{color:#555;text-align:center;background:beige;border:2px dashed #bbb;margin-bottom:8px;padding:4px 10px;font-size:13px}.swap-hint.swap-hint-active{color:#333;background:#fff3cd;border-color:#d3a800;font-weight:700}.swap-hint.swap-hint-locked{color:#7a1210;background:#ffe4e4;border-color:#b80c09;font-weight:700}.replace-player-select{cursor:pointer;color:#333;background:#fff;border:2px solid #888;flex-shrink:0;max-width:28px;padding:1px 2px;font-family:inherit;font-size:11px}.replace-player-select:hover:not(:disabled){border-color:var(--primary)}.replace-player-select:disabled{opacity:.5;cursor:default}.match-history-list{flex-direction:column;gap:6px;max-height:420px;margin-top:8px;display:flex;overflow-y:auto}.match-history-row{border:2px solid var(--dark);background:#fff}.match-history-row.active{background:#d4f5d4;border-color:#2d8c47}.match-history-main{align-items:center;gap:8px;padding:6px 10px;display:flex}.match-history-expand-btn{cursor:pointer;color:var(--dark);background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:11px}.match-history-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.match-history-name{flex-wrap:wrap;align-items:center;gap:8px;font-size:16px;font-weight:900;display:flex}.match-history-name-clickable{cursor:pointer}.match-history-name-clickable:hover{text-decoration:underline}.match-history-score-badge{background:var(--accent);color:#fff;border:1px solid #000;padding:0 4px;font-size:12px;line-height:1.4;box-shadow:1px 1px #000}.match-history-meta{color:#888;font-size:13px}.match-history-actions{flex-shrink:0;gap:6px;display:flex}.match-history-load-btn{padding:4px 10px;font-size:13px}.match-history-field-btn{color:#fff;background:#2d8c47;padding:4px 10px;font-size:13px}.match-history-players{background:#00000008;border-top:2px dashed #00000026;padding:8px 12px 10px;position:relative}.match-history-close-btn{color:#888;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:14px;line-height:1;position:absolute;top:6px;right:8px}.match-history-close-btn:hover{color:#333}.match-history-loading{color:#888;font-size:11px}.match-history-filters{border:2px dashed var(--line);background:#0000000d;margin-bottom:12px;padding:10px}.match-history-teams{grid-template-columns:1fr 1fr;gap:10px;display:grid}.match-history-team{flex-direction:column;gap:3px;display:flex}.match-history-team-label{text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:12px;font-weight:700}.match-history-player{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.field-header-row{align-items:center;gap:12px;margin-bottom:4px;display:flex}.field-header-row h3{margin:0}.field-saving-badge{background:#fff3cd;border:2px solid #d3a800;padding:2px 8px;font-size:11px;animation:.7s step-start infinite blink-badge}.field-board{background:repeating-linear-gradient(#2f8f4e,#2f8f4e 36px,#307f4b 36px 72px);border:5px solid #e6efe8;width:100%;min-height:520px;margin-top:8px;position:relative;overflow:hidden}.field-line.vertical{background:#ffffffd9;width:4px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.field-line.circle{border:4px solid #ffffffd9;border-radius:50%;width:140px;height:140px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.field-penalty-area{pointer-events:none;border:3px solid #ffffffbf;width:18%;height:44%;position:absolute;top:28%}.field-penalty-area.left{border-left:none;left:0}.field-penalty-area.right{border-right:none;right:0}.field-goal-area{pointer-events:none;border:3px solid #ffffffbf;width:7%;height:22%;position:absolute;top:39%}.field-goal-area.left{border-left:none;left:0}.field-goal-area.right{border-right:none;right:0}.field-goal{pointer-events:none;box-sizing:border-box;background:#ffffff26;border:4px solid #ffffffe6;width:2.5%;height:16%;position:absolute;top:42%}.field-goal.left{left:0;transform:translate(-60%)}.field-goal.right{right:0;transform:translate(60%)}.field-player{cursor:move;touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;transform:translate(-50%,-50%)}.field-player-sprite-wrap{display:inline-block;position:relative}.field-player-emoji-badge{filter:drop-shadow(1px 1px #000);font-size:13px;line-height:1;position:absolute;bottom:-4px;right:-6px}.field-player.team-a .pixel-sprite{filter:drop-shadow(0 0 5px #4af)}.field-player.team-b .pixel-sprite{filter:drop-shadow(0 0 5px #f84)}.field-player small{color:#fff;text-shadow:2px 2px #000;font-weight:700}.field-tooltip{z-index:100;pointer-events:none;min-width:160px;font-family:var(--font-pixel), monospace;background:#1a1a2e;border:3px solid #fff;padding:8px 10px;position:absolute;top:50%;transform:translateY(-50%);box-shadow:4px 4px #000}.field-tooltip.right{left:calc(100% + 28px)}.field-tooltip.left{right:calc(100% + 28px)}.field-tooltip-name{color:#fff;white-space:nowrap;margin-bottom:2px;font-size:11px;font-weight:700}.field-tooltip-role{color:#aaa;margin-bottom:6px;font-size:10px}.field-tooltip-stats{flex-direction:column;gap:2px;display:flex}.field-tooltip-stat{color:#ddd;align-items:center;gap:8px;font-size:10px;display:flex}.field-tooltip-stat span:first-child{width:50px}.field-tooltip-stars{color:#f5c842;letter-spacing:1px}.selected-preview-list{flex-direction:column;gap:4px;max-height:300px;margin:12px 0;padding-right:4px;display:flex;overflow-y:auto}.selected-preview-item{border:2px solid var(--line);background:#fff6;align-items:center;gap:8px;padding:4px;display:flex}.selected-preview-name{text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.preset-row{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.toast-stack{z-index:1400;pointer-events:none;gap:10px;width:min(360px,100vw - 24px);display:grid;position:fixed;top:86px;right:20px}.toast-cloud{image-rendering:pixelated;pointer-events:auto;border:3px solid #111;align-items:flex-start;gap:8px;padding:10px 12px;animation:.18s steps(6,end) toast-pop-in;display:flex;position:relative;box-shadow:5px 5px #000}.toast-cloud:after{content:"";background:inherit;border-bottom:3px solid #111;border-right:3px solid #111;width:12px;height:12px;position:absolute;bottom:-8px;right:28px;transform:rotate(45deg)}.toast-cloud.success{background:#d9ffd8}.toast-cloud.error{background:#ffd7d7}.toast-cloud.warning{background:#ffeab5}.toast-icon{background:#fff;border:2px solid #111;justify-content:center;align-items:center;width:18px;height:18px;margin-top:1px;font-size:10px;font-weight:900;line-height:1;display:inline-flex;box-shadow:2px 2px #000}.toast-text{flex:1;font-size:12px;font-weight:700;line-height:1.3}.toast-close{color:#111;cursor:pointer;background:#fff;border:2px solid #111;padding:2px 5px;font-family:inherit;font-size:11px;font-weight:700;line-height:1;box-shadow:2px 2px #000}.toast-close:hover{transform:translate(-1px,-1px);box-shadow:3px 3px #000}@keyframes toast-pop-in{0%{opacity:0;transform:translate(14px)translateY(-8px)scale(.96)}to{opacity:1;transform:translate(0)translateY(0)scale(1)}}@media (width<=900px){.toast-stack{width:min(340px,100vw - 20px);top:74px;right:10px}}.selection-bar{border:3px solid var(--dark);background:#fff8dc;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:8px 14px;font-size:13px;display:flex;box-shadow:4px 4px #000}@media (width<=600px){.selection-bar{text-align:center;flex-direction:column;gap:8px}.selection-bar-btn{width:100%}}.selection-bar.ready{background:#d4f5d4;border-color:#2d8c47;animation:1s ease-in-out 2 pulse-green}@keyframes pulse-green{0%,to{box-shadow:4px 4px #000}50%{box-shadow:4px 4px #2d8c47,0 0 10px #2d8c4766}}.selection-bar-btn{white-space:nowrap;padding:6px 12px;font-size:12px}.alert{border:3px solid var(--line);padding:8px;box-shadow:4px 4px #000}.alert.error{background:#ffd6d6}.alert.info{background:#d8ffd8}@media (width<=900px){.topbar{flex-wrap:nowrap;padding:10px 12px}.topbar-left{gap:6px}.topbar-title h1{font-size:16px}.topbar-tagline{display:none}.hamburger-btn{padding:4px 8px;display:block}.workspace-badge{min-width:0;margin:0;padding:2px 6px}.workspace-badge-token{font-size:11px}.workspace-badge-label{display:none}.tabs-topbar{background:var(--bg-1);z-index:1000;border-left:4px solid var(--line);flex-direction:column;justify-content:flex-start;gap:16px;width:260px;margin:0;padding:80px 20px 20px;transition:right .3s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;right:-100%;box-shadow:-8px 0 #0000004d}.tabs-topbar.open{right:0}.tabs-topbar .pixel-btn{text-align:left;width:100%;padding:12px 16px;font-size:16px}.layout-grid,.teams-grid{grid-template-columns:1fr}.field-board{min-height:420px}}.emoji-picker{border:2px solid var(--dark);background:#fffbe8;flex-wrap:wrap;gap:6px;max-height:140px;margin-bottom:10px;padding:6px;display:flex;overflow-y:auto}.emoji-btn{cursor:pointer;background:#fffbe8;border:3px solid #0000;padding:4px 6px;font-size:20px;line-height:1}.emoji-btn:hover{border-color:var(--secondary)}.emoji-btn.selected{border-color:var(--primary);background:#ffe8d6;box-shadow:3px 3px #000}.field-player-emoji{filter:drop-shadow(2px 2px #000);font-size:22px;line-height:1}.modal-overlay{z-index:100;background:#000000b3;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-box{flex-direction:column;width:100%;max-width:560px;max-height:86vh;display:flex;overflow-y:auto}.modal-header{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.modal-content{flex:1;min-height:0;padding-right:4px;overflow-y:auto}.modal-header h3{margin:0;font-size:22px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.match-history-poster-btn,.match-history-delete-btn{padding:4px 8px;font-size:16px;line-height:1}.match-share-modal{max-width:760px}.match-share-modal-subtitle{color:#5b5649;margin:6px 0 0;font-size:14px;font-weight:700}.match-share-modal-badges{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.match-share-badge{background:#f5ecd2;border:2px solid #111;align-items:center;gap:6px;padding:4px 9px;font-size:13px;font-weight:700;display:inline-flex}.match-share-badge.is-active{background:#d4f5d4;border-color:#2d8c47}.share-panel{border-top:2px dashed #0003;margin-top:4px;padding-top:12px}.share-panel-error{color:var(--danger);margin:0 0 8px;font-size:13px;font-weight:700}.share-panel-topbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.share-panel-title{color:#4c463c;text-transform:uppercase;letter-spacing:1px;font-size:13px;font-weight:900}.share-progress{background:#fff;border:2px solid #111;margin-left:auto;padding:2px 8px;font-size:13px;font-weight:900}.share-btn-danger{color:#fff;background:#b80c09;border-color:#5f0d0b}.share-btn-danger:hover{color:#fff;background:#8f0907}.share-btn-wa{color:#fff;background:#1fa855;border-color:#0f6e34}.share-btn-wa:hover{color:#fff;background:#178144}.share-btn-danger:focus-visible,.share-btn-wa:focus-visible{outline-offset:2px;outline:3px solid #111}.share-link-row{grid-template-columns:1fr auto auto;align-items:center;gap:8px;margin-bottom:10px;display:grid}.share-url-input{color:#4d4d4d;background:#fff;border:2px solid #111;margin:0;font-family:monospace;font-size:13px}.share-copy-btn{white-space:nowrap}.share-registrations-wrap{background:#0000000a;border:2px dashed #00000040;padding:10px}.share-registrations-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.share-registrations-label{color:#4a4539;text-transform:uppercase;letter-spacing:1px;font-size:13px;font-weight:900}.share-loading{color:#666;font-size:13px}.share-empty{color:#666;margin:2px 0;font-size:14px;font-style:italic}.share-registration-list{flex-direction:column;gap:8px;display:flex}.share-registration-item{background:#fff;border:2px solid #111;padding:8px}.share-registration-main{align-items:center;gap:10px;margin-bottom:8px;display:flex}.share-registration-avatar{background:var(--secondary);color:#fff;border:2px solid #111;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:16px;font-weight:900;display:inline-flex}.share-registration-info{gap:2px;min-width:0;display:grid}.share-registration-name{font-size:15px;font-weight:900}.share-registration-email,.share-registration-phone{color:#666;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.share-registration-linker{align-items:center;gap:6px;display:flex}.share-registration-linker-label{color:#666;font-size:13px;font-weight:700}.share-registration-select{background:#fff;border:2px solid #888;flex:1;margin:0;padding:6px;font-size:13px}.share-registration-select.is-linked{border-color:var(--primary)}.share-generate-btn{width:100%;margin-top:10px;font-size:14px}@media (width<=720px){.share-link-row{grid-template-columns:1fr}.share-progress{margin-left:0}.match-share-modal-subtitle{font-size:13px}}.select-location-wrap{flex-direction:column;gap:6px;display:flex}.select-location-wrap select{width:100%}.location-manager{max-width:800px;margin:0 auto}.location-form{border-bottom:3px dashed #ccc;margin-bottom:24px;padding-bottom:16px}.location-list{flex-direction:column;gap:10px;display:flex}.location-row{border:2px solid var(--line);background:#ffffff80;justify-content:space-between;align-items:center;padding:10px;display:flex;box-shadow:3px 3px #000}.location-info{flex-direction:column;gap:2px;display:flex}.location-info span{color:#666;font-size:12px}.location-info a{color:var(--primary);font-size:12px;font-weight:700;text-decoration:none}.location-info a:hover{text-decoration:underline}.location-actions{gap:6px;display:flex}.poster-modal{max-width:620px;padding:0;overflow:hidden}.poster-header{border-bottom:4px solid var(--line);text-align:center;background:repeating-linear-gradient(45deg,#f8ca4d,#f8ca4d 12px,#f6ba2c 12px 24px);padding:16px}.poster-eyebrow{text-transform:uppercase;letter-spacing:3px;opacity:.75;margin-bottom:4px;font-size:12px}.poster-title{text-transform:uppercase;letter-spacing:2px;font-size:22px;font-weight:900;line-height:1.1}.poster-location{letter-spacing:.5px;margin-top:6px;font-size:12px;font-weight:700}.poster-map-link{color:#111;text-transform:uppercase;background:#fff;border:1px solid #111;margin-left:10px;padding:1px 6px;font-size:10px;text-decoration:none}.poster-map-link:hover{background:#eee}.poster-date{opacity:.7;text-transform:uppercase;letter-spacing:1px;margin-top:2px;font-size:13px}.poster-vs-banner{border-bottom:4px solid var(--line);grid-template-columns:1fr auto 1fr;display:grid}.poster-team-strip{text-transform:uppercase;letter-spacing:1px;color:#fff;text-shadow:2px 2px #0006;padding:10px 14px;font-size:16px;font-weight:900}.poster-team-strip-a{text-align:left;background:#2f5fce}.poster-team-strip-b{text-align:right;background:#ce2f2f}.poster-vs-center{color:#f8ca4d;letter-spacing:1px;background:#111;justify-content:center;align-items:center;padding:0 14px;font-size:18px;font-weight:900;display:flex}.poster-result{align-items:center;gap:4px;display:flex}.poster-result-digit{color:#fff;text-align:center;text-shadow:2px 2px #000;min-width:20px;font-size:22px;font-weight:900;line-height:1}.poster-result-sep{color:#f8ca4d;font-size:18px}.poster-result-banner{color:#f8ca4d;text-align:center;text-transform:uppercase;letter-spacing:2px;border-bottom:4px solid var(--line);background:#111;padding:5px 0;font-size:12px;font-weight:900}.poster-players-grid{background:var(--panel);grid-template-columns:1fr 3px 1fr;display:grid}.poster-divider{background:var(--line)}.poster-col{flex-direction:column;gap:2px;padding:10px 12px;display:flex}.poster-player-row{border-bottom:1px dashed #ccc;align-items:center;gap:8px;padding:4px 0;display:flex}.poster-player-row:last-child{border-bottom:none}.poster-player-row-b{justify-content:flex-end}.poster-player-info{flex-direction:column;gap:1px;min-width:0;display:flex}.poster-player-info-b{text-align:right}.poster-player-name{text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.poster-player-role{color:#666;text-transform:uppercase;letter-spacing:.5px;font-size:9px}.poster-footer{border-top:4px solid var(--line);background:#f5ecd2;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.poster-footer-actions{gap:8px;display:flex}.poster-watermark{background:var(--line);color:#f8ca4d;text-align:center;letter-spacing:3px;text-transform:uppercase;opacity:.7;padding:4px 0;font-size:10px;font-weight:700}.teams-result-scoreboard{background:#111;border:3px solid #f8ca4d;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin:10px 0 8px;padding:10px 16px;display:flex;box-shadow:4px 4px #000}.teams-result-team-label{text-transform:uppercase;letter-spacing:1px;font-size:13px;font-weight:900}.teams-result-score-block{align-items:center;gap:8px;display:flex}.teams-result-digit{color:#f7f0d8;text-shadow:3px 3px #000;text-align:center;min-width:30px;font-size:36px;font-weight:900;line-height:1}.teams-result-sep{color:#f8ca4d;font-size:28px;font-weight:900;line-height:1}.teams-result-winner{color:#f8ca4d;letter-spacing:.5px;text-align:center;background:#ffffff14;border:1px solid #f8ca4d44;width:100%;margin-top:2px;padding:3px 10px;font-size:14px;font-weight:700}.match-result-row{background:#f5ecd2;border:2px solid #ccc;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;padding:8px 10px;display:flex}.match-result-score{font-size:13px;font-weight:700}.match-result-score strong{letter-spacing:1px;font-size:16px}.match-result-empty{color:#888;font-size:11px;font-style:italic}.match-result-input{text-align:center;width:52px!important;margin:0!important;padding:4px 6px!important;font-size:16px!important;font-weight:700!important}.trash-section{max-width:900px;margin:12px auto 0;padding:0 16px}.trash-toggle-btn{opacity:.75;text-align:left;width:100%;font-size:12px}.trash-toggle-btn:hover{opacity:1}.trash-list{background:#fafafa;border:2px dashed #ccc;border-top:none;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.trash-row{background:#fff;border:1px solid #ddd;align-items:center;gap:10px;padding:5px 8px;font-size:12px;display:flex}.trash-row-name{flex:1;font-weight:700}.trash-row-meta{color:#888;font-size:11px;font-weight:400}.trash-empty{color:#aaa;margin:0;font-size:12px;font-style:italic}.text-center{text-align:center}.token-display{background:var(--bg-1);color:#fff;border:4px solid var(--line);flex-direction:column;gap:4px;margin:20px 0;padding:16px;display:flex;box-shadow:4px 4px #000}.token-label{letter-spacing:2px;opacity:.7;font-size:10px}.token-value{letter-spacing:4px;text-shadow:2px 2px #000;font-size:32px;font-weight:900}.workspace-badge{background:var(--bg-1);color:#fff;border:2px solid var(--line);cursor:pointer;flex-direction:column;align-items:center;margin:0 10px;padding:4px 10px;transition:transform .1s;display:flex;box-shadow:3px 3px #000}.workspace-badge:hover{transform:translate(-1px,-1px);box-shadow:4px 4px #000}.workspace-badge-label{letter-spacing:1px;opacity:.7;font-size:8px;font-weight:900}.workspace-badge-token{letter-spacing:1px;color:var(--panel);font-size:14px;font-weight:900}.player-results-panel{gap:12px;display:grid}.player-results-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.player-results-header h3{margin:0}.player-results-email{background:#fff;border:2px solid #111;padding:3px 8px;font-size:13px;font-weight:700}.player-results-subtitle{color:#555;margin:0;font-size:14px}.player-results-workspaces{flex-wrap:wrap;gap:8px;display:flex}.player-results-workspace-count{opacity:.85;font-size:12px}.player-results-empty{color:#666;margin:0;font-size:14px;font-style:italic}.player-results-cards{gap:12px;display:grid}.player-result-card{background:#fff;border:3px solid #111;gap:10px;padding:10px;display:grid;box-shadow:4px 4px #000}.player-result-top{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.player-result-identity{align-items:center;gap:10px;display:flex}.player-result-identity h4{margin:0;font-size:18px}.player-result-identity p{color:#555;text-transform:uppercase;margin:4px 0 0;font-size:13px}.player-result-stats{flex-wrap:wrap;align-content:flex-start;gap:6px;display:flex}.stat-chip{background:#eee;border:2px solid #111;padding:2px 8px;font-size:12px;font-weight:700}.stat-chip.played{background:#f6f0d8}.stat-chip.wins{background:#d4f5d4}.stat-chip.draws{background:#fff3cd}.stat-chip.losses{background:#ffd9d9}.stat-chip.rate{background:#d8e9ff}.player-result-ratings{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.player-result-ratings span{text-align:center;background:#f9f7ef;border:2px solid #111;padding:4px 6px;font-size:12px;font-weight:700}.player-result-matches{border-top:2px dashed #bbb;gap:8px;padding-top:8px;display:grid}.player-result-matches-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.player-result-matches-header strong{font-size:14px}.player-result-matches-header span{color:#666;font-size:12px}.player-result-match-list{gap:6px;display:grid}.player-result-match-row{background:#fff;border:2px solid #111;justify-content:space-between;align-items:center;gap:10px;padding:6px 8px;display:flex}.player-result-match-main{gap:2px;display:grid}.player-result-match-main strong{font-size:14px}.player-result-match-main span{color:#666;font-size:12px}.player-result-match-score{justify-items:end;gap:1px;display:grid}.player-result-match-score span{font-size:16px;font-weight:900}.player-result-match-score em{text-transform:uppercase;font-size:12px;font-style:normal;font-weight:700}.player-result-match-row.outcome-win{background:#e8f9e8}.player-result-match-row.outcome-draw{background:#fff8da}.player-result-match-row.outcome-loss{background:#ffe8e8}@media (width<=760px){.player-result-ratings{grid-template-columns:repeat(2,minmax(0,1fr))}.player-result-match-row{flex-direction:column;align-items:flex-start}.player-result-match-score{justify-items:start}}
