:root{--green: #1a7a3a;--green-dark: #115527;--green-deep: #0c3d1c;--green-grad: linear-gradient(135deg, #1f8a43, #115527);--ink: #111;--muted: #555;--bg: #eef2ee;--card: #ffffff;--line: #dde3dd;--red: #b3261e;--amber: #9a6a00;--shadow: 0 1px 3px rgba(17, 40, 24, .1), 0 4px 14px rgba(17, 40, 24, .06)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:17px;-webkit-text-size-adjust:100%}.app{display:flex;flex-direction:column;min-height:100dvh;max-width:640px;margin:0 auto}header{display:flex;align-items:center;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:var(--green-grad);box-shadow:var(--shadow)}header h1{margin:0;font-size:1.25rem;color:#fff;letter-spacing:.2px}.course{color:#ffffffd9;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logo-btn{border:none;background:none;padding:0}.home-hero{text-align:center;padding:24px 0 8px}.home-logo{font-size:3rem}.home-hero h2{margin:4px 0;color:var(--green-dark)}.build-tag{color:var(--muted);font-size:.7rem;margin:2px 0 0}.crew-round-card{border-color:var(--green);background:#eef6ef}.install-steps{margin:8px 0;padding-left:24px;line-height:1.7;font-size:.95rem}.auth-banner{background:#e3efe5;border:1px solid var(--green);color:var(--green-dark);border-radius:12px;padding:12px 16px;font-size:.95rem;margin:8px 0;cursor:pointer}.drama-banner{background:linear-gradient(135deg,#fdeaea,#ffe2c7);border:1px solid var(--red);color:var(--red);border-radius:12px;padding:12px 16px;text-align:center;font-size:1rem;margin:0;animation:drama-pulse 1.6s ease-in-out infinite}@keyframes drama-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.015)}}.champ-banner{background:linear-gradient(135deg,#fff6e0,#ffefc2);border:1px solid #d4a017;color:#6b4f00;border-radius:12px;padding:12px 16px;text-align:center;font-size:.95rem;margin:0}.role-badge{display:inline-block;background:#e3efe5;border:1px solid var(--green);color:var(--green-dark);border-radius:999px;padding:6px 12px;font-weight:700;font-size:.9rem;margin:4px 0}.home .card button.big{width:100%}.sync-chip{margin-left:auto;font-size:.8rem;font-weight:700;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.45);background:#ffffff26;color:#fff;white-space:nowrap}.sync-chip.synced{border-color:var(--green);color:var(--green-dark);background:#e3efe5}.sync-chip.offline{border-color:var(--amber);color:var(--amber);background:#fff6e0}main{flex:1;padding:8px 12px 90px}.screen{display:flex;flex-direction:column;gap:12px}.card{background:var(--card);border:1px solid rgba(0,0,0,.03);border-radius:16px;padding:14px;box-shadow:var(--shadow)}.card h2{margin:0 0 10px;font-size:1.05rem}.card h3{margin:8px 0 6px;font-size:.95rem;color:var(--muted)}.row{display:flex;align-items:center;gap:8px;margin:6px 0;flex-wrap:wrap}.row.wrap{flex-wrap:wrap}.player-row{justify-content:space-between;border-bottom:1px solid var(--line);padding:6px 0}input,select{font-size:1rem;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff;min-width:0;flex:1}input[type=number]{max-width:90px}input[type=checkbox]{width:22px;height:22px;flex:none}label{display:flex;align-items:center;gap:6px;font-size:.9rem;color:var(--muted)}button{font-size:1rem;padding:12px 16px;border:1.5px solid var(--green-dark);border-radius:12px;background:#fff;color:var(--green-dark);font-weight:600;cursor:pointer;touch-action:manipulation;transition:transform .08s ease,box-shadow .12s ease}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.4}button.primary{background:var(--green-grad);border-color:transparent;color:#fff;box-shadow:0 2px 8px #11552759}button.big{font-size:1.15rem;padding:16px 24px;flex:1}button.danger{border-color:var(--red);color:var(--red);padding:8px 12px}button.armed{background:var(--red);border-color:var(--red);color:#fff;animation:armed-pulse .25s ease}@keyframes armed-pulse{0%{transform:scale(.97)}to{transform:scale(1)}}button.link{border:none;background:none;padding:6px 0;text-decoration:underline;font-weight:500}.hint{color:var(--muted);font-size:.85rem;margin:4px 0}.warning{background:#fff6e0;border:1px solid var(--amber);color:var(--amber);border-radius:10px;padding:10px;font-size:.9rem}.hole-strip{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.hole-chip{min-width:44px;height:44px;padding:0;border-radius:50%;flex:none}.hole-chip.active{background:var(--green-grad);border-color:transparent;color:#fff;box-shadow:0 2px 8px #11552759}.hole-chip.done:not(.active){background:#dceede}.hole-header{display:flex;align-items:baseline;gap:12px}.hole-header h2{margin:4px 0}.score-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}.score-row:last-child{border-bottom:none}.score-name{display:flex;align-items:center;gap:8px;font-size:1.05rem}.dots{color:var(--green);font-weight:700;letter-spacing:2px}.score-controls{display:flex;align-items:center;gap:8px}.net{text-align:right;color:var(--muted);font-size:.9rem}.score-chips{display:flex;gap:6px;align-items:stretch;padding-bottom:8px;flex-wrap:wrap}.score-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:52px;padding:6px 4px;border-radius:12px;gap:1px}.score-chip .chip-num{font-size:1.25rem;font-weight:800;line-height:1.1}.score-chip .chip-label{font-size:.65rem;font-weight:600;color:var(--muted)}.score-chip.on{background:var(--green-grad);border-color:transparent;color:#fff;box-shadow:0 2px 8px #11552759}.score-chip.on .chip-label{color:#cfe8d5}.score-other{flex:0 0 auto;width:86px;align-self:center}.score-block{border-bottom:1px solid var(--line)}.score-block:last-child{border-bottom:none}.score-block .score-row{border-bottom:none}.junk-row{display:flex;gap:8px;padding:0 0 10px}.junk-chip{padding:8px 14px;font-size:.85rem;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-weight:600}.junk-chip.on{background:var(--green);border-color:var(--green-dark);color:#fff}.furthest-card{border-color:var(--amber)}.junk-log{margin-top:8px;border-top:1px solid var(--line);padding-top:6px}.pill{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:.9rem}.pill.pos{border-color:var(--green);color:var(--green-dark);font-weight:700}.pill.neg{border-color:var(--red);color:var(--red)}.skins-strip{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.skin-chip{min-width:34px;text-align:center;padding:6px 4px;border-radius:8px;background:#fff;border:1px solid var(--line);font-size:.8rem}.skin-chip.won{background:var(--green);color:#fff;border-color:var(--green-dark)}.skin-chip.carried{background:#fff6e0;border-color:var(--amber)}.totals-table{width:100%;border-collapse:collapse}.totals-table td,.totals-table th{padding:8px 6px;text-align:left;border-bottom:1px solid var(--line)}.totals-table .leader td{font-weight:700;color:var(--green-dark)}.pos{color:var(--green-dark);font-weight:700}.neg{color:var(--red);font-weight:700}.big-score{font-size:1.2rem}.transfer{font-size:1.1rem;padding:8px;background:#fff;border:1px solid var(--line);border-radius:10px}.transfer .amount{color:var(--green-dark);font-weight:800}.game-breakdown{border-bottom:1px solid var(--line);padding-bottom:6px;margin-bottom:6px}.holes-table{border-collapse:collapse;font-size:.85rem}.holes-table td,.holes-table th{border:1px solid var(--line);padding:4px 6px;text-align:center}.holes-table input{width:52px;padding:6px;text-align:center}.matrix-scroll{overflow-x:auto}.fullcard{width:100%;margin-bottom:10px}.fullcard .par-row th{background:var(--card);color:var(--muted);font-weight:600}.fullcard .card-name{text-align:left;font-weight:700;white-space:nowrap}.fullcard .card-total{font-weight:800;background:var(--card)}.mark{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;font-weight:700;margin:1px auto}.mark-par{color:var(--ink)}.mark-under{border:1.6px solid var(--green);border-radius:50%;color:var(--green-dark)}.mark-over{border:1.6px solid #9a3a32;border-radius:5px;color:#9a3a32}.mark-x2{outline:1.6px solid currentColor;outline-offset:2px}.card-dot{color:var(--green);font-size:.6rem}.player-edit{text-align:left;padding:4px 0}.player-edit-form{border:1px solid var(--green);border-radius:10px;padding:8px;margin:6px 0;background:#fff}.stepper{display:flex;gap:4px}.step{flex:1;border:1px solid var(--line);background:#fff;color:var(--muted);font-size:.8rem;padding:10px 2px;border-radius:10px;font-weight:600}.step .step-num{display:inline-block;width:20px;height:20px;line-height:20px;border-radius:50%;background:var(--line);color:var(--ink);font-size:.75rem;text-align:center}.step.active{border-color:var(--green);color:var(--green-dark);background:#e3efe5}.step.active .step-num,.step.done .step-num{background:var(--green);color:#fff}.explain{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:8px 0;font-size:.9rem}.explain summary{cursor:pointer;color:var(--green-dark);font-weight:600}.explain div{margin-top:8px;color:var(--muted);line-height:1.45}.pot-row{border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:6px}.course-list{display:flex;flex-direction:column;gap:6px;max-height:50dvh;overflow-y:auto}.course-item{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;padding:12px;font-weight:500}.course-name{flex:1;min-width:0}.course-meta{display:flex;align-items:center;gap:8px;flex:none;font-size:.85rem;color:var(--muted)}.badge{border-radius:999px;padding:3px 8px;font-size:.75rem;font-weight:700}.badge.ok{background:#e3efe5;color:var(--green-dark)}.badge.warn{background:#fff6e0;color:var(--amber)}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;max-width:640px;margin:0 auto;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line);box-shadow:0 -4px 16px #11281814;padding:6px 8px calc(6px + env(safe-area-inset-bottom));gap:6px}.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;border:none;padding:7px 4px 6px;font-size:.75rem;font-weight:600;color:var(--muted);background:none}.tab-ico{font-size:1.25rem;line-height:1.2}.tabbar button.active{color:var(--green-dark);background:#e3efe5;border-radius:12px}
