:root{
  --green:#0b7a4b; --green2:#0f9b61; --bg:#f3f5f4; --card:#fff;
  --text:#17211c; --muted:#68736d; --line:#dfe5e1; --danger:#c73535;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;color:var(--text);background:var(--bg);min-height:100vh}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.topbar{position:sticky;top:0;z-index:10;padding:calc(14px + env(safe-area-inset-top)) 18px 14px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
h1{font-size:22px;margin:2px 0}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--green)}
main{max-width:920px;margin:auto;padding:18px 14px 50px}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 30px rgba(20,40,30,.05)}
h2{font-size:18px;margin:0 0 16px}h3{margin:0 0 10px}
label{display:block;font-weight:700;font-size:13px;margin:12px 0 7px}
textarea,input,select{width:100%;border:1px solid #ccd5d0;border-radius:11px;padding:11px 12px;background:#fff;color:var(--text)}
textarea{resize:vertical;line-height:1.5}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 12px;margin-bottom:14px}
.primary{background:var(--green);color:#fff;border:0;border-radius:12px;padding:12px 16px;font-weight:800}
.primary:hover{background:var(--green2)}.big{width:100%;font-size:16px;padding:14px}.ghost{background:#fff;border:1px solid var(--line);padding:9px 12px;border-radius:10px;font-weight:700}
.muted,.hint{color:var(--muted);font-weight:400}.hint{font-size:12px;margin:10px 2px 0}
.tabs{display:flex;gap:6px;overflow:auto;margin:0 0 14px;padding-bottom:2px}
.tab{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 13px;font-weight:700;color:var(--muted)}
.tab.active{background:var(--green);border-color:var(--green);color:#fff}
.section{background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:12px;overflow:hidden}
.section-head{padding:13px 14px;background:#f8faf9;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:center}
.section-head strong{font-size:15px}.section-body{padding:10px}
.match{display:grid;grid-template-columns:minmax(0,1fr) 105px minmax(0,1fr) 80px;gap:8px;align-items:center;padding:11px 4px;border-bottom:1px solid #edf0ee}
.match:last-child{border-bottom:0}.player{text-align:center;font-weight:700;word-break:break-word}.vs{text-align:center;color:var(--muted);font-size:12px}
.score{padding:9px 7px;text-align:center;border-radius:9px;border:1px solid #ccd5d0}.save{border:0;border-radius:9px;background:#e8f5ef;color:var(--green);font-weight:800;padding:9px 7px}
.done{background:#eef8f3}.winner{color:var(--green)}.small{font-size:12px;color:var(--muted)}
table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:9px 7px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:11px;text-transform:uppercase}
.bracket{display:flex;gap:14px;overflow:auto;padding:5px}.round{min-width:185px}.round h4{text-align:center;color:var(--muted);margin:0 0 8px}.slot{background:#fff;border:1px solid var(--line);border-radius:10px;margin:0 0 10px;overflow:hidden}.slot div{padding:8px;border-bottom:1px solid var(--line)}.slot div:last-child{border:0}.champ{font-size:18px;text-align:center;padding:18px;background:#e8f5ef;border-radius:14px}
.notice{padding:12px;border-radius:12px;background:#fff8dd;border:1px solid #f0df98;font-size:13px;margin-bottom:12px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(20px);background:#17211c;color:#fff;padding:11px 15px;border-radius:999px;opacity:0;pointer-events:none;transition:.25s;z-index:50;font-size:13px}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:650px){.match{grid-template-columns:1fr 70px 1fr 62px}.match .vs{display:none}.grid{grid-template-columns:1fr 1fr}.match .player{font-size:13px}.save{font-size:12px}}
@media(max-width:430px){.grid{grid-template-columns:1fr}.match{grid-template-columns:1fr 70px 1fr}.match .save{grid-column:1/-1}.score{width:100%}}
