:root{--color-primary: #4f46e5;--color-primary-dark: #4338ca;--color-accent: #06b6d4;--color-bg: #f8fafc;--color-surface: #ffffff;--color-text: #0f172a;--color-text-muted: #64748b;--color-border: #e2e8f0;--color-danger: #ef4444;--gradient-brand: linear-gradient(135deg, var(--color-primary), var(--color-accent));--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--shadow-card: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px -12px rgba(15, 23, 42, .15);--nav-height: 64px;--header-height: 60px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}@media(prefers-color-scheme:dark){:root{--color-bg: #0b1120;--color-surface: #131c2e;--color-text: #f1f5f9;--color-text-muted: #94a3b8;--color-border: #1e293b}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--color-bg);color:var(--color-text);min-height:100vh;padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 12px);-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font-family:inherit}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;height:calc(var(--header-height) + var(--safe-top));padding:var(--safe-top) 18px 0;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-header__logo{width:32px;height:32px;border-radius:9px;flex-shrink:0}.app-header__brand{font-weight:700;font-size:1.05rem;letter-spacing:-.01em}.app-header__spacer{flex:1}.app-header__icon-btn{border:none;background:transparent;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--color-text)}.app-header__icon-btn:hover{background:var(--color-border)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;background:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:var(--safe-bottom);height:calc(var(--nav-height) + var(--safe-bottom))}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.68rem;color:var(--color-text-muted);padding-top:6px}.bottom-nav a svg{width:22px;height:22px}.bottom-nav a.active{color:var(--color-primary)}.bottom-nav .badge{position:relative}.bottom-nav .badge:after{content:attr(data-count);position:absolute;top:-2px;right:8px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--color-danger);color:#fff;font-size:.6rem;line-height:15px;text-align:center;display:none}.bottom-nav .badge[data-count]:not([data-count="0"]):after{display:block}main{max-width:560px;margin:0 auto;padding:16px}.page-title{font-size:1.4rem;font-weight:700;margin:4px 0;letter-spacing:-.01em}.page-subtitle{color:var(--color-text-muted);font-size:.92rem;margin:0 0 18px}.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.product-card{background:var(--color-surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card);position:relative;display:block}.product-card__image-wrap{aspect-ratio:1 / 1;overflow:hidden;background:var(--color-border)}.product-card__image-wrap img{width:100%;height:100%;object-fit:cover}.product-card__body{padding:10px 12px 14px}.product-card__name{font-size:.88rem;font-weight:600;margin:0 0 4px;line-height:1.25}.product-card__price{font-size:.95rem;font-weight:700;color:var(--color-primary)}.fav-btn{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;border:none;background:#ffffffe6;display:grid;place-items:center;cursor:pointer;z-index:2;color:#94a3b8;box-shadow:0 1px 3px #00000026}.fav-btn svg{width:18px;height:18px}.fav-btn.active{color:#ef4444}.fav-btn.active svg{fill:#ef4444}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--radius-sm);padding:12px 18px;font-size:.95rem;font-weight:600;cursor:pointer;width:100%}.btn-primary{background:var(--gradient-brand);color:#fff}.btn-secondary{background:var(--color-border);color:var(--color-text)}.btn-outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn:disabled{opacity:.55;cursor:default}.card{background:var(--color-surface);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-card);margin-bottom:16px}.field{margin-bottom:14px}.field label{display:block;font-size:.82rem;font-weight:600;margin-bottom:6px;color:var(--color-text-muted)}.field input,.field textarea{width:100%;padding:11px 13px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-size:.95rem}.field input:focus,.field textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.78rem;font-weight:600}.status-pill.ok{background:#dcfce7;color:#166534}.status-pill.warn{background:#fef3c7;color:#92400e}.status-pill.off{background:#f1f5f9;color:#475569}.empty-state{text-align:center;padding:48px 16px;color:var(--color-text-muted)}.empty-state svg{width:56px;height:56px;margin-bottom:10px;opacity:.5}.install-banner{position:fixed;left:12px;right:12px;bottom:calc(var(--nav-height) + var(--safe-bottom) + 10px);z-index:40;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:0 12px 32px -8px #0f172a59;padding:14px;display:flex;align-items:center;gap:12px;border:1px solid var(--color-border);animation:slide-up .35s ease}@keyframes slide-up{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.install-banner img{width:42px;height:42px;border-radius:12px;flex-shrink:0}.install-banner__text{flex:1;min-width:0}.install-banner__title{font-size:.86rem;font-weight:700}.install-banner__subtitle{font-size:.76rem;color:var(--color-text-muted)}.install-banner__actions{display:flex;flex-direction:column;gap:6px;align-items:stretch}.install-banner__btn{border:none;background:var(--gradient-brand);color:#fff;font-size:.78rem;font-weight:700;padding:8px 12px;border-radius:8px;cursor:pointer;white-space:nowrap}.install-banner__close{border:none;background:transparent;color:var(--color-text-muted);width:22px;height:22px;cursor:pointer;align-self:flex-start;flex-shrink:0}.tabs{display:flex;gap:8px;margin-bottom:18px}.tab-btn{flex:1;padding:10px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);font-weight:600;font-size:.88rem;cursor:pointer;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;gap:6px}.tab-btn.active{background:var(--gradient-brand);color:#fff;border-color:transparent}.steps{list-style:none;margin:0;padding:0;counter-reset:step}.steps li{counter-increment:step;display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--color-border)}.steps li:last-child{border-bottom:none}.steps li:before{content:counter(step);flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--gradient-brand);color:#fff;font-weight:700;font-size:.85rem;display:grid;place-items:center}.steps li .step-text strong{display:block;font-size:.92rem;margin-bottom:2px}.steps li .step-text span{color:var(--color-text-muted);font-size:.85rem}.icon-inline{width:18px;height:18px;vertical-align:-4px}.hidden{display:none!important}.toast{position:fixed;bottom:calc(var(--nav-height) + var(--safe-bottom) + 12px);left:50%;transform:translate(-50%);background:#0f172a;color:#fff;padding:10px 18px;border-radius:999px;font-size:.85rem;z-index:60;box-shadow:0 10px 30px -8px #0006}
