*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f2f2f7;--surface: #ffffff;--border: #e5e5ea;--border-md: #d1d1d6;--text: #1c1c1e;--text-2: #636366;--text-3: #8e8e93;--accent: #1a1a1a;--accent-gold: #c8a96e;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--ok-bg: #d4edda;--ok-text: #1a6630;--warn-bg: #fff3cd;--warn-text: #856404;--err-bg: #f8d7da;--err-text: #842029;--info-bg: #e6f1fb;--info-text: #185fa5}html,body,#root{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:16px;-webkit-font-smoothing:antialiased}.app-shell{display:flex;flex-direction:column;height:100dvh;max-width:430px;margin:0 auto;background:var(--bg);position:relative;overflow:hidden}.app-header{background:var(--surface);border-bottom:.5px solid var(--border);padding:12px 16px 10px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.app-logo{font-size:17px;font-weight:600;letter-spacing:-.3px}.app-logo-sub{font-size:11px;color:var(--text-3);margin-top:1px}.app-scroll{flex:1;overflow-y:auto;padding:14px 14px 80px;display:flex;flex-direction:column;gap:12px}.bottom-nav{position:absolute;bottom:0;left:0;right:0;background:var(--surface);border-top:.5px solid var(--border);display:flex;padding:8px 4px max(12px,env(safe-area-inset-bottom));z-index:100}.nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;border:none;background:none;cursor:pointer;border-radius:var(--radius-sm);transition:opacity .1s;color:var(--text-3);font-size:10px}.nav-btn.active{color:var(--accent);font-weight:600}.nav-btn svg{width:22px;height:22px}.fab{position:absolute;bottom:70px;right:14px;width:50px;height:50px;background:var(--accent);border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 14px #00000040;z-index:101;transition:transform .15s}.fab:active{transform:scale(.93)}.fab svg{width:22px;height:22px;color:#fff}.card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:14px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-title{font-size:13px;font-weight:600}.card-link{font-size:12px;color:var(--text-3);background:none;border:none;font-family:inherit;cursor:pointer}.metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.metric{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-md);padding:13px 14px}.metric.dark{background:var(--accent);border-color:var(--accent);color:#fff}.metric-label{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px}.metric.dark .metric-label{color:#ffffff80}.metric-value{font-size:22px;font-weight:700}.metric.dark .metric-value{color:#fff}.metric-delta{font-size:11px;color:#2d7a3a;margin-top:2px}.metric.dark .metric-delta{color:#8fd9a8}.metric-delta.neg{color:#c0392b}.badge{display:inline-flex;align-items:center;font-size:10px;font-weight:600;padding:3px 8px;border-radius:8px;white-space:nowrap}.badge-ok{background:var(--ok-bg);color:var(--ok-text)}.badge-warn{background:var(--warn-bg);color:var(--warn-text)}.badge-err{background:var(--err-bg);color:var(--err-text)}.badge-info{background:var(--info-bg);color:var(--info-text)}.badge-neutral{background:#f2f2f7;color:var(--text-2)}.avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.avatar.lg{width:44px;height:44px;font-size:14px}.avatar.sm{width:28px;height:28px;font-size:10px}.list-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:.5px solid var(--border)}.list-row:last-child{border-bottom:none;padding-bottom:0}.list-row-info{flex:1;min-width:0}.list-row-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-row-sub{font-size:11px;color:var(--text-3);margin-top:1px}.list-row-right{text-align:right;flex-shrink:0}.input-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.input-label{font-size:12px;font-weight:600;color:var(--text-2)}.input{width:100%;padding:10px 12px;border:.5px solid var(--border-md);border-radius:var(--radius-md);font-size:14px;font-family:inherit;background:var(--surface);color:var(--text);outline:none;transition:border-color .15s}.input:focus{border-color:var(--accent)}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%238e8e93' d='M6 8L0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;border:none;transition:opacity .15s,transform .1s}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{background:var(--bg);color:var(--text);border:.5px solid var(--border-md)}.btn-danger{background:var(--err-bg);color:var(--err-text)}.btn-full{width:100%}.btn-sm{padding:7px 12px;font-size:12px}.tabs{display:flex;gap:2px;background:#e8e8ed;padding:3px;border-radius:var(--radius-md)}.tab{flex:1;padding:6px 8px;border-radius:9px;border:none;background:none;font-size:12px;cursor:pointer;font-family:inherit;color:var(--text-3);transition:all .12s}.tab.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #00000014}.search-wrap{display:flex;align-items:center;gap:8px;background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-md);padding:9px 12px}.search-wrap input{flex:1;border:none;background:none;font-size:14px;font-family:inherit;color:var(--text);outline:none}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:200;display:flex;align-items:flex-end;animation:fadeIn .2s}.drawer{background:var(--surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:16px 16px max(24px,env(safe-area-inset-bottom));width:100%;max-height:90dvh;overflow-y:auto;animation:slideUp .25s ease-out}.drawer-handle{width:36px;height:4px;background:var(--border-md);border-radius:2px;margin:0 auto 16px}.drawer-title{font-size:16px;font-weight:700;margin-bottom:18px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.section-label{font-size:11px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.5px}.spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.stock-bar{width:48px;height:4px;background:var(--border);border-radius:2px;overflow:hidden;margin-top:3px}.stock-fill{height:100%;border-radius:2px}.empty{text-align:center;padding:40px 20px;color:var(--text-3)}.empty-icon{font-size:32px;margin-bottom:10px}.empty-text{font-size:14px}.auth-wrap{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.auth-card{width:100%;max-width:360px;background:var(--surface);border-radius:var(--radius-xl);padding:28px 24px;border:.5px solid var(--border)}.auth-logo{font-size:22px;font-weight:700;text-align:center;margin-bottom:4px}.auth-sub{font-size:13px;color:var(--text-3);text-align:center;margin-bottom:28px}
