:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#172b22;background:#f6f7f2;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}[hidden]{display:none!important}.eyebrow{color:#3c8b53;font-size:.72rem;font-weight:800;letter-spacing:.15em}.muted{color:#829087;font-weight:400}.brand-mark{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:#176b3e;color:white;font-size:2rem;font-weight:900;box-shadow:0 12px 28px #176b3e38}.brand-mark.small{width:38px;height:38px;border-radius:12px;font-size:1.25rem;box-shadow:none}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:26px;background:radial-gradient(circle at 10% 10%,#dbeed9 0,transparent 35%),radial-gradient(circle at 95% 90%,#e6edc4 0,transparent 35%),#f6f7f2}.login-shell>.brand-mark{margin-bottom:24px}.login-card{width:min(100%,430px);padding:38px;background:white;border:1px solid #e3e9df;border-radius:24px;box-shadow:0 25px 70px #16352112}.login-card h1{font-size:2.15rem;line-height:1.12;letter-spacing:-.05em;margin:12px 0}.login-card p{color:#69786e;line-height:1.5;margin:0 0 28px}.login-foot{color:#819088;font-size:.82rem;margin:22px 0 0}label{display:block;font-size:.86rem;font-weight:700;margin:15px 0 8px}input:not([type=checkbox]),select{width:100%;height:46px;border:1px solid #d5dfd5;border-radius:10px;background:white;padding:0 14px;color:#172b22;outline:none}input:focus,select:focus{border-color:#2c9353;box-shadow:0 0 0 3px #2c935322}.primary,.secondary{border:0;border-radius:10px;padding:13px 18px;font-weight:750}.primary{background:#176b3e;color:white}.primary:hover{background:#105630}.secondary{background:#eaf1e9;color:#205b38}.secondary:hover{background:#dcebdc}.login-card .primary{width:100%;margin-top:18px}.text-button{display:block;margin:12px auto 0;border:0;background:none;color:#176b3e;font-weight:700}.notice{position:fixed;z-index:20;top:18px;left:50%;transform:translateX(-50%);width:min(90vw,500px);padding:13px 18px;border-radius:12px;background:#163d29;color:white;box-shadow:0 12px 32px #132c1b33;text-align:center}.notice.error{background:#9d302f}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{background:#123b28;color:white;padding:26px 16px;display:flex;flex-direction:column}.side-brand{display:flex;align-items:center;gap:12px;font-weight:900;letter-spacing:.12em;padding:0 14px 38px}.sidebar nav{display:grid;gap:5px}.nav-item,.logout{width:100%;border:0;border-radius:10px;background:transparent;color:#bed3c4;text-align:left;padding:13px 16px;font-weight:650}.nav-item:hover,.nav-item.active{color:white;background:#ffffff19}.sidebar-bottom{margin-top:auto;padding:18px 14px 0;border-top:1px solid #ffffff24}.identity{font-size:.86rem;overflow-wrap:anywhere}.identity strong{display:block;color:white;margin-bottom:4px}.identity span{color:#aac6b2}.logout{padding-left:0;margin-top:10px}.workspace{min-width:0}.topbar{height:68px;border-bottom:1px solid #e6ebe3;background:white;display:flex;align-items:center;justify-content:flex-end;padding:0 36px}.topbar>span:first-child{display:none}.role-badge,.pill{display:inline-block;border-radius:100px;padding:7px 11px;background:#e7f2e8;color:#216b3f;font-weight:750;font-size:.74rem}.content{max-width:1180px;margin:auto;padding:44px 36px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:30px}.page-head h1{font-size:2.5rem;letter-spacing:-.055em;margin:8px 0}.page-head p{color:#728176;margin:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.stat,.panel,.player-card{background:white;border:1px solid #e5ebe3;border-radius:16px}.stat{padding:22px}.stat span{color:#748278;font-size:.84rem}.stat strong{display:block;font-size:2.3rem;letter-spacing:-.05em;margin-top:14px}.panel{padding:26px}.panel h2{margin:0 0 8px;font-size:1.15rem}.panel p{color:#718075;margin:0 0 20px}.players-list{display:grid;gap:10px}.player-card{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.player-main{display:flex;align-items:center;gap:14px;min-width:0}.avatar{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;background:#eaf1e7;color:#236641;font-weight:800}.player-name{font-weight:750}.player-meta{color:#7b897f;font-size:.82rem;margin-top:3px}.player-right{display:flex;align-items:center;gap:12px}.pill.inactive{background:#f0f0ed;color:#72766f}.edit-button{border:1px solid #dbe5dc;background:white;border-radius:9px;color:#286843;padding:9px 12px;font-weight:700}.empty{padding:34px;text-align:center;color:#718075;background:white;border:1px dashed #ccd9cd;border-radius:14px}.mobile-nav{display:none}dialog{width:min(92vw,480px);border:0;border-radius:20px;padding:26px;box-shadow:0 30px 90px #132d2340}dialog::backdrop{background:#102b20a6}.dialog-head{display:flex;justify-content:space-between;align-items:start}.dialog-head h2{margin:7px 0 14px;font-size:1.5rem}.close{border:0;background:none;font-size:1.7rem;line-height:1;color:#6c7d71}.check{display:flex;gap:9px;align-items:center;margin:17px 0}.check input{width:17px;height:17px;accent-color:#176b3e}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}
  .topbar-right{display:flex;align-items:center;gap:12px}.top-logout{display:none;border:0;background:none;color:#176b3e;font-weight:700}
  .profiles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}.profile-card{background:white;border:1px solid #e5ebe3;border-radius:16px;padding:20px;min-width:0}.profile-heading{display:flex;align-items:center;gap:12px}.profile-heading h2{font-size:1.07rem;margin:0}.profile-heading p{font-size:.78rem;color:#748278;margin:4px 0 0}.profile-chart{display:block;width:min(100%,260px);height:auto;margin:18px auto 8px;overflow:visible}.profile-grid{fill:#f5f8f3;stroke:#d6e3d6;stroke-width:1}.profile-axis{stroke:#b9cdbb;stroke-width:1}.profile-area{fill:#3d9c5f75;stroke:#176b3e;stroke-width:2.5;stroke-linejoin:round}.profile-point{fill:#176b3e;stroke:white;stroke-width:1.5}.profile-axis-label{fill:#416c4b;font-size:12px;font-weight:800}.profile-scores{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.profile-scores>div{background:#f3f7f1;border-radius:10px;padding:9px;text-align:center;min-width:0}.profile-scores span{display:block;color:#63796a;font-size:.72rem;overflow-wrap:anywhere}.profile-scores strong{display:block;color:#176b3e;font-size:1.2rem;margin-top:2px}.profile-empty{text-align:center;color:#748278;font-size:.8rem;margin:12px 0 0}
  @media(max-width:800px){.app-shell{display:block;padding-bottom:66px}.sidebar{display:none}.topbar{height:58px;justify-content:space-between;padding:0 20px}.topbar>span:first-child{display:block;font-size:.9rem;font-weight:900;letter-spacing:.12em}.top-logout{display:block}.content{padding:30px 18px}.page-head h1{font-size:2rem}.stats{grid-template-columns:repeat(2,1fr)}.stat{padding:17px}.stat strong{font-size:1.9rem}.mobile-nav{display:flex;overflow-x:auto;position:fixed;bottom:0;left:0;right:0;height:65px;background:white;border-top:1px solid #e5ebe3;z-index:10}.mobile-item{flex:0 0 76px;min-width:76px;border:0;background:none;color:#7b897e;font-size:.68rem;font-weight:700}.mobile-item.active{color:#176b3e;border-top:3px solid #176b3e}.player-card{padding:13px}.player-right{gap:6px}.player-meta{font-size:.76rem}}
  .rounds-list{display:grid;gap:14px}.round-card{background:white;border:1px solid #e5ebe3;border-radius:16px;padding:22px}.round-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.round-head h2{margin:0 0 4px;font-size:1.1rem}.round-head p,.round-meta,.form-help{color:#748278;font-size:.85rem;margin:0}.round-meta{margin:16px 0}.round-actions{display:flex;flex-wrap:wrap;gap:8px}.round-results{display:grid;gap:6px;margin:15px 0}.result-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf1eb;font-size:.85rem}.result-row strong{font-weight:750}.result-row span{color:#5c6e60;text-align:right}.option-list{max-height:270px;overflow:auto;margin-top:15px}.option-list label{display:flex;gap:8px;align-items:center;padding:8px;border-bottom:1px solid #edf1eb;margin:0}.option-list input{accent-color:#176b3e}.vote-fields{display:grid;gap:20px;max-height:50vh;overflow:auto;margin-top:18px}.vote-player{border:1px solid #e5ebe3;border-radius:12px;padding:13px}.vote-player h3{margin:0 0 8px;font-size:1rem}.vote-categories{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.vote-categories label{font-size:.72rem;margin:4px 0 5px}.vote-categories select{height:40px;padding:0 6px}.form-help{line-height:1.5;margin:4px 0 10px}dialog:has(.vote-fields){width:min(95vw,620px)}
  .form-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.draw-indicators{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.draw-indicators span{background:#eef5eb;color:#28643e;padding:8px 11px;border-radius:9px;font-size:.8rem;font-weight:700}.draw-teams{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-height:45vh;overflow:auto}.draw-team{padding:15px;border:1px solid #e2ebe1;border-radius:12px}.draw-team h3{margin:0 0 8px}.draw-team p{font-size:.78rem;color:#67796c;margin:2px 0 10px}.draw-team ul{padding-left:18px;margin:0;line-height:1.8}.swap-controls{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-top:20px}.swap-controls label{margin:0 0 12px}.swap-controls select{width:auto;max-width:170px}.swap-controls button{height:46px}dialog:has(.draw-teams){width:min(96vw,760px)}
  .match-teams{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:15px}.match-teams section{background:#f5f8f3;border-radius:10px;padding:12px}.match-teams p{font-size:.85rem;line-height:1.5;color:#65746a;margin:5px 0 0}
  .history-heading{font-size:1.1rem;margin:0}.history-heading+.round-meta{margin:8px 0 0}
  .finance-toolbar{display:flex;align-items:end;gap:9px;flex-wrap:wrap;margin-bottom:22px}.finance-toolbar label{margin:0 0 13px}.finance-toolbar input{width:180px}.finance-toolbar button{height:46px}.finance-stats .stat strong{font-size:1.65rem}.charge-line{display:flex;align-items:center;justify-content:space-between;gap:10px}.charge-line strong{font-size:1rem}.charge-line p{color:#758478;font-size:.82rem;margin:4px 0}.charge-numbers{display:flex;gap:15px;color:#536c59;font-size:.85rem;flex-wrap:wrap;margin:12px 0}.settings-form{max-width:540px}.settings-form button{margin-top:16px}
  .finance-summary{color:#67796c;margin:0 0 20px}.finance-history{margin-top:22px}.payment-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf1eb;font-size:.86rem}.payment-row:last-child{border-bottom:0}.payment-row span{color:#718075}
  textarea{width:100%;border:1px solid #d5dfd5;border-radius:10px;background:white;padding:12px 14px;color:#172b22;font:inherit;resize:vertical}textarea:focus{border-color:#2c9353;box-shadow:0 0 0 3px #2c935322;outline:none}.import-panel{margin:18px 0;padding:16px;border:1px solid #e5ebe3;border-radius:14px;background:#f9fbf8}.import-panel h2{margin:0 0 8px;font-size:1.05rem}.import-panel>.secondary{margin-top:10px}.import-preview{display:grid;gap:8px;margin-top:14px;max-height:300px;overflow:auto}.import-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(150px,1fr);gap:7px;align-items:center;padding:10px;border:1px solid #e2ebe1;border-radius:9px;background:white;font-size:.85rem}.import-row strong{overflow-wrap:anywhere}.import-row label{margin:0}.import-row select{height:38px;min-width:0}.import-row select:last-child:not(:nth-child(2)){grid-column:2}.import-preview>.primary{justify-self:start}.payment-row button{padding:7px 10px}.payment-row strong{overflow-wrap:anywhere}
  .data-check{margin-top:20px}.data-check p{color:#738277;font-size:.86rem}.data-check ul{padding-left:20px;color:#9d302f;line-height:1.6}
  #app-loading{text-align:center;padding:18px 0 4px}#app-loading p{margin:0 0 14px}#app-loading .secondary{width:100%}button[data-busy="true"]::after{content:"";display:inline-block;width:12px;height:12px;margin-left:9px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:futzin-spin .7s linear infinite}@keyframes futzin-spin{to{transform:rotate(360deg)}}
  @media(max-width:480px){.login-card{padding:28px}.login-card h1{font-size:1.85rem}.page-head{align-items:flex-start;flex-direction:column}.page-head .primary{width:100%}.player-right .pill{display:none}.edit-button{padding:8px}.dialog-actions{display:grid;grid-template-columns:1fr 1fr}.dialog-actions button{padding:11px 7px}.round-card{padding:16px}.result-row{display:block}.result-row span{display:block;text-align:left;margin-top:4px}}
  .brand-mark{display:block;width:128px;height:128px;object-fit:contain;background:transparent;border-radius:0;box-shadow:none}
  .brand-mark.small{width:56px;height:56px;border-radius:0}
  .side-brand{gap:10px;padding-left:0;padding-right:0}
  .profile-card>.secondary{margin-top:12px}
  .player-right{flex-wrap:wrap;justify-content:flex-end}
  @media(max-width:800px){.topbar>.mobile-brand:first-child{display:flex;align-items:center;gap:8px}.mobile-brand .brand-mark.small{width:40px;height:40px}}
  @media(max-width:480px){.player-card{align-items:flex-start;flex-wrap:wrap}.player-right{width:100%;justify-content:flex-end}.topbar-right{gap:7px}}
.pwa-banner{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:12px 18px;background:#e7f2e8;color:#205b38}
.pwa-banner p{margin:0;max-width:620px;font-size:.88rem}
.pwa-banner .text-button{margin:0}
.pwa-offline{margin:0;padding:12px 18px;text-align:center;background:#fff0d6;color:#775014;font-size:.88rem}
body{padding-top:env(safe-area-inset-top,0px)}
.login-shell{min-height:100dvh;padding-bottom:max(26px,env(safe-area-inset-bottom,0px))}
dialog{max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 32px);overflow:auto}
@media(max-width:800px){
  .app-shell{padding-bottom:calc(66px + env(safe-area-inset-bottom,0px))}
  .mobile-nav{height:calc(65px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px)}
}
