:root{--tg-bg: var(--tg-theme-bg-color, #ffffff);--tg-text: var(--tg-theme-text-color, #111111);--tg-hint: var(--tg-theme-hint-color, #8e8e93);--tg-link: var(--tg-theme-link-color, #2481cc);--tg-button: var(--tg-theme-button-color, #2481cc);--tg-button-text: var(--tg-theme-button-text-color, #ffffff);--tg-secondary: var(--tg-theme-secondary-bg-color, #f2f2f7);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--tabbar-h: 56px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif;color:var(--tg-text);background:var(--tg-bg)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:var(--tg-bg)}button,input,select,textarea{font:inherit}a{color:var(--tg-link);text-decoration:none}.app-shell{min-height:100dvh;padding-top:var(--safe-top);padding-bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 72px)}.page{padding:16px;max-width:640px;margin:0 auto}h1{font-size:1.5rem;margin:0 0 12px}h2{font-size:1.15rem;margin:0 0 8px}.muted{color:var(--tg-hint);font-size:.9rem}.stack{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.85rem;color:var(--tg-hint)}.field input,.field select,.field textarea{border:none;border-radius:12px;padding:12px 14px;background:var(--tg-secondary);color:var(--tg-text)}.btn{border:none;border-radius:12px;padding:12px 16px;background:var(--tg-button);color:var(--tg-button-text);font-weight:600;cursor:pointer}.btn.secondary{background:var(--tg-secondary);color:var(--tg-text)}.btn.danger{background:#b91c1c;color:#fff}.btn:disabled{opacity:.5}.card{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:12px;border-radius:16px;background:var(--tg-secondary);cursor:pointer;color:inherit}.card img{width:96px;height:96px;object-fit:cover;border-radius:12px;background:#ddd}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:.8rem;padding:6px 10px;border-radius:999px;background:var(--tg-secondary);color:var(--tg-text);border:none;cursor:pointer}.chip.active{background:var(--tg-button);color:var(--tg-button-text)}.chip.ghost{background:var(--tg-bg);color:var(--tg-hint);border:1px solid color-mix(in srgb,var(--tg-hint) 30%,transparent)}.gallery-wrap{position:relative;margin:0 -16px}.gallery{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 16px}.gallery img{width:min(100%,360px);height:220px;object-fit:cover;border-radius:16px;scroll-snap-align:start;flex:0 0 auto;cursor:zoom-in}.gallery-dots{display:flex;justify-content:center;gap:6px;margin-top:8px}.gallery-dots span{width:6px;height:6px;border-radius:50%;background:var(--tg-hint);opacity:.4}.gallery-dots span.on{opacity:1;background:var(--tg-button)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000eb;display:grid;place-items:center;padding:16px}.lightbox img{max-width:100%;max-height:90dvh;object-fit:contain;border-radius:8px}.price-box{padding:12px;border-radius:12px;background:var(--tg-secondary)}.row{display:flex;justify-content:space-between;gap:8px;margin:4px 0;align-items:center}.filters{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:16px;background:var(--tg-secondary);margin-bottom:12px}.status{display:inline-block;font-size:.75rem;padding:2px 8px;border-radius:999px;background:var(--tg-bg)}.status.pending{background:#fef3c7;color:#92400e}.status.ok{background:#d1fae5;color:#065f46}.status.bad{background:#fee2e2;color:#991b1b}.error{color:#d00;font-size:.9rem}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(3,1fr);height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--tg-secondary);border-top:1px solid color-mix(in srgb,var(--tg-hint) 25%,transparent)}.tabbar-item{display:grid;place-items:center;color:var(--tg-hint);font-size:.8rem;font-weight:600}.tabbar-item.active{color:var(--tg-button)}.stepper{display:inline-flex;align-items:center;gap:12px;background:var(--tg-secondary);border-radius:12px;padding:6px;width:fit-content}.stepper-btn{width:36px;height:36px;border:none;border-radius:10px;background:var(--tg-bg);color:var(--tg-text);font-size:1.2rem;cursor:pointer}.stepper-value{min-width:24px;text-align:center;font-weight:600}.calendar{background:var(--tg-secondary);border-radius:16px;padding:12px}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.calendar-nav{width:40px;padding:8px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.calendar-grid.dow{margin-bottom:4px;color:var(--tg-hint);font-size:.75rem}.cal-day{border:none;background:transparent;color:var(--tg-text);border-radius:10px;aspect-ratio:1;cursor:pointer;font-size:.9rem}.cal-day.in-range{background:color-mix(in srgb,var(--tg-button) 18%,transparent)}.cal-day.selected{background:var(--tg-button);color:var(--tg-button-text);font-weight:700}.cal-day.disabled{opacity:.35;text-decoration:line-through;cursor:not-allowed}.skeleton{background:linear-gradient(90deg,var(--tg-secondary) 25%,color-mix(in srgb,var(--tg-secondary) 60%,#fff) 50%,var(--tg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:16px}.card-skel{height:120px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty{text-align:center;padding:32px 12px}.dev-banner{background:#fef3c7;color:#92400e;font-size:.8rem;padding:8px 12px;text-align:center}.featured-scroll{display:flex;gap:10px;overflow-x:auto;margin:0 -16px;padding:0 16px 4px}.featured-card{flex:0 0 200px;background:var(--tg-secondary);border-radius:16px;overflow:hidden;color:inherit}.featured-card img{width:100%;height:120px;object-fit:cover;display:block}.featured-card .body{padding:10px}.city-field{position:relative}.city-suggest-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:50;margin:0;padding:6px;list-style:none;max-height:240px;overflow-y:auto;background:var(--tg-secondary);border-radius:12px;box-shadow:0 8px 24px #0000001f}.city-suggest-item{display:block;width:100%;text-align:left;border:none;background:transparent;color:var(--tg-text);padding:10px 12px;border-radius:8px;cursor:pointer;font:inherit}.city-suggest-item.active,.city-suggest-item:hover{background:var(--tg-bg)}
