:root{--g: #1c7a4c;--gd: #0f5034;--g2: #16623c;--gs: #e7f1ec;--gsb: #cfe6da;--ring:#142e1d;--bg: #f4f6f3;--card:#ffffff;--tx: #16201b;--mut: #6c736e;--bd: #e3e7e2;--amb: #9a6a12;--ambs:#f7eed8;--bad: #a5302a;--bads:#fbeaea;--mono: "Spline Sans Mono", ui-monospace, monospace;--shadow-card: 0 1px 3px rgba(16,40,28,.06), 0 16px 40px rgba(16,40,28,.07)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--tx);font-family:Hanken Grotesk,system-ui,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font-family:inherit}input,select,textarea{font-family:inherit;outline:none}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}h1,h2{margin:0}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.mono{font-family:var(--mono)}.muted{color:var(--mut)}.amb{color:var(--amb)}.green{color:var(--g2)}.nowrap{white-space:nowrap}.spacer{flex:1}.btn{border:none;border-radius:11px;padding:12px 18px;font-weight:700;font-size:15px;cursor:pointer;background:var(--g);color:#fff}.btn:hover{background:var(--g2)}.btn:disabled{opacity:.55;cursor:default}.btn-block{width:100%}.btn-ghost{background:#fff;color:var(--tx);border:1px solid var(--bd);border-radius:10px;padding:8px 14px;font-weight:600;font-size:14px;cursor:pointer}.btn-ghost:hover{background:var(--bg)}.btn-danger{border:1px solid var(--bd);background:#fff;color:var(--bad);border-radius:8px;padding:6px 12px;font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap}.btn-danger:hover{background:var(--bads);border-color:#e7c3c0}.icon-btn{width:30px;height:30px;flex:none;border:1px solid var(--bd);background:#fff;border-radius:8px;cursor:pointer;color:var(--mut);font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--bg);color:var(--g2);border-color:var(--gsb)}.field{margin-bottom:13px}.label{display:block;font-size:12.5px;font-weight:700;color:var(--mut);margin-bottom:6px}.label-sm{display:block;font-size:11.5px;font-weight:700;color:var(--mut);margin-bottom:5px}.input{width:100%;padding:10px 12px;border:1px solid var(--bd);border-radius:10px;font-size:15px;background:#fff;color:var(--tx)}.input:focus{border-color:var(--g);box-shadow:0 0 0 3px #1c7a4c1f}.input-sm{padding:8px 10px;border-radius:8px;font-size:14px}textarea.input{resize:vertical;line-height:1.5;font-size:14.5px}select.input{cursor:pointer}.num{padding:6px;border:1px solid var(--bd);border-radius:8px;text-align:center;font-family:var(--mono);font-size:13.5px;color:var(--tx);background:#fff}.num:focus{border-color:var(--g)}.num.saving{border-color:var(--g);background:var(--gs)}.alert{background:var(--bads);color:var(--bad);border-radius:9px;padding:9px 12px;font-size:13.5px;font-weight:600;margin-top:10px}.hint{font-size:12.5px;color:var(--mut);background:var(--bg);border:1px dashed var(--bd);border-radius:9px;padding:10px 12px;line-height:1.5}.hint b{color:var(--tx)}.seg{display:flex;background:var(--bg);border:1px solid var(--bd);border-radius:12px;padding:4px;gap:4px;margin-bottom:20px}.seg button{flex:1;border:none;border-radius:9px;padding:9px 0;font-weight:600;font-size:14px;cursor:pointer;background:transparent;color:var(--mut)}.seg button.on{font-weight:700;background:var(--g);color:#fff}.toggle{border:1px solid var(--bd);border-radius:8px;padding:6px 13px;font-weight:600;font-size:13px;cursor:pointer;background:#fff;color:var(--mut)}.toggle.on{border-color:var(--g);font-weight:700;background:var(--gs);color:var(--g2)}.chip{border:1px solid var(--bd);border-radius:10px;padding:8px 15px;font-weight:600;font-size:14px;cursor:pointer;font-family:var(--mono);background:#fff;color:var(--mut)}.chip.on{border-color:var(--g);font-weight:700;background:var(--gs);color:var(--g2)}.card{background:var(--card);border:1px solid var(--bd);border-radius:14px}.card-pad{padding:20px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px;border-bottom:1px solid var(--bd)}.card-head h2{font-size:16px;font-weight:800}.card-head span{font-size:12.5px;color:var(--mut)}.card h2.title{font-size:16px;font-weight:800;margin:0 0 6px}.card p.sub{margin:0 0 15px;color:var(--mut);font-size:13.5px}.kpis{display:grid;gap:13px}.kpi{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:15px 16px}.kpi.soft{background:var(--gs);border-color:var(--gsb)}.kpi-label{color:var(--mut);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.kpi.soft .kpi-label,.kpi.soft .kpi-value{color:var(--g2)}.kpi-value{font-family:var(--mono);font-size:22px;font-weight:600;margin-top:6px;letter-spacing:-.02em}.kpi-note{font-size:11.5px;color:var(--g2);opacity:.8;margin-top:3px}.section-label{display:flex;align-items:center;gap:8px;margin:0 0 10px}.section-label div:first-child{font-size:12.5px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}.section-label .rule{flex:1;height:1px;background:var(--bd)}.bar{flex:1;height:7px;background:var(--bd);border-radius:99px;overflow:hidden}.bar>div{height:100%;border-radius:99px;background:var(--g)}.badge-done{display:inline-flex;align-items:center;gap:6px;background:var(--gs);color:var(--g2);font-weight:700;padding:5px 11px;border-radius:8px;font-size:12.5px;white-space:nowrap}.table-wrap{overflow-x:auto}table.t{border-collapse:collapse;width:100%}table.t thead tr{background:var(--bg)}table.t th{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.04em;padding:12px 8px;white-space:nowrap}table.t th.l{text-align:left}table.t th.r{text-align:right}table.t th.amb{color:var(--amb)}table.t th.green{color:var(--g2)}table.t th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.t th.sortable:hover{color:var(--tx)}table.t tbody tr{border-top:1px solid var(--bd)}table.t tbody tr.click{cursor:pointer}table.t tbody tr.click:hover{background:var(--bg)}table.t tbody tr.current{background:var(--gs)}table.t td{padding:10px 8px;font-size:13.5px}table.t td.num-c{text-align:center;font-family:var(--mono)}table.t td.num-r{text-align:right;font-family:var(--mono);white-space:nowrap}table.t td.name{font-weight:600;font-size:14.5px;white-space:nowrap}.sold-cell{display:flex;align-items:center;justify-content:center;gap:11px;white-space:nowrap}.sold-cell .of{font-family:var(--mono);font-size:12px;color:var(--mut)}.sold-cell .ret{font-size:11px;color:var(--amb);font-weight:600}.login{min-height:100vh;display:flex;flex-wrap:wrap}.login-brand{flex:1 1 400px;background:var(--gd);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:56px 52px;min-height:100vh}.login-brand .emblem{width:96px;height:96px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 30px #0003}.login-brand .emblem img{width:78px;height:78px;object-fit:contain}.login-brand h1{font-size:38px;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:30px 0 14px}.login-brand p{font-size:16px;color:#fffc;max-width:360px;margin:0 0 28px;line-height:1.55}.login-brand .values{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;font-weight:700;letter-spacing:.12em;color:#ffffffa6}.login-form{flex:1 1 400px;background:var(--card);display:flex;align-items:center;justify-content:center;padding:32px;min-height:100vh}.login-form>form{width:min(380px,100%);animation:fadeUp .4s ease}.login-form h2{font-size:24px;font-weight:800;margin:0 0 6px;letter-spacing:-.015em}.login-form p{color:var(--mut);margin:0 0 22px;font-size:14.5px}@media(max-width:820px){.login-brand{min-height:auto;padding:36px 28px}.login-brand h1{font-size:30px;margin-top:22px}.login-form{min-height:auto;padding:32px 20px 48px}}.topbar{display:flex;align-items:center;gap:14px;padding:0 22px;height:62px;background:var(--card);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:20}.topbar img{width:34px;height:34px;object-fit:contain}.topbar .club{font-weight:800;letter-spacing:-.01em}.topbar .divider{width:1px;height:22px;background:var(--bd)}.topbar .team-tag{font-weight:700;color:var(--g2);background:var(--gs);padding:5px 12px;border-radius:8px;font-size:14px}.year-select{padding:8px 10px;border:1px solid var(--bd);border-radius:9px;background:#fff;font-weight:600;font-size:14px;cursor:pointer;color:var(--tx)}.page{max-width:1140px;margin:0 auto;padding:26px 22px 64px}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.page-head .eyebrow{color:var(--mut);font-weight:600;font-size:13.5px}.page-head h1{margin:4px 0;font-size:28px;font-weight:800;letter-spacing:-.02em}.done-pill{background:var(--gs);color:var(--g2);font-weight:700;padding:10px 15px;border-radius:11px;border:1px solid var(--gsb);font-size:14.5px}.type-card{background:var(--card);border:1px solid var(--bd);border-radius:13px;padding:13px 15px}.type-card.met{background:var(--gs);border-color:var(--gsb)}.type-card .met-badge{background:var(--g);color:#fff;font-weight:700;font-size:10px;padding:3px 8px;border-radius:7px;white-space:nowrap}.tip{margin:16px 0 0;background:var(--gs);border:1px solid var(--gsb);border-radius:12px;padding:13px 16px;font-size:13.5px;color:var(--g2);line-height:1.5}.player-card{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:16px 16px 14px}@media(max-width:640px){.topbar{padding:0 14px;gap:10px}.topbar .club,.topbar .divider{display:none}.page{padding:20px 14px 56px}}.admin{display:flex;min-height:100vh}.side{width:248px;flex:none;background:var(--ring);display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh}.side .brand{display:flex;align-items:center;gap:11px;padding:4px 8px 20px}.side .brand .logo{width:44px;height:44px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;flex:none}.side .brand .logo img{width:34px;height:34px;object-fit:contain}.side nav{display:flex;flex-direction:column;gap:5px;flex:1}.side nav button{display:flex;align-items:center;gap:12px;width:100%;border:none;cursor:pointer;text-align:left;padding:13px 15px;border-radius:14px;font-weight:700;font-size:15px;transition:all .12s;background:transparent;color:#ffffffa8}.side nav button:hover{color:#fff}.side nav button.on{background:#2f7d49;color:#fff}.side nav .ico{width:18px;display:inline-flex;justify-content:center}.side .season-label{display:block;font-size:11.5px;font-weight:700;color:#ffffff80;margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.side select{width:100%;padding:10px 11px;border:1px solid rgba(255,255,255,.16);border-radius:11px;background:#ffffff14;font-weight:700;font-size:14px;cursor:pointer;color:#fff}.side select option{color:var(--tx)}.side .logout{width:100%;background:#ffffff1a;color:#fff;border:none;border-radius:12px;padding:12px;font-weight:700;font-size:14.5px;cursor:pointer}.side .logout:hover{background:#ffffff2e}.admin main{flex:1;min-width:0;display:flex;flex-direction:column}.admin-top{height:60px;border-bottom:1px solid var(--bd);background:var(--card);display:flex;align-items:center;padding:0 26px;position:sticky;top:0;z-index:10}.mobile-top{background:var(--card);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:10}.mobile-top .row{display:flex;align-items:center;gap:10px;padding:12px 16px}.mobile-top .tabs{display:flex;gap:6px;padding:0 12px 10px;overflow-x:auto}.mobile-top .tabs button{border:none;font-weight:600;padding:11px 13px;border-radius:10px;cursor:pointer;font-size:14.5px;white-space:nowrap;background:transparent;color:var(--mut)}.mobile-top .tabs button.on{font-weight:700;background:var(--gs);color:var(--g2)}.admin-page{max-width:1200px;width:100%;margin:0 auto;padding:26px 24px 64px}.admin-page>h1{margin:0 0 4px;font-size:25px;font-weight:800;letter-spacing:-.02em}.admin-page>p.lead{margin:0 0 20px;color:var(--mut)}@media(max-width:640px){.admin-page{padding:20px 14px 56px}}.pending{margin-left:9px;background:var(--gs);color:var(--g2);font-weight:700;font-size:11px;padding:3px 9px;border-radius:7px}.list-row{display:flex;align-items:center;gap:12px;padding:11px 18px;border-top:1px solid var(--bd)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e201875;display:flex;align-items:flex-start;justify-content:center;padding:40px 18px;z-index:50;overflow:auto;animation:fadeIn .2s ease}.modal{width:min(900px,100%);background:var(--card);border-radius:18px;padding:24px;animation:fadeUp .26s ease}.modal .close{width:34px;height:34px;border:1px solid var(--bd);background:#fff;border-radius:9px;cursor:pointer;font-size:17px;color:var(--mut);line-height:1}.dialog-overlay{z-index:60;align-items:center}.modal.dialog{width:min(440px,100%);padding:22px}.dialog-msg{margin-top:8px;color:var(--mut);font-size:14.5px;line-height:1.5}.dialog-list{margin-top:12px;max-height:260px;overflow:auto;border:1px solid var(--bd);border-radius:10px;padding:8px 12px;font-size:14px;color:var(--tx);line-height:1.7}.dialog-err{color:var(--bad);font-size:13px;font-weight:600;margin-top:6px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.dialog-actions .btn{padding:9px 16px;font-size:14px;border-radius:10px}.btn-bad{background:var(--bad)}.btn-bad:hover{background:var(--bad);filter:brightness(.92)}.mini-kpi{background:var(--bg);border-radius:11px;padding:12px 13px}.mini-kpi.soft{background:var(--gs)}.mini-kpi .kpi-label{font-size:10.5px}.mini-kpi .v{font-family:var(--mono);font-size:18px;font-weight:600;margin-top:4px}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%);background:var(--tx);color:#fff;padding:11px 18px;border-radius:12px;font-weight:600;font-size:14px;box-shadow:0 10px 30px #0003;z-index:80;animation:fadeUp .2s ease;max-width:calc(100vw - 32px)}.toast.err{background:var(--bad)}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;color:var(--mut)}.spinner{width:28px;height:28px;border:3px solid var(--bd);border-top-color:var(--g);border-radius:50%;animation:spin .8s linear infinite}.empty{padding:28px 18px;text-align:center;color:var(--mut);font-size:14px}.kpi-note.muted-note{color:var(--mut);opacity:1}table.t tbody tr.office-row{border-top:2px solid var(--bd);background:#fafbf9}table.t tbody tr.office-row:hover{background:var(--bg)}.sortable-row{position:relative}.sortable-row.dragging{opacity:.45;background:var(--bg)}.sortable-row.drop-before:before,.sortable-row.drop-after:after{content:"";position:absolute;left:10px;right:10px;height:3px;border-radius:2px;background:var(--g);pointer-events:none}.sortable-row.drop-before:before{top:-2px}.sortable-row.drop-after:after{bottom:-2px}.sortable-row.selected{background:var(--gs)}.drag-handle{border:none;background:none;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;color:var(--mut);font-size:16px;letter-spacing:-3px;padding:4px 8px 4px 2px;border-radius:6px;line-height:1}.drag-handle:active{cursor:grabbing}.drag-handle:focus-visible{outline:2px solid var(--g);outline-offset:1px}.row-pick{flex:1;text-align:left;border:none;background:none;padding:0;font:inherit;font-weight:700;font-size:14.5px;color:var(--tx);cursor:pointer}.row-pick:hover{color:var(--g)}.paid-box{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:12.5px;font-weight:700;color:var(--mut);-webkit-user-select:none;user-select:none}.paid-box input{width:18px;height:18px;accent-color:var(--g);cursor:pointer;margin:0}.paid-box.on{color:var(--g)}table.t tr.paid td{background:var(--gs)}.player-card.paid{border-color:var(--gsb);background:var(--gs)}table.t tr.sum-row td{border-top:2px solid var(--bd);font-weight:800;font-size:14px}.handout{display:flex;flex-wrap:wrap;gap:0 14px;align-items:flex-end}.handout .field{flex:1 1 130px;min-width:120px}.handout .field:first-child{flex:1 1 160px}.handout .handout-sum{flex:0 0 auto;min-width:110px}.handout .field:last-child{flex:0 0 auto}table.t tr.day-row td{background:var(--bg);font-weight:700}.to-team{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:var(--gs);border:1px solid var(--gsb);color:var(--g);font-size:11.5px;font-weight:700;white-space:nowrap}
