:root{--bg:#0f1115;--panel:#1a1d24;--panel-2:#232733;--border:#2d323e;--text:#e6e8ec;--muted:#9aa1ad;--accent:#22c55e;--danger:#ef4444;--panel-alt:var(--panel-2)}html[data-role=climber]{--bg:#0a1834;--panel:#12224a;--panel-2:#1c2f5e;--border:#33477e;--accent:#4f8bff}html[data-role=climber] .app-header{border-top:3px solid var(--accent);border-bottom-color:var(--accent)}*{box-sizing:border-box}.me-media-mark .app-icon{width:1.35em;height:1.35em}.app-icon{width:1em;height:1em;flex:none;vertical-align:-.125em}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,sans-serif}a{color:inherit;text-decoration:none}.app-header{justify-content:space-between;padding:calc(12px + env(safe-area-inset-top, 0px)) calc(20px + env(safe-area-inset-right, 0px)) 12px calc(20px + env(safe-area-inset-left, 0px));border-bottom:1px solid var(--border);background:var(--panel);position:-webkit-sticky;position:sticky;top:0;z-index:10}.app-header,.app-header .brand{display:flex;align-items:center}.app-header .brand{gap:10px;font-weight:700;font-size:18px}.app-header .brand-logo{height:40px;width:auto;border-radius:6px;display:block}.app-header nav{display:flex;gap:16px;align-items:center}.header-nav{position:relative}.header-nav .nav-items{display:flex;gap:16px;align-items:center}.header-nav .nav-menu-toggle{display:none;align-items:center;gap:6px}.logo-manager{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.logo-manager .logo-preview{max-height:60px;max-width:240px;width:auto;border-radius:8px;background:#fff;padding:6px 10px;display:block}.btn-nav{background:var(--panel-2);color:var(--text);border:1px solid var(--border);padding:8px 14px;border-radius:8px;font-weight:600}.btn-nav:hover{border-color:var(--muted)}.btn-nav-primary{background:var(--accent);color:#06210f;border-color:var(--accent)}.btn-nav-primary:hover{border-color:var(--accent);filter:brightness(1.08)}.btn-nav-disabled{color:var(--muted);cursor:not-allowed;pointer-events:none}.btn-nav-toggle.active{background:var(--accent);color:#06210f;border-color:var(--accent)}.app-main{padding:20px;max-width:1400px;margin:0 auto}.app-footer{margin-top:40px;padding:20px;border-top:1px solid var(--border);text-align:center}.app-footer .footer-login{display:inline-block;padding:10px 16px;color:var(--muted);font-size:13px;background:none;border:none;cursor:pointer}.app-footer .footer-login:hover{color:var(--text)}.app-footer .footer-login-muted{font-size:12px;opacity:.75}.app-footer .footer-user{display:inline-block;padding:10px 8px 10px 16px;color:var(--muted);font-size:13px}.app-version{padding:4px 12px 14px;margin-bottom:calc(env(safe-area-inset-bottom, 0px) + 16px);text-align:center;color:var(--muted);font-size:11px;opacity:.55;letter-spacing:.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;-webkit-user-select:text;-moz-user-select:text;user-select:text}.app-version-button{display:block;width:100%;background:none;border:none;font:inherit;cursor:pointer}.changelog-modal{max-width:520px}.changelog-list{margin:4px 0 8px;max-height:60vh;overflow-y:auto}.changelog-entry{padding:10px 0;border-top:1px solid var(--border)}.changelog-entry:first-child{border-top:none}.changelog-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:6px}.changelog-version-tag{font-size:12px;font-weight:700;color:var(--accent,#2563eb);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:color-mix(in srgb,var(--accent,#2563eb) 12%,transparent);border-radius:4px;padding:1px 6px}.changelog-date{font-size:13px;font-weight:600;color:var(--muted)}.changelog-items{margin:0;padding-left:1.2em}.changelog-items li{margin:4px 0;line-height:1.5;font-size:14px}.changelog-version{text-align:right;color:var(--muted);font-size:11px;opacity:.6;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:4px}button{font:inherit;cursor:pointer}.btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:8px 14px;border-radius:8px}.btn:hover{border-color:var(--muted)}.btn-sm{padding:4px 8px;font-size:12px;border-radius:6px}.btn-primary{background:var(--accent);color:#06210f;border:none;font-weight:600}.btn-danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font:inherit;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;width:100%}textarea{resize:vertical;line-height:1.5}label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}.field{margin-bottom:12px}.field-row{display:flex;gap:10px}.field-row .field{flex:1 1;min-width:0}.field-row .field select{min-height:38px}.field-add-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-column-gap:8px;column-gap:8px}.field-add-inline>label{grid-column:1;grid-row:1;align-self:center}.field-add-inline>.master-quick-add-open{grid-column:2;grid-row:1;align-self:center;margin-top:0;height:24px;padding:0 8px;font-size:11px;line-height:1}.field-add-inline>:not(label):not(.master-quick-add-open){grid-column:1/-1}.field-add-trigger{display:block;width:100%;margin-bottom:8px;padding:8px 12px;background:transparent;border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-size:13px;text-align:left;cursor:pointer}.field-add-trigger:hover{color:var(--text);border-color:var(--muted)}.checkbox-field{display:flex;align-items:center;gap:8px;margin-bottom:0;color:var(--text);cursor:pointer}.checkbox-field input[type=checkbox]{width:auto;margin:0;flex:0 0 auto}input[type=date],input[type=time]{min-width:0;max-width:100%}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.field-label-row label{margin-bottom:4px}.schedule-toggle{display:flex;align-items:center;gap:6px;color:var(--text);cursor:pointer}.schedule-toggle input[type=checkbox]{width:auto;margin:0;flex:0 0 auto}.date-time-row{display:flex;flex-wrap:wrap;gap:8px}.date-time-row input[type=date]{flex:1 1 55%}.date-time-row input[type=time]{flex:1 1 35%}.date-clear{flex:0 0 auto;align-self:center;padding:6px 10px;font-size:13px;line-height:1;border:1px solid var(--border,#ccc);border-radius:6px;background:transparent;color:var(--muted,#666);cursor:pointer}.date-clear:hover{background:rgba(0,0,0,.04)}.login-wrap{display:flex;justify-content:center;padding-top:10vh}.login-card{width:min(360px,100%);background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px}.login-card h2{margin:0 0 4px}.login-note{font-size:13px;color:var(--muted);margin:0 0 16px}.login-error{font-size:13px;color:#ff6b6b;margin:0 0 12px}.nav-user{color:var(--muted);margin-left:auto;max-width:160px;overflow:hidden;white-space:nowrap}.gym-switcher,.nav-user{font-size:13px;text-overflow:ellipsis}.gym-switcher{width:auto;max-width:200px;padding:8px 10px}.admin-gyms{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.admin-gym-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.admin-gym-actions,.admin-staff-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-inactive{color:var(--muted);text-decoration:line-through}.admin-staff,.admin-walls{margin-top:12px;border-top:1px solid var(--border);padding-top:12px}.admin-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.admin-wall-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.admin-wall-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:4px 8px;font-size:13px}.admin-wall-chip button{border:none;background:transparent;color:var(--muted);padding:0;line-height:1}.admin-wall-add{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px}.admin-staff-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.adopt-row{gap:10px}.adopt-check,.adopt-row{display:flex;align-items:center}.adopt-thumb{width:96px;flex:0 0 auto;overflow:hidden;border-radius:6px}.adopt-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.adopt-actions{display:flex;flex-direction:column;gap:6px;flex:0 0 auto;align-items:stretch}.tape-color-row{grid-template-columns:auto 1fr auto;align-items:center}.wall-name-row{grid-template-columns:1fr auto auto auto auto;align-items:center}.wall-angle-input{width:72px}.wall-area-input{width:110px}.wall-area-heading{font-weight:600;margin:8px 0 4px}.main-area-radio{display:inline-flex;align-items:center;gap:4px;margin-left:10px;font-size:12px;font-weight:400;white-space:nowrap;cursor:pointer}.main-area-radio input[type=radio]{width:14px;height:14px}.main-area-radio:has(input:disabled){opacity:.45;cursor:default}.grade-row{grid-template-columns:auto 1fr auto auto auto auto auto;align-items:center}.grade-vscale{display:inline-flex;align-items:center;gap:4px;font-size:13px;white-space:nowrap}.grade-vscale-input{width:56px}.grade-tape-link{max-width:130px}.grade-foot-free{align-items:center;font-size:13px;white-space:nowrap;cursor:pointer}.grade-foot-free,.grade-move{display:inline-flex;gap:4px}.grade-move .tiny-btn:disabled{opacity:.35}.area-order-name{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tape-color-picker{width:40px;height:40px;padding:2px;border:1px solid var(--border,#d1d5db);border-radius:8px;background:none;cursor:pointer}.tape-select{display:flex;align-items:center;gap:8px}.tape-select select{flex:1 1}.tape-select-swatch{flex:none;width:24px;height:24px;border-radius:6px;border:1px solid var(--border);background:repeating-conic-gradient(#ccc 0 25%,#fff 0 50%) 50% /10px 10px}.admin-staff-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.admin-staff-add{display:flex;flex-direction:column;gap:8px}.admin-reports{border-color:var(--danger,#ff3b30)}.admin-reports-list{display:flex;flex-direction:column;gap:12px}.admin-report-row{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--border,#d0d0d0);border-radius:8px}.admin-report-kind{font-weight:600;margin-right:6px}.admin-report-reasons{margin:0;padding-left:18px;font-size:.9em}.admin-report-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-gym-add h3{margin-top:0}.admin-invite{margin-bottom:12px}.admin-invite-url{margin-top:8px;word-break:break-all}.admin-invite-url code{background:var(--panel-2);padding:2px 6px;border-radius:6px}.gym-picker{padding-top:4vh}.gym-picker h2{margin:0 0 16px}.climber-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px;padding:12px 16px;border:1px solid var(--border);border-radius:10px;font-size:13px;color:var(--muted)}.climber-cta-actions{display:flex;gap:8px}.climber-inline-cta{margin:4px 0 0;font-size:13px}.public-gym-zones{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 16px;margin:12px 0 20px}.gym-zone-info{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:6px}.gym-zone-actions{flex:0 0 auto;display:flex;gap:8px}.gym-main-action{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;font-size:15px;font-weight:700;white-space:nowrap;text-decoration:none}.gym-main-action.is-open{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--accent)}@media (max-width:720px){.gym-zone-actions{flex:1 1 100%;max-width:480px}.gym-zone-actions .gym-main-action{flex:1 1;padding:10px 8px}}.gym-zone{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.gym-zone-label{flex:0 0 auto;font-size:12px;font-weight:700;color:var(--muted)}.gym-action-link{font-size:14px}.gym-sns-icon{font-size:16px;line-height:1;text-decoration:none}.ig-glyph{display:inline-block;height:1.1em;width:auto;vertical-align:-.2em}.line-glyph{display:inline-block;vertical-align:-.25em}.gym-record-menu{display:flex;flex-direction:column;gap:10px;margin:0 0 20px}.gym-record-menu-hint{margin:0}.gym-record-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.gym-record-actions>.record-tile-last{grid-column:1/-1}.gym-record-actions>.activity-checkin-past,.gym-record-actions>.activity-checkin-past-toggle,.gym-record-actions>.climb-error{grid-column:1/-1;order:1;margin:0}.gym-record-actions>.activity-checkin-past-toggle{justify-self:start;min-height:32px}@media (min-width:700px){.gym-record-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.gym-record-actions.is-four{grid-template-columns:repeat(4,minmax(0,1fr))}.gym-record-actions>.record-tile-last{grid-column:auto}}.record-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:76px;padding:10px 8px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2);color:var(--text);font-size:13px;font-weight:600;line-height:1.3;text-align:center;text-decoration:none;cursor:pointer}.record-tile:hover{border-color:var(--accent)}.record-tile:disabled{opacity:.6;cursor:default}.record-tile-icon{font-size:22px;line-height:1}.record-tile.is-done{border-color:var(--accent);color:var(--accent)}.record-tile-note{font-size:11px;font-weight:400;color:var(--muted)}.gym-list{display:flex;flex-direction:column;gap:12px}.gym-card{display:flex;align-items:center;justify-content:space-between;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px 20px;position:relative}.gym-card:hover{border-color:var(--accent)}.gym-card-link{color:inherit;text-decoration:none}.gym-card-link:after{content:"";position:absolute;inset:0;border-radius:12px}.gym-card-main{display:flex;flex-direction:column;gap:4px;min-width:0}.gym-card-name{font-size:17px;font-weight:700}.gym-card-logo{display:inline-block;width:24px;height:24px;object-fit:contain;vertical-align:-5px;margin-right:6px;border-radius:4px}.gym-card-meta{font-size:13px;color:var(--muted)}.gym-card-go{flex-shrink:0;margin-left:12px;color:var(--accent);font-weight:600;font-size:14px}.gym-fav{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-12px 0 -12px 2px;vertical-align:middle;border:0;background:none;padding:0;color:var(--muted);font-size:20px;line-height:1;cursor:pointer;position:relative;z-index:1}.gym-fav.is-fav{color:#f59e0b}.gym-fav:hover{color:var(--accent)}.gym-list-heading{font-size:13px;font-weight:700;color:var(--muted);margin:4px 0 8px}.gym-list-heading-sub{margin-top:20px}.gym-fav-section,.gym-visited-section{margin-bottom:4px}.gym-card-status{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px}.gym-today{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600}.gym-today-hours{font-weight:400;color:var(--muted)}.gym-today-closed{color:#b91c1c}.gym-today-dot{width:8px;height:8px;border-radius:999px;display:inline-block}.gym-today-dot.is-open{background:#16a34a}.gym-today-dot.is-outside{background:#9ca3af}.gym-instagram{font-size:13px;color:var(--accent);font-weight:600;position:relative;z-index:1}.gym-instagram:hover{text-decoration:underline}.home-hero{margin-bottom:20px}.home-hero h2{margin:0 0 6px}.home-hero-lead{margin:0 0 14px;font-size:14px;color:var(--muted)}.gym-search{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.gym-search-input{flex:1 1 200px;min-width:0}.gym-search-pref{flex:0 1 180px}.gym-empty-cta{padding:20px 16px;border:1px solid var(--border);border-radius:12px;background:var(--panel);text-align:center}.gym-empty-cta-title{margin:0;font-weight:600}.gym-empty-cta-lead{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.gym-empty-cta-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:14px;min-height:44px;padding:0 20px}.public-gym-head h2{margin:4px 0 16px}.gym-provisional-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;vertical-align:middle;color:#92400e;background:#fef3c7;border:1px solid #fcd34d}.gym-provisional-note{margin:-8px 0 16px;font-size:13px;color:var(--muted)}.gym-new-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;vertical-align:middle;color:#fff;background:var(--accent,#2563eb);border:1px solid transparent}.gym-card-visit{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;font-size:12px;color:var(--muted)}.gym-holdchange-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;color:#92400e;background:#fef3c7;border:1px solid #fcd34d}.gym-holdchange-badge.is-upcoming{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.filter-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;padding:12px 14px;background:var(--panel);border:1px solid var(--border);border-radius:12px}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-label{font-size:11px;color:var(--muted);white-space:nowrap}.filter-bar-toggle{display:none}.filter-bar select{width:auto;padding:6px 8px}.filter-toggle{display:flex;align-items:center;gap:6px;margin:0;color:var(--text);font-size:14px;cursor:pointer;padding-bottom:6px}.filter-toggle input[type=checkbox]{width:auto;margin:0}.filter-spacer{flex:1 1 auto}.filter-count{color:var(--muted);font-size:13px;padding-bottom:7px}.filter-reset{padding:7px 12px;font-size:13px}.group-switch{display:flex;align-items:center;gap:8px}.group-switch .filter-label{margin:0}.view-switch{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.view-switch button{border:none;background:transparent;color:var(--muted);padding:6px 12px;font-size:13px;white-space:nowrap}.view-switch button+button{border-left:1px solid var(--border)}.view-switch button.active{background:var(--panel-2);color:var(--text);font-weight:600}.problem-groups{display:flex;flex-direction:column;gap:28px}.problem-group-header{display:flex;align-items:baseline;gap:12px;margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid var(--border)}.problem-group-header h3{margin:0;font-size:15px;font-weight:700}.problem-group-header span{color:var(--muted);font-size:12px;white-space:nowrap}.problem-list{display:flex;flex-direction:column;gap:18px}.problem-list-group{background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden}.problem-list-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--panel-2);border-bottom:1px solid var(--border)}.problem-list-group-header h3{margin:0;font-size:15px;font-weight:700}.problem-list-group-header span{color:var(--muted);font-size:12px;white-space:nowrap}.problem-table-wrap{overflow-x:auto}.problem-table{width:100%;min-width:816px;border-collapse:collapse;table-layout:fixed}.problem-table td,.problem-table th{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.problem-table th{color:var(--muted);font-size:12px;font-weight:700;background:color-mix(in srgb,var(--panel-2) 55%,transparent)}.problem-table td:first-child,.problem-table th:first-child{width:232px}.problem-table td{font-size:13px}.problem-table tbody tr:last-child td{border-bottom:none}.problem-table tbody tr:hover{background:color-mix(in srgb,var(--panel-2) 55%,transparent)}.problem-table-test{box-shadow:inset 3px 0 0 #8b5cf6;background:color-mix(in srgb,#8b5cf6 10%,var(--panel))}.problem-table-link{display:block;min-height:28px;color:inherit;text-decoration:none;overflow-wrap:anywhere}.problem-table-tape-grade{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;white-space:nowrap}.problem-table-tape-grade .problem-row-tape,.problem-table-tape-grade .symbol-badge{flex-shrink:0}.problem-table-badges{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.problem-table-muted{color:var(--muted);font-size:12px}.problem-table-action{width:78px;text-align:center;white-space:nowrap}.problem-table-open{padding:6px 10px;font-size:12px}.problem-row-grade{flex-shrink:0;min-width:52px;text-align:center;background:var(--panel-2)}.problem-row-tape{display:inline-block;width:72px;max-width:72px;font-size:11px;padding:2px 10px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.problem-row-delete{padding:2px 8px;font-size:12px;opacity:.6;flex-shrink:0}@media (max-width:720px){.problem-table{min-width:676px}.problem-table td,.problem-table th{padding:8px 10px}}@media (max-width:900px){.header-nav .nav-menu-toggle{display:inline-flex;min-height:40px}.header-nav .nav-items{display:none;position:absolute;top:calc(100% + 8px);right:0;flex-direction:column;align-items:stretch;gap:8px;padding:10px;min-width:220px;max-width:min(86vw,320px);background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.35);z-index:30}.header-nav .nav-items.open{display:flex}.header-nav .nav-items .btn-nav,.header-nav .nav-items .gym-switcher{width:100%;text-align:center;min-height:44px}.header-nav .nav-items .gym-switcher{max-width:none}.header-nav .nav-items .nav-user{margin-left:0;max-width:none;text-align:center;padding:4px 0}}@media (max-width:720px){.app-header{padding:calc(10px + env(safe-area-inset-top, 0px)) calc(14px + env(safe-area-inset-right, 0px)) 10px calc(14px + env(safe-area-inset-left, 0px))}.app-main{padding:12px}.filter-bar-toggle{display:inline-flex;align-items:center;gap:4px;min-height:44px}.filter-bar-collapsed .filter-group,.filter-bar-collapsed .filter-toggle,.filter-bar-collapsed .group-switch,.filter-bar-collapsed>.btn:not(.filter-bar-toggle){display:none}.group-switch,.group-switch .view-switch{flex-wrap:wrap}.filter-bar select{padding:10px 8px}.view-switch button{padding:10px 12px}.filter-toggle{min-height:44px;padding-bottom:0}.climb-box .btn,.viewer-back .btn:not(.viewer-print-link){padding:11px 16px}}.problem-row{gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px 12px}.problem-row,.problem-row-main{display:flex;align-items:center}.problem-row-main{gap:12px;color:inherit;text-decoration:none}.problem-row-body,.problem-row-main{flex:1 1;min-width:0}.problem-row .title{font-weight:600;margin-bottom:2px;overflow-wrap:anywhere}.problem-row .meta{font-size:12px;color:var(--muted)}.problem-row-climb{margin-left:6px}.problem-row-chevron{color:var(--muted);font-size:20px;flex-shrink:0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-auto-rows:1fr;grid-gap:16px;gap:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.card-test{border-color:#8b5cf6;box-shadow:0 0 0 1px #8b5cf6;background:color-mix(in srgb,#8b5cf6 10%,var(--panel))}.adopt-thumb .thumb,.card .thumb{aspect-ratio:4/3;background:#000;object-fit:cover;width:100%;display:block}.thumb-link{position:relative;display:block}.thumb-badges{position:absolute;top:8px;left:8px;display:flex;align-items:center;gap:6px}.grade-badge{padding:3px 10px;border:1.5px solid var(--muted);border-radius:8px;background:rgba(15,17,21,.82);font-size:15px;font-weight:800;line-height:1.2;letter-spacing:.02em;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tape-badge{padding:3px 12px;border-radius:1px;font-size:13px;font-weight:700;line-height:1.2;letter-spacing:.04em;transform:rotate(-3deg);opacity:.95;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4));-webkit-clip-path:polygon(0 0,100% 0,97% 25%,100% 50%,97% 75%,100% 100%,0 100%,3% 75%,0 50%,3% 25%);clip-path:polygon(0 0,100% 0,97% 25%,100% 50%,97% 75%,100% 100%,0 100%,3% 75%,0 50%,3% 25%)}.symbol-badge{padding:3px 10px;border:1.5px solid hsla(0,0%,100%,.85);border-radius:8px;background:rgba(15,17,21,.82);color:#f3f4f6;font-size:14px;font-weight:800;line-height:1.2;letter-spacing:.02em;white-space:nowrap;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.card .body{padding:12px;flex:1 1;display:flex;flex-direction:column}.card .title{font-weight:600;margin-bottom:6px}.badge-draft{display:inline-block;background:#f59e0b;color:#3b2600;font-size:11px;font-weight:700;padding:2px 6px;border-radius:6px;margin-right:6px;vertical-align:middle}.badge-unpublished{background:var(--panel-2);border:1px solid var(--border);border-radius:6px}.badge-ended,.badge-unpublished{display:inline-block;color:var(--muted);font-size:11px;font-weight:700;padding:2px 6px;margin-right:6px;vertical-align:middle}.badge-ended{background:transparent;border:1px dashed var(--border);border-radius:6px}.badge-scheduled{display:inline-block;background:#0ea5e9;color:#04283a;font-size:11px;font-weight:700;padding:2px 6px;border-radius:6px;margin-right:6px;vertical-align:middle}.teaser-section{margin-bottom:20px}.teaser-heading{margin:0 0 10px;font-size:15px;color:var(--muted)}.card-teaser{cursor:default;border-style:dashed;border-color:#0ea5e9}.teaser-thumb-wrap{position:relative}.teaser-thumb{filter:blur(2px) saturate(.85);transform:scale(1.05);-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.teaser-thumb-empty{background:linear-gradient(135deg,#1f2937,#0f1115)}.badge-teaser{display:inline-block;background:#0ea5e9;color:#04283a;font-size:11px;font-weight:800;letter-spacing:.04em;padding:3px 7px;border-radius:6px;vertical-align:middle;box-shadow:0 1px 2px rgba(0,0,0,.3)}.teaser-title{color:var(--muted)}.teaser-toggle{margin-top:6px}.badge-new{display:inline-block;background:#ef4444;color:#fff;font-size:11px;font-weight:800;letter-spacing:.04em;padding:3px 7px;border-radius:6px;vertical-align:middle;box-shadow:0 1px 2px rgba(0,0,0,.3)}.problem-table-tape-grade .badge-new{margin-right:6px}.filter-toggle-new{color:#ef4444;font-weight:700}.filter-toggle-unsent{color:#059669;font-weight:700}.card .meta{font-size:12px;color:var(--muted)}.card .meta-placeholder{opacity:.55}.rule-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.rule-chip{font-size:11px;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:1px 8px}.badge-feedback{background:#ef4444}.badge-feedback,.badge-test{display:inline-block;color:#fff;font-size:11px;font-weight:700;padding:2px 6px;border-radius:6px;margin-right:6px;vertical-align:middle}.badge-test{background:#8b5cf6}.badge-climber,.badge-official{display:inline-block;font-size:11px;font-weight:700;padding:2px 6px;border-radius:6px;margin-right:6px;vertical-align:middle}.badge-official{background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}.badge-climber{background:rgba(234,179,8,.15);color:var(--text);border:1px solid rgba(234,179,8,.5)}.badge-no-photo{display:inline-block;font-size:11px;font-weight:700;padding:2px 6px;border-radius:6px;margin-right:6px;vertical-align:middle;white-space:nowrap;flex-shrink:0;background:var(--panel-2);color:var(--muted);border:1px dashed var(--border)}.author-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--border)}.author-tabs button{border:1px solid transparent;border-bottom:none;background:transparent;color:var(--muted);padding:8px 16px;font-size:14px;font-weight:600;border-radius:8px 8px 0 0;margin-bottom:-1px;white-space:nowrap}.author-tabs button.active{background:var(--panel-2);color:var(--text);border-color:var(--border);border-bottom:1px solid var(--panel-2)}.empty{color:var(--muted);padding:40px;text-align:center}.editor{display:grid;grid-template-columns:1fr 320px;grid-gap:20px;gap:20px;align-items:start}@media (max-width:900px){.editor{grid-template-columns:1fr}}.editor-no-image .no-image-side{display:flex;flex-direction:column;gap:12px;min-width:0}.no-image-entry{margin-top:20px;padding-top:16px;border-top:1px dashed var(--border);display:flex;flex-direction:column;align-items:center;gap:8px}.no-image-banner{padding:10px 12px;border:1px dashed var(--border);border-radius:12px;background:var(--panel)}.no-image-banner p{margin:4px 0 0}.no-image-attach{margin-top:12px;padding:12px;border:1px dashed var(--border);border-radius:12px;background:var(--panel)}.no-image-attach>p{margin:0 0 8px}.no-image-attach input[type=file]{max-width:320px}.no-image-side .no-image-attach{margin-top:0;min-height:200px;display:flex;flex-direction:column;justify-content:center;gap:10px}.no-image-side .no-image-attach>p{margin:0}.no-image-side .no-image-attach input[type=file]{margin:0 auto}@media (max-width:900px){.no-image-side .no-image-attach{min-height:0}}.thumb.thumb-no-image.thumb-no-image{background-color:color-mix(in srgb,var(--muted) 14%,var(--panel));background-image:repeating-linear-gradient(135deg,color-mix(in srgb,var(--muted) 7%,transparent) 0 5px,transparent 5px 12px);border-bottom:1px solid var(--border);box-shadow:inset 0 0 0 1px var(--border)}.viewer-no-image{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:200px;padding:32px 20px;text-align:center;color:var(--muted)}.viewer-no-image-icon{font-size:34px;line-height:1}.viewer-no-image p{margin:0;max-width:26em}.print-no-image{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:60px;color:#666;font-size:12px}.climber-editor{display:flex;flex-direction:column;gap:12px}.author-badge{display:inline-block;align-self:flex-start;padding:4px 10px;border-radius:999px;background:rgba(234,179,8,.15);border:1px solid rgba(234,179,8,.5);color:var(--text);font-size:12px;font-weight:700}.climber-editor-tools{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.canvas-wrap{background:var(--panel);border:1px solid var(--border);padding:8px;overflow:hidden;position:relative}.canvas-busy,.canvas-wrap{border-radius:12px;display:flex;justify-content:center}.canvas-busy{position:absolute;inset:0;z-index:15;flex-direction:column;align-items:center;gap:12px;padding:16px;background:rgba(15,23,42,.55);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);color:#fff;text-align:center;pointer-events:auto;cursor:wait;-webkit-user-select:none;-moz-user-select:none;user-select:none}.canvas-busy-spinner{width:40px;height:40px;border-radius:50%;border:4px solid hsla(0,0%,100%,.35);border-top-color:#fff;animation:canvas-busy-spin .8s linear infinite}.canvas-busy-text{font-size:15px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.5)}@keyframes canvas-busy-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.canvas-busy-spinner{animation-duration:2s}}.canvas-wrap canvas{display:block;max-width:100%;width:auto;height:auto;max-height:calc(100vh - 140px);border-radius:6px;cursor:crosshair;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.canvas-wrap canvas.readonly{cursor:default}.canvas-wrap canvas.lasso{cursor:crosshair;touch-action:none}.zoom-viewport{display:flex;justify-content:center;width:100%;min-width:0}.zoom-viewport.zoomed{justify-content:flex-start;overflow:auto;max-height:calc(100vh - 140px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.canvas-wrap .zoom-viewport.zoomed canvas{flex:none;align-self:flex-start;width:calc(100% * var(--zoom-scale, 1));max-width:none;height:auto;max-height:none}.viewer{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:20px;gap:20px;align-items:start}@media (max-width:900px){.viewer{grid-template-columns:1fr}}.viewer-back{grid-column:1/-1;align-self:start;display:flex;align-items:center;gap:8px}.viewer-print-link{margin-left:auto;padding:4px 10px;font-size:12px;color:var(--muted)}.viewer-info{display:flex;flex-direction:column;gap:10px}.viewer-info-sub{margin:0;font-size:15px;font-weight:500;color:var(--text)}.viewer-info-meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14px}.viewer-info-meta .hint{font-size:14px}.viewer-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px}.viewer-legend-row{display:flex;align-items:center;gap:8px}@media (pointer:coarse){.canvas-wrap canvas{width:100%;max-height:none}}@media (pointer:coarse) and (min-width:901px){.viewer .canvas-wrap canvas{width:auto;max-width:100%;max-height:calc(100vh - 140px)}}.sidebar{display:flex;flex-direction:column;gap:16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px}.panel h3{margin:0 0 10px;font-size:14px}.role-buttons{display:flex;flex-wrap:wrap;gap:6px}.role-btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:999px;padding:6px 12px;font-size:13px}.role-btn.active{border-width:2px;font-weight:700}.role-group{margin-bottom:10px}.role-group:last-child{margin-bottom:0}.role-group-toggles{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px}.role-group-open{margin-top:8px}.role-group-toggle{display:flex;align-items:center;gap:4px;width:auto;padding:2px 0;border:none;background:none;color:var(--muted);font-size:11px;font-weight:700;cursor:pointer}.role-group-caret{font-size:9px;line-height:1}.role-counts{margin:20px 0 0}.rule-checks{display:flex;flex-wrap:wrap;gap:4px 12px}.rule-check{display:inline-flex;align-items:center;gap:4px;font-size:13px;white-space:nowrap}.rule-check input[type=checkbox]{width:16px;height:16px}.hold-list{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto}.hold-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;font-size:13px}.hold-cond{width:100%;display:flex;gap:6px;padding-left:56px}.hold-drag{flex:0 0 auto;width:18px;min-height:24px;display:grid;place-items:center;padding:0;border:none;background:none;color:var(--muted);font-size:15px;line-height:1;letter-spacing:-1px;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.hold-row.is-dragging{opacity:.6}.hold-row.is-dragging .hold-drag{cursor:-webkit-grabbing;cursor:grabbing}.hold-cond input[type=number]{width:80px;flex:0 0 auto}.hold-cond select{width:auto;flex:0 0 auto}.hold-badge{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:11px;font-weight:700;color:#000;flex-shrink:0}.hold-row .grow{flex:1 1}.hold-row .count-select{width:auto;flex:0 0 auto;padding:6px}.hold-row .hold-type-select{max-width:120px}.hold-row .del{color:var(--muted);background:none;border:none;font-size:16px}.hold-color{display:flex;align-items:center;gap:4px;flex:0 0 auto}.hold-color-swatch{flex:none;width:18px;height:18px;border-radius:5px;border:1px solid var(--border);background:repeating-conic-gradient(#ccc 0 25%,#fff 0 50%) 50% /8px 8px}.hold-color select{width:auto;flex:0 0 auto;padding:6px}.hint{font-size:12px;color:var(--muted);line-height:1.5}.poc-table{border-collapse:collapse;width:100%;max-width:640px;font-size:14px}.poc-table td,.poc-table th{border:1px solid var(--border,#e5e7eb);padding:6px 10px;text-align:left}.poc-table th{background:var(--panel-alt,#f8fafc)}.poc-table .poc-top{background:#ecfdf5;font-weight:600}.media-compare-cta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.video-compare-modal{position:fixed;inset:0;z-index:1000;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));box-sizing:border-box;background:var(--panel,#fff);overflow:auto;-webkit-overflow-scrolling:touch;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.video-compare-modal:-webkit-full-screen{background:var(--panel,#fff)}.video-compare-modal:fullscreen{background:var(--panel,#fff)}.video-compare-modal-head{display:flex;align-items:center;gap:12px;margin-bottom:8px;position:-webkit-sticky;position:sticky;top:0;z-index:2;background:var(--panel,#fff)}.video-compare-modal-head h3{margin:0;flex:1 1 auto}.video-compare-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;border:1px solid var(--border,#e5e7eb);border-radius:8px;background:var(--panel-alt,#f8fafc)}.video-compare-savemsg{font-size:13px;color:var(--accent,#2563eb)}.video-compare-giferr{font-size:13px;color:var(--danger,#dc2626)}.cmpsave{margin-top:12px}.cmpsave-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cmpsave-msg{font-size:13px;color:var(--accent,#2563eb)}.cmpsave-err{font-size:13px;color:var(--danger,#dc2626)}.cmpsave-form{gap:10px;flex-wrap:wrap;margin-top:8px;padding:10px 12px;border:1px solid var(--border,#e5e7eb);border-radius:8px;background:var(--panel-alt,#f8fafc)}.cmpsave-field,.cmpsave-form{display:flex;align-items:center}.cmpsave-field{gap:6px;flex:1 1 280px;min-width:0;white-space:nowrap}.cmpsave-field input{flex:1 1 auto;min-width:0}.cmpsave-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.cmpsave-item{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--border,#e5e7eb);border-radius:8px;background:var(--panel-alt,#f8fafc)}.cmpsave-item-main{display:flex;flex-direction:column;gap:2px;flex:1 1 200px;min-width:0}.cmpsave-item-name,.cmpsave-item-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmpsave-item-sub{font-size:12px;color:var(--muted,#6b7280)}.cmpsave-item-gone{font-size:12px;color:var(--danger,#dc2626)}.cmpsave-item-actions{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;flex-wrap:wrap;justify-content:flex-end}.compare-ai{margin-top:12px}.compare-ai-toggle{width:100%;min-height:44px;padding:12px 14px;border:1px solid var(--accent,#2563eb);border-radius:8px;background:color-mix(in srgb,var(--accent,#2563eb) 12%,transparent);color:var(--text,#111827);font-size:15px;font-weight:600;text-align:left;cursor:pointer}.compare-ai-toggle.is-on{background:color-mix(in srgb,var(--accent,#2563eb) 26%,transparent)}.compare-ai-body{margin-top:8px;padding:10px 12px;border:1px solid var(--border,#e5e7eb);border-radius:8px}.compare-ai-form{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0}.compare-ai-side{display:flex;flex-direction:column;align-items:flex-start;gap:4px;flex:1 1 240px;min-width:0}.compare-ai-side-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.compare-ai-side-label{font-size:13px;color:var(--muted,#6b7280);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compare-ai-result.is-on{border-color:var(--accent,#2563eb);color:var(--accent,#2563eb);background:color-mix(in srgb,var(--accent,#2563eb) 12%,transparent)}.compare-ai-duration{display:flex;align-items:center;gap:6px}.compare-ai-duration select{width:auto}.compare-ai-run{margin-left:auto}.compare-ai-error{margin:8px 0 0;padding:8px 10px;border:1px solid var(--danger,#dc2626);border-radius:6px;color:var(--danger,#dc2626);font-size:14px}.compare-ai-result{margin-top:12px;padding-top:12px;border-top:1px solid var(--border,#e5e7eb);-webkit-user-select:text;-moz-user-select:text;user-select:text}.compare-ai-debug-toggle{margin-top:10px;padding:6px 8px;border:1px solid var(--border,#e5e7eb);border-radius:6px;background:transparent;color:var(--muted,#6b7280);font-size:13px;cursor:pointer}.compare-ai-debug{margin-top:8px}.compare-ai-debug h4{margin:10px 0 6px;font-size:14px}.compare-ai-frames{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.compare-ai-frames figure{margin:0;flex:0 0 auto}.compare-ai-frames img{height:90px;width:auto;border-radius:4px;border:1px solid var(--border,#e5e7eb);display:block}.compare-ai-frames figcaption{font-size:11px;color:var(--muted,#6b7280);text-align:center}@media (max-width:720px){.compare-ai-run{margin-left:0;width:100%}}.video-compare-picker{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;padding:8px 10px;border:1px solid var(--border,#e5e7eb);border-radius:8px;background:transparent}.video-compare-picker--simple{padding:4px 0;border:0;background:none}.video-compare-picker-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.video-compare-picker-head strong{font-size:14px}.video-compare-picker-now{flex:1 1 160px;min-width:0;font-size:12px;color:var(--muted,#6b7280);word-break:break-word}.video-compare-picker-label{font-size:12px;color:var(--muted,#6b7280);margin-bottom:4px}.video-compare-picker-row{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.video-compare-thumb{position:relative;flex:0 0 auto;width:112px;padding:0 0 4px;border:2px solid var(--border,#e5e7eb);border-radius:8px;background:var(--panel,#fff);overflow:hidden;text-align:left;cursor:pointer}.video-compare-thumb img,.video-compare-thumb-noimg{display:block;width:100%;height:58px;object-fit:cover;background:#000}.video-compare-thumb-noimg{display:flex;align-items:center;justify-content:center;font-size:22px}.video-compare-thumb-label{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:4px 6px 0;font-size:11px;line-height:1.3;color:var(--text,#111827);overflow:hidden;word-break:break-word}.video-compare-thumb-badge{position:absolute;top:4px;left:4px;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:600;color:#fff;background:var(--accent,#2563eb)}.video-compare-thumb-badge.is-other{background:rgba(0,0,0,.55);font-weight:400}.video-compare-thumb.is-active{border-color:var(--accent,#2563eb)}.video-compare-thumb.is-other{opacity:.75}.video-compare-thumb:disabled{opacity:.4;cursor:default}.video-compare-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-top:12px}@media (max-width:720px){.video-compare-grid{grid-template-columns:1fr}}.video-compare-pane{display:flex;flex-direction:column;gap:6px;min-width:0}.video-compare-caption{font-size:13px;color:var(--muted,#6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.video-compare-playbar{display:flex;align-items:center;gap:8px}.video-compare-playbar input[type=range]{flex:1 1 auto;min-width:0}.video-compare-play{flex:0 0 auto;padding:2px 10px;font-size:14px;line-height:1.6}.video-compare-play-main{white-space:nowrap;font-weight:600}.video-compare-time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:13px;color:var(--muted,#6b7280);white-space:nowrap}.video-compare-master{display:flex;align-items:center;gap:8px;margin-top:12px;padding:8px 12px;border:1px solid var(--border,#e5e7eb);border-radius:8px;background:var(--panel-alt,#f8fafc)}.video-compare-master input[type=range]{flex:1 1 auto;min-width:0}.video-compare-stage{position:relative;overflow:hidden;border-radius:8px;background:#000;height:min(68vh,116vw)}@media (max-width:720px){.video-compare-stage{height:min(56vh,130vw)}}.video-compare-stage video{display:block;width:100%;height:100%;object-fit:contain;transform-origin:center center}.video-compare-drag{position:absolute;inset:0;cursor:move;touch-action:none;display:flex;align-items:flex-start;justify-content:center}.video-compare-drag--locked{pointer-events:none;cursor:default;touch-action:auto}.video-compare-drag span{margin-top:6px;padding:2px 8px;border-radius:999px;font-size:12px;color:#fff;background:rgba(0,0,0,.5);pointer-events:none}.video-compare-adjust{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}.video-compare-adjust label{display:flex;align-items:center;gap:4px}.video-compare-adjust input[type=range]{width:96px}.video-compare-stage-wrap{display:grid;grid-template-rows:26px 1fr}.video-compare-stage-wrap.is-left{grid-template-columns:1fr 26px;grid-template-areas:"toprail corner" "stage siderail"}.video-compare-stage-wrap.is-right{grid-template-columns:26px 1fr;grid-template-areas:"corner toprail" "siderail stage"}.video-compare-stage-wrap .video-compare-stage{grid-area:stage}.video-compare-rail-top{grid-area:toprail;position:relative}.video-compare-rail-side{grid-area:siderail;position:relative}.video-compare-guides{position:absolute;inset:0;z-index:2;pointer-events:none}.video-compare-guide-h,.video-compare-guide-v{position:absolute;background:var(--guide-1);box-shadow:0 0 0 1px hsla(0,0%,100%,.45)}.video-compare-guide-h.is-2,.video-compare-guide-v.is-2{background:var(--guide-2)}.video-compare-guide-h{left:0;right:0;height:1px;transform:translateY(-.5px)}.video-compare-guide-v{top:0;bottom:0;width:1px;transform:translateX(-.5px)}.video-compare-modal{--guide-1:rgba(239,68,68,.9);--guide-2:rgba(34,211,238,.9)}.video-compare-grip{position:absolute;width:24px;height:24px;padding:0;border:1px solid hsla(0,0%,100%,.7);border-radius:999px;background:var(--guide-1);color:#fff;font-size:13px;line-height:1;cursor:-webkit-grab;cursor:grab;touch-action:none}.video-compare-grip.is-2{background:var(--guide-2);color:#04343c}.video-compare-grip:active{cursor:-webkit-grabbing;cursor:grabbing}.video-compare-grip-x{top:1px;transform:translateX(-50%)}.video-compare-grip-y{left:1px;transform:translateY(-50%)}.video-compare-guide-toggle.is-on{border-color:rgba(239,68,68,.7);background:rgba(239,68,68,.12)}.video-compare-adjust-group{display:inline-flex;align-items:center;gap:4px}.video-compare-step{width:30px;padding:2px 0;font-size:14px;line-height:1.4;touch-action:none}.video-compare-adjust-val{min-width:44px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted,#6b7280)}.refine-modes{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.refine-mode{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);font-size:12px;padding:4px 10px;border-radius:999px;cursor:pointer}.refine-mode.active{background:var(--accent);border-color:var(--accent);color:#fff}.holdsize-wrap{margin-top:8px}.holdsize-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.holdsize-label{font-size:12px;color:var(--muted)}.holdsize-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);font-size:13px;padding:7px 14px;border-radius:999px;min-height:44px;white-space:nowrap;cursor:pointer}.holdsize-btn:disabled{opacity:.32;cursor:not-allowed}.holdsize-step{font-size:12px;font-weight:700;color:var(--accent);min-width:34px;text-align:center}.climber-canvas-col{min-width:0}.pickfail{margin-top:8px;padding:12px;background:var(--panel-2);border:1px solid var(--border);border-left:3px solid var(--danger);border-radius:10px}.pickfail-text{margin:0;font-size:13px;line-height:1.6;color:var(--text)}.pickfail-next{margin-top:4px;color:var(--muted)}.pickfail-btn{margin-top:10px;background:var(--panel);border:1px solid var(--accent);color:var(--accent);font-size:13px;font-weight:700;padding:7px 16px;border-radius:999px;min-height:44px;white-space:nowrap;cursor:pointer}.pickfail-btn:disabled{opacity:.32;cursor:not-allowed}.danger-zone{display:flex;justify-content:space-between;margin-top:40px;padding-top:12px;border-top:1px dashed var(--border)}.tiny-btn{background:transparent;border:1px solid var(--border);color:var(--muted);font-size:12px;padding:4px 10px;border-radius:6px;opacity:.6}.tiny-btn:hover{opacity:1}.tiny-btn:disabled{opacity:.25;cursor:not-allowed}.tiny-danger{color:var(--danger);border-color:var(--danger)}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.crop-link{background:none;border:none;padding:0;font-size:12px;color:var(--muted);text-decoration:underline;cursor:pointer}.crop-link:hover{color:var(--text)}.status{font-size:13px;color:var(--muted)}.error{color:var(--danger);font-size:13px}.uploader{border:2px dashed var(--border);border-radius:12px;padding:48px 20px;text-align:center;color:var(--muted)}.past-images{margin-top:8px;text-align:left}.past-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:10px;gap:10px;margin-top:8px}.past-image-item{padding:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#000;cursor:pointer;transition:border-color .15s}.past-image-item:hover:not(:disabled){border-color:var(--accent,#4a9eff)}.past-image-item:disabled{opacity:.5;cursor:default}.past-image-item img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.past-image-date{display:block;padding:3px 6px;font-size:11px;line-height:1.3;color:#ccc;background:#000;text-align:center}.topo-card-actions{display:flex;gap:6px;padding:6px;background:#000}.topo-card-actions .btn{flex:1 1;text-align:center}.climb-card-badge{top:8px;width:26px;height:26px;background:var(--accent);color:#06210f;font-weight:700}.climb-card-badge,.my-video-badge{position:absolute;right:8px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:14px}.my-video-badge{bottom:8px;width:24px;height:24px;background:hsla(0,0%,100%,.92);border:1px solid rgba(15,17,21,.35);color:#0f1115;line-height:1}.card-project-btn.active,.climb-project-btn.active{border-color:#f5b301;color:#f5b301}.card-project-btn{padding:10px 14px;font-size:18px;line-height:1}.climb-summary-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:-8px 0 16px}.climb-summary{margin:0;color:var(--accent);font-weight:600}.climb-summary-note{margin-left:2px;color:var(--muted);font-size:12px;font-weight:400}.climb-transfer-btn{padding:4px 10px;font-size:13px}.modal-overlay{position:fixed;inset:0;z-index:100;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.6)}.modal,.modal-overlay{display:flex;overscroll-behavior:contain}.modal{width:100%;max-width:520px;max-height:90vh;overflow-y:auto;flex-direction:column;gap:12px}.feedback-modal{max-width:640px}.feedback-comment{width:100%;resize:vertical;min-height:64px}.feedback-draw{display:flex;flex-direction:column;gap:8px}.feedback-draw .canvas-wrap{justify-content:center}.feedback-draw .canvas-stack{max-height:55vh}.feedback-draw .canvas-stack canvas{max-height:55vh;width:auto}.feedback-palette{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.feedback-cta{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.feedback-thanks{color:var(--success,#34c759)}.viewer-note-input{display:block;width:100%;box-sizing:border-box;resize:vertical;min-height:5em;margin:6px 0;padding:8px 10px;font:inherit;font-size:12px;line-height:1.5;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:8px}.viewer-note-input::placeholder{color:var(--muted);opacity:1}.viewer-note-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.grade-vote-panel{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.grade-vote-buttons{display:flex;flex-wrap:nowrap;gap:6px;width:100%;max-width:320px}.grade-vote-btn{flex:1 1;min-width:0;padding:6px 4px;font-size:.8rem;white-space:nowrap;text-align:center}.grade-vote-btn.active{background:var(--accent,#0a84ff);color:#fff;border-color:var(--accent,#0a84ff)}.grade-vote-dist{display:flex;flex-direction:column;gap:4px;width:100%;max-width:320px}.grade-vote-row{display:flex;align-items:center;gap:8px;font-size:.9em}.grade-vote-label{flex:0 0 5.5em}.grade-vote-bar{flex:1 1 auto;height:10px;border-radius:5px;background:var(--border,#eee);overflow:hidden}.grade-vote-fill{display:block;height:100%;background:var(--accent,#0a84ff)}.grade-vote-pct{flex:0 0 3em;text-align:right;color:var(--muted,#666)}.feel-tag-panel{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.feel-tag-buttons{display:flex;flex-wrap:wrap;gap:6px;width:100%}.feel-tag-btn{padding:6px 10px;font-size:.8rem;white-space:nowrap}.feel-tag-btn.active{background:var(--accent,#0a84ff);color:#fff;border-color:var(--accent,#0a84ff)}.feel-tag-dist{display:flex;flex-direction:column;gap:4px;width:100%;max-width:320px}.feel-tag-row{display:flex;align-items:center;gap:8px;font-size:.9em}.feel-tag-label{flex:0 0 6.5em}.feel-tag-bar{flex:1 1 auto;height:10px;border-radius:5px;background:var(--border,#eee);overflow:hidden}.feel-tag-fill{display:block;height:100%;background:var(--accent,#0a84ff)}.feel-tag-count{flex:0 0 3em;text-align:right;color:var(--muted,#666)}.me-thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));grid-gap:10px;gap:10px}.me-thumb-card{display:flex;flex-direction:column;gap:4px;min-width:0}.me-thumb-card .thumb-link{display:block}.me-thumb-card .thumb{width:100%;aspect-ratio:4/3;background:#000;object-fit:cover;border-radius:8px;display:block}.me-thumb-title{font-size:12px;font-weight:600;line-height:1.25;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.me-thumb-meta{white-space:nowrap;text-overflow:ellipsis}.me-thumb-meta,.me-thumb-note{font-size:11px;color:var(--muted);overflow:hidden}.me-thumb-note{margin:0;white-space:pre-wrap;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.me-thumb-actions{margin-top:auto;padding-top:2px}.me-thumb-card .climb-card-badge{width:22px;height:22px;font-size:12px;top:6px;right:6px}.projects-closed{margin-top:16px;border-top:1px solid var(--border)}.projects-closed .accordion-heading{margin:0}.projects-closed .accordion-head{padding:12px 0}.projects-closed .accordion-body{padding:0 0 4px}.projects-closed.is-open .accordion-chevron{transform:rotate(180deg)}.training-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.training-head h3{margin:0}.training-group{margin-top:12px}.training-cat{margin:0 0 6px;font-size:.85em;color:var(--muted,#666)}.training-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.training-item{gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.training-check,.training-item{display:flex;align-items:center}.training-check{gap:10px;width:100%;cursor:pointer;margin:0}.training-check input[type=checkbox]{width:auto;flex:0 0 auto;margin:0;transform:scale(1.3)}.training-name{flex:1 1 auto;min-width:0;word-break:break-word}.training-stats{flex:0 0 auto;display:flex;align-items:center;gap:8px;font-size:.8em;color:var(--muted,#666)}.training-streak{color:var(--text);font-weight:600}.training-view{display:flex;align-items:center;gap:8px;width:100%;flex-wrap:wrap}.training-item-label{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.training-today-badge{flex:0 0 auto;font-size:.72em;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--panel-2));border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:999px;padding:1px 8px;white-space:nowrap}.training-count{white-space:nowrap}.training-manage-actions{flex:0 0 auto;display:flex;gap:6px}.training-edit{flex-direction:column;width:100%}.training-edit,.training-edit-actions{display:flex;gap:6px}.training-add{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);flex-direction:column}.training-add,.training-add-row{display:flex;gap:8px}.training-add-row input{flex:1 1 auto;min-width:0}.training-add-row .btn{flex:0 0 auto;white-space:nowrap}.link-btn{background:none;border:none;padding:0;color:var(--muted,#888);font:inherit;font-size:.85em;cursor:pointer;text-decoration:underline}.link-btn:hover{color:var(--danger,#ff3b30)}.report-reasons{display:flex;flex-direction:column;gap:8px;margin:8px 0}.report-reason{display:flex;align-items:center;gap:8px;cursor:pointer}.feedback-list-panel{display:flex;flex-direction:column;gap:10px}.feedback-list-head{font-weight:600}.feedback-item{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--border,#d0d0d0);border-radius:8px}.feedback-item.resolved{opacity:.6}.feedback-item-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.feedback-item-name{font-weight:600}.feedback-badge-resolved{font-size:.75rem;padding:1px 6px;border-radius:10px;background:var(--success,#34c759);color:#fff}.feedback-item-comment{margin:0;white-space:pre-wrap;word-break:break-word}.feedback-item-actions{display:flex;gap:6px;flex-wrap:wrap}.wall-region-modal{max-width:720px}.wall-region-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.wall-region-canvas{display:flex;justify-content:center}.wall-region-stage{position:relative}.wall-region-stage img{display:block;max-width:100%;max-height:55vh;width:auto;height:auto;border-radius:8px;-moz-user-select:none;user-select:none;-webkit-user-select:none}.wall-region-stage svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.wall-region-stage svg.is-idle{cursor:default}.wall-region-shape{fill:rgba(59,130,246,.18);stroke:#3b82f6;stroke-width:3px;vector-effect:non-scaling-stroke}.wall-region-drag{fill:rgba(59,130,246,.3);stroke-dasharray:6 4}.wall-region-draft{fill:rgba(59,130,246,.12);stroke-dasharray:6 4}.wall-region-label{fill:#fff;font-weight:700;paint-order:stroke;stroke:rgba(0,0,0,.6);stroke-width:4px;pointer-events:none}.wall-region-chips{display:flex;flex-wrap:wrap;gap:6px}.wall-region-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);font-size:13px}.wall-region-chip button{border:none;background:none;color:var(--muted);cursor:pointer;font-size:14px;padding:0 2px}.measure-modal{max-width:min(1100px,96vw);width:min(1100px,96vw)}.measure-modal .wall-region-stage img{max-height:74vh}.measure-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.measure-approx{color:var(--warning,#d97706)}.measure-calibrate-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.measure-calibrate-row label{display:inline-flex;align-items:center;gap:6px}.measure-calibrate-row input{width:90px}.measure-result{margin-top:10px;font-size:15px}.measure-result strong{font-size:18px}.measure-line{fill:#f97316;stroke:#f97316;vector-effect:non-scaling-stroke}.measure-calib{fill:#3b82f6}.measure-calib,.measure-quad{stroke:#3b82f6;stroke-dasharray:8 5;opacity:.85;vector-effect:non-scaling-stroke}.measure-quad{fill:rgba(59,130,246,.08)}.measure-label{fill:#fff;font-weight:700;paint-order:stroke;stroke:rgba(0,0,0,.7);stroke-width:4px;pointer-events:none}.wall-recog-row{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.image-wall-card .image-wall-info{display:flex;align-items:center;gap:6px;padding:4px 6px;background:#000;text-align:left}.image-wall-source{flex:none;padding:1px 6px;border-radius:999px;font-size:10px;line-height:1.4;color:#fff;background:#555}.image-wall-source-manual{background:#2e7d32}.image-wall-source-auto{background:#1565c0}.image-wall-names{font-size:11px;line-height:1.3;color:#eee;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-nav-qr{opacity:.55;font-size:12px;padding-left:8px;padding-right:8px}.btn-nav-qr:hover{opacity:1}.qr-modal{max-width:420px;align-items:center;text-align:center}.qr-frame{background:#fff;padding:12px;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.2)}.qr-svg{display:block;width:min(70vw,260px);height:min(70vw,260px)}.qr-url{font-size:12px;color:var(--muted);word-break:break-all;max-width:100%}.transfer-section{gap:6px}.transfer-label,.transfer-section{display:flex;flex-direction:column}.transfer-label{font-size:13px;font-weight:600;gap:4px}.transfer-code-row{display:flex;align-items:stretch;gap:8px}.transfer-code-row input{flex:1 1;min-width:0}.transfer-code{flex:1 1;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);font-size:13px;overflow-x:auto;white-space:nowrap}.transfer-close-row{display:flex;justify-content:flex-end;gap:8px}.me-page{display:flex;flex-direction:column;gap:16px}.me-main,.me-sidebar{display:contents}.me-manage{display:flex;flex-direction:column;gap:16px}.accordion-panel{padding:0}.accordion-heading{margin:0;font-size:14px}.accordion-head{width:100%;display:flex;align-items:center;gap:8px;padding:12px 14px;background:none;border:none;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:12px}.accordion-head:hover{background:var(--panel-2)}.accordion-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.accordion-title{font-weight:700}.accordion-badge{padding:1px 8px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap;max-width:12em;overflow:hidden;text-overflow:ellipsis}.accordion-chevron{margin-left:auto;color:var(--muted);transition:transform .15s ease}.accordion-panel.is-open .accordion-chevron{transform:rotate(180deg)}.accordion-body{padding:0 14px 14px}.accordion-body-actions{display:flex;justify-content:flex-end;margin-bottom:8px}.me-page>.me-head{order:0}.me-page .unlinked-matches{order:1}.me-page .today-summary{order:2}.me-page .me-import-link,.me-page .stats-panel{order:3}.me-page .record-history{order:4}.me-page .training-panel{order:5}.me-page .media-panel{order:6}.me-page .projects-panel{order:7}.me-page .notes-panel{order:8}.me-page>.me-manage{order:9}@media (min-width:900px){.me-page{display:grid;grid-template-columns:2fr 1fr;align-items:start;grid-gap:16px;gap:16px}.me-page>.me-head,.me-page>.me-manage{grid-column:1/-1}.me-main,.me-sidebar{display:flex;flex-direction:column;gap:16px;min-width:0}.me-main{grid-column:1}.me-sidebar{grid-column:2}}.me-import-link{margin:-6px 2px 0;font-size:12px;color:var(--muted)}.me-import-link a{color:var(--muted);text-decoration:none}.me-import-link a:hover{text-decoration:underline}.me-ai-links{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 10px}.me-ai-links .tiny-btn{opacity:1;color:var(--text);padding:7px 12px;font-size:13px}.today-block{margin-top:14px}.today-block:first-of-type{margin-top:8px}.today-block h4{margin:0 0 8px;font-size:14px}.today-project-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.today-project{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.today-project-thumb{flex:none;width:64px;border-radius:8px;overflow:hidden}.today-project-thumb .thumb{display:block;width:100%;aspect-ratio:4/3;background:#000;object-fit:cover}.today-project-body{display:flex;flex-direction:column;gap:2px;min-width:0}.today-project-title{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-project-more{display:inline-block;margin-top:8px;font-size:13px;color:var(--accent);text-decoration:none}.today-project-more:hover{text-decoration:underline}.training-quick{display:flex;flex-wrap:wrap;gap:8px}.training-quick-item{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;min-height:40px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);color:inherit;font-size:14px;cursor:pointer}.training-quick-item.checked{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--panel-2))}.training-quick-item:disabled{opacity:.6;cursor:default}.training-quick-check{font-size:16px;line-height:1}.training-quick-streak{font-size:12px;color:var(--muted)}.shoe-tracker{gap:10px}.shoe-form,.shoe-tracker{display:flex;flex-direction:column}.shoe-form{gap:8px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2,rgba(0,0,0,.02))}.shoe-field{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.shoe-field input{font-size:14px}.shoe-field-row{display:flex;gap:8px}.shoe-field-row .shoe-field{flex:1 1;min-width:0}.shoe-form-actions{display:flex;gap:8px;margin-top:2px}.shoe-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.shoe-item{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:8px}.shoe-item-main{display:flex;flex-direction:column;gap:2px;min-width:0}.shoe-item-title{font-weight:600;display:flex;align-items:center;gap:6px}.shoe-active-badge{color:var(--primary,#2563eb)}.shoe-active-badge,.shoe-private-badge{font-size:11px;font-weight:600;border:1px solid;border-radius:999px;padding:0 7px;line-height:1.5}.shoe-private-badge{color:var(--muted)}.shoe-public-toggle{display:flex;align-items:flex-start;gap:8px;font-size:13px;cursor:pointer}.shoe-public-toggle input{margin-top:2px;flex-shrink:0}.shoe-public-toggle>span{display:flex;flex-direction:column;gap:1px}.shoe-item-memo{font-size:12px;color:var(--muted)}.shoe-item-actions{display:flex;gap:6px;flex-shrink:0}.shoe-photo{width:64px;height:64px;flex-shrink:0;border-radius:8px;object-fit:cover;border:1px solid var(--border);background:var(--panel,#f3f4f6)}.shoe-photo-loading{display:inline-block}.shoe-photo-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px}.me-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.me-head h2{margin:0}.me-head-email{font-size:12px;color:var(--muted);margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.me-section-divider{display:flex;align-items:center;gap:10px;margin:4px 0;color:var(--muted);font-size:12px;font-weight:600}.me-section-divider:after,.me-section-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.profile-view{margin:0 0 6px;display:flex;flex-direction:column;gap:2px}.profile-row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--border)}.profile-row:last-child{border-bottom:none}.profile-row dt{color:var(--muted);font-size:13px;white-space:nowrap}.profile-row dd{margin:0;text-align:right;font-size:14px}.profile-edit-actions{display:flex;gap:8px;flex-wrap:wrap}.usage-bar{height:8px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);overflow:hidden;margin-bottom:6px}.usage-bar-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .2s ease}.climb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.climb-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-top:1px solid var(--border)}.climb-row:first-child{border-top:none}.climb-row-main{display:flex;flex-direction:column;flex:1 1 auto;align-items:flex-start;text-align:left;gap:2px;min-width:0;color:inherit;text-decoration:none}.climb-row-main:hover .climb-row-title{color:var(--accent)}.climb-row-title{font-weight:600;font-size:14px}.climb-row-side{display:flex;align-items:center;gap:8px;flex-shrink:0}.climb-row-item+.climb-row-item .climb-row{border-top:1px solid var(--border)}.climb-date-edit{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 0 10px}.climb-date-edit input[type=date]{padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:inherit;font-size:14px}.stats-panel h4{margin:0 0 8px;font-size:13px;color:var(--muted)}.stat-block{margin-top:16px}.stat-tiles{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}@media (max-width:520px){.stat-tiles{grid-template-columns:repeat(2,1fr)}}.stat-tile{display:flex;flex-direction:column;gap:2px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}.stat-value{font-size:20px;font-weight:700;line-height:1.1}.stat-label{font-size:11px;color:var(--muted)}.month-chart{display:flex;align-items:flex-end;gap:6px;overflow-x:auto;padding-bottom:4px}.month-col{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:28px;flex:1 0 28px}.month-bar-track{height:96px;width:100%;display:flex;align-items:flex-end;justify-content:center}.month-bar{width:60%;min-height:2px;background:var(--muted);border-radius:4px 4px 0 0;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden}.month-bar-flash{width:100%;background:var(--accent)}.month-count{font-size:11px;color:var(--muted);min-height:14px}.month-label{font-size:10px;color:var(--muted);white-space:nowrap}.heatmap-scroll{overflow-x:auto;padding-bottom:4px}.heatmap{display:flex;flex-direction:column;gap:3px;width:100%;max-width:460px;--hm-gap:3px;--hm-wd:16px;--hm-weeks:26}.heatmap-months{display:grid;grid-template-columns:var(--hm-wd) repeat(var(--hm-weeks),minmax(0,1fr));grid-gap:var(--hm-gap);gap:var(--hm-gap)}.heatmap-month{min-width:0;font-size:10px;color:var(--muted);white-space:nowrap;overflow:visible}.heatmap-body,.heatmap-weekdays{display:flex;gap:var(--hm-gap)}.heatmap-weekdays{flex-direction:column;flex:0 0 var(--hm-wd)}.heatmap-weekday{flex:1 1;display:flex;align-items:center;font-size:9px;line-height:1;color:var(--muted)}.heatmap-weeks{display:grid;grid-template-columns:repeat(var(--hm-weeks),minmax(0,1fr));grid-gap:var(--hm-gap);flex:1 1}.heatmap-week,.heatmap-weeks{gap:var(--hm-gap);min-width:0}.heatmap-week{display:flex;flex-direction:column}.heatmap-cell{width:100%;aspect-ratio:1/1;border-radius:2px;background:color-mix(in srgb,var(--muted) 16%,transparent)}.heatmap-cell-empty{background:transparent}.heatmap-cell.lvl-0{background:color-mix(in srgb,var(--muted) 16%,transparent)}.heatmap-cell.lvl-1{background:color-mix(in srgb,var(--accent) 32%,transparent)}.heatmap-cell.lvl-2{background:color-mix(in srgb,var(--accent) 55%,transparent)}.heatmap-cell.lvl-3{background:color-mix(in srgb,var(--accent) 78%,transparent)}.heatmap-cell.lvl-4{background:var(--accent)}.heatmap-legend{display:flex;align-items:center;gap:3px;font-size:10px;color:var(--muted);align-self:flex-end}.heatmap-legend .heatmap-cell{width:10px;height:10px}.training-heat-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.training-heat-tab{padding:4px 10px;font-size:12px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);color:var(--muted);cursor:pointer}.training-heat-tab.active{background:color-mix(in srgb,var(--accent) 22%,transparent);border-color:var(--accent);color:var(--text);font-weight:600}.last-visit-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.last-visit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--border)}.last-visit-row:last-child{border-bottom:none}.last-visit-head{display:flex;align-items:center;gap:6px;min-width:0}.last-visit-fav{flex-shrink:0;border:none;background:none;padding:0;font-size:16px;line-height:1;color:var(--muted);cursor:pointer}.last-visit-fav.is-fav{color:#f59e0b}.last-visit-name{font-size:14px;font-weight:600;color:var(--text);text-decoration:none}.last-visit-name:hover{text-decoration:underline}.last-visit-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.last-visit-day{font-size:12px}.last-visit-count,.last-visit-day{color:var(--muted);white-space:nowrap}.last-visit-count{font-size:11px}.activity-checkin{margin-top:10px}.activity-checkin-standalone{margin:16px auto;max-width:460px}.activity-checkin-standalone-body{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.activity-checkin-datefield{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.activity-checkin-done{color:var(--accent);font-weight:600;font-size:14px}.activity-checkin-past-toggle{background:none;border:none;color:var(--muted);font-size:12px;text-decoration:underline;cursor:pointer;padding:0}.activity-checkin-past{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%}.activity-checkin-links{margin-top:10px}.activity-add-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0}.activity-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.activity-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid color-mix(in srgb,var(--muted) 18%,transparent)}.activity-row-main{display:flex;flex-direction:column;gap:2px}.activity-row-date{font-weight:600}.unlinked-modal{max-width:520px}.unlinked-form{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}.unlinked-field{display:flex;flex-direction:column;gap:4px;flex:1 1 46%;min-width:140px;font-size:13px}.unlinked-field>span{color:var(--muted)}.unlinked-field-wide{flex-basis:100%}.unlinked-field input,.unlinked-field select{width:100%}.unlinked-candidates{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.unlinked-candidate{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px;border:1px solid color-mix(in srgb,var(--muted) 22%,transparent);border-radius:8px}.unlinked-candidate-main{display:flex;flex-direction:column;gap:2px;min-width:0}.unlinked-candidate-title{font-weight:600}.unlinked-candidate-actions{display:flex;gap:6px;flex-shrink:0}.unlinked-match-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.unlinked-match-record{font-weight:600;margin-bottom:4px}.unlinked-signal-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.unlinked-signal{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px solid color-mix(in srgb,var(--muted) 15%,transparent)}.unlinked-signal-main{font-weight:600}.activity-import-textarea{width:100%;margin-top:10px;font-family:ui-monospace,monospace;font-size:13px}.activity-import-file{margin-top:10px}.activity-import-actions{display:flex;gap:8px;margin-top:10px}.activity-import-result{margin-top:12px}.activity-import-errors{margin:6px 0 0;padding-left:18px;font-size:13px;color:var(--muted)}.checkin-page{padding:12px}.checkin-back,.checkin-tip{text-align:center;margin-top:12px}.stat-legend{display:flex;align-items:center;gap:6px;margin:0 0 10px}.legend-swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.legend-flash{background:var(--accent)}.legend-normal{background:var(--muted);margin-left:8px}.gym-stat-list{display:flex;flex-direction:column;gap:14px}.gym-stat-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}.gym-stat-name{font-weight:600;font-size:14px}.grade-bars{display:flex;flex-direction:column;gap:4px}.grade-bar-row{display:grid;grid-template-columns:56px 1fr 28px;align-items:center;grid-gap:8px;gap:8px}.grade-bar-label{font-size:12px;color:var(--muted);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grade-bar-track{height:14px;background:var(--bg);border:1px solid var(--border);border-radius:999px;overflow:hidden}.grade-bar-fill{height:100%;min-width:2px;background:var(--muted);display:flex}.grade-bar-flash{height:100%;background:var(--accent)}.grade-bar-count{font-size:12px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.session-list{display:flex;flex-direction:column;gap:14px}.session-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-bottom:4px;border-bottom:1px solid var(--border);margin-bottom:2px}.session-date{font-weight:600;font-size:13px}.timeline-thumb{height:34px;object-fit:contain;border-radius:4px;border:1px solid var(--border);background:color-mix(in srgb,var(--muted) 12%,transparent)}.timeline-thumb,.timeline-thumb-spacer{flex:0 0 auto;width:56px}.timeline-more{display:flex;gap:8px;justify-content:center;margin-top:4px}.timeline-collapse{color:var(--muted)}.today-panel{border-color:var(--accent)}.today-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}.today-head h3{margin:0}.today-share-btn{flex:none;padding:4px 12px;font-size:13px;white-space:nowrap}.today-share-summary{margin:0 0 10px}.today-grades{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.today-grade-chip{font-size:12px;padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2)}.settings-page{display:flex;flex-direction:column;gap:16px}.settings-page h2{margin:0}.basic-info-grid{display:flex;flex-wrap:wrap;gap:10px 14px;margin:8px 0}.basic-info-grid .field{display:flex;flex-direction:column;gap:4px;margin-bottom:0;flex:1 1 160px;min-width:0}.basic-info-grid .field-wide{flex-basis:100%}.basic-info-grid .field>span{font-size:12px;color:var(--muted,#6b7280)}.basic-info-grid .field input{width:100%;box-sizing:border-box}.basic-info-hours{display:flex;flex-direction:column;gap:6px;margin:12px 0}.hours-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.hours-copy-btn:disabled{opacity:.4;cursor:not-allowed}.hours-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.hours-row input[type=time]{width:auto;flex:1 1;min-width:0;padding:6px 8px}.hours-day{display:inline-block;width:1.6em;flex:0 0 auto;text-align:center;font-weight:600}.hours-closed{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;margin-bottom:0;font-size:13px;white-space:nowrap}.hours-closed input[type=checkbox]{width:auto}.hours-sep{color:var(--muted,#6b7280)}.hours-row input[type=time]:disabled{opacity:.4}.cal-editor .hours-row{flex-wrap:wrap}.cal-editor .hours-row>.hint{flex:1 1 100%}.cal-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:420px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.cal-head{text-align:center;font-size:12px;font-weight:600;color:var(--muted,#6b7280);padding:2px 0}.cal-cell{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:64px;padding:4px 5px;border:1px solid var(--border,#e5e7eb);border-radius:6px;background:var(--card,#fff);font:inherit;color:inherit;text-align:left;cursor:pointer}.cal-cell.empty{border:none;background:transparent;cursor:default;min-height:0}.cal-cell.readonly{cursor:default}.cal-cell .cal-day{font-size:13px;font-weight:600}.cal-cell .cal-status{font-size:11px;color:var(--muted,#6b7280)}.cal-cell .cal-note{font-size:10px;line-height:1.2;color:var(--accent,#b45309);overflow-wrap:anywhere}.cal-cell.is-closed{background:var(--closed-bg,#fef2f2)}.cal-cell.is-closed .cal-status{color:#dc2626;font-weight:600}.cal-cell.has-override{border-color:var(--accent,#f59e0b)}.cal-cell.is-past{background:var(--past-bg,#f3f4f6);border-color:var(--border,#e5e7eb);opacity:.65}.cal-cell.is-past,.cal-cell.is-past .cal-day,.cal-cell.is-past .cal-note,.cal-cell.is-past .cal-status,.cal-cell.is-past.is-closed .cal-status{color:var(--muted,#9ca3af)}.cal-cell.is-today{border-color:var(--brand,#2563eb);background:rgba(37,99,235,.12);background:color-mix(in srgb,var(--brand,#2563eb) 12%,var(--card,#fff));box-shadow:inset 0 0 0 2px var(--brand,#2563eb);opacity:1}.cal-cell.is-today .cal-day{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:var(--brand,#2563eb);color:#fff}.cal-cell.selected{box-shadow:0 0 0 2px var(--brand,#2563eb)}.cal-sns{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.cal-sns .hint{margin:0}.cal-editor,.hold-change-panel{display:flex;flex-direction:column;gap:10px}.hold-change-panel{margin-top:16px}.hold-change-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.hold-change-scope{display:flex;align-items:center;gap:12px}.hold-change-posts-toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.hold-change-scope label{display:flex;align-items:center;gap:4px}.hold-change-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.hold-change-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--border,#e5e7eb)}.hold-change-date{font-weight:600;display:inline-flex;align-items:center;gap:6px}.hold-change-scope-label{font-size:13px;opacity:.85}.hold-change-note{font-size:13px;opacity:.7}.hold-change-tag{font-size:11px;font-weight:700;padding:1px 6px;border-radius:999px;background:#f59e0b;color:#fff}.hold-change-tag.past{background:#6b7280}.hold-change-tag.climber{background:#0ea5e9}.hold-change-item .tiny-btn{margin-left:auto}.hold-change-item .hcend-open-btn{margin-left:0}.hcend-panel{flex-basis:100%;display:flex;flex-direction:column;gap:6px;margin:6px 0 2px;padding:10px 12px;border:1px solid var(--border,#e5e7eb);border-radius:8px}.hcend-lead{margin:0}.hcend-count,.hcend-done{margin:0;font-size:14px}.hcend-done{font-weight:600;color:var(--success,#34c759)}.hcend-targets{list-style:disc;margin:0;padding-left:20px;display:flex;flex-direction:column;gap:2px;font-size:13px;word-break:break-word}.hcend-actions{display:flex;flex-wrap:wrap;gap:8px}.hcend-panel .tiny-btn{margin-left:0}.hold-change-summary{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.hold-change-summary-rows{display:flex;flex-direction:column;gap:4px}.hold-change-summary-rows p{margin:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.merge-form{display:flex;flex-direction:column;gap:14px}.merge-actions{display:flex;gap:8px}.merge-search-table{width:100%;border-collapse:collapse;font-size:13px}.merge-search-table td,.merge-search-table th{padding:6px 8px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.merge-search-table .transfer-code{display:block;max-width:180px}.merge-pager{display:flex;gap:8px;align-items:center;margin-top:8px}.climb-panel{display:flex;flex-direction:column;gap:10px}.climb-box{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.try-history{flex-basis:100%;display:flex;flex-direction:column;gap:4px;padding-top:8px;border-top:1px solid var(--border)}.try-history-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:2px 10px}.try-history-total{font-size:13px;font-weight:600;white-space:nowrap}.try-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.try-history-item{display:flex;align-items:baseline;gap:10px;font-size:13px}.try-history-date{color:var(--muted);min-width:6.5em}.try-history-result{font-weight:600}.try-history-result.sent{color:var(--accent)}.viewer-climbers{grid-column:1/-1}.viewer-climbers h3{margin:0 0 10px}.viewer-climbers ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.viewer-climbers li{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;padding:8px 4px;border-top:1px solid var(--border)}.viewer-climbers-name{font-weight:600}.viewer-climbers-flash{color:var(--accent);font-size:13px}.crosslink-btn{color:var(--accent)}.crosslink-btn:hover{color:var(--accent);opacity:.8}.crosslink-focus{border-radius:8px;outline:2px solid var(--accent);outline-offset:2px;animation:crosslink-flash 1.6s ease-out}@keyframes crosslink-flash{0%{background:color-mix(in srgb,var(--accent) 22%,transparent)}to{background:transparent}}.media-panel{grid-column:1/-1}.media-panel h3{margin:0 0 10px}.media-mine-head{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:8px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:12px;gap:12px}.media-card{margin:0;display:flex;flex-direction:column;gap:6px}.media-tile{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;background:var(--surface-2,#0002);display:block}.media-tile-empty{display:flex;align-items:center;justify-content:center;color:var(--muted)}.media-thumb-btn,.media-tile-wrap{position:relative;display:block}.media-thumb-btn{width:100%;padding:0;border:0;background:none;border-radius:8px;cursor:pointer}.media-play{left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:rgba(0,0,0,.55);font-size:18px;padding-left:3px;display:flex;align-items:center;justify-content:center}.media-duration,.media-play{position:absolute;color:#fff;pointer-events:none}.media-duration{top:4px;right:4px;padding:0 5px;border-radius:4px;background:rgba(0,0,0,.62);font-size:11px;line-height:17px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.media-caption{display:flex;flex-direction:column;gap:4px}.media-poster{font-weight:600;font-size:13px}.media-badge{align-self:flex-start;font-size:12px;padding:1px 8px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.media-badge-public{color:var(--accent);border-color:var(--accent)}.media-send-badge{white-space:nowrap}.media-send-badge-sent{color:var(--accent);border-color:var(--accent)}.media-memo{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:11px;line-height:1.35;color:var(--muted);min-height:2.7em}.media-memo-btn{display:block;width:100%;min-width:0;border:none;background:none;padding:4px 0;min-height:44px;text-align:left;color:var(--muted);cursor:pointer;overflow:hidden}.media-memo-btn:disabled{opacity:.5;cursor:not-allowed}.media-memo-btn.has-memo .media-memo{color:var(--text)}.media-memo-input{width:100%;min-width:0;min-height:44px;font-size:16px}.media-send-pick{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:8px}.media-send-choice.active{opacity:1;color:var(--accent);border-color:var(--accent)}.media-actions{display:flex;flex-wrap:wrap;gap:6px}.coach-media-link{display:inline-block;text-decoration:none;color:var(--accent,#4338ca);border-color:var(--accent,#4338ca);opacity:.85}.coach-media-link:hover{opacity:1}.coach-media-link-saved{background:color-mix(in srgb,var(--accent) 18%,transparent);opacity:1}.climb-done{font-weight:600;color:var(--accent)}.climb-flash-btn.active{border-color:var(--accent);color:var(--accent)}.climb-type-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.climb-type-btn.active{border-color:var(--accent);color:var(--accent)}.climb-attempts{display:inline-flex;align-items:center;gap:4px;font-size:13px}.climb-attempts input{width:4.5em}.climb-date-row{gap:6px}.climb-date-choices,.climb-date-row{display:flex;align-items:center;flex-wrap:wrap}.climb-date-choices{gap:8px;margin:10px 0}.climb-date-list{list-style:none;margin:8px 0;padding:0}.climb-date-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid var(--border)}.climb-date-first-actions{display:flex;align-items:center;gap:6px}.climb-date-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}.try-date-choices{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:10px 0}.try-date-choices label{display:inline-flex;align-items:center;gap:4px}.try-project-check{display:flex;align-items:center;gap:6px;margin:8px 0;color:var(--muted)}.climb-quick-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}.climb-quick-btn.climbed{border-color:var(--accent);color:var(--accent);font-weight:700}.climb-quick-btn:disabled{opacity:.6;cursor:default}.climb-quick-btn.climb-quick-compact{flex:0 0 auto;align-self:center;padding:6px 10px;font-size:13px;font-weight:600;border-radius:8px}.climb-error{color:var(--danger)}.canvas-stack{position:relative}.canvas-stack .annotation-canvas{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none;max-height:none}.canvas-stack .annotation-canvas.drawing{touch-action:none;cursor:crosshair;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.canvas-stack .annotation-canvas.viewing{pointer-events:none}.canvas-stack .annotation-text-input{position:absolute;z-index:5;margin:0;padding:0;border:1px dashed hsla(0,0%,100%,.7);border-radius:2px;background:rgba(0,0,0,.25);font-family:sans-serif;white-space:pre;overflow:hidden;resize:none;min-width:3em;min-height:1.2em;outline:none;caret-color:currentColor}.annotation-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px}.annotation-bar .tiny-btn.active{opacity:1;color:var(--text);border-color:var(--accent)}.annotation-title-input{width:160px;flex:0 1 auto;padding:6px 10px}.color-swatch{width:26px;height:26px;border-radius:50%;border:2px solid hsla(0,0%,100%,.25);padding:0}.color-swatch.active{border-color:var(--text);box-shadow:0 0 0 2px var(--accent)}.annotation-history{display:flex;flex-direction:column;gap:6px}.annotation-history-row{display:flex;align-items:center;gap:8px}.annotation-history-row .hint{flex:1 1}.staff-comment-panel{display:flex;flex-direction:column;gap:6px}.staff-comment-head{font-weight:600;font-size:14px}.staff-comment-body{margin:0;white-space:pre-wrap;word-break:break-word;line-height:1.6}.internal-comment-panel{border-left:3px solid var(--warning,#d99a00);padding-left:10px}.video-add{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:1 1;justify-content:flex-end}.video-add input{flex:1 1 220px;max-width:420px;padding:6px 10px}.video-embeds{display:flex;flex-wrap:wrap;gap:16px}.video-embed-item{display:flex;flex-direction:column;gap:6px}.video-embed-item iframe{width:min(340px,calc(100vw - 64px));height:600px;border:1px solid var(--border);border-radius:10px;background:#fff}.video-embed-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.vlink-source{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;font-size:.85em}.vlink-source,.vlink-source.is-staff{color:var(--muted)}.vlink-date{font-size:.9em;opacity:.8}.vlink-delete{white-space:nowrap}.vlink-form{flex-basis:100%;display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--border)}.vlink-label{font-size:.9em;font-weight:600}.vlink-row{display:flex;gap:8px;align-items:center}.vlink-input{flex:1 1 auto;min-width:0;padding:8px;border:1px solid var(--border);border-radius:8px;box-sizing:border-box;color:var(--text);background:var(--panel-2);font-size:16px}.vlink-row .btn{white-space:nowrap}.vlink-error{flex-basis:100%}.video-url-list{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.video-url-item{display:flex;align-items:center;gap:6px;font-size:12px}.video-url-item a{flex:1 1;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.tag-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:rgba(26,29,36,.6);font-size:12px;color:var(--text)}.tag-chip-remove{border:none;background:none;color:var(--muted);font-size:14px;line-height:1;padding:0;cursor:pointer}.tag-chip-remove:hover{color:var(--text)}.video-url-row{display:flex;align-items:center;gap:6px}.video-url-row input{flex:1 1;min-width:0}.canvas-tools{position:fixed;right:10px;bottom:calc(10px + env(safe-area-inset-bottom, 0px));display:flex;gap:8px;z-index:20;padding:6px;border:1px solid var(--border);border-radius:999px;background:rgba(15,17,21,.75);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.canvas-tool{position:relative;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:rgba(26,29,36,.85);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.35)}.canvas-tool.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent)}.canvas-tool:disabled{opacity:.35;cursor:not-allowed}.canvas-tool-zoom-level{position:absolute;top:-26px;left:50%;transform:translateX(-50%);font-size:12px;font-weight:700;line-height:1;color:var(--accent);background:rgba(15,17,21,.85);border:1px solid var(--border);border-radius:999px;padding:4px 8px;pointer-events:none}.canvas-tools.hidden{display:none}.canvas-tool-save{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 30%,rgba(26,29,36,.85))}.zoom-minimap{position:fixed;left:10px;bottom:calc(10px + env(safe-area-inset-bottom, 0px));width:min(160px,34vw);z-index:20;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:rgba(15,17,21,.75);box-shadow:0 2px 10px rgba(0,0,0,.4);touch-action:none;cursor:pointer;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.zoom-minimap img{display:block;width:100%;height:auto;pointer-events:none}.zoom-minimap-rect{position:absolute;border:2px solid var(--accent);border-radius:4px;background:hsla(0,0%,100%,.15);pointer-events:none}.canvas-wrap.fullscreen{position:fixed;inset:0;height:100dvh;z-index:40;padding:0;border:none;border-radius:0;background:#000;align-items:center}.canvas-wrap.fullscreen canvas:not(.annotation-canvas){width:auto;max-width:100vw;max-height:100vh;max-height:100dvh;border-radius:0}.canvas-wrap.fullscreen .canvas-tools{flex-direction:column;align-items:flex-end}.annotation-bar-float{position:fixed;left:12px;right:auto;bottom:calc(12px + env(safe-area-inset-bottom, 0px));width:max-content;max-width:min(88vw,420px);padding:8px 10px;gap:6px;z-index:45}.annotation-drag-handle{display:inline-flex;align-items:center;justify-content:center;align-self:stretch;min-width:22px;margin-right:2px;color:var(--muted,#9aa4b2);font-size:18px;line-height:1;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.annotation-drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.annotation-bar-float .annotation-title-input{width:110px}.sidebar .video-embed-item{flex:1 1 100%}.sidebar .video-embed-item iframe{width:100%}.print-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 auto 16px;max-width:210mm}.print-toolbar .print-title-input{width:auto;flex:1 1 12em;max-width:20em;padding:6px 10px}.print-page{width:210mm;min-height:296mm;margin:0 auto 16px;padding:10mm;background:#fff;color:#111;display:flex;flex-direction:column;gap:5mm;box-shadow:0 2px 12px rgba(0,0,0,.45)}.print-head{display:flex;align-items:center;gap:6mm;border-bottom:.6mm solid #111;padding-bottom:3mm}.print-head-main{flex:1 1;min-width:0}.print-title{margin:0;font-size:26px;line-height:1.25}.print-head-sub{display:flex;flex-wrap:wrap;align-items:center;gap:4mm;margin-top:2mm;font-size:16px;font-weight:600}.print-symbol{justify-content:center;min-width:16mm;padding:1.5mm 3mm;border:.8mm solid #111;border-radius:3mm;font-size:24px;white-space:nowrap}.print-grade,.print-symbol{display:inline-flex;align-items:center;font-weight:800}.print-grade{padding:.5mm 2.5mm;border:.5mm solid #111;border-radius:2mm}.print-tape{display:inline-flex;align-items:center;gap:1.5mm}.print-tape-chip{width:4.5mm;height:4.5mm;border-radius:50%;border:.4mm solid #111;display:inline-block}.print-gym-name{font-size:13px;color:#444;white-space:nowrap;align-self:flex-start}.print-logo{height:12mm;width:auto;flex:0 0 auto}.print-photo{flex:1 1;min-height:0;display:flex;align-items:center;justify-content:center}.print-photo canvas{max-width:100%;max-height:200mm;width:auto;height:auto}.print-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:6mm;border-top:.3mm solid #999;padding-top:3mm}.print-meta{display:flex;flex-direction:column;gap:1.5mm;font-size:13px}.print-staff-comment{white-space:pre-wrap;word-break:break-word}.print-legend{display:flex;flex-wrap:wrap;gap:3mm;margin-top:1mm}.print-legend-item{display:inline-flex;align-items:center;gap:1.5mm;font-size:12px}.print-legend-badge{display:inline-flex;align-items:center;justify-content:center;min-width:6mm;height:6mm;padding:0 1mm;border-radius:3mm;border:.6mm solid #111;background:#fff;color:#111;font-size:11px;font-weight:800}.print-qr{display:flex;flex-direction:column;align-items:center}.print-qr-svg{width:26mm;height:26mm}.print-sheet-page{min-height:auto}.print-sheet-head{display:flex;align-items:center;gap:3mm;border-bottom:.6mm solid #111;padding-bottom:2mm;font-size:15px;font-weight:700}.print-sheet-head .print-sheet-count{margin-left:auto}.print-sheet-head .print-logo{height:9mm}.print-sheet-list-qr .print-qr-svg{display:block;width:16mm;height:16mm}.print-sheet{display:table;table-layout:fixed;border-spacing:4mm;margin:-4mm;width:calc(100% + 8mm)}.print-sheet-row{display:table-row}.print-cell,.print-sheet-row{break-inside:avoid;page-break-inside:avoid}.print-cell{display:table-cell;vertical-align:top;border:.4mm solid #999;border-radius:2mm;padding:3mm}.print-cell-empty{border:none;padding:0}.print-cell-photo{text-align:center;margin-bottom:2mm}.print-cell-photo canvas{max-width:100%;max-height:88mm;width:auto;height:auto;display:inline-block}.print-cell-body{display:flex;align-items:flex-start;gap:2mm}.print-cell-body .print-cell-info{flex:1 1;min-width:0}.print-cell-qr .print-qr-svg{width:15mm;height:15mm}.print-cell-info{display:flex;flex-direction:column;gap:1mm}.print-cell-title{display:flex;flex-wrap:wrap;align-items:center;gap:2.5mm;font-size:14px;font-weight:700}.print-cell-title .print-symbol{min-width:9mm;padding:.5mm 2mm;font-size:15px;border-width:.5mm}.print-cell-sub{font-size:12px;color:#333}.grade-table{width:100%;border-collapse:collapse;margin-top:16px;color:#111}.grade-table td,.grade-table th{border:1px solid #111;padding:10px 14px;font-size:18px}.grade-table th{background:#f3f4f6;font-weight:700;text-align:center;font-size:15px}.grade-table-name{font-weight:700}.grade-table-num{text-align:center;width:1%;white-space:nowrap}.grade-table-color-col{width:72px;text-align:center}.grade-table-swatch{display:inline-block;width:44px;height:24px;border-radius:4px;border:1px solid rgba(0,0,0,.3);vertical-align:middle}.grade-table-note{margin-top:10px;font-size:12px;color:#555}.chart-root{color:#111}.chart-block{margin-top:6mm}.chart-cat{display:flex;align-items:center;gap:8px;margin:0 0 2mm;font-size:15px;font-weight:800;color:#111}.chart-cat-count{font-size:12px;font-weight:700;color:#fff;background:#374151;border-radius:999px;padding:1px 8px}.chart-scroll{overflow-x:auto}.chart-matrix{border-collapse:collapse;color:#111}.chart-matrix td,.chart-matrix th{border:1px solid #cbd1d9;text-align:center;vertical-align:middle}.chart-matrix thead th{background:#f1f3f5;font-size:12px;font-weight:700;padding:4px 6px}.chart-corner{text-align:left}.chart-grade-head{min-width:34px}.chart-grade-swatch{display:block;width:16px;height:10px;margin:0 auto 2px;border-radius:3px;border:1px solid rgba(0,0,0,.25)}.chart-grade-name{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chart-area{min-width:4em;padding:4px 8px;font-size:12px;font-weight:700;white-space:nowrap;background:#fafbfc}.chart-symbol{padding:3px 8px;font-size:11px;white-space:nowrap;background:#fcfcfd}.chart-symbol-badge{display:inline-block;min-width:2.4em;padding:1px 6px;border:1px solid #9aa2ac;border-radius:5px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#1f2937;background:#fff}.chart-symbol-none{color:#9aa2ac;font-size:10px}.chart-cell{min-width:30px;padding:3px 4px}.chart-cell.is-empty:after{content:"·";color:#c4c9d0}.chart-dot-btn{display:inline-flex;flex-direction:column;align-items:center;gap:1px;margin:1px;padding:1px;border:0;background:transparent;cursor:pointer;vertical-align:middle}.chart-dot{box-sizing:border-box;display:block;width:15px;height:15px;border-radius:50%;border:1px solid rgba(0,0,0,.3);transition:transform .08s ease}.chart-dot-btn:hover .chart-dot{transform:scale(1.18)}.chart-dot-btn.is-logged .chart-dot{box-shadow:0 0 0 1.5px #fff,0 0 0 2px #16a34a}.chart-dot-btn.is-done .chart-dot{box-shadow:0 0 0 1.5px #fff,0 0 0 3px #111}.chart-dot-date{font-size:8px;line-height:1;font-weight:700;color:#111;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chart-dot-btn:focus-visible{outline:2px solid #2563eb;outline-offset:1px;border-radius:4px}.chart-note{margin-top:4mm;font-size:11px;line-height:1.6;color:#555}.chart-transfer-note{display:flex;flex-wrap:wrap;gap:4px 12px;margin:-8px auto 16px;max-width:210mm;font-size:12px;line-height:1.6;color:var(--muted)}@media screen{.chart-root .chart-transfer-note,.chart-root .print-toolbar,.chart-root.print-root{max-width:none}.chart-root .print-page{width:auto;max-width:none;min-height:0;margin:0;padding:0;background:transparent;box-shadow:none;gap:14px}.chart-root .print-sheet-head{align-items:center;padding:10px 14px}.chart-root .chart-block,.chart-root .print-sheet-head{background:#fff;border:1px solid #e5e7eb;border-radius:12px}.chart-root .chart-block{margin-top:0;padding:12px 14px 14px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.chart-root .chart-cat{margin-bottom:8px;font-size:16px}.chart-root .chart-scroll{border:1px solid #e5e7eb;border-radius:8px}.chart-root .chart-matrix{font-size:13px}.chart-root .chart-matrix td,.chart-root .chart-matrix th{border-color:#eceef1}.chart-root .chart-matrix thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2;font-size:12px;padding:6px 8px}.chart-root .chart-grade-head{min-width:46px}.chart-root .chart-grade-swatch{width:22px;height:12px}.chart-root .chart-area,.chart-root .chart-symbol{font-size:13px}.chart-root .chart-cell{min-width:42px;padding:5px 6px}.chart-root .chart-dot-btn{margin:2px}.chart-root .chart-dot{width:20px;height:20px}.chart-root .chart-dot-date{font-size:9px}.chart-root .chart-matrix tbody tr:nth-child(2n) .chart-cell{background:#fafbfc}.chart-root .chart-note{margin-top:2px;padding:0 2px;font-size:12px}}@media print{@page{size:A4 portrait;margin:8mm}.app-header,.chart-transfer-note,.print-toolbar{display:none!important}body{background:#fff}.app-main{padding:0;max-width:none}.print-page{width:auto;min-height:auto;margin:0;padding:0;box-shadow:none;page-break-after:always;break-after:page;display:block}.print-head,.print-sheet-head{margin-bottom:4mm}.print-foot{margin-top:4mm}.print-page:last-child{page-break-after:auto;break-after:auto}.print-photo canvas{max-height:195mm}.grade-table tr{page-break-inside:avoid;break-inside:avoid}.print-root *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.chart-scroll{overflow:visible}.chart-block{margin-top:4mm;break-inside:avoid;page-break-inside:avoid}.chart-cat{font-size:12px}.chart-matrix tr{break-inside:avoid;page-break-inside:avoid}.chart-matrix thead th{font-size:9px;padding:2px 3px}.chart-area,.chart-symbol{font-size:9px;padding:2px 4px}.chart-symbol-badge{min-width:0;padding:0 3px;border-radius:3px}.chart-cell{min-width:24px;padding:1.5px 2px}.chart-dot{width:12px;height:12px}.chart-dot-date{font-size:7px}.chart-note{margin-top:3mm;font-size:9px}}.card{position:relative}.card-select{position:absolute;top:8px;left:8px;z-index:3;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:rgba(15,17,21,.72);border:1px solid var(--border);cursor:pointer}.card-select input{width:20px;height:20px;cursor:pointer;accent-color:var(--accent)}.card-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.problem-table-check{width:32px;text-align:center}.problem-table-check input{width:18px;height:18px;accent-color:var(--accent)}.problem-table-selected{background:color-mix(in srgb,var(--accent) 12%,transparent)}.card-viewed{box-shadow:0 0 0 2px color-mix(in srgb,#f59e0b 50%,transparent)}.problem-table-viewed{background:color-mix(in srgb,#f59e0b 12%,transparent)}.social-actionbar{position:-webkit-sticky;position:sticky;bottom:12px;z-index:20;margin-top:20px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px;border-radius:12px;background:var(--panel-2);border:1px solid var(--border);box-shadow:0 8px 24px rgba(0,0,0,.4)}.social-actionbar-count{font-weight:700;margin-right:auto}.social-modal{max-width:900px}.social-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.social-modal-head h3{margin:0}.social-modal-close{padding:4px 10px}.social-modal-body{display:flex;gap:20px;flex-wrap:wrap}.social-modal-controls{flex:1 1 300px;min-width:260px;display:flex;flex-direction:column;gap:16px}.social-field{display:flex;flex-direction:column;gap:8px}.social-field>label{font-size:13px;color:var(--muted);font-weight:600}.social-field input[type=date]{width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--text);font-size:15px}.social-format-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.social-format{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--panel-2);cursor:pointer;text-align:left}.social-format.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.social-format-label{font-weight:700}.social-format-note{font-size:12px;color:var(--muted)}.social-title-input{padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font-size:15px}.social-selected-note{margin:0;color:var(--muted);font-size:14px}.session-share-toggles{display:flex;flex-direction:column;gap:8px}.session-share-toggle{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.session-share-toggle input{width:18px;height:18px;accent-color:var(--accent)}.social-error{margin:0;color:#f87171;font-size:14px}.social-download{margin-top:auto;padding:12px 16px;font-size:16px;font-weight:700}.social-preview-wrap{flex:1 1 300px;min-width:240px;display:flex;flex-direction:column;align-items:center;gap:8px}.social-preview-box{position:relative;width:100%;min-height:200px;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#1a1d24 0 25%,#15181f 0 50%) 50% /24px 24px;border-radius:12px;border:1px solid var(--border);padding:12px}.social-preview-canvas{max-width:100%;max-height:62vh;border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.5)}.social-preview-loading{position:absolute;color:var(--muted);font-size:14px}.social-preview-caption{margin:0;color:var(--muted);font-size:12px}@media (max-width:1200px){.social-modal-body{flex-direction:column;flex-wrap:nowrap}.social-modal-controls,.social-preview-wrap{flex:1 1 auto;width:100%;min-width:0}}.topo-editor{display:flex;flex-direction:column;gap:16px}.topo-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:8px;gap:8px;margin-top:12px}.topo-image-cell{position:relative;padding:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface);cursor:pointer}.topo-image-cell img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}.topo-image-label{position:absolute;left:0;right:0;bottom:0;padding:2px 6px;font-size:12px;color:#fff;background:rgba(0,0,0,.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topo-head-actions{display:flex;gap:8px;flex-wrap:wrap}.topo-compare{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin:8px 0 12px}@media (max-width:640px){.topo-compare{grid-template-columns:1fr}}.topo-compare-pane{margin:0;display:flex;flex-direction:column;gap:6px}.topo-compare-pane figcaption{font-size:13px;font-weight:700;color:var(--muted)}.topo-zoomable{padding:0;border:1px solid var(--border);border-radius:8px;background:#fff;cursor:zoom-in;overflow:hidden}.topo-zoomable img{display:block;width:100%;height:auto}.topo-compare-placeholder{display:flex;align-items:center;justify-content:center;min-height:200px;padding:16px;border:1px dashed var(--border);border-radius:8px;color:var(--muted);text-align:center;font-size:14px}.topo-active-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.topo-result-name{font-weight:700}.topo-topo-stage{position:relative;display:flex;overflow:hidden;border-radius:8px}.topo-topo-stage>.topo-zoomable{flex:1 1 auto;min-width:0}.topo-topo-stage.is-placing>.topo-zoomable{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent);cursor:crosshair}.topo-wall-pin{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;min-height:44px;padding:4px 10px;border:2px solid #fff;border-radius:999px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap;cursor:-webkit-grab;cursor:grab;touch-action:none}.topo-wall-pin.is-dragging{cursor:-webkit-grabbing;cursor:grabbing;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent)}.topo-wall-pin:before{content:"✕ ";opacity:.8}.topo-wall-list{flex:1 1 100%;list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.topo-wall-list li{display:flex;align-items:center;gap:6px;padding:2px 6px 2px 10px;border:1px solid var(--border);border-radius:999px;font-size:13px}.topo-wall-list-name{font-weight:600}.topo-wall-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.topo-wall-row>label{font-size:13px;color:var(--muted);white-space:nowrap}.topo-wall-row>select{width:auto;min-width:180px;flex:1 1 180px;max-width:320px;min-height:44px}.topo-wall-msg,.topo-wall-row>.hint{flex:1 1 100%;margin:0}.topo-wall-msg{font-size:13px}.topo-wall-msg.is-ok{color:var(--accent)}.topo-wall-msg.is-error{color:var(--danger,#f87171);font-weight:600}.topo-problem-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.topo-problem-row>label{font-size:13px;color:var(--muted);white-space:nowrap}.topo-problem-row>select{width:auto;min-width:180px;flex:1 1 180px;max-width:320px;min-height:44px}.topo-problem-row>.hint,.topo-problem-row>.topo-wall-msg{flex:1 1 100%;margin:0}.topo-problem-preview{flex:1 1 100%;max-height:50vh;overflow:hidden}.topo-problem-preview img{max-height:50vh;object-fit:contain}.topo-problem-legend{flex:1 1 100%;list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px 12px;font-size:13px;color:var(--muted)}.topo-problem-legend-head{font-weight:700;color:var(--fg)}.topo-history{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.topo-history-item{padding:0;width:96px;height:128px;border:2px solid var(--border);border-radius:8px;background:#fff;cursor:pointer;overflow:hidden}.topo-history-item.is-active{border-color:var(--accent,#2563eb)}.topo-history-item img{display:block;width:100%;height:100%;object-fit:contain}.topo-lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.85);cursor:zoom-out}.topo-lightbox img{max-width:100%;max-height:100%;object-fit:contain;background:#fff;border-radius:4px}.topo-lightbox-close{position:fixed;top:12px;right:16px;width:40px;height:40px;border:none;border-radius:999px;background:hsla(0,0%,100%,.9);font-size:18px;cursor:pointer}.topo-print-img{display:block;width:100%;height:auto;filter:brightness(.6) contrast(6)}.topo-print-img.is-problem{filter:contrast(1.35)}.topo-print-legend{list-style:none;margin:2mm 0 3mm;padding:0;display:flex;flex-wrap:wrap;gap:1mm 6mm;color:#111;font-size:12px}.topo-print-legend-head{font-weight:700}.topo-print-form{display:flex;flex-wrap:wrap;gap:4mm;border-top:.6mm solid #111;padding-top:3mm;color:#111}.topo-print-field{display:flex;align-items:flex-end;gap:2mm;flex:1 1 60mm;min-width:50mm}.topo-print-label{font-weight:700;font-size:13px;white-space:nowrap}.topo-print-write{flex:1 1;border-bottom:.4mm solid #111;height:8mm}.topo-print-stamps{flex:1 1 100%}.stamp-grid{display:flex;flex-wrap:wrap;gap:2mm;margin-top:2mm}.stamp-cell{width:16mm;height:16mm;border:.4mm solid #111;border-radius:1mm}.gym-info-page .admin-section-head h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gym-info-logo{width:32px;height:32px;object-fit:contain;border-radius:6px}.gym-info-row{display:flex;gap:12px;align-items:baseline}.gym-info-label{flex:0 0 auto;min-width:5em;font-weight:600;color:#555;font-size:.9rem}.gym-info-value{flex:1 1 auto;word-break:break-word}.gym-info-link{margin-left:8px;white-space:nowrap}.gym-info-hours{display:flex;flex-direction:column;gap:8px}.gym-info-hours-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.gym-info-hours-item{display:flex;gap:12px;align-items:baseline}.gym-info-weekday{flex:0 0 auto;min-width:2em;font-weight:600;color:#555}.gym-info-hours-value{flex:1 1 auto}.gym-info-links{display:flex;flex-direction:column;gap:8px}.gym-info-link-row,.gym-info-nav{display:flex;flex-wrap:wrap;gap:8px}.gym-info-nav{margin-top:8px}.checkbox-row{display:flex;align-items:flex-start;gap:8px;font-size:13px;cursor:pointer;margin:4px 0 10px}.checkbox-row input[type=checkbox]{width:auto;padding:0;margin:2px 0 0;flex:0 0 auto}.media-poster-link,.viewer-climbers-link{color:var(--accent,#2563eb);text-decoration:none}.media-poster-link:hover,.viewer-climbers-link:hover{text-decoration:underline}.public-profile{padding:16px}.public-profile-card{background:var(--card,#fff);border:1px solid var(--border,#e5e7eb);border-radius:14px;padding:20px}.public-profile-head{display:flex;align-items:center;gap:14px}.public-profile-avatar{width:56px;height:56px;border-radius:50%;background:var(--accent,#2563eb);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;flex-shrink:0;text-transform:uppercase}.public-profile-id h1{margin:0;font-size:20px}.public-profile-stats{display:flex;flex-wrap:wrap;gap:10px 20px;margin:18px 0 0}.public-profile-stat{display:flex;flex-direction:column;gap:2px}.public-profile-stat dt{font-size:12px;color:var(--muted,#6b7280)}.public-profile-stat dd{margin:0;font-size:15px;font-weight:600}.public-profile-shoes{margin-top:22px}.public-profile-shoes h2{font-size:15px;margin:0 0 10px}.public-shoe-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.public-shoe{display:flex;gap:12px;align-items:flex-start}.public-shoe-photo{width:84px;height:84px;object-fit:cover;border-radius:10px;border:1px solid var(--border,#e5e7eb);flex-shrink:0;background:var(--bg-subtle,#f3f4f6)}.public-shoe-photo-empty{display:flex;align-items:center;justify-content:center;font-size:30px}.public-shoe-body{min-width:0}.public-shoe-name{margin:0;font-weight:600;font-size:15px}.public-shoe-period{margin:2px 0 0;font-size:13px;color:var(--muted,#6b7280)}.public-shoe-memo{margin:4px 0 0;font-size:13px;white-space:pre-wrap}.coach-advice{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;color:var(--text);font-size:14px;line-height:1.9;overflow-wrap:anywhere}.coach-advice,.coach-advice-video{margin-top:8px}.coach-advice-video video{display:block;width:100%;max-height:60vh;border-radius:12px;border:1px solid var(--border);background:#000}.coach-history-card{border:1px solid var(--border);padding:12px;min-width:0}.coach-history-card.is-latest{border:2px solid var(--accent)}.coach-history-kind{font-size:12px;padding:1px 6px;border-radius:999px;border:1px solid var(--accent);color:var(--accent);white-space:nowrap}.coach-history-filter{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 10px}.coach-history-filter .tiny-btn.is-on{opacity:1;border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.coach-history-delete{margin-left:auto;border:none;background:none;padding:2px 4px;font-size:11px;color:var(--muted);opacity:.55;text-decoration:underline}.coach-history-delete:focus-visible,.coach-history-delete:hover{color:var(--danger);opacity:1}.coach-history-row{display:flex;gap:10px;align-items:flex-start}.coach-history-info{flex:1 1 auto;min-width:0}.coach-history-thumb{height:54px;object-fit:contain;border-radius:4px;border:1px solid var(--border);background:color-mix(in srgb,var(--muted) 12%,transparent)}.coach-history-thumb,.coach-history-thumb-spacer{flex:0 0 auto;width:72px}.coach-frames-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.coach-frames{display:flex;gap:8px;overflow-x:auto;max-width:100%;padding-bottom:6px;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.coach-frame{flex:0 0 auto;width:120px;margin:0}.coach-frame img{display:block;width:100%;height:auto;border-radius:6px;border:1px solid var(--border);background:var(--panel)}.coach-frame figcaption{margin-top:2px;font-size:11px;color:var(--muted);text-align:center}.coach-page>p.hint,.coach-page>p.login-error{max-width:780px}.coach-toggle{border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:8px 14px;border-radius:8px}.coach-toggle:hover:not(:disabled){border-color:var(--muted)}.coach-toggle.is-on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.coach-toggle:disabled{opacity:.5;cursor:not-allowed}.coach-submit{border:1px solid var(--accent);background:var(--accent);color:#fff;font-weight:600;padding:10px 16px;border-radius:8px}.coach-submit:disabled{opacity:.45;cursor:not-allowed}.coach-error{border:1px solid var(--danger);border-radius:10px;padding:10px 12px;background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--text)}.coach-error p{margin:6px 0 0;font-size:13px;overflow-wrap:anywhere}.coach-video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));grid-gap:8px;gap:8px;max-height:340px;overflow-y:auto}.coach-video-item{display:grid;grid-gap:4px;gap:4px;padding:4px;text-align:left;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--text)}.coach-video-item:hover:not(:disabled){border-color:var(--muted)}.coach-video-item img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:4px;background:#000;opacity:.75}.coach-video-item.is-on{border:2px solid var(--accent);padding:3px;background:color-mix(in srgb,var(--accent) 18%,var(--panel-2));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 28%,transparent)}.coach-video-item.is-on img{opacity:1}.coach-video-noimg{display:grid;place-items:center;aspect-ratio:1/1;background:var(--panel);border-radius:4px;font-size:20px}.coach-video-name{font-size:11px;line-height:1.3}.coach-video-meta{font-size:10px;color:var(--muted)}.coach-video-item.is-on .coach-video-meta{color:var(--text)}.coach-video-check{font-size:10px;font-weight:700;color:#fff;background:var(--accent);border-radius:4px;padding:1px 4px;justify-self:start}.coach-advice-layout{display:grid;grid-gap:14px;gap:14px}@media (min-width:900px){.coach-advice-layout.has-media{grid-template-columns:minmax(280px,42%) 1fr;align-items:start}.coach-advice-media{position:-webkit-sticky;position:sticky;top:12px}.coach-advice-media .coach-advice-video video{max-height:72vh}}.coach-advice-body{min-width:0}.coach-advice-body .coach-advice{margin-top:0}.coach-history-actions{display:flex;align-items:center;gap:12px;margin-top:6px}.coach-history-open{border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:6px 14px;border-radius:8px}.coach-history-open:hover{border-color:var(--muted)}.coach-history-problem-link{color:var(--accent);text-decoration:underline;text-underline-offset:3px;padding:9px 0}.coach-history-problem-link:hover{opacity:.85}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0 0 10px;white-space:pre-wrap}.markdown h4,.markdown h5{margin:16px 0 6px;line-height:1.5}.markdown h4{font-size:15px}.markdown h5{font-size:14px;color:var(--muted)}.markdown ol,.markdown ul{margin:0 0 10px;padding-left:1.4em}.markdown li{margin:0 0 4px}.markdown li>*{white-space:pre-wrap}.markdown code{padding:1px 4px;border-radius:4px;background:var(--panel);border:1px solid var(--border);font-size:.92em}.markdown blockquote{margin:0 0 10px;padding:2px 0 2px 10px;border-left:3px solid var(--border);color:var(--muted)}.markdown hr{border:none;border-top:1px solid var(--border);margin:12px 0}.coach-advice-video video{border-radius:12px 12px 0 0;border-bottom:none}.coach-video-bar{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--border);border-radius:0 0 12px 12px;background:var(--panel-2)}.coach-video-bar input[type=range]{flex:1 1;min-width:60px}.coach-video-play{flex:0 0 auto;min-width:36px;padding:4px 6px;border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--text);font-size:14px;line-height:1.4}.coach-video-play:hover{border-color:var(--muted)}.coach-video-time{flex:0 0 auto;font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.coach-video-rate{flex:0 0 auto;width:auto;padding:3px 4px;border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--text);font-size:12px;line-height:1.4}.coach-video-rate.is-slow{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel))}.coach-loop-note{display:flex;align-items:center;gap:8px;margin-top:6px;padding:4px 8px;border:1px solid var(--accent);border-radius:8px;background:color-mix(in srgb,var(--accent) 14%,transparent);font-size:12px;color:var(--text)}.coach-loop-note button{margin-left:auto;padding:2px 8px;border:1px solid var(--border);border-radius:6px;background:var(--panel);color:var(--text);font-size:12px}.coach-prompt-text{margin:0;max-height:60vh;overflow:auto;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--muted);font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-overflow-scrolling:touch}.md-time{display:inline;padding:1px 5px;border:1px solid var(--accent);border-radius:6px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text);font:inherit;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer}.md-time:focus-visible,.md-time:hover{background:color-mix(in srgb,var(--accent) 26%,transparent)}.md-time.is-on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.md-frame{display:inline;padding:1px 5px;border:1px solid var(--accent);border-radius:6px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text);font:inherit;white-space:nowrap;cursor:pointer}.md-frame:focus-visible,.md-frame:hover{background:color-mix(in srgb,var(--accent) 26%,transparent)}.md-frame.is-on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.coach-frame-focus{margin:8px 0 0}.coach-frame-focus img{display:block;width:100%;max-height:60vh;object-fit:contain;background:#000}.coach-frame-focus img,.coach-frame-focus-missing{border-radius:12px 12px 0 0;border:1px solid var(--border);border-bottom:none}.coach-frame-focus-missing{margin:0;padding:16px 12px;background:var(--panel-2);text-align:center}.coach-frame-focus-bar{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--border);border-radius:0 0 12px 12px;background:var(--panel-2)}.coach-frame-focus-bar button{flex:0 0 auto;min-width:36px;min-height:32px;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:6px;padding:4px 10px;font-size:14px;line-height:1.4}.coach-frame-focus-bar button:hover:not(:disabled){border-color:var(--muted)}.coach-frame-focus-bar button:disabled{opacity:.4}.coach-frame-focus-label{font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.coach-frame-focus-close{margin-left:auto;font-size:12px}@media (min-width:900px){.coach-advice-media .coach-frame-focus img{max-height:72vh}}.coach-frame-btn{display:block;padding:0;border:none;background:none;color:inherit;font:inherit;cursor:pointer;text-align:center}.coach-frame-btn>span{display:block;margin-top:2px;font-size:11px;color:var(--muted)}.coach-frame-btn:focus-visible img,.coach-frame-btn:hover img{border-color:var(--accent)}.coach-prompt-subhead{margin:12px 0 6px;font-size:13px;color:var(--muted)}.processing-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(15,23,42,.72);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:#fff;cursor:wait;-webkit-user-select:none;-moz-user-select:none;user-select:none;overscroll-behavior:contain}.processing-overlay-card{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:320px;text-align:center}.processing-overlay-title{margin:0;font-size:17px;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.5)}.processing-overlay-progress{margin:0;font-size:14px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.9}.processing-overlay-detail{margin:0;font-size:13px;line-height:1.6;opacity:.9}.processing-overlay-cancel{margin-top:4px;min-height:44px;padding:0 20px;border-radius:999px;border:1px solid hsla(0,0%,100%,.6);background:transparent;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.show-more{display:flex;gap:8px;justify-content:center;margin-top:10px}.show-more-collapse{color:var(--muted)}.media-lightbox{z-index:1200;flex-direction:column;gap:10px;padding:12px;background:rgba(0,0,0,.9)}.media-lightbox-img{max-width:100%;max-height:82vh;max-height:82dvh;object-fit:contain;border-radius:6px}.media-lightbox-close{position:absolute;top:max(10px,env(safe-area-inset-top));right:10px;width:40px;height:40px;padding:0;border-radius:999px;border:1px solid hsla(0,0%,100%,.35);background:rgba(0,0,0,.55);color:#fff;font-size:18px;line-height:1;cursor:pointer}.media-lightbox-caption,.media-lightbox-error,.media-lightbox-hint{margin:0;color:hsla(0,0%,100%,.85);text-align:center}.media-lightbox-caption{font-size:13px}.media-lightbox-hint{font-size:12px;opacity:.7}.grade-photos{margin:18px auto 0;max-width:210mm;padding:0 4px}.grade-photos-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.grade-photos-title{margin:0;font-size:15px;flex:1 1 auto;min-width:0}.grade-photos-login{font-size:12px;color:var(--muted);text-decoration:underline}.grade-photos-empty,.grade-photos-note{margin:6px 0 0;font-size:12px;color:var(--muted)}.grade-photos-error{margin:8px 0 0;padding:8px 10px;border:1px solid var(--danger,#dc2626);border-radius:8px;background:color-mix(in srgb,var(--danger,#dc2626) 10%,transparent);font-size:13px}.grade-photos-grid{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:10px;gap:10px}.grade-photo-card{border:1px solid var(--border);border-radius:8px;background:var(--panel);overflow:hidden}.grade-photo-btn{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}.grade-photo-img{display:block;width:100%;height:160px;object-fit:contain;background:color-mix(in srgb,var(--muted) 12%,transparent)}.grade-photo-foot{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:11px;color:var(--muted)}.grade-photo-date{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grade-photo-delete{flex:none;border:0;min-height:44px;padding:0 8px;background:none;color:var(--muted);font-size:11px;text-decoration:underline;cursor:pointer}@media print{.grade-photos{display:none!important}}.fsim-badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;background:#fde68a;color:#92400e;vertical-align:middle;white-space:nowrap}.fsim-picker{display:grid;grid-gap:12px;gap:12px;max-width:560px}.fsim-error{margin:12px 0;padding:10px 12px;border:1px solid var(--danger,#ef4444);border-radius:10px;background:color-mix(in srgb,var(--danger,#ef4444) 10%,var(--panel));color:var(--text)}.fsim-layout{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px;margin-top:16px}@media (min-width:820px){.fsim-layout{grid-template-columns:1.4fr 1fr;align-items:start}}.fsim-canvas-panel canvas{max-width:100%;max-height:70vh;width:auto;height:auto}.fsim-brush{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px}.fsim-brush-label{font-size:12px;color:var(--muted);margin-right:4px}.fsim-brush-btn.is-on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--panel));color:var(--text);font-weight:700}.fsim-canvas-hint{margin:0 0 8px}.fsim-placed{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;font-size:12px}.fsim-placed li{display:flex;gap:6px;padding:3px 8px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2)}.fsim-placed-hold{color:var(--muted)}.fsim-inputs{display:grid;grid-gap:10px;gap:10px}.fsim-inputs h3{margin:4px 0 0;font-size:14px}.fsim-readout{display:inline-block;margin-top:2px;font-weight:700}.fsim-note{margin:-4px 0 4px}.fsim-contacts{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.fsim-contacts>li{padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}.fsim-contact-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}.fsim-remove{margin-left:auto}.fsim-contact-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.fsim-contact-row select{width:auto;flex:1 1 auto;min-width:140px}.fsim-reaching{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.fsim-reaching input{width:auto}.fsim-run{margin-top:6px;min-height:44px}.fsim-result{margin-top:16px}.fsim-hands{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:10px;gap:10px;margin-bottom:12px}.fsim-hand{padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}.fsim-hand.is-reaching{opacity:.65}.fsim-hand-limb{font-size:12px;color:var(--muted)}.fsim-hand-main{font-size:26px;font-weight:800;line-height:1.2}.fsim-hand-main small{font-size:14px;font-weight:600}.fsim-hand-sub{font-size:12px;color:var(--muted)}.fsim-metrics{list-style:none;margin:0;padding:0;display:grid;grid-gap:4px;gap:4px}.fsim-metrics li{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0;border-bottom:1px dashed var(--border);font-size:13px}.fsim-metrics li span{color:var(--muted);flex:1 1 auto}.fsim-timings{margin:8px 0 0;padding:6px 8px;border:1px dashed var(--border);border-radius:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.6}.fsim-safety.is-warning{color:#f59e0b}.fsim-safety.is-over{color:var(--danger,#ef4444)}.fsim-warnings{margin:12px 0 0;padding-left:18px;font-size:13px}.fsim-warnings li{margin:4px 0}.fsim-alts{list-style:none;margin:0;padding:0;display:grid;grid-gap:4px;gap:4px}.fsim-alts li{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding:6px 0;border-bottom:1px dashed var(--border);font-size:13px}.fsim-alts li span{flex:1 1 auto}.fsim-alts b.is-better{color:#22c55e}.fsim-alts b.is-worse{color:var(--danger,#ef4444)}.fsim-alts small,.fsim-disclaimer{color:var(--muted)}.fsim-disclaimer{margin:12px 0 0;font-size:12px}.fsim-advice-btn{margin-top:12px;min-height:44px}.fsim-advice{margin-top:16px}.fsim-video-form input[type=file]{width:100%}.fsim-video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:10px;gap:10px}.fsim-swap{display:flex;align-items:center;gap:8px;min-height:44px}.fsim-swap input{width:auto}.fsim-chart-wrap{overflow-x:auto;margin-top:8px}.force-chart{display:block;width:100%;min-width:320px;height:200px}.force-chart-grid{stroke:var(--border);stroke-width:1}.force-chart-axis{fill:var(--muted);font-size:10px}.force-chart-line{fill:none;stroke:var(--accent);stroke-width:2}.force-chart-dot{fill:var(--accent)}.force-chart-dot.is-peak{fill:var(--danger,#ef4444)}.force-chart-dot.is-selected{stroke:var(--text);stroke-width:2}.force-chart-hit{fill:transparent;cursor:pointer}.fsim-peak{margin-top:12px;padding:12px;border-radius:10px;border:1px solid var(--danger,#ef4444);background:var(--panel-2)}.fsim-peak-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.fsim-peak-time{font-size:20px;color:var(--danger,#ef4444)}.fsim-peak-kg{margin-left:auto;font-size:20px}.fsim-peak-note{margin:6px 0 0;font-size:13px}.fsim-peak-image{display:block;width:100%;max-width:420px;margin:10px 0 0;border-radius:8px}.fsim-frame{margin-top:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--border)}.fsim-frame-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.fsim-frame-head b:last-child{margin-left:auto}.fsim-frame-head span{color:var(--muted);font-size:12px}.fsim-frame-limbs{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-gap:4px;gap:4px}.fsim-frame-limbs li{display:flex;justify-content:space-between;gap:10px;font-size:13px}.fsim-frame-limbs span{color:var(--muted)}.fsim-frame-note{margin:8px 0 0;font-size:12px;color:#f59e0b}.fsim-stamina{margin-top:12px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--panel-2)}.fsim-stamina.is-limited{border-color:#f59e0b}.fsim-stamina.is-over{border-color:var(--danger,#ef4444)}.fsim-stamina-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.fsim-stamina-head b{font-size:18px}.fsim-stamina.is-limited .fsim-stamina-head b{color:#f59e0b}.fsim-stamina.is-over .fsim-stamina-head b{color:var(--danger,#ef4444)}.fsim-stamina-rest{margin-top:4px;font-size:13px}.fsim-stamina-note{margin:6px 0 0;font-size:12px;color:var(--muted)}.fsim-stamina-hint{margin-top:12px}.fsim-coeff-panel{margin-top:16px;padding:0}.fsim-coeff .accordion-body{display:grid;grid-gap:10px;gap:10px}.fsim-coeff-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:12px;gap:12px}.fsim-coeff-item{border-top:1px solid var(--border);padding-top:10px}.fsim-coeff-item.is-changed{border-left:3px solid var(--accent,#3b82f6);padding-left:8px}.fsim-coeff-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fsim-coeff-label{font-weight:600;font-size:13px}.fsim-coeff-tag{font-size:11px;padding:1px 6px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.fsim-coeff-tag.is-provisional{color:var(--danger,#ef4444);border-color:var(--danger,#ef4444)}.fsim-coeff-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}.fsim-coeff-row input{width:7em}.fsim-coeff-range{font-size:12px;color:var(--muted)}.fsim-coeff-clamped{margin:4px 0 0;font-size:12px;color:var(--danger,#ef4444)}.fsim-coeff-note{margin:4px 0 0}.fsim-coeff-actions{display:flex;gap:8px}.fsim-stale{margin:0 0 10px;padding:8px 10px;border-radius:8px;border:1px solid var(--danger,#ef4444);color:var(--danger,#ef4444);font-size:13px}.admin-climbers-totals{margin:0 0 10px;font-size:14px}.admin-climbers-scroll{overflow-x:auto}.admin-climbers-table{border-collapse:collapse;width:100%;font-size:13px}.admin-climbers-table td,.admin-climbers-table th{border-bottom:1px solid var(--border);padding:6px 8px;text-align:left;white-space:nowrap}.admin-climbers-table th{color:var(--muted);font-weight:600}.admin-climbers-table td.num,.admin-climbers-table th:nth-child(2),.admin-climbers-table th:nth-child(3),.admin-climbers-table th:nth-child(4){text-align:right}.admin-climbers-table tr.is-on{background:color-mix(in srgb,var(--accent) 14%,transparent)}@media (max-width:700px){.admin-climbers-table thead{display:none}.admin-climbers-table,.admin-climbers-table tbody,.admin-climbers-table td,.admin-climbers-table tr{display:block;width:auto}.admin-climbers-table tr{border-bottom:1px solid var(--border);padding:6px 0}.admin-climbers-table td{border:0;padding:2px 0;white-space:normal;text-align:left}.admin-climbers-table td[data-label]:not(:first-child){display:flex;justify-content:space-between;gap:12px}.admin-climbers-table td[data-label]:not(:first-child):before{content:attr(data-label);color:var(--muted)}.admin-climbers-table td:first-child{font-weight:600}}.admin-climbers-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:10px}.admin-climbers-search{display:flex;align-items:center;gap:6px;flex:1 1 260px}.admin-climbers-search input{width:auto;flex:1 1 auto;min-width:0}.admin-climbers-field{display:flex;align-items:center;gap:6px}.admin-climbers-field select{width:auto}.admin-climbers-check{display:flex;align-items:flex-start;gap:6px;font-size:13px}.admin-climbers-check input{margin-top:2px;width:auto;margin:0}.admin-climbers-scope{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;font-size:13px}.admin-climbers-list{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px}@media (min-width:900px){.admin-climbers-list{grid-template-columns:1fr 1fr}}.admin-climber-card{padding:10px 12px}.admin-climber-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.admin-climber-email{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.admin-climber-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:4px 12px;gap:4px 12px;margin:8px 0 0}.admin-climber-meta dt{font-size:11px;color:var(--muted)}.admin-climber-meta dd{margin:0;font-size:13px}.admin-climber-gyms{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}.admin-climber-features{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.admin-climber-feature,.admin-climber-gym{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--border);border-radius:999px;font-size:12px}.admin-climber-feature .num,.admin-climber-gym .num{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.master-quick-add-open{align-self:flex-start;margin-top:4px;color:var(--muted)}.master-quick-add{margin-top:6px;padding:8px;border:1px dashed var(--border);border-radius:8px}.master-quick-add-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.master-quick-add-row input[type=text]{flex:1 1 120px;min-width:0;width:auto}.master-quick-add-row .btn{flex:0 0 auto}.master-quick-add-color{flex:0 0 auto;width:40px;height:32px;padding:2px;cursor:pointer}.master-quick-add .error,.master-quick-add .hint{margin:6px 0 0}.me-media-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.me-media-card{margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}.me-media-card.is-busy{opacity:.5}.me-media-thumb{position:relative}.me-media-thumb .media-tile{aspect-ratio:1/1}.me-media-marks{position:absolute;top:4px;left:4px;display:flex;flex-wrap:wrap;gap:4px;max-width:calc(100% - 46px);pointer-events:none}.me-media-mark{padding:0 5px;border-radius:4px;background:rgba(0,0,0,.62);color:#fff;font-size:11px;line-height:17px;white-space:nowrap}.me-media-mark.is-sent{background:color-mix(in srgb,var(--accent) 70%,rgba(0,0,0,.62))}.me-media-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.me-media-title{display:block;font-size:12px;font-weight:600;line-height:1.4;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a.me-media-title-link{color:var(--accent);text-decoration:underline}.me-media-title-none{color:var(--muted);font-weight:400}.me-media-sub{font-size:11px;line-height:1.35;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.me-media-sub:empty:after{content:"\00a0"}.me-media-actions{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;margin-top:2px;min-height:36px}.me-media-actions .coach-media-icon,.me-media-actions .reel-btn-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 1 40px;min-width:0;min-height:36px;padding:0;font-size:15px;opacity:1}.me-media-del{margin-left:auto;background:none;border:0;padding:0;flex:0 1 40px;min-width:0;min-height:36px;font-size:15px;line-height:1;color:var(--muted);opacity:.65;cursor:pointer}.me-media-del:focus-visible,.me-media-del:hover:not(:disabled){opacity:1;color:var(--danger)}.me-media-del:disabled{opacity:.3;cursor:not-allowed}.me-media-note{margin:0 0 10px}.unlinked-mode-row{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}.unlinked-mode-btn{flex:1 1 auto;min-height:36px}.unlinked-mode-btn.is-on{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);font-weight:600}.unlinked-bulk-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.unlinked-bulk-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"no fields remove" ". reason .";align-items:center;grid-gap:6px;gap:6px;padding:6px;border:1px solid color-mix(in srgb,var(--muted) 22%,transparent);border-radius:8px}.unlinked-bulk-row.is-error{border-color:color-mix(in srgb,var(--danger) 55%,transparent)}.unlinked-bulk-no{grid-area:no;color:var(--muted);font-size:12px;min-width:1.4em;text-align:right}.unlinked-bulk-fields{grid-area:fields;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:6px;gap:6px;min-width:0}.unlinked-bulk-fields select:nth-child(3){grid-column:1/-1}@media (min-width:560px){.unlinked-bulk-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.unlinked-bulk-fields select:nth-child(3){grid-column:auto}}.unlinked-bulk-fields select{width:100%;min-width:0;font-size:13px}.unlinked-bulk-remove{grid-area:remove;padding:4px 8px;min-height:32px}.unlinked-bulk-reason{grid-area:reason;font-size:12px;color:var(--danger)}.unlinked-bulk-add{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.unlinked-bulk-add .hint{margin:0}.unlinked-bulk-notice{color:var(--accent)}.gym-edit-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 12px}.gym-edit-links .hint{margin:0;flex:1 1 100%;min-width:0}.coach-rating{margin-top:12px}.coach-rating-head{margin:0 0 4px;font-size:14px}.coach-rating-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.coach-rating-btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:10px 16px;border-radius:8px;min-height:44px;flex:1 1 auto;max-width:260px}.coach-rating-btn:hover:not(:disabled){border-color:var(--muted)}.coach-rating-btn.is-on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.coach-rating-btn:disabled{opacity:.5;cursor:not-allowed}.coach-rating-note{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:10px}.coach-rating-note-label{font-size:12px;color:var(--muted)}.coach-rating-note textarea{width:100%;font-size:13px}.coach-rating-done{margin:8px 0 0;font-size:13px;color:var(--accent)}.coach-attrs{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:flex-start}.coach-attr{display:flex;flex:0 0 auto;flex-direction:column;gap:2px}.coach-attr label{display:block;margin-bottom:0}.coach-attr label input,.coach-attr label select{display:block;margin-top:2px}.coach-attr-label{font-size:13px;color:var(--muted)}.coach-attr-body{display:flex;align-items:baseline;gap:8px;min-height:32px}.coach-attr-value{font-weight:600}.coach-attr-edit{align-self:flex-start;border:none;background:none;padding:0;font-size:12px;color:var(--muted);text-decoration:underline;cursor:pointer}.coach-attr-edit:hover:not(:disabled){color:var(--text)}.coach-attr-edit:disabled{opacity:.5;cursor:not-allowed}.pair-page{max-width:560px;margin:0 auto;gap:12px}.pair-head,.pair-page{display:flex;flex-direction:column}.pair-head{align-items:flex-start}.pair-head h2{margin:0 0 2px}.pair-head .hint{margin:0}.pair-back{margin-top:6px}.pair-error{margin:0;padding:10px 12px;border:1px solid var(--danger);border-radius:8px;background:color-mix(in srgb,var(--danger) 12%,var(--panel));color:var(--text)}.pair-tally{display:flex;flex-direction:column;gap:6px}.pair-tally-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.pair-tally-name{font-weight:600;min-width:4em}.pair-tally-grades{display:flex;gap:6px;flex-wrap:wrap}.pair-tally-chip{padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);font-size:13px;white-space:nowrap}.pair-board{display:flex;flex-direction:column;gap:8px}.pair-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:8px;gap:8px;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--border)}.pair-row:last-of-type{border-bottom:none}.pair-row-head{padding-bottom:4px;color:var(--muted);font-size:13px}.pair-row-head .pair-cell-person{justify-content:center;text-align:center}.pair-cell-label{display:flex;flex-direction:column;align-items:stretch;gap:2px;min-width:0}.pair-label-main{display:flex;align-items:center;gap:6px;min-width:0}.pair-problem-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pair-memo-btn{border:none;background:none;padding:4px 0;min-height:30px;text-align:left;color:var(--muted);font-size:12px;line-height:1.3;cursor:pointer;min-width:0;display:block;overflow:hidden}.pair-memo-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.pair-memo-btn.has-memo{color:var(--text)}.pair-memo-input{width:100%;min-width:0;min-height:44px;font-size:16px}.pair-add-memo{width:100%;min-height:44px;margin-bottom:8px}.pair-row-delete{border:none;background:none;color:var(--muted);cursor:pointer;padding:4px;font-size:13px;line-height:1}.pair-cell-person{display:flex;flex-direction:column;align-items:center;gap:4px;width:96px}.pair-marks{font-size:15px;letter-spacing:1px;min-height:1.2em;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:96px}.pair-mark-btns{display:flex;gap:4px}.pair-mark-btn{min-width:44px;min-height:44px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--text);font-size:18px;line-height:1;cursor:pointer}.pair-mark-btn.is-send{border-color:var(--accent);color:var(--accent)}.pair-mark-btn:active{background:var(--panel)}.pair-undo-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:4px}.pair-add-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin-bottom:8px}.pair-add-fields>:nth-child(3){grid-column:1/-1}.pair-add-btn{width:100%;min-height:44px}@media (min-width:560px){.pair-add-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.pair-add-fields>:nth-child(3){grid-column:auto}}.pair-share{gap:8px;align-items:flex-start}.pair-partner-edit,.pair-share{display:flex;flex-direction:column}.pair-partner-edit{gap:2px;width:100%;max-width:260px}.pair-share-url{word-break:break-all}.pair-join,.pair-login{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:10px}.pair-join-list{margin:0;padding-left:1.2em}.pair-session-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.pair-session-item{display:flex;flex-direction:column;gap:2px}.pair-session-link{display:flex;gap:8px;align-items:baseline}.pair-session-date{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted)}.pair-session-gym{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mine-media-card{gap:6px;min-width:0}.mine-media-card.is-busy{opacity:.5}.mine-media-thumb{position:relative}.mine-media-new{position:absolute;top:4px;left:4px;padding:0 6px;border-radius:4px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;line-height:17px;letter-spacing:.04em;pointer-events:none}.mine-media-meta{gap:2px;min-width:0}.mine-media-when{font-size:11px;line-height:1.35;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mine-media-flags{display:flex;flex-wrap:wrap;gap:4px;min-height:30px;align-items:center}.mine-media-flags .tiny-btn{opacity:1;padding:4px 8px;min-height:30px}.mine-media-actions{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;margin-top:4px;padding-top:6px;border-top:1px solid var(--border);min-height:40px}.mine-media-actions .coach-media-link,.mine-media-actions .tiny-btn{opacity:1}.mine-media-actions .tiny-btn:disabled{opacity:.3}.mine-media-act,.mine-media-actions .coach-media-icon,.mine-media-actions .reel-btn-icon{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:34px;padding:0;font-size:15px;line-height:1}.mine-media-del{margin-left:auto}.reel-btn{color:var(--text);border-color:var(--border);opacity:1}.reel-btn:focus-visible,.reel-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.reel-btn:disabled{opacity:.35;cursor:progress}.reel-btn-icon{padding:0;line-height:1}.reel-error{margin:4px 0 0;font-size:12px}.mine-media-advice{display:flex;margin-top:4px}.mine-media-advice-btn{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:34px;opacity:1}.mine-media-advice-btn.is-open{border-color:var(--accent);color:var(--accent)}.mine-media-advice-chevron{display:inline-block;transition:transform .15s ease}.mine-media-advice-btn.is-open .mine-media-advice-chevron{transform:rotate(180deg)}.mine-media-card.advice-open{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.media-grid-advice{grid-auto-flow:row dense}.media-advice-panel{grid-column:1/-1;min-width:0;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel);overflow-wrap:anywhere}.media-advice-panel .markdown{font-size:14px;line-height:1.7}.media-advice-layout{display:grid;grid-gap:12px;gap:12px}.media-advice-body,.media-advice-media{min-width:0}@media (min-width:900px){.media-advice-layout.has-video{grid-template-columns:minmax(240px,38%) 1fr;align-items:start}.media-advice-media{position:-webkit-sticky;position:sticky;top:12px}}.media-advice-head,.media-advice-note{margin:0 0 8px}.media-advice-more{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border)}.media-advice-more .tiny-btn{display:inline-flex;align-items:center;min-height:34px;opacity:1}.coach-history-dates{margin-left:auto;gap:4px 10px;justify-content:flex-end}.coach-advice-dates,.coach-history-dates{display:flex;flex-wrap:wrap;font-size:12px;color:var(--muted);line-height:1.5;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.coach-advice-dates{gap:4px 12px;align-items:baseline;margin:0 0 8px}.coach-advice-dates-note{flex:1 1 100%}.gym-away-toggle{position:relative;flex:0 0 auto;padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--text);font-size:12px;font-weight:600;line-height:1.5;cursor:pointer}.gym-away-toggle:after{content:"";position:absolute;left:0;right:0;top:-6px;bottom:-10px}.gym-away-toggle.is-on,.gym-away-toggle:hover{border-color:var(--accent)}.gym-away-toggle.is-on{color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.gym-away-note{flex:1 1 220px;min-width:0;font-size:12px;color:var(--muted);line-height:1.5}.gym-away-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;vertical-align:middle;color:#0f766e;background:#ccfbf1;border:1px solid #5eead4}.pschedule-add-btn{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}.pschedule-add-btn:disabled{opacity:.5;cursor:not-allowed}.pschedule-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin:8px 0 12px}.pschedule-field{display:flex;flex-direction:column;gap:4px;min-width:0}.pschedule-field>label,.pschedule-label{font-size:13px;color:var(--muted)}.pschedule-field input[type=date],.pschedule-field input[type=number],.pschedule-field select{width:100%;min-width:0;min-height:38px}.pschedule-check{display:flex;align-items:center;gap:8px;min-height:38px;font-size:13px}.pschedule-check input[type=checkbox]{width:auto;min-height:0}.pschedule-form-actions{grid-column:1/-1;display:flex;gap:8px}.pschedule-list{display:flex;flex-direction:column;gap:8px}.pschedule-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.pschedule-row.is-off{opacity:.65}.pschedule-main{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:2px}.pschedule-actions{display:flex;gap:6px}.pschedule-created{margin:8px 0 0;padding-left:20px;font-size:13px;line-height:1.7}.pschedule-created a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;padding:6px 0}@media (max-width:460px){.pschedule-form{grid-template-columns:1fr}}.pschedule-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:0 0 12px;padding:10px 12px;border:1px solid var(--accent);border-radius:10px;background:var(--panel-2)}.pschedule-banner-main{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:4px}.pschedule-banner-title{font-size:14px}.pschedule-banner-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pschedule-banner-actions .btn-nav{min-height:44px;display:inline-flex;align-items:center}.pschedule-banner .login-error{flex:1 1 100%;margin:0}.pschedule-banner .pschedule-created{margin:2px 0 0}.study-notes-page{max-width:none;display:flex;flex-direction:column}.study-note-filter{margin:4px 0 12px;font-size:13px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}.study-note-tabs{display:flex;gap:8px;margin:8px 0 12px;flex-wrap:wrap}.study-note-tab{min-height:36px}.study-note-tab.is-on{border-color:var(--accent);color:var(--accent);font-weight:700}.study-note-book{display:flex;flex-direction:column;gap:18px}.study-note-entry{border:1px solid var(--border);border-radius:12px;background:var(--panel);padding:12px;display:flex;flex-direction:column;gap:8px}.study-note-entry.is-editing{border-color:var(--accent)}.study-note-entry.is-editing.has-photo{padding-bottom:130px}.study-note-photo{margin:-12px -12px 0}@media (max-width:899px){.study-note-entry{--note-photo-bleed:32px}.study-note-photo{margin-left:calc(-1 * var(--note-photo-bleed));margin-right:calc(-1 * var(--note-photo-bleed))}.study-note-photo .study-note-canvas,.study-note-photo-btn{border-radius:0}}@media (max-width:720px){.study-note-entry{--note-photo-bleed:24px}}.study-note-photo-btn{padding:0;border:0;background:none;border-radius:12px 12px 0 0;overflow:hidden}.study-note-canvas,.study-note-canvas img,.study-note-photo-btn{display:block;width:100%}.study-note-canvas img{height:auto}.study-note-photo-loading{padding:24px 12px;text-align:center;color:var(--muted);font-size:13px}.study-note-text{margin:0;white-space:pre-wrap;line-height:1.6}.study-note-text-empty{color:var(--muted);font-size:13px}.study-note-body-label{display:block;font-size:13px;font-weight:700}.study-note-body{width:100%;resize:vertical}.study-note-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.study-note-grade{font-size:12px;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:1px 8px}.study-note-problem,.study-note-problem-link{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.study-note-problem-link{color:var(--accent);text-decoration:underline;padding:10px 0;margin:-10px 0}.study-note-date{font-size:12px;color:var(--muted);margin-left:auto}.study-note-sources{margin:0;font-size:12px;color:var(--muted)}.study-note-source-side{display:inline-block;margin-right:4px;padding:0 5px;border:1px solid var(--border);border-radius:4px;font-size:11px}.study-note-source-at{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.study-note-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.study-note-actions .tiny-btn{min-height:40px}.study-note-save{min-height:44px}.study-note-delete{margin-left:auto;opacity:.75}.study-note-tools{flex-wrap:wrap;max-width:min(92vw,720px);justify-content:flex-end}.study-note-color{font-size:0}.study-note-sentinel{min-height:44px;display:flex;align-items:center;justify-content:center;padding:8px 0 24px}.me-thumb-card .study-note-mini-icon{display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff}.viewer-study-notes{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.markdown mark.md-hl,.md-hl{background:color-mix(in srgb,#fbbf24 26%,transparent);border-bottom:2px solid #fbbf24;color:inherit;border-radius:3px 3px 0 0;padding:0 1px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.md-frame.md-hl,.md-time.md-hl{background:color-mix(in srgb,#fbbf24 26%,var(--panel));border-bottom-width:2px;border-bottom-color:#fbbf24}.coach-hl{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}.coach-hl-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.coach-hl-head h4{margin:0;font-size:14px}.coach-hl-open{color:var(--accent);text-decoration:underline;font-size:13px;padding:10px 0;margin:-10px 0 -10px auto}.coach-hl-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.coach-hl-item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:4px 8px;gap:4px 8px;align-items:start}.coach-hl-quote{grid-row:1;min-width:0;padding:6px 10px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border-radius:0 6px 6px 0;line-height:1.6}.coach-hl-note,.coach-hl-quote{grid-column:1;margin:0;font-size:13px}.coach-hl-note,.coach-hl-remove{color:var(--muted)}.coach-hl-remove{grid-column:2;grid-row:1}.coach-hl-frame{grid-column:1;margin:0;font-size:12px;color:var(--muted)}.coach-hl-notice{margin:8px 0 0;font-size:13px;color:var(--muted)}.coach-hl-bar{position:fixed;left:0;right:0;bottom:0;z-index:900;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--accent);box-shadow:0 -4px 16px rgba(0,0,0,.18)}.coach-hl-bar-quote{flex:1 1 120px;min-width:0;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.coach-hl-add{flex:0 0 auto;min-height:44px}.coach-hl-bar-error{flex:1 1 100%;font-size:12px;color:#dc2626}.study-note-highlights{display:flex;flex-direction:column;gap:8px}.study-note-hl-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.study-note-hl{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.study-note-hl-quote{flex:1 1 100%;min-width:0;margin:0;padding:8px 12px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border-radius:0 8px 8px 0;line-height:1.7}.study-note-hl-note{flex:1 1 100%;margin:0;font-size:13px;color:var(--muted)}.study-note-hl-note-input{flex:1 1 160px;min-width:0}.study-note-hl-remove{flex:0 0 auto;color:var(--muted)}.study-note-hl.has-frame{display:grid;grid-template-columns:104px minmax(0,1fr);grid-template-rows:auto 1fr;grid-column-gap:10px;column-gap:10px;grid-row-gap:6px;row-gap:6px;align-items:start}.study-note-hl.has-frame>*{grid-column:2}.study-note-hl.has-frame>.study-note-hl-frame{grid-column:1;grid-row:1/-1}.study-note-hl-frame{display:flex;flex-direction:column;gap:2px;align-items:center}.study-note-hl-frame-btn{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}.study-note-hl-frame-btn img{display:block;width:100%;height:auto;border-radius:6px;background:#000}.study-note-hl-frame-empty{display:flex;align-items:center;justify-content:center;width:100%;min-height:72px;border-radius:6px;border:1px dashed var(--border);text-align:center}.study-note-hl-frame-at,.study-note-hl-frame-empty{color:var(--muted);font-size:11px}.study-note-advice-link{color:var(--accent);text-decoration:underline;font-size:13px;align-self:flex-start;padding:10px 0;margin:-10px 0}.place-entry{margin-top:8px}.place-entry-notice{color:var(--accent);margin-top:6px}.place-modal{max-width:520px}.place-form{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}.place-field{display:flex;flex-direction:column;gap:4px;flex:1 1 46%;min-width:140px;font-size:13px}.place-field>span{color:var(--muted)}.place-field-wide{flex-basis:100%}.place-field input{width:100%;min-width:0}.place-vague{display:flex;align-items:center;gap:8px;font-size:13px;padding:8px 0}.place-vague input{width:20px;height:20px;flex:0 0 auto}.place-row-list{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.place-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"fields remove" "reason .";align-items:center;grid-gap:6px;gap:6px;padding:6px;border:1px solid color-mix(in srgb,var(--muted) 22%,transparent);border-radius:8px}.place-row.is-error{border-color:color-mix(in srgb,var(--danger) 55%,transparent)}.place-row-fields{grid-area:fields;display:grid;grid-template-columns:minmax(0,1fr) auto 84px;align-items:center;grid-gap:6px;gap:6px;min-width:0}.place-row-fields input{width:100%;min-width:0;font-size:13px}.place-row-x{color:var(--muted);font-size:13px}.place-row-remove{grid-area:remove;padding:4px 8px;min-height:32px}.place-row-reason{grid-area:reason;font-size:12px;color:var(--danger)}.place-row-add{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.place-row-add .hint{margin:0}.canvas-note{position:absolute;top:8px;left:50%;transform:translateX(-50%);z-index:16;max-width:calc(100% - 24px);padding:6px 12px;border-radius:999px;background:rgba(15,23,42,.72);color:#fff;font-size:12px;line-height:1.4;text-align:center;pointer-events:none}.canvas-note-error{background:var(--danger);border-radius:8px}.overview-sync-note{margin:0 0 12px;padding:10px 12px;border:1px solid var(--warning,#d97706);border-radius:8px;background:color-mix(in srgb,var(--warning,#d97706) 12%,transparent);color:var(--text);font-size:13px;line-height:1.6}.mexport-row{gap:10px;flex-wrap:wrap;margin-top:10px}.mexport-field,.mexport-row{display:flex;align-items:center}.mexport-field{gap:6px;flex:1 1 260px;min-width:0}.mexport-label{white-space:nowrap;font-size:13px;color:var(--muted,#6b7280)}.mexport-format,.mexport-month,.mexport-name{flex:1 1 auto;min-width:0}.mexport-error{margin:8px 0 0;font-size:13px;color:var(--danger,#dc2626)}.mexport-tokens{margin-top:16px;padding-top:12px;border-top:1px solid var(--border,#e5e7eb)}.mexport-subtitle{margin:0 0 4px;font-size:14px}.mexport-issued{margin-top:10px;padding:10px 12px;border:1px solid var(--accent,#2563eb);border-radius:8px;background:var(--panel-alt,#f8fafc)}.mexport-issued-note{margin:0 0 6px;font-size:13px;color:var(--danger,#dc2626)}.mexport-code{display:block;overflow-x:auto;white-space:pre;padding:8px 10px;border-radius:6px;border:1px solid var(--border,#e5e7eb);background:var(--panel-alt,#f8fafc);font-size:12px;line-height:1.6;-webkit-overflow-scrolling:touch}.mexport-sample-label{margin-top:14px;margin-bottom:4px}.mexport-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.mexport-item{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--border,#e5e7eb);border-radius:8px;background:var(--panel-alt,#f8fafc)}.mexport-item-main{display:flex;flex-direction:column;gap:2px;flex:1 1 200px;min-width:0}.mexport-item-name,.mexport-item-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mexport-item-sub{font-size:12px;color:var(--muted,#6b7280)}.pubadv-page{gap:16px}.pubadv-head,.pubadv-page{display:flex;flex-direction:column}.pubadv-head{gap:4px}.pubadv-kicker{margin:0;font-size:13px;color:var(--muted,#6b7280)}.pubadv-title{margin:0;font-size:22px;line-height:1.3}.pubadv-meta{margin:0;font-size:13px;color:var(--muted,#6b7280)}.pubadv-section-head{margin:0 0 8px;font-size:15px}.pubadv-layout{display:grid;grid-gap:16px;gap:16px;align-items:start}@media (min-width:900px){.pubadv-layout{grid-template-columns:minmax(280px,42%) 1fr}.pubadv-problem{position:-webkit-sticky;position:sticky;top:12px}}.pubadv-advice,.pubadv-problem{min-width:0}.pubadv-canvas{position:relative;margin-bottom:10px}.pubadv-canvas canvas{width:100%;height:auto;display:block;border-radius:8px}.pubadv-legend{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12px;color:var(--muted,#6b7280)}.pubadv-legend-row{display:inline-flex;align-items:center;gap:4px}.pubadv-comment,.pubadv-rules{margin:8px 0 0;font-size:13px}.pubadv-comment{white-space:pre-wrap}.pubadv-dates{margin:0 0 8px}.pubadv-video{margin-bottom:10px}.pubadv-note{margin:0 0 8px}.pubadv-text{line-height:1.75}.pubadv-disclaimer{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--border,#e5e7eb)}.pubadv-cta-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.coach-publish-head{margin:0 0 4px;font-size:15px}.coach-publish-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.coach-publish-btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);padding:10px 16px;border-radius:8px;min-height:44px;flex:1 1 auto;max-width:260px}.coach-publish-btn:hover:not(:disabled){border-color:var(--muted)}.coach-publish-btn.is-on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.coach-publish-url{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;font-size:13px}.coach-publish-url a{overflow-wrap:anywhere;min-width:0}.video-compare-modal.video-compare-embed{position:static;inset:auto;z-index:auto;padding:0;overflow:visible;background:transparent;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.video-compare-embed .video-compare-modal-head{position:static;background:transparent}.cmppub{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.cmppub-toggle{display:inline-flex;border:1px solid var(--border,#e5e7eb);border-radius:8px;overflow:hidden}.cmppub-btn{min-height:36px;padding:6px 12px;border:0;border-radius:0;background:var(--panel,#fff);color:var(--text,#111827);font-size:13px;cursor:pointer}.cmppub-btn+.cmppub-btn{border-left:1px solid var(--border,#e5e7eb)}.cmppub-btn.is-on{background:var(--accent,#2563eb);color:#fff;opacity:1}.cmppub-btn:disabled:not(.is-on){opacity:.5;cursor:not-allowed}.cmppub-link{font-size:13px}.cmppub-note{font-size:12px;color:var(--muted,#6b7280)}.cmppub-msg{color:var(--accent,#2563eb)}.cmppub-err,.cmppub-msg{font-size:12px;overflow-wrap:anywhere}.cmppub-err{color:var(--danger,#dc2626)}.pubcmp{display:flex;flex-direction:column;gap:12px}.pubcmp-title{margin:0;font-size:20px;overflow-wrap:anywhere}.pubcmp-problem{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}.pubcmp-thumb{width:120px;height:120px;object-fit:cover;border-radius:8px;background:var(--panel-alt,#f8fafc);flex:0 0 auto}.pubcmp-problem-body{display:flex;flex-direction:column;gap:8px;flex:1 1 220px;min-width:0}.pubcmp-problem-name{font-weight:600;overflow-wrap:anywhere}.pubcmp-problem-meta{display:flex;gap:6px;flex-wrap:wrap}.pubcmp-chip{font-size:12px;padding:2px 8px;border:1px solid var(--border,#e5e7eb);border-radius:999px;color:var(--muted,#6b7280)}.pubcmp-problem-links{display:flex;gap:8px;flex-wrap:wrap}.pubcmp-cta{display:flex;flex-direction:column;gap:8px}.pubcmp-cta-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}