:root{--bg: #f6f8fb;--surface: #ffffff;--surface-2: #f1f4f8;--hover: #e6ebf2;--row-active: color-mix(in srgb, var(--accent) 9%, transparent);--border: #dde3ec;--border-strong: #c3ccd9;--text: #17202c;--text-muted: #5a6779;--accent: #2563eb;--accent-strong: #1d4ed8;--on-accent: #ffffff;--success: #047857;--warn: #b45309;--danger: #b91c1c;--mock: #7e22ce;--success-text: var(--success);--danger-text: var(--danger);--info-text: var(--accent-strong);--shadow: 0 18px 40px rgba(15, 23, 42, .14);--radius: 12px;--radius-sm: 8px;color-scheme:light}[data-theme=dark]{--bg: #0b0f14;--surface: #121820;--surface-2: #171f29;--hover: #1f2937;--border: #243040;--border-strong: #33415a;--text: #e8eef6;--text-muted: #93a3b8;--accent: #4f9cf9;--accent-strong: #2b7de0;--success: #34d399;--warn: #fbbf24;--danger: #f87171;--mock: #c084fc;--success-text: #6ee7b7;--danger-text: #fca5a5;--info-text: #93c5fd;--shadow: 0 18px 40px rgba(0, 0, 0, .45);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0 0 .4em;line-height:1.25;font-weight:620;letter-spacing:-.015em}h1{font-size:1.65rem}h2{font-size:1.25rem}h3{font-size:1.02rem}p{margin:0 0 1em}.app-shell{display:flex;flex-direction:column;min-height:100%}.topbar{display:flex;align-items:center;gap:20px;padding:0 24px;height:60px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:20}.brand{font-weight:700;letter-spacing:-.02em;color:var(--text);font-size:1.05rem;white-space:nowrap}.brand span{color:var(--accent)}.brand-logo{display:block;max-height:32px;max-width:180px;object-fit:contain}.auth-card .brand-logo{max-height:48px;max-width:240px}.topnav{display:flex;gap:4px;flex:1;overflow-x:auto}.topnav a{padding:7px 12px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:.9rem;white-space:nowrap}.topnav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.topnav a.active{background:var(--surface-2);color:var(--text)}.topbar-right{display:flex;align-items:center;gap:12px;margin-left:auto}.page{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:28px 24px 64px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-header p{color:var(--text-muted);margin:0}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:12px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.card.tight{padding:14px}.card-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:10px;font-weight:600}.stat{font-size:1.9rem;font-weight:660;letter-spacing:-.02em}.muted{color:var(--text-muted)}.small{font-size:.85rem}.mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.87em}.empty{padding:34px 20px;text-align:center;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius)}button,.btn{font:inherit;font-weight:550;padding:8px 15px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);cursor:pointer;transition:background .12s ease,border-color .12s ease}button:hover:not(:disabled),.btn:hover{background:var(--hover);text-decoration:none}button:disabled{opacity:.45;cursor:not-allowed}button.primary,.btn.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}button.primary:hover:not(:disabled){background:var(--accent)}button.danger{border-color:color-mix(in srgb,var(--danger) 45%,transparent);color:var(--danger)}button.small{padding:5px 10px;font-size:.85rem}label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:5px;font-weight:550}input,select,textarea{font:inherit;width:100%;padding:8px 11px;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-strong);outline-offset:-1px}textarea{min-height:110px;resize:vertical;font-family:inherit}.field{margin-bottom:14px}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.checkbox{display:flex;align-items:center;gap:9px;color:var(--text);font-size:.92rem}.checkbox input{width:auto;margin:0}table{width:100%;border-collapse:collapse;font-size:.91rem}th{text-align:left;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:9px 12px;border-bottom:1px solid var(--border);font-weight:600}td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-2)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:.79rem;font-weight:560;border:1px solid transparent;white-space:nowrap}.badge.pending{background:color-mix(in srgb,var(--warn) 12%,transparent);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}.badge.active{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.badge.success{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success);border-color:color-mix(in srgb,var(--success) 30%,transparent)}.badge.danger{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.pill{display:inline-block;padding:2px 9px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);font-size:.78rem;color:var(--text-muted)}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;padding:0 0 18px 24px;border-left:2px solid var(--border)}.timeline li:last-child{border-left-color:transparent;padding-bottom:0}.timeline li:before{content:"";position:absolute;left:-6px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--surface)}.timeline .when{font-size:.8rem;color:var(--text-muted)}.alert{padding:11px 14px;border-radius:var(--radius-sm);border:1px solid;margin-bottom:14px;font-size:.9rem}.alert.error{background:color-mix(in srgb,var(--danger) 9%,transparent);border-color:color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger-text)}.alert.success{background:color-mix(in srgb,var(--success) 9%,transparent);border-color:color-mix(in srgb,var(--success) 35%,transparent);color:var(--success-text)}.alert.info{background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,transparent);color:var(--info-text)}.centered{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:430px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px}.persona{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 12px;margin-bottom:6px}.hero{padding:44px 0 26px;border-bottom:1px solid var(--border);margin-bottom:26px}.hero h1{font-size:2.3rem;max-width:18ch}.marketing-body{color:var(--text-muted);max-width:70ch}.marketing-body h2{color:var(--text)}.price{font-size:1.5rem;font-weight:660;letter-spacing:-.02em}.sticker-sheet{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.sticker{background:#fff;color:#000;border-radius:10px;padding:14px;text-align:center;border:2px dashed #94a3b8}.sticker canvas,.sticker img{width:150px;height:150px}.sticker .label{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;margin-top:6px;word-break:break-all}.sticker .kit-name{font-weight:700;font-size:.9rem}.sticker .serial{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.15rem;font-weight:700;letter-spacing:.06em;margin-top:4px}.sticker .hint{font-size:.68rem;margin-top:6px;color:#334155}@media print{.topbar,.no-print{display:none!important}body{background:#fff}.page{padding:0;max-width:none}.sticker{break-inside:avoid}}.notif-list{position:absolute;right:0;top:42px;width:340px;max-height:420px;overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:8px;z-index:40;box-shadow:var(--shadow)}.notif{padding:9px 10px;border-radius:var(--radius-sm);cursor:pointer}.notif:hover{background:var(--surface-2)}.notif.unread{border-left:3px solid var(--accent)}.bell-wrap{position:relative}.bell-count{position:absolute;top:-4px;right:-4px;background:var(--danger);color:var(--on-accent);border-radius:999px;font-size:.68rem;padding:1px 5px;font-weight:700}.kit-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px;background:var(--surface-2)}.kit-card.focused{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.thread-list{display:flex;flex-direction:column;gap:6px}.thread-item{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:4px 6px 4px 0}.thread-item.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.thread-open{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:none;border:none;padding:6px 10px;text-align:left;cursor:pointer}.thread-title{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.chat-log{display:flex;flex-direction:column;gap:16px;max-height:min(520px,60vh);overflow-y:auto;overscroll-behavior:contain;margin:12px 0;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}.chat-markdown{margin-top:4px;line-height:1.55;overflow-wrap:anywhere}.chat-markdown>:first-child{margin-top:0}.chat-markdown>:last-child{margin-bottom:0}.chat-markdown p,.chat-markdown ul,.chat-markdown ol{margin:0 0 8px}.chat-markdown ul,.chat-markdown ol{padding-left:20px}.chat-markdown li+li{margin-top:2px}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3,.chat-markdown h4{font-size:1em;margin:12px 0 6px}.chat-markdown code{font-family:var(--mono, ui-monospace, monospace);font-size:.95em;padding:1px 4px;border-radius:4px;background:var(--surface)}.chat-markdown table{border-collapse:collapse;margin:0 0 8px;display:block;overflow-x:auto}.chat-markdown th,.chat-markdown td{border:1px solid var(--border);padding:4px 8px;text-align:left}.address{font-style:normal;line-height:1.5}.switcher{position:relative;flex-shrink:0}.switcher-button{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);cursor:pointer;max-width:340px}.switcher-button.acting{border-color:var(--warn)}.switcher-kicker{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.switcher-label{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.switcher-menu{position:absolute;left:0;top:46px;width:380px;max-height:70vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:8px;z-index:40;box-shadow:var(--shadow)}.switcher-item{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:9px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);text-align:left;cursor:pointer}.switcher-item:hover,.switcher-item.current{background:var(--surface-2)}.switcher-filter{width:100%;margin:6px 0}.switcher-group{padding:8px 10px;border-top:1px solid var(--border)}.switcher-group-title{font-weight:600;font-size:.9rem;margin-bottom:6px}.switcher-roles{display:flex;flex-wrap:wrap;gap:6px}.switcher-role{padding:4px 10px;border-radius:999px;border:1px solid var(--border-strong);background:transparent;color:var(--text-muted);font-size:.82rem;cursor:pointer}.switcher-role:hover{color:var(--text);border-color:var(--accent)}.switcher-role.current{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.identity{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.identity-name{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600}.acting-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 24px;background:color-mix(in srgb,var(--warn) 12%,transparent);border-bottom:1px solid color-mix(in srgb,var(--warn) 40%,transparent);color:var(--warn);font-size:.88rem}.role-chips{display:flex;flex-wrap:wrap;gap:6px}.role-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 10px;border-radius:999px;border:1px solid var(--border-strong);font-size:.82rem}.role-chip.suspended{opacity:.55;text-decoration:line-through}.role-chip select{padding:1px 4px;font-size:.75rem}.badge.mock{background:color-mix(in srgb,var(--mock) 14%,transparent);color:var(--mock);border-color:color-mix(in srgb,var(--mock) 40%,transparent)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;padding:6px;line-height:0}.theme-toggle.floating{position:fixed;right:16px;bottom:16px;z-index:50;border-radius:999px;padding:9px;box-shadow:var(--shadow)}
