:root{--teal: #2aa6a6;--teal-600: #209494;--teal-700: #1f7c7c;--teal-soft: rgba(42, 166, 166, .08);--teal-ring: rgba(42, 166, 166, .25);--blue: #2f6fff;--blue-600: #1e58e6;--blue-soft: rgba(47, 111, 255, .08);--blue-ring: rgba(47, 111, 255, .25);--purple: #7c3aed;--purple-soft: rgba(124, 58, 237, .08);--bg: #ffffff;--bg-soft: #f8fafc;--panel: #ffffff;--panelSoft: #fbfdff;--ink: #0b1220;--text: #0b1220;--muted: rgba(11, 18, 32, .72);--muted2: rgba(11, 18, 32, .52);--muted3: rgba(11, 18, 32, .36);--line: rgba(17, 24, 39, .1);--line2: rgba(17, 24, 39, .14);--border: rgba(17, 24, 39, .1);--success: #16a34a;--success-soft:rgba(22, 163, 74, .1);--warning: #d97706;--warning-soft:rgba(217, 119, 6, .1);--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .1);--info: #2f6fff;--info-soft: rgba(47, 111, 255, .1);--primary: var(--teal);--primary-teal: var(--teal);--secondary-teal: var(--teal-600);--dark-text: var(--ink);--light-text: var(--muted);--bg-gradient-start: #eef2f3;--bg-gradient-end: #d9e4e5;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 18px;--fs-2xl: 22px;--fs-3xl: 28px;--fw-regular: 400;--fw-medium: 500;--fw-semibold:600;--fw-bold: 700;--fw-black: 800;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-pill:999px;--r12: 12px;--r16: 16px;--r18: 18px;--shadow-xs: 0 1px 0 rgba(17, 24, 39, .04);--shadow-sm: 0 1px 3px rgba(17, 24, 39, .06), 0 1px 2px rgba(17, 24, 39, .04);--shadow-md: 0 4px 12px rgba(17, 24, 39, .08), 0 2px 4px rgba(17, 24, 39, .04);--shadow-lg: 0 10px 28px rgba(17, 24, 39, .1), 0 4px 10px rgba(17, 24, 39, .06);--shadow-xl: 0 20px 50px rgba(17, 24, 39, .14), 0 8px 20px rgba(17, 24, 39, .08);--shadow-teal: 0 6px 16px rgba(42, 166, 166, .25);--shadow-blue: 0 6px 16px rgba(47, 111, 255, .22);--shadow: var(--shadow-lg);--shadow2: var(--shadow-xs);--ease-out: cubic-bezier(.22, .61, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--t-fast: .12s;--t-base: .2s;--t-slow: .32s;--maxw-page: 1400px;--footer-h: 44px;--topbar-h: 85px}*{scrollbar-width:thin;scrollbar-color:rgba(42,166,166,.45) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#2aa6a64d;border-radius:999px;border:2px solid transparent;background-clip:padding-box;transition:background-color .18s ease}*::-webkit-scrollbar-thumb:hover{background:#2aa6a68c;background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;font-family:inherit;font-size:var(--fs-md);font-weight:var(--fw-semibold);line-height:1.2;letter-spacing:.01em;border-radius:var(--r-md);border:1px solid transparent;background:transparent;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:transform var(--t-fast) var(--ease-out),background-color var(--t-fast) var(--ease-out),border-color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out),color var(--t-fast) var(--ease-out)}.btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--teal-ring)}.btn:active:not(:disabled):not([aria-disabled=true]){transform:scale(.98);transition-duration:80ms}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn i{font-size:1em;line-height:1}.btn-primary{background:linear-gradient(135deg,var(--teal),var(--teal-600));color:#fff;box-shadow:var(--shadow-teal)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px #2aa6a652}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-teal)}.btn-secondary{background:var(--panelSoft);color:var(--ink);border-color:var(--line2)}.btn-secondary:hover:not(:disabled){border-color:var(--teal);color:var(--teal);background:var(--panel)}.btn-ghost{background:transparent;color:var(--muted);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-soft);color:var(--ink)}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 4px 10px #dc262633}.btn-danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px #dc26264d;background:#b91c1c}.btn-success{background:var(--success);color:#fff;box-shadow:0 4px 10px #16a34a33}.btn-success:hover:not(:disabled){transform:translateY(-1px);background:#15803d}.btn-sm{padding:6px 12px;font-size:var(--fs-sm);border-radius:var(--r-sm);gap:6px}.btn-lg{padding:12px 24px;font-size:var(--fs-lg);border-radius:var(--r-lg);gap:10px}.btn-block{width:100%}.btn-icon{padding:0;width:38px;height:38px;border-radius:var(--r-md)}.btn-icon.btn-sm{width:30px;height:30px;border-radius:var(--r-sm)}.btn-icon.btn-lg{width:46px;height:46px;border-radius:var(--r-lg)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform var(--t-base) var(--ease-out),box-shadow var(--t-base) var(--ease-out),border-color var(--t-base) var(--ease-out)}.card--hoverable:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--line2)}.card--soft{background:linear-gradient(135deg,var(--teal-soft),var(--blue-soft))}.card--flat{box-shadow:none}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}.card-head .title{display:flex;align-items:center;gap:10px;font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--ink);letter-spacing:.01em;margin:0}.card-body{padding:16px 18px;color:var(--muted);font-size:var(--fs-base);line-height:1.5}.card-body>p:first-child{margin-top:0}.card-body>*:last-child{margin-bottom:0}.card-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 18px;border-top:1px solid var(--line);background:var(--panelSoft)}.card--compact .card-head{padding:10px 14px}.card--compact .card-body{padding:12px 14px}.card--compact .card-foot{padding:10px 14px}.chip{display:inline-flex;align-items:center;font-size:var(--fs-xs);color:var(--muted);border:1px solid var(--line2);background:var(--panelSoft);padding:4px 12px;border-radius:var(--r-pill);white-space:nowrap;font-weight:var(--fw-semibold);letter-spacing:.02em}.chip--teal{color:var(--teal);border-color:#2aa6a640;background:var(--teal-soft)}.chip--blue{color:var(--blue);border-color:#2f6fff40;background:var(--blue-soft)}.chip--success{color:var(--success);border-color:#16a34a4d;background:var(--success-soft)}.chip--warning{color:var(--warning);border-color:#d977064d;background:var(--warning-soft)}.chip--danger{color:var(--danger);border-color:#dc26264d;background:var(--danger-soft)}.input,.select,.textarea{width:100%;font-family:inherit;font-size:var(--fs-md);color:var(--ink);background:var(--panelSoft);border:1px solid var(--line2);border-radius:var(--r-md);padding:10px 14px;outline:none;transition:border-color var(--t-fast) var(--ease-out),box-shadow var(--t-fast) var(--ease-out),background-color var(--t-fast) var(--ease-out)}.input::placeholder,.textarea::placeholder{color:var(--muted2)}.input:hover,.select:hover,.textarea:hover{border-color:var(--line2);background:var(--panel)}.input:focus,.select:focus,.textarea:focus{border-color:var(--teal);box-shadow:0 0 0 4px var(--teal-ring);background:var(--panel)}.input[disabled],.select[disabled],.textarea[disabled]{opacity:.6;cursor:not-allowed;background:var(--bg-soft)}.input.is-invalid,.select.is-invalid,.textarea.is-invalid{border-color:var(--danger);box-shadow:0 0 0 4px #dc26262e}.textarea{min-height:96px;resize:vertical;line-height:1.5}.select{appearance:none;-webkit-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'><path fill='%2364748b' d='M3 5l4 4 4-4z'/></svg>");background-repeat:no-repeat;background-position:right 12px center}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--ink);letter-spacing:.01em}.field-help{font-size:var(--fs-xs);color:var(--muted2);margin-top:2px}.field-error{font-size:var(--fs-xs);color:var(--danger);margin-top:2px}.field-row{display:flex;align-items:center;gap:8px}.search-input{position:relative;display:flex;align-items:center}.search-input>i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted2);font-size:14px;pointer-events:none}.search-input>.input{padding-left:36px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:4px 6px 10px;margin-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap}.page-header__left{display:flex;flex-direction:column;gap:4px;min-width:0}.page-header__title{margin:0;font-size:var(--fs-2xl);font-weight:var(--fw-black);color:var(--ink);letter-spacing:-.01em;line-height:1.15}.page-header__subtitle{margin:0;color:var(--muted);font-size:var(--fs-base)}.page-header__meta{display:flex;gap:16px;font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap;justify-content:flex-end}.page-header__meta i{margin-right:4px;color:var(--muted2)}.page-header__actions{display:flex;gap:8px;flex-wrap:wrap}.gradient-text{background:linear-gradient(90deg,var(--teal),var(--blue));-webkit-background-clip:text;background-clip:text;color:transparent}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;text-align:center;color:var(--muted);gap:10px}.empty-state__icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-lg);background:var(--teal-soft);color:var(--teal);font-size:26px;margin-bottom:4px}.empty-state__title{margin:0;font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--ink)}.empty-state__message{margin:0;font-size:var(--fs-sm);color:var(--muted);max-width:380px;line-height:1.5}.empty-state__actions{display:flex;gap:8px;margin-top:10px}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-base);color:var(--ink);background:var(--panel)}.table thead th{position:sticky;top:0;background:var(--bg-soft);color:var(--muted);font-weight:var(--fw-bold);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap;z-index:1}.table tbody td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.table tbody tr{transition:background-color var(--t-fast) var(--ease-out)}.table tbody tr:hover{background:var(--bg-soft)}.table--zebra tbody tr:nth-child(2n){background:var(--bg-soft)}.table--zebra tbody tr:nth-child(2n):hover{background:var(--teal-soft)}.table--compact thead th{padding:6px 10px}.table--compact tbody td{padding:8px 10px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:var(--fs-xs);font-weight:var(--fw-bold);border-radius:var(--r-pill);letter-spacing:.02em;white-space:nowrap}.badge--success{color:var(--success);background:var(--success-soft)}.badge--warning{color:var(--warning);background:var(--warning-soft)}.badge--danger{color:var(--danger);background:var(--danger-soft)}.badge--info{color:var(--info);background:var(--info-soft)}.badge--teal{color:var(--teal);background:var(--teal-soft)}.badge--neutral{color:var(--muted);background:var(--bg-soft)}.divider-soft{border:none;border-top:1px solid var(--line);margin:12px 0}.skeleton{background:linear-gradient(90deg,var(--bg-soft) 0%,rgba(17,24,39,.06) 50%,var(--bg-soft) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:var(--r-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#0b1220;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#2aa6a6;text-decoration:inherit}a:hover{color:#1f7c7c}body{margin:0;min-width:320px;min-height:100vh;display:block;color:#0b1220;background:#fff}h1{font-size:3.2em;line-height:1.1}button{font-family:inherit;cursor:pointer;color:inherit;background-color:transparent;border:1px solid transparent}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}input[type=date]{color-scheme:light}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.7;filter:invert(0)}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.cmdk-backdrop{position:fixed;inset:0;background:#0b122073;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:99999;display:flex;justify-content:center;align-items:flex-start;padding:88px 16px 24px;animation:cmdk-fade .16s ease-out both}@keyframes cmdk-fade{0%{opacity:0}to{opacity:1}}.cmdk-modal{width:min(640px,100%);max-height:calc(100vh - 200px);background:#fff;border:1px solid var(--line, rgba(17, 24, 39, .1));border-radius:18px;box-shadow:0 30px 80px #0b12204d,0 8px 22px #0b12201f;display:flex;flex-direction:column;overflow:hidden;animation:cmdk-pop .2s cubic-bezier(.22,.61,.36,1) both}@keyframes cmdk-pop{0%{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.cmdk-input-wrap{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line, rgba(17, 24, 39, .1));background:linear-gradient(180deg,#ffffff 0%,var(--panelSoft, #fbfdff) 100%)}.cmdk-input-icon{font-size:18px;color:var(--muted, rgba(11, 18, 32, .72));flex-shrink:0}.cmdk-input{flex:1;border:none;outline:none;background:transparent;font-family:inherit;font-size:15px;color:var(--ink, #0b1220);padding:4px 0;letter-spacing:-.005em}.cmdk-input::placeholder{color:#0b12206b}.cmdk-esc-hint{font-size:11px;font-weight:600;color:var(--muted2, rgba(11, 18, 32, .52));background:var(--panelSoft, #fbfdff);border:1px solid var(--line, rgba(17, 24, 39, .1));padding:3px 8px;border-radius:6px;font-family:SF Mono,SFMono-Regular,Consolas,monospace;letter-spacing:.04em;flex-shrink:0}.cmdk-list{flex:1;overflow-y:auto;padding:8px 8px 12px;-webkit-overflow-scrolling:touch}.cmdk-group{margin-top:6px}.cmdk-group:first-child{margin-top:0}.cmdk-group-label{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted2, rgba(11, 18, 32, .52));padding:8px 10px 4px}.cmdk-item{width:100%;display:flex;align-items:center;gap:12px;padding:10px;border:none;background:transparent;border-radius:10px;cursor:pointer;text-align:left;font-family:inherit;color:var(--ink, #0b1220);transition:background-color .12s ease,transform .12s ease}.cmdk-item.is-active{background:linear-gradient(90deg,#2aa6a61a,#2f6fff0f 80%);box-shadow:inset 3px 0 0 var(--teal, #2aa6a6)}.cmdk-item-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:var(--panelSoft, #fbfdff);border:1px solid var(--line, rgba(17, 24, 39, .1));color:var(--teal, #2aa6a6);font-size:15px;flex-shrink:0}.cmdk-item.is-active .cmdk-item-icon{background:linear-gradient(135deg,var(--teal, #2aa6a6),var(--blue, #2f6fff));border-color:transparent;color:#fff;box-shadow:0 4px 10px #2aa6a64d}.cmdk-item-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.cmdk-item-label{font-size:14px;font-weight:600;color:var(--ink, #0b1220);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.005em}.cmdk-item-desc{font-size:12px;color:var(--muted, rgba(11, 18, 32, .72));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdk-item-arrow{font-size:13px;color:var(--muted2, rgba(11, 18, 32, .52));opacity:0;transition:opacity .12s ease,transform .12s ease;flex-shrink:0}.cmdk-item.is-active .cmdk-item-arrow{opacity:1;transform:translate(2px);color:var(--teal, #2aa6a6)}.cmdk-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px 32px;text-align:center;color:var(--muted, rgba(11, 18, 32, .72));gap:6px}.cmdk-empty i{font-size:28px;color:var(--teal, #2aa6a6);opacity:.6;margin-bottom:6px}.cmdk-empty p{margin:0;font-size:14px;color:var(--ink, #0b1220);font-weight:600}.cmdk-empty span{font-size:12px;color:var(--muted2, rgba(11, 18, 32, .52))}.cmdk-footer{display:flex;align-items:center;gap:16px;padding:10px 16px;border-top:1px solid var(--line, rgba(17, 24, 39, .1));background:var(--panelSoft, #fbfdff);font-size:11px;color:var(--muted, rgba(11, 18, 32, .72))}.cmdk-kbd-hint{display:inline-flex;align-items:center;gap:6px;font-weight:500}.cmdk-kbd-hint--right{margin-left:auto}.cmdk-footer kbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:#fff;border:1px solid var(--line2, rgba(17, 24, 39, .14));border-bottom-width:2px;border-radius:5px;font-family:SF Mono,SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:700;color:var(--ink, #0b1220)}@media(max-width:640px){.cmdk-backdrop{padding-top:16px;align-items:flex-start}.cmdk-modal{max-height:calc(100vh - 32px)}.cmdk-item-desc{display:none}}.chatbot-fab{position:fixed;right:22px;bottom:92px;width:54px;height:54px;border-radius:50%;border:none;cursor:pointer;background:linear-gradient(135deg,var(--teal, #2aa6a6) 0%,var(--teal-700, #1f7c7c) 100%);color:#fff;box-shadow:0 10px 24px #0b12202e,0 2px 6px #0b12201a;z-index:9998;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease-out,box-shadow .15s ease-out}.chatbot-fab:hover{transform:translateY(-2px);box-shadow:0 14px 28px #0b122038,0 4px 8px #0b12201f}.chatbot-fab:focus-visible{outline:3px solid var(--teal-ring, rgba(42, 166, 166, .45));outline-offset:3px}.chatbot-fab svg{width:24px;height:24px;display:block}.chatbot-fab-close{font-size:26px;font-weight:400;line-height:1}.chatbot-popover{position:fixed;right:88px;bottom:100px;max-width:280px;background:var(--panel, #ffffff);color:var(--ink, #0b1220);border:1px solid var(--line, rgba(17, 24, 39, .1));border-radius:14px;padding:14px 16px 12px;box-shadow:0 18px 40px #0b12202e,0 4px 12px #0b122014;z-index:9997;cursor:pointer;opacity:0;transform:translateY(8px) scale(.96);transition:opacity .18s ease-out,transform .18s ease-out;pointer-events:none}.chatbot-popover.chatbot-popover-visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.chatbot-popover-tail{position:absolute;right:-8px;bottom:18px;width:14px;height:14px;background:var(--panel, #ffffff);border-right:1px solid var(--line, rgba(17, 24, 39, .1));border-top:1px solid var(--line, rgba(17, 24, 39, .1));transform:rotate(45deg)}.chatbot-popover-close{position:absolute;top:6px;right:6px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:6px;color:var(--muted2, rgba(11, 18, 32, .52));font-size:18px;line-height:1;cursor:pointer;padding:0}.chatbot-popover-close:hover{background:var(--bg-soft, #f8fafc);color:var(--ink, #0b1220)}.chatbot-popover-greeting{font-weight:600;font-size:13.5px;letter-spacing:-.005em;margin:0 22px 4px 0;color:var(--ink, #0b1220)}.chatbot-popover-greeting strong{color:var(--teal, #2aa6a6)}.chatbot-popover-text{font-size:13px;color:var(--muted, rgba(11, 18, 32, .72));line-height:1.45;margin:0 0 8px}.chatbot-popover-hint{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--teal, #2aa6a6)}.chatbot-backdrop{position:fixed;inset:0;z-index:9999;pointer-events:none}.chatbot-panel{position:fixed;right:22px;bottom:158px;width:min(420px,calc(100vw - 44px));height:min(640px,calc(100vh - 200px));background:var(--panel, #ffffff);border:1px solid var(--line, rgba(17, 24, 39, .1));border-radius:18px;box-shadow:0 30px 80px #0b122047,0 8px 22px #0b12201a;display:flex;flex-direction:column;overflow:hidden;animation:chatbot-pop .18s cubic-bezier(.22,.61,.36,1) both;pointer-events:auto}@keyframes chatbot-pop{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.chatbot-loading{position:fixed;right:22px;bottom:158px;width:min(420px,calc(100vw - 44px));height:220px;background:var(--panel, #ffffff);border:1px solid var(--line, rgba(17, 24, 39, .1));border-radius:18px;box-shadow:0 30px 80px #0b122047,0 8px 22px #0b12201a;pointer-events:auto;overflow:hidden;display:flex;flex-direction:column;z-index:9999}.chatbot-loading:before,.chatbot-loading:after{content:"";display:block;height:12px;margin:16px;border-radius:6px;background:linear-gradient(90deg,var(--bg-soft, #f8fafc) 0%,rgba(0,0,0,.06) 50%,var(--bg-soft, #f8fafc) 100%);background-size:200% 100%;animation:chatbot-skeleton-shimmer 1.4s ease-in-out infinite}.chatbot-loading:after{width:60%}@keyframes chatbot-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.chatbot-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line, rgba(17, 24, 39, .1));background:linear-gradient(180deg,var(--panel) 0%,var(--panelSoft, #fbfdff) 100%)}.chatbot-header-title{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--ink, #0b1220);letter-spacing:-.005em}.chatbot-header-icon{display:inline-flex;width:22px;height:22px;border-radius:6px;background:var(--teal-soft, rgba(42, 166, 166, .08));color:var(--teal, #2aa6a6);align-items:center;justify-content:center;font-size:13px;font-weight:700}.chatbot-header-tag{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--warning, #d97706);background:var(--warning-soft, rgba(217, 119, 6, .1));padding:2px 6px;border-radius:4px}.chatbot-header-actions{display:inline-flex;gap:4px}.chatbot-icon-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;color:var(--muted, rgba(11, 18, 32, .72));border-radius:6px;cursor:pointer;font-size:16px;line-height:1}.chatbot-icon-btn:hover{background:var(--bg-soft, #f8fafc);border-color:var(--line, rgba(17, 24, 39, .1));color:var(--ink, #0b1220)}.chatbot-icon-btn:focus-visible{outline:2px solid var(--teal-ring, rgba(42, 166, 166, .35));outline-offset:1px;border-color:var(--teal, #2aa6a6)}.chatbot-input-send svg,.chatbot-input-stop svg{display:block}.chatbot-input-send:focus-visible,.chatbot-input-stop:focus-visible{outline:2px solid var(--teal-ring, rgba(42, 166, 166, .35));outline-offset:2px}.chatbot-context-strip{display:flex;align-items:center;gap:8px;padding:6px 14px;font-size:11px;color:var(--muted, rgba(11, 18, 32, .72));background:var(--teal-soft, rgba(42, 166, 166, .08));border-bottom:1px solid var(--line, rgba(17, 24, 39, .1));min-width:0}.chatbot-context-dot{width:6px;height:6px;border-radius:50%;background:var(--teal, #2aa6a6);display:inline-block;flex:0 0 auto}.chatbot-context-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.chatbot-context-text strong{color:var(--ink, #0b1220);font-weight:600}.chatbot-body{flex:1;display:flex;flex-direction:column;min-height:0}.chatbot-empty{padding:28px 18px;text-align:center}.chatbot-empty-title{font-size:16px;font-weight:600;color:var(--ink, #0b1220);margin:0 0 6px}.chatbot-empty-hint{font-size:13px;color:var(--muted, rgba(11, 18, 32, .72));line-height:1.5;margin:0}.chatbot-empty-hint em{background:var(--bg-soft, #f8fafc);border:1px solid var(--line, rgba(17, 24, 39, .1));border-radius:4px;padding:1px 6px;font-style:normal;color:var(--ink);font-size:12px}.chatbot-messages{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}.chatbot-msg{display:flex;width:100%;animation:chatbot-msg-in .12s ease-out both}@keyframes chatbot-msg-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.chatbot-msg-user{justify-content:flex-end}.chatbot-msg-assistant{justify-content:flex-start}.chatbot-bubble{max-width:86%;padding:9px 12px;border-radius:14px;font-size:13.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.chatbot-bubble-user{background:var(--teal, #2aa6a6);color:#fff;border-bottom-right-radius:4px}.chatbot-bubble-assistant{background:var(--bg-soft, #f8fafc);color:var(--ink, #0b1220);border:1px solid var(--line, rgba(17, 24, 39, .1));border-bottom-left-radius:4px}.chatbot-text{margin:0}.chatbot-thinking{display:inline-flex;align-items:center;gap:8px}.chatbot-thinking-text{font-size:12px;color:var(--muted, rgba(11, 18, 32, .72));font-style:italic}.chatbot-typing{display:inline-flex;gap:4px;padding:2px 0}.chatbot-typing span{width:6px;height:6px;border-radius:50%;background:var(--muted2, rgba(11, 18, 32, .52));animation:chatbot-typing-bounce 1.2s ease-in-out infinite}.chatbot-typing span:nth-child(2){animation-delay:.15s}.chatbot-typing span:nth-child(3){animation-delay:.3s}@keyframes chatbot-typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.chatbot-tool-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.chatbot-tool-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;font-size:11px;background:var(--blue-soft, rgba(47, 111, 255, .08));border:1px solid var(--blue-ring, rgba(47, 111, 255, .25));color:var(--blue, #2f6fff)}.chatbot-tool-chip-name{font-family:SF Mono,SFMono-Regular,Consolas,monospace;font-weight:600}.chatbot-tool-chip-result{color:var(--muted, rgba(11, 18, 32, .72))}.chatbot-tool-chip-pending{background:var(--warning-soft);border-color:#d9770640;color:var(--warning, #d97706)}.chatbot-tool-chip-done{background:var(--success-soft);border-color:#16a34a40;color:var(--success, #16a34a)}.chatbot-confirm{margin:6px 14px 12px;padding:12px;background:var(--warning-soft, rgba(217, 119, 6, .1));border:1px solid rgba(217,119,6,.3);border-radius:10px}.chatbot-confirm-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.chatbot-confirm-icon{color:var(--warning, #d97706);font-size:14px}.chatbot-confirm-title{font-weight:600;font-size:13px;color:var(--ink, #0b1220)}.chatbot-confirm-tool{margin-left:auto;font-family:SF Mono,SFMono-Regular,Consolas,monospace;font-size:11px;color:var(--muted, rgba(11, 18, 32, .72));padding:1px 6px;background:var(--panel, #ffffff);border-radius:4px;border:1px solid var(--line)}.chatbot-confirm-body{font-size:13px;color:var(--ink);line-height:1.45;margin-bottom:10px}.chatbot-confirm-actions{display:flex;justify-content:flex-end;gap:8px}.chatbot-btn{font:inherit;padding:6px 12px;border-radius:6px;font-size:12.5px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:filter .1s,background-color .1s}.chatbot-btn:disabled{opacity:.55;cursor:not-allowed}.chatbot-btn-primary{background:var(--teal, #2aa6a6);color:#fff}.chatbot-btn-primary:hover:not(:disabled){background:var(--teal-600, #209494)}.chatbot-btn-secondary{background:var(--panel, #ffffff);border-color:var(--line, rgba(17, 24, 39, .1));color:var(--ink, #0b1220)}.chatbot-btn-secondary:hover:not(:disabled){background:var(--bg-soft, #f8fafc)}.chatbot-error{display:flex;align-items:flex-start;gap:8px;margin:8px 14px;padding:8px 10px 8px 12px;border-radius:8px;font-size:12.5px;background:var(--danger-soft, rgba(220, 38, 38, .1));border:1px solid rgba(220,38,38,.25);color:var(--danger, #dc2626);line-height:1.4}.chatbot-error-icon{flex:0 0 auto;font-weight:700}.chatbot-error-text{flex:1;min-width:0;word-break:break-word}.chatbot-error-dismiss{flex:0 0 auto;background:transparent;border:0;color:inherit;font-size:16px;line-height:1;cursor:pointer;padding:0 4px;border-radius:4px;opacity:.6}.chatbot-error-dismiss:hover{opacity:1}.chatbot-error-dismiss:focus-visible{outline:2px solid currentColor;outline-offset:2px;opacity:1}.chatbot-quick-prompts{display:flex;flex-wrap:wrap;gap:6px;padding:4px 14px 12px}.chatbot-quick-prompt{display:inline-flex;align-items:center;font:inherit;font-size:12.5px;padding:6px 10px;border-radius:999px;background:var(--panel, #ffffff);border:1px solid var(--line, rgba(17, 24, 39, .1));color:var(--ink, #0b1220);cursor:pointer;text-align:left;white-space:normal;max-width:100%;line-height:1.3;transition:background-color .12s,border-color .12s,transform .08s}.chatbot-quick-prompt:hover{background:var(--teal-soft, rgba(42, 166, 166, .08));border-color:var(--teal-ring, rgba(42, 166, 166, .25));color:var(--teal-700, #1f7c7c)}.chatbot-quick-prompt:active{transform:translateY(.5px)}.chatbot-quick-prompt:focus-visible{outline:2px solid var(--teal-ring, rgba(42, 166, 166, .35));outline-offset:2px}.chatbot-input-wrap{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--line, rgba(17, 24, 39, .1));background:var(--panel, #ffffff)}.chatbot-input{flex:1;border:1px solid var(--line, rgba(17, 24, 39, .1));background:var(--bg-soft, #f8fafc);border-radius:10px;padding:8px 10px;font:inherit;font-size:13.5px;color:var(--ink, #0b1220);resize:none;min-height:36px;max-height:140px;line-height:1.4}.chatbot-input:focus{outline:2px solid var(--teal-ring, rgba(42, 166, 166, .25));outline-offset:1px;border-color:var(--teal, #2aa6a6);background:var(--panel, #ffffff)}.chatbot-input:disabled{background:var(--bg-soft);color:var(--muted2)}.chatbot-input-send,.chatbot-input-stop{width:36px;height:36px;border-radius:9px;border:none;cursor:pointer;font-size:16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.chatbot-input-send{background:var(--teal, #2aa6a6);color:#fff}.chatbot-input-send:hover:not(:disabled){background:var(--teal-600, #209494)}.chatbot-input-send:disabled{background:var(--bg-soft, #f8fafc);color:var(--muted3, rgba(11, 18, 32, .36));cursor:not-allowed}.chatbot-input-stop{background:var(--danger-soft, rgba(220, 38, 38, .1));color:var(--danger, #dc2626)}.chatbot-input-stop:hover{background:#dc26262e}.chatbot-markdown p{margin:0 0 6px}.chatbot-markdown p:last-child{margin-bottom:0}.chatbot-markdown ul,.chatbot-markdown ol{margin:4px 0 6px;padding-left:22px}.chatbot-markdown li{margin:2px 0}.chatbot-markdown code{background:var(--bg-soft, #f8fafc);border:1px solid var(--line, rgba(17, 24, 39, .1));border-radius:4px;padding:1px 5px;font-size:12.5px;font-family:SF Mono,SFMono-Regular,Consolas,monospace}.chatbot-markdown pre{background:var(--bg-soft, #f8fafc);border:1px solid var(--line, rgba(17, 24, 39, .1));border-radius:6px;padding:8px 10px;overflow-x:auto;margin:6px 0}.chatbot-markdown pre code{background:none;border:none;padding:0}.chatbot-markdown a{color:var(--teal, #2aa6a6);text-decoration:underline;text-underline-offset:2px}.chatbot-markdown table{border-collapse:collapse;width:100%;margin:6px 0;font-size:12.5px}.chatbot-markdown th,.chatbot-markdown td{border:1px solid var(--line, rgba(17, 24, 39, .1));padding:4px 8px;text-align:left}.chatbot-markdown th{background:var(--bg-soft, #f8fafc);font-weight:600}.chatbot-markdown blockquote{border-left:3px solid var(--teal, #2aa6a6);margin:6px 0;padding:0 0 0 10px;color:var(--muted, rgba(11, 18, 32, .72))}.chatbot-card-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted, rgba(11, 18, 32, .72));margin:8px 0 4px}.chatbot-report-card{margin-top:8px;padding:12px 14px;border:1px solid var(--line, rgba(17, 24, 39, .1));border-radius:10px;background:linear-gradient(180deg,var(--panel, #ffffff) 0%,var(--panelSoft, #fbfdff) 100%)}.chatbot-report-card-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.chatbot-report-card-tag{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--teal, #2aa6a6);background:var(--teal-soft, rgba(42, 166, 166, .08));border:1px solid var(--teal-ring, rgba(42, 166, 166, .25));padding:2px 8px;border-radius:4px}.chatbot-report-card-title{font-weight:600;font-size:13.5px;color:var(--ink, #0b1220);letter-spacing:-.005em;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chatbot-report-card-sub{font-size:12px;color:var(--muted, rgba(11, 18, 32, .72));margin-bottom:10px}.chatbot-report-card-actions{display:flex;gap:8px;flex-wrap:wrap}.chatbot-card-list{list-style:none;margin:8px 0 0;padding:0;border:1px solid var(--line, rgba(17, 24, 39, .1));border-radius:8px;overflow:hidden}.chatbot-card-row{border-bottom:1px solid var(--line, rgba(17, 24, 39, .1))}.chatbot-card-row:last-child{border-bottom:0}.chatbot-card-row-link{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;text-decoration:none;color:var(--ink, #0b1220);background:var(--panel, #ffffff);cursor:pointer}a.chatbot-card-row-link:hover{background:var(--bg-soft, #f8fafc)}.chatbot-card-row-main{display:flex;flex-direction:column;min-width:0;flex:1}.chatbot-card-row-label{font-size:13px;font-weight:600;color:var(--ink, #0b1220);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chatbot-card-row-sub{font-size:11.5px;color:var(--muted, rgba(11, 18, 32, .72));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chatbot-card-row-meta{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.chatbot-card-chip{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:var(--bg-soft, #f8fafc);border:1px solid var(--line, rgba(17, 24, 39, .1));color:var(--muted, rgba(11, 18, 32, .72));padding:1px 6px;border-radius:4px}.chatbot-card-mute{font-size:11px;color:var(--muted2, rgba(11, 18, 32, .52))}.chatbot-card-dot{width:6px;height:6px;border-radius:50%;background:var(--teal, #2aa6a6);display:inline-block}.chatbot-card-empty{padding:8px;font-size:12px;color:var(--muted2, rgba(11, 18, 32, .52));text-align:center;background:var(--bg-soft, #f8fafc);border-radius:8px;margin-top:8px}.chatbot-card-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:8px}.chatbot-card-stat{display:flex;flex-direction:column;padding:8px 10px;border:1px solid var(--line, rgba(17, 24, 39, .1));border-radius:8px;background:var(--panel, #ffffff);text-decoration:none;color:var(--ink, #0b1220)}a.chatbot-card-stat:hover{background:var(--bg-soft, #f8fafc)}.chatbot-card-stat-value{font-size:20px;font-weight:700;color:var(--ink, #0b1220);line-height:1.1}.chatbot-card-stat-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted, rgba(11, 18, 32, .72));margin-top:2px}.chatbot-card-stat-sub{font-size:11px;color:var(--muted2, rgba(11, 18, 32, .52));margin-top:2px}.chatbot-history{position:absolute;inset:0;background:var(--panel, #ffffff);display:flex;flex-direction:column;z-index:5;animation:chatbot-slide-in .16s ease-out both}@keyframes chatbot-slide-in{0%{transform:translate(8px);opacity:0}to{transform:translate(0);opacity:1}}.chatbot-history-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line, rgba(17, 24, 39, .1));font-weight:600;font-size:14px;color:var(--ink, #0b1220)}.chatbot-history-body{flex:1;overflow-y:auto;padding:4px}.chatbot-history-empty{padding:24px 12px;text-align:center;font-size:13px;color:var(--muted2, rgba(11, 18, 32, .52))}.chatbot-history-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;width:100%;padding:8px 10px;background:transparent;border:0;border-radius:6px;cursor:pointer;text-align:left;font:inherit;color:var(--ink, #0b1220)}.chatbot-history-row:hover{background:var(--bg-soft, #f8fafc)}.chatbot-history-row.is-active{background:var(--teal-soft, rgba(42, 166, 166, .08))}.chatbot-history-row-title{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chatbot-history-row-time{font-size:11px;color:var(--muted2, rgba(11, 18, 32, .52));white-space:nowrap}.chatbot-history-row-del{font-size:14px;color:var(--muted2, rgba(11, 18, 32, .52));padding:2px 6px;border-radius:4px}.chatbot-history-row-del:hover{background:var(--danger-soft, rgba(220, 38, 38, .1));color:var(--danger, #dc2626)}@media(max-width:480px){.chatbot-panel{right:8px;left:8px;bottom:152px;width:auto;height:calc(100vh - 180px)}.chatbot-popover{right:8px;bottom:158px;max-width:calc(100vw - 16px)}.chatbot-popover-tail{display:none}}*{box-sizing:border-box;margin:0;padding:0;font-family:Poppins,sans-serif}body{margin:0;min-height:100vh;background:#fff;overflow-y:visible;overflow-x:hidden}.auth-layout{min-height:100vh;width:100%;display:flex;background:linear-gradient(to right,#c2d3d6,#d2dee0 30%,#e0eaec,#eef5f6);position:relative;overflow-x:hidden}.main-container{display:flex;flex:1;width:100%;min-height:100vh;flex-direction:row;background:transparent}.brand-section{flex:0 0 50%;position:relative;display:flex;align-items:center;justify-content:center;padding:56px 48px 200px;color:var(--ink, #0b1220);background:transparent;isolation:isolate;overflow:hidden}.brand-section{animation:authFadeIn .45s ease-out both}.brand-inner{position:relative;z-index:1;display:inline-flex;flex-direction:column;align-items:center;text-align:center;gap:14px;width:auto;max-width:90%}.logo-container{display:flex;align-items:center;justify-content:center;margin:0}.logo-icon{display:inline-flex}.logo-icon .logo-img{height:260px;width:auto;max-width:100%;filter:drop-shadow(0 16px 32px rgba(11,18,32,.12));display:block}.tagline{background:linear-gradient(90deg,var(--primary-teal),var(--blue, #2f6fff));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:1.15rem;line-height:1.3;font-weight:600;letter-spacing:.06em;text-align:center;margin:0;padding-left:36px;-webkit-text-fill-color:transparent}.login-card-container{flex:1 1 50%;display:flex;align-items:center;justify-content:center;padding:56px;background:transparent}.login-card-container{animation:authFadeIn .45s ease-out 60ms both}.login-card{width:100%;max-width:420px;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border:none;padding:0;border-radius:0;box-shadow:none;text-align:left;transition:none}.login-card:hover{transform:none;box-shadow:none}.welcome-block{margin-bottom:32px}.welcome-block h2{margin:0;font-size:1.85rem;font-weight:700;color:var(--ink, #0b1220);letter-spacing:-.015em;line-height:1.15}.welcome-block h2:after{content:"";display:block;width:76px;height:3px;margin-top:12px;border-radius:999px;background:linear-gradient(90deg,var(--primary-teal),var(--blue, #2f6fff))}.welcome-block p{margin:8px 0 0;color:var(--muted, rgba(11, 18, 32, .72));font-size:.95rem}.auth-section{margin:0 0 22px}.auth-section+.auth-section{margin-top:28px}.auth-section__title{margin:0 0 14px;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--primary-teal)}.auth-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:480px){.auth-row{grid-template-columns:1fr;gap:0}}.auth-success{text-align:center}.auth-success__icon{width:72px;height:72px;margin:0 auto 20px;background:linear-gradient(135deg,var(--success, #16a34a),#22c55e);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 12px 26px #16a34a4d}.auth-success__icon svg{width:36px;height:36px;fill:currentColor}.auth-success__title{margin:0 0 8px;color:var(--success, #16a34a);font-size:1.5rem;font-weight:700;letter-spacing:-.01em}.auth-success__lead{margin:0 0 28px;color:var(--muted, rgba(11, 18, 32, .72));font-size:.96rem}.auth-success__codeblock{background:linear-gradient(135deg,#2aa6a60f,#2f6fff0f);border:1px solid rgba(42,166,166,.3);border-radius:16px;padding:22px;margin-bottom:28px}.auth-success__codelabel{margin:0 0 10px;color:var(--muted, rgba(11, 18, 32, .72));font-size:.82rem;font-weight:600;letter-spacing:.04em}.auth-success__code{font-size:1.6rem;font-weight:700;color:var(--primary-teal);letter-spacing:3px;padding:12px 14px;background:#fff;border-radius:10px;box-shadow:0 2px 10px #0b12200a}.auth-success__hint{margin:14px 0 0;color:var(--muted, rgba(11, 18, 32, .72));font-size:.85rem}.input-group{position:relative;margin-bottom:26px;text-align:left}.input-field{width:100%;padding:12px 2px;font-size:1rem;color:var(--dark-text);border:none;border-bottom:2px solid rgba(11,18,32,.14);outline:none;background:transparent;transition:border-color .25s ease,color .25s ease}.input-label{position:absolute;top:12px;left:2px;font-size:1rem;color:#0b122080;pointer-events:none;transition:.25s var(--ease-out, ease) all}.input-field:focus~.input-label,.input-field:not(:placeholder-shown)~.input-label{top:-16px;font-size:.78rem;color:var(--primary-teal);font-weight:600;letter-spacing:.02em}.input-field:focus{border-bottom:2px solid var(--primary-teal)}.input-bar{position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--primary-teal);transition:.4s}.input-field:focus~.input-bar{width:100%}.input-group-password .input-field{padding-right:36px}.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--light-text);cursor:pointer;padding:6px;font-size:1.05rem;line-height:1;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .2s}.password-toggle:hover{color:var(--primary-teal)}.password-toggle:focus-visible{outline:2px solid var(--primary-teal);outline-offset:2px}.btn-main{width:100%;padding:14px;background:linear-gradient(135deg,var(--primary-teal),var(--secondary-teal));border:none;color:#fff;font-size:1.05rem;font-weight:600;letter-spacing:.01em;cursor:pointer;border-radius:14px;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;box-shadow:0 6px 18px #2aa6a64d;display:flex;justify-content:center;align-items:center;gap:10px}.btn-main:hover{transform:translateY(-2px);box-shadow:0 10px 24px #2aa6a666;filter:brightness(1.04)}.btn-main:active{transform:translateY(0);box-shadow:0 4px 12px #2aa6a64d}.btn-main:focus-visible{outline:none;box-shadow:0 6px 18px #2aa6a64d,0 0 0 4px #2aa6a64d}.btn-main:disabled{opacity:.7;cursor:not-allowed;transform:none;box-shadow:0 6px 18px #2aa6a633;filter:grayscale(.2)}.btn-icon{width:16px;height:16px;fill:currentColor;transition:transform .3s ease}.btn-main:hover .btn-icon{transform:translate(4px)}.forgot-pass{display:inline-block;margin:18px 0 22px;color:var(--primary-teal);text-decoration:none;font-size:.92rem;font-weight:500;transition:color .2s}.forgot-pass:hover{color:var(--secondary-teal);text-decoration:underline}.auth-error{display:flex;align-items:center;gap:10px;margin:6px 0 18px;padding:12px 14px;border-radius:12px;background:#dc262614;border:1px solid rgba(220,38,38,.22);color:#b91c1c;font-size:.9rem;font-weight:500;line-height:1.4}.auth-error i{font-size:1.05rem;flex-shrink:0}.auth-altcta{margin:0;font-size:.92rem;color:var(--muted, rgba(11, 18, 32, .72));text-align:center}.auth-altcta__link{color:var(--primary-teal);font-weight:600;text-decoration:none;margin-left:4px;transition:color .2s ease}.auth-altcta__link:hover{color:var(--secondary-teal);text-decoration:underline}.divider{height:1px;background:linear-gradient(to right,transparent,rgba(11,18,32,.14),transparent);margin:0 0 24px;width:100%}.auth-layout .btn-secondary{background:transparent;border:2px solid var(--primary-teal);padding:12px 25px;font-size:1rem;font-weight:600;color:var(--primary-teal);cursor:pointer;border-radius:14px;transition:background-color .25s ease,color .25s ease,box-shadow .25s ease,transform .2s ease}.auth-layout .btn-secondary:hover{background:var(--primary-teal);color:#fff;transform:translateY(-1px);box-shadow:0 6px 16px #2aa6a640}.footer{position:absolute;bottom:20px;left:40px;color:var(--primary-teal);font-size:.9rem;opacity:.8}@keyframes fadeInMoveLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInMoveRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes authFadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:968px){.main-container{flex-direction:column}.brand-section{flex:0 0 auto;padding:36px 28px 40px}.logo-icon .logo-img{height:180px}.tagline{font-size:1rem;padding-left:24px}.login-card-container{flex:1 1 auto;width:100%;padding:36px 24px 48px}.footer{position:relative;bottom:auto;left:auto;margin-top:40px;text-align:center}}@media(max-width:480px){.brand-section{padding:28px 20px 30px}.login-card{padding:0}.logo-icon .logo-img{height:130px}.tagline{font-size:.92rem;padding-left:18px}.welcome-block h2{font-size:1.4rem}}.search-box input::-webkit-search-cancel-button,.search-box input::-webkit-search-decoration,.search-box input::-ms-clear,.search-box input::-ms-reveal{-webkit-appearance:none;appearance:none;display:none!important}.search-box input{color:#1e293b!important;-webkit-text-fill-color:#1e293b!important}.search-box input::placeholder{color:#94a3b8!important;-webkit-text-fill-color:#94a3b8!important}.search-box i.bi-search,.search-clear{flex-shrink:0}:root{--bg: #ffffff;--ink: #0b1220;--muted: rgba(11, 18, 32, .72);--muted2: rgba(11, 18, 32, .52);--teal: #2aa6a6;--blue: #2f6fff;--line: rgba(17, 24, 39, .1);--line2: rgba(17, 24, 39, .14);--panel: #ffffff;--panelSoft: #fbfdff;--shadow: 0 10px 28px rgba(17, 24, 39, .1);--shadow2: 0 1px 0 rgba(17, 24, 39, .04);--r16: 16px;--r18: 18px}.accent-line{height:3px;background:linear-gradient(90deg,#2aa6a600,#2aa6a6f2 30%,#2f6fffd9 70%,#2f6fff00);box-shadow:0 1px 12px #2aa6a64d}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:4px 16px;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:var(--shadow2);position:sticky;top:0;z-index:100}.brand{display:flex;align-items:center;gap:8px;min-width:180px;text-decoration:none;color:inherit}.brand-logo{height:76px;width:auto;display:block;transition:transform .18s ease,filter .18s ease}.brand:hover .brand-logo{transform:translateY(-1px) scale(1.02);filter:drop-shadow(0 4px 10px rgba(42,166,166,.2))}.controls{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:nowrap;margin-left:auto;min-width:0;flex:1 1 auto}.search{position:relative;width:min(520px,40vw);min-width:0;flex:1 1 260px;max-width:520px}.search input{width:100%;height:42px;border-radius:14px;border:1px solid var(--line2);background:var(--panelSoft);color:var(--ink);padding:0 14px 0 42px;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;font-size:14px}.search input::placeholder{color:#0b12206b}.search input:hover{border-color:#2aa6a64d;background:var(--panel)}.search input:focus{border-color:var(--teal);box-shadow:0 0 0 4px #2aa6a62e;background:var(--panel)}.search--cmdk{cursor:pointer}.search--cmdk input{cursor:pointer;caret-color:transparent}.search-kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:3px;pointer-events:none}.search-kbd kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:22px;padding:0 6px;background:#fff;border:1px solid var(--line2, rgba(17, 24, 39, .14));border-bottom-width:2px;border-radius:6px;font-family:SF Mono,SFMono-Regular,Consolas,monospace;font-size:11px;font-weight:700;color:var(--muted, rgba(11, 18, 32, .72));line-height:1}.search--cmdk:hover input{border-color:#2aa6a673;background:var(--panel)}.search--cmdk:hover .search-kbd kbd{color:var(--teal);border-color:#2aa6a673}.search>i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:16px}.iconbtn{width:42px;height:42px;border-radius:14px;background:var(--panelSoft);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted);transition:border-color .18s ease,color .18s ease,background-color .18s ease,transform .18s ease,box-shadow .18s ease;cursor:pointer;position:relative}.iconbtn:hover{border-color:#2aa6a673;color:var(--teal);background:var(--panel);transform:translateY(-1px);box-shadow:0 6px 14px #2aa6a61a}.iconbtn:active{transform:translateY(0);box-shadow:none}.iconbtn:focus-visible{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px #2aa6a638}.iconbtn i{font-size:18px}.notification-badge{position:absolute;top:2px;right:2px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:10px;font-weight:800;padding:1px 5px;border-radius:999px;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;letter-spacing:.02em;box-shadow:0 2px 6px #dc262659}.profile-button{position:relative;background:none;border:none;cursor:pointer;padding:0;isolation:isolate}.profile-dropdown{position:relative;isolation:isolate}.profile-menu{position:absolute;top:calc(100% + 10px);right:0;width:280px;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 60px #0b122024,0 6px 14px #0b12200f;z-index:99999;animation:dropdownFadeIn .18s cubic-bezier(.22,.61,.36,1);pointer-events:auto;overflow:hidden}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.profile-menu-header{display:flex;align-items:center;gap:14px;padding:18px 20px;background:var(--panelSoft)}.profile-avatar{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--teal),#25918e);display:flex;align-items:center;justify-content:center;flex-shrink:0}.profile-avatar i{font-size:24px;color:#fff}.profile-info{display:flex;flex-direction:column;min-width:0}.profile-name{font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-email{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-menu-divider{height:1px;background:var(--line)}.profile-menu-list{list-style:none;margin:0;padding:8px}.profile-menu-list li{display:flex;align-items:center;gap:12px;padding:12px 14px;font-size:14px;font-weight:500;color:var(--ink);border-radius:10px;cursor:pointer;transition:.15s ease}.profile-menu-list li:hover{background:var(--panelSoft)}.profile-menu-list li i{font-size:18px;color:var(--muted);width:20px;text-align:center}.profile-menu-list li:hover i{color:var(--teal)}.profile-menu-list li.logout,.profile-menu-list li.logout i{color:#ef4444}.profile-menu-list li.logout:hover{background:#ef44441a}@media(max-width:768px){.topbar{padding:10px 12px}.brand{min-width:auto}.brand-logo{height:56px}.search{display:none}.iconbtn{width:36px;height:36px;border-radius:12px}.iconbtn i{font-size:16px}.profile-menu{width:260px;right:-10px}}.app-footer{position:fixed;left:0;right:0;bottom:0;height:44px;z-index:100;border-top:1px solid var(--line, rgba(17, 24, 39, .1));padding:0 20px;color:var(--muted2, rgba(11, 18, 32, .52));font-size:11px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;flex-wrap:nowrap;background:#fff;box-shadow:0 -2px 12px #1118270a}.app-footer>*{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.footer-brand{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.footer-mark{font-size:13px;font-weight:700;color:var(--ink, #0b1220);letter-spacing:.04em}.footer-version{font-size:11px;font-weight:600;color:var(--muted2, rgba(11, 18, 32, .52));font-variant-numeric:tabular-nums;font-family:SF Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.footer-copyright{color:var(--muted2, rgba(11, 18, 32, .6));font-size:11px;flex:1 1 auto;text-align:center}.footer-links{display:flex;align-items:center;gap:8px;flex-shrink:0}.app-footer a{color:var(--teal, #2aa6a6);text-decoration:none;font-weight:600}.app-footer a:hover{text-decoration:underline}.footer-divider{color:#0b122040}body{padding-bottom:44px}@media(max-width:640px){.app-footer{padding:0 14px;gap:10px}.footer-brand{display:none}.footer-copyright{text-align:left;font-size:10.5px}}body:has(.privacy-app){justify-content:initial!important;align-items:initial!important;min-height:100vh!important}.privacy-app{min-height:100vh;display:flex;flex-direction:column;background:var(--panelSoft)}.privacy-app .privacy-main{flex:1;padding:32px 24px}.privacy-app .privacy-container{width:100%;max-width:900px;margin:0 auto}.privacy-app .back-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;background:linear-gradient(135deg,var(--teal),#25918e);border:none;border-radius:50%;font-size:18px;color:#fff;cursor:pointer;transition:all .25s ease;margin-bottom:24px;box-shadow:0 2px 8px #2aa6a64d}.privacy-app .back-btn span{display:none}.privacy-app .back-btn:hover{transform:translate(-3px);box-shadow:0 4px 14px #2aa6a673}.privacy-app .privacy-header{text-align:center;margin-bottom:40px}.privacy-app .privacy-icon{width:80px;height:80px;margin:0 auto 20px;background:linear-gradient(135deg,var(--teal),#25918e);border-radius:24px;display:flex;align-items:center;justify-content:center}.privacy-app .privacy-icon i{font-size:40px;color:#fff}.privacy-app .privacy-header h1{font-size:36px;font-weight:800;color:var(--ink);margin:0 0 12px}.privacy-app .last-updated{font-size:14px;color:var(--muted);margin:0}.privacy-app .privacy-content{background:var(--panel);border-radius:20px;border:1px solid var(--line);overflow:hidden}.privacy-app .privacy-section{padding:32px;border-bottom:1px solid var(--line)}.privacy-app .privacy-section:last-child{border-bottom:none}.privacy-app .privacy-section h2{font-size:20px;font-weight:700;color:var(--ink);margin:0 0 16px;display:flex;align-items:center;gap:12px}.privacy-app .privacy-section h2 i{color:var(--teal);font-size:22px}.privacy-app .privacy-section h3{font-size:16px;font-weight:600;color:var(--ink);margin:20px 0 12px}.privacy-app .privacy-section h3:first-of-type{margin-top:0}.privacy-app .privacy-section p{font-size:15px;line-height:1.7;color:var(--ink);margin:0 0 16px}.privacy-app .privacy-section p:last-child{margin-bottom:0}.privacy-app .privacy-section ul{margin:0 0 16px;padding-left:0;list-style:none}.privacy-app .privacy-section ul:last-child{margin-bottom:0}.privacy-app .privacy-section li{position:relative;padding-left:24px;margin-bottom:12px;font-size:15px;line-height:1.6;color:var(--ink)}.privacy-app .privacy-section li:before{content:"";position:absolute;left:0;top:10px;width:8px;height:8px;background:var(--teal);border-radius:50%}.privacy-app .privacy-section li strong{color:var(--ink)}.privacy-app .privacy-section a{color:var(--teal);text-decoration:none;font-weight:500;transition:.15s ease}.privacy-app .privacy-section a:hover{text-decoration:underline}.privacy-app .contact-info{display:flex;flex-direction:column;gap:16px;margin-top:20px}.privacy-app .contact-item{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;background:var(--panelSoft);border-radius:12px}.privacy-app .contact-item i{font-size:20px;color:var(--teal);margin-top:2px}.privacy-app .contact-item span,.privacy-app .contact-item a{font-size:15px;line-height:1.6}@media(max-width:768px){.privacy-app .privacy-main{padding:20px 16px}.privacy-app .privacy-header h1{font-size:28px}.privacy-app .privacy-icon{width:64px;height:64px}.privacy-app .privacy-icon i{font-size:32px}.privacy-app .privacy-section{padding:24px 20px}.privacy-app .privacy-section h2{font-size:18px}.privacy-app .privacy-section h2 i{font-size:20px}}
