:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2f4f8;--surface:#fff;--surface-2:#eaeef4;--surface-3:#dee4ee;--border:#dfe4ee;--border-strong:#c6cedd;--text:#1b2231;--text-2:#495264;--text-3:#8892a4;--primary:#1b5fb8;--primary-hover:#144f9e;--primary-weak:#e6eef9;--primary-ring:#1b5fb838;--success:#0e857a;--success-weak:#dff3f0;--warning:#b0730c;--warning-weak:#f8eed8;--danger:#cc3b38;--danger-weak:#fbe7e6;--info:#1b5fb8;--info-weak:#e6eef9;--radius-sm:8px;--radius:12px;--radius-lg:16px;--shadow-xs:0 1px 2px #1b22310d;--shadow-sm:0 1px 3px #1b223112, 0 1px 2px #1b22310a;--shadow-md:0 10px 26px -10px #1b223129, 0 3px 8px -3px #1b223114;--shadow-lg:0 26px 58px -18px #1b22313d;--sidebar-w:248px;--ease:cubic-bezier(.2, .7, .3, 1)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#10131a;--surface:#191d26;--surface-2:#20252f;--surface-3:#2a303c;--border:#2e3542;--border-strong:#3c4454;--text:#e6eaf1;--text-2:#a8b1c1;--text-3:#7b8598;--primary:#5b93e6;--primary-hover:#6ea1ea;--primary-weak:#16273f;--primary-ring:#5b93e652;--success:#3fb3a4;--success-weak:#123029;--warning:#d09a4a;--warning-weak:#332a19;--danger:#e06b69;--danger-weak:#331f1f;--info:#5b93e6;--info-weak:#16273f;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 3px #00000073;--shadow-md:0 8px 28px -6px #0000008c;--shadow-lg:0 28px 64px -12px #000000a6}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Sarabun,Noto Sans Thai,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}h1,h2,h3,h4{letter-spacing:0;margin:0 0 .5em;font-weight:600;line-height:1.36}::selection{background:var(--primary-ring)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;transition:grid-template-columns .18s var(--ease);display:grid}.app-shell:has(.chat-page){grid-template-rows:100vh;height:100vh;overflow:hidden}.app-shell:has(.chat-page) .main{height:100vh;min-height:0;overflow:hidden}.app-shell.nav-collapsed{grid-template-columns:68px 1fr}.nav-collapsed .sidebar{align-items:center;padding:20px 12px}.nav-collapsed .sidebar .brand{justify-content:center;gap:0;padding:4px 0 16px}.nav-collapsed .sidebar>div{width:100%}.nav-collapsed .nav-link{justify-content:center;padding:10px 0}.nav-collapsed .nav-link.active:before{left:-12px}.nav-collapsed .nav-section,.nav-collapsed .nav-label{display:none}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:4px;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar .brand{letter-spacing:-.02em;align-items:center;gap:10px;padding:4px 10px 20px;font-size:17px;font-weight:700;display:flex}.brand .brand-logo{object-fit:contain;flex-shrink:0;width:auto;max-width:200px;height:38px}.nav-collapsed .brand .brand-logo{max-width:40px;height:auto}.brand .brand-mark{background:var(--primary);color:#fff;width:30px;height:30px;box-shadow:var(--shadow-xs);border-radius:9px;place-items:center;font-size:13px;font-weight:700;display:grid}.nav-section{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:14px 10px 6px;font-size:11.5px;font-weight:700}.nav-link{border-radius:var(--radius-sm);color:var(--text-2);transition:background .14s var(--ease), color .14s var(--ease);align-items:center;gap:11px;padding:9px 11px;font-size:14px;font-weight:500;display:flex;position:relative}.nav-link .nav-ico{opacity:.9;flex-shrink:0}.nav-link.active .nav-ico{opacity:1}svg{vertical-align:middle;display:inline-block}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:var(--primary-weak);color:var(--primary);font-weight:600}.nav-link.active:before{content:"";background:var(--primary);border-radius:0 3px 3px 0;width:3px;height:20px;position:absolute;top:50%;left:-16px;transform:translateY(-50%)}.sidebar-foot{color:var(--text-3);border-top:1px solid var(--border);margin-top:auto;padding:12px 11px 4px;font-size:12px}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(8px);backdrop-filter:saturate(1.4)blur(8px);border-bottom:1px solid var(--border);height:56px;color:var(--text-3);align-items:center;gap:10px;padding:0 32px;font-size:13px;display:flex;position:sticky;top:0}.topbar .crumb-current{color:var(--text);font-weight:600}.topbar-right{align-items:center;gap:6px;margin-left:auto;display:flex}.lang-toggle{letter-spacing:.03em;min-width:34px;font-size:12px;font-weight:700}.user-menu{position:relative}.user-btn{font:inherit;color:var(--text);cursor:pointer;transition:background .14s var(--ease), border-color .14s var(--ease);background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;padding:4px 8px 4px 4px;display:flex}.user-btn:hover{background:var(--surface-2);border-color:var(--border)}.avatar-sm{color:#fff;background:linear-gradient(140deg, var(--primary), #123f7d);border-radius:50%;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:grid}.avatar-sm.lg{width:38px;height:38px;font-size:14px}.user-meta{text-align:left;flex-direction:column;line-height:1.2;display:flex}.user-name{color:var(--text);font-size:13px;font-weight:600}.user-role{letter-spacing:.04em;color:var(--primary);font-size:10.5px;font-weight:700}.user-caret{color:var(--text-3)}.menu-backdrop{z-index:40;cursor:default;background:0 0;border:0;position:fixed;inset:0}.user-pop{z-index:41;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:264px;box-shadow:var(--shadow-md);padding:6px;position:absolute;top:calc(100% + 8px);right:0}.user-pop-head{align-items:center;gap:11px;padding:10px;display:flex}.user-pop-item{border-radius:var(--radius-sm);color:var(--text-2);align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;font-weight:500;display:flex}.user-pop-item:hover{background:var(--surface-2);color:var(--text)}@media (max-width:620px){.user-meta,.user-caret{display:none}.user-btn{padding:4px}}.content{width:100%;max-width:1160px;margin-inline:auto;padding:28px 32px 72px}.content:has(.chat-page){flex-direction:column;flex:1;max-width:none;min-height:0;padding:16px 20px 20px;display:flex;overflow:hidden}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-head h1{margin:0 0 4px;font-size:21px}.page-head p{color:var(--text-3);max-width:60ch;margin:0;font-size:13.5px}.page-head .head-actions{flex-shrink:0;gap:8px;display:flex}.topbar .nav-burger{display:none}.topbar .nav-collapse-btn{width:32px;height:32px;color:var(--text-3);place-items:center;padding:0;display:grid}.nav-collapse-btn:hover{color:var(--text)}.nav-scrim{border:0;padding:0;display:none}@media (max-width:900px){.app-shell,.app-shell.nav-collapsed{grid-template-columns:1fr}.topbar .nav-collapse-btn{display:none}.nav-collapsed .sidebar{align-items:stretch;padding:12px 14px}.nav-collapsed .nav-label{display:inline}.nav-collapsed .nav-section{display:block}.nav-collapsed .brand{justify-content:flex-start}.nav-collapsed .nav-link{justify-content:flex-start;padding:9px 11px}.nav-collapsed .sidebar,.sidebar{z-index:60;width:min(80vw,280px);transition:transform .24s var(--ease);padding:12px 14px;position:fixed;top:0;left:0;transform:translate(-100%)}.app-shell.nav-open .sidebar{box-shadow:var(--shadow-lg);transform:translate(0)}.app-shell.nav-open .nav-scrim{z-index:55;background:#10131a73;display:block;position:fixed;inset:0}.topbar .nav-burger{display:inline-flex}.topbar{padding:0 12px}.content{padding:20px 16px 56px}.page-head{flex-direction:column}.page-head .head-actions{flex-wrap:wrap}}.auth{grid-template-columns:1.12fr 1fr;min-height:100vh;display:grid;position:relative}.auth-lang{z-index:6;letter-spacing:.03em;color:#ffffffe6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff1a;border:1px solid #ffffff47;min-width:34px;font-size:12px;font-weight:700;position:fixed;top:18px;right:20px}.auth-lang:hover{color:#fff;background:#fff3}.auth-brand{color:#fff;background:radial-gradient(900px 520px at 12% -8%,#ffffff29,#0000 58%),radial-gradient(720px 720px at 108% 118%,#061a3480,#0000 60%),linear-gradient(158deg,#0b3a6b 0%,#1b5fb8 54%,#2c7fd4 100%);flex-direction:column;justify-content:center;gap:32px;padding:64px clamp(40px,5vw,72px);display:flex;position:relative;overflow:hidden}.auth-brand:before,.auth-brand:after{content:"";pointer-events:none;border:1px solid #ffffff21;border-radius:50%;position:absolute}.auth-brand:before{width:280px;height:280px;top:-110px;right:18%}.auth-brand:after{background:#ffffff0a;width:620px;height:620px;bottom:-330px;left:-170px}.auth-brand>*{z-index:1;position:relative}.auth-brand .brand{align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.auth-brand .brand .brand-mark{box-shadow:none;background:#fff3}.auth-brand h1{color:#fff;letter-spacing:-.01em;max-width:20ch;margin:0 0 8px;font-size:clamp(23px,2.6vw,29px);line-height:1.36}.brand-alt{color:#ffffffb3;margin:0 0 16px;font-size:13px}.brand-lede{color:#ffffffd1;max-width:42ch;margin:0;font-size:14px;line-height:1.65}.brand-flow{flex-direction:column;margin-top:32px;display:flex}.brand-flow .flow-step{align-items:flex-start;gap:14px;padding-bottom:18px;display:flex;position:relative}.brand-flow .flow-step:last-child{padding-bottom:0}.brand-flow .flow-step:not(:last-child):before{content:"";background:#ffffff29;width:2px;position:absolute;top:42px;bottom:0;left:19px}.flow-ico{background:#ffffff21;border:1px solid #fff3;border-radius:12px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.flow-label{color:#ffffffe6;padding-top:9px;font-size:13px;line-height:1.5}.brand-foot{color:#fff9;font-size:12px}.auth-panel{background:var(--bg);place-items:center;padding:40px 24px;display:grid;position:relative;overflow:hidden}.auth-panel:before{content:"";pointer-events:none;background:radial-gradient(520px 420px at 0% 30%, var(--primary-weak), transparent 70%), radial-gradient(circle at center, var(--border-strong) 1px, transparent 1.4px) 0 0 / 24px 24px;position:absolute;inset:0}.auth-panel:after{content:"";pointer-events:none;background:linear-gradient(90deg, var(--bg), transparent 22%), linear-gradient(0deg, var(--bg), transparent 30%, var(--bg));position:absolute;inset:0}.auth-card{z-index:1;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:18px;width:384px;max-width:100%;padding:36px 32px 24px;position:relative;box-shadow:0 1px 2px #081a340d,0 16px 36px -12px #081a3429,0 46px 90px -32px #081a3433}.auth-logo{letter-spacing:-.01em;align-items:center;gap:10px;margin-bottom:12px;font-size:18px;font-weight:700;display:inline-flex}.brand-logo.lg{object-fit:contain;width:auto;max-width:180px;height:34px}.brand-mark.lg{border-radius:11px;width:38px;height:38px;font-size:15px}.auth-card h2{margin:0 0 4px;font-size:21px}.auth-sub{color:var(--text-3);margin:0 0 24px;font-size:13px}.btn-ms{gap:10px;width:100%;padding:12px 16px;font-size:14px}.auth-secure{color:var(--text-3);justify-content:center;align-items:center;gap:7px;margin-top:15px;font-size:11.5px;font-weight:500;display:flex}.auth-divider{background:var(--border);height:1px;margin:20px 0 16px}.auth-hint{color:var(--text-3);margin:0;font-size:12px;line-height:1.6}.auth-legal{border-top:1px solid var(--border);color:var(--text-3);justify-content:space-between;margin-top:20px;padding-top:14px;font-size:11.5px;display:flex}@media (max-width:900px){.auth{grid-template-columns:1fr}.auth-brand{display:none}.auth-lang{color:var(--text-2);border-color:var(--border-strong);background:color-mix(in srgb, var(--surface) 70%, transparent)}}.toast-stack{z-index:90;flex-direction:column;gap:8px;max-width:min(92vw,380px);display:flex;position:fixed;bottom:18px;right:18px}.toast{border-radius:var(--radius-sm);color:#fff;box-shadow:var(--shadow-md);animation:toast-in .22s var(--ease);background:#232c3d;padding:11px 14px;font-size:13.5px;font-weight:500}.toast.success{background:var(--success)}.toast.warning{background:var(--warning)}.toast.danger{background:var(--danger)}.toast.info{background:var(--info)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:20px}.card-link{transition:transform .16s var(--ease), box-shadow .16s var(--ease), border-color .16s var(--ease)}.card-link:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}.card-pad-0{padding:0;overflow:hidden}.stack{flex-direction:column;gap:16px;display:flex}.row{align-items:center;gap:12px;display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.stat-grid{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:14px;margin-bottom:24px;display:flex}.stat-grid .stat{flex:240px;max-width:320px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);min-width:0;padding:16px 18px}.stat .stat-label{color:var(--text-3);font-size:12.5px;font-weight:500}.stat .stat-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:2px;font-size:26px;font-weight:700}.stat .stat-hint{margin-top:4px;font-size:12px}.btn{--btn-bg:var(--surface);--btn-fg:var(--text);--btn-bd:var(--border-strong);appearance:none;border:1px solid var(--btn-bd);background:var(--btn-bg);color:var(--btn-fg);font:inherit;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background .14s var(--ease), border-color .14s var(--ease), transform .1s var(--ease), box-shadow .14s var(--ease);justify-content:center;align-items:center;gap:7px;padding:9px 15px;font-size:13.5px;font-weight:600;line-height:1;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{--btn-bg:var(--primary);--btn-fg:#fff;--btn-bd:var(--primary);box-shadow:var(--shadow-xs)}.btn-primary:hover{--btn-bg:var(--primary-hover)}.btn-ghost{--btn-bg:transparent;--btn-bd:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-sm{border-radius:7px;padding:6px 11px;font-size:12.5px}.btn-danger{--btn-bg:var(--danger);--btn-fg:#fff;--btn-bd:var(--danger)}.btn-danger:hover{filter:brightness(.92)}.confirm-backdrop{z-index:50;animation:toast-in .14s var(--ease);background:#0f121966;border:none;padding:0;position:fixed;inset:0}.confirm-modal-wrap{z-index:51;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.confirm-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(340px,100vw - 40px);box-shadow:var(--shadow-md);pointer-events:auto;padding:20px}.confirm-modal h3{margin:0 0 8px;font-size:15px}.confirm-modal p{margin:0}.confirm-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.input,.select,.textarea{width:100%;font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);transition:border-color .14s var(--ease), box-shadow .14s var(--ease);padding:9px 12px;font-size:14px}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.input::placeholder{color:var(--text-3)}.textarea{resize:vertical;min-height:96px}.field{flex-direction:column;gap:6px;display:flex}.field>label{color:var(--text-2);font-size:12.5px;font-weight:600}input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary)}.badge{background:var(--surface-3);color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.badge:before{content:"";opacity:.9;background:currentColor;border-radius:50%;width:5px;height:5px}.badge.plain:before{display:none}.badge.success{background:var(--success-weak);color:var(--success)}.badge.warning{background:var(--warning-weak);color:var(--warning)}.badge.danger{background:var(--danger-weak);color:var(--danger)}.badge.info{background:var(--info-weak);color:var(--info)}.badge.primary{background:var(--primary-weak);color:var(--primary)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{background:var(--surface-2);text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);border-bottom:1px solid var(--border);padding:10px 14px;font-size:11.5px;font-weight:700;position:sticky;top:0}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:13px 14px}.table tbody tr{transition:background .12s var(--ease)}.table tbody tr:hover{background:var(--surface-2)}.table tbody tr:last-child td{border-bottom:none}.muted{color:var(--text-3)}.small{font-size:12.5px}.mono{font-variant-numeric:tabular-nums}.divider{background:var(--border);height:1px;margin:4px 0}.score-pill{font-variant-numeric:tabular-nums;background:var(--primary-weak);color:var(--primary);border-radius:7px;padding:3px 8px;font-size:12.5px;font-weight:700;display:inline-flex}.rank-badge{font-variant-numeric:tabular-nums;background:var(--surface-3);width:26px;height:26px;color:var(--text-2);border-radius:8px;place-items:center;font-size:12.5px;font-weight:700;display:grid}.rank-badge.top{background:var(--primary);color:#fff}.meter{background:var(--surface-3);border-radius:999px;height:6px;overflow:hidden}.meter>span{border-radius:inherit;background:var(--primary);height:100%;transition:width .5s var(--ease);display:block}.meter.success>span{background:var(--success)}.meter.warning>span{background:var(--warning)}.empty{text-align:center;color:var(--text-3);border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface);padding:48px 24px}.empty .empty-emoji{color:var(--text-3);opacity:.9;margin-bottom:10px;font-size:28px;display:block}.schedule-icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-3);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.schedule-icon-btn:hover{background:var(--danger-weak);border-color:var(--danger);color:var(--danger)}.schedule-icon-btn:disabled{opacity:.5;cursor:not-allowed}.schedule-chip{cursor:pointer;transition:border-color .15s var(--ease), background .15s var(--ease);border:1px solid #0000}.schedule-chip:hover{border-color:var(--primary);background:var(--primary-weak)}.schedule-chip-remove{width:18px;height:18px;color:var(--text-3);cursor:pointer;font:inherit;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.schedule-chip-remove:hover{background:var(--danger-weak);color:var(--danger)}.schedule-chip-edit{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);align-items:center;padding:6px}.rotate-open{transition:transform .15s var(--ease);transform:rotate(180deg)}.spin{animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.day-grid-popover{z-index:20;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);width:238px;box-shadow:var(--shadow-lg);padding:10px;position:absolute;top:calc(100% + 6px);left:0}.day-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.day-grid button{border-radius:var(--radius-sm);height:28px;color:var(--text-2);font-variant-numeric:tabular-nums;cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:12.5px;display:flex}.day-grid button:hover:not(:disabled){background:var(--primary-weak);color:var(--primary)}.day-grid button:disabled{color:var(--text-3);opacity:.4;cursor:not-allowed}.auto-sync-edit-body{animation:auto-sync-expand .2s var(--ease)}@keyframes auto-sync-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.auto-sync-pair{gap:8px;display:flex}.auto-sync-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}@media (max-width:480px){.auto-sync-pair{flex-direction:column}.auto-sync-footer .btn{flex:auto}}.month-picker-popover{z-index:20;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);width:240px;box-shadow:var(--shadow-lg);padding:12px;position:absolute;top:calc(100% + 6px);left:18px}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 37%, var(--surface-2) 63%);background-size:400% 100%;border-radius:8px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius);text-align:center;cursor:pointer;background:var(--surface-2);transition:border-color .16s var(--ease), background .16s var(--ease);padding:40px 24px}.dropzone:hover{border-color:var(--text-3)}.dropzone.drag{border-color:var(--primary);background:var(--primary-weak)}.dropzone .dz-icon{color:var(--primary);opacity:.85}.chat-page{min-height:0;transition:grid-template-columns .2s var(--ease);flex:1;grid-template-columns:260px 1fr;align-items:stretch;gap:16px;display:grid}.chat-page.list-hidden{grid-template-columns:1fr}.chat-page>.chat,.chat-page>.chat-sessions{height:100%;min-height:0}.head-toggle{width:32px;height:32px;color:var(--text-3);place-items:center;padding:0;display:grid}.head-toggle:hover{color:var(--text)}.chat-sessions{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:calc(100vh - 232px);min-height:440px;box-shadow:var(--shadow-xs);flex-direction:column;display:flex;overflow:hidden}.cs-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 12px 10px 14px;display:flex}.chat-sessions-list{flex:1;min-height:0;padding-bottom:8px;overflow-y:auto}.session-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding:12px 14px 4px;font-size:11.5px;font-weight:700}.session-sub{align-items:center;gap:6px;display:flex}.session-tag{letter-spacing:.03em;background:var(--primary-weak);color:var(--primary);border-radius:4px;padding:1px 5px;font-size:9.5px;font-weight:700}.session-row{cursor:pointer;border-left:2px solid #0000;align-items:center;gap:6px;padding:9px 10px 9px 14px;display:flex}.session-row:hover{background:var(--surface-2)}.session-row.active{background:var(--primary-weak);border-left-color:var(--primary)}.session-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.session-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.session-del{opacity:0;flex-shrink:0;padding:4px}.session-row:hover .session-del,.session-row.active .session-del{opacity:.7}.session-del:hover{opacity:1}@media (max-width:820px){.chat-page{grid-template-columns:1fr;min-height:calc(100vh - 130px)}.chat-page>.chat-sessions{height:auto;min-height:0;max-height:220px}.chat-page>.chat{min-height:60vh}}.chat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);height:calc(100vh - 232px);min-height:440px;box-shadow:var(--shadow-xs);flex-direction:column;display:flex;overflow:hidden}.chat-head{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 10px;display:flex}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:2px;display:inline-flex}.seg button{appearance:none;font:inherit;color:var(--text-3);cursor:pointer;transition:color .12s var(--ease);background:0 0;border:0;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600}.seg button:hover{color:var(--text-2)}.seg button.on{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-xs)}.src-pills{gap:6px;display:inline-flex}.src-pills label{color:var(--text-3);border:1px solid var(--border-strong);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;display:inline-flex}.src-pills label.on{color:var(--primary);border-color:var(--primary);background:var(--primary-weak)}.src-pills input{opacity:0;width:0;height:0;position:absolute}.chat-empty{text-align:center;max-width:480px;margin:auto;padding:24px}.chat-empty .ce-icon{background:var(--primary-weak);width:52px;height:52px;color:var(--primary);border-radius:14px;place-items:center;margin-bottom:12px;display:inline-grid}.chat-empty h3{margin:0 0 6px;font-size:15px}.chat-empty .ce-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.chat-empty .ce-actions .btn{text-align:left;justify-content:flex-start;width:100%}.chat-log{scroll-behavior:smooth;flex-direction:column;flex:1;gap:16px;min-height:0;padding:22px;display:flex;overflow-y:auto}.msg{gap:10px;max-width:80%;display:flex}.msg.user{flex-direction:row-reverse;align-self:flex-end}.msg .avatar{background:var(--surface-3);border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;font-size:13px;display:grid}.msg.assistant .avatar{background:var(--primary-weak);color:var(--primary)}.msg.user .avatar{color:var(--text-2);font-size:11.5px;font-weight:700}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:14px;padding:10px 14px;font-size:14px}.msg.user .bubble{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.msg.assistant .bubble{background:var(--surface-2);border:1px solid var(--border);border-bottom-left-radius:4px}.typing{gap:4px;padding:4px 2px;display:inline-flex}.typing i{background:var(--text-3);border-radius:50%;width:6px;height:6px;animation:1.2s infinite both blink}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.composer{border-top:1px solid var(--border);background:var(--surface);flex-direction:column;align-items:stretch;gap:8px;padding:12px 14px;display:flex}.composer-row{align-items:flex-end;gap:8px;display:flex}.composer-pending-file{border:1px solid var(--border-strong);background:var(--surface-2);border-radius:10px;align-items:center;gap:8px;width:fit-content;max-width:100%;padding:8px 10px;font-size:13px;display:flex}.composer-pending-file .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.composer-pending-file button{width:20px;height:20px;color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;place-items:center;padding:0;display:grid}.composer-pending-file button:hover{background:var(--surface-3);color:var(--text)}.composer-input{font:inherit;resize:none;border:1px solid var(--border-strong);background:var(--surface);max-height:148px;color:var(--text);transition:border-color .14s var(--ease), box-shadow .14s var(--ease);border-radius:10px;flex:1;padding:9px 12px;font-size:14px;line-height:1.5;overflow-y:auto}.composer-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.composer-input::placeholder{color:var(--text-3)}.icon-btn{flex-shrink:0;place-items:center;width:38px;height:38px;padding:0;display:grid}.attach-chip{background:#ffffff29;border-radius:7px;align-items:center;gap:6px;width:fit-content;margin-bottom:8px;padding:4px 9px;font-size:12.5px;font-weight:500;display:flex}.msg.assistant .attach-chip{background:var(--surface-3)}.suggestions{flex-wrap:wrap;gap:6px;padding:0 16px 12px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);cursor:pointer;transition:background .14s var(--ease), border-color .14s var(--ease);border-radius:999px;padding:5px 11px;font-size:12.5px;font-weight:500}.chip:hover{background:var(--surface-2);border-color:var(--text-3)}.chip.on{background:var(--primary);border-color:var(--primary);color:#fff}.chip.sm{padding:4px 9px;font-size:12px}.match-wrap{flex-direction:column;gap:12px;margin-top:10px;display:flex}.saved-note{background:var(--success-weak);color:var(--success);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:12.5px;font-weight:600;display:flex}.saved-note .btn{color:#fff}.brief{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}.brief-target{flex-direction:column;gap:1px;margin-bottom:8px;display:flex}.brief-positions{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.brief-positions li{font-size:13px;line-height:1.5}.bp-title{align-items:center;gap:8px;font-weight:600;display:flex}.bp-req{color:var(--text-2);flex-direction:column;gap:1px;margin-top:2px;font-size:12.5px;display:flex}.badge.sm{padding:2px 7px;font-size:11.5px}.match-group{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:12px}.mg-head{margin-bottom:8px;font-size:12.5px;font-weight:700}.msg.user .brief,.msg.user .brief-target .muted,.msg.user .bp-req{color:#ffffffc7;border-color:#ffffff40}.result-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;gap:7px;padding:12px 14px;display:flex}details{border-radius:var(--radius)}details>summary{cursor:pointer;font-weight:600;list-style:none}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"▸ ";color:var(--text-3)}details[open]>summary:before{content:"▾ "}.section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);overflow:hidden}.section+.section{margin-top:16px}.section-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:13px 18px;display:flex}.section-head h2{margin:0;font-size:14px}.section-head p{color:var(--text-3);margin:3px 0 0;font-size:12.5px}.section-head .section-actions{flex-shrink:0;gap:8px;display:flex}.section-body{padding:18px}.section-body.flush{padding:0}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.toolbar .spacer{margin-left:auto}.toolbar .count{color:var(--text-3);font-size:12.5px}.stepper{align-items:center;margin:0;padding:14px 4px 2px;list-style:none;display:flex}.step{color:var(--text-3);align-items:center;gap:9px;font-size:13px;display:flex}.step+.step:before{content:"";background:var(--border-strong);border-radius:2px;width:clamp(16px,6vw,64px);height:2px;margin:0 12px}.step .dot{background:var(--surface-3);width:24px;height:24px;color:var(--text-3);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid}.step.done .dot{background:var(--success);color:#fff}.step.current .dot{background:var(--primary);color:#fff;box-shadow:0 0 0 4px var(--primary-ring)}.step.current{color:var(--text);font-weight:600}.step a:hover{color:var(--primary)}@media (max-width:720px){.step-label{display:none}.step.current .step-label{display:inline}.step+.step:before{width:14px;margin:0 8px}}.tor-id-head{margin-bottom:20px}.tor-id-head .id-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.tor-id-head h1{margin:4px 0 2px;font-size:19px}.back-link{color:var(--text-3);font-size:12.5px}.back-link:hover{color:var(--primary)}.hero{border-radius:var(--radius-lg);color:#fff;background:linear-gradient(120deg, var(--primary), #123f7d);box-shadow:var(--shadow-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding:22px 24px;display:flex}.hero h2{color:#fff;margin:0 0 4px;font-size:18px}.hero p{color:#ffffffd1;max-width:52ch;margin:0;font-size:13.5px}.hero .btn{color:var(--primary);background:#fff;border-color:#fff}.hero .btn:hover{background:#ffffffe6}.dl{grid-template-columns:max-content 1fr;gap:7px 20px;margin:0;font-size:13.5px;display:grid}.dl dt{color:var(--text-3)}.dl dd{margin:0}.rows{flex-direction:column;display:flex}.rows>*{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;display:flex}.rows>:last-child{border-bottom:none}.rows>a:hover{background:var(--surface-2)}.next-step{border:1px solid var(--primary);background:var(--primary-weak);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;padding:14px 18px;display:flex}.next-step strong{color:var(--text)}
