:root { --bg:#faf7f2; --paper:#fff; --ink:#1d2327; --muted:#5f696f; --line:#e6dfd4; --accent:#0f6e6a; --accent-soft:#e3f0ee; --warm:#b4572e; --warm-soft:#f7ebe3;
  --s1:#009688; --s2:#c2541f; --s3:#3f6fb5; --s4:#b5830f; --serif:Georgia,"Times New Roman",serif; --sans:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; }
* { box-sizing:border-box; } html,body { margin:0; height:100%; }
body { background:var(--bg); color:var(--ink); font:15px/1.5 var(--sans); }
h1,h2,h3 { font-family:var(--serif); font-weight:400; line-height:1.2; margin:0; } h1 { font-size:30px; } h2 { font-size:21px; } h3 { font-size:17px; }
a { color:var(--accent); } p { margin:0 0 .8em; } button,input,select,textarea { font:inherit; color:inherit; }
.layout { display:grid; grid-template-columns:236px 1fr; min-height:100vh; }
.side { background:var(--paper); border-right:1px solid var(--line); padding:18px 12px; position:sticky; top:0; height:100vh; overflow:auto; }
.brand { font:21px var(--serif); padding:0 10px 2px; } .brand span { color:var(--accent); }
.space { padding:0 10px 14px; font-size:13px; color:var(--muted); }
.side .sep { font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); padding:16px 10px 5px; }
.side a,.side .later { display:flex; justify-content:space-between; gap:8px; padding:7px 10px; border-radius:7px; text-decoration:none; color:var(--ink); }
.side a:hover { background:var(--bg); } .side a.on { background:var(--accent-soft); color:var(--accent); font-weight:600; }
.side .later { color:#7c8388; font-size:14px; } .side small { color:var(--muted); font-weight:400; font-size:12px; }
.main { min-width:0; } .bar { display:flex; align-items:center; gap:14px; padding:10px 28px; background:var(--warm-soft); font-size:13px; flex-wrap:wrap; }
.bar label { display:flex; gap:7px; align-items:center; margin-left:auto; font-weight:600; }
.page { padding:26px 28px 70px; max-width:1180px; } .lead { color:var(--muted); margin:6px 0 20px; max-width:760px; }
.grid { display:grid; gap:14px; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); }
.card { background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:15px 17px; min-width:0; }
.card.link { cursor:pointer; text-decoration:none; color:inherit; display:block; } .card.link:hover { border-color:var(--accent); }
.big { font:32px var(--serif); line-height:1.1; } .muted { color:var(--muted); font-size:13px; }
table { width:100%; border-collapse:collapse; background:var(--paper); } th { text-align:left; font-size:12px; font-weight:600; color:var(--muted); }
th,td { padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:top; } .tw { overflow-x:auto; border:1px solid var(--line); border-radius:10px; }
tr:last-child td { border-bottom:0; } tr.done td { opacity:.5; }
.btn { border:1px solid var(--line); background:var(--paper); border-radius:7px; padding:6px 12px; cursor:pointer; white-space:nowrap; text-decoration:none; display:inline-block; color:var(--ink); }
.btn:hover { border-color:var(--accent); } .btn.pri { background:var(--accent); border-color:var(--accent); color:#fff; } .btn.warn { color:var(--warm); }
.btn.on { background:var(--accent-soft); border-color:var(--accent); color:var(--accent); }
.row { display:flex; gap:9px; align-items:center; flex-wrap:wrap; } .between { justify-content:space-between; } .mt { margin-top:18px; } .mb { margin-bottom:16px; }
input[type=text],input[type=email],input[type=number],select,textarea { background:var(--paper); border:1px solid var(--line); border-radius:7px; padding:6px 9px; max-width:100%; }
textarea,input.full { width:100%; } label.f { display:block; font-size:13px; color:var(--muted); margin:12px 0 4px; }
.tag { display:inline-block; font-size:12px; padding:1px 8px; border-radius:99px; background:var(--bg); border:1px solid var(--line); white-space:nowrap; }
.tag.good { background:var(--accent-soft); border-color:#bcdcd8; color:var(--accent); } .tag.bad { background:var(--warm-soft); border-color:#ecd0bf; color:var(--warm); }
.tabs { display:flex; gap:4px; border-bottom:1px solid var(--line); margin:16px 0; overflow-x:auto; }
.tabs a { padding:7px 13px; text-decoration:none; color:var(--muted); border-bottom:2px solid transparent; white-space:nowrap; } .tabs a.on { color:var(--ink); border-color:var(--accent); }
.star { background:none; border:0; cursor:pointer; font-size:19px; line-height:1; color:#a69f92; padding:2px; } .star.on { color:var(--s4); }
.prose { max-width:760px; background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:22px 26px; } .prose h1 { font-size:26px; margin-bottom:10px; } .prose h2 { margin:22px 0 8px; } .prose h3 { margin:16px 0 6px; }
.prose table { font-size:13px; margin:10px 0; display:block; overflow-x:auto; } .note { background:var(--warm-soft); border-radius:8px; padding:9px 13px; font-size:14px; margin-bottom:14px; }
.info { background:var(--accent-soft); border-radius:8px; padding:9px 13px; font-size:14px; margin-bottom:14px; }
.obj h3 { margin:3px 0; } .price { font:19px var(--serif); margin:7px 0 2px; }
.chart { position:relative; } .chart svg { display:block; width:100%; height:auto; overflow:visible; } .tip { position:absolute; pointer-events:none; background:var(--ink); color:#fff; font-size:12px; border-radius:6px; padding:5px 8px; white-space:nowrap; display:none; z-index:3; }
.legend { display:flex; gap:14px; flex-wrap:wrap; font-size:13px; margin:6px 0; } .legend i { display:inline-block; width:12px; height:3px; border-radius:2px; margin-right:6px; vertical-align:middle; }
.cite { font-size:12px; color:var(--muted); margin-top:6px; } .barh { display:grid; grid-template-columns:130px 1fr 60px; gap:9px; align-items:center; font-size:13px; padding:3px 0; } .barh b { display:block; height:10px; background:var(--s1); border-radius:0 4px 4px 0; }
.mx td,.mx th { text-align:center; } .mx td:first-child,.mx th:first-child,.mx td:last-child,.mx th:last-child { text-align:left; } .mx select { font-size:12px; padding:3px; }
.drawer { position:fixed; inset:0 0 0 auto; width:min(520px,100vw); background:var(--paper); border-left:1px solid var(--line); box-shadow:-8px 0 24px rgba(0,0,0,.08); padding:22px; overflow:auto; z-index:20; }
#toast { position:fixed; bottom:18px; left:50%; transform:translateX(-50%); background:var(--ink); color:#fff; padding:8px 15px; border-radius:8px; font-size:14px; display:none; z-index:40; } #toast.err { background:var(--warm); }
.combo .pop { border:1px solid var(--line); border-radius:8px; background:var(--paper); max-height:240px; overflow:auto; padding:6px 10px; margin-top:4px; } .combo .gr { font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin:8px 0 3px; } .combo label { display:block; }
.chips { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:5px; }
@media (max-width:820px) { .layout { display:block; } .side { position:static; height:auto; border-right:0; border-bottom:1px solid var(--line); } .side nav { display:flex; overflow-x:auto; gap:2px; } .side .sep,.side .later { display:none; } .side a { white-space:nowrap; } .page { padding:18px 16px 60px; } .bar { padding:8px 16px; } }

/* ---- кабинет клиента: тот же язык, что на сайте, а не админка ---- */
.thumb { display:block; width:64px; height:46px; object-fit:cover; border-radius:6px; background:var(--bg); } .thumb.none { border:1px dashed var(--line); } .dimg { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:8px; margin:12px 0; display:block; }
body.client { font:17px/1.6 var(--sans); }
.kl { min-height:100vh; display:flex; flex-direction:column; } .kl main { flex:1; }
.kproto { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:center; padding:4px 24px; font-size:12px; color:var(--muted); background:var(--paper); border-bottom:1px solid var(--line); } .kproto select { font-size:12px; padding:2px 6px; }
.ktop { position:sticky; top:0; z-index:15; display:flex; align-items:center; gap:28px; padding:14px 24px; background:rgba(250,247,242,.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.kbrand { font:22px var(--serif); text-decoration:none; color:var(--ink); white-space:nowrap; } .kbrand span { color:var(--accent); }
.ktop nav { display:flex; gap:20px; flex:1; overflow-x:auto; white-space:nowrap; scrollbar-width:none; } .ktop nav a { text-decoration:none; color:var(--ink); padding:2px 0; border-bottom:2px solid transparent; font-size:16px; } .ktop nav a:hover { color:var(--accent); } .ktop nav a.on { color:var(--accent); border-color:var(--accent); }
.kme { flex:none; width:34px; height:34px; border-radius:50%; background:var(--accent); color:#fff; display:grid; place-items:center; font:15px var(--serif); }
.kfoot { display:flex; justify-content:space-between; padding:26px 24px; margin-top:50px; border-top:1px solid var(--line); color:var(--muted); font-size:14px; }
.kwrap { max-width:1180px; margin:0 auto; padding:34px 24px 10px; } .kwrap.narrow { max-width:760px; }
.kh { font-size:clamp(32px,4vw,48px); margin-bottom:8px; } .kl .lead { font-size:18px; max-width:680px; margin:0 0 24px; }
.khero { position:relative; min-height:62vh; display:flex; align-items:flex-end; color:#fff; overflow:hidden; background:var(--accent); } .khero.short { min-height:44vh; }
.khero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; } .khero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.05) 35%,rgba(0,0,0,.66) 100%); }
.khero .in { position:relative; z-index:1; width:100%; max-width:1180px; margin:0 auto; padding:0 24px 38px; } .khero h1 { font-size:clamp(36px,5.4vw,66px); margin-bottom:10px; } .khero p { font-size:clamp(17px,1.6vw,20px); max-width:34em; margin-bottom:18px; } .khero .eyebrow { font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:#fff; text-decoration:none; display:block; margin-bottom:10px; } .khero .star { color:rgba(255,255,255,.8); font-size:28px; } .khero .star.on { color:#f2c14e; }
.kbtn { display:inline-block; padding:10px 22px; border-radius:99px; border:1px solid var(--line); background:var(--paper); color:var(--ink); text-decoration:none; cursor:pointer; font-size:15px; white-space:nowrap; text-align:center; } .kbtn:hover { border-color:var(--accent); color:var(--accent); } .kbtn.pri { background:var(--accent); border-color:var(--accent); color:#fff; } .kbtn.pri:hover { background:#0c5a57; color:#fff; } .kbtn.light { background:#fff; border-color:#fff; color:var(--ink); } .kbtn.ghost { background:transparent; border-color:rgba(255,255,255,.75); color:#fff; } .kbtn.ghost:hover { background:rgba(255,255,255,.14); color:#fff; border-color:#fff; } .kbtn.small { padding:5px 14px; font-size:14px; } .kbtn.wide { display:block; width:100%; margin-top:10px; }
.ksec { margin:38px 0 8px; } .ksec > h2 { font-size:clamp(25px,2.6vw,32px); margin-bottom:16px; }
.ktiles { display:grid; gap:14px; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); }
.ktile { position:relative; display:flex; align-items:flex-end; aspect-ratio:4/3; border-radius:16px; overflow:hidden; color:#fff; text-decoration:none; background:var(--accent); padding:12px 14px; } .ktile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s; } .ktile:hover img { transform:scale(1.04); } .ktile::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.6) 100%); } .ktile b { position:relative; z-index:1; font:21px var(--serif); } .ktile .star { position:absolute; z-index:2; top:8px; right:10px; color:rgba(255,255,255,.85); font-size:22px; } .ktile .star.on { color:#f2c14e; }
.ktile.add { background:var(--paper); border:1px dashed var(--line); color:var(--accent); align-items:center; justify-content:center; } .ktile.add::after { display:none; } .ktile.add b { font-size:17px; }
.kgrid { display:grid; gap:20px; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }
.kobj { display:block; text-decoration:none; color:inherit; background:var(--paper); border-radius:16px; overflow:hidden; box-shadow:0 1px 3px rgba(29,35,39,.08); transition:box-shadow .2s,transform .2s; } .kobj:hover { box-shadow:0 8px 24px rgba(29,35,39,.13); transform:translateY(-2px); }
.kobj .ph { position:relative; aspect-ratio:3/2; background:var(--warm-soft); } .kobj .ph img { width:100%; height:100%; object-fit:cover; display:block; } .nophtext { display:none; color:var(--warm); font-size:14px; } .noph > .nophtext { position:absolute; inset:0; display:grid; place-items:center; }
.kobj .star { position:absolute; top:8px; right:10px; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.92); font-size:18px; } .kobj .chip { position:absolute; left:10px; bottom:10px; background:rgba(255,255,255,.94); border-radius:99px; padding:2px 11px; font-size:13px; }
.kobj .bd { padding:13px 16px 16px; } .kobj h3 { font-size:21px; margin:2px 0 6px; } .loc { color:var(--muted); font-size:14px; } .kl .price { font:21px var(--serif); margin:0; } .kl .price span { font:14px var(--sans); color:var(--muted); } .kobj .sub { color:var(--muted); font-size:14px; min-height:1.4em; }
.kfilters { background:var(--paper); border-radius:16px; padding:15px 18px; box-shadow:0 1px 3px rgba(29,35,39,.08); margin-bottom:16px; } .kf-row { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; } .kf-row label { display:flex; flex-direction:column; gap:3px; font-size:13px; color:var(--muted); } .kf-row select,.kf-row input[type=number] { font-size:15px; color:var(--ink); border-radius:9px; padding:7px 10px; min-width:118px; max-width:230px; } .kf-row input[type=number] { width:118px; }
.kf-row.end { margin-top:12px; align-items:center; } .kf-row label.chk { flex-direction:row; align-items:center; gap:6px; font-size:14px; color:var(--ink); margin-right:auto; } .seg { display:inline-flex; border:1px solid var(--line); border-radius:99px; overflow:hidden; } .seg button { border:0; background:none; padding:5px 15px; cursor:pointer; font-size:14px; } .seg button.on { background:var(--accent); color:#fff; }
.kempty { text-align:center; padding:50px 20px; background:var(--paper); border-radius:16px; } .kempty b { font:24px var(--serif); display:block; margin-bottom:8px; }
.kmap { height:560px; border-radius:16px; overflow:hidden; background:var(--accent-soft); position:relative; z-index:0; } .kmap.small { height:320px; }
.kobjhead { position:relative; height:min(62vh,560px); background:var(--warm-soft); overflow:hidden; } .kobjhead img { width:100%; height:100%; object-fit:cover; display:block; }
.kobjpage { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:36px; align-items:start; } .kobjpage .back { font-size:14px; color:var(--muted); display:block; margin-bottom:12px; } .kobjpage .star { font-size:26px; }
.kask { position:sticky; top:84px; background:var(--paper); border-radius:16px; padding:20px; box-shadow:0 4px 18px rgba(29,35,39,.1); } .kask .price { font-size:26px; line-height:1.2; }
.kfacts { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin:20px 0; } .kfacts dt { color:var(--muted); font-size:13px; } .kfacts dd { margin:0; }
.klist > div { display:flex; flex-wrap:wrap; gap:4px 14px; align-items:baseline; padding:11px 0; border-bottom:1px solid var(--line); } .klist > div:last-child { border-bottom:0; } .klist b { font-weight:500; flex:1 1 240px; }
.kbroker { display:grid; gap:24px; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); background:var(--accent-soft); border-radius:16px; padding:24px 26px; } .kbroker > div > b { font:24px var(--serif); display:block; margin-bottom:6px; }
.kl .card { border:0; border-radius:16px; box-shadow:0 1px 3px rgba(29,35,39,.08); } .kl .prose { border:0; border-radius:16px; max-width:820px; box-shadow:0 1px 3px rgba(29,35,39,.08); } .kl .tabs { margin-top:0; } .kl .tabs a { font-size:16px; } .kl .btn { border-radius:99px; padding:6px 16px; }
.kf-toggle { display:none; margin-bottom:12px; }
@media (max-width:820px) { .kf-toggle { display:inline-block; } .kfilters { display:none; } .kfilters.open { display:block; } .ktop { gap:14px; padding:10px 16px; flex-wrap:wrap; } .ktop nav { order:3; flex-basis:100%; gap:16px; } .kme { margin-left:auto; } .kwrap { padding:24px 16px 6px; } .khero .in { padding:0 16px 26px; } .kproto { padding:4px 16px; } .kobjpage { grid-template-columns:1fr; } .kask { position:static; order:-1; } .kgrid { grid-template-columns:1fr; } .ktiles { grid-template-columns:repeat(2,1fr); } .kmap { height:400px; } .kf-row select,.kf-row input[type=number] { min-width:0; width:100%; max-width:none; } .kf-row label { flex:1 1 44%; } .kf-row label.chk { flex:1 1 100%; } }

.dthumbs { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-bottom:10px; } .dthumbs img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:5px; display:block; }
.garr { position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; border:0; background:rgba(255,255,255,.88); font-size:26px; line-height:1; cursor:pointer; color:var(--ink); } .garr.l { left:16px; } .garr.r { right:16px; } .gcount { position:absolute; right:16px; bottom:14px; background:rgba(0,0,0,.55); color:#fff; font-size:13px; padding:2px 10px; border-radius:99px; } .gcount:empty { display:none; }
.gthumbs { display:flex; gap:8px; overflow-x:auto; padding:10px 24px 0; max-width:1180px; margin:0 auto; } .gthumbs button { flex:none; width:96px; height:66px; padding:0; border:2px solid transparent; border-radius:9px; overflow:hidden; background:var(--warm-soft); cursor:pointer; } .gthumbs button.on { border-color:var(--accent); } .gthumbs img { width:100%; height:100%; object-fit:cover; display:block; }
.noph > .nophtext { font-size:15px; }

.kauth { max-width:600px; } .kauth input[type=text],.kauth input[type=email] { padding:9px 12px; } .kauth .combo .pop { max-height:170px; }
.ktop > .kbtn { flex:none; } .ktop nav:empty { flex:1; } .kme { text-decoration:none; } .mailp { white-space:pre-wrap; font:13px/1.45 var(--sans); background:var(--bg); padding:8px 10px; border-radius:6px; margin:6px 0 0; }

.otp { font-size:24px; letter-spacing:.3em; text-align:center; }

.kauth .iti { display:block; width:100%; } .kauth .iti input { width:100%; } .iti__search-input { padding:8px 10px; }

.fact h3 { margin-top:2px; } .fv { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:16px; background:var(--bg); border-radius:8px; padding:10px 13px; margin-bottom:10px; } .fv b { font-weight:600; }
.kcur { width:auto; padding:5px 8px; font-size:13px; margin-left:auto; }
.ferr { margin:8px 0; color:var(--bad, #b3261e); font-weight:600; font-size:14px; }
.fq { margin:0 0 6px; padding:2px 0 2px 12px; border-left:3px solid var(--accent); font-size:14px; }
@media (max-width:820px) { .fv { grid-template-columns:1fr; } }
