:root{--background:#f4f7f7;--surface:#fbfcfc;--surface-strong:#fff;--ink:#142021;--muted:#5c6667;--line:#d4e0e0;--accent:#014547;--accent-dark:#013234;--accent-soft:#e6f1f1;--accent-border:#b8d4d4;--shadow:0 14px 35px #01454714}*{box-sizing:border-box}html{background:var(--background)}body{background:var(--background);color:var(--ink);letter-spacing:0;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#fbfcfcf0;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;max-width:1180px;margin:0 auto;padding:18px 24px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-logo{border-radius:8px;flex-shrink:0}.brand-text{gap:2px;display:grid}.brand-title{color:var(--accent);font-size:1.05rem;font-weight:800}.brand-subtitle{color:var(--muted);font-size:.83rem}.topbar-end{align-items:center;gap:10px;display:flex}.login-shell{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);text-align:center;border-radius:8px;gap:14px;width:100%;max-width:360px;padding:32px;display:grid}.login-logo{border-radius:8px;justify-self:center}.login-title{color:var(--accent);margin:0;font-size:1.2rem;font-weight:800}.login-subtitle{color:var(--muted);margin:-6px 0 0;font-size:.9rem}.login-card .field{text-align:left}.login-error{color:#b3261e;margin:0;font-size:.85rem}.login-button{width:100%}.logout-form{display:inline-flex}.logout-button{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:999px;padding:8px 14px;font-size:.78rem;font-weight:800}.logout-button:hover{background:var(--accent-soft);color:var(--accent)}.status-pill{border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:.78rem;display:inline-flex}.status-pill:before{background:var(--accent);content:"";border-radius:999px;width:8px;height:8px}.page{max-width:1180px;margin:0 auto;padding:28px 24px 48px}.page-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:24px;display:flex}.team-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.team-hero-main h1{margin-bottom:0}.roster-actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:12px;display:flex}.add-player-panel{flex-basis:100%;width:100%;margin-bottom:4px}.add-player-panel h2{margin-bottom:14px}.roster-stat{background:var(--surface);border:1px solid var(--accent-border);box-shadow:var(--shadow);text-align:center;border-radius:12px;flex-shrink:0;place-items:center;gap:2px;min-width:88px;padding:14px 18px;display:grid}.roster-stat-value{color:var(--accent);font-size:2rem;font-weight:850;line-height:1}.roster-stat-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:800}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:.78rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;max-width:720px;margin-bottom:12px;font-size:clamp(2rem,4vw,3.8rem);line-height:.95}h2{margin-bottom:14px;font-size:1.2rem}h3{margin-bottom:10px;font-size:1rem}.lede{color:var(--muted);max-width:640px;line-height:1.5}.dashboard-grid{grid-template-columns:minmax(280px,360px) 1fr;align-items:start;gap:22px;display:grid}.panel,.team-card,.player-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.panel{padding:20px}.teams-section h2{margin-bottom:0}.section-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.section-count{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);white-space:nowrap;border-radius:999px;padding:6px 11px;font-size:.78rem;font-weight:800}.team-list{gap:14px;display:grid}.team-card{grid-template-columns:4px 1fr auto;align-items:center;gap:16px;padding:0;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid;overflow:hidden}.team-card:hover{border-color:#01454759;transform:translateY(-1px);box-shadow:0 10px 28px #0145471f}.team-card:hover .team-card-arrow{color:var(--accent);transform:translate(3px)}.team-card-accent{background:var(--accent);border-radius:8px 0 0 8px;align-self:stretch}.team-card-main{gap:4px;min-width:0;padding:18px 0;display:grid}.team-card-title{color:var(--ink);font-size:1.08rem;font-weight:800;line-height:1.25;display:block}.team-card-subtitle{color:var(--muted);font-size:.88rem;line-height:1.4;display:block}.team-card-end{flex-shrink:0;align-items:center;gap:12px;padding-right:18px;display:flex}.team-card-arrow{color:#9aaba9;font-size:1.1rem;font-weight:700;line-height:1;transition:color .15s,transform .15s}.metric{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent);white-space:nowrap;border-radius:999px;padding:8px 12px;font-size:.78rem;font-weight:800}.form-grid{gap:14px;display:grid}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{gap:6px;display:grid}.field.full{grid-column:1/-1}label,.label{color:#3e453f;font-size:.78rem;font-weight:800}input,select,textarea{background:var(--surface-strong);color:var(--ink);border:1px solid #d4cec4;border-radius:7px;width:100%;min-width:0;padding:10px 11px}textarea{resize:vertical;min-height:86px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:3px solid #01454729}.checkbox-row{align-items:center;gap:10px;min-height:40px;display:flex}.checkbox-row input{accent-color:var(--accent);width:18px;height:18px}.actions{flex-wrap:wrap;gap:10px;display:flex}.form-footer{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:6px;padding-top:20px;display:flex}.form-footer--single{justify-content:flex-start}.form-footer-delete{margin:0}.save-status{color:var(--muted);order:-1;margin-left:auto;font-size:13px}.player-form .field-grid.three textarea{min-height:96px}.button{background:var(--accent);border:1px solid var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:11px 18px;font-size:.9rem;font-weight:800;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:inline-flex}.button:hover{background:var(--accent-dark)}.button:active{transform:translateY(1px)}.button-primary{min-width:160px;box-shadow:0 4px 14px #01454738}.button-primary:hover{box-shadow:0 6px 18px #01454747}.button.secondary{background:var(--surface-strong);border-color:var(--line);box-shadow:none;color:var(--ink)}.button.secondary:hover{background:var(--accent-soft);border-color:var(--accent-border)}.button-danger,.button.danger{background:var(--surface-strong);border-color:var(--line);box-shadow:none;color:#9b2c24;min-width:auto}.button-danger:hover,.button.danger:hover{color:#7f221c;background:#fdf0ee;border-color:#e8b4ae}.muted{color:var(--muted);font-size:.88rem;line-height:1.45}.empty-state{color:var(--muted);border:1px dashed #cfc7bc;border-radius:8px;align-items:center;min-height:180px;padding:24px;display:flex}.team-toolbar{grid-template-columns:1fr auto;align-items:start;gap:12px;display:grid}.breadcrumb{color:var(--muted);margin-bottom:18px;font-size:.86rem;display:inline-flex}.player-list{gap:14px;margin-top:22px;display:grid}.player-list--primary{margin-top:0}.list-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;display:flex}.print-cards-btn{white-space:nowrap;padding:6px 14px;font-size:13px}.team-settings{margin-top:28px}.team-settings h2{margin-bottom:14px}.player-list-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:4px;display:flex}.player-list-header h2{margin-bottom:0}.roster-sort{flex-wrap:wrap;gap:8px;display:flex}.roster-sort-link{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:8px 12px;font-size:.78rem;font-weight:800;transition:background .15s,border-color .15s,color .15s}.roster-sort-link:hover{border-color:var(--accent-border);color:var(--accent)}.roster-sort-link.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.player-card{padding:0}.player-card summary{cursor:pointer;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:18px 20px;list-style:none;display:grid}.player-card summary::-webkit-details-marker{display:none}.player-card[open] summary{border-bottom:1px solid var(--line)}.player-body{padding:20px}.player-name-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.player-name{font-size:1.05rem;font-weight:850}.jersey-badge{background:var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:2.4rem;padding:6px 9px;font-size:.82rem;font-weight:850;line-height:1;display:inline-flex}.tags{flex-wrap:wrap;gap:7px;display:flex}.tag{color:#4e554f;background:#f1eee8;border:1px solid #dfd8cc;border-radius:999px;padding:5px 9px;font-size:.76rem;font-weight:750}.score-strip{flex-wrap:wrap;gap:8px;display:flex}.score{background:var(--accent-soft);border:1px solid var(--accent-border);color:var(--accent-dark);border-radius:7px;padding:7px 9px;font-size:.78rem;font-weight:800}.section-title{border-top:1px solid var(--line);color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin:18px 0 12px;padding-top:16px;font-size:.78rem;font-weight:850}@media (max-width:760px){.topbar-inner,.page{padding-left:16px;padding-right:16px}.page-header,.dashboard-grid,.team-toolbar,.field-grid,.field-grid.three{grid-template-columns:1fr}.page-header,.team-hero{display:grid}.roster-actions{justify-content:flex-start}.roster-stat{justify-self:start}.player-card summary{grid-template-columns:1fr}.team-card{grid-template-rows:auto auto;grid-template-columns:4px 1fr;gap:0 12px}.team-card-accent{grid-row:1/-1}.team-card-main{padding:16px 16px 8px}.team-card-end{grid-column:2;justify-content:space-between;padding:0 16px 16px}.form-footer{flex-direction:column;align-items:stretch}.form-footer .button-primary,.form-footer-delete,.form-footer-delete .button{width:100%}h1{font-size:2.25rem}}
