/* Shared visual system for resident and working cabinets. No external fonts/assets. */
/* Form, account, payment and list surfaces share the same contrast palette. */
.profile-menu button,.cabinet-grid button,.quick-grid button,.filter-tabs button,.tabs button,.address-results button{background:#17263b;color:#edf4ff;border:1px solid #354b65}.profile-menu button b{color:#edf4ff}.profile-menu button small{color:#acbed7}.filter-tabs button.active,.tabs button.active{background:#164c48;color:#bdffed;border-color:#43baa4}.profile-menu button>span{background:#243954;border-radius:13px;padding:8px}.profile-menu button{min-height:70px;border-radius:18px}
.profile-main-button.work-mode-entry{background:linear-gradient(120deg,#173c42,#1c2946);border-color:#387c7c;color:#e1fff5}.profile-summary{border-radius:22px;padding:18px}.avatar{color:#062821}
.weather-cloudy .weather-orb{background:radial-gradient(circle at 28% 25%,#f3f7ff,#98aecf 45%,#4e658c);box-shadow:inset -12px -15px 24px #344368,0 0 45px #9bc8ff25}.weather-night .weather-orb{background:radial-gradient(circle at 30% 20%,#eafaff,#899bcd 40%,#293555);box-shadow:inset -28px -5px 4px #192343,0 0 30px #b1c7ff30}.weather-unavailable .weather-orb{filter:grayscale(1);opacity:.3}
.payment-amount,.flyer-total-bar,.taxi-price-card,.loyalty-card,.promo-card,.voucher-card,.master-profile,.profile-section,.mini-card,.quick-card,.address-card,.service-card,.booking-card{background:#16263b;color:#e5f1ff;border-color:#354b65}.small-actions{flex-wrap:wrap}.small-actions button{min-height:44px}.form-fold summary{min-height:48px;padding:14px;cursor:pointer}.form-fold summary:focus-visible{outline:3px solid #53f4d1}
.big-action.subtle,.mode-card.active,.wanted-match-card.master-match,.promo-waiting{background:#17263b;color:#e6f1ff;border-color:#354b65}.cabinet-head>button{background:#20354d;color:#d5f3ff}.cabinet-stats b{font-size:20px}.cabinet-stats span{font-size:11px}
.field-check,.field-check span,.form-fold,.form-fold summary,.payment-box,.payment-details,.request-meta,.taxi-route-card{background:#16263b;color:#e1edff;border-color:#354b65}.field-check input{accent-color:#43e7c3}.field-check{border:1px solid #354b65;border-radius:13px;padding:12px;min-height:48px}
.request-form-simple .sticky-submit{position:static;margin:18px 0 8px;box-shadow:0 0 22px #35d9b71f}.text-action{color:#8de8de}.simple-page{overflow-wrap:break-word}
.profile-main-button,.profile-now-card,.profile-summary,.form-block,.request-card,.request-summary,.details-grid>div,.offer-card,.appointment-card,.master-card,.wanted-match-card,.market-card,.cabinet-stats>div{background:linear-gradient(145deg,#1b2940,#111b2c);color:#edf4ff;border:1px solid #30415c;box-shadow:inset 0 1px #ffffff12,0 8px 22px #0003}
.profile-main-button b,.profile-now-card b,.profile-summary h2,.form-block b,.cabinet-stats b{color:#f0f7ff}.profile-main-button small,.cabinet-stats span{color:#acbed7}
.profile-main-actions .primary{background:#164d48;color:#d9fff4}.profile-main-actions .primary small{color:#cbf7e9}
.cabinet-head,.page-head{border-bottom:1px solid #2b3950;padding-bottom:14px;margin-bottom:16px}.cabinet-head h2,.page-head h2{color:#f2f7ff;letter-spacing:-.6px}
.compact-alert,.compact-alert.neutral,.compact-alert.good{background:#172c40;color:#d8ebff;border-color:#3c5a72}.compact-alert.warning,.big-action.warning{background:#352b21;color:#ffe5b4;border-color:#856338}.compact-alert.success{background:#123b35;color:#b5ffe6}.compact-alert.danger{background:#452031;color:#ffbdc8}
.simple-page p,.simple-page small{line-height:1.5}.simple-page input::placeholder,.simple-page textarea::placeholder{color:#899cb6;opacity:1}.simple-page input,.simple-page select,.simple-page textarea{font-size:16px}
.simple-page button:disabled{opacity:.5;cursor:not-allowed}.simple-page a{color:#76e9df}.empty{padding:28px 16px;border:1px dashed #40506a;border-radius:18px;background:#101c2c;color:#bfcee2;line-height:1.6}
.row,.days .day{border-color:#31415a}.form-block{padding:16px;border-radius:20px}.cabinet-stats{gap:8px}.cabinet-stats>div{border-radius:16px;padding:14px 9px;min-width:0;overflow-wrap:anywhere}
.profile-main-button{min-height:78px}.profile-main-button>span{background:#243954;padding:10px;border-radius:14px;box-shadow:inset 0 1px #ffffff20,0 5px 12px #0004}
.simple-page,.home-welcome{animation:screen-in .2s ease-out}@keyframes screen-in{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:none}}
:root{color-scheme:dark;--bg:#090e1a;--card:#131d30;--green:#53f4d1;--muted:#a8b7ce;--line:#2b3950;--good:#65efbf;--bad:#ff93a5}
body{background:radial-gradient(ellipse at 95% 0,#22234b 0,transparent 45%),var(--bg);color:#edf4ff;min-height:100vh;padding-bottom:calc(96px + env(safe-area-inset-bottom))}
header{background:#0b1223ed;border-color:var(--line);backdrop-filter:blur(16px);padding-top:max(15px,env(safe-area-inset-top))}
main{max-width:760px;margin:auto;padding-top:10px}
button,input,select,textarea{font:inherit}button{touch-action:manipulation;cursor:pointer;min-height:44px}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #53f4d1;outline-offset:3px}
.brand b{letter-spacing:-.4px}.brand small{color:#a8b7ce}
.panel,.card,.clean-card,.kpi,.mode-card,.category-card,.home-feature,.action-list button,.grid button,.big-action,.profile-now-empty,.weather-day,.content-fold,.check{background:linear-gradient(145deg,#1b2940,#111b2c);color:#edf4ff;border:1px solid #30415c;box-shadow:inset 0 1px #ffffff0c,0 8px 22px #0003;border-radius:20px}
.big-action{padding:17px;min-height:78px}.big-action>span{display:grid;place-items:center;min-width:44px;height:44px;border-radius:14px;background:linear-gradient(145deg,#334366,#18273e);box-shadow:inset 0 1px #ffffff26,0 6px 10px #0004}
.big-action div{min-width:0}.big-action b{color:#f1f6ff;font-size:16px}.big-action small,.muted-note,.profile-now-empty span{color:#a8b7ce;line-height:1.5}.big-action em{color:#63f9d9}
.primary,.big-action.primary,.home-feature.primary-feature{background:linear-gradient(120deg,#144e4d,#19374b);color:#a2ffe8;border:1px solid #48cdb1;box-shadow:inset 0 1px #ffffff20,0 6px 26px #29e5be15}
.primary small,.primary b{color:#ddfff5}.soft,.badge,.pill,.profile-chip,.mode-pill,.switcher button,.weather-chip{background:#20304a;color:#d9edff;border:1px solid #3a516e}
.danger,.notice.bad{background:#452031;color:#ffb8c5;border:1px solid #854055}.notice,.warnbox{background:#342c20;color:#ffe1a1;border-color:#816633}.notice.ok{background:#123b34;color:#a2ffe0}.notice.wait{background:#202e4d;color:#c8d9ff}
.field input,.field textarea,.field select,.category-search input,.days input{background:#0b1526;color:#eff6ff;border-color:#41516b}.field label{color:#bbc9dd}
.section-title{color:#a6bed5;font-size:11px;letter-spacing:.12em;margin-top:24px}
.home-link-strip button{background:#142138;color:#d5e7fa;border:1px solid #324663;border-radius:14px;min-height:46px}
.home-welcome h2{font-size:30px;letter-spacing:-1px}.home-welcome small{color:#7bdecf}
.bottom-nav{background:#101a2bf5;border-top:1px solid #38465f;backdrop-filter:blur(18px);padding-bottom:calc(10px + env(safe-area-inset-bottom));box-shadow:0 -8px 32px #0003}
.bottom-nav button{color:#b8c7dc;border-radius:14px}.bottom-nav button.active{color:#69ffda;background:#183f40}.bottom-nav button span{font-size:11px}
.weather-hero{isolation:isolate;position:relative;overflow:hidden;width:100%;text-align:left;display:block;padding:24px;border-radius:28px;min-height:258px;background:radial-gradient(ellipse at 83% 36%,#424592 0,transparent 53%),linear-gradient(130deg,#183b53,#151b39 80%);color:#fff;border:1px solid #6270a0;box-shadow:inset 0 1px #ffffff30,0 18px 36px #0005,0 0 30px #5966ff12;margin-bottom:12px}
.weather-location{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.16em;color:#c0ddf2;position:relative;z-index:2}.weather-location span{color:#8dffe0;font-size:10px}
.weather-temperature{display:block;font-size:82px;line-height:1.1;font-weight:500;letter-spacing:-6px;margin:22px 0 8px;position:relative;z-index:2}
.weather-condition,.weather-details{display:block;position:relative;z-index:2}.weather-condition{font-size:18px}.weather-details{font-size:12px;color:#c1d4ed;margin-top:14px}
.weather-orb{position:absolute;right:26px;top:70px;width:112px;height:112px;border-radius:50%;background:radial-gradient(circle at 32% 25%,#fff6c8,#ffc875 35%,#fa8e51 69%,#b85489);box-shadow:inset -12px -15px 24px #9c376d70,0 0 45px #ffba6240,18px 20px 35px #08092360;transform:rotate(-18deg)}
.weather-orb i{position:absolute;width:146px;height:47px;border:2px solid #c3ceff65;border-radius:50%;top:32px;left:-17px;transform:rotate(-20deg);box-shadow:0 0 12px #a0aaff30}
.weather-wet .weather-orb{background:radial-gradient(circle at 30% 25%,#ecf6ff,#8bafe5 40%,#405fa1);box-shadow:0 0 40px #8bafff40,inset -15px -12px 20px #283464}
.local-status-strip{width:100%;display:flex;gap:12px;justify-content:space-between;text-align:left;padding:13px 16px;border:1px solid #34455e;background:#122136;color:#c8e6f4;border-radius:16px;font-size:12px;line-height:1.5;margin-bottom:14px}
.weather-now>div,.weather-nowcast,.weather-nowcast.calm,.weather-nowcast-item,.now-calm{background:#172b3e;color:#e0f2ff;border-color:#3b596d}.weather-now b{font-size:38px}.weather-day{padding:15px 8px}.weather-days{gap:8px}.weather-day span,.weather-day small{color:#b7c8df;font-size:11px}
@media(hover:hover){.big-action:hover,.mode-card:hover{border-color:#65d8ca;transform:translateY(-2px);box-shadow:0 12px 24px #0005}.weather-hero:hover{border-color:#9cb6ff}}
@media(max-width:360px){.weather-hero{padding:18px}.weather-orb{width:88px;height:88px;right:22px;top:80px}.weather-orb i{width:116px;left:-14px}.weather-temperature{font-size:72px}.weather-details{font-size:11px}.weather-days{grid-template-columns:1fr}.header-actions{gap:4px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
