:root{--midnight-navy: #14173a;--vivid-blue: #195be0;--soft-sky-blue: #b5cfe5;--soft-white: #f9f9f9;--gradient-end: #4e83e2;--wordmark-blue: #0e2a66;--brand-gradient: linear-gradient(180deg, var(--midnight-navy) 0%, var(--vivid-blue) 62%, var(--gradient-end) 100%);--surface: #f9f9f9;--surface-raised: #ffffff;--surface-sunken: #eef1f7;--brand: var(--vivid-blue);--brand-strong: #1746ac;--brand-ink: #195be0;--brand-soft: #dee8f1;--ink: #14173a;--ink-muted: #5d6180;--ink-disabled: #9a9eb5;--on-brand: #f9f9f9;--border: #7f86a0;--line: #e2e5ee;--focus: var(--brand-ink);--success-ink: #0b7a5b;--success-soft: #dcf5ea;--warning-ink: #8a5200;--warning-soft: #fdf0d5;--danger-ink: #c8281e;--danger-soft: #fde5e3;--overlay: #14173a99;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 32px;--radius-full: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--control-sm: 32px;--control-md: 40px;--control-lg: 48px;--avatar-sm: 32px;--avatar-md: 40px;--topnav: 64px;--sidebar: 256px;--shadow-sm: 0 1px 2px #14173a14, 0 1px 3px #14173a1f;--shadow-lg: 0 8px 16px #14173a1a, 0 16px 40px -4px #14173a33;--focus-ring: 0 0 0 2px #f9f9f9, 0 0 0 4px #195be0;--z-sticky: 100;--z-dropdown: 200;--z-overlay: 1000;--z-modal: 1100;--z-toast: 1200;--font: "TT Hoves Pro", "TT Hoves", "Onest", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--font);font-size:14px;line-height:20px;-webkit-font-smoothing:antialiased}strong,b{font-weight:500}a{color:var(--brand-ink);text-decoration:none}a:hover{color:var(--brand-strong)}button{font-family:inherit;cursor:pointer}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-xs)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}input,textarea,select{font-family:inherit;font-size:14px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--brand-soft);border-radius:var(--radius-sm);border:3px solid transparent;background-clip:content-box}.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar);flex-shrink:0;background:var(--surface-raised);border-right:1px solid var(--line);color:var(--ink);display:flex;flex-direction:column;padding:var(--space-3) var(--space-3) var(--space-4);gap:var(--space-3);position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-2)}.sidebar .brand img{height:24px}.sidebar .brand-tag{font-size:12px;line-height:16px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-ink);background:var(--brand-soft);border-radius:var(--radius-full);padding:2px var(--space-2)}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar .nav-group{font-size:12px;line-height:16px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);padding:var(--space-2) var(--space-3) var(--space-1)}.sidebar a.nav-item{display:flex;align-items:center;gap:var(--space-3);height:var(--control-sm);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--ink-muted);font-size:14px;line-height:20px;font-weight:500;transition:background-color .15s ease-out,color .15s ease-out}.sidebar a.nav-item:hover{background:var(--brand-soft);color:var(--ink)}.sidebar a.nav-item.active{background:var(--brand);color:var(--on-brand)}.sidebar a.nav-item .badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:16px;font-weight:500;background:var(--danger-ink);color:var(--surface);border-radius:var(--radius-full)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topnav);flex-shrink:0;background:var(--surface-raised);border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-6);position:sticky;top:0;z-index:var(--z-sticky)}.topbar h1{margin:0;font-size:18px;line-height:24px;font-weight:500}.topbar .grow{flex:1}.topbar .who{font-size:12px;line-height:16px;color:var(--ink-muted);text-align:right}.topbar .who strong{display:block;color:var(--ink);font-size:14px;line-height:20px;font-weight:500}.page{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-5)}.burger{display:none}@media (max-width: 900px){.sidebar{position:fixed;z-index:var(--z-overlay);left:0;top:0;bottom:0;transform:translate(-100%);transition:transform .25s ease-out}.sidebar.open{transform:none}.burger{display:inline-flex;align-items:center;justify-content:center;padding:0;width:var(--control-md);height:var(--control-md);border-radius:var(--radius-full);border:1px solid var(--border);background:transparent;color:var(--ink)}.burger:hover{background:var(--brand-soft);border-color:var(--brand-ink)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:var(--z-overlay)}.page{padding:var(--space-4)}}.card{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-5)}.card.pad0{padding:0;overflow:hidden}.card-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line)}.card-head h2{margin:0;font-size:18px;line-height:24px;font-weight:500}.card-head .grow{flex:1}.card-body{padding:var(--space-5)}.grid{display:grid;gap:var(--space-4)}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width: 1100px){.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 780px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:minmax(0,1fr)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-md);padding:0 var(--space-5);border:1px solid var(--brand);border-radius:var(--radius-full);font-size:16px;line-height:20px;font-weight:500;white-space:nowrap;background:var(--brand);color:var(--on-brand);transition:background-color .15s ease-out,border-color .15s ease-out,color .15s ease-out}.btn:hover:not(:disabled){background:var(--brand-strong);border-color:var(--brand-strong)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed;background:transparent;border-color:var(--line);color:var(--ink-disabled);transform:none}.btn.ghost{background:transparent;border-color:var(--border);color:var(--ink)}.btn.ghost:hover:not(:disabled){background:var(--brand-soft);border-color:var(--brand-ink)}.btn.danger{background:var(--danger-soft);border-color:var(--danger-soft);color:var(--danger-ink)}.btn.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger-ink)}.btn.sm{height:var(--control-sm);padding:0 var(--space-4);font-size:14px}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field>label{font-size:14px;line-height:20px;font-weight:500;color:var(--ink)}.field .help{font-size:12px;line-height:16px;color:var(--ink-muted)}.input,.field input,.field textarea,.field select{width:100%;height:var(--control-md);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 var(--space-3);outline:none;background:var(--surface-raised);color:var(--ink);font-size:16px;line-height:24px;transition:border-color .15s ease-out,box-shadow .15s ease-out}.input:focus,.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--brand-ink);box-shadow:var(--focus-ring)}.field textarea{height:auto;min-height:96px;padding:var(--space-2) var(--space-3);resize:vertical}.input:disabled,.field input:disabled,.field textarea:disabled,.field select:disabled{background:var(--surface-sunken);color:var(--ink-disabled);border-color:var(--line)}.switch{position:relative;width:44px;height:24px;border-radius:var(--radius-full);background:var(--border);padding:0;display:inline-flex;align-items:center;transition:background-color .15s ease-out;flex-shrink:0;border:none}.switch>span{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--surface-raised);transition:transform .15s ease-out}.switch.on{background:var(--brand)}.switch.on>span{transform:translate(20px);background:var(--on-brand)}.switch-row{display:flex;align-items:center;gap:var(--space-3)}.switch-row .txt strong{display:block;font-size:14px;line-height:20px;font-weight:500}.switch-row .txt span{font-size:12px;line-height:16px;color:var(--ink-muted)}.seg{display:inline-flex;gap:var(--space-2);flex-wrap:wrap}.seg button{height:var(--control-sm);border:1px solid transparent;background:var(--surface-sunken);border-radius:var(--radius-full);padding:0 var(--space-4);font-size:14px;line-height:20px;font-weight:500;color:var(--ink);transition:background-color .15s ease-out,border-color .15s ease-out,color .15s ease-out}.seg button:hover{border-color:var(--brand-ink)}.seg button.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);height:var(--control-sm);border:1px solid transparent;border-radius:var(--radius-full);padding:0 var(--space-4);font-size:14px;line-height:20px;font-weight:500;background:var(--surface-sunken);color:var(--ink);transition:background-color .15s ease-out,border-color .15s ease-out,color .15s ease-out}.chip:hover{border-color:var(--brand-ink)}.chip.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.pill{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:12px;line-height:16px;font-weight:500;white-space:nowrap;background:var(--surface-sunken);color:var(--ink)}.pill.green{background:var(--success-soft);color:var(--success-ink)}.pill.grey{background:var(--surface-sunken);color:var(--ink)}.pill.blue{background:var(--brand-soft);color:var(--brand-ink)}.pill.amber{background:var(--warning-soft);color:var(--warning-ink)}.pill.red{background:var(--danger-soft);color:var(--danger-ink)}.table{width:100%;border-collapse:collapse;font-size:14px;line-height:20px}.table th{text-align:left;font-size:14px;line-height:20px;font-weight:500;color:var(--ink-muted);background:var(--surface-sunken);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--brand-soft)}.table-wrap{overflow-x:auto}.table .input,.table select,.table input{width:auto;height:var(--control-sm);padding:0 var(--space-2);font-size:14px;line-height:20px}.meta{font-size:12px;line-height:16px;color:var(--ink-muted)}button.link{border:0;background:none;padding:0;font:inherit;color:var(--brand-ink);cursor:pointer;text-align:left}button.link:hover{text-decoration:underline;text-underline-offset:3px}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--space-3);padding:var(--space-4) var(--space-5)}.kpi{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);background:var(--surface-raised);min-width:0}.kpi .label{font-size:14px;line-height:20px;color:var(--ink-muted)}.kpi .value{font-size:28px;line-height:34px;font-weight:500;letter-spacing:-.01em;margin-top:2px;font-variant-numeric:tabular-nums}.kpi .sub,.kpi .hint{font-size:12px;line-height:16px;color:var(--ink-muted);margin-top:2px}.filters{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--line)}.filters .input[type=date]{width:auto}.sub-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-5) var(--space-1);font-size:12px;line-height:16px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);font-weight:500}.input.sm{height:var(--control-sm);padding:0 var(--space-3);font-size:14px;line-height:20px;text-transform:none;letter-spacing:normal;font-weight:400}.empty{padding:var(--space-8) var(--space-5);text-align:center;color:var(--ink-muted);font-size:14px;line-height:20px}.toast{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);background:var(--ink);color:var(--on-brand);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:14px;line-height:20px;font-weight:500;z-index:var(--z-toast);box-shadow:var(--shadow-lg)}.toast.err{background:var(--danger-ink)}.alert{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:14px;line-height:20px;background:var(--danger-soft);color:var(--danger-ink)}.alert.info{background:var(--brand-soft);color:var(--ink)}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-5);z-index:var(--z-modal)}.modal{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;max-width:540px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal.wide{max-width:960px}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--brand-soft);border-top-color:var(--brand);animation:spin .9s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-8);color:var(--ink-muted)}.inbox{display:grid;grid-template-columns:320px minmax(0,1fr);gap:var(--space-4);align-items:start}@media (max-width: 900px){.inbox{grid-template-columns:minmax(0,1fr)}}.chat-list{max-height:calc(100vh - 190px);overflow-y:auto}.chat-row{display:flex;gap:var(--space-3);align-items:center;width:100%;padding:var(--space-3) var(--space-4);border:none;background:none;text-align:left;border-bottom:1px solid var(--line);transition:background-color .15s ease-out}.chat-row:hover{background:var(--brand-soft)}.chat-row.on{background:var(--brand);color:var(--on-brand)}.chat-row.on .who span,.chat-row.on .time{color:var(--on-brand);opacity:.8}.chat-row .who{min-width:0;flex:1}.chat-row .who strong{display:block;font-size:14px;line-height:20px;font-weight:500}.chat-row .who span{display:block;font-size:14px;line-height:20px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-row .time{font-size:12px;line-height:16px;color:var(--ink-muted);flex-shrink:0}.avatar{width:var(--avatar-md);height:var(--avatar-md);border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--brand-soft);color:var(--brand-ink);font-size:14px;font-weight:500;object-fit:cover}.thread{height:calc(100vh - 300px);min-height:320px;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}.bubble{max-width:min(420px,78%);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:15px;line-height:22px;white-space:pre-wrap;word-break:break-word}.bubble.user{align-self:flex-start;background:var(--brand-soft);color:var(--ink);border-bottom-left-radius:var(--radius-sm)}.bubble.bot{align-self:flex-end;background:var(--brand);color:var(--on-brand);border-bottom-right-radius:var(--radius-sm)}.bubble .t{display:block;font-size:12px;line-height:16px;opacity:.7;margin-top:var(--space-1)}.composer{display:flex;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--line)}.item-card{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4);border-bottom:1px solid var(--line)}.item-card:last-child{border-bottom:none}.item-card .thumb{width:56px;height:56px;border-radius:var(--radius-sm);object-fit:cover;background:var(--surface-sunken);flex-shrink:0}.item-card .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.item-card .info strong{font-size:14px;line-height:20px;font-weight:500}.item-card .info .meta{font-size:12px;line-height:16px;color:var(--ink-muted)}.item-card .actions{display:flex;gap:var(--space-2);flex-shrink:0}.tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.setup-shell{max-width:940px;margin:0 auto;padding:var(--space-8) var(--space-5) 60px;display:flex;flex-direction:column;gap:var(--space-6)}.stepper{display:flex;align-items:center;justify-content:center}.stepper .dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;background:var(--surface-sunken);color:var(--ink-muted)}.stepper .dot.active{background:var(--brand);color:var(--on-brand)}.stepper .dot.done{background:var(--ink);color:var(--on-brand)}.stepper .lbl{font-size:14px;line-height:20px;margin-left:var(--space-2);color:var(--ink-muted)}.stepper .lbl.active{font-weight:500;color:var(--ink)}.stepper .line{width:40px;height:2px;background:var(--line);margin:0 var(--space-4)}@media (max-width: 640px){.stepper .lbl{display:none}.stepper .line{width:18px;margin:0 var(--space-2)}}.login-shell{min-height:100vh;display:flex;background:var(--surface)}.login-art{flex:1;display:none;padding:56px;color:var(--on-brand);flex-direction:column;justify-content:center;gap:var(--space-4);background:var(--brand-gradient)}@media (min-width: 980px){.login-art{display:flex}}.login-art h2{font-size:36px;line-height:42px;margin:0;max-width:460px;font-weight:500;letter-spacing:-.01em}.login-art p{color:var(--soft-sky-blue);font-size:16px;line-height:24px;max-width:430px}.login-art .points{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.login-art .points span{color:var(--on-brand);font-size:14px;line-height:20px;display:flex;gap:var(--space-2)}.login-pane{width:100%;max-width:520px;display:flex;align-items:center;justify-content:center;padding:var(--space-8)}.login-box{width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--space-4)}.login-box h1{color:var(--ink);margin:0;font-size:28px;line-height:34px;font-weight:500;letter-spacing:-.01em}.login-box p.sub{color:var(--ink-muted);margin:0;font-size:14px;line-height:20px}.login-box label{color:var(--ink)}.login-box .foot{font-size:12px;line-height:16px;color:var(--ink-muted);text-align:center}.lang{display:inline-flex;gap:var(--space-1)}.lang-item{border:1px solid transparent;background:var(--surface-sunken);height:var(--control-sm);padding:0 var(--space-3);border-radius:var(--radius-full);cursor:pointer;font-family:inherit;font-size:14px;line-height:20px;font-weight:500;color:var(--ink);transition:background-color .15s ease-out,border-color .15s ease-out,color .15s ease-out}.lang-item:hover{border-color:var(--brand-ink)}.lang-item.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}@keyframes enter-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes enter-fade{0%{opacity:0}to{opacity:1}}.page{animation:enter-up .25s cubic-bezier(.16,1,.3,1) backwards}.card{animation:enter-up .2s cubic-bezier(.16,1,.3,1) backwards}@media (prefers-reduced-motion: reduce){.page,.card{animation:enter-fade .15s linear backwards}}
