:root{--color-bg: #f4f4ef;--color-surface: #ffffff;--color-surface-muted: #e9ece4;--color-border: #d3d8d0;--color-text: #18201c;--color-text-muted: #626a64;--color-primary: #18201c;--color-primary-hover: #36483b;--color-on-primary: #ffffff;--color-accent: #c8d5b3;--color-success: #3f6b45;--color-warning: #8a6d1e;--color-warning-bg: #f3ecd2;--color-error: #a84528;--color-error-bg: #f6e4dc;--color-focus: #857c3c;--color-overlay: rgba(20, 27, 23, .48);--color-dark: #141b17;--color-dark-surface: #1c241f;--color-dark-surface-muted: #232c26;--color-dark-line: #3b443e;--color-dark-text: #f4f4ef;--color-dark-text-muted: #b5bcb6;--zalo-rail: #0068ff;--zalo-rail-active: #0051c7;--zalo-rail-icon: #ffffff;--zalo-chat-bg: #ebecf0;--zalo-bubble-me: #e5efff;--zalo-bubble-oa: #ffffff;--zalo-link: #0068ff;--zalo-list-active: #e5efff;--zalo-text: #081c36;--zalo-text-muted: #7589a3;--zalo-line: #dfe2e7;--zalo-verified: #f5a524;--font-display: "Be Vietnam Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-body: "Be Vietnam Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "IBM Plex Mono", SFMono-Regular, Consolas, monospace;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-2xl: 24px;--text-3xl: 32px;--text-display: 40px;--leading-tight: 1.1;--leading-body: 1.55;--tracking-heading: -.02em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-none: 0;--radius-bubble: 8px;--radius-full: 9999px;--border-width: 1px;--focus-width: 2px;--button-height: 49px;--touch-min: 44px;--icon-sm: 16px;--icon-md: 20px;--icon-lg: 24px;--avatar-sm: 32px;--avatar-md: 44px;--dot-size: 8px;--bar-height: 8px;--mockbar-height: 48px;--web-rail-width: 64px;--web-tabs-height: 44px;--zalo-rail-width: 64px;--zalo-list-width: 336px;--zalo-header-height: 68px;--drawer-width: 480px;--content-max: 1360px;--chat-max: 800px;--composer-min: 112px;--size-3: 3px;--size-6: 6px;--size-7: 7px;--size-13: 13px;--size-20: 20px;--size-36: 36px;--size-24: 24px;--size-28: 28px;--size-160: 160px;--size-1440: 1440px;--size-56: 56px;--size-60: 60px;--size-72: 72px;--size-88: 88px;--size-96: 96px;--size-120: 120px;--size-140: 140px;--size-180: 180px;--size-200: 200px;--size-220: 220px;--size-240: 240px;--size-260: 260px;--size-280: 280px;--size-320: 320px;--size-400: 400px;--size-420: 420px;--size-960: 960px;--size-560: 560px;--size-640: 640px;--ease-out: cubic-bezier(.22, .61, .36, 1);--dur-fast: .15s;--dur-base: .22s;--typing-delay: .9s}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;min-height:100dvh}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-body);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:500;letter-spacing:var(--tracking-heading);line-height:var(--leading-tight);margin:0;text-wrap:balance}p{margin:0;text-wrap:pretty}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-width)}svg{width:var(--icon-md);height:var(--icon-md);flex-shrink:0}.sr-only{position:absolute;width:var(--border-width);height:var(--border-width);padding:0;margin:calc(var(--border-width) * -1);overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mono{font-family:var(--font-mono);font-size:var(--text-sm)}.muted{color:var(--color-text-muted);font-size:var(--text-sm)}.num{text-align:right;font-variant-numeric:tabular-nums}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}.inline-icon{width:var(--icon-sm);height:var(--icon-sm);vertical-align:-.15em;margin-right:var(--space-1)}.app-shell{display:flex;flex-direction:column;height:100dvh}.app-main{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.mockbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);min-height:var(--mockbar-height);padding:var(--space-1) var(--space-4);background:var(--color-surface-muted);border-bottom:var(--border-width) dashed var(--color-text-muted);font-size:var(--text-sm)}.mockbar-title{font-weight:600}.mockbar-sub{font-weight:400;color:var(--color-text-muted);margin-left:var(--space-2)}.mockbar-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.mockbar-field{display:flex;align-items:center;gap:var(--space-2)}.mockbar-field span{color:var(--color-text-muted)}.mockbar-field select{min-height:var(--touch-min);max-width:100%;border:var(--border-width) solid var(--color-border);background:var(--color-surface);padding:0 var(--space-2);border-radius:var(--radius-none);font-size:var(--text-sm)}.mockbar-check{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min)}.segmented{display:inline-flex;border:var(--border-width) solid var(--color-text)}.segmented button{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:0 var(--space-3);background:var(--color-surface);border:0;font-size:var(--text-sm);font-weight:500;transition:background var(--dur-fast) var(--ease-out)}.segmented button[aria-pressed=true]{background:var(--color-text);color:var(--color-on-primary)}.segmented svg{width:var(--icon-sm);height:var(--icon-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--button-height);padding:var(--size-13) var(--size-20);border:var(--border-width) solid var(--color-primary);border-radius:var(--radius-none);font-size:var(--text-sm);font-weight:600;line-height:1.2;text-align:left;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.btn-sm{min-height:var(--touch-min);padding:var(--space-2) var(--space-3)}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-light{background:var(--color-bg);color:var(--color-text)}.btn-outline{background:transparent;color:var(--color-text)}.btn-outline:hover:not(:disabled),.btn-light:hover:not(:disabled){background:var(--color-surface-muted)}.btn-ghost{background:transparent;border-color:transparent;color:var(--color-text)}.btn-ghost:hover:not(:disabled){background:var(--color-surface-muted)}.btn:active:not(:disabled){transform:translateY(var(--border-width))}.btn:disabled{opacity:.45}.btn[aria-busy=true]{opacity:.8}.btn-icon{width:var(--icon-sm);height:var(--icon-sm)}.btn-progress{width:var(--icon-sm);height:var(--icon-sm);border:var(--focus-width) solid currentColor;border-right-color:transparent;border-radius:var(--radius-full);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{display:inline-flex;align-items:center;justify-content:center;min-width:var(--touch-min);min-height:var(--touch-min);border:0;background:transparent;border-radius:var(--radius-none);color:var(--color-text-muted);transition:background var(--dur-fast) var(--ease-out)}.icon-btn:hover{background:var(--color-surface-muted);color:var(--color-text)}.icon-btn[aria-pressed=true]{color:var(--color-text);background:var(--color-accent)}.link-btn{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--touch-min);padding:0;border:0;background:none;color:var(--color-text);font-size:var(--text-sm);font-weight:600;text-decoration:underline;text-underline-offset:var(--size-3)}.link-btn svg{width:var(--icon-sm);height:var(--icon-sm)}.link-btn:hover{color:var(--color-primary-hover)}.link-danger{color:var(--color-error)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--focus-width) var(--space-2);border:var(--border-width) solid var(--color-border);background:var(--color-surface);font-size:var(--text-xs);font-weight:500;line-height:1.5;white-space:nowrap}.badge-mono{font-family:var(--font-mono)}.badge-accent{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text)}.badge-warning{background:var(--color-warning-bg);border-color:var(--color-warning);color:var(--color-warning)}.badge-error{background:var(--color-error-bg);border-color:var(--color-error);color:var(--color-error)}.status{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.status-dot{width:var(--dot-size);height:var(--dot-size);border-radius:var(--radius-full);background:var(--color-text-muted);flex-shrink:0}.status-connected .status-dot{background:var(--color-success)}.status-failing .status-dot{background:var(--color-error)}.status-failing{color:var(--color-error);font-weight:500}.status-syncing .status-dot{background:var(--color-warning);animation:pulse .9s var(--ease-out) infinite alternate}.status-idle .status-dot{background:transparent;border:var(--border-width) solid var(--color-text-muted)}@keyframes pulse{to{opacity:.3}}.tier{display:inline-block;margin-left:var(--space-2);padding:0 var(--space-2);border:var(--border-width) dashed var(--color-text-muted);color:var(--color-text-muted);font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;letter-spacing:0;line-height:1.6;vertical-align:middle;white-space:nowrap}.tier-optional{border-color:var(--color-warning);color:var(--color-warning)}.scorebar{display:inline-flex;align-items:center;gap:var(--space-2);width:100%;min-width:var(--size-96)}.scorebar-track{position:relative;flex:1;height:var(--bar-height);background:var(--color-surface-muted);overflow:visible}.scorebar-fill{position:absolute;inset:0 auto 0 0;width:var(--fill);background:var(--color-accent);transition:width var(--dur-base) var(--ease-out)}.scorebar-below .scorebar-fill{background:var(--color-error)}.scorebar-pending .scorebar-fill{background:repeating-linear-gradient(135deg,var(--color-warning) 0 var(--space-1),var(--color-warning-bg) var(--space-1) var(--space-2))}.scorebar-target{position:absolute;top:calc(var(--size-3) * -1);bottom:calc(var(--size-3) * -1);left:var(--target);width:var(--focus-width);background:var(--color-text)}.scorebar-nodata .scorebar-track{background:repeating-linear-gradient(135deg,var(--color-border) 0 var(--size-3),transparent var(--size-3) var(--size-7))}.scorebar-text{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.card{background:var(--color-surface);border:var(--border-width) solid var(--color-border);padding:var(--space-4) var(--space-6)}.card-title{font-size:var(--text-lg)}.card-foot{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);margin-top:var(--space-4);padding-top:var(--space-3);border-top:var(--border-width) solid var(--color-border)}.confirm-card{display:flex;align-items:flex-start;gap:var(--space-3);margin:var(--space-4) 0;padding:var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-text);border-left-width:var(--space-1);animation:rise var(--dur-base) var(--ease-out)}.confirm-icon{color:var(--color-success);margin-top:var(--focus-width)}.confirm-body{flex:1}.confirm-text{font-weight:500}.confirm-close{margin:calc(var(--space-3) * -1) calc(var(--space-3) * -1) 0 0}@keyframes rise{0%{opacity:0;transform:translateY(var(--space-1))}}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-12) var(--space-4);text-align:center;background:var(--color-surface);border:var(--border-width) dashed var(--color-border)}.empty-icon{width:var(--space-12);height:var(--space-12);color:var(--color-text-muted);stroke-width:1.25}.empty-title{font-size:var(--text-lg)}.empty-text{max-width:52ch;color:var(--color-text-muted)}.skeleton{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) 0}.skeleton-row{display:grid;grid-template-columns:2fr repeat(auto-fit,minmax(var(--size-60),1fr));grid-auto-flow:column;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:var(--border-width) solid var(--color-border)}.skeleton-cell{display:block;height:var(--space-3);background:linear-gradient(90deg,var(--color-surface-muted),var(--color-border),var(--color-surface-muted));background-size:200% 100%;animation:shimmer 1.2s var(--ease-out) infinite}.skeleton-w1{width:70%}.skeleton-w2{width:45%}@keyframes shimmer{to{background-position:-200% 0}}.table-wrap{width:100%;overflow-x:auto;border:var(--border-width) solid var(--color-border);background:var(--color-surface)}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th,.table td{padding:var(--space-3) var(--space-4);text-align:left;vertical-align:top;border-bottom:var(--border-width) solid var(--color-border)}.table thead th{position:sticky;top:0;background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:500;white-space:nowrap}.table tbody th{font-weight:500}.table tbody tr:nth-child(2n){background:var(--color-surface-muted)}.table .num{text-align:right}.table-compact th,.table-compact td{padding:var(--space-2) var(--space-3)}.table-click tbody tr{cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.table-click tbody tr:hover,.table-click tbody tr[aria-selected=true]{background:var(--color-accent)}.row-alert,.table tbody tr.row-alert{background:var(--color-error-bg)}.cell-sub{display:block;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:400}.sort-btn{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--touch-min);padding:0;border:0;background:none;color:inherit;font-size:inherit;font-weight:inherit}.sort-btn svg{width:var(--icon-sm);height:var(--icon-sm)}.form{display:flex;flex-direction:column;gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-sm);font-weight:500}.field input,.field select,.field textarea,.table select{min-height:var(--touch-min);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-none);background:var(--color-surface);font-size:var(--text-base);font-weight:400}.table select{font-size:var(--text-sm)}.field [aria-invalid=true]{border-color:var(--color-error)}.field-error{color:var(--color-error);font-weight:500}.field-help{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:400}.field-row{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-4)}.field-inline{max-width:var(--size-420);margin:var(--space-4) 0}.file-pill{padding:var(--space-3);border:var(--border-width) dashed var(--color-border);background:var(--color-bg);font-size:var(--text-sm)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-overlay)}.overlay-right{justify-content:flex-end;padding:0}.modal{width:min(var(--size-560),100%);max-height:calc(100dvh - var(--space-8));overflow:auto;background:var(--color-surface);border:var(--border-width) solid var(--color-text);animation:rise var(--dur-base) var(--ease-out)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-6);border-bottom:var(--border-width) solid var(--color-border)}.modal-head h2{font-size:var(--text-lg)}.modal-body{padding:var(--space-6)}.modal-foot{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:var(--border-width) solid var(--color-border)}.drawer{width:min(var(--drawer-width),100%);height:100dvh;overflow:auto;background:var(--color-surface);border-left:var(--border-width) solid var(--color-text);animation:slide var(--dur-base) var(--ease-out)}.drawer-body{padding:var(--space-6)}@keyframes slide{0%{transform:translate(var(--space-6));opacity:0}}.kv{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-2) var(--space-4);margin:var(--space-3) 0 0;font-size:var(--text-sm)}.kv dt{color:var(--color-text-muted)}.kv dd{margin:0}.kv-stack{grid-template-columns:1fr;gap:var(--space-1)}.kv-stack dd{margin-bottom:var(--space-3)}.tabs{display:flex;gap:var(--space-4);margin:var(--space-4) 0;border-bottom:var(--border-width) solid var(--color-border);overflow-x:auto}.tab{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:0 var(--space-1);border:0;border-bottom:var(--size-3) solid transparent;background:none;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;white-space:nowrap}.tab[aria-selected=true]{color:var(--color-text);border-bottom-color:var(--color-text)}.tab:hover{color:var(--color-text)}.tab-count{padding:0 var(--space-1);background:var(--color-surface-muted);font-size:var(--text-xs)}.chip-group{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.chip-label{font-size:var(--text-sm);font-weight:500;margin-right:var(--space-2)}.chip{min-height:var(--touch-min);padding:0 var(--space-3);border:var(--border-width) solid var(--color-border);background:var(--color-surface);font-size:var(--text-sm);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.chip:hover{border-color:var(--color-text)}.chip[aria-pressed=true]{background:var(--color-accent);border-color:var(--color-text)}.toggle{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch-min);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);background:var(--color-surface);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.toggle.is-on{background:var(--color-accent);border-color:var(--color-text)}.toggle input{position:absolute;opacity:0;width:var(--border-width);height:var(--border-width)}.toggle-box{position:relative;width:var(--size-36);height:var(--size-20);border:var(--border-width) solid var(--color-text);background:var(--color-surface);flex-shrink:0}.toggle-box:after{content:"";position:absolute;top:var(--size-3);left:var(--size-3);width:var(--space-3);height:var(--space-3);background:var(--color-text-muted);transition:transform var(--dur-fast) var(--ease-out)}.toggle.is-on .toggle-box:after{transform:translate(var(--space-4));background:var(--color-text)}.toggle input:focus-visible+.toggle-box{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-width)}.toggle-label{font-size:var(--text-sm);font-weight:500}.toggle-note{display:block;color:var(--color-warning);font-size:var(--text-xs)}@media(max-width:767px){.app-shell{height:auto;min-height:100dvh}.app-main{overflow:visible}.mockbar-sub{display:block;margin:0}.mockbar-controls,.mockbar-field,.mockbar-field select{width:100%}.field-row{grid-template-columns:1fr}.modal-foot{flex-direction:column-reverse}.modal-foot .btn{width:100%}}.zalo{flex:1;display:grid;grid-template-columns:var(--zalo-rail-width) var(--zalo-list-width) 1fr;min-height:0;color:var(--zalo-text);background:var(--color-surface);font-size:var(--text-sm)}.zalo-rail{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4) 0;background:var(--zalo-rail);color:var(--zalo-rail-icon)}.zalo-avatar{display:grid;place-items:center;width:var(--avatar-md);height:var(--avatar-md);margin-bottom:var(--space-4);border:var(--focus-width) solid var(--zalo-rail-icon);border-radius:var(--radius-full);background:var(--zalo-rail-active);font-weight:600}.zalo-rail-item{display:grid;place-items:center;width:var(--zalo-rail-width);height:var(--zalo-rail-width)}.zalo-rail-item svg{width:var(--icon-lg);height:var(--icon-lg)}.zalo-rail-item.is-active{background:var(--zalo-rail-active)}.zalo-rail-spacer{flex:1}.zalo-list{display:flex;flex-direction:column;border-right:var(--border-width) solid var(--zalo-line);min-height:0;overflow-y:auto}.zalo-list-top{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-4) var(--space-2)}.zalo-search{flex:1;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--zalo-chat-bg);color:var(--zalo-text-muted);border-radius:var(--radius-bubble)}.zalo-search svg,.zalo-list-icon{width:var(--icon-sm);height:var(--icon-sm);color:var(--zalo-text)}.zalo-list-tabs{display:flex;gap:var(--space-4);padding:0 var(--space-4);border-bottom:var(--border-width) solid var(--zalo-line);color:var(--zalo-text-muted)}.zalo-list-tabs span{padding:var(--space-2) 0}.zalo-list-tabs .is-active{color:var(--zalo-link);font-weight:600;border-bottom:var(--focus-width) solid var(--zalo-link)}.zalo-convos{list-style:none;margin:0;padding:0}.zalo-convo{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.zalo-convo.is-active{background:var(--zalo-list-active)}.zalo-convo-avatar{display:grid;place-items:center;flex-shrink:0;width:var(--avatar-md);height:var(--avatar-md);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700}.zalo-oa-logo{background:var(--color-text);color:var(--color-accent)}.zalo-group{background:var(--zalo-chat-bg);color:var(--zalo-text)}.zalo-docs{background:var(--zalo-link);color:var(--zalo-rail-icon)}.zalo-convo-body{flex:1;min-width:0;display:flex;flex-direction:column}.zalo-convo-name{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-base);font-weight:500}.zalo-convo-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--zalo-text-muted)}.zalo-convo-time{align-self:flex-start;color:var(--zalo-text-muted);font-size:var(--text-xs)}.zalo-pin{width:var(--icon-sm);height:var(--icon-sm);color:var(--zalo-text-muted)}.zalo-verified{width:var(--icon-sm);height:var(--icon-sm);color:var(--zalo-verified)}.zalo-chat{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--zalo-chat-bg)}.zalo-chat-head{display:flex;align-items:center;gap:var(--space-3);min-height:var(--zalo-header-height);padding:var(--space-2) var(--space-4);background:var(--color-surface);border-bottom:var(--border-width) solid var(--zalo-line)}.zalo-chat-name{display:flex;align-items:center;gap:var(--space-1);font-family:var(--font-body);font-size:var(--text-lg);font-weight:600;letter-spacing:0}.zalo-chat-status{color:var(--zalo-text-muted);font-size:var(--text-sm)}.zalo-head-icons{display:flex;gap:var(--space-4);margin-left:auto;color:var(--zalo-text)}.zalo-back{display:none}.scenario-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-surface-muted);border-bottom:var(--border-width) dashed var(--color-text-muted);color:var(--color-text)}.scenario-label{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:500}.scenario-bar button{min-height:var(--touch-min);padding:0 var(--space-3);border:var(--border-width) solid var(--color-border);background:var(--color-surface);font-size:var(--text-xs);font-weight:500}.scenario-bar button[aria-pressed=true]{background:var(--color-text);border-color:var(--color-text);color:var(--color-on-primary)}.zalo-pane{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-6)}.z-system{align-self:center;max-width:80%;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-surface);color:var(--zalo-text-muted);font-size:var(--text-xs);text-align:center}.z-row{display:flex;align-items:flex-end;gap:var(--space-2);max-width:min(var(--size-640),92%)}.z-row-me{align-self:flex-end;justify-content:flex-end}.z-avatar{width:var(--avatar-sm);height:var(--avatar-sm)}.z-bubble{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-bubble);border:var(--border-width) solid var(--zalo-line);font-size:var(--text-base);line-height:1.5;animation:rise var(--dur-base) var(--ease-out)}.z-bubble-oa{background:var(--zalo-bubble-oa)}.z-bubble-me{background:var(--zalo-bubble-me);border-color:var(--zalo-bubble-me)}.z-time{color:var(--zalo-text-muted);font-size:var(--text-xs)}.z-source{color:var(--zalo-text-muted);font-size:var(--text-sm)}.z-flag{color:var(--color-error);font-size:var(--text-sm)}.z-codes{list-style:none;margin:0;padding:0;font-size:var(--text-sm)}.z-codes li{display:grid;grid-template-columns:var(--size-56) 1fr;gap:var(--space-2)}.z-codes strong{font-family:var(--font-mono);font-weight:500}.z-codes em{color:var(--zalo-text-muted)}.z-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.z-chips-stack{flex-direction:column;align-items:stretch}.z-chip,.z-quick{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--zalo-link);border-radius:var(--radius-bubble);background:var(--color-surface);color:var(--zalo-link);font-size:var(--text-sm);font-weight:500;text-align:left;transition:background var(--dur-fast) var(--ease-out)}.z-chip:hover,.z-quick:hover{background:var(--zalo-bubble-me)}.z-quick svg{width:var(--icon-sm);height:var(--icon-sm)}.z-quick-primary{align-self:flex-start;background:var(--zalo-link);color:var(--zalo-rail-icon)}.z-quick-primary:hover{background:var(--zalo-rail-active)}.z-link-card{display:flex;align-items:center;gap:var(--space-3);min-height:var(--touch-min);padding:var(--space-3);border:var(--border-width) solid var(--zalo-line);border-radius:var(--radius-bubble);background:var(--zalo-chat-bg);text-align:left}.z-link-card:hover{border-color:var(--zalo-link)}.z-link-icon{color:var(--zalo-link)}.z-link-title{display:block;color:var(--zalo-link);font-weight:600}.z-link-text{display:block;color:var(--zalo-text-muted);font-size:var(--text-sm)}.z-reactions{display:flex;align-items:center;gap:var(--space-1)}.z-react{display:grid;place-items:center;width:var(--touch-min);height:var(--touch-min);border:var(--border-width) solid var(--zalo-line);border-radius:var(--radius-full);background:var(--color-surface);color:var(--zalo-text-muted)}.z-react svg{width:var(--icon-sm);height:var(--icon-sm)}.z-react[aria-pressed=true]{border-color:var(--zalo-link);background:var(--zalo-bubble-me);color:var(--zalo-link)}.z-react-note{margin-left:var(--space-2);color:var(--zalo-text-muted);font-size:var(--text-xs)}.z-photo,.z-voice{display:flex;align-items:center;gap:var(--space-2)}.z-photo{padding:var(--space-6) var(--space-8);background:var(--color-surface-muted);color:var(--color-text-muted)}.z-voice em{color:var(--zalo-text-muted);font-size:var(--text-sm)}.z-alert-icon{width:var(--icon-sm);height:var(--icon-sm);vertical-align:-.15em;color:var(--color-error)}.z-typing{flex-direction:row;gap:var(--space-1)}.z-typing span{width:var(--dot-size);height:var(--dot-size);border-radius:var(--radius-full);background:var(--zalo-text-muted);animation:pulse .6s var(--ease-out) infinite alternate}.z-typing span:nth-child(2){animation-delay:.2s}.z-typing span:nth-child(3){animation-delay:.4s}.zalo-composer{background:var(--color-surface);border-top:var(--border-width) solid var(--zalo-line)}.zalo-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-bottom:var(--border-width) solid var(--zalo-line)}.zalo-tool{display:grid;place-items:center;width:var(--touch-min);height:var(--touch-min);border:0;background:none;color:var(--zalo-text)}.zalo-tool.is-live:hover{background:var(--zalo-chat-bg);color:var(--zalo-link)}.zalo-input-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4)}.zalo-input{flex:1;min-height:var(--touch-min);border:0;background:transparent;font-size:var(--text-base)}.zalo-input:focus-visible{outline-offset:0}.zalo-input::placeholder{color:var(--zalo-text-muted)}.zalo-send,.zalo-like{display:grid;place-items:center;width:var(--touch-min);height:var(--touch-min);border:0;background:none;color:var(--zalo-link)}.zalo-like{color:var(--zalo-verified)}@media(max-width:1023px){.zalo{grid-template-columns:var(--zalo-rail-width) 1fr}.zalo-list{display:none}}@media(max-width:767px){.zalo{grid-template-columns:1fr;height:auto;min-height:calc(100dvh - var(--mockbar-height))}.zalo-rail{display:none}.zalo-back{display:block;color:var(--zalo-link)}.zalo-head-icons{display:none}.zalo-pane{padding:var(--space-3);min-height:60dvh}.z-row{max-width:100%}}.web{flex:1;display:grid;grid-template-columns:var(--web-rail-width) 1fr;min-height:0;background:var(--color-dark)}.web-rail{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3) 0;background:var(--color-dark);color:var(--color-dark-text-muted);border-right:var(--border-width) solid var(--color-dark-line)}.web-logo{display:grid;place-items:center;width:var(--touch-min);height:var(--touch-min);margin-bottom:var(--space-3);background:var(--color-accent);color:var(--color-dark);font-family:var(--font-display);font-size:var(--text-lg);font-weight:700}.web-rail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.web-rail-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--focus-width);width:var(--web-rail-width);min-height:var(--space-16);padding:var(--space-1);border:0;background:none;color:var(--color-dark-text-muted);font-size:var(--text-xs);line-height:1.2;text-align:center;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.web-rail-item:hover{color:var(--color-dark-text);background:var(--color-dark-surface)}.web-rail-item[aria-current=page]{color:var(--color-dark-text);background:var(--color-dark-surface-muted);box-shadow:inset var(--size-3) 0 0 var(--color-accent)}.web-rail-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.web-user{display:grid;place-items:center;width:var(--avatar-sm);height:var(--avatar-sm);border-radius:var(--radius-full);background:var(--color-dark-surface-muted);color:var(--color-dark-text);font-size:var(--text-sm);font-weight:600}.notif{position:relative}.web-rail-bell{min-height:var(--touch-min)}.notif-count{position:absolute;top:var(--space-1);right:var(--space-3);min-width:var(--icon-sm);padding:0 var(--space-1);background:var(--color-error);color:var(--color-on-primary);font-size:var(--text-xs);line-height:1.4}.notif-panel{position:absolute;left:calc(100% + var(--space-2));bottom:0;z-index:40;width:var(--size-320);padding:var(--space-4);background:var(--color-surface);color:var(--color-text);border:var(--border-width) solid var(--color-text);text-align:left}.notif-title{font-size:var(--text-base);margin-bottom:var(--space-2)}.notif-panel ul{list-style:none;margin:0;padding:0}.notif-panel li{padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border);font-size:var(--text-sm)}.notif-empty{font-size:var(--text-sm);color:var(--color-text-muted)}.web-main{display:flex;flex-direction:column;min-width:0;min-height:0}.web-tabs{display:flex;align-items:center;gap:var(--space-1);min-height:var(--web-tabs-height);padding:0 var(--space-3);background:var(--color-dark);overflow-x:auto}.web-tab{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:0 var(--space-3);border:var(--border-width) solid transparent;background:none;color:var(--color-dark-text-muted);font-size:var(--text-sm);white-space:nowrap}.web-tab svg{width:var(--icon-sm);height:var(--icon-sm)}.web-tab:hover,.web-tab[aria-selected=true]{color:var(--color-dark-text)}.web-tab.is-open{border-color:var(--color-dark-line);background:var(--color-dark-surface)}.web-tab-close{display:grid;place-items:center;min-width:var(--touch-min);min-height:var(--touch-min);margin-right:calc(var(--space-3) * -1);border:0;background:none;color:inherit}.web-tab-new{min-width:var(--touch-min);justify-content:center}.web-surface{flex:1;min-height:0;overflow-y:auto;background:var(--color-bg);border-top:var(--border-width) solid var(--color-dark-line)}.home{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--space-12) clamp(var(--space-6),5.5vw,var(--size-88))}.home-inner{width:100%;max-width:var(--size-960)}.home-eyebrow{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-3)}.home-greeting{font-size:clamp(var(--space-8),4vw,var(--text-display));color:var(--color-text)}.home-sub{margin:var(--space-3) 0 var(--space-8);color:var(--color-text-muted);font-size:var(--text-lg)}.home-suggestions{list-style:none;margin:var(--space-4) 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--size-220),1fr));gap:var(--space-2)}.home-suggestion{width:100%;height:100%;min-height:var(--button-height);padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);text-align:left;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.home-suggestion:hover{border-color:var(--color-text);background:var(--color-accent)}.home-note{margin-top:var(--space-6);color:var(--color-text-muted);font-size:var(--text-xs)}.composer{position:relative;display:flex;flex-direction:column;gap:var(--space-2);min-height:var(--composer-min);padding:var(--space-3) var(--space-3) var(--space-2) var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-text)}.composer-input{width:100%;min-height:var(--space-12);resize:none;border:0;background:transparent;font-size:var(--text-base)}.composer-input:focus-visible{outline:none}.composer:focus-within{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-width)}.composer-row{display:flex;align-items:center;justify-content:space-between}.composer-left{position:relative;display:flex;gap:var(--space-1)}.composer-send{display:grid;place-items:center;width:var(--touch-min);height:var(--touch-min);border:0;background:var(--color-primary);color:var(--color-on-primary);transition:background var(--dur-fast) var(--ease-out)}.composer-send:hover:not(:disabled){background:var(--color-primary-hover)}.composer-send:disabled{opacity:.35}.composer-menu{position:absolute;bottom:calc(100% + var(--space-2));left:0;z-index:30;display:flex;flex-direction:column;min-width:var(--size-280);padding:var(--space-2);background:var(--color-surface);color:var(--color-text);border:var(--border-width) solid var(--color-text)}.composer-menu button{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);padding:0 var(--space-3);border:0;background:none;font-size:var(--text-sm);text-align:left}.composer-menu button:hover{background:var(--color-surface-muted)}.composer-settings{gap:var(--space-2);padding:var(--space-4);width:var(--size-320)}.conversation{height:100%;display:flex;flex-direction:column}.conversation-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-8) max(clamp(var(--space-4),5.5vw,var(--size-88)),calc((100% - var(--content-max)) / 2))}.conversation-list>*{width:100%;max-width:var(--content-max)}.conversation-composer{padding:var(--space-3) max(clamp(var(--space-4),5.5vw,var(--size-88)),calc((100% - var(--content-max)) / 2)) var(--space-4);border-top:var(--border-width) solid var(--color-border);background:var(--color-bg)}.msg{display:flex;gap:var(--space-3);animation:rise var(--dur-base) var(--ease-out)}.msg-me{flex-direction:column;align-items:flex-end;align-self:flex-end;max-width:min(var(--size-640),100%)}.msg-me p{padding:var(--space-3) var(--space-4);background:var(--color-surface-muted);border:var(--border-width) solid var(--color-border)}.msg-tag{margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--text-xs)}.msg-avatar{display:grid;place-items:center;flex-shrink:0;width:var(--avatar-sm);height:var(--avatar-sm);background:var(--color-dark);color:var(--color-accent);font-weight:700}.msg-body{flex:1;min-width:0;max-width:var(--chat-max)}.msg-body:has(.quote-card){max-width:var(--content-max)}.msg-system{align-self:center;color:var(--color-text-muted);font-size:var(--text-sm)}.answer-text{font-size:var(--text-lg);line-height:1.5}.source-chip{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-1) var(--space-3);background:var(--color-bg);border:var(--border-width) solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-sm)}.source-chip svg{width:var(--icon-sm);height:var(--icon-sm)}.feedback{display:flex;align-items:center;gap:var(--space-1)}.feedback-note{color:var(--color-text-muted);font-size:var(--text-xs)}.details{margin-left:auto}.details-toggle{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--touch-min);border:0;background:none;font-size:var(--text-sm);font-weight:600}.details-toggle svg{width:var(--icon-sm);height:var(--icon-sm);transition:transform var(--dur-fast) var(--ease-out)}.details-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.details-list{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-1) var(--space-4);margin:var(--space-2) 0 0;padding:var(--space-3);background:var(--color-bg);font-size:var(--text-sm)}.details-list dt{color:var(--color-text-muted)}.details-list dd{margin:0}.rule-list{margin:0;padding-left:var(--space-4)}.flag-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3);background:var(--color-error-bg);color:var(--color-error);font-size:var(--text-sm)}.code-card .table-wrap,.code-card .table{margin-top:var(--space-3)}.code-card .table{border:var(--border-width) solid var(--color-border)}.refusal-card{border-left:var(--space-1) solid var(--color-error)}.refusal-nomatch{border-left-color:var(--color-text-muted)}.quote-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.quote-table td,.quote-table th{white-space:nowrap}.quote-table td:first-child{white-space:normal;min-width:var(--size-240)}.quote-totals{position:sticky;bottom:0;margin:0;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-top:var(--focus-width) solid var(--color-text)}.quote-totals div{display:flex;justify-content:space-between;gap:var(--space-4);font-variant-numeric:tabular-nums}.quote-totals dt{color:var(--color-text-muted)}.quote-totals dd{margin:0}.quote-total{margin-top:var(--space-2);font-size:var(--text-2xl);font-weight:700}.quote-total dt{color:var(--color-text);font-weight:500}.quote-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.export-file{padding:var(--space-2) var(--space-3);background:var(--color-accent);font-size:var(--text-sm)}.quote-missing .chip-group{margin-top:var(--space-3)}.quote-blocked{border-left:var(--space-1) solid var(--color-error)}.blocked-title{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-error);font-weight:600}.kpi-mini{list-style:none;margin:var(--space-3) 0 0;padding:0}.kpi-mini li{display:grid;grid-template-columns:minmax(var(--size-140),1fr) 2fr var(--size-56);align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border)}.typing-card{display:flex;flex-direction:column;gap:var(--space-2)}.typing-line{display:block;height:var(--space-3);width:80%;background:linear-gradient(90deg,var(--color-surface-muted),var(--color-border),var(--color-surface-muted));background-size:200% 100%;animation:shimmer 1.2s var(--ease-out) infinite}.typing-line.short{width:45%}@media(max-width:767px){.web{grid-template-columns:1fr;grid-template-rows:1fr auto;height:auto;min-height:calc(100dvh - var(--mockbar-height))}.web-rail{order:2;position:sticky;bottom:0;z-index:20;flex-direction:row;justify-content:space-around;padding:0;border-right:0;border-top:var(--border-width) solid var(--color-dark-line)}.web-logo,.web-user{display:none}.web-rail-list{flex-direction:row}.web-rail-bottom{margin:0}.web-rail-item[aria-current=page]{box-shadow:inset 0 var(--size-3) 0 var(--color-accent)}.notif-panel{left:auto;right:0;bottom:calc(100% + var(--space-2));width:min(var(--size-320),calc(100vw - var(--space-8)))}.home{padding:var(--space-8) var(--space-4)}.home-inner{margin:0}.home-suggestions{grid-template-columns:1fr}.card{padding:var(--space-3) var(--space-4)}.details{margin-left:0}.details-list{grid-template-columns:1fr}.kpi-mini li{grid-template-columns:1fr var(--size-56)}.kpi-mini li .scorebar{grid-column:1 / -1;order:3}.composer-menu,.composer-settings{width:min(var(--size-320),calc(100vw - var(--space-8)))}}.page{width:100%;padding:var(--space-10) clamp(var(--space-6),3vw,var(--space-12));display:flex;flex-direction:column;gap:var(--space-4)}.page-head{display:flex;flex-direction:column;gap:var(--space-2)}.crumbs ol{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none;color:var(--color-text-muted);font-size:var(--text-sm)}.crumbs li+li:before{content:"/";margin-right:var(--space-2)}.crumbs .link-btn{min-height:0;font-weight:400}.page-head-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4)}.page-title{font-size:var(--text-display)}.page-sub{max-width:72ch;margin-top:var(--space-2);color:var(--color-text-muted)}.page-actions{display:flex;gap:var(--space-3)}.section-title{margin:var(--space-6) 0 var(--space-3);font-size:var(--text-2xl)}.tip{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:var(--border-width) dashed var(--color-text-muted);background:var(--color-surface-muted);font-size:var(--text-sm)}.tip svg{width:var(--icon-sm);height:var(--icon-sm);margin-top:var(--size-3)}.error-text{margin-top:var(--space-1);color:var(--color-error);font-size:var(--text-xs);font-weight:400}.flowmap{display:grid;grid-template-columns:minmax(var(--size-200),1.2fr) var(--space-12) 1fr var(--space-12) 1fr;align-items:center;margin:var(--space-2) 0 var(--space-4);padding:var(--space-6);background:var(--color-surface);border:var(--border-width) solid var(--color-border)}.flowmap-sources{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.flowmap-node{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);background:var(--color-bg);font-size:var(--text-sm)}.node-failing{border-color:var(--color-error);background:var(--color-error-bg);color:var(--color-error);font-weight:600}.flowmap-arrow{height:var(--focus-width);background:var(--color-text);position:relative}.flowmap-arrow:after{content:"";position:absolute;right:0;top:calc(var(--size-6) * -1 + var(--border-width));border:var(--size-6) solid transparent;border-left-color:var(--color-text);border-right:0}.flowmap-hub{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);background:var(--color-dark);color:var(--color-dark-text)}.flowmap-hub svg{color:var(--color-accent)}.flowmap-hub span{color:var(--color-dark-text-muted);font-size:var(--text-xs)}.flowmap-out{background:var(--color-accent);color:var(--color-text)}.flowmap-out svg,.flowmap-out span{color:var(--color-text)}.idle-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--size-240),1fr));gap:var(--space-4);margin-top:var(--space-4)}.idle-group h3{font-size:var(--text-sm);font-weight:600;letter-spacing:0;margin-bottom:var(--space-2)}.idle-group ul{list-style:none;margin:0;padding:0;font-size:var(--text-sm);color:var(--color-text-muted)}.idle-group li{display:flex;align-items:center;gap:var(--space-2);padding:var(--focus-width) 0}.conflicts{display:flex;flex-direction:column;gap:var(--space-4)}.conflict-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.conflict-options{margin:var(--space-3) 0;padding:0;border:0;display:flex;flex-direction:column;gap:var(--space-2)}.radio-row{display:grid;grid-template-columns:auto var(--size-120) 1fr;align-items:center;gap:var(--space-3);min-height:var(--touch-min);padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);cursor:pointer;font-size:var(--text-sm)}.radio-row.is-selected{border-color:var(--color-text);background:var(--color-accent)}.perm-layout{display:grid;grid-template-columns:var(--size-260) 1fr;gap:var(--space-6);align-items:start}.perm-depts ul{list-style:none;margin:0;padding:0;border:var(--border-width) solid var(--color-border);background:var(--color-surface)}.perm-depts button{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;min-height:var(--button-height);padding:0 var(--space-4);border:0;border-bottom:var(--border-width) solid var(--color-border);background:none;font-size:var(--text-sm);text-align:left}.perm-depts button:hover{background:var(--color-surface-muted)}.perm-depts button[aria-current=true]{background:var(--color-text);color:var(--color-on-primary)}.perm-depts button[aria-current=true] .muted{color:var(--color-dark-text-muted)}.perm-main .section-title:first-child{margin-top:0}.perm-group{margin:0 0 var(--space-4);padding:0;border:0}.perm-group legend{margin-bottom:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500}.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--size-220),1fr));gap:var(--space-2)}.override-list{list-style:none;margin:0;padding:0}.override-list li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border)}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.filters-grid{display:grid;grid-template-columns:auto repeat(5,minmax(0,1fr)) auto;align-items:end}.filters-icon{margin-bottom:var(--space-3);color:var(--color-text-muted)}.search{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);min-width:var(--size-280);padding:0 var(--space-3);background:var(--color-surface);border:var(--border-width) solid var(--color-border)}.search:focus-within{border-color:var(--color-text)}.search input{flex:1;min-height:var(--touch-min);border:0;background:transparent}.search input:focus-visible{outline:none}.search svg{color:var(--color-text-muted)}.review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.review-card{display:flex;flex-direction:column;gap:var(--space-2);border-left:var(--space-1) solid var(--color-warning)}.review-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.result-num{font-size:var(--text-2xl);font-weight:700;font-variant-numeric:tabular-nums}.people{list-style:none;margin:0;padding:0;border:var(--border-width) solid var(--color-border);background:var(--color-surface)}.person{display:grid;grid-template-columns:minmax(var(--size-180),1.2fr) minmax(var(--size-140),1.6fr) var(--size-96) minmax(0,1.4fr) auto;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--color-border)}.person.is-pending{background:var(--color-warning-bg)}.person-flags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.kpi-hero{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:var(--space-2) var(--space-6);padding:var(--space-6);background:var(--color-surface);border:var(--border-width) solid var(--color-border)}.kpi-hero-score{font-size:var(--text-3xl);font-weight:700;font-variant-numeric:tabular-nums}.kpi-hero .muted{grid-column:1 / -1}.criteria{list-style:none;margin:0;padding:0;border:var(--border-width) solid var(--color-border);background:var(--color-surface)}.criterion{border-bottom:var(--border-width) solid var(--color-border)}.criterion.is-pending{border-left:var(--space-1) solid var(--color-warning)}.criterion-row{display:grid;grid-template-columns:minmax(var(--size-200),1.5fr) minmax(var(--size-120),1fr) minmax(var(--size-120),1.4fr) var(--size-72) auto;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4)}.criterion-name{font-weight:500}.criterion-value{font-variant-numeric:tabular-nums}.criterion .table-wrap{border-width:var(--border-width) 0 0}.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.nodata-note{padding:var(--space-3) var(--space-4);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:var(--text-sm)}.history-list{list-style:none;margin:var(--space-3) 0 0;padding:0;font-size:var(--text-sm)}.history-list li{padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border)}@media(max-width:1023px){.filters-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filters-icon{display:none}.person{grid-template-columns:1fr auto}.person .scorebar,.person-flags{grid-column:1 / -1}.criterion-row{grid-template-columns:1fr auto}.criterion-row .scorebar{grid-column:1 / -1}}@media(max-width:767px){.page{padding:var(--space-6) var(--space-4)}.page-title{font-size:var(--text-3xl)}.page-actions,.page-actions .btn{width:100%}.flowmap{grid-template-columns:1fr;gap:var(--space-3);padding:var(--space-4)}.flowmap-arrow{width:var(--focus-width);height:var(--space-6);justify-self:center}.flowmap-arrow:after{top:auto;bottom:0;right:calc(var(--size-6) * -1 + var(--border-width));border:var(--size-6) solid transparent;border-top-color:var(--color-text);border-bottom:0}.perm-layout{grid-template-columns:1fr}.perm-depts ul{display:flex;overflow-x:auto}.perm-depts li{flex-shrink:0}.perm-depts button{border-bottom:0;border-right:var(--border-width) solid var(--color-border)}.filters-grid{grid-template-columns:1fr 1fr}.search{min-width:0;width:100%}.radio-row{grid-template-columns:auto 1fr}.radio-row>span:last-child{grid-column:2}.kpi-hero{grid-template-columns:1fr}.table-wrap{border:0;background:transparent}.table thead{position:absolute;width:var(--border-width);height:var(--border-width);overflow:hidden;clip:rect(0,0,0,0)}.table,.table tbody,.table tr,.table th,.table td{display:block;width:100%}.table tbody tr{margin-bottom:var(--space-3);border:var(--border-width) solid var(--color-border);background:var(--color-surface)}.table tbody tr:nth-child(2n){background:var(--color-surface)}.table th,.table td{border-bottom:0;padding:var(--space-1) var(--space-3)}.table td[data-label]:before{content:attr(data-label);display:block;color:var(--color-text-muted);font-size:var(--text-xs)}.table .num{text-align:left}.quote-table td:first-child{min-width:0}.quote-table td,.quote-table th{white-space:normal}}.perm-layout>*,.filters-grid>*{min-width:0}.filters-grid select{width:100%}.table .mono,.table .status,.table .btn,.table .badge{white-space:nowrap}.logo{width:var(--icon-lg);height:var(--icon-lg)}.mockbar-title{display:flex;align-items:center;gap:var(--space-2)}.mockbar-logo{width:var(--icon-md);height:var(--icon-md)}.web-logo{border:0;cursor:pointer}.web-logo .logo{width:var(--size-28);height:var(--size-28)}.zalo-oa-logo .logo{width:62%;height:62%}.msg-avatar .logo{width:70%;height:70%}.split-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--size-400);gap:var(--space-6);align-items:start}.split-main{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.side-panel{position:sticky;top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.side-panel .card{display:flex;flex-direction:column;gap:var(--space-2)}.side-panel .kv{margin:0}@media(max-width:1199px){.split-layout{grid-template-columns:1fr}.side-panel{position:static}}.dash-head{display:flex;justify-content:space-between;gap:var(--space-4)}.dash-date{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-1)}.askbar{display:grid;grid-template-columns:1fr auto;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-text)}.askbar:focus-within{outline:var(--focus-width) solid var(--color-focus);outline-offset:var(--focus-width)}.askbar input{min-height:var(--touch-min);border:0;background:transparent;font-size:var(--text-lg)}.askbar input:focus-visible{outline:none}.askbar-suggestions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.dash-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:row dense;gap:var(--space-4);align-items:start}.widget{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-6) var(--space-6);background:var(--color-surface);border:var(--border-width) solid var(--color-border);border-top:var(--size-3) solid var(--color-text);animation:rise var(--dur-base) var(--ease-out)}.widget-span-4{grid-column:span 4}.widget-span-5{grid-column:span 5}.widget-span-6{grid-column:span 6}.widget-span-7{grid-column:span 7}.widget-span-8{grid-column:span 8}.widget-span-12{grid-column:span 12}.widget-alert{border-top-color:var(--color-error)}.widget-locked{background:var(--color-surface-muted);border-top-color:var(--color-text-muted)}.widget-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.widget-title{font-size:var(--text-lg)}.widget-body{display:flex;flex-direction:column;gap:var(--space-3)}.widget-sub{font-size:var(--text-sm);font-weight:500}.big-number{font-size:var(--text-3xl);font-weight:700;font-variant-numeric:tabular-nums;line-height:var(--leading-tight)}.mini-rows,.list-rows,.metric-rows,.bar-rows,.progress-list,.side-list,.plain-list{list-style:none;margin:0;padding:0}.mini-rows li,.list-rows>li,.metric-rows li{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border);font-size:var(--text-sm)}.list-rows>li:has(.row-link){padding:0}.metric-rows li{display:grid;grid-template-columns:1fr auto}.metric-rows .cell-sub{grid-column:1 / -1;margin-top:calc(var(--space-2) * -1)}.row-link{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:var(--touch-min);padding:var(--space-2) 0;border:0;background:none;font-size:var(--text-sm);text-align:left}.row-link:hover{background:var(--color-surface-muted)}.bar-rows li{display:grid;grid-template-columns:minmax(var(--size-120),1fr) 2fr var(--size-56);align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border);font-size:var(--text-sm)}.tile-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--size-140),1fr));gap:var(--space-3)}.tile-row>div,.metric{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);background:var(--color-bg)}.metric-label{color:var(--color-text-muted);font-size:var(--text-xs)}.metric-value{font-size:var(--text-2xl);font-weight:700;font-variant-numeric:tabular-nums}.metric-note{color:var(--color-text-muted);font-size:var(--text-xs)}.metric-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.metric-strip .metric{background:var(--color-surface);border:var(--border-width) solid var(--color-border)}.locked-note{display:flex;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-sm)}.progress-row{display:grid;grid-template-columns:minmax(var(--size-140),1.2fr) 2fr auto;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border);font-size:var(--text-sm)}.progress-track{position:relative;height:var(--bar-height);background:var(--color-surface-muted)}.progress-fill{position:absolute;inset:0 auto 0 0;width:var(--fill);background:var(--color-text)}.progress-fill.is-behind{background:var(--color-error)}.stepper ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);margin:var(--space-2) 0 0;padding:0;list-style:none}.stepper-count{font-weight:600}.stepper li{display:flex;align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:var(--size-3) solid var(--color-border);color:var(--color-text-muted);font-size:var(--text-sm)}.stepper li.is-done{border-top-color:var(--color-accent)}.stepper li.is-current{border-top-color:var(--color-text);color:var(--color-text);font-weight:600}.stepper-num{display:grid;place-items:center;width:var(--size-24);height:var(--size-24);border:var(--border-width) solid currentColor;font-size:var(--text-xs)}.prefill-note{display:flex;align-items:center;gap:var(--space-1);color:var(--color-text-muted);font-size:var(--text-sm)}.step-form{padding:var(--space-6);background:var(--color-surface-muted)}.step-actions{display:flex;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border)}.field-row-even{grid-template-columns:1fr 1fr}.choice-group{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;border:0}.choice-group legend{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:500}.choice-group .radio-row{grid-template-columns:auto 1fr;background:var(--color-surface)}.summary-kv{padding:var(--space-4);background:var(--color-surface);border:var(--border-width) solid var(--color-border)}.step-edit-list{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.step-edit-list li{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:var(--border-width) solid var(--color-border)}.step-edit-num{display:grid;place-items:center;width:var(--size-28);height:var(--size-28);background:var(--color-text);color:var(--color-on-primary);font-weight:600}.step-edit-body{display:flex;flex-direction:column;gap:var(--space-1)}.step-edit-body textarea{width:100%;padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--color-border);resize:vertical}.step-edit-body textarea[aria-invalid=true]{border-color:var(--color-error)}.step-edit-tools{display:flex}.input-row{display:grid;grid-template-columns:1fr auto auto;align-items:start;gap:var(--space-3)}.check{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min);font-size:var(--text-sm)}.segmented-light{border-color:var(--color-border)}.quote-meta .kv{margin:0}.inline-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:var(--border-width) solid var(--color-border)}.flag-warning{background:var(--color-warning-bg);color:var(--color-warning)}.price-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--size-320);gap:var(--space-6);align-items:start}.price-side{display:flex;flex-direction:column;gap:var(--space-4)}.side-list li{padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border);font-size:var(--text-sm)}.side-empty{color:var(--color-text-muted);font-size:var(--text-sm)}.version-chips{margin-bottom:var(--space-3)}.draft-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-warning-bg);border:var(--border-width) solid var(--color-warning)}.field-inline-row{flex-direction:row;align-items:center;gap:var(--space-2)}.field-inline-row input{width:var(--size-140)}.price-group{margin-bottom:var(--space-4)}.table-caption{padding:var(--space-3) var(--space-4);text-align:left;font-weight:600;border-bottom:var(--border-width) solid var(--color-border)}.table tbody tr.row-changed{background:var(--color-warning-bg)}.price-input{display:inline-flex;align-items:center;gap:var(--space-2)}.price-input input{width:var(--size-160);min-height:var(--touch-min);padding:0 var(--space-2);border:var(--border-width) solid var(--color-border);text-align:right;font-variant-numeric:tabular-nums}.proc-layout{display:grid;grid-template-columns:var(--size-320) minmax(0,1fr);gap:var(--space-6);align-items:start}.proc-list{margin:0;padding:0;list-style:none;background:var(--color-surface);border:var(--border-width) solid var(--color-border)}.proc-list button{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);width:100%;padding:var(--space-3) var(--space-4);border:0;border-bottom:var(--border-width) solid var(--color-border);background:none;text-align:left}.proc-list button:hover{background:var(--color-surface-muted)}.proc-list button[aria-current=true]{background:var(--color-accent);box-shadow:inset var(--size-3) 0 0 var(--color-text)}.proc-name{font-weight:600}.proc-badges{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.proc-detail{display:flex;flex-direction:column;gap:var(--space-3)}.proc-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-3)}.sub-title{margin-top:var(--space-2);font-size:var(--text-base);font-weight:600;letter-spacing:0}.proc-steps{margin:0;padding-left:var(--space-6)}.proc-steps li{padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border)}.proc-steps-compact li{padding:var(--space-1) 0;border:0}.proc-meta{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.plain-list li{padding:var(--space-1) 0;font-size:var(--text-sm)}@media(max-width:1023px){.widget-span-4,.widget-span-5,.widget-span-6,.widget-span-7,.widget-span-8{grid-column:span 12}.price-layout,.proc-layout{grid-template-columns:1fr}}@media(max-width:767px){.dash-grid{gap:var(--space-3)}.widget{padding:var(--space-4)}.metric-strip{grid-template-columns:1fr}.stepper ol{grid-template-columns:repeat(4,minmax(0,1fr))}.stepper li span:last-child{display:none}.field-row-even,.inline-form,.proc-meta{grid-template-columns:1fr}.bar-rows li,.progress-row{grid-template-columns:1fr auto}.bar-rows li .scorebar,.progress-row .progress-track{grid-column:1 / -1;order:3}.step-edit-list li{grid-template-columns:auto 1fr}.step-edit-tools{grid-column:1 / -1;justify-content:flex-end}.price-input input{width:100%}}@media(max-width:767px){.web-rail-list,.web-rail-list li{flex:1;min-width:0}.web-rail-item{width:100%;min-width:0;padding:var(--space-1) 0}.web-rail-bottom .web-rail-item{width:var(--touch-min)}}.row-link .num,.list-rows .num{white-space:nowrap}.side-panel .section-title{margin:0;font-size:var(--text-lg)}.side-panel .kpi-hero{grid-template-columns:1fr}
