:root{--deep:#0b2239;--navy:#12395e;--accent:#1b7cae;--accent2:#2ea3d8;--bg:#eef5f9;--card:#fff;--ink:#16283a;--muted:#5d7185;--line:#d5e3ec;--good:#1e9e57;--warn:#d9930d;--bad:#cf3f3f;--radius:14px}
*{box-sizing:border-box}[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);padding-bottom:48px}
.topbar{background:linear-gradient(135deg,var(--deep),var(--navy));color:#fff;display:flex;align-items:center;justify-content:space-between;padding:13px 16px;position:sticky;top:0;z-index:20;box-shadow:0 2px 10px rgba(11,34,57,.35)}
.brand{display:flex;align-items:center;gap:11px}.logo{font-size:28px;background:rgba(255,255,255,.12);width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.brand-name{font-size:20px;font-weight:800}.brand-sub{font-size:12px;color:#dff2fb;opacity:.85}
main{max-width:920px;margin:0 auto;padding:14px 14px 0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px}
.card h2{margin:0 0 8px;font-size:18px}.card h3{margin:14px 0 6px;font-size:15px}
.muted{color:var(--muted);font-size:13px}.small{font-size:12px}
.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 14px;border-radius:10px;font-size:15px;cursor:pointer;min-height:42px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}
.btn.danger{background:#fff;border-color:var(--bad);color:var(--bad)}
.btn:disabled{opacity:.5;cursor:default}
.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
input,select,textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;font-size:16px;background:#fff;color:var(--ink)}
label{display:block;font-size:13px;font-weight:600;margin:10px 0 4px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;position:sticky;top:66px;background:var(--bg);z-index:10}
.tabs button{flex:0 0 auto;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 13px;font-size:14px;cursor:pointer}
.tabs button.on{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:700}
.home-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start;margin-bottom:12px}
.home-grid .card{margin-bottom:0}
.tour-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px}
.tour-head h2{margin:0 0 4px;font-size:20px}
.badge.warn{background:var(--warn)}.badge.grey{background:#8a9aa8}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{padding:7px 6px;border-bottom:1px solid var(--line);text-align:left}
th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.4px}
.num{text-align:right;font-variant-numeric:tabular-nums}
.lead-row td{font-weight:700}
.sponsor-slide{background:var(--deep);color:#fff;border-radius:var(--radius);padding:14px;text-align:center;margin-bottom:12px;min-height:86px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.sponsor-slide img{max-height:56px;max-width:80%;object-fit:contain;background:#fff;border-radius:8px;padding:4px 10px}
.sponsor-slide .sname{font-weight:800;font-size:18px}
.hole-sponsor{display:flex;align-items:center;gap:8px;background:#fff8e1;border:1px solid #f0d98c;border-radius:10px;padding:8px 10px;margin:6px 0;font-size:13px}
.hole-sponsor img{max-height:30px;max-width:110px;object-fit:contain}
.score-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:5px}
.score-grid button{padding:10px 0;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:15px;cursor:pointer}
.score-grid button.filled{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:700}
.score-grid button.sel{outline:3px solid var(--accent2)}
.hole-label{font-size:11px;color:var(--muted);text-align:center}
.chat-list{display:flex;flex-direction:column;gap:8px}
.chat-item{border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff;cursor:pointer}
.chat-item.on{border-color:var(--accent);box-shadow:0 0 0 2px rgba(27,124,174,.25)}
.msgs{display:flex;flex-direction:column;gap:9px;max-height:52vh;overflow-y:auto;padding:4px 0}
.msg{max-width:86%;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 11px}
.msg.mine{align-self:flex-end;background:#e3f2fa;border-color:#bfe0f2}
.msg img{max-width:100%;border-radius:8px;margin-top:6px}
.msg .meta{font-size:11px;color:var(--muted);margin-bottom:2px}
.react{font-size:12px;border:1px solid var(--line);border-radius:999px;padding:2px 8px;background:#fff;cursor:pointer;margin:3px 3px 0 0}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:18px;background:var(--deep);color:#fff;padding:11px 16px;border-radius:999px;font-size:14px;z-index:50;box-shadow:0 4px 18px rgba(0,0,0,.3)}
.par-row{display:grid;grid-template-columns:repeat(9,1fr);gap:5px}
.par-row input{padding:7px 2px;text-align:center}
@media print{
  body{background:#fff}.topbar,.tabs,#tourHeader,.btnrow,.no-print{display:none!important}
  main{max-width:100%;padding:0}.card{border:1px solid #999;break-inside:avoid}
}
@media (max-width:760px){.home-grid{grid-template-columns:1fr}}
@media (max-width:560px){.grid2{grid-template-columns:1fr}.score-grid{grid-template-columns:repeat(6,1fr)}}
