/* v39: дизайн-система «Олива» (светлая/тёмная) */
html[data-theme=light]{--bg:#E8ECE5;--card:#EEF1EB;--hi:#FFFFFF;--lo:#C9CFC4;--t:#1E231D;--mu:#6F786D;--ac:#7E9F75;--acs:#DCE5D7;--pill:#1E231D;--pt:#F1F4EE;--glass:rgba(255,255,255,.6);--gb:rgba(255,255,255,.75);--hero:linear-gradient(160deg,#DCE6D6,#C3D3BB);--line:rgba(30,35,29,.10);--warn:#C58A4A;--bad:#C2543F;--in:#E2E7DE;--kn:#FFFFFF}
html[data-theme=dark]{--bg:#151815;--card:#1A1E1A;--hi:#232823;--lo:#0B0D0B;--t:#ECF0EA;--mu:#8D978B;--ac:#A9C7A0;--acs:#243024;--pill:#A9C7A0;--pt:#151815;--glass:rgba(40,46,40,.6);--gb:rgba(255,255,255,.08);--hero:linear-gradient(160deg,#253025,#1C231C);--line:rgba(255,255,255,.08);--warn:#E0A86A;--bad:#E07A66;--in:#121512;--kn:#151815}
html,body{background:var(--bg)!important;color:var(--t);font-family:Inter,Roboto,'Noto Sans',sans-serif!important;-webkit-font-smoothing:antialiased}
*{font-family:inherit}
.screen{background:var(--bg)!important;padding-left:22px;padding-right:22px;padding-bottom:120px!important}
.screen.on{animation:scrIn .32s cubic-bezier(.2,.8,.2,1)}
@keyframes scrIn{from{opacity:0;transform:translateY(8px)}}
h1{font-weight:600!important;font-size:28px!important;letter-spacing:-.7px!important;color:var(--t)}
h2{font-size:12px!important;font-weight:600!important;letter-spacing:.8px!important;color:var(--mu)!important;margin:26px 0 12px!important}
.sub,.hist,label,.field label{color:var(--mu)!important}
.glow-c,.glow-m{color:var(--ac)!important;text-shadow:none!important}
.card,.dlgbox{background:var(--card)!important;border:none!important;border-radius:24px!important;box-shadow:7px 7px 16px var(--lo),-7px -7px 16px var(--hi)!important;color:var(--t);transition:transform .18s,box-shadow .18s}
.card[onclick]:active,.card.obj:active{transform:scale(.975);box-shadow:inset 4px 4px 10px var(--lo),inset -4px -4px 10px var(--hi)!important}
.screen.on .card{animation:up .45s cubic-bezier(.2,.8,.2,1) both}
.screen.on .card:nth-child(2){animation-delay:.05s}.screen.on .card:nth-child(3){animation-delay:.1s}.screen.on .card:nth-child(4){animation-delay:.15s}.screen.on .card:nth-child(5){animation-delay:.2s}.screen.on .card:nth-child(n+6){animation-delay:.25s}
@keyframes up{from{opacity:0;transform:translateY(14px)}}
.btn{background:var(--pill)!important;color:var(--pt)!important;border:none!important;border-radius:99px!important;box-shadow:none!important;font-weight:600!important;font-size:15px!important;padding:16px!important;transition:transform .15s,opacity .15s!important}
.btn:active,.btn.pressed{transform:scale(.97)!important;opacity:.9}
.btn.m,.btn.l{background:var(--pill)!important;color:var(--pt)!important}
.btn.ghost{background:var(--card)!important;color:var(--t)!important;box-shadow:5px 5px 12px var(--lo),-5px -5px 12px var(--hi)!important}
.btn.big{border-radius:28px!important;padding:26px 16px!important;font-size:18px!important}
.btn.big span{color:inherit;opacity:.7}
.sbtn,.chip.on{background:var(--pill)!important;color:var(--pt)!important;box-shadow:none!important;border-radius:99px!important;font-weight:600!important;transition:transform .15s}
.sbtn:active{transform:scale(.95)!important}
.chip{background:var(--card)!important;color:var(--mu)!important;border:none;box-shadow:3px 3px 8px var(--lo),-3px -3px 8px var(--hi)!important;font-weight:600!important;transition:all .2s}
.input,.mini,.days,select.mini{background:var(--in)!important;border:1px solid transparent!important;color:var(--t)!important;border-radius:16px!important;box-shadow:inset 3px 3px 7px var(--lo),inset -3px -3px 7px var(--hi)!important;font-weight:500!important;transition:border-color .2s}
.input:focus,.mini:focus{border-color:var(--ac)!important;outline:none}
.mini.hl{color:var(--t)!important;border-color:var(--ac)!important}
.input::placeholder,.mini::placeholder{color:var(--mu)}
.days b{font-weight:300;letter-spacing:-.5px}
.badge{background:transparent!important;border:none!important;color:var(--t)!important;font-weight:500!important;padding:4px 0!important}
.badge:before{box-shadow:none!important;width:8px!important;height:8px!important}
.badge.ok:before{background:var(--ac)}.badge.wait:before{background:var(--warn)}.badge.err:before{background:var(--bad)}.badge.code:before{background:var(--mu)}
.msg{color:var(--t)}.msg.err,.err{color:var(--bad)!important}
.msg.wait,.msg.ok,.msg.code{color:var(--t)!important;background:var(--acs)!important;border:none!important;border-radius:14px;padding:8px}
.back{color:var(--mu)!important;font-weight:500!important}
.logo{background:var(--card)!important;box-shadow:8px 8px 20px var(--lo),-8px -8px 20px var(--hi)!important;border-radius:30px!important}
.thumb,.thumbs img{background:var(--card)!important;box-shadow:4px 4px 10px var(--lo),-4px -4px 10px var(--hi)!important}
.toggle{background:var(--in)!important;box-shadow:inset 3px 3px 7px var(--lo),inset -3px -3px 7px var(--hi)!important;transition:background .25s}
.toggle:after{background:var(--card)!important;box-shadow:2px 2px 5px var(--lo)!important;transition:left .25s cubic-bezier(.3,.7,.3,1.3),background .25s!important}
.toggle.on{background:var(--ac)!important}.toggle.on:after{background:var(--kn)!important}
.obj .name{font-weight:600!important}
.odel{background:var(--card)!important;color:var(--mu)!important;border:none!important;box-shadow:2px 2px 6px var(--lo)!important}
.eye,.eye.on{background:transparent!important;color:var(--mu)!important;filter:none!important}
.dlg{background:rgba(10,12,10,.45)!important;backdrop-filter:blur(8px)}
.dlg.on .dlgbox{animation:pop .25s cubic-bezier(.2,.8,.2,1.2)}@keyframes pop{from{opacity:0;transform:scale(.94)}}
.tabs{left:16px!important;right:16px!important;width:auto!important;bottom:calc(14px + env(safe-area-inset-bottom))!important;height:66px!important;padding:0!important;border-radius:33px;background:var(--glass)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--gb)!important;box-shadow:0 10px 30px rgba(0,0,0,.14)!important}
.tab{color:var(--mu)!important;font-size:0!important;gap:0!important}
.tab i{width:46px!important;height:46px!important;border-radius:99px!important;transition:background .25s,color .25s;color:var(--mu)}
.tab.on i{background:var(--pill)!important;color:var(--pt)!important;box-shadow:none!important}
.tab i svg{width:21px;height:21px}
.thm{width:42px;height:42px;border-radius:99px;border:none;display:grid;place-items:center;color:var(--t);background:var(--card);box-shadow:5px 5px 12px var(--lo),-5px -5px 12px var(--hi);cursor:pointer;transition:transform .15s}
.thm:active{transform:scale(.92)}
#logout{background:var(--card)!important;color:var(--mu)!important;box-shadow:5px 5px 12px var(--lo),-5px -5px 12px var(--hi)!important}
.seg{display:flex;gap:4px;padding:4px;border-radius:99px;box-shadow:inset 3px 3px 7px var(--lo),inset -3px -3px 7px var(--hi);margin-top:12px}
.seg div{flex:1;height:42px;border-radius:99px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--mu);cursor:pointer;transition:background .25s,color .25s}
.seg div.on{background:var(--pill);color:var(--pt)}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.cabcard{border:none!important;background:var(--card);box-shadow:5px 5px 12px var(--lo),-5px -5px 12px var(--hi)}

/* v48: themed links — soft olive accent, no browser blue/purple */
a,a:link,a:visited{color:var(--ac)!important;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:var(--ac)}
a:hover,a:active,a:focus{color:var(--ac)!important;opacity:.88;outline:none}
