/* Shared public-page frame. Content rules live in site-v2.css; native data/DOM stays. */
.v2-site { margin:0; background:var(--v2-bg); color:var(--v2-text); font-family:var(--v2-font-body); line-height:1.6; }
.v2-site *, .v2-site *::before, .v2-site *::after { box-sizing:border-box; }
.v2-site [hidden] { display:none!important; }
.v2-site :focus-visible { outline:3px solid var(--v2-focus); outline-offset:3px; }
.v2-site ::selection { color:var(--v2-on-accent); background:var(--v2-accent-text); }
.v2-site .skip-link { position:fixed; top:8px; left:12px; z-index:150; transform:translateY(-200%); padding:10px 16px; border-radius:10px; color:var(--v2-on-accent); background:var(--v2-accent); }
.v2-site .skip-link:focus { transform:none; }
.v2-site .topbar { position:sticky; top:0; z-index:90; display:flex; align-items:center; gap:24px; min-height:64px; padding:10px 28px; border-bottom:1px solid var(--v2-nav-border); background:var(--v2-nav); color:var(--v2-nav-text); }
.v2-site .brand { display:inline-flex; align-items:center; min-height:44px; flex:0 0 auto; }
.v2-site .brand img { display:block; width:119px; height:36px; object-fit:contain; }
.v2-site .topnav { display:flex; align-items:center; flex:1; gap:24px; }
.v2-site .topnav>a { display:flex; align-items:center; min-height:44px; color:var(--v2-nav-muted); font-size:13px; border-bottom:2px solid transparent; text-decoration:none; }
.v2-site .topnav>a:is(:hover,:focus-visible) { color:var(--v2-nav-accent); border-color:var(--v2-nav-accent); }
.v2-site .theme-toggle, .v2-site .menu-toggle { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-width:44px; min-height:44px; padding:8px 12px; border:1px solid var(--v2-control-border); border-radius:10px; color:var(--v2-nav-text); background:transparent; font:500 12px/1.4 var(--v2-font-body); cursor:pointer; }
.v2-site :is(.theme-toggle,.menu-toggle) svg { width:18px; height:18px; }
.v2-site .theme-toggle:is(:hover,:focus-visible),.v2-site .menu-toggle:is(:hover,:focus-visible) { color:var(--v2-nav-accent); border-color:var(--v2-nav-accent); background:var(--v2-nav-alt); }
.v2-site .topbar :focus-visible,.v2-site .side-nav :focus-visible { outline-color:var(--v2-nav-accent); }
.v2-site .menu-toggle { display:none; }
.v2-site .v2-site-workspace { display:grid; grid-template-columns:200px minmax(0,1fr); align-items:stretch; width:100%; max-width:1680px; margin:0 auto; }
.v2-site .side-nav { min-width:0; padding:26px 14px; color:var(--v2-nav-text); background:var(--v2-nav); border-right:1px solid var(--v2-nav-border); }
.v2-site .side-title { margin:0 10px 12px; color:var(--v2-nav-muted); font-size:11px; font-weight:650; letter-spacing:1.2px; }
.v2-site .side-link { display:flex; align-items:center; min-height:44px; padding:9px 10px; border-radius:10px; color:var(--v2-nav-muted); text-decoration:none; font-size:13px; }
.v2-site .side-link:is(:hover,:focus-visible,.active) { background:var(--v2-nav-alt); color:var(--v2-nav-accent); }
.v2-site .side-link.active { box-shadow:inset 2px 0 var(--v2-nav-accent); }
.v2-site .site-league-nav { margin-top:24px; padding-top:16px; border-top:1px solid var(--v2-nav-border); }
.v2-site .site-league-nav summary,.v2-site .mobile-nav summary { min-height:44px; padding:9px 10px; color:var(--v2-nav-text); cursor:pointer; font-size:13px; }
.v2-site .site-league-nav a,.v2-site .site-method-link { display:flex; align-items:center; min-height:44px; padding:8px 10px; color:var(--v2-nav-muted); font-size:12px; }
.v2-site .site-league-nav a:is(:hover,:focus-visible),.v2-site .site-method-link:is(:hover,:focus-visible) { color:var(--v2-nav-accent); background:var(--v2-nav-alt); }
.v2-site .site-method-link { margin-top:18px; }
.v2-site .v2-site-content { min-width:0; padding:28px 32px 0; }
.v2-site .mobile-nav { position:relative; padding:12px 20px; background:var(--v2-nav); color:var(--v2-nav-text); border-bottom:1px solid var(--v2-nav-border); }
.v2-site .mobile-nav a { display:flex; align-items:center; min-height:44px; padding:8px 10px; color:var(--v2-nav-muted); font-size:13px; }
.v2-site .mobile-nav a:is(:hover,:focus-visible) { background:var(--v2-nav-alt); color:var(--v2-nav-accent); }
.v2-site .v2-display-controls>summary { color:var(--v2-nav-text); border-color:var(--v2-control-border); }
.v2-site .v2-display-controls>summary:is(:hover,:focus-visible) { color:var(--v2-nav-accent); background:var(--v2-nav-alt); border-color:var(--v2-nav-accent); }
.v2-site .v2-display-controls .v2-version-toolbar { color:var(--v2-text); background:var(--v2-surface); border-color:var(--v2-border); }
.v2-site .v2-display-controls .v2-version-toolbar button { color:var(--v2-text); background:var(--v2-surface); border-color:var(--v2-control-border); }
.v2-site .v2-display-controls .v2-version-toolbar button[aria-pressed="true"] { color:var(--v2-on-accent); background:var(--v2-accent); border-color:var(--v2-accent); }
.v2-site .v2-display-controls .v2-version-toolbar button:is(:hover,:focus-visible,:active) { color:var(--v2-accent-text); background:var(--v2-accent-soft); border-color:var(--v2-accent-text); }
.v2-site .v2-display-controls .v3-palette-picker select { color:var(--v2-text); background:var(--v2-surface); border-color:var(--v2-control-border); }
.v2-site .v2-display-controls .v2-version-toolbar :is(button,select):focus-visible { outline-color:var(--v2-focus); }
.v2-site .v2-display-controls select option { color:var(--v2-text); background:var(--v2-surface); }
@media(max-width:1050px) {
 .v2-site .v2-site-workspace { display:block; }
 .v2-site .side-nav,.v2-site .topnav { display:none; }
 .v2-site .menu-toggle { display:inline-flex; }
 .v2-site .brand { margin-right:auto; }
 .v2-site .v2-site-content { padding:24px 24px 0; }
}
@media(max-width:760px) {
 .v2-site .topbar { gap:8px; padding:10px 16px; }
 .v2-site .brand img { width:104px; height:32px; }
 .v2-site .theme-label { display:none; }
 .v2-site .theme-toggle { width:44px; padding:8px; }
 .v2-site .v2-site-content { padding:20px 16px 0; }
}
@media(prefers-reduced-motion:reduce) { .v2-site *, .v2-site *::before,.v2-site *::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
.v2-site .site-search { position:relative; margin:0; }
.v2-site .site-search>summary { display:flex; align-items:center; justify-content:center; gap:6px; min-width:44px; min-height:44px; padding:8px; border:1px solid var(--v2-control-border); border-radius:10px; color:var(--v2-nav-text); cursor:pointer; list-style:none; font-size:12px; }
.v2-site .site-search>summary::-webkit-details-marker { display:none; }
.v2-site .site-search>summary svg { width:18px; height:18px; }
.v2-site .site-search>summary:is(:hover,:focus-visible) { color:var(--v2-nav-accent); border-color:var(--v2-nav-accent); }
.v2-site .site-search form { position:absolute; z-index:100; right:0; top:calc(100% + 8px); display:grid; gap:8px; width:300px; max-width:calc(100vw - 24px); padding:16px; background:var(--v2-surface); color:var(--v2-text); border:1px solid var(--v2-border); border-radius:16px; box-shadow:var(--v2-shadow-float); }
.v2-site .site-search:not([open])>form { display:none; }
.v2-site .site-search form input[type=search] { width:100%; min-height:44px; padding:8px; background:var(--v2-surface); color:var(--v2-text); border:1px solid var(--v2-control-border); border-radius:10px; }
.v2-site .site-search form button { min-height:44px; padding:8px; background:var(--v2-accent); color:var(--v2-on-accent); border:1px solid var(--v2-accent); border-radius:10px; cursor:pointer; }
.v2-site .v2-noscript-nav { margin:12px; padding:12px; border:1px solid var(--v2-border); border-radius:10px; background:var(--v2-surface); }
.v2-site .v2-noscript-nav a { display:inline-flex; align-items:center; min-height:44px; padding:8px; color:var(--v2-accent-text); }
@media(max-width:1050px) {
 .v2-site .topbar>.site-search { display:none; }
 .v2-site .mobile-nav .site-search form { position:static; width:100%; max-width:none; }
}
.v2-site .v2-display-controls .dsn-header__controls { display:flex; justify-content:flex-start; width:100%; color:var(--v2-text); }
.v2-site .v2-display-controls .varim-language-picker { color:var(--v2-text); }
