:root{--bg: #f5f7fa;--panel: #ffffff;--panel2: #f9fafb;--elev: #f3f4f6;--border: #e5e7eb;--border2: #d1d5db;--text: #111827;--muted: #4b5563;--faint: #9ca3af;--accent: #1668ff;--accent2: #1668ff;--green: #16a34a;--amber: #d97706;--red: #e5484d;--input-bg: #ffffff;--nav-active: #eaf0fe;--scroll: #d1d5db;--scroll-h: #b3b9c4;--card-sh: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .08);--shadow: 0 14px 44px rgba(16, 24, 40, .16);--glow: rgba(79, 107, 246, .05);--scrim: rgba(17, 24, 39, .35);color-scheme:light}:root[data-theme=dark]{--bg: #0b0f17;--panel: #151b26;--panel2: #1b2230;--elev: #222b3a;--border: #283243;--border2: #384458;--text: #e8edf4;--muted: #98a3b4;--faint: #6a7688;--accent: #4d84ff;--accent2: #6f9dff;--green: #3fb950;--amber: #d9a441;--red: #e5555b;--input-bg: #151b26;--nav-active: rgba(77, 132, 255, .16);--scroll: #2f3a4d;--scroll-h: #3f4d63;--card-sh: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 30px -20px rgba(0, 0, 0, .7);--shadow: 0 16px 48px rgba(0, 0, 0, .6);--glow: rgba(77, 132, 255, .05);--scrim: rgba(2, 5, 11, .62);color-scheme:dark}:root[data-theme=dark] .pill.ok{background:#34d39926;color:#4ade80}:root[data-theme=dark] .pill.pending{background:#fbbf2426;color:#fbbf24}:root[data-theme=dark] .pill.none{background:#94a3b824;color:#94a3b8}:root[data-theme=dark] .pill.err{background:#f8717129;color:#f87171}:root[data-theme=dark] button.danger{border-color:#f8717166}:root[data-theme=dark] button.danger:hover{background:#f871711f}:root[data-theme=dark] .logo .dot{background:linear-gradient(135deg,var(--accent),#7c8cff)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(1200px 600px at 82% -12%,var(--glow),transparent 60%),var(--bg);color:var(--text);font:14px/1.45 Inter,-apple-system,Segoe UI,Roboto,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent2);text-decoration:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-h)}::-webkit-scrollbar-track{background:transparent}.app{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.logo{display:flex;align-items:center;gap:10px;padding:6px 10px 20px;font-weight:700;font-size:17px;letter-spacing:-.2px}.logo .dot{width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,var(--accent),#7c8cff);display:grid;place-items:center;color:#fff}.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:var(--muted);cursor:pointer;font-weight:500;transition:.15s}.nav-item:hover{background:var(--panel2);color:var(--text)}.nav-item.active{background:var(--nav-active);color:var(--accent);font-weight:600}.nav-item.active .ic{color:var(--accent)}.nav-item .ic{width:18px;display:grid;place-items:center;opacity:.9}.sidebar .grow{flex:1}.side-user{font-size:12px;color:var(--faint);padding:10px 12px;border-top:1px solid var(--border)}.main{padding:26px 30px 40px;min-width:0}.page-head{display:flex;align-items:center;gap:14px;margin-bottom:22px}.page-head h1{font-size:22px;margin:0;font-weight:700;letter-spacing:-.4px}.page-head .sub{color:var(--muted);font-size:13px}.spacer{flex:1}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:22px}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px 18px;position:relative;overflow:hidden;box-shadow:var(--card-sh)}.kpi .label{color:var(--muted);font-size:12.5px;display:flex;align-items:center;gap:8px}.kpi .value{font-size:26px;font-weight:700;margin-top:8px;letter-spacing:-.5px;color:var(--text)}.kpi .value.mono{font-variant-numeric:tabular-nums}.kpi .foot{font-size:12px;color:var(--faint);margin-top:4px}.kpi .chip{width:30px;height:30px;border-radius:9px;display:grid;place-items:center}.kpi.hot{border-color:#d9770659}.kpi.hot .value{color:var(--amber)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:18px;margin-bottom:18px;box-shadow:var(--card-sh)}.panel h3{margin:0 0 14px;font-size:14px;font-weight:600;color:var(--text)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 16px;z-index:100}.modal{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:22px;width:100%;box-shadow:var(--shadow);max-height:84vh;overflow:auto}button svg,.nav-item svg,.kpi svg,.niche-badge svg{flex:none}button{display:inline-flex;align-items:center;gap:6px;justify-content:center}.watch-mark{display:inline-flex;align-items:center;margin-right:5px;color:var(--amber);vertical-align:middle}.ok-tick{display:inline-flex;color:var(--green)}.niche-badge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 5px;margin-left:6px;border:1px solid;border-radius:7px;line-height:1;vertical-align:middle}.dict-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.dict-tab{padding:9px 16px;border-radius:10px;background:var(--panel);border:1px solid var(--border);cursor:pointer;font-size:14px;color:var(--muted);display:flex;gap:8px;align-items:center}.dict-tab:hover{border-color:var(--border2);background:var(--panel2)}.dict-tab.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.dict-tab .cnt{font-size:12px;opacity:.7}.dict-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px;max-height:62vh;overflow:auto;margin-top:14px;padding-right:4px}.dict-item{display:flex;align-items:center;gap:9px;padding:7px 10px;background:var(--panel2);border:1px solid var(--border);border-radius:8px}.dict-item:hover{border-color:var(--border2)}.dict-item .ditext{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.dict-item .dictdel{opacity:0}.dict-item:hover .dictdel{opacity:1}.geo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;max-height:66vh;overflow:auto;margin-top:4px}.geo-card{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:13px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}input,select,button{background:var(--input-bg);color:var(--text);border:1px solid var(--border2);border-radius:10px;padding:9px 12px;font-size:13.5px;font-family:inherit;outline:none;transition:.15s}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1668ff26}input::placeholder{color:var(--faint)}button{cursor:pointer}button:hover{border-color:var(--border2);background:var(--panel2)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover{background:#3f57e0;border-color:#3f57e0}button.ghost{background:var(--input-bg)}button.ghost:hover{background:var(--panel2)}button.danger{background:var(--input-bg);border-color:#e5484d66;color:var(--red)}button.danger:hover{background:#e5484d17}button.sm{padding:6px 10px;font-size:12.5px}button:disabled{opacity:.5;cursor:default}button.on-up{border-color:var(--green);background:#16a34a1f;color:var(--green)}button.on-down{border-color:var(--red);background:#e5484d1f;color:var(--red)}button.on-bell{border-color:var(--amber);background:#d9770621;color:var(--amber)}button.on-gsc{border-color:var(--green);background:#16a34a21;color:var(--green)}input.price-inp{width:84px;padding:5px 8px;font-size:13px;font-family:ui-monospace,monospace;background:transparent;border:1px solid transparent;border-radius:7px}input.price-inp:hover{border-color:var(--border2)}input.price-inp:focus{border-color:var(--accent);background:var(--input-bg)}.note-cell{max-width:240px;padding:5px 8px;border-radius:7px;cursor:pointer;border:1px solid transparent;color:var(--muted);font-size:13px}.note-cell:hover{border-color:var(--border2);background:var(--panel2)}.note-cell .note-text{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}label.check{color:var(--muted);display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px}.tablewrap{border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--panel);box-shadow:var(--card-sh)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border);white-space:nowrap}thead th{color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.4px;background:var(--panel2);position:sticky;top:0}th.sortable{cursor:pointer}th.sortable:hover{color:var(--text)}tbody tr{transition:background .12s;cursor:pointer}tbody tr:hover{background:var(--panel2)}tbody tr:last-child td{border-bottom:none}tbody tr.react-up{background:#f3fdf7}tbody tr.react-up:hover{background:#e6f9ee}tbody tr.react-down{background:#fef6f6}tbody tr.react-down:hover{background:#fcebeb}:root[data-theme=dark] tbody tr.react-up>td{background:#142a1e}:root[data-theme=dark] tbody tr.react-up:hover>td{background:#1a3728}:root[data-theme=dark] tbody tr.react-down>td{background:#2f1a23}:root[data-theme=dark] tbody tr.react-down:hover>td{background:#3b2029}.react-cell{display:flex;gap:5px}.react-cell button{background:var(--panel2);border-color:var(--border);color:var(--faint);padding:6px 8px}.react-cell button:hover{background:var(--elev);color:var(--text)}.react-cell button.on-up{border-color:#16a34a;background:#ecfdf3;color:#16a34a}.react-cell button.on-up:hover{background:#d9f8e5;color:#16a34a}.react-cell button.on-down{border-color:#dc2626;background:#fef1f1;color:#dc2626}.react-cell button.on-down:hover{background:#fbe0e0;color:#dc2626}:root[data-theme=dark] .react-cell button{color:#c9d2de}:root[data-theme=dark] .react-cell button:hover{color:#fff}:root[data-theme=dark] .react-cell button.on-up{border-color:#3fb950;background:#3fb95029;color:#fff}:root[data-theme=dark] .react-cell button.on-up:hover{background:#3fb9503d;color:#fff}:root[data-theme=dark] .react-cell button.on-down{border-color:#e5555b;background:#e5555b26;color:#fff}:root[data-theme=dark] .react-cell button.on-down:hover{background:#e5555b3b;color:#fff}td.mono,.mono{font-family:JetBrains Mono,ui-monospace,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}.dname{font-family:Inter,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:700;font-size:.95rem;color:var(--text)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:500}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill.ok{background:#16a34a1c;color:#15803d}.pill.pending{background:#d977061f;color:#b45309}.pill.none{background:#6b72801c;color:#6b7280}.pill.err{background:#e5484d1c;color:#c93a3f}.days{font-weight:600;font-variant-numeric:tabular-nums}.days.exp{color:var(--red)}.days.soon{color:var(--amber)}.days.ok{color:var(--text)}.days.na{color:var(--faint);font-weight:400}.row-actions{display:flex;gap:6px;opacity:.5;transition:.15s}tbody tr:hover .row-actions{opacity:1}.row-actions button{background:var(--panel2);border-color:var(--border);color:var(--muted)}.row-actions button:hover{background:var(--elev);color:var(--text)}.copybtn{background:transparent;border:none;padding:2px 5px;margin-left:7px;color:var(--faint);border-radius:6px;vertical-align:middle;line-height:1;opacity:0;transition:.12s;cursor:pointer}tbody tr:hover .copybtn{opacity:1}.copybtn:hover{background:var(--elev);color:var(--accent2);border:none}.copybtn .ok-tick{color:var(--green);font-weight:700;font-size:13px}.pager{display:flex;gap:10px;align-items:center;margin-top:16px;flex-wrap:wrap}.muted{color:var(--muted)}.faint{color:var(--faint)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40}.drawer{position:fixed;top:0;right:0;height:100vh;width:460px;max-width:92vw;z-index:50;background:var(--panel);border-left:1px solid var(--border);box-shadow:var(--shadow);display:flex;flex-direction:column;animation:slidein .2s ease}@keyframes slidein{0%{transform:translate(30px);opacity:.6}to{transform:none;opacity:1}}.drawer-head{padding:20px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}.drawer-head .dh-name{font-family:Inter,-apple-system,Segoe UI,sans-serif;font-size:17px;font-weight:700}.drawer-body{padding:20px 22px;overflow:auto}.kv{display:grid;grid-template-columns:130px 1fr;gap:10px 14px;align-items:baseline}.kv .k{color:var(--muted);font-size:13px}.kv .v{font-size:13.5px;text-align:right}.kv .v.mono{font-family:JetBrains Mono,monospace}.section-title{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--faint);margin:22px 0 10px}.kwlist{display:flex;flex-direction:column;gap:6px}.kwrow{display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:8px 11px}.kwrow .geo{font-size:11px;text-transform:uppercase;color:var(--accent2);background:#1668ff1f;padding:2px 7px;border-radius:6px;font-weight:600}.kwrow .pos{margin-left:auto;color:var(--faint);font-size:12px}.iconbtn{background:transparent;border:none;color:var(--muted);padding:6px;border-radius:8px}.iconbtn:hover{background:var(--panel2);color:var(--text)}.login-wrap{min-height:100vh;display:grid;place-items:center}.login{width:340px;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:30px;box-shadow:var(--shadow)}.login .logo{justify-content:center;padding-bottom:22px}.login input{width:100%;margin-bottom:12px}.login button{width:100%;margin-top:4px}.err{color:var(--red);margin-top:12px;font-size:13px;text-align:center}.bars{display:flex;flex-direction:column;gap:9px}.bar-row{display:grid;grid-template-columns:120px 1fr 50px;gap:12px;align-items:center;font-size:13px}.bar-track{height:8px;background:var(--elev);border-radius:6px;overflow:hidden}.bar-fill{height:100%;border-radius:6px}.empty{padding:40px;text-align:center;color:var(--faint)}
