:root{--bg: #f2f5f1;--panel: #ffffff;--border: #e1e7df;--text: #15231b;--muted: #65736a;--accent: #1f7a3f;--accent-soft: #e4f3e8;--accent-ink: #0f5a2c;--ok: #1f7a3f;--warn: #c2770c;--bad: #c73a3a;--best: #2457c5;--radius: 16px;--shadow: 0 1px 2px rgba(21, 35, 27, .05), 0 6px 20px rgba(21, 35, 27, .06);--tabbar: 0px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%}*{box-sizing:border-box}body{margin:0}h1{font-size:26px;line-height:1.2;margin:0;letter-spacing:-.01em}h2{font-size:17px;margin:24px 0 8px}a{color:var(--accent)}.muted{color:var(--muted)}.error{color:var(--bad)}.intro{margin:4px 0 16px;line-height:1.45}p{line-height:1.45}.status{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;max-width:520px}.status p{margin:0 0 10px}.status-bad{border-color:var(--warn)}.status-detail{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:var(--muted);word-break:break-word}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;vertical-align:-2px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.top{display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.brand{font-weight:700;color:var(--accent-ink);text-decoration:none;white-space:nowrap;padding:14px 0;min-width:0;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:8px}.brand:before{content:"⛳"}.nav{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;min-width:0}.nav::-webkit-scrollbar{display:none}.nav a{color:var(--muted);text-decoration:none;padding:8px 12px;border-radius:999px;white-space:nowrap;font-weight:500}.nav a.active{background:var(--accent-soft);color:var(--accent-ink)}.nav-measure-box{position:absolute;left:0;top:0;width:0;height:0;overflow:hidden;visibility:hidden;pointer-events:none}.nav-measure{width:max-content;overflow:visible}.menu-btn{margin-left:auto;width:44px;height:44px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:none;border:1px solid var(--border);border-radius:12px;cursor:pointer}.menu-btn span{display:block;width:18px;height:2px;background:var(--text);border-radius:1px}.menu{position:absolute;top:100%;right:8px;left:8px;max-width:320px;margin-left:auto;max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 32px #0f172a2e;padding:6px;display:flex;flex-direction:column;z-index:30}.menu a{color:var(--text);text-decoration:none;padding:13px 14px;border-radius:10px;font-weight:500}.menu a.active{background:var(--accent-soft);color:var(--accent-ink)}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5}.main{padding:20px 24px 48px;max-width:1040px;width:100%;margin:0 auto;flex:1}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.tabbar{display:none}.hero{background:linear-gradient(135deg,var(--accent-ink),var(--accent));color:#fff;border-radius:20px;padding:20px;margin-bottom:16px;box-shadow:var(--shadow)}.hero h1{color:#fff}.hero .muted,.hero a{color:#ffffffd1}.hero-sub{margin:6px 0 0;font-size:15px}.hero .page-head{margin-bottom:0}.hero .page-head h1{margin:0}.hero .chip{background:#ffffffeb}.hero-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:14px}.hero-big{font-size:44px;font-weight:700;line-height:1;letter-spacing:-.02em}.hero-big small{font-size:14px;font-weight:500;opacity:.85;display:block;margin-top:6px;letter-spacing:0}.hero .btn{border-color:transparent}.hero .btn-primary{background:#fff;color:var(--accent-ink)}.hero .btn-ghost{background:#ffffff29;color:#fff}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:20px}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.card-link{color:inherit;text-decoration:none}.card-link:hover{border-color:var(--accent)}.card-value{font-size:28px;font-weight:700;letter-spacing:-.01em}.card-label{color:var(--muted);font-size:13px;margin-top:2px}.card-value:empty:before{content:"–";color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin:0 0 16px;box-shadow:var(--shadow)}.panel h2{margin-top:0}.panel .page-head{margin-bottom:10px}.back{display:inline-flex;align-items:center;gap:4px;color:var(--muted);text-decoration:none;font-size:14px;margin-bottom:8px;min-height:32px}.record{margin:0 0 16px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:4px 16px;box-shadow:var(--shadow)}.record-row{display:grid;grid-template-columns:minmax(140px,1fr) 2fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.record-row:last-child{border-bottom:none}.record dt{color:var(--muted);font-size:13px}.record dd{margin:0;font-size:15px}.record dd:empty:before{content:"–";color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin:0 0 16px}.tile{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:12px 12px 10px;min-width:0}.tile dd{margin:0;font-size:22px;font-weight:700;line-height:1.15;overflow-wrap:anywhere}.tile dd:empty:before{content:"–";color:var(--muted)}.tile dt{color:var(--muted);font-size:12px;margin-top:4px;line-height:1.25}.persona-gate{max-width:760px;margin:24px auto}.persona-gate h1{margin-bottom:6px}.persona-gate .cards{margin-top:18px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}button.card{font:inherit;text-align:left;cursor:pointer;color:inherit}.persona-name{font-size:17px;font-weight:600;margin-bottom:4px}.persona-chip{font:inherit;font-size:13px;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:6px 12px;margin-left:auto;cursor:pointer;white-space:nowrap;flex-shrink:0;max-width:45vw;overflow:hidden;text-overflow:ellipsis;min-height:36px}.persona-chip+.menu-btn{margin-left:0}.persona-chip{display:inline-flex;align-items:center;gap:6px}.persona-switch{color:var(--accent, inherit)}.avatar{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--accent-soft);font-size:28px;line-height:1;margin-bottom:10px;object-fit:cover}.avatar-sm{width:20px;height:20px;font-size:13px;margin:0;background:none}.child-list{margin-top:24px}.child-list h2{font-size:18px;margin:0}.btn{font:inherit;font-weight:600;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:12px;padding:10px 16px;min-height:44px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-danger{color:var(--bad);margin-left:auto}.btn-big{width:100%;min-height:56px;font-size:18px;border-radius:14px}.icon-btn{font:inherit;font-size:24px;line-height:1;background:none;border:none;color:var(--muted);padding:8px 12px;cursor:pointer;min-height:44px}.search{font:inherit;font-size:16px;width:100%;max-width:360px;padding:11px 14px;border:1px solid var(--border);border-radius:12px;margin-bottom:12px;background:var(--panel)}table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--border);font-size:14px;vertical-align:top}th{color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--bg)}.tag,.chip{display:inline-block;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--bg);color:var(--muted);white-space:nowrap}.tag-ok,.chip-ok{background:var(--accent-soft);color:var(--accent-ink)}.tag-warn,.chip-warn{background:#fdf1df;color:#8a5208}.tag-bad,.chip-bad{background:#fde7e7;color:#9c2727}.chip-best{background:#e3ebfb;color:var(--best)}.list-cards,.list-cards tbody,.list-cards tr,.list-cards td{display:block;width:100%}.list-cards{border:none;background:none;overflow:visible}.list-cards thead{display:none}.list-cards tr{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:10px;box-shadow:var(--shadow)}.list-cards tr.clickable:hover td{background:none}.list-cards tr.clickable:hover{border-color:var(--accent)}.list-cards td{border:none;padding:3px 0;display:flex;justify-content:space-between;gap:12px;text-align:right;align-items:baseline}.list-cards td:before{content:attr(data-label);color:var(--muted);font-size:13px;text-align:left;flex-shrink:0}.list-cards td.primary{font-weight:700;font-size:17px;text-align:left;padding-bottom:6px}.list-cards td.primary:before{content:none}.list-cards td:empty{display:none}.list-cards td[data-label=""]:before{content:none}@media (min-width: 641px){.list-cards tr{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 20px}.list-cards td{width:auto;flex-direction:column;align-items:flex-start;text-align:left;gap:0}.list-cards td.primary{width:100%;padding-bottom:2px}.list-cards td:before{font-size:11px;text-transform:uppercase;letter-spacing:.03em}}.form{display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:14px;font-weight:600}.field small{font-size:12px;line-height:1.35}.field input,.field select,.field textarea{font:inherit;font-size:16px;padding:11px 13px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--text);width:100%;min-height:46px}.check{display:flex;align-items:center;gap:10px;font-size:15px;cursor:pointer;min-height:44px}.check input{width:22px;height:22px;accent-color:var(--accent)}.stepper{display:flex;align-items:stretch;gap:8px}.stepper button{font:inherit;font-size:24px;font-weight:600;width:56px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--accent-ink);cursor:pointer}.stepper button:disabled{opacity:.5;cursor:default}.field .stepper input{text-align:center;font-size:24px;font-weight:700;flex:1;min-width:0;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.slider{display:flex;flex-direction:column;gap:6px}.slider-row{display:flex;align-items:center;gap:8px}.slider-row button{font:inherit;font-size:24px;font-weight:600;width:56px;min-height:52px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--accent-ink);cursor:pointer}.slider-row button:disabled{opacity:.5;cursor:default}.slider-value{flex:1;text-align:center;font-size:44px;font-weight:800;line-height:1;color:var(--accent-ink);font-variant-numeric:tabular-nums}.field .slider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-height:48px;padding:0;margin:0;border:0;background:transparent;cursor:pointer}.slider input[type=range]::-webkit-slider-runnable-track{height:10px;border-radius:999px;background:var(--border)}.slider input[type=range]::-moz-range-track{height:10px;border-radius:999px;background:var(--border)}.slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:36px;height:36px;margin-top:-13px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 2px 6px #0f172a4d}.slider input[type=range]::-moz-range-thumb{width:36px;height:36px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 2px 6px #0f172a4d}.slider input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:999px}.slider-ends{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);padding:0 4px}.swatch{display:inline-block;width:22px;height:22px;border-radius:50%;border:2px solid rgba(0,0,0,.15);vertical-align:-4px;margin-right:8px;flex-shrink:0}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatch-btn{display:inline-flex;align-items:center;font:inherit;font-size:15px;font-weight:500;padding:8px 14px 8px 10px;min-height:44px;border:2px solid var(--border);border-radius:999px;background:var(--panel);color:var(--text);cursor:pointer}.swatch-btn.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.swatch-btn:disabled{opacity:.6;cursor:default}.segmented{display:flex;flex-wrap:wrap;gap:6px}.segmented button{font:inherit;font-size:15px;font-weight:500;padding:10px 14px;min-height:44px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--text);cursor:pointer;flex:1 1 auto}.segmented button.on{background:var(--accent);border-color:var(--accent);color:#fff}.segmented button:disabled{opacity:.6;cursor:default}.form-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:4px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:grid;place-items:center;padding:16px;z-index:60}.sheet{background:var(--panel);border-radius:20px;width:min(560px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:0 20px 50px #0f172a40}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 12px 6px 20px}.sheet-head h2{margin:0;font-size:19px}.sheet-body{padding:8px 20px 20px;overflow-y:auto}#explainer-toggle-mount .dag-toggle{position:static}#explainer-toggle-mount{bottom:calc(var(--tabbar) + 12px)!important}.scorecard{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;margin:0 0 16px}.hole{font:inherit;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:8px 4px 6px;text-align:center;cursor:pointer;color:inherit;min-height:72px;display:flex;flex-direction:column;justify-content:center;gap:2px}.hole:disabled{cursor:default}.hole-no{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.hole-strokes{font-size:22px;font-weight:700;line-height:1.1}.hole-par{font-size:11px;color:var(--muted)}.hole.todo{border-style:dashed;background:none}.hole.todo .hole-strokes{color:var(--muted);font-weight:500}.hole.next{border-color:var(--accent);border-style:solid;background:var(--accent-soft)}.hole.row-good{background:var(--accent-soft);border-color:var(--ok)}.hole.row-bad{background:#fde7e7;border-color:var(--bad)}.progress{height:8px;background:#ffffff40;border-radius:999px;overflow:hidden;margin-top:12px}.progress span{display:block;height:100%;background:#fff;border-radius:999px}.panel .progress{background:var(--border)}.panel .progress span{background:var(--accent)}details.more{margin:0 0 16px}details.more summary{cursor:pointer;color:var(--accent);font-weight:600;padding:8px 0;min-height:44px;display:flex;align-items:center}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 16px}.list tr.row-good td{background:#1f7a3f1a}.list tr.row-bad td{background:#c73a3a1a}.list tr.row-best td{background:#2457c51f}.list-cards tr.row-good{border-color:var(--ok);border-left-width:4px}.list-cards tr.row-bad{border-color:var(--bad);border-left-width:4px}.list-cards tr.row-best{border-color:var(--best);border-left-width:4px}.list-cards tr.row-good td,.list-cards tr.row-bad td,.list-cards tr.row-best td{background:none}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.filters select,.filters input{font:inherit;font-size:15px;padding:9px 12px;min-height:44px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--text)}.sign-in{max-width:440px;margin:0 auto}.sign-in .form{max-width:440px}.sign-in .hero{text-align:center;padding:28px 20px}.sign-in .hero .avatar{width:64px;height:64px;font-size:34px;background:#ffffff2e}.share-link{word-break:break-all}@media (max-width: 640px){:root{--tabbar: calc(60px + env(safe-area-inset-bottom)) }.top{padding:0 12px}.main{padding:14px 12px calc(var(--tabbar) + 24px)}h1{font-size:24px}.search{max-width:none}.list,.list tbody,.list tr,.list td{display:block;width:100%}.list{border:none;background:none;overflow:visible}.list thead{display:none}.list tr{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:10px;box-shadow:var(--shadow)}.list td{border:none;padding:3px 0;display:flex;justify-content:space-between;gap:12px;text-align:right;align-items:baseline}.list td:before{content:attr(data-label);color:var(--muted);font-size:13px;text-align:left;flex-shrink:0}.list td.primary{font-weight:700;font-size:17px;text-align:left;padding-bottom:6px}.list td.primary:before{content:none}.list td:empty{display:none}.list td[data-label=""]:before{content:none}.list tr.row-good{border-color:var(--ok);border-left-width:4px}.list tr.row-bad{border-color:var(--bad);border-left-width:4px}.list tr.row-best{border-color:var(--best);border-left-width:4px}.list tr.row-good td,.list tr.row-bad td,.list tr.row-best td{background:none}.sheet-backdrop{padding:0;place-items:end stretch}.sheet{width:100%;max-height:94vh;max-height:94dvh;border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom)}.sheet-body{padding-bottom:24px}.form-actions .btn{flex:1}.btn-danger{margin-left:0}.record-row{grid-template-columns:1fr;gap:2px}.hero{padding:18px;border-radius:18px}.hero-big{font-size:40px}.tiles{grid-template-columns:repeat(3,1fr)}.tile dd{font-size:20px}.scorecard{grid-template-columns:repeat(5,1fr);gap:6px}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--panel);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.tabbar a,.tabbar button{font:inherit;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:600;border:none;background:none;border-radius:12px;padding:4px 2px;cursor:pointer;min-width:0}.tabbar .tab-icon{font-size:22px;line-height:1}.tabbar a.active,.tabbar button.active{color:var(--accent-ink)}.tabbar a.active .tab-icon{background:var(--accent-soft);border-radius:10px;padding:2px 10px}.top .nav,.top .menu-btn,.top .persona-chip .persona-switch{display:none}.persona-chip{margin-left:auto}.menu{position:fixed;top:auto;bottom:calc(var(--tabbar) + 8px);max-height:calc(100vh - var(--tabbar) - 80px);max-height:calc(100dvh - var(--tabbar) - 80px);z-index:25}.menu-backdrop{z-index:15}}
