.tp{--tp-gold: #e2a400;--tp-soft: #e7f3ec}.tp textarea,.tp select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font-size:16px;font-family:inherit;background:#fff;color:var(--ink)}.tp textarea{resize:vertical}.tp textarea:focus,.tp select:focus{outline:2px solid var(--pitch);outline-offset:1px;border-color:var(--pitch)}.tp-btn{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:9px 14px;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px}.tp-btn.small{padding:6px 10px;font-size:13px;min-height:34px}.tp-btn.primary{background:var(--pitch);border-color:var(--pitch);color:#fff}.tp-btn.danger{color:var(--danger);border-color:var(--danger)}.tp-btn:disabled{opacity:.4;cursor:default}.tp-star{color:var(--tp-gold)}.tp-note{color:var(--muted);font-size:13px;margin:6px 0 0}.tp-feature{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;width:100%;text-align:left;background:var(--pitch);color:#fff;border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);margin-bottom:16px}.tp-fd{font-size:40px;font-weight:800;line-height:.95;text-align:center;font-variant-numeric:tabular-nums}.tp-fd small{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.6px;opacity:.8;font-weight:700}.tp-fmain{display:flex;flex-direction:column;gap:2px;min-width:0}.tp-fl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:#ffd27a}.tp-ftitle{font-size:19px;font-weight:800;line-height:1.2}.tp-fx{font-size:13px;opacity:.85;line-height:1.35}.tp-fgo{grid-column:1 / -1;font-weight:700;font-size:15px}.tp-missing{padding:16px 18px;margin-bottom:16px}.tp-mrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.tp-mrow:last-child{border-bottom:0}.tp-mrow small{display:block;color:var(--muted);font-size:13px}.tp-filters{display:flex;flex-direction:column;gap:10px;margin-bottom:4px}.tp-seg{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.tp-seg button{flex:1;background:none;border-radius:0;padding:10px 6px;font-size:14px;color:var(--ink)}.tp-seg button[aria-pressed=true]{background:var(--ink);color:#fff}.tp-tags{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.tp-tags::-webkit-scrollbar{display:none}.tp-tags button{flex:none;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13px;color:var(--ink)}.tp-tags button[aria-pressed=true]{background:var(--pitch);border-color:var(--pitch);color:#fff}.tp-tags small{margin-left:5px;opacity:.7}.tp-count{color:var(--muted);font-size:13px;margin:0}.tp-month{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:18px 0 8px}.tp-cards{display:flex;flex-direction:column;gap:10px}.tp-card{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;width:100%;text-align:left;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;color:var(--ink);font-weight:400}.tp-card.today{border:2px solid var(--pitch)}.tp-cd{font-size:28px;font-weight:800;line-height:1;text-align:center;font-variant-numeric:tabular-nums}.tp-cd small{display:block;font-size:11px;text-transform:uppercase;color:var(--muted);letter-spacing:.5px}.tp-cmain{display:flex;flex-direction:column;gap:4px;min-width:0}.tp-ctitle{font-weight:700;font-size:16px;line-height:1.25}.tp-cmeta{font-size:13px;color:var(--muted)}.tp-cmeta b{color:var(--pitch)}.tp-ctags{display:flex;flex-wrap:wrap;gap:4px}.tp-ctags span{font-size:11px;font-weight:700;background:var(--tp-soft);color:var(--pitch-dark);border-radius:6px;padding:2px 7px}.tp-cex{display:flex;flex-direction:column;font-size:13px}.tp-cex span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tp-view{padding-bottom:84px}.tp-backrow{display:flex;align-items:center;gap:8px;margin-bottom:8px}.tp-mdate{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}.tp-mtitle{font-size:22px;line-height:1.2;margin:2px 0 0}.tp-steps{position:sticky;top:0;z-index:5;background:var(--bg);display:flex;gap:6px;overflow-x:auto;padding:10px 0;margin-top:6px;border-bottom:1px solid var(--line);scrollbar-width:none}.tp-steps::-webkit-scrollbar{display:none}.tp-steps button{flex:none;display:flex;flex-direction:column;align-items:flex-start;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:6px 11px;min-height:44px;font-weight:400}.tp-steps button b{font-size:13px;white-space:nowrap}.tp-steps button span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.tp-steps button.on{background:var(--pitch);border-color:var(--pitch);color:#fff}.tp-steps button.on span{color:#fff;opacity:.8}.tp-page{padding-top:14px}.tp-chips{display:flex;flex-wrap:wrap;gap:6px}.tp-chips span,.tp-pill{background:var(--line);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.tp-dayfocus{margin-top:14px;background:var(--surface);border:2px solid var(--amber);border-radius:var(--radius);padding:12px 14px}.tp-dayfocus p,.tp-focus p,.tp-sec p,.tp-desc,.tp-fbi p{white-space:pre-line;margin:4px 0 0;line-height:1.5}.tp-lbl{margin:0!important;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:#a45f00}.tp-olist{margin-top:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.tp-orow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:none;border-radius:0;border-bottom:1px solid var(--line);padding:12px 14px;min-height:56px;color:var(--ink)}.tp-orow:last-child{border-bottom:0}.tp-ot{width:74px;flex:none;font-weight:800;color:var(--pitch);font-size:13px;font-variant-numeric:tabular-nums}.tp-on{flex:1;min-width:0}.tp-on small{display:block;font-weight:400;color:var(--muted);font-size:12px}.tp-rate-sum{color:var(--ink)!important}.tp-chev{font-size:22px;color:var(--muted);font-weight:400}.tp-desc{margin-top:14px!important;color:var(--ink);font-size:15px}.tp-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.tp-confirm{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:14px}.tp-pmeta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.tp-tag{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--pitch-dark);background:var(--tp-soft);border-radius:6px;padding:3px 8px}.tp-ptitle{font-size:22px;line-height:1.2;margin:8px 0 2px}.tp-pgrp{color:var(--muted);font-size:14px;margin:0}.tp-img{display:block;width:100%;border-radius:12px;margin-top:12px;border:1px solid var(--line);background:#3e8e4a}.tp-focus{background:var(--tp-soft);border-radius:12px;padding:12px 14px;margin-top:12px}.tp-focus .tp-lbl{color:var(--pitch-dark)}.tp-sec{margin-top:14px}.tp-sec h4,.tp-ratebox h4,.tp-fb h4{margin:0;font-size:15px}.tp-sec a{color:var(--pitch);word-break:break-all}.tp-ratebox{margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}.tp-rate{display:flex;align-items:center;gap:2px;margin-top:4px}.tp-rate button{background:none;padding:2px 3px;font-size:30px;line-height:1;color:var(--line);min-width:42px;min-height:44px}.tp-rate button.on{color:var(--tp-gold)}.tp-rl{font-size:13px;color:var(--muted);margin-left:8px}.tp-fb{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;align-items:flex-start}.tp-fb h4 small{font-weight:400;color:var(--muted);font-size:12px}.tp-fbi{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 12px}.tp-fbh{display:flex;gap:10px;align-items:baseline;font-size:12px;color:var(--muted)}.tp-fbh b{color:var(--ink);font-size:14px}.tp-fbh .link{margin-left:auto;font-size:12px}.tp-pager{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;gap:8px;background:var(--surface);border-top:1px solid var(--line);padding:10px max(12px,calc((100vw - 540px)/2 + 12px)) calc(10px + env(safe-area-inset-bottom,0px))}.tp-pager .tp-btn{flex:1;min-width:0;min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.tp-pcount{flex:none;min-width:58px;text-align:center;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.tp-editor .card{padding:16px;margin-top:12px}.tp-editor .card+.card{margin-top:12px}.tp-f{margin:10px 0 0;display:flex;flex-direction:column;gap:5px;min-width:0}.tp-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tp-row .tp-f input{min-width:0}.tp-eh{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.tp-eh b{flex:1;min-width:120px;font-size:16px}.tp-imgrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.tp-imgrow img{max-width:160px;border-radius:8px;border:1px solid var(--line)}.tp-imgrow label{margin:0;font-weight:600;cursor:pointer}.tp-editor>.tp-btn{margin-top:12px;width:100%}.tp-savebar{position:sticky;bottom:0;background:var(--bg);padding:12px 0 calc(12px + env(safe-area-inset-bottom,0px));margin-top:12px}.tp-notify{margin-top:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.tp-notify .tp-lbl{color:var(--pitch-dark)}.tp-notify .msg{margin-top:0;width:100%}.tp-pushcard{background:var(--tp-soft);border-radius:var(--radius);padding:12px 14px;margin-bottom:14px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;font-size:14px}.tp-pushcard p{margin:0;color:var(--ink);line-height:1.45}.tp-pushcard .msg{margin-top:0}.tp-pushline{font-size:13px;color:var(--muted);margin:0 0 12px}.tp-pushline .link{font-size:13px}:root{--bg: #f5f6f4;--surface: #ffffff;--ink: #14201a;--muted: #5d6b63;--line: #e3e7e3;--pitch: #156d43;--pitch-dark: #0e4f31;--amber: #e8920c;--danger: #b3261e;--radius: 14px;--shadow: 0 1px 2px rgba(20,32,26,.06), 0 8px 24px rgba(20,32,26,.06)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app{min-height:100dvh}.topbar{background:var(--pitch);color:#fff;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar h1{font-size:17px;letter-spacing:.3px;margin:0;font-weight:700}.topbar .who{font-size:13px;opacity:.85}.container{max-width:540px;margin:0 auto;padding:22px 18px 48px}.center-screen{min-height:100dvh;display:grid;place-items:center;padding:24px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.card+.card{margin-top:16px}.brand-mark{font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--pitch);margin-bottom:6px}h2{font-size:22px;margin:0 0 4px}.sub{color:var(--muted);font-size:14px;margin:0 0 18px}label{display:block;font-size:13px;font-weight:600;margin:12px 0 6px}input{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:10px;font-size:16px;background:#fff;color:var(--ink)}input:focus{outline:2px solid var(--pitch);outline-offset:1px;border-color:var(--pitch)}button{font-size:15px;font-weight:600;border:none;border-radius:10px;padding:12px 16px;cursor:pointer}.btn-primary{background:var(--pitch);color:#fff;width:100%;margin-top:18px}.btn-primary:hover{background:var(--pitch-dark)}.btn-primary:disabled{opacity:.55;cursor:default}.btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5);padding:7px 12px;font-size:13px}.link{background:none;color:var(--pitch);padding:0;font-size:14px;text-decoration:underline}.msg{font-size:14px;margin-top:14px;padding:10px 12px;border-radius:10px}.msg.error{background:#fbeae9;color:var(--danger)}.msg.ok{background:#e7f3ec;color:var(--pitch-dark)}.team-row{display:flex;align-items:center;justify-content:space-between;padding:14px 4px;border-bottom:1px solid var(--line)}.team-row:last-child{border-bottom:none}.team-name{font-weight:600}.badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:3px 9px;border-radius:999px}.badge.coach{background:#e7f3ec;color:var(--pitch-dark)}.badge.player{background:#fdf0db;color:#8a5a05}.empty{color:var(--muted);font-size:14px;padding:8px 4px 0}.section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 6px}.muted-note{color:var(--muted);font-size:13px;margin-top:10px}
