/*! 世界历史沙盘 · © 2026 保留所有权利 All rights reserved.
 * 本文件为专有软件，未经书面许可不得复制、分发、修改或用于衍生作品。
 * 内容（疆域/朝代/事件/导览/词条）同受著作权保护。
 * build 20260905-ded011
 */
body.m2{
--m2-top: 60px;
--m2-time: 44px;
--m2-nav: 56px;
--m2-safe-t: env(safe-area-inset-top, 0px);
--m2-safe-b: env(safe-area-inset-bottom, 0px);
--m2-map-h: 48dvh;
--s0:#080d1a;
--s1:#0f1729;
--s2:#182138;
--s3:#22304e;
--hair:rgba(255,255,255,.07);
--gold:#ffcc5c;
--gold-dim:#c9a04a;
--txt:#eef2fb;
--txt2:#a7b3cd;
--txt3:#7d8aa6;
}
body.m2{
overflow:hidden !important; height:100% !important;
background:var(--s0);
overscroll-behavior:none;
-webkit-tap-highlight-color:transparent;
}
body.m2 #app{
display:block !important; height:100% !important; min-height:0 !important;
padding:0 !important; gap:0 !important;
}
body.m2 #side, body.m2 #controls, body.m2 #mobilebrief, body.m2 #tabbar,
body.m2 #sidetoggle, body.m2 #tlwrap, body.m2 #focusbar, body.m2 #yearbadge,
body.m2 #legal-line, body.m2 #searchwrap{ display:none !important; }
#m2-top{
position:fixed; top:0; left:0; right:0; z-index:40;
height:calc(var(--m2-top) + var(--m2-safe-t));
padding:var(--m2-safe-t) 12px 0 16px;
display:flex; align-items:center; gap:10px;
background:linear-gradient(180deg,rgba(8,13,26,.94) 62%,rgba(8,13,26,0));
backdrop-filter:blur(10px);
}
#m2-year{ display:flex; flex-direction:column; min-width:0; flex:1; }
#m2-year .y{ font-size:26px; font-weight:800; line-height:1.05; letter-spacing:.01em; color:#fff;
font-variant-numeric:tabular-nums; }
#m2-year .y small{ font-size:13px; font-weight:700; color:var(--gold); margin-left:5px; letter-spacing:.06em }
#m2-year .e{ font-size:12.5px; color:var(--txt2); margin-top:2px;
white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.m2-ib{
width:44px; height:44px; flex:0 0 auto; display:grid; place-items:center;
background:none; border:none; border-radius:12px; color:var(--txt);
cursor:pointer; font-family:inherit;
}
.m2-ib:active{ background:var(--s2) }
.m2-ib:focus-visible{ outline:2px solid var(--gold); outline-offset:-2px }
body.m2 #map-wrap{
position:fixed !important; left:0; right:0; z-index:1;
top:calc(var(--m2-top) + var(--m2-safe-t));
height:var(--m2-map-h);
border:none !important; border-radius:0 !important;
background:radial-gradient(120% 110% at 50% -8%,#16244e 0%,#070b18 100%) !important;
touch-action:none;
}
body.m2 #map-wrap svg#map{ width:100%; height:100%; display:block }
body.m2 .node .reg,
body.m2 .node .king,
body.m2 #cntlabels{ display:none !important }
body.m2{ --ml-main:5.0px; --ml-sub:4.4px; }
body.m2 .node .pow{ paint-order:stroke; stroke:#050912; stroke-width:1.15px }
body.m2 .frag .sn{ paint-order:stroke; stroke:#050912; stroke-width:1.15px }
body.m2 .node .lead{ opacity:.45 }
body.m2 .m2-hide{ display:none !important }
#m2-focus{
position:fixed; z-index:12; left:0; right:0;
top:calc(var(--m2-top) + var(--m2-safe-t) + var(--m2-map-h) + 6px);
height:48px; align-items:center;
display:flex; gap:7px; padding:0 12px;
overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none;
-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 12px),transparent 100%);
}
#m2-focus::-webkit-scrollbar{ display:none }
#m2-focus button{
flex:0 0 auto; min-height:44px; padding:0 16px; border-radius:22px;
background:rgba(15,23,41,.82); backdrop-filter:blur(8px);
border:1px solid var(--hair); color:var(--txt2);
font-size:13px; font-weight:600; font-family:inherit; cursor:pointer;
}
#m2-focus button.on{ background:var(--gold); color:#241a02; border-color:var(--gold); font-weight:800 }
#m2-focus button:focus-visible{ outline:2px solid var(--gold); outline-offset:2px }
#m2-sheet{
position:fixed; left:0; right:0; z-index:30;
bottom:calc(var(--m2-nav) + var(--m2-time) + var(--m2-safe-b));
height:var(--m2-sheet-h, 124px);
display:flex; flex-direction:column;
background:var(--s1);
border-radius:18px 18px 0 0;
box-shadow:0 -12px 34px rgba(0,0,0,.55);
transition:height .28s cubic-bezier(.32,.72,0,1);
}
body.m2.m2-dragging #m2-sheet{ transition:none }
#m2-grip{ height:22px; display:grid; place-items:center; flex:0 0 auto; cursor:grab; touch-action:none }
#m2-grip i{ display:block; width:38px; height:4px; border-radius:3px; background:#3a4767 }
#m2-sheet .sh-body{ flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain;
padding:0 16px 16px; -webkit-overflow-scrolling:touch }
#m2-sheet .sh-body::-webkit-scrollbar{ width:6px }
#m2-sheet .sh-body::-webkit-scrollbar-thumb{ background:#2b3550; border-radius:3px }
.sh-peek{ display:flex; align-items:center; gap:10px; padding:2px 0 10px }
.sh-peek .n{ flex:0 0 auto; background:var(--s3); color:var(--gold); font-weight:800;
font-size:12.5px; padding:4px 10px; border-radius:14px; white-space:nowrap }
.sh-peek .t{ flex:1; min-width:0; font-size:14.5px; line-height:1.35; color:var(--txt);
display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
.sh-sec{ font-size:12.5px; font-weight:700; letter-spacing:.06em; color:var(--txt3);
text-transform:none; margin:14px 0 8px }
.sh-card{ display:block; width:100%; text-align:left; background:var(--s2); border:none;
border-radius:14px; padding:13px 14px; margin-bottom:8px; cursor:pointer; font-family:inherit;
min-height:44px }
.sh-card:active{ background:var(--s3) }
.sh-card:focus-visible{ outline:2px solid var(--gold); outline-offset:2px }
.sh-card .cy{ font-size:12.5px; font-weight:700; color:var(--gold); font-variant-numeric:tabular-nums }
.sh-card .ct{ font-size:16px; font-weight:700; color:var(--txt); margin:3px 0 4px; line-height:1.35 }
.sh-card .cd{ font-size:14px; line-height:1.6; color:var(--txt2) }
.sh-row{ display:flex; align-items:center; gap:10px; padding:11px 2px; border-bottom:1px solid var(--hair);
width:100%; background:none; border-left:none; border-right:none; border-top:none;
text-align:left; cursor:pointer; font-family:inherit; min-height:44px }
.sh-row:last-child{ border-bottom:none }
.sh-row .r{ flex:0 0 92px; font-size:13.5px; color:var(--txt2) }
.sh-row .p{ flex:1; font-size:15px; color:var(--txt); font-weight:600 }
.sh-row .k{ flex:0 0 auto; font-size:13px; color:var(--gold) }
.sh-cta{ display:flex; align-items:center; justify-content:space-between; gap:8px;
width:100%; margin:10px 0 4px; padding:14px; border-radius:14px; border:none;
background:var(--s3); color:var(--txt); font-size:15px; font-weight:700;
font-family:inherit; cursor:pointer; min-height:48px }
.sh-cta .ic{ color:var(--gold) }
.sh-note{ font-size:12.5px; color:var(--txt3); line-height:1.6; margin-top:12px }
#m2-time{
position:fixed; left:0; right:0; z-index:35;
bottom:calc(var(--m2-nav) + var(--m2-safe-b));
height:var(--m2-time);
display:flex; align-items:center; gap:4px; padding:0 8px;
background:var(--s0); border-top:1px solid var(--hair);
}
#m2-time .tb{ width:44px; height:44px; flex:0 0 auto; display:grid; place-items:center; border:none;
background:none; color:var(--txt2); border-radius:12px; cursor:pointer; font-family:inherit }
#m2-time .tb:active{ background:var(--s2) }
#m2-time .tb:focus-visible{ outline:2px solid var(--gold); outline-offset:-2px }
#m2-play{
width:44px; height:44px; flex:0 0 auto; border-radius:50%; border:none;
background:var(--gold); color:#1c1403; display:grid; place-items:center;
box-shadow:0 3px 12px rgba(255,204,92,.3); cursor:pointer; font-family:inherit;
}
#m2-play:active{ transform:scale(.95) }
#m2-play:focus-visible{ outline:3px solid #fff; outline-offset:2px }
#m2-scrub{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; padding:0 4px }
#m2-scrub .lbl{ display:flex; justify-content:space-between; font-size:11px; line-height:1.15; color:var(--txt3) }
#m2-scrub .bar{ position:relative; height:3px; border-radius:3px; background:#26314c }
#m2-scrub .bar i{ position:absolute; left:0; top:0; bottom:0; border-radius:3px; background:var(--gold-dim) }
#m2-scrub .bar b{ position:absolute; top:-4.5px; width:12px; height:12px; border-radius:50%;
background:var(--gold); transform:translateX(-50%); box-shadow:0 0 0 3px rgba(255,204,92,.18) }
#m2-full{ width:44px; height:44px; flex:0 0 auto; display:grid; place-items:center; border:none; background:none;
color:var(--txt2); border-radius:12px; cursor:pointer; font-family:inherit }
#m2-nav{
position:fixed; left:0; right:0; bottom:0; z-index:45;
height:calc(var(--m2-nav) + var(--m2-safe-b));
padding-bottom:var(--m2-safe-b);
display:grid; grid-template-columns:repeat(4,1fr);
background:rgba(8,13,26,.96); backdrop-filter:blur(12px);
border-top:1px solid var(--hair);
}
#m2-nav button{
display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
border:none; background:none; color:var(--txt3); font-family:inherit;
font-size:10.5px; font-weight:600; cursor:pointer; min-height:44px;
}
#m2-nav button .ic{ opacity:.9 }
#m2-nav button.on{ color:var(--gold) }
#m2-nav button.on::before{ content:""; position:absolute; margin-top:-14px; width:22px; height:3px;
border-radius:2px; background:var(--gold) }
#m2-nav button:focus-visible{ outline:2px solid var(--gold); outline-offset:-3px }
.m2-screen{
position:fixed; left:0; right:0; top:0; z-index:38;
bottom:calc(var(--m2-nav) + var(--m2-safe-b));
background:var(--s0); display:none; flex-direction:column;
}
.m2-screen.on{ display:flex }
.m2-screen > header{
flex:0 0 auto; padding:calc(var(--m2-safe-t) + 12px) 16px 10px;
display:flex; align-items:center; gap:10px;
}
.m2-screen > header h1{ margin:0; font-size:22px; font-weight:800; color:#fff; flex:1 }
.m2-screen .scr-body{ flex:1; min-height:0; overflow-y:auto; padding:0 16px 24px }
.st-search{ display:flex; align-items:center; gap:8px; background:var(--s1); border-radius:14px;
padding:11px 13px; margin-bottom:12px; color:var(--txt3) }
.st-search input{ flex:1; background:none; border:none; color:var(--txt); font-size:16px;
font-family:inherit; outline:none; min-width:0 }
.st-chips{ display:flex; gap:7px; overflow-x:auto; scrollbar-width:none; margin-bottom:16px;
padding-bottom:2px }
.st-chips::-webkit-scrollbar{ display:none }
.st-chips button{ flex:0 0 auto; min-height:34px; padding:7px 14px; border-radius:18px;
background:var(--s1); border:1px solid var(--hair); color:var(--txt2); font-size:13.5px;
font-weight:600; font-family:inherit; cursor:pointer }
.st-chips button.on{ background:var(--gold); color:#241a02; border-color:var(--gold); font-weight:800 }
.st-h{ font-size:13px; font-weight:700; color:var(--txt3); margin:20px 0 10px; letter-spacing:.04em }
.st-hero{ position:relative; display:block; width:100%; text-align:left; border:none; padding:0;
border-radius:18px; overflow:hidden; background:var(--s1); cursor:pointer; font-family:inherit;
margin-bottom:6px }
.st-hero .thumb{ height:150px; background:var(--s2); position:relative; overflow:hidden }
.st-hero .thumb svg{ position:absolute; inset:0; width:100%; height:100% }
.st-hero .meta{ padding:13px 15px 15px }
.st-hero .kick{ font-size:11.5px; font-weight:800; letter-spacing:.1em; color:var(--gold) }
.st-hero .ttl{ font-size:19px; font-weight:800; color:#fff; margin:5px 0 5px; line-height:1.3 }
.st-hero .hook{ font-size:14px; color:var(--txt2); line-height:1.55 }
.st-card{ display:grid; grid-template-columns:96px 1fr; gap:12px; width:100%; text-align:left;
background:var(--s1); border:none; border-radius:14px; padding:10px; margin-bottom:9px;
cursor:pointer; font-family:inherit; align-items:stretch; min-height:44px }
.st-card:active{ background:var(--s2) }
.st-card:focus-visible{ outline:2px solid var(--gold); outline-offset:2px }
.st-card .thumb{ position:relative; border-radius:10px; overflow:hidden; background:var(--s2); min-height:72px }
.st-card .thumb svg{ position:absolute; inset:0; width:100%; height:100% }
.st-card .ttl{ font-size:15.5px; font-weight:700; color:var(--txt); line-height:1.35 }
.st-card .hook{ font-size:13px; color:var(--txt2); margin-top:3px; line-height:1.5;
display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden }
.st-card .foot{ display:flex; align-items:center; gap:8px; margin-top:7px; font-size:12px; color:var(--txt3) }
.st-badge{ display:inline-flex; align-items:center; gap:3px; padding:2px 8px; border-radius:11px;
font-size:11px; font-weight:800; letter-spacing:.03em }
.st-badge.free{ background:rgba(120,200,150,.16); color:#7fd6a3 }
.st-badge.pro{ background:rgba(255,204,92,.16); color:var(--gold) }
.st-prog{ flex:1; height:3px; border-radius:2px; background:#26314c; overflow:hidden; max-width:88px }
.st-prog i{ display:block; height:100%; background:var(--gold) }
.sr-box{ display:flex; align-items:center; gap:9px; background:var(--s1); border-radius:14px;
padding:12px 14px; color:var(--txt3) }
.sr-box input{ flex:1; background:none; border:none; color:var(--txt); font-size:16px;
font-family:inherit; outline:none; min-width:0 }
.sr-sec{ font-size:12.5px; font-weight:700; color:var(--txt3); margin:18px 0 8px; letter-spacing:.04em }
.sr-item{ display:flex; align-items:center; gap:12px; width:100%; text-align:left; background:none;
border:none; border-bottom:1px solid var(--hair); padding:12px 2px; cursor:pointer;
font-family:inherit; min-height:48px }
.sr-item .ico{ flex:0 0 36px; height:36px; border-radius:10px; background:var(--s2);
display:grid; place-items:center; color:var(--gold) }
.sr-item .mid{ flex:1; min-width:0 }
.sr-item .t{ font-size:15.5px; font-weight:600; color:var(--txt);
white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.sr-item .s{ font-size:12.5px; color:var(--txt3); margin-top:2px;
white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.sr-item .y{ flex:0 0 auto; font-size:13px; font-weight:700; color:var(--gold);
font-variant-numeric:tabular-nums }
.sr-chip{ display:inline-block; margin:0 6px 6px 0; padding:8px 13px; border-radius:16px;
background:var(--s1); border:1px solid var(--hair); color:var(--txt2); font-size:13.5px;
font-family:inherit; cursor:pointer; min-height:36px }
.m2-sheet2{
position:fixed; left:0; right:0; bottom:0; z-index:60;
max-height:88dvh; display:flex; flex-direction:column;
background:var(--s1); border-radius:20px 20px 0 0;
padding-bottom:var(--m2-safe-b);
transform:translateY(100%); transition:transform .3s cubic-bezier(.32,.72,0,1);
box-shadow:0 -16px 44px rgba(0,0,0,.6);
}
.m2-sheet2.on{ transform:none }
.m2-scrim{ position:fixed; inset:0; z-index:59; background:rgba(4,7,16,.62);
opacity:0; pointer-events:none; transition:opacity .25s }
.m2-scrim.on{ opacity:1; pointer-events:auto }
.m2-sheet2 > header{ display:flex; align-items:center; gap:10px; padding:16px 16px 10px; flex:0 0 auto }
.m2-sheet2 > header h2{ margin:0; font-size:18px; font-weight:800; color:#fff; flex:1 }
.m2-sheet2 .s2-body{ flex:1; min-height:0; overflow-y:auto; padding:0 16px 20px }
.m2-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px }
.m2-grid button{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px;
padding:15px 6px; border:none; border-radius:14px; background:var(--s2); color:var(--txt);
font-size:12.5px; font-weight:600; font-family:inherit; cursor:pointer; min-height:80px }
.m2-grid button .ic{ color:var(--gold) }
.m2-grid button:active{ background:var(--s3) }
.m2-grid button:focus-visible{ outline:2px solid var(--gold); outline-offset:2px }
body.m2 #m2-tl .s2-body #controls{
display:flex !important; background:none; border:none; padding:0; gap:14px;
}
body.m2 #m2-tl .ctrow{ flex-wrap:wrap; gap:10px }
body.m2 #m2-tl .hint{ display:none }
body.m2 #m2-tl #track{ margin-top:6px }
body.m2 #m2-tl #track input{ height:48px }
body.m2 #m2-tl #track input::-webkit-slider-thumb{ width:28px; height:28px }
.m2-jump{ display:flex; gap:8px; align-items:center; margin-top:4px }
.m2-jump input{ flex:1; background:var(--s2); border:1px solid var(--hair); border-radius:12px;
color:var(--txt); padding:12px 14px; font-size:16px; font-family:inherit; min-width:0 }
.m2-jump button{ flex:0 0 auto; padding:12px 18px; border-radius:12px; border:none;
background:var(--gold); color:#241a02; font-weight:800; font-size:15px; font-family:inherit;
cursor:pointer; min-height:46px }
.m2-speeds{ display:flex; gap:8px }
.m2-speeds button{ flex:1; padding:11px 0; border-radius:12px; border:1px solid var(--hair);
background:var(--s2); color:var(--txt2); font-size:14px; font-weight:600; font-family:inherit;
cursor:pointer; min-height:44px }
.m2-speeds button.on{ background:var(--gold); color:#241a02; border-color:var(--gold); font-weight:800 }
.pro-head{ text-align:center; padding:6px 0 14px }
.pro-head .ic{ color:var(--gold) }
.pro-head h2{ margin:8px 0 4px; font-size:22px; font-weight:800; color:#fff }
.pro-head p{ margin:0; font-size:14px; color:var(--txt2); line-height:1.55 }
.pro-list{ list-style:none; margin:0 0 16px; padding:0 }
.pro-list li{ display:flex; gap:10px; align-items:flex-start; padding:9px 0; font-size:15px;
color:var(--txt); line-height:1.5 }
.pro-list li .ic{ flex:0 0 auto; color:#7fd6a3; margin-top:2px }
.pro-price{ display:flex; gap:9px; margin-bottom:14px }
.pro-price button{ flex:1; padding:14px 10px; border-radius:14px; border:1px solid var(--hair);
background:var(--s2); color:var(--txt); font-family:inherit; cursor:pointer; text-align:center }
.pro-price button.on{ border-color:var(--gold); background:rgba(255,204,92,.1) }
.pro-price .p{ font-size:20px; font-weight:800 }
.pro-price .u{ font-size:12px; color:var(--txt3); margin-top:2px }
.pro-buy{ width:100%; padding:16px; border-radius:14px; border:none; background:var(--gold);
color:#241a02; font-size:16.5px; font-weight:800; font-family:inherit; cursor:pointer; min-height:52px }
.pro-fine{ font-size:12.5px; color:var(--txt3); line-height:1.65; margin-top:12px; text-align:center }
.pro-restore{ display:block; width:100%; margin-top:10px; padding:12px; background:none; border:none;
color:var(--txt2); font-size:14px; font-family:inherit; cursor:pointer; min-height:44px }
#m2-onb{ position:fixed; inset:0; z-index:70; display:none; align-items:flex-end;
background:linear-gradient(180deg,rgba(8,13,26,0) 30%,rgba(8,13,26,.92) 62%) }
#m2-onb.on{ display:flex }
#m2-onb .box{ width:100%; padding:26px 22px calc(30px + var(--m2-safe-b)); text-align:center }
#m2-onb h2{ margin:0 0 8px; font-size:23px; font-weight:800; color:#fff; line-height:1.35 }
#m2-onb p{ margin:0 0 20px; font-size:15px; color:var(--txt2); line-height:1.6 }
#m2-onb .go{ width:76px; height:76px; margin:0 auto 14px; border-radius:50%; border:none;
background:var(--gold); color:#1c1403; display:grid; place-items:center; cursor:pointer;
box-shadow:0 6px 26px rgba(255,204,92,.35) }
#m2-onb .skip{ background:none; border:none; color:var(--txt3); font-size:14px; font-family:inherit;
padding:12px 20px; cursor:pointer; min-height:44px }
.m2-tip{ position:fixed; z-index:50; max-width:260px; padding:11px 14px; border-radius:13px;
background:var(--s3); color:var(--txt); font-size:13.5px; line-height:1.5;
box-shadow:0 8px 26px rgba(0,0,0,.5) }
.m2-tip button{ display:block; margin-top:8px; background:none; border:none; color:var(--gold);
font-size:13.5px; font-weight:700; font-family:inherit; cursor:pointer; padding:6px 0; min-height:36px }
.m2-state{ display:flex; flex-direction:column; align-items:center; justify-content:center;
gap:12px; padding:52px 24px; text-align:center; color:var(--txt2) }
.m2-state .ic{ color:var(--txt3) }
.m2-state h3{ margin:0; font-size:17px; font-weight:700; color:var(--txt) }
.m2-state p{ margin:0; font-size:14px; line-height:1.6; max-width:280px }
.m2-state button{ margin-top:6px; padding:12px 22px; border-radius:12px; border:1px solid var(--hair);
background:var(--s2); color:var(--txt); font-size:14.5px; font-weight:600; font-family:inherit;
cursor:pointer; min-height:44px }
.m2-skel{ background:linear-gradient(90deg,var(--s1) 25%,var(--s2) 37%,var(--s1) 63%);
background-size:400% 100%; animation:m2sk 1.4s ease infinite; border-radius:12px }
@keyframes m2sk{ 0%{background-position:100% 0} 100%{background-position:0 0} }
@media (orientation:landscape) and (max-height:560px){
body.m2{ --m2-top:52px; --m2-time:44px; --m2-nav:52px; }
body.m2 #map-wrap{
top:calc(var(--m2-top) + var(--m2-safe-t)); height:auto;
bottom:calc(var(--m2-nav) + var(--m2-time) + var(--m2-safe-b));
right:calc(50% - 8px);
}
#m2-focus{ top:auto; bottom:calc(var(--m2-nav) + var(--m2-time) + var(--m2-safe-b) + 6px);
right:calc(50% - 8px); padding-bottom:0 }
#m2-sheet{ left:calc(50% + 8px); right:0; top:calc(var(--m2-top) + var(--m2-safe-t));
height:auto !important; border-radius:16px 0 0 0 }
.m2-screen{ padding:0 }
}
@media (prefers-reduced-motion:reduce){
body.m2 *, body.m2 *::before, body.m2 *::after{
animation-duration:.01ms !important; animation-iteration-count:1 !important;
transition-duration:.01ms !important; scroll-behavior:auto !important;
}
}
body.m2 svg.ic{ flex:0 0 auto; display:block }
.sh-cta{ align-items:center }
.sh-cta span{ flex:1; min-width:0 }
.pro-list li svg.ic{ align-self:flex-start }
.st-hero > span, .st-hero .meta > span,
.st-card > span, .st-card .mid > span{ display:block }
.st-card .mid{ display:flex; flex-direction:column; justify-content:center; min-width:0 }
.st-card .foot{ display:flex; align-items:center }
.st-badge{ display:inline-flex }
.sh-card > span{ display:block }
.sr-item > span{ display:block }
.sr-item .mid > span{ display:block }
.sh-peek > span{ display:block }
.pro-price button > span{ display:block }
#m2-nav button > span{ display:block }
.m2-grid button > span{ display:block }
.st-chips{ flex-wrap:nowrap }
#m2-focus{ flex-wrap:nowrap }
body.m2.m2-screening #m2-top{ display:none }
.pro-head svg.ic, .m2-state svg.ic, #m2-onb svg.ic{ margin:0 auto }
.m2-sheet2 > header h2:empty{ display:none }
.m2-sheet2 > header{ justify-content:flex-end }
.m2-sheet2 > header h2{ text-align:left }
.m2-sheet2 > header h2:not(:empty) ~ .m2-ib{ margin-left:auto }
body.m2 #panel-root.open .panel{
top:calc(var(--m2-safe-t) + 8px) !important;
bottom:calc(var(--m2-nav) + var(--m2-safe-b)) !important;
left:0 !important; right:0 !important; width:auto !important;
height:auto !important; max-height:none !important;
border-radius:18px 18px 0 0 !important;
}
body.m2 #dock-root{
top:calc(var(--m2-top) + var(--m2-safe-t) + var(--m2-map-h) + 6px) !important;
bottom:calc(var(--m2-nav) + var(--m2-time) + var(--m2-safe-b)) !important;
border-radius:16px 16px 0 0 !important;
z-index:31;
}
body.m2 #figcard .fc-box{ height:calc(84dvh - var(--m2-nav)); max-height:none }
body.m2 .m2-screen .scr-body{ overscroll-behavior:contain }
body.m2.m2-screening #m2-focus,
body.m2.m2-screening #m2-sheet,
body.m2.m2-screening #m2-time{ visibility:hidden }
body.m2 #panel-root .panel-close{
width:44px; height:44px; min-height:44px; display:grid; place-items:center;
border-radius:12px; font-size:18px;
}
#m2-grip{ height:44px }
body.m2 #m2-tl .speed button,
body.m2 #m2-tl .ctrow > button,
body.m2 #m2-tl #controls button{
min-width:44px; min-height:44px; padding:0 14px;
}
body.m2 #m2-tl .m2-speeds button{ min-width:44px }
body.m2 .tl-zoom button, body.m2 #tlwrap button,
body.m2 #m2-tl .tl-zoom button{ min-width:56px; min-height:44px }