/* Shared geometry and type scale. Loaded last on every full HTML page. */
:root{--font-inter:Inter;--tvm-width:1280px;--tvm-gutter:32px;--tvm-font:var(--font-inter),Arial,sans-serif;--tvm-heading:var(--font-inter),Arial,sans-serif;--tvm-body-size:14px;--tvm-h1:36px;--tvm-h2:26px;--tvm-h3:20px}
@media screen{
html{scrollbar-gutter:stable;scroll-padding-top:96px}
html[data-theme][data-tvm-page] body{margin:0;font-family:var(--tvm-font);font-size:var(--tvm-body-size);line-height:1.7}
html[data-theme][data-tvm-page] body :is(button,input,select,textarea){font-family:var(--tvm-font)}
/* Only outer boundaries are constrained; tables and charts keep their own scroll. */
html[data-theme][data-tvm-page] body :is(.wrap,.bz-wrap,.ak-wrap,.integrated-engine,.integrated-member,.public-content,.admin-shell),html[data-theme][data-tvm-page] body.classic-view>main,html[data-tvm-page=calendar] body>main{box-sizing:border-box!important;width:calc(100% - var(--tvm-gutter)*2)!important;max-width:var(--tvm-width)!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important;min-width:0;font-family:var(--tvm-font);font-size:14px;line-height:1.7}
html[data-theme][data-tvm-page] body :is(.wrap,.bz-wrap,.ak-wrap,.integrated-engine,.integrated-member,.admin-shell) .wrap{width:100%!important}
body :is(.workspace,.ak-detail-layout,.ak-index-layout,.admin-main,.admin-content,.result-area,.bz-content){min-width:0}
html[data-theme][data-tvm-page] body.classic-view .workspace{grid-template-columns:236px minmax(0,1fr);gap:24px}
body .chart-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
body :is(.admin-table-wrap,.table-scroll,.bz-table-wrap){max-width:100%;overflow-x:auto}
html[data-theme] body.integrated-tuvi #app>.shell{box-sizing:border-box;width:calc(100% - var(--tvm-gutter)*2);max-width:var(--tvm-width);margin-inline:auto;min-width:0;font-family:var(--tvm-font);font-size:14px}
/* Headings use one hierarchy; data labels inside charts remain compact. */
html[data-theme][data-tvm-page] body :is(h1,.page-heading h1,.portal-page h1,.ak-heading h1,.ak-article h1,.bz-heading h1){font-family:var(--tvm-heading);font-size:var(--tvm-h1);font-weight:500;line-height:1.25;letter-spacing:-.5px}
html[data-theme][data-tvm-page] body :is(h2,.section-top h2,.portal-page h2,.ak-side-card h2,.bz-heading h2){font-family:var(--tvm-heading);font-size:var(--tvm-h2);font-weight:500;line-height:1.35;letter-spacing:-.25px}
html[data-theme][data-tvm-page] body :is(h3,.ak-card h3,.article-card h3,.admin-panel h3){font-family:var(--tvm-heading);font-size:var(--tvm-h3);font-weight:500;line-height:1.4;letter-spacing:0}
html[data-theme][data-tvm-page] body h4{font-family:var(--tvm-font);font-size:16px;line-height:1.5}
html[data-theme][data-tvm-page] body :is(.article-body,.ak-lead,.ak-heading>div>p:not(.ak-kicker),.page-heading p,.intro>p,.bz-intro,.portal-page>p,.ak-card p,.article-card p,.admin-panel p){font-family:var(--tvm-font);font-size:14px;line-height:1.8}
html[data-theme][data-tvm-page] body :is(.eyebrow,.ak-kicker,.bz-kicker){font-family:var(--tvm-font);font-size:11px;font-weight:600;letter-spacing:1.5px;line-height:1.6}
html[data-theme][data-tvm-page] body :is(.birth-form label,.bz-form label,.ak-tools label,.admin-form label){font-family:var(--tvm-font);font-size:13px;line-height:1.6}
html[data-theme][data-tvm-page] body :is(.btn,.primary,.secondary,.outline,.admin-btn,.ak-tools input,.ak-tools select,.birth-form input,.birth-form select,.bz-form input,.bz-form select,.admin-form input,.admin-form select,.admin-form textarea){font-family:var(--tvm-font);font-size:13px;line-height:1.6}
/* One shell on the home page, SSR modules and client routes. */
html[data-theme] #tvmGlobalShell{display:contents}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter){font-family:var(--tvm-font);font-size:14px;line-height:1.7;letter-spacing:0;color:var(--tvm-ink)}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) *{box-sizing:border-box}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) a{color:inherit;text-decoration:none}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) button{font-family:var(--tvm-font);color:inherit;background:none;border:0;cursor:pointer}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) .wrap{width:calc(100% - var(--tvm-gutter)*2)!important;max-width:var(--tvm-width)!important;padding-left:0!important;padding-right:0!important;margin-inline:auto!important}
html[data-theme] #tvmGlobalShell .topline{font-family:var(--tvm-font);font-size:11px;letter-spacing:.3px;line-height:1.6}
html[data-theme] #tvmGlobalShell .topline .wrap{display:flex;justify-content:space-between;gap:20px;padding-top:7px;padding-bottom:7px;font-size:11px;letter-spacing:.3px;line-height:1.6}
html[data-theme] #tvmGlobalShell .topline .wrap>span{max-width:none}
html[data-theme] #tvmGlobalShell header{position:sticky!important;top:0;z-index:100;border-bottom:1px solid var(--tvm-border);padding:0!important;max-width:none!important;width:100%!important;margin:0!important;background:var(--tvm-panel);backdrop-filter:blur(15px)}
html[data-theme] #tvmGlobalShell .header{height:80px;min-height:80px;display:flex;align-items:center;flex-wrap:nowrap;gap:20px;padding-top:0;padding-bottom:0}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) .brand{display:flex;align-items:center;flex-shrink:0;gap:10px;white-space:nowrap;font-family:var(--tvm-heading);font-size:24px;line-height:1.2;font-weight:700;letter-spacing:1px;text-transform:none}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) .brand-title{font:inherit}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) .brand small{display:block;font:500 8px/1.5 var(--tvm-font);letter-spacing:1.2px;margin-top:4px}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) :is(.brandseal,.logo-image){flex:none;width:42px;height:42px;border:1px solid var(--tvm-gold);border-radius:6px;object-fit:contain;margin:0;padding:0;outline:1px solid var(--tvm-border);outline-offset:3px}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) .brandseal{display:grid;place-items:center;font:34px/1 Georgia,serif;color:var(--tvm-gold)}
html[data-theme] #tvmGlobalShell #nav{display:flex;align-items:center;gap:18px;flex-wrap:nowrap;margin-left:auto;height:100%;font:500 13px/1.5 var(--tvm-font);letter-spacing:0}
html[data-theme] #tvmGlobalShell #nav :is(a,button,.nav-label){font:inherit;letter-spacing:0}
html[data-theme] #tvmGlobalShell #nav>a,html[data-theme] #tvmGlobalShell .navgroup>button,html[data-theme] #tvmGlobalShell .navgroup>.nav-parent{display:flex;align-items:center;height:100%;padding:0;gap:5px;white-space:nowrap;position:relative}
html[data-theme] #tvmGlobalShell .navgroup{position:relative;height:100%;display:flex;align-items:center}
html[data-theme] #tvmGlobalShell .navgroup.has-link{gap:5px}
html[data-theme] #tvmGlobalShell .nav-toggle{min-width:22px;justify-content:center}
html[data-theme] #tvmGlobalShell .dropdown,html[data-theme] #tvmGlobalShell .submenu-list{display:none;position:absolute;inset:auto;top:calc(100% - 8px);left:-14px;width:240px;max-height:none;overflow:visible;padding:8px;background:var(--tvm-panel);border:1px solid var(--tvm-border);border-radius:8px;box-shadow:0 12px 32px #0002;z-index:101}
html[data-theme] #tvmGlobalShell .submenu-list{left:100%;top:0;width:220px}
html[data-theme] #tvmGlobalShell :is(.navgroup,.submenu):is(:hover,:focus-within,.open)>:is(.dropdown,.submenu-list){display:block}
html[data-theme] #tvmGlobalShell .dropdown :is(a,button,.nav-label){display:flex;align-items:center;justify-content:space-between;white-space:normal;width:100%;padding:10px 12px;text-align:left;border-radius:4px;height:auto}
html[data-theme] #tvmGlobalShell .submenu{position:relative}
html[data-theme] #tvmGlobalShell .submenu.has-link{display:grid;grid-template-columns:1fr 28px}
html[data-theme] #tvmGlobalShell .submenu.has-link>.nav-toggle{padding:10px 4px}
html[data-theme] #tvmGlobalShell #nav .active:after{content:'';position:absolute;left:0;right:0;bottom:18px;height:2px;background:var(--tvm-gold)}
html[data-theme] #tvmGlobalShell .account-link{flex:none;white-space:nowrap;font:500 13px/1.5 var(--tvm-font);padding:8px 12px;border:1px solid var(--tvm-border);border-radius:6px}
html[data-theme] #tvmGlobalShell .theme-switch{display:flex;align-items:center;gap:2px;flex:none;border:1px solid var(--tvm-border);border-radius:6px;padding:3px}
html[data-theme] #tvmGlobalShell .theme-switch[hidden]{display:none}
html[data-theme] #tvmGlobalShell .theme-switch button{display:flex;align-items:center;gap:4px;min-height:30px;font:500 11px/1.4 var(--tvm-font);padding:6px;border-radius:3px}
html[data-theme] #tvmGlobalShell .theme-switch svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5}
html[data-theme] #tvmGlobalShell .theme-switch button span{display:none}
html[data-theme] #tvmGlobalShell .theme-switch button[aria-pressed=true]{background:var(--tvm-soft);color:var(--tvm-ink)}
html[data-theme] #tvmGlobalShell #mobileNav{display:none}
html[data-theme] #tvmGlobalFooter footer{display:block;margin:40px 0 0;padding:36px 0 18px;border-top:1px solid var(--tvm-border);font:14px/1.7 var(--tvm-font)}
html[data-theme] #tvmGlobalFooter .footer-inner{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;padding-top:0;padding-bottom:30px}
html[data-theme] #tvmGlobalFooter .footer-inner p{font:13px/1.8 var(--tvm-font);margin:0}
html[data-theme] #tvmGlobalFooter .footer-inner p small{font:11px/1.7 var(--tvm-font)}
html[data-theme] #tvmGlobalFooter .footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:8px;font:12px/1.7 var(--tvm-font)}
html[data-theme] #tvmGlobalFooter .footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--tvm-border);padding-top:16px;padding-bottom:0;font:11px/1.7 var(--tvm-font)}
@media(max-width:1200px){
:root{--tvm-gutter:20px}
html[data-theme] #tvmGlobalShell .header{gap:14px}
html[data-theme] #tvmGlobalShell #mobileNav{display:block;order:5;font:25px/1 var(--tvm-font);padding:8px;min-width:40px;min-height:40px}
html[data-theme] #tvmGlobalShell .theme-switch{margin-left:auto}
html[data-theme] #tvmGlobalShell #nav{display:none;position:absolute;top:100%;left:var(--tvm-gutter);right:var(--tvm-gutter);width:auto;height:auto;max-height:calc(100dvh - 130px);overflow:auto;overscroll-behavior:contain;margin:0;padding:10px;gap:0;background:var(--tvm-panel);border:1px solid var(--tvm-border);border-radius:0 0 8px 8px;box-shadow:0 12px 32px #0002;font-size:14px}
html[data-theme] #tvmGlobalShell #nav.mobile-open{display:block}
html[data-theme] #tvmGlobalShell .navgroup{height:auto;display:block}
html[data-theme] #tvmGlobalShell .navgroup.has-link{display:grid;grid-template-columns:1fr 40px;gap:0}
html[data-theme] #tvmGlobalShell #nav>a,html[data-theme] #tvmGlobalShell .navgroup>button,html[data-theme] #tvmGlobalShell .navgroup>.nav-parent{height:auto;min-height:44px;padding:10px 12px;width:100%;justify-content:space-between}
html[data-theme] #tvmGlobalShell .navgroup.has-link>.dropdown{grid-column:1/-1}
html[data-theme] #tvmGlobalShell :is(.dropdown,.submenu-list){position:static;left:auto;top:auto;width:100%;padding:0 0 0 12px;border:0;box-shadow:none;background:transparent;max-height:none}
html[data-theme] #tvmGlobalShell :is(.navgroup,.submenu):is(:hover,:focus-within)>:is(.dropdown,.submenu-list){display:none}
html[data-theme] #tvmGlobalShell :is(.navgroup,.submenu).open>:is(.dropdown,.submenu-list){display:block}
html[data-theme] #tvmGlobalShell #nav .active:after{display:none}
html[data-theme][data-tvm-page] body.classic-view .workspace{grid-template-columns:1fr}
html[data-theme] #tvmGlobalFooter .footer-inner{flex-wrap:wrap}
}
@media(max-width:600px){
:root{--tvm-gutter:14px;--tvm-h1:28px;--tvm-h2:23px;--tvm-h3:18px}
html[data-theme] #tvmGlobalShell .header{height:72px;min-height:72px;gap:8px}
html[data-theme] #tvmGlobalShell .topline .wrap{font-size:10px;gap:10px}
html[data-theme] #tvmGlobalShell #topdate{display:none}
html[data-theme] #tvmGlobalShell .topline .wrap>span:first-child{max-width:none;flex:1}
html[data-theme] #tvmGlobalShell .topline .wrap>span:first-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) .brand{font-size:20px;gap:8px;letter-spacing:.6px}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) :is(.brandseal,.logo-image){width:36px;height:36px}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) .brandseal{font-size:29px}
:is(html[data-theme] #tvmGlobalShell,html[data-theme] #tvmGlobalFooter) .brand small{font-size:6px;letter-spacing:.7px}
html[data-theme] #tvmGlobalShell .account-link{display:none}
html[data-theme] #tvmGlobalShell .theme-switch{padding:2px;gap:0}
html[data-theme] #tvmGlobalShell .theme-switch button{padding:5px;min-height:30px}
html[data-theme] #tvmGlobalShell #mobileNav{padding:6px;min-width:34px}
html[data-theme] #tvmGlobalFooter .footer-inner{display:grid;grid-template-columns:1fr;gap:22px;padding-bottom:24px}
html[data-theme] #tvmGlobalFooter .footer-bottom{flex-direction:column;gap:6px}
}
}
/* Casting pages use a cinematic hero; remove the full-viewport sticky-header rule that cuts across the content. */
html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell header{border:0!important;border-bottom:0!important;border-color:transparent!important;box-shadow:none!important;outline:0!important;}
html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell header:before,html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell header:after{content:none!important;display:none!important;}
html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell>.topline{border:0!important;box-shadow:none!important;}
/* Keep the menu in normal document flow on the casting pages; its sticky edge crossed the timer/content while scrolled. */
html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell header{position:static!important;top:auto!important;inset:auto!important;}
/* Keep the shared navigation and its dropdown above divination hero cards. */
html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell{position:relative!important;z-index:10000!important;isolation:isolate;}
html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell header{z-index:10001!important;}
html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell .dropdown{z-index:10002!important;}
/* Give the shared header a real stacking context: display:contents cannot own z-index. */
html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell{display:block!important;position:relative!important;z-index:10000!important;isolation:isolate;}
html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell>header{position:relative!important;top:auto!important;z-index:10001!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;}
html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell>header:before,html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell>header:after{content:none!important;display:none!important;}
html[data-theme][data-tvm-page] body:is(.ic-cast-page,.ic-mai-hoa-page) #tvmGlobalShell .dropdown{z-index:10002!important;}
