:root{--bg: #F8FAFC;--surface: #FFFFFF;--surface-2: #F1F5F9;--surface-3: #E2E8F0;--ink: #0F172A;--ink-soft: #475569;--ink-faint: #94A3B8;--line: #CBD5E1;--line-strong: #94A3B8;--iri: linear-gradient(135deg, #0F172A 0%, #1E3A8A 32%, #2563EB 55%, #1E40AF 78%, #0F172A 100%);--accent: #1E3A8A;--accent-hover: #1D4ED8;--accent-soft: #EFF6FF;--success: #15803D;--success-soft: #F0FDF4;--warn: #B45309;--warn-soft: #FFFBEB;--danger: #B91C1C;--danger-soft: #FEF2F2;--radius-s: 6px;--radius-m: 10px;--radius-l: 14px;--radius-xl: 18px;--shadow-subtle: 0 1px 3px rgba(15, 23, 42, .04);--shadow-modal: 0 16px 36px -10px rgba(15, 23, 42, .16);--ease: cubic-bezier(.22, .8, .32, 1);--ease-out: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Instrument Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh;font-feature-settings:"tnum" 1,"cv05" 1}::selection{background:var(--ink);color:#fff}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}.aurora-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:var(--bg);overflow:hidden;pointer-events:none}.aurora-bg span{position:absolute;width:48vw;height:48vw;max-width:580px;max-height:580px;border-radius:50%;filter:blur(140px);opacity:.055;background:radial-gradient(circle,#2563EB 0%,#1E3A8A 45%,transparent 75%);animation:auroraDrift 20s ease-in-out infinite alternate}.aurora-bg span:nth-child(1){left:-8vw;top:-10vw}.aurora-bg span:nth-child(2){right:-8vw;bottom:-8vw;animation-delay:-6s}@keyframes auroraDrift{0%{transform:translate(0) scale(1)}to{transform:translate(3vw,2.5vw) scale(1.08)}}@keyframes iriShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.app-shell{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}.header-bar{background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}.header-inner{max-width:1180px;margin:0 auto;padding:13px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;transition:max-width .2s ease}.header-inner--timesheet{max-width:100%!important;padding-left:24px;padding-right:24px}.brand-mark{display:flex;align-items:center;gap:10px}.brand-glyph{width:26px;height:26px;border-radius:6px;background:var(--iri);background-size:240% 240%;animation:iriShift 6s ease-in-out infinite;position:relative;flex-shrink:0;box-shadow:0 2px 6px #1e3a8a38}.brand-glyph:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:#fff;border-radius:2px}.brand-word{font-weight:700;font-size:15px;letter-spacing:-.02em;color:var(--ink)}.main-content{flex:1;max-width:1180px;width:100%;margin:0 auto;padding:32px 24px 80px;animation:fadeSlideUp .35s var(--ease-out) both;transition:max-width .2s ease}.main-content--timesheet{max-width:100%!important;padding:24px 24px 80px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:24px;margin-bottom:20px;box-shadow:var(--shadow-subtle);animation:fadeSlideUp .35s var(--ease-out) both}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px}.card-title{font-size:16px;font-weight:700;letter-spacing:-.015em;color:var(--ink)}.card-desc{font-size:13px;color:var(--ink-soft);margin-top:4px;line-height:1.5}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px;flex-wrap:wrap}.page-title{font-size:24px;font-weight:700;letter-spacing:-.025em;color:var(--ink)}.page-subtitle{font-size:13.5px;color:var(--ink-soft);margin-top:4px}button{font-family:inherit;font-weight:600;font-size:13.5px;border-radius:var(--radius-s);cursor:pointer;border:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;position:relative;overflow:hidden;transition:all .15s var(--ease)}button:active:not(:disabled){transform:scale(.985)}button:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--ink);color:#fff;border:1px solid var(--ink);padding:9px 16px}.btn-primary:hover:not(:disabled){background:#1e293b;border-color:#1e293b}.btn-accent{background:var(--accent);color:#fff;border:1px solid var(--accent);padding:9px 16px}.btn-accent:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:8px 14px}.btn-secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--line-strong)}.btn-danger{background:var(--surface);color:var(--danger);border:1px solid var(--danger-soft);padding:8px 14px}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn-link{background:none;border:none;color:var(--ink-soft);padding:5px 8px;font-size:13px;cursor:pointer;border-radius:var(--radius-s)}.btn-link:hover{color:var(--ink);background:var(--surface-2)}.input,input[type=text],input[type=email],input[type=password],input[type=date],input[type=datetime-local],select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface);color:var(--ink);font-family:inherit;font-size:14px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.input:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #1e3a8a1f}.field-label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}.objects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(max(260px,calc((100% - 48px)/4)),1fr));gap:16px;margin-top:16px}.object-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:20px;display:flex;flex-direction:column;justify-content:space-between;gap:16px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.object-card:hover{border-color:var(--line-strong);box-shadow:0 4px 12px #11121508}.object-name{font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.pill{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.01em}.pill-active{background:var(--success-soft);color:var(--success)}.pill-warn{background:var(--warn-soft);color:var(--warn)}.pill-danger{background:var(--danger-soft);color:var(--danger)}.pill-neutral{background:var(--surface-2);color:var(--ink-soft)}.emp-toolbar input.input,.emp-toolbar select,.emp-toolbar button.btn-primary,.emp-toolbar button.btn-secondary{height:30px;box-sizing:border-box;padding-top:0;padding-bottom:0;line-height:1.2}.emp-toolbar input.input,.emp-toolbar select{padding-left:10px;padding-right:10px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface)}table.clean-table{width:100%;border-collapse:collapse;font-size:13.5px}table.clean-table th{background:var(--surface-2);padding:10px 14px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:700;border-bottom:1px solid var(--line);white-space:nowrap}table.clean-table td{padding:12px 14px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle}table.clean-table tr:last-child td{border-bottom:none}table.clean-table tbody tr:hover{background:var(--surface-2)}.alert-error{background:var(--danger-soft);color:var(--danger);border:1px solid rgba(185,28,28,.2);border-radius:var(--radius-s);padding:12px 16px;font-size:13.5px;margin-bottom:18px}.alert-success{background:var(--success-soft);color:var(--success);border:1px solid rgba(21,128,61,.2);border-radius:var(--radius-s);padding:12px 16px;font-size:13.5px;margin-bottom:18px}.timesheet-grid-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);width:100%;box-shadow:var(--shadow-card)}table.timesheet-table{width:100%;border-collapse:separate;font-size:12px;border-spacing:0}table.timesheet-table th,table.timesheet-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}select.timesheet-cell-select{border:none;outline:none;background:transparent;width:100%;height:28px;padding:0;font-size:11px;font-weight:700;text-align:center;text-align-last:center;font-family:inherit;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;border-radius:0;transition:background-color .15s ease}select.timesheet-cell-select::-ms-expand{display:none}select.timesheet-cell-select:focus{outline:2px solid var(--accent);outline-offset:-2px;background:#fff!important;color:var(--ink)!important}select.timesheet-cell-select option{background:#fff;color:var(--ink);font-weight:500;text-align:left;padding:6px 10px}.timesheet-date-header-v{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;height:86px;min-width:23px;width:23px;max-width:24px;padding:6px 1px;text-align:center;font-size:10px;font-weight:600;letter-spacing:.03em;vertical-align:middle;line-height:1}.timesheet-cell-narrow{min-width:23px;width:23px;max-width:24px;padding:0!important;text-align:center}.ts-nav-list{display:flex;flex-direction:column;gap:6px;width:230px;flex-shrink:0;transition:width .22s cubic-bezier(.16,1,.3,1)}.ts-nav-list.collapsed{width:52px}.ts-nav-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;transition:all .18s cubic-bezier(.16,1,.3,1);text-align:left;-webkit-user-select:none;user-select:none}.ts-nav-list.collapsed .ts-nav-item{padding:10px 0;justify-content:center}.ts-nav-item:hover{background:var(--surface-2);border-color:var(--line-strong);transform:scale(1.03);box-shadow:0 4px 12px #0f172a14;z-index:2}.ts-nav-item:active{transform:scale(.99)}.ts-nav-item.active{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:var(--shadow-sm)}.ts-nav-item .ts-nav-badge{font-size:11px;padding:2px 7px;border-radius:999px;font-weight:700;background:var(--surface-3);color:var(--ink-soft)}.ts-nav-item.active .ts-nav-badge{background:#fff3;color:#fff}.timesheet-col-gap{width:8px!important;min-width:8px!important;max-width:8px!important;padding:0!important;background:#fff!important;border-left:1px solid var(--line)!important;border-right:1px solid var(--line)!important;pointer-events:none}.ts-hamburger-btn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3.5px;width:34px;height:34px;padding:0;border-radius:var(--radius-s);background:var(--surface);border:1px solid var(--line);cursor:pointer;color:var(--ink);transition:all .18s var(--ease)}.ts-hamburger-btn:hover{background:var(--surface-2);border-color:var(--line-strong);color:var(--accent)}.ts-hamburger-line{display:block;width:16px;height:2px;background-color:currentColor;border-radius:2px;transition:all .2s var(--ease)}.ts-nav-wrapper{position:relative;flex-shrink:0;transition:width .24s cubic-bezier(.16,1,.3,1)}.dlg-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20000;display:flex;align-items:center;justify-content:center;padding:16px;background:#0f172a73;animation:dlgFade .14s var(--ease-out)}.dlg{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:0 24px 56px -16px #0f172a61;padding:22px 24px 18px;animation:dlgPop .18s var(--ease-out)}.dlg-title{font-size:16px;font-weight:700;color:var(--ink);margin-bottom:8px}.dlg-message{font-size:14px;line-height:1.5;color:var(--ink-soft);white-space:pre-wrap;overflow-wrap:anywhere}.dlg-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.dlg-actions button{min-width:96px;padding:9px 16px;cursor:pointer}.dlg-btn-danger{background:var(--danger);color:#fff;border:1px solid var(--danger);border-radius:var(--radius-s);font-family:inherit;font-size:14px;font-weight:600}.dlg-btn-danger:hover{background:#991b1b;border-color:#991b1b}.dlg-actions button:focus-visible{outline:2px solid var(--accent-hover);outline-offset:2px}@keyframes dlgFade{0%{opacity:0}to{opacity:1}}@keyframes dlgPop{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}.pk-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--radius-s);background:transparent;color:var(--ink-soft)}.pk-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.pk-pop{position:fixed;z-index:10000;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:0 18px 40px -12px #0f172a4d,0 2px 6px #0f172a0f;font-family:inherit;color:var(--ink);outline:none;animation:dlgPop .14s var(--ease-out);-webkit-user-select:none;user-select:none}.pk-pop button{font-family:inherit;cursor:pointer}.pk-head{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:8px}.pk-nav{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--radius-s);background:transparent;color:var(--ink-soft)}.pk-nav:hover{background:var(--surface-2);color:var(--ink)}.pk-title{flex:1;height:32px;border:none;border-radius:var(--radius-s);background:transparent;font-size:14px;font-weight:700;color:var(--ink)}.pk-title:hover{background:var(--surface-2)}.pk-title-static{display:inline-flex;align-items:center;justify-content:center;cursor:default}.pk-title-static:hover{background:transparent}.pk-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.pk-weekdays{margin-bottom:4px}.pk-weekdays span{text-align:center;font-size:11px;font-weight:600;color:var(--ink-faint);padding:4px 0}.pk-day{height:34px;border:1px solid transparent;border-radius:var(--radius-s);background:transparent;font-size:13px;color:var(--ink)}.pk-day:hover:not(:disabled){background:var(--accent-soft)}.pk-day.pk-we,.pk-weekdays .pk-we{color:var(--danger)}.pk-day.pk-out{color:var(--ink-faint)}.pk-day.pk-out.pk-we{color:#e5a3a3}.pk-day.pk-today,.pk-cell.pk-today{border-color:var(--accent)}.pk-day.pk-cur{background:var(--surface-2)}.pk-day.pk-sel,.pk-cell.pk-sel{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.pk-day:disabled{opacity:.3;cursor:default}.pk-cells3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;min-height:210px;align-content:start}.pk-cell{height:44px;border:1px solid transparent;border-radius:var(--radius-s);background:transparent;font-size:13px;color:var(--ink)}.pk-cell:hover:not(.pk-sel){background:var(--accent-soft)}.pk-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;border-top:1px solid var(--surface-3)}.pk-link{border:none;background:transparent;padding:4px 6px;font-size:13px;font-weight:600;color:var(--accent);border-radius:var(--radius-s)}.pk-link:hover:not(:disabled){background:var(--accent-soft)}.pk-link:disabled{opacity:.4;cursor:default}.pk-link-muted{color:var(--ink-soft)}.pk-time{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pk-time-cap{font-size:11px;font-weight:600;color:var(--ink-faint);text-align:center;margin-bottom:4px}.pk-time-col{position:relative;height:196px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding-right:2px}.pk-time-col .pk-cell{height:32px;flex:0 0 32px}.chat-root{display:grid;grid-template-columns:300px 1fr;height:620px;min-height:420px;background:var(--surface, #fff);border:1px solid var(--line, #E2E8F0);border-radius:var(--radius-l, 14px);overflow:hidden;position:relative;font-family:inherit}.chat-root button{font-family:inherit;cursor:pointer}.chat-side{display:flex;flex-direction:column;border-right:1px solid var(--line, #E2E8F0);min-height:0;background:var(--surface-2, #F8FAFC)}.chat-side-head{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;font-weight:700;font-size:15px;color:var(--ink, #0F172A)}.chat-add{border:1px solid var(--line, #E2E8F0);background:var(--surface, #fff);border-radius:var(--radius-s, 8px);padding:5px 10px;font-size:12px;font-weight:600;color:var(--ink, #0F172A)}.chat-add:hover{background:var(--accent-soft, #EEF2FF)}.chat-rooms{overflow-y:auto;flex:1;padding:0 6px 8px}.chat-room{display:flex;gap:10px;width:100%;text-align:left;padding:9px 8px;border:none;background:transparent;border-radius:var(--radius-m, 10px);align-items:center}.chat-room:hover{background:var(--surface-3, #EEF2F6)}.chat-room.active{background:var(--accent-soft, #EEF2FF)}.chat-avatar{flex:0 0 38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--accent, #0F172A);color:#fff;font-weight:700;font-size:15px}.chat-avatar.general{background:#0f766e}.chat-avatar.small{flex:0 0 30px;height:30px;font-size:13px}.chat-room-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-room-top,.chat-room-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.chat-room-name{font-weight:600;font-size:13.5px;color:var(--ink, #0F172A);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-room-time{font-size:11px;color:var(--ink-faint, #94A3B8);white-space:nowrap}.chat-room-last{font-size:12.5px;color:var(--ink-soft, #64748B);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;line-height:1}.chat-main{display:flex;flex-direction:column;min-width:0;min-height:0}.chat-head{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line, #E2E8F0)}.chat-back{display:none;border:none;background:transparent;font-size:26px;line-height:1;padding:0 6px;color:var(--ink, #0F172A)}.chat-head-title{flex:1;min-width:0}.chat-head-name{font-weight:700;font-size:15px;color:var(--ink, #0F172A);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-head-sub{font-size:12px;color:var(--ink-soft, #64748B)}.chat-head-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.chat-link{border:none;background:transparent;font-size:12.5px;font-weight:600;color:var(--accent, #0F172A);padding:5px 8px;border-radius:var(--radius-s, 8px)}.chat-link:hover{background:var(--accent-soft, #EEF2FF)}.chat-link.danger{color:#b91c1c}.chat-link.danger:hover{background:#fef2f2}.chat-msgs{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:4px;background:var(--surface-2, #F8FAFC)}.chat-empty{color:var(--ink-soft, #64748B);font-size:13px;text-align:center;padding:24px 12px}.chat-day{display:flex;justify-content:center;margin:10px 0 6px}.chat-day span{background:var(--surface-3, #E8EDF3);color:var(--ink-soft, #64748B);font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:10px}.chat-msg{display:flex}.chat-msg.mine{justify-content:flex-end}.chat-bubble{max-width:min(560px,82%);background:var(--surface, #fff);border:1px solid var(--line, #E2E8F0);border-radius:14px 14px 14px 4px;padding:7px 11px 4px}.chat-msg.mine .chat-bubble{background:var(--accent-soft, #E0E7FF);border-color:transparent;border-radius:14px 14px 4px}.chat-sender{font-size:11.5px;font-weight:700;color:#0f766e;margin-bottom:1px}.chat-tag{margin-left:6px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:#e0e7ff;color:#3730a3;padding:1px 5px;border-radius:5px}.chat-text{font-size:14px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink, #0F172A)}.chat-time{display:flex;justify-content:flex-end;align-items:center;gap:6px;font-size:10.5px;color:var(--ink-faint, #94A3B8);margin-top:1px}.chat-del{border:none;background:transparent;color:var(--ink-faint, #94A3B8);font-size:10px;padding:0 2px;opacity:0}.chat-bubble:hover .chat-del,.chat-del:focus-visible{opacity:1}.chat-del:hover{color:#b91c1c}.chat-compose{display:flex;gap:8px;align-items:flex-end;padding:10px 12px;border-top:1px solid var(--line, #E2E8F0);background:var(--surface, #fff)}.chat-compose textarea{flex:1;resize:none;max-height:120px;min-height:40px;padding:9px 12px;border:1px solid var(--line, #E2E8F0);border-radius:var(--radius-m, 10px);font:inherit;font-size:14px;background:var(--surface, #fff);color:var(--ink, #0F172A);field-sizing:content}.chat-compose textarea:focus{outline:2px solid var(--accent-soft, #C7D2FE);border-color:var(--accent, #0F172A)}.chat-send{width:42px;height:40px;border:none;border-radius:var(--radius-m, 10px);background:var(--accent, #0F172A);color:#fff;font-size:16px}.chat-send:disabled{opacity:.4;cursor:default}.chat-avatar.ai{background:linear-gradient(135deg,#4f46e5,#0f766e);font-size:13px;letter-spacing:.02em}.ai-bubble{max-width:min(880px,96%)}.ai-md{font-size:14px;line-height:1.5;color:var(--ink, #0F172A);overflow-wrap:anywhere}.ai-md p{margin:0 0 8px}.ai-md ul,.ai-md ol{margin:0 0 8px;padding-left:20px}.ai-md li{margin-bottom:3px}.ai-md h2.ai-h,.ai-md h3.ai-h,.ai-md h4.ai-h,.ai-md h5.ai-h{margin:12px 0 6px;line-height:1.25;color:var(--ink, #0F172A)}.ai-md h2.ai-h{font-size:17px}.ai-md h3.ai-h{font-size:15.5px}.ai-md h4.ai-h,.ai-md h5.ai-h{font-size:14px}.ai-md code{background:var(--surface-3, #EEF2F6);padding:1px 5px;border-radius:5px;font-size:12.5px}.ai-md hr{border:none;border-top:1px solid var(--line, #E2E8F0);margin:10px 0}.ai-table-wrap{overflow-x:auto;margin:4px 0 10px;border:1px solid var(--line, #E2E8F0);border-radius:8px}.ai-table{border-collapse:collapse;width:100%;font-size:12.5px}.ai-table th{background:var(--surface-3, #F1F5F9);font-weight:700;text-align:left;white-space:nowrap}.ai-table th,.ai-table td{padding:6px 10px;border-bottom:1px solid var(--line, #E2E8F0)}.ai-table tr:last-child td{border-bottom:none}.ai-table td{font-variant-numeric:tabular-nums}.ai-actions{justify-content:flex-end;flex-wrap:wrap}.ai-act{border:none;background:transparent;font-size:11.5px;font-weight:600;color:var(--accent, #0F172A);padding:2px 6px;border-radius:6px;font-family:inherit;cursor:pointer}.ai-act:hover{background:var(--accent-soft, #EEF2FF)}.ai-welcome{margin:auto;max-width:620px;text-align:center;padding:20px 12px}.ai-welcome-title{font-size:18px;font-weight:700;color:var(--ink, #0F172A);margin-bottom:8px}.ai-welcome-text{font-size:13.5px;line-height:1.5;color:var(--ink-soft, #64748B);margin-bottom:16px}.ai-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.ai-chip{border:1px solid var(--line, #E2E8F0);background:var(--surface, #fff);color:var(--ink, #0F172A);border-radius:18px;padding:7px 13px;font-size:13px;font-family:inherit;cursor:pointer}.ai-chip:hover:not(:disabled){background:var(--accent-soft, #EEF2FF);border-color:var(--accent, #4F46E5)}.ai-chip:disabled{opacity:.5;cursor:default}.ai-typing{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-soft, #64748B);padding:4px 0 6px}.ai-dots{display:inline-flex;gap:4px}.ai-dots i{width:6px;height:6px;border-radius:50%;background:var(--ink-faint, #94A3B8);animation:ai-bounce 1.2s infinite ease-in-out}.ai-dots i:nth-child(2){animation-delay:.15s}.ai-dots i:nth-child(3){animation-delay:.3s}@keyframes ai-bounce{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.chat-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15000;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:16px}.chat-modal{width:100%;max-width:560px;max-height:92vh;overflow-y:auto;background:var(--surface, #fff);border:1px solid var(--line, #E2E8F0);border-radius:var(--radius-l, 14px);padding:20px 22px;box-shadow:0 24px 56px -16px #0f172a61}.chat-modal-title{font-size:16px;font-weight:700;margin-bottom:12px;color:var(--ink, #0F172A)}.chat-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.chat-tabs{display:flex;gap:6px;margin-top:14px}.chat-tabs button{flex:1;padding:8px 10px;border:1px solid var(--line, #E2E8F0);background:var(--surface, #fff);border-radius:var(--radius-s, 8px);font-size:13px;font-weight:600;color:var(--ink-soft, #64748B)}.chat-tabs button.active{background:var(--accent, #0F172A);border-color:var(--accent, #0F172A);color:#fff}.chat-pick-list{border:1px solid var(--line, #E2E8F0);border-radius:var(--radius-m, 10px);max-height:280px;overflow-y:auto}.chat-pick-row{display:flex;align-items:center;gap:10px;padding:7px 10px;cursor:pointer;border-bottom:1px solid var(--surface-3, #F1F5F9)}.chat-pick-row:last-child{border-bottom:none}.chat-pick-row:hover{background:var(--surface-2, #F8FAFC)}.chat-pick-name{font-size:13.5px;font-weight:600;color:var(--ink, #0F172A);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-pick-sub{font-size:11.5px;color:var(--ink-soft, #64748B);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-nocab{font-size:10.5px;font-weight:600;color:#92400e;background:#fef3c7;padding:2px 6px;border-radius:6px;white-space:nowrap}@media(max-width:720px){.chat-root{grid-template-columns:1fr;height:calc(100vh - 180px)}.chat-root .chat-main,.chat-root.show-chat .chat-side{display:none}.chat-root.show-chat .chat-main{display:flex}.chat-back{display:inline-block}.chat-del{opacity:1}}.chat-fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:9000;display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border:none;border-radius:999px;background:#2f5bff;color:#fff;font-family:"Manrope",var(--font-sans, sans-serif);font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 10px 26px -8px #2f5bff99}.chat-fab:hover{background:#2449d6}.chat-fab .chat-badge{background:#e5484d}.chat-dock{position:fixed;right:16px;bottom:16px;z-index:9000;width:min(760px,calc(100vw - 32px));height:min(560px,calc(100vh - 32px));display:flex;flex-direction:column;overflow:hidden;font-family:"Manrope",var(--font-sans, sans-serif);color:#1b2340;background:#fff;border:1px solid #E6E9F2;border-radius:16px;box-shadow:0 24px 56px -16px #1b234059}.chat-dock.full{top:0;left:0;right:0;bottom:0;width:auto;height:auto;border:none;border-radius:0}.chat-dock-head{flex:none;height:52px;display:flex;align-items:center;gap:4px;padding:0 10px 0 18px;background:#fff;color:#1b2340;border-bottom:1px solid #E6E9F2}.chat-dock-title{flex:1;min-width:0;font-size:15px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-dock-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:transparent;color:#5b6482;cursor:pointer}.chat-dock-btn:hover{background:#eef1f8;color:#2f5bff}.chat-dock-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.chat-dock .chat-root{flex:1 1 auto;height:auto;min-height:0;border:none;border-radius:0;background:#fff;font-family:inherit;grid-template-columns:224px 1fr}.chat-dock.full .chat-root{grid-template-columns:300px 1fr}.chat-dock .chat-root button,.chat-dock .chat-compose textarea{font-family:inherit}.chat-dock .chat-side{background:#f5f7fc;border-right:1px solid #E6E9F2;padding:14px 10px 10px}.chat-dock .chat-side-head{padding:0 6px 8px;font-size:16px;font-weight:800;color:#1b2340}.chat-dock .chat-add{border:none;background:#e4eaff;color:#2f5bff;font-weight:700;border-radius:8px;padding:6px 10px}.chat-dock .chat-add:hover{background:#d6e0ff}.chat-dock .chat-rooms{padding:0;display:flex;flex-direction:column;gap:6px}.chat-dock .chat-room{padding:9px;border-radius:12px}.chat-dock .chat-room:hover{background:#eaeffa}.chat-dock .chat-room.active{background:#fff;box-shadow:0 1px 3px #1b23401a}.chat-dock .chat-avatar{flex:0 0 36px;height:36px;background:#2f5bff;font-weight:800}.chat-dock .chat-avatar.general{background:#12a37f}.chat-dock .chat-avatar.ai{background:#2f5bff;font-size:12px}.chat-dock .chat-room-name{font-weight:700;font-size:14px;color:#1b2340}.chat-dock .chat-room-last,.chat-dock .chat-room-time{color:#5b6482}.chat-dock .chat-badge{background:#2f5bff}.chat-dock .chat-head{padding:12px 20px;background:#fff;border-bottom:1px solid #E6E9F2}.chat-dock .chat-head-name{font-weight:800;font-size:15px;color:#1b2340}.chat-dock .chat-head-sub{color:#5b6482}.chat-dock .chat-link{color:#2f5bff}.chat-dock .chat-link:hover{background:#e4eaff}.chat-dock .chat-link.danger{color:#b91c1c}.chat-dock .chat-msgs{padding:20px;gap:12px;background:#fff}.chat-dock .chat-empty{color:#5b6482}.chat-dock .chat-day span{background:#f0f3fa;color:#5b6482}.chat-dock .chat-bubble{max-width:68%;background:#f0f3fa;border:none;border-radius:16px 16px 16px 4px;padding:8px 12px 4px}.chat-dock .chat-bubble.ai-bubble{max-width:96%}.chat-dock .chat-msg.mine .chat-bubble{background:#2f5bff;border-radius:16px 16px 4px}.chat-dock .chat-sender{color:#2f5bff;font-weight:800}.chat-dock .chat-tag{background:#dde5ff;color:#2342b8}.chat-dock .chat-text{color:#1b2340}.chat-dock .chat-time{color:#5b6482}.chat-dock .chat-msg.mine .chat-text{color:#fff}.chat-dock .chat-msg.mine .chat-time,.chat-dock .chat-msg.mine .chat-del{color:#ffffffd9}.chat-dock .chat-msg.mine .chat-del:hover{color:#fff}.chat-dock .chat-compose{padding:14px;gap:10px;align-items:center;background:#fff;border-top:1px solid #E6E9F2}.chat-dock .chat-compose textarea{min-height:44px;box-sizing:border-box;padding:11px 18px;border:1px solid #D2D8E8;border-radius:22px;font-size:14px;color:#1b2340}.chat-dock .chat-compose textarea:focus{outline:none;border-color:#2f5bff;box-shadow:0 0 0 3px #e4eaff}.chat-dock .chat-send{flex:none;width:44px;height:44px;border-radius:50%;background:#2f5bff}.chat-dock .chat-send:hover:not(:disabled){background:#2449d6}@media(max-width:720px){.chat-dock{top:0;left:0;right:0;bottom:0;width:auto;height:auto;border:none;border-radius:0}.chat-dock .chat-root,.chat-dock.full .chat-root{grid-template-columns:1fr}}
