:root{--font-main:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;--font-heading:'Outfit',sans-serif;--font-mono:'JetBrains Mono',monospace;--mg-bg-dark:#0f172a;--mg-card-bg:rgba(30,41,59,0.75);--mg-card-border:rgba(255,255,255,0.1);--mg-text-main:#f8fafc;--mg-text-muted:#94a3b8;--mg-accent-green:#10b981;--mg-accent-gold:#f59e0b;--mg-accent-red:#ef4444;--mg-accent-blue:#3b82f6;--mg-radius-lg:16px;--mg-radius-md:10px;--mg-radius-sm:6px;--mg-shadow:0 10px 30px -10px rgba(0,0,0,0.5)}body{margin:0;padding:0;font-family:var(--font-main);background-color:#0b0f17;color:var(--mg-text-main);overflow-x:clip;width:100%;max-width:100%;min-height:100vh;display:flex;flex-direction:column}.tool-layout{max-width:1200px;margin:1.5rem auto 3rem;padding:0 1rem;box-sizing:border-box;flex:1 0 auto;width:100%}.tool-with-sidebar{display:flex;gap:2rem;align-items:flex-start;width:100%}.tool-main-content{flex:1 1 0%;min-width:0;width:100%}.mg-game-card{background:var(--mg-card-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--mg-card-border);border-radius:var(--mg-radius-lg);box-shadow:var(--mg-shadow);overflow:hidden;margin-bottom:2rem}.mg-viewport-wrapper{position:relative;width:100%;height:clamp(600px,74vh,860px);min-height:560px;background-color:#131c2e;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none}#minigolf-canvas-container{width:100%;height:100%;cursor:grab}#minigolf-canvas-container.is-aiming{cursor:crosshair}#minigolf-canvas-container canvas{width:100%!important;height:100%!important;display:block}.mg-hud-top{position:absolute;top:1rem;left:1rem;right:1rem;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none;z-index:10;gap:0.75rem}.mg-hud-pill-group{display:flex;flex-direction:column;gap:0.45rem;pointer-events:auto}.mg-hud-badge-card{background:rgba(15,23,42,0.88);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.15);border-radius:var(--mg-radius-md);padding:0.55rem 0.9rem;display:flex;align-items:center;gap:0.75rem;box-shadow:0 4px 12px rgba(0,0,0,0.4)}.mg-hud-hole-icon{width:36px;height:36px;background:rgba(16,185,129,0.2);border:1px solid rgba(16,185,129,0.45);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--mg-accent-green);font-family:var(--font-heading);font-weight:700;font-size:0.9rem}.mg-hud-hole-info{display:flex;flex-direction:column}.mg-hud-hole-title{font-family:var(--font-heading);font-size:1rem;font-weight:700;color:#fff;margin:0;line-height:1.2}.mg-hud-hole-meta{font-size:0.78rem;color:var(--mg-text-muted);display:flex;gap:0.45rem;margin-top:0.15rem}.mg-hud-status-bar{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}.mg-hud-pill{font-family:var(--font-mono);font-size:0.73rem;font-weight:600;padding:0.32rem 0.75rem;border-radius:9999px;text-transform:uppercase;letter-spacing:0.03em;background:rgba(15,23,42,0.88);border:1px solid rgba(255,255,255,0.15)}.pill-ready{color:#10b981;border-color:rgba(16,185,129,0.4);background:rgba(16,185,129,0.15)}.pill-moving{color:#f59e0b;border-color:rgba(245,158,11,0.4);background:rgba(245,158,11,0.15)}.pill-sunk{color:#3b82f6;border-color:rgba(59,130,246,0.4);background:rgba(59,130,246,0.15)}.mg-hole-selector{display:flex;gap:0.25rem;background:rgba(15,23,42,0.85);padding:0.22rem;border-radius:999px;border:1px solid rgba(255,255,255,0.12)}.mg-hole-dot{width:24px;height:24px;border-radius:50%;border:none;background:transparent;color:var(--mg-text-muted);font-family:var(--font-mono);font-size:0.72rem;font-weight:700;cursor:pointer;transition:all 0.15s ease;display:flex;align-items:center;justify-content:center;padding:0}.mg-hole-dot:hover{color:#fff;background:rgba(255,255,255,0.1)}.mg-hole-dot.active{background:var(--mg-accent-green);color:#0b0f17}.mg-hole-dot.done{color:#34d399;border:1px solid rgba(52,211,153,0.4)}.mg-hud-strokes-card{background:rgba(15,23,42,0.88);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.15);border-radius:var(--mg-radius-md);padding:0.5rem 0.9rem;text-align:right;pointer-events:auto;box-shadow:0 4px 12px rgba(0,0,0,0.4)}.mg-hud-strokes-label{font-size:0.72rem;color:var(--mg-text-muted);text-transform:uppercase;letter-spacing:0.05em}.mg-hud-strokes-count{font-family:var(--font-mono);font-size:1.6rem;font-weight:800;color:#fff;line-height:1;margin-top:0.15rem}.mg-hint-overlay{position:absolute;top:5.6rem;left:50%;transform:translateX(-50%);background:rgba(15,23,42,0.9);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.18);border-radius:999px;padding:0.4rem 1rem;color:var(--mg-text-main);font-size:0.78rem;font-weight:500;pointer-events:none;opacity:0;transition:opacity 0.2s ease;z-index:10;white-space:nowrap}.mg-hint-overlay.visible{opacity:1}.mg-hud-bottom{position:absolute;bottom:1rem;left:1rem;right:1rem;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none;z-index:10;gap:1rem}.mg-power-meter-container{background:rgba(15,23,42,0.88);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.15);border-radius:var(--mg-radius-md);padding:0.5rem 0.85rem;display:flex;flex-direction:column;gap:0.35rem;width:230px;pointer-events:auto;box-shadow:0 4px 12px rgba(0,0,0,0.4)}.mg-power-meter-header{display:flex;justify-content:space-between;font-size:0.75rem;color:var(--mg-text-muted);font-weight:600}.mg-power-val{font-family:var(--font-mono);font-weight:700;color:#fff}.mg-power-meter-track{width:100%;height:10px;background:rgba(255,255,255,0.1);border-radius:9999px;overflow:hidden}.mg-power-meter-fill{height:100%;width:0%;background:var(--mg-accent-green);border-radius:9999px;transition:width 0.04s linear,background-color 0.1s ease}.mg-hud-actions{display:flex;gap:0.45rem;pointer-events:auto;flex-wrap:wrap}.mg-btn-action{background:rgba(15,23,42,0.88);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,0.15);color:var(--mg-text-main);padding:0.5rem 0.8rem;border-radius:var(--mg-radius-md);font-family:var(--font-main);font-size:0.83rem;font-weight:600;display:inline-flex;align-items:center;gap:0.4rem;cursor:pointer;transition:all 0.18s ease;min-height:40px;box-shadow:0 4px 12px rgba(0,0,0,0.3)}.mg-btn-action:hover{background:rgba(30,41,59,0.95);border-color:rgba(255,255,255,0.3);transform:translateY(-1px)}.mg-btn-action.active{background:rgba(16,185,129,0.25);border-color:var(--mg-accent-green);color:#fff}.mg-btn-icon-only{padding:0.5rem;width:40px;height:40px;justify-content:center}.mg-btn-action.is-muted svg path{opacity:0.35}.mg-game-footer-bar{padding:0.8rem 1.25rem;background:rgba(15,23,42,0.55);border-top:1px solid var(--mg-card-border);display:flex;justify-content:space-between;align-items:center;font-size:0.83rem;color:var(--mg-text-muted);gap:1rem;flex-wrap:wrap}.mg-instructions-text{display:flex;align-items:center;gap:0.5rem}.mg-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.75);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem;opacity:1;visibility:visible;transition:opacity 0.22s ease,visibility 0.22s ease}.mg-modal-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.mg-modal-card{background:#1e293b;border:1px solid rgba(255,255,255,0.15);border-radius:var(--mg-radius-lg);padding:1.75rem;max-width:540px;width:100%;box-shadow:0 20px 40px rgba(0,0,0,0.6);text-align:center;animation:modalPop 0.22s ease-out}@keyframes modalPop{0%{transform:scale(0.92);opacity:0}100%{transform:scale(1);opacity:1}}.mg-modal-title{font-family:var(--font-heading);font-size:1.45rem;font-weight:700;color:#fff;margin:0 0 1rem}.mg-modal-score-badge{display:inline-block;font-family:var(--font-heading);font-size:1.2rem;font-weight:800;padding:0.45rem 1.35rem;border-radius:9999px;margin-bottom:1rem;text-transform:uppercase;letter-spacing:0.05em}.badge-good{background:rgba(16,185,129,0.2);border:2px solid var(--mg-accent-green);color:#34d399}.badge-bogey{background:rgba(239,68,68,0.2);border:2px solid var(--mg-accent-red);color:#f87171}.mg-modal-text{font-size:0.95rem;color:var(--mg-text-muted);line-height:1.5;margin-bottom:1.4rem}.mg-modal-text strong{color:#fff}.mg-modal-actions{display:flex;justify-content:center;gap:0.75rem;flex-wrap:wrap}.mg-modal-btn{background:var(--mg-accent-green);color:#0b0f17;border:none;border-radius:var(--mg-radius-md);font-family:var(--font-main);font-size:0.95rem;font-weight:700;padding:0.7rem 1.6rem;cursor:pointer;transition:all 0.18s ease;min-height:44px}.mg-modal-btn:hover{background:#059669;color:#fff;transform:translateY(-1px)}.mg-modal-btn-sec{background:rgba(255,255,255,0.1);color:#fff;border:1px solid rgba(255,255,255,0.2)}.mg-modal-btn-sec:hover{background:rgba(255,255,255,0.2)}.mg-modal-btn.hidden{display:none}.mg-scorecard-table-wrapper{overflow-x:auto;margin-bottom:1.3rem;max-height:360px}.mg-scorecard-table{width:100%;border-collapse:collapse;text-align:left;font-size:0.86rem}.mg-scorecard-table th,.mg-scorecard-table td{padding:0.55rem 0.75rem;border-bottom:1px solid rgba(255,255,255,0.08)}.mg-scorecard-table th{font-family:var(--font-heading);color:var(--mg-text-muted);font-weight:600;text-transform:uppercase;font-size:0.74rem;letter-spacing:0.05em;background:rgba(15,23,42,0.6)}.mg-scorecard-table tr.row-current{background:rgba(59,130,246,0.15)}.mg-scorecard-table tfoot th{font-size:0.88rem;color:#fff;border-top:2px solid rgba(255,255,255,0.2)}.text-good{color:#34d399;font-family:var(--font-mono);font-weight:700}.text-bogey{color:#f87171;font-family:var(--font-mono);font-weight:700}.mg-guide-section{background:var(--mg-card-bg);border:1px solid var(--mg-card-border);border-radius:var(--mg-radius-lg);padding:2rem;margin-bottom:2rem}.mg-guide-title{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;margin-top:0;margin-bottom:1rem;color:#fff}.mg-guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1.5rem}.mg-guide-card{background:rgba(15,23,42,0.6);border:1px solid rgba(255,255,255,0.08);border-radius:var(--mg-radius-md);padding:1.25rem}.mg-guide-card h3{font-family:var(--font-heading);font-size:1.1rem;color:#fff;margin-top:0;margin-bottom:0.5rem;display:flex;align-items:center;gap:0.5rem}.mg-guide-card p{font-size:0.9rem;color:var(--mg-text-muted);line-height:1.5;margin:0}@media (max-width:900px){.mg-viewport-wrapper{height:520px;min-height:unset}.mg-hud-bottom{flex-direction:column-reverse;align-items: stretch}.mg-power-meter-container{width:100%;box-sizing:border-box}.mg-hud-actions{justify-content:space-between}.mg-btn-action{flex:1;justify-content:center;font-size:0.76rem;padding:0.4rem 0.45rem}}@media (max-width:540px){.mg-viewport-wrapper{height:460px}.mg-hud-top{flex-direction:column;align-items:stretch}.mg-hud-strokes-card{display:flex;justify-content:space-between;align-items:center;padding:0.4rem 0.8rem}.mg-hud-strokes-count{font-size:1.25rem;margin-top:0}.mg-hint-overlay{top:auto;bottom:7.5rem;font-size:0.7rem}}