:root{--bg: #f4f5fb;--surface: #ffffff;--surface-2: #f7f8fc;--border: #e6e8f0;--text: #1a1c2b;--text-soft: #5b5f76;--text-faint: #8a8ea6;--primary: #3b3ff0;--primary-hover: #2f33d6;--primary-soft: #ecedff;--danger: #e0362f;--danger-soft: #fdeceb;--ok: #12a150;--radius: 14px;--radius-sm: 10px;--shadow-sm: 0 1px 2px rgba(20, 22, 45, .06), 0 1px 3px rgba(20, 22, 45, .05);--shadow-lg: 0 24px 60px -20px rgba(29, 30, 74, .35);--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.muted{color:var(--text-soft)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.auth{min-height:100%;display:grid;place-items:center;padding:32px}.auth__card{width:min(960px,100%);display:grid;grid-template-columns:1.05fr 1fr;background:var(--surface);border-radius:22px;overflow:hidden;box-shadow:var(--shadow-lg)}.auth__brand{position:relative;padding:48px 44px;color:#fff;background:radial-gradient(120% 120% at 0% 0%,rgba(255,255,255,.18),transparent 55%),linear-gradient(155deg,#4b2fe0,#3b3ff0 45%,#6a3ff0);display:flex;flex-direction:column;justify-content:space-between}.auth__logo{display:inline-flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.02em;font-size:15px}.auth__logo span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#fff3}.auth__headline{font-size:34px;line-height:1.15;font-weight:700;margin:40px 0 12px}.auth__sub{font-size:15px;opacity:.82;max-width:34ch}.auth__points{display:grid;gap:12px;margin-top:28px}.auth__point{display:flex;align-items:center;gap:10px;font-size:13.5px;opacity:.92}.auth__point:before{content:"";width:18px;height:18px;border-radius:6px;background:#ffffff40;flex:none}.auth__form{padding:48px 44px;display:flex;flex-direction:column;justify-content:center}.auth__title{font-size:22px;font-weight:700;margin:0 0 4px}.auth__hint{font-size:14px;color:var(--text-soft);margin:0 0 28px}.field{margin-bottom:18px}.field label{display:block;font-size:12.5px;font-weight:600;color:var(--text-soft);margin-bottom:7px}.field__control{display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;transition:border-color .15s,box-shadow .15s,background .15s}.field__control:focus-within{border-color:var(--primary);background:#fff;box-shadow:0 0 0 4px var(--primary-soft)}.field__control input{flex:1;border:0;outline:0;background:transparent;padding:13px 0;font:inherit;color:var(--text)}.field__icon{color:var(--text-faint);display:grid;place-items:center}.field__toggle{border:0;background:transparent;cursor:pointer;color:var(--text-faint);padding:4px;display:grid;place-items:center}.field__toggle:hover{color:var(--text-soft)}.auth__row{display:flex;align-items:center;justify-content:space-between;margin:4px 0 22px;font-size:13px}.auth__check{display:flex;align-items:center;gap:8px;color:var(--text-soft)}.auth__check input{accent-color:var(--primary);width:15px;height:15px}.btn{border:0;border-radius:var(--radius-sm);font:inherit;font-weight:600;cursor:pointer;padding:13px 18px;transition:background .15s,transform .05s,opacity .15s}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--primary);color:#fff;width:100%;font-size:15px}.btn--primary:hover{background:var(--primary-hover)}.btn--primary:disabled{opacity:.6;cursor:not-allowed}.btn--ghost{background:var(--surface-2);border:1px solid var(--border);color:var(--text-soft)}.btn--ghost:hover{background:#eef0f6}.alert{background:var(--danger-soft);color:#a51f1a;border:1px solid #f6cfcc;border-radius:var(--radius-sm);padding:11px 13px;font-size:13.5px;margin-bottom:18px}.auth__footnote{margin-top:26px;font-size:12.5px;color:var(--text-faint);text-align:center}.auth__footnote code{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:12px}@media (max-width: 760px){.auth__card{grid-template-columns:1fr}.auth__brand{display:none}.auth__form{padding:36px 28px}}.shell{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar__brand{display:flex;align-items:center;gap:10px;font-weight:700}.topbar__brand span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--primary);color:#fff;font-size:14px}.topbar__user{display:flex;align-items:center;gap:14px;font-size:13.5px;color:var(--text-soft)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:700;font-size:13px}.page{max-width:1024px;width:100%;margin:0 auto;padding:28px}.page h1{font-size:22px;margin:0 0 4px}.page .muted{color:var(--text-soft);margin-top:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px;margin-top:20px}.card h2{font-size:15px;margin:0 0 14px}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;color:var(--text-faint);font-weight:600;padding:8px 10px}.table td{padding:10px;border-top:1px solid var(--border)}.table td.num,.table th.num{text-align:right}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}@media (max-width: 720px){.stats{grid-template-columns:1fr}}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px 20px;display:flex;flex-direction:column;gap:8px}.stat__label{font-size:12.5px;font-weight:600;color:var(--text-faint)}.stat__value{font-size:30px;font-weight:700;letter-spacing:-.01em}.stat__value--na{font-size:16px;font-weight:600;color:var(--text-faint)}.stat__hint{font-size:11.5px;color:var(--text-faint)}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot--on{background:var(--ok)}.dot--off{background:var(--danger)}.int-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--border)}.int-row:first-of-type{border-top:0}.int-row code{color:var(--text-faint);font-size:12px}.int-row .btn{margin-left:auto;padding:8px 14px;font-size:13px}
