/* Shared phone behaviour for the main app and all standalone sections. */
html{box-sizing:border-box;-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:pan-x pan-y}
*,*::before,*::after{box-sizing:border-box}
body{max-width:100%;overflow-wrap:break-word}
input,select,textarea{font-size:16px!important;max-width:100%;min-width:0}
textarea{resize:vertical}
img,video,canvas{max-width:100%}
:where(main,section,article,form,fieldset,.layout,.filters,.actions)>*{min-width:0}
@media(max-width:760px){
 /* Prevent Safari's keyboard from scrolling the whole application body. */
 html.helper-fixed-shell body{position:fixed;inset:0;width:100%;overflow:hidden}
 html{scroll-padding-top:16px}
 body{width:100%;margin:0;overflow-x:clip}
 body>header{padding-top:max(14px,env(safe-area-inset-top));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));flex-wrap:wrap}
 body>main,.layout{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
 body>main:not(.site-main),.layout{padding-bottom:max(28px,env(safe-area-inset-bottom))}
 h1,h2,h3,p,a,.meta,.otvet{overflow-wrap:anywhere}
 .layout,.cards,.welcome,.topline,.site-title,.trip-tools,.promise-tools,.places-tools,.rest-entry-head{max-width:100%;min-width:0}
 button,summary,[role=button]{min-height:44px}
 button{white-space:normal;overflow-wrap:anywhere}
 input:not([type=checkbox]):not([type=radio]),select{min-height:48px}
 input[type=date],input[type=time],input[type=datetime-local]{appearance:none;-webkit-appearance:none;min-width:0;width:100%}
 input::-webkit-date-and-time-value{text-align:left}
 .filters label,.site-tools label,.site-day-row label{min-width:min(130px,100%)}
 .actions{align-items:center}
 .dialog-head{align-items:flex-start}.dialog-head h2{flex:1;min-width:0}.dialog-head>button{flex-shrink:0}
 dialog{position:fixed;left:12px;right:12px;top:calc(var(--helper-vv-top,0px) + 12px);bottom:auto;margin:0 auto;width:min(640px,calc(100% - 24px));max-width:calc(100% - 24px);max-height:calc(var(--helper-vv-height,100dvh) - 24px);overflow-y:auto;overscroll-behavior:contain;padding:18px}
 .okno{top:var(--helper-vv-top,0px);bottom:auto;height:var(--helper-vv-height,100dvh);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
 .okno-karta{max-height:calc(var(--helper-vv-height,100dvh) - 12px);overflow-y:auto;overscroll-behavior:contain}
 .vhod{top:var(--helper-vv-top,0px);bottom:auto;height:var(--helper-vv-height,100dvh);overflow-y:auto;padding:16px}
 .vhod-karta{margin:auto;flex-shrink:0}
 #prilozhenie{height:100%;height:var(--helper-app-height,100dvh);min-height:0}
 #ekran{scroll-padding-bottom:24px}
 #ekran::after{content:'';display:block;height:var(--helper-keyboard-space,0px);flex-shrink:0}
 .nizhnyaya{padding-bottom:max(4px,env(safe-area-inset-bottom));flex-shrink:0}
 .site-dock{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
 .site-main{padding-bottom:calc(110px + env(safe-area-inset-bottom))}
 .site-dock a{overflow-wrap:anywhere;min-width:0}
 .promise-tools,.places-tools,.trip-tools,.rest-entry-head{flex-wrap:wrap}
 .promise-tools select{min-width:0;max-width:100%}
 .theme select{max-width:min(140px,45vw)}
 .rest-day-time{overflow-wrap:anywhere}
 .poloska,.sprosit{min-width:0}
 .poloska input[type=search],.poloska .pole,.poloska>.pole-s-golosom{min-width:0;flex-basis:160px}
 .site-clock{max-width:40%}
}
@media(max-width:360px){
 .promise-overview{grid-template-columns:1fr}
 .promise-overview>div+div{border-left:0;border-top:1px solid var(--line)}
 .site-title{flex-wrap:wrap}.site-clock{max-width:none}
 .home-finder .actions{align-items:flex-start}
 .home-finder .actions>label{font-size:14px}
 .places-hero h1,.memory-intro h1,.promise-intro h1,.rest-intro h1{font-size:36px}
 .filters label{flex-basis:100%}
}


/* Keep every exit below iOS system chrome; never scroll the close action away. */
:root{--helper-safe-top:env(safe-area-inset-top,0px);--helper-safe-bottom:env(safe-area-inset-bottom,0px)}
.helper-login-exit{position:sticky;top:-18px;z-index:8;margin:-18px -18px 12px;padding:12px 18px;background:var(--panel,var(--fon-karty,#20343d));text-align:right}
.helper-login-exit a{display:inline-flex;align-items:center;min-height:44px;color:inherit}
@media(max-width:760px){
 dialog:not(#product-scanner){padding:18px!important;top:calc(var(--helper-vv-top,0px) + var(--helper-safe-top) + 10px)!important;bottom:auto!important;max-height:calc(var(--helper-vv-height,100dvh) - var(--helper-safe-top) - var(--helper-safe-bottom) - 20px)!important;scroll-padding-top:88px}
 dialog:not(#product-scanner) :is(.dialog-head,.docs-head),dialog.car-dialog header{position:sticky;top:-18px;z-index:8;background:var(--panel,var(--fon-karty,#20343d));margin:-18px -18px 14px;padding:12px 18px;border-bottom:1px solid var(--line,var(--kraj,#45606a));backdrop-filter:none!important;-webkit-backdrop-filter:none!important;align-items:center;flex-wrap:nowrap}
 dialog :is(.dialog-head,.docs-head) h2,dialog.car-dialog header h2{font-size:20px;line-height:1.2;margin:0;min-width:0}
 dialog :is(.dialog-head,.docs-head) button,dialog.car-dialog header button{min-height:44px;flex-shrink:0}
 .okno{top:calc(var(--helper-vv-top,0px) + var(--helper-safe-top) + 10px)!important;height:calc(var(--helper-vv-height,100dvh) - var(--helper-safe-top) - var(--helper-safe-bottom) - 20px)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 .okno-karta{max-height:100%!important;scroll-padding-top:72px}
 .okno-karta>.zakryt{position:sticky;top:0;z-index:8;background:var(--fon-karty,#20343d)}
 .shapka{background:var(--fon)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 .vhod{padding-top:calc(var(--helper-safe-top) + 16px);padding-bottom:calc(var(--helper-safe-bottom) + 16px)}
}
@media(max-width:760px) and (display-mode:standalone){:root{--helper-safe-top:max(44px,env(safe-area-inset-top,0px))}}

#helper-logo-top{border:0;background:transparent;color:inherit;padding:8px 0;min-height:44px;cursor:pointer;text-align:left}


/* Орбита: движение за содержимым, без перехвата нажатий. */
:root[data-oblik="orbit"]{
 --fon:#101f38;--fon-karty:#192c47;--fon-pole:#13243c;--fon-verh:#233958;
 --tekst:#f2f6fc;--tekst-tikho:#b9cbe2;--kraj:#405777;--kraj-yarko:#7089aa;
 --akcent:#ffd593;--akcent-tekst:#30200b;--srochno:#ff9e98;--sdelano:#9ad7ba;
 --setka:#314968;--bg:var(--fon);--panel:var(--fon-karty);--paper:var(--fon-verh);
 --ink:var(--tekst);--muted:var(--tekst-tikho);--accent:var(--akcent);--on:var(--akcent-tekst);--line:var(--kraj);--danger:var(--srochno);
}
:root[data-oblik="orbit"][data-tema="daylight"],:root[data-oblik="orbit"][data-tema="den"]{
 --fon:#eaf0f8;--fon-karty:#fafdff;--fon-pole:#e3ebf6;--fon-verh:#dbe5f2;
 --tekst:#162f50;--tekst-tikho:#45617e;--kraj:#a7bbd2;--kraj-yarko:#6885a6;--akcent:#855011;--akcent-tekst:#fff9ee;--srochno:#ad3033;
}
:root[data-oblik="orbit"][data-tema="nightvision"]{
 --fon:#1d1518;--fon-karty:#2a1d21;--fon-pole:#21171a;--fon-verh:#372329;
 --tekst:#f6c6bc;--tekst-tikho:#c49188;--kraj:#704b49;--akcent:#efa891;--akcent-tekst:#291514;
}
:root[data-oblik="orbit"] body{isolation:isolate;position:relative;background:var(--fon);color:var(--tekst);font-family:"Onest",system-ui,sans-serif}
:root[data-oblik="orbit"] body::before{
 content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
 background:radial-gradient(ellipse 480px 360px at 0% 38%,transparent 59%,#89b8ee28 59.3%,transparent 60%,transparent 69%,#ffd59325 69.3%,transparent 70%),
 radial-gradient(ellipse 440px 640px at 100% 75%,transparent 61%,#89b8ee30 61.3%,transparent 62%);
 animation:helper-orbit 24s ease-in-out infinite alternate;transform-origin:center;will-change:transform;
}
@keyframes helper-orbit{from{transform:translateY(-2%) scale(1)}to{transform:translateY(3%) scale(1.08)}}
:root[data-oblik="orbit"] :is(.karta,.bc-case,.item,.okno-karta,dialog){background:var(--fon-karty);border:1px solid var(--kraj);border-radius:20px;box-shadow:0 8px 22px #09152b22}
:root[data-oblik="orbit"] :is(.shapka,.nizhnyaya,body>header){background:var(--fon);backdrop-filter:none}
:root[data-oblik="orbit"] :is(.privet-tekst,h1,h2,.karta-imya,.shapka-imya){font-family:"Onest",system-ui,sans-serif;letter-spacing:-.025em}
:root[data-oblik="orbit"] :is(button,.knopka){transition:background-color .2s,transform .16s}
:root[data-oblik="orbit"] :is(button,.knopka):active{transform:scale(.98)}
:root[data-oblik="orbit"] :is(.glavnaya-knopka,.primary){background:var(--akcent);color:var(--akcent-tekst);box-shadow:none}
.preview-orbit{background:#101f38;color:#f2f6fc;position:relative;overflow:hidden}
.preview-orbit::after{content:"";position:absolute;width:150px;height:150px;border:1px solid #ffd593;border-radius:50%;right:-60px;top:12px;box-shadow:0 0 0 16px #8ebff322,0 0 0 32px #8ebff311;pointer-events:none}
.orbit-motion{display:flex;align-items:center;gap:10px;margin-top:20px;min-height:44px}
.orbit-motion input{width:22px;height:22px;min-height:22px;margin:0}
:root[data-motion="off"][data-oblik="orbit"] body::before{animation:none;will-change:auto}
:root[data-page-hidden="true"][data-oblik="orbit"] body::before{animation-play-state:paused}
:root[data-motion="off"][data-oblik="orbit"] :is(button,.knopka){transition:none}
@media(prefers-reduced-motion:reduce){
 :root[data-oblik="orbit"] body::before{animation:none;will-change:auto}
 :root[data-oblik="orbit"] :is(button,.knopka){transition:none}
 :root[data-oblik="orbit"] :is(button,.knopka):active{transform:none}
}

/* HELPer volume system: five materials, three lighting modes.
   Geometry stays in normal flow; depth never changes safe areas or hit targets. */
:root{
 --volume-light:#ffffff18;--volume-edge:#0007;--volume-shadow:#0005;
 --volume-lift:6px;--volume-radius:var(--r3,18px);--volume-glint:9%;
 --volume-surface:var(--fon-karty,var(--panel,#20343d));
 --volume-field:var(--fon-pole,var(--paper,#2a414a));
 --volume-text:var(--tekst,var(--ink,#eff4ef));
 --volume-accent:var(--akcent,var(--accent,#aad7c1));
 --volume-on:var(--akcent-tekst,var(--on,#14332a));
 --volume-line:var(--kraj,var(--line,#45606a));
}
:root:is([data-tema="daylight"],[data-tema="den"]){
 --volume-light:#fff;--volume-edge:#53647735;--volume-shadow:#263b5426;--volume-glint:40%;
 /* Shared standalone pages use the same lighting vocabulary as the main app. */
 --bg:#edf1f5;--panel:#fdfefe;--paper:#e5ebf1;--ink:#1b2938;--muted:#506071;--line:#bdc9d5;--danger:#ae332d;
 --accent:#765b11;--on:#fff;
}
:root[data-oblik="montage"]{--volume-radius:12px;--volume-lift:5px}
:root[data-oblik="rack"]{--volume-radius:8px;--volume-lift:7px;--volume-glint:15%}
:root[data-oblik="ether"]{--volume-radius:26px;--volume-lift:8px;--volume-glint:12%}
:root[data-oblik="orbit"]{--volume-radius:22px;--volume-lift:7px;--volume-glint:14%}
:root[data-oblik="montage"]:is([data-tema="daylight"],[data-tema="den"]){--accent:#2455d6;--on:#fff}
:root[data-oblik="ether"]:is([data-tema="daylight"],[data-tema="den"]){--bg:#efebf0;--panel:#fcf9fc;--paper:#e6e0e9;--ink:#302637;--muted:#685d70;--line:#cfc4d5;--accent:#3c6355;--on:#fff}
:root[data-oblik="orbit"]:is([data-tema="daylight"],[data-tema="den"]){--bg:var(--fon);--panel:var(--fon-karty);--paper:var(--fon-verh);--ink:var(--tekst);--muted:var(--tekst-tikho);--line:var(--kraj);--accent:var(--akcent);--on:var(--akcent-tekst)}
:root[data-tema="nightvision"]{
 --volume-light:#c88d7610;--volume-edge:#0009;--volume-shadow:#0006;--volume-glint:2%;
 --bg:#0b0707;--panel:#140c0c;--paper:#1b1110;--ink:#d9a99f;--muted:#b48679;--line:#52332d;--accent:#cc5a37;--on:#120807;--danger:#ff927a;
}
:root[data-oblik][data-tema] :is(.karta,.plitka,.item,.welcome,.bc-case,.okno-karta,.vhod-karta,dialog){
 background-color:var(--volume-surface);
 background-image:linear-gradient(145deg,color-mix(in srgb,var(--volume-surface),#fff var(--volume-glint)),var(--volume-surface) 62%);
 border-radius:var(--volume-radius);
 box-shadow:inset 0 1px 0 var(--volume-light),inset 1px 0 0 var(--volume-light),inset 0 -1px 0 var(--volume-edge),0 var(--volume-lift) 0 -2px var(--volume-edge),0 16px 28px -12px var(--volume-shadow);
}
:root[data-oblik="rack"][data-tema] :is(.karta,.item,.bc-case){
 border-top:2px solid var(--kraj-yarko,var(--line));
 background-image:linear-gradient(100deg,transparent 93%,var(--volume-light) 94%,transparent 95%),linear-gradient(180deg,color-mix(in srgb,var(--volume-surface),#fff var(--volume-glint)),var(--volume-surface) 68px);
}
:root[data-oblik="montage"][data-tema] :is(.karta,.item,.bc-case){border-left:3px solid var(--volume-accent)}
:root[data-oblik="ether"][data-tema] :is(.karta,.item,.welcome){
 box-shadow:inset 1px 2px 2px var(--volume-light),inset -1px -2px 3px var(--volume-edge),0 7px 0 -3px var(--volume-edge),0 18px 32px -12px var(--volume-shadow);
}
:root[data-oblik="orbit"][data-tema] :is(.karta,.item,.welcome){
 border-color:color-mix(in srgb,var(--volume-line),var(--volume-text) 18%);
 background-image:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--volume-accent) 8%,transparent),transparent 60%),linear-gradient(145deg,color-mix(in srgb,var(--volume-surface),#fff var(--volume-glint)),var(--volume-surface) 65%);
}
/* Keycaps: raised face and a solid sidewall; depression answers the press. */
:root[data-oblik][data-tema] :is(.knopka,.primary,.actions>button,.temy>button,.zakladka){
 color:var(--volume-text);border-color:var(--volume-line);
 background:linear-gradient(165deg,color-mix(in srgb,var(--volume-field),#fff var(--volume-glint)),var(--volume-field));
 box-shadow:inset 0 1px 0 var(--volume-light),inset 0 -1px 0 var(--volume-edge),0 3px 0 var(--volume-edge),0 6px 10px -5px var(--volume-shadow);
 transition:transform .14s ease,box-shadow .14s ease;
}
:root[data-oblik][data-tema] :is(.glavnaya-knopka,.primary,.temy>button.vybrana,.zakladka.vybrana){
 background:var(--volume-accent);color:var(--volume-on);border-color:transparent;
 box-shadow:inset 0 1px 0 var(--volume-light),inset 0 -1px 0 var(--volume-edge),0 3px 0 color-mix(in srgb,var(--volume-accent),#000 45%),0 6px 12px -5px var(--volume-shadow);
}
:root[data-oblik][data-tema] :is(.knopka,.primary,.actions>button,.temy>button,.zakladka):not(:disabled):active{
 transform:translateY(2px);box-shadow:inset 0 2px 4px var(--volume-edge),0 1px 0 var(--volume-edge);
}
:root[data-oblik][data-tema] :is(.knopka,.primary,.actions>button,.temy>button,.zakladka):disabled{transform:none;box-shadow:inset 0 1px 2px var(--volume-edge);opacity:.55}
:root[data-oblik][data-tema] :is(.pole,.sprosit input,input:not([type="checkbox"]):not([type="radio"]),textarea,select):not(:focus){
 box-shadow:inset 0 2px 4px var(--volume-edge),0 1px 0 var(--volume-light);
}
:root[data-oblik][data-tema] :is(.shapka,.nizhnyaya,body>header){
 box-shadow:inset 0 1px 0 var(--volume-light),0 4px 16px -8px var(--volume-shadow);
}
:root[data-oblik][data-tema] .nizhnyaya{background:var(--fon,var(--bg));border-image:none;border-top:1px solid var(--volume-line)}
:root[data-oblik][data-tema] .vkladka.vybrana{
 background:linear-gradient(180deg,color-mix(in srgb,var(--volume-accent) 12%,var(--fon,var(--bg))),var(--fon,var(--bg)));
 border-radius:12px 12px 0 0;box-shadow:inset 1px 1px 0 var(--volume-light),inset -1px 0 0 var(--volume-edge);
}
:root[data-oblik][data-tema] .vkladka.vybrana::before{box-shadow:none}
:root[data-oblik][data-tema] .vkladka .ikonka{filter:drop-shadow(0 2px 0 var(--volume-edge))}
:root[data-oblik][data-tema] .temy{box-shadow:inset 0 2px 4px var(--volume-edge),0 1px 0 var(--volume-light)}
:root[data-oblik][data-tema] :is(.knopka,.primary,.actions>button,.temy>button,.zakladka,.vkladka):focus-visible{outline:3px solid var(--akcent-slovo,var(--accent));outline-offset:3px}
@media(hover:hover) and (pointer:fine){
 :root[data-oblik][data-tema] :is(.knopka,.primary,.actions>button,.zakladka):not(:disabled):hover{transform:perspective(500px) translateY(-1px) rotateX(3deg)}
 :root[data-oblik][data-tema] :is(.knopka,.primary,.actions>button,.zakladka):not(:disabled):active{transform:translateY(2px)}
}
:root[data-motion="off"][data-oblik][data-tema] :is(.knopka,.primary,.actions>button,.temy>button,.zakladka){transition:none;transform:none!important}
@media(prefers-reduced-motion:reduce){
 :root[data-oblik][data-tema] :is(.knopka,.primary,.actions>button,.temy>button,.zakladka){transition:none;transform:none!important}
}
@media(forced-colors:active){
 :root[data-oblik][data-tema] :is(.karta,.plitka,.item,.welcome,.knopka,.primary,.temy>button,.zakladka,.vkladka){box-shadow:none;background-image:none;border:1px solid CanvasText}
 :root[data-oblik][data-tema] :is(.vkladka.vybrana,.temy>button.vybrana,.zakladka.vybrana){outline:2px solid Highlight;outline-offset:-3px}
}

/* Consistent field boundaries, including descendants of disclosure widgets. */
input,select,textarea,button,.pole{box-sizing:border-box;min-width:0;max-width:100%}
:where(label,fieldset,.pair,.filters,.actions,.poloska,.tm-columns,.studio-workbench)>*{min-width:0}
button,input,select,textarea{font-family:inherit}
button{overflow-wrap:anywhere}
fieldset{min-inline-size:0}
:where(.actions,.filters,.poloska){row-gap:12px}
.outing-shortcut{display:flex;gap:12px;align-items:center;text-decoration:none;margin:12px 0 24px;white-space:normal}
.outing-shortcut>span:first-child{font-weight:750}.outing-shortcut small{flex:1;color:var(--tekst-tikho);line-height:1.4}.outing-shortcut>span:last-child{font-size:24px}
@media(max-width:760px){
 .tm-dialog:not(#product-scanner){padding:0!important;left:8px;right:8px}
 .tm-head{position:sticky;top:0;z-index:8}
 .tm-close{flex-shrink:0}
 .outing-shortcut{flex-wrap:wrap}.outing-shortcut small{flex-basis:55%}
 .zakladki{padding-bottom:8px;scroll-padding-inline:8px}
}
