:root{--color-primary:#333;--color-primary-hover:#444;--color-primary-light:#f5f5f5;--color-primary-dark:#111;--color-neutral-50:#fafafa;--color-neutral-100:#f5f5f5;--color-neutral-200:#e5e5e5;--color-neutral-300:#d4d4d4;--color-neutral-400:#a3a3a3;--color-neutral-500:#737373;--color-neutral-600:#525252;--color-neutral-700:#404040;--color-neutral-800:#262626;--color-neutral-900:#171717;--color-bg-primary:#fff;--color-bg-secondary:#f5f5f5;--color-bg-tertiary:#fafafa;--color-text-primary:#333;--color-text-secondary:#666;--color-text-tertiary:#999;--color-text-inverse:#fff;--color-border-light:#e0e0e0;--color-border-medium:#d0d0d0;--color-border-dark:#333;--color-success:#10b981;--color-success-light:#f0fdf4;--color-success-dark:#059669;--color-warning:#f59e0b;--color-warning-light:#fff7ed;--color-warning-dark:#d97706;--color-error:#ef4444;--color-error-light:#fef2f2;--color-error-dark:#dc2626;--color-info:#3b82f6;--color-info-light:#f0f9ff;--color-info-dark:#2563eb;--color-accent:#667eea;--color-accent-hover:#7c3aed;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-base:16px;--spacing-lg:20px;--spacing-xl:24px;--spacing-2xl:32px;--spacing-3xl:40px;--spacing-4xl:48px;--spacing-5xl:64px;--font-family-base:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-family-mono:"Courier New",source-code-pro,Menlo,Monaco,Consolas,monospace;--font-size-xs:10px;--font-size-sm:12px;--font-size-base:14px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:28px;--font-size-4xl:32px;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-normal:1.4;--line-height-relaxed:1.6;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 2px 8px #0000001a;--shadow-lg:0 4px 12px #00000026;--shadow-xl:0 8px 24px #0003;--shadow-2xl:0 16px 40px #00000040;--breakpoint-xs:0px;--breakpoint-sm:600px;--breakpoint-md:1024px;--breakpoint-lg:1440px;--breakpoint-xl:1920px;--breakpoint-xs-max:599px;--breakpoint-sm-min:600px;--breakpoint-sm-max:1023px;--breakpoint-md-min:1024px;--breakpoint-md-max:1439px;--breakpoint-lg-min:1440px;--breakpoint-lg-max:1919px;--breakpoint-xl-min:1920px;--sidebar-width-desktop:100px;--sidebar-width-tablet:80px;--right-sidebar-width:300px;--topbar-height:80px;--transition-fast:0.15s ease;--transition-base:0.2s ease;--transition-slow:0.3s ease;--z-index-base:1;--z-index-dropdown:100;--z-index-sticky:200;--z-index-fixed:300;--z-index-modal-backdrop:900;--z-index-modal:1000;--z-index-popover:1100;--z-index-tooltip:1200}.hide-xs{@media (max-width:599px){display:none!important}}.show-xs{display:none!important;@media (max-width:599px){display:block!important}}.hide-sm{@media (min-width:600px) and (max-width:1023px){display:none!important}}.show-sm{display:none!important;@media (min-width:600px) and (max-width:1023px){display:block!important}}.hide-md{@media (min-width:1024px) and (max-width:1439px){display:none!important}}.show-md{display:none!important;@media (min-width:1024px) and (max-width:1439px){display:block!important}}.hide-mobile{@media (max-width:1023px){display:none!important}}.show-mobile{display:none!important;@media (max-width:1023px){display:block!important}}.hide-desktop{@media (min-width:1024px){display:none!important}}.show-desktop{display:none!important;@media (min-width:1024px){display:block!important}}.grid-12{grid-gap:var(--spacing-base);display:grid;gap:var(--spacing-base);grid-template-columns:repeat(12,1fr)}@media (min-width:600px) and (max-width:1023px){.grid-8{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(8,1fr)}}@media (max-width:599px){.grid-4{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(4,1fr)}}.container-responsive{margin:0 auto;padding-left:var(--spacing-xl);padding-right:var(--spacing-xl);width:100%}@media (max-width:1023px){.container-responsive{padding-left:var(--spacing-base);padding-right:var(--spacing-base)}}@media (max-width:599px){.container-responsive{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}}.text-responsive{font-size:var(--font-size-base)}@media (max-width:599px){.text-responsive{font-size:var(--font-size-sm)}}.spacing-responsive{padding:var(--spacing-xl)}@media (max-width:1023px){.spacing-responsive{padding:var(--spacing-base)}}@media (max-width:599px){.spacing-responsive{padding:var(--spacing-md)}}@media (screen-spanning:single-fold-vertical){.layout-content{grid-gap:var(--spacing-base);display:grid;gap:var(--spacing-base);grid-template-columns:1fr 1fr}}@media (screen-spanning:single-fold-horizontal),(screen-spanning:single-fold-vertical){.layout-center{padding:var(--spacing-xl)}.sidebar-item,.topbar-menu-btn,button{min-height:44px;min-width:44px}}*{box-sizing:border-box}*,body,html{margin:0;padding:0}body,html{height:100%;overflow:hidden;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg-secondary);color:var(--color-text-primary);font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-normal)}#root{height:100%;width:100%}code{font-family:var(--font-family-mono)}.App,.layout{height:100vh;overflow:hidden;width:100%}.layout{background-color:var(--color-bg-secondary);display:flex}.layout-main{display:flex;flex:1 1;flex-direction:column;margin-left:var(--sidebar-width-desktop);min-width:0;transition:margin-left var(--transition-base),width var(--transition-base);width:calc(100% - var(--sidebar-width-desktop))}.layout-content{display:flex;flex:1 1;min-width:0;overflow:hidden}.layout-center{background-color:var(--color-bg-primary);flex:1 1;min-width:0;overflow-y:auto;padding:var(--spacing-xl)}@media (min-width:600px) and (max-width:1439px){.layout-main{margin-left:var(--sidebar-width-tablet);width:calc(100% - var(--sidebar-width-tablet))}.layout-center{padding:var(--spacing-base)}}@media (max-width:599px){.layout-main{margin-left:0;width:100%}.layout-center{padding:var(--spacing-md)}}.sidebar-overlay{animation:fadeIn var(--transition-base);background-color:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:var(--z-index-modal-backdrop)}.layout-footer{background-color:var(--color-bg-primary);border-top:1px solid var(--color-border-light);color:#666;font-size:12px;padding:12px var(--spacing-xl);text-align:center}.layout-footer a{color:#666;text-decoration:none;transition:color .2s ease}.layout-footer a:hover{color:#333;text-decoration:underline}@media (max-width:599px){.layout-footer{font-size:11px;padding:10px var(--spacing-md)}}.sidebar{background-color:var(--color-bg-primary);border-right:1px solid var(--color-border-light);box-shadow:var(--shadow-md);flex-direction:column;flex-shrink:0;height:100vh;left:0;padding:var(--spacing-base) 0;position:fixed;top:0;transition:transform var(--transition-base);width:var(--sidebar-width-desktop);z-index:var(--z-index-fixed)}.sidebar,.sidebar-item{align-items:center;display:flex}.sidebar-item{background-color:initial;border:none;border-radius:var(--radius-lg);color:var(--color-text-secondary);cursor:pointer;height:48px;justify-content:center;margin-bottom:var(--spacing-base);transition:all var(--transition-base);width:48px}.sidebar-item:hover{background-color:var(--color-neutral-100);color:var(--color-text-primary)}.sidebar-item.active{background-color:var(--color-primary);color:var(--color-text-inverse)}.sidebar-item.active:hover{background-color:var(--color-primary-hover)}@media (min-width:600px) and (max-width:1439px){.sidebar{width:var(--sidebar-width-tablet)}}@media (max-width:599px){.sidebar{box-shadow:var(--shadow-xl);transform:translateX(-100%);width:280px;z-index:var(--z-index-modal)}.sidebar.open{transform:translateX(0)}.sidebar-item{justify-content:flex-start;margin-bottom:var(--spacing-sm);min-width:48px;padding:0 var(--spacing-base);width:auto}.sidebar-item-label{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);margin-left:var(--spacing-md)}.sidebar-close{align-items:center;background-color:initial;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;display:flex;height:32px;justify-content:center;position:absolute;right:var(--spacing-base);top:var(--spacing-base);transition:all var(--transition-base);width:32px}.sidebar-close:hover{background-color:var(--color-neutral-100);color:var(--color-text-primary)}}.topbar{background-color:var(--color-bg-primary);border-bottom:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);height:var(--topbar-height);padding:0 var(--spacing-xl);position:relative;z-index:var(--z-index-sticky)}.topbar,.topbar-content{align-items:center;display:flex}.topbar-content{justify-content:space-between;width:100%}.topbar-left{gap:var(--spacing-md)}.topbar-left,.topbar-menu-btn{align-items:center;display:flex}.topbar-menu-btn{background-color:initial;border:none;border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;height:40px;justify-content:center;transition:all var(--transition-base);width:40px}.topbar-menu-btn:hover{background-color:var(--color-neutral-100)}.topbar-title{color:var(--color-text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);margin:0}.topbar-user{background-color:var(--color-neutral-100);border-radius:var(--radius-full);gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-base)}.logout-btn,.topbar-user{align-items:center;display:flex;transition:all var(--transition-base)}.logout-btn{background-color:var(--color-bg-primary);border:1px solid var(--color-border-medium);border-radius:var(--radius-xl);color:var(--color-text-primary);cursor:pointer;font-size:var(--font-size-sm);gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md)}.logout-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.user-avatar{background-color:var(--color-primary);height:32px;width:32px}.user-info{align-items:flex-start;display:flex;flex-direction:column}.user-name{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.user-name,.user-role{line-height:var(--line-height-tight)}@media (max-width:599px){.topbar{height:64px;padding:0 var(--spacing-md)}.topbar-title{font-size:var(--font-size-lg)}.topbar-user{padding:var(--spacing-xs) var(--spacing-sm)}.logout-btn{min-width:40px;padding:var(--spacing-xs)}}.right-sidebar{display:none}.sidebar-section{margin-bottom:var(--spacing-2xl)}.sidebar-section-title{color:var(--color-text-tertiary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:.05em;margin-bottom:var(--spacing-base);text-transform:uppercase}.user-info-card{background:var(--color-neutral-50);border-radius:var(--radius-lg);margin-bottom:var(--spacing-md);padding:var(--spacing-md)}.user-avatar,.user-info-card{align-items:center;display:flex}.user-avatar{background:var(--color-accent);border-radius:var(--radius-full);color:var(--color-text-inverse);font-weight:var(--font-weight-bold);height:40px;justify-content:center;margin-right:var(--spacing-md);width:40px}.user-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.user-role{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.review-card-new{background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-sizing:border-box;cursor:pointer;padding:var(--spacing-base);position:relative;text-align:left;transition:all var(--transition-base);width:100%;z-index:var(--z-index-base)}.review-card-new:hover{background-color:var(--color-neutral-50);border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.review-card-new:active{transform:translateY(0)}.review-card-new-content{align-items:center;display:flex;gap:var(--spacing-md)}.review-card-new-icon{align-items:center;background-color:var(--color-warning-light);border-radius:var(--radius-md);color:var(--color-warning-dark);display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.review-card-new-text{display:flex;flex:1 1;flex-direction:column;gap:var(--spacing-xs);min-width:0}.review-card-new-label{color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.review-card-new-desc{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.review-card-new-badge{background-color:var(--color-error);flex-shrink:0;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);height:24px;min-width:24px;padding:0 var(--spacing-xs)}.review-card-new-badge,.right-sidebar-float-btn{align-items:center;border-radius:var(--radius-full);color:var(--color-text-inverse);display:flex;justify-content:center}.right-sidebar-float-btn{background:var(--color-primary);border:none;bottom:var(--spacing-xl);box-shadow:var(--shadow-xl);cursor:pointer;height:56px;position:fixed;right:var(--spacing-xl);transition:all var(--transition-base);width:56px;z-index:var(--z-index-fixed)}.right-sidebar-float-btn:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-2xl);transform:scale(1.05)}.right-sidebar-float-btn:active{transform:scale(.95)}.float-btn-badge{align-items:center;background:var(--color-error);border:2px solid var(--color-bg-primary);border-radius:var(--radius-full);color:var(--color-text-inverse);display:flex;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);height:20px;justify-content:center;min-width:20px;padding:0 var(--spacing-xs);position:absolute;right:-2px;top:-2px}.right-sidebar-overlay{animation:fadeIn var(--transition-base);background-color:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:var(--z-index-modal-backdrop)}.right-sidebar-modal{animation:slideInRight var(--transition-base);background-color:var(--color-bg-primary);box-shadow:var(--shadow-2xl);display:flex;flex-direction:column;position:fixed;z-index:var(--z-index-modal)}.right-sidebar-modal-desktop{border-radius:var(--radius-xl);max-height:80vh;max-width:calc(100vw - var(--spacing-xl)*2);overflow:hidden;right:var(--spacing-xl);top:50%;transform:translateY(-50%);width:360px}.right-sidebar-modal-mobile{border-radius:0;bottom:0;max-width:85vw;right:0;top:0;width:320px}.right-sidebar-modal-header{align-items:center;border-bottom:1px solid var(--color-border-light);display:flex;justify-content:space-between;padding:var(--spacing-base) var(--spacing-xl)}.right-sidebar-modal-header h3{color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.right-sidebar-modal-close{align-items:center;background-color:initial;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;display:flex;height:32px;justify-content:center;transition:all var(--transition-base);width:32px}.right-sidebar-modal-close:hover{background-color:var(--color-neutral-100);color:var(--color-text-primary)}.right-sidebar-modal-content{flex:1 1;min-height:0;overflow-y:auto;padding:var(--spacing-xl)}.right-sidebar-modal-desktop .right-sidebar-modal-content{padding:var(--spacing-lg)}.right-sidebar-modal-desktop{animation:slideInRightDesktop var(--transition-base)}@keyframes slideInRightDesktop{0%{opacity:0;transform:translateX(100%) translateY(-50%)}to{opacity:1;transform:translateX(0) translateY(-50%)}}.right-sidebar-modal-mobile{animation:slideInRightMobile var(--transition-base)}@keyframes slideInRightMobile{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.home-page{height:100%;width:100%}.page-title{color:var(--color-text-primary);font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-2xl);text-align:center}.admin-only-hint{background-color:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-lg);color:var(--color-warning-dark);font-size:var(--font-size-base);margin-bottom:var(--spacing-xl);padding:var(--spacing-md) var(--spacing-base);text-align:center}.form-section{display:flex;flex-direction:column;gap:var(--spacing-xl)}.form-group{gap:var(--spacing-md)}.form-label{color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}.form-label-row{align-items:center;display:flex;gap:var(--spacing-md);justify-content:space-between}.form-actions{align-items:center;gap:8px}.view-only-note{color:var(--color-text-secondary)}.save-data-btn,.view-only-note{font-size:var(--font-size-base)}.save-data-btn{align-items:center;background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);color:var(--color-text-primary);cursor:pointer;display:flex;font-weight:var(--font-weight-medium);gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-base);transition:all var(--transition-base)}.save-data-btn:hover{background-color:var(--color-neutral-100);border-color:var(--color-primary);box-shadow:var(--shadow-sm);color:var(--color-primary)}.save-data-btn:active{background-color:var(--color-neutral-200);transform:translateY(0)}.edit-params-btn{align-items:center;background-color:var(--color-neutral-100);border:1px solid var(--color-border-light);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;display:flex;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-base);transition:all var(--transition-base)}.edit-params-btn:hover{background-color:var(--color-neutral-200);border-color:var(--color-primary)}.edit-params-btn.active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverse)}.add-indicator-btn{align-items:center;background-color:#f0f9ff;border:1px dashed #bae6fd;border-radius:8px;color:#0369a1;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;margin-bottom:12px;padding:10px 16px;transition:all .2s ease;width:-webkit-fit-content;width:fit-content}.add-indicator-btn:hover{background-color:#e0f2fe;border-color:#0369a1}.form-input{background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-base);padding:var(--spacing-md) var(--spacing-base);transition:all var(--transition-base);width:100%}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0000001a;outline:none}.location-input-wrapper{position:relative}.location-input{padding-right:120px}.location-input.has-error{border-color:#ef4444}.location-loading{color:#94a3b8;font-size:12px;position:absolute;right:16px;top:50%;transform:translateY(-50%)}.location-dropdown{background-color:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 18px 45px #0f172a26;left:0;max-height:260px;overflow-y:auto;position:absolute;right:0;top:calc(100% + 6px);z-index:40}.location-option{align-items:flex-start;background:#0000;border:none;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:12px 16px;text-align:left;transition:background-color .15s ease;width:100%}.location-option:hover{background-color:#f5f8ff}.location-option-name{color:#0f172a;font-weight:600}.location-option-path{color:#6b7280;font-size:12px}.location-dropdown-empty{color:#6b7280;font-size:13px;padding:14px 16px}.location-error{color:#ef4444;font-size:12px;margin-top:6px}.file-upload-area{width:100%}.file-upload-label{align-items:center;background-color:#fafafa;border:2px dashed #e0e0e0;border-radius:12px;color:#666;cursor:pointer;display:flex;flex-direction:column;gap:12px;justify-content:center;padding:48px 24px;transition:all .2s ease}.file-upload-label:hover{background-color:#f5f5f5;border-color:#333;color:#333}.uploaded-files-list{background-color:#fafafa;border:1px solid #e0e0e0;border-radius:12px;margin-top:16px;padding:16px}.files-list-title{color:#333;font-size:14px;font-weight:600;margin-bottom:12px}.file-item{align-items:center!important;background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;box-sizing:border-box;display:flex!important;justify-content:space-between!important;margin-bottom:8px;padding:10px 12px;position:relative;transition:all .2s ease;width:100%}.file-item:hover{border-color:#333}.file-item.success{background-color:#f0fdf4;border-color:#10b981}.file-item.error{background-color:#fef2f2;border-color:#ef4444}.file-info{align-items:center;align-self:stretch;display:flex;flex:1 1;gap:12px}.file-name{color:#333;font-size:15px;font-weight:500}.file-size{color:#666;font-size:12px}.file-remove-btn{align-items:center!important;align-self:center!important;background-color:#f5f5f5!important;border:none!important;border-radius:50%!important;color:#666!important;cursor:pointer!important;display:flex!important;flex-shrink:0!important;font-size:18px!important;height:28px!important;justify-content:center!important;line-height:1!important;margin:0 0 0 8px!important;min-height:28px!important;min-width:28px!important;opacity:1!important;padding:0!important;position:relative!important;transition:all .2s ease!important;visibility:visible!important;width:28px!important;z-index:10!important}.file-remove-btn:hover{background-color:#e0e0e0!important;color:#333!important;transform:scale(1.1)!important}.file-remove-btn:active{background-color:#fef2f2!important;color:#ef4444!important;transform:scale(.95)!important}.file-remove-btn svg{display:block!important;height:16px!important;width:16px!important}.extract-files-btn{align-items:center;background-color:#333;border:none;border-radius:12px;box-shadow:0 2px 8px #00000026;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;margin-top:12px;padding:12px 24px;transition:all .2s ease;width:100%}.extract-files-btn:hover:not(:disabled){background-color:#444;box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.extract-files-btn:disabled{cursor:not-allowed;opacity:.6}.file-process-progress{animation:pulse 2s ease-in-out infinite;background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;color:#0369a1;font-size:14px;margin-top:12px;padding:12px 16px;text-align:center}.progress-text{font-weight:500;margin-bottom:8px}.progress-bar-container{background-color:#e0f2fe;border-radius:4px;height:8px;margin-top:8px;overflow:hidden;width:100%}.progress-bar{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0ea5e9,#3b82f6 50%,#6366f1);height:100%;transition:width .3s ease}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.indicators-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.indicator-item{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000000d;display:flex;flex-direction:column;gap:8px;padding:12px;position:relative;transition:all .2s ease}.indicator-item:hover{border-color:#d1d5db;box-shadow:0 2px 6px #00000014}.indicator-item.edit-mode{border-color:#667eea;border-width:2px;box-shadow:0 0 0 3px #667eea1a}.indicator-header{align-items:center;display:flex;flex-direction:row;gap:8px;justify-content:space-between;min-height:20px}.indicator-label{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#111;cursor:default;display:-webkit-box;flex:1 1;font-size:13px;font-weight:600;line-height:1.4;overflow:hidden;text-align:left;text-overflow:ellipsis}.indicator-item.edit-mode .indicator-label{cursor:pointer}.indicator-item.edit-mode .indicator-label:hover{color:#667eea;text-decoration:underline}.indicator-input-group{display:flex;flex-direction:column;gap:4px;padding-bottom:20px;position:relative}.indicator-input-wrapper{position:relative;width:100%}.indicator-input{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;color:#1f2937;font-size:13px;padding:8px 50px 8px 10px;transition:all .2s ease;width:100%}.indicator-input:focus{background-color:#fff;border-color:#111;box-shadow:0 0 0 2px #0000000d;outline:none}.indicator-input:disabled{background-color:#f3f4f6;color:#9ca3af;cursor:not-allowed}.indicator-unit-display{color:#6b7280;font-size:11px;font-weight:500;pointer-events:none;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.indicator-source{background-color:#00000008;border-radius:4px;bottom:-18px;font-size:10px;font-weight:500;padding:2px 6px;position:absolute;right:0;white-space:nowrap}.indicator-source-manual{background-color:#f3f4f6;color:#6b7280}.indicator-source-local{background-color:#dbeafe;color:#2563eb}.indicator-source-file{background-color:#e5e7eb;color:#4b5563}.indicator-source-ai{background-color:#fef3c7;color:#d97706}.indicator-edit-buttons{align-items:center;display:flex;flex-shrink:0;gap:4px}.delete-indicator-btn,.edit-indicator-btn{align-items:center;background-color:initial;border:1px solid #e0e0e0;border-radius:4px;color:#666;cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;padding:0;transition:all .2s ease;width:20px}.edit-indicator-btn:hover{background-color:#f0f9ff;border-color:#667eea;color:#667eea}.delete-indicator-btn:hover{background-color:#fef2f2;border-color:#ef4444;color:#ef4444}.indicator-edit-group{display:flex;flex-direction:column;gap:4px;position:relative;width:100%;z-index:10}.indicator-name-edit,.indicator-unit-edit{background-color:#fff;border:1px solid #667eea;border-radius:4px;color:#333;font-size:12px;padding:5px 8px;position:relative;transition:all .2s ease;width:100%;z-index:1}.indicator-name-edit:focus,.indicator-unit-edit:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a;outline:none;z-index:2}.indicator-name-edit{font-weight:500}.indicator-unit-edit{font-size:11px}.indicator-unit-edit:focus{z-index:2}.mobile-indicators-toggle{margin:var(--spacing-base) 0}.mobile-view-indicators-btn{align-items:center;background:var(--color-primary);border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);color:var(--color-text-inverse);cursor:pointer;display:flex;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);gap:var(--spacing-sm);justify-content:center;padding:var(--spacing-base) var(--spacing-xl);transition:all var(--transition-base);width:100%}.mobile-view-indicators-btn:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.mobile-view-indicators-btn:active{transform:translateY(0)}.indicators-modal-overlay{align-items:center;animation:fadeIn var(--transition-base);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:var(--spacing-md);position:fixed;right:0;top:0;z-index:var(--z-index-modal-backdrop)}.indicators-modal-panel{background-color:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);display:flex;flex-direction:column;max-height:90vh;max-width:100%;overflow:hidden;width:100%}.indicators-modal-header{align-items:center;border-bottom:1px solid var(--color-border-light);display:flex;flex-shrink:0;justify-content:space-between;padding:var(--spacing-base) var(--spacing-xl)}.indicators-modal-header h3{color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.indicators-modal-close{align-items:center;background-color:initial;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;display:flex;height:32px;justify-content:center;transition:all var(--transition-base);width:32px}.indicators-modal-close:hover{background-color:var(--color-neutral-100);color:var(--color-text-primary)}.indicators-modal-content{flex:1 1;overflow-y:auto;padding:var(--spacing-base)}.indicators-grid-modal{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:1fr}@media (max-width:599px){.indicators-grid{gap:var(--spacing-sm);grid-template-columns:1fr}.indicator-item{padding:var(--spacing-md)}.page-title{font-size:var(--font-size-xl);margin-bottom:var(--spacing-xl)}.form-section{gap:var(--spacing-lg)}.indicators-grid.hide-mobile{display:none}}@media (min-width:1400px){.indicators-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}.ai-fill-btn{align-items:center;background-color:#333;border:none;border-radius:12px;box-shadow:0 2px 8px #00000026;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:500;gap:8px;justify-content:center;padding:14px 24px;transition:all .2s ease}.ai-fill-btn:hover:not(:disabled){background-color:#444;box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.ai-fill-btn:disabled{cursor:not-allowed;opacity:.6}.ai-fill-btn.loading{opacity:.8}.formula-section{display:flex;flex-direction:column;gap:12px}.formula-input{background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;color:#333;padding:12px 16px;transition:all .2s ease}.formula-input:focus{border-color:#333;box-shadow:0 0 0 3px #0000001a}.calculate-btn{align-items:center;align-self:flex-start;background-color:#333;border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:12px 24px;transition:all .2s ease}.calculate-btn:hover{background-color:#444;box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.action-buttons-row{align-items:center;display:flex;gap:12px}.export-data-btn{align-items:center;background-color:#10b981;border:none;border-radius:8px;box-shadow:0 2px 4px #10b98133;color:#fff;cursor:pointer;display:flex;font-size:15px;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s ease}.export-data-btn:hover:not(:disabled){background-color:#059669;box-shadow:0 4px 8px #10b9814d;transform:translateY(-1px)}.export-data-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.analysis-btn{align-items:center;background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:500;gap:8px;justify-content:center;padding:14px 28px;transition:all .2s ease;width:100%}.analysis-btn:hover:not(:disabled){background:#1d4ed8;box-shadow:0 4px 8px #2563eb4d;transform:translateY(-1px)}.analysis-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.calculation-result{background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:12px;margin-top:16px;padding:16px}.result-title{color:#333;font-size:14px;font-weight:600;margin-bottom:8px}.result-item{align-items:center;display:flex;font-size:14px;gap:8px;padding:8px 0}.result-key{color:#666;font-weight:500}.result-value{color:#333;font-family:Courier New,monospace;font-weight:600}.calculation-error{background-color:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#dc2626;font-size:14px;margin-top:16px;padding:12px 16px}.save-status{background-color:#f0fdf4;border-radius:4px;color:#10b981;font-size:12px;font-weight:500;padding:4px 8px}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a8c;inset:0;padding:24px}.modal-panel{background:#0f172a;border:1px solid #ffffff14;border-radius:20px;box-shadow:0 30px 80px #02061773;color:#e2e8f0;display:flex;flex-direction:column;max-height:90vh;width:min(640px,100%)}.modal-header{border-bottom:1px solid #ffffff0f;padding:20px 24px 12px}.modal-title{font-size:18px;font-weight:600}.modal-subtitle{color:#94a3b8;font-size:13px;margin-top:4px}.modal-close-btn{background:#ffffff0d;border-radius:999px;color:#cbd5f5;transition:background .2s ease}.modal-close-btn:hover{background:#ffffff1f}.modal-body{max-height:60vh;overflow-y:auto;padding:20px 24px}.modal-actions{border-top:1px solid #ffffff0f;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px 24px}.modal-primary-btn,.modal-secondary-btn{border:none;border-radius:12px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background .2s ease}.modal-primary-btn{background:#f97316;color:#0f172a}.modal-secondary-btn{background:#ffffff14;color:#e2e8f0}.modal-primary-btn:hover{background:#fb923c}.modal-secondary-btn:hover{background:#ffffff26}.modal-empty{color:#94a3b8;padding:24px;text-align:center}.conflict-modal{background:#111827}.conflict-options{display:flex;flex-direction:column;gap:12px}.radio-option{background:#0f172a66;border:1px solid #ffffff14;border-radius:12px;cursor:pointer;display:flex;gap:12px;padding:12px}.radio-option input{margin-top:3px}.option-title{color:#f8fafc;font-size:14px;font-weight:600}.option-detail{color:#94a3b8;font-size:12px}.conflict-region-note{color:#cbd5f5;font-size:12px;margin-top:12px}.fill-buttons-group{grid-gap:12px;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:20px;padding:16px}.fill-btn{align-items:center;border:none;border-radius:10px;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;min-height:44px;padding:12px 20px;transition:all .2s cubic-bezier(.4,0,.2,1)}.fill-btn:hover:not(:disabled){box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.fill-btn:active:not(:disabled){box-shadow:0 1px 2px #0000001a;transform:translateY(0)}.fill-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.local-data-btn{background:linear-gradient(135deg,#3b82f6,#2563eb)}.local-data-btn:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8)}.upload-file-btn{background:linear-gradient(135deg,#10b981,#059669)}.upload-file-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857)}.fill-btn.ai-fill-btn{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.fill-btn.ai-fill-btn:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9)}.one-click-fill-btn{background:linear-gradient(135deg,#f59e0b,#d97706)}.one-click-fill-btn:hover:not(:disabled){background:linear-gradient(135deg,#d97706,#b45309)}@media (max-width:768px){.fill-buttons-group{grid-template-columns:1fr}}.data-management{height:100%;padding:24px;width:100%}.page-title{margin-bottom:24px}.data-management-content{display:flex;flex-direction:column;gap:24px}.search-section{width:100%}.search-box{background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 4px #0000000d;gap:12px;padding:12px 16px}.search-box svg{color:#666}.search-input{color:#333}.search-btn{background-color:#333;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.search-btn:hover{background-color:#444}.regions-list{flex:1 1;overflow-y:auto}.regions-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.region-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:20px;transition:all .2s ease}.region-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.region-header{border-bottom:1px solid #f0f0f0;margin-bottom:16px;padding-bottom:12px}.region-name{color:#333;font-size:18px;font-weight:600;margin:0 0 8px}.region-meta{display:flex;flex-wrap:wrap;gap:12px}.meta-item{background-color:#f5f5f5;border-radius:4px;color:#666;font-size:12px;padding:4px 8px}.region-info{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.info-item{align-items:center;display:flex;justify-content:space-between}.info-value{color:#333}.region-actions{display:flex;gap:8px}.action-btn{flex:1 1;padding:8px 16px}.view-btn{background-color:#f0f9ff;border:1px solid #bae6fd;color:#0369a1}.view-btn:hover{background-color:#e0f2fe;border-color:#0369a1}.delete-btn{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626}.delete-btn:hover{background-color:#fee2e2;border-color:#dc2626}.detail-modal{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:24px;position:fixed;right:0;top:0;z-index:2000}.detail-content{background-color:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:900px;width:100%}.detail-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px 24px}.detail-header h3{color:#333;font-size:20px;font-weight:600;margin:0}.close-btn{background-color:initial;border-radius:4px;font-size:24px;height:32px;transition:all .2s ease;width:32px}.close-btn:hover{background-color:#f5f5f5}.detail-body{flex:1 1;overflow-y:auto;padding:24px}.detail-section{margin-bottom:32px}.detail-section:last-child{margin-bottom:0}.detail-section h4{border-bottom:2px solid #f0f0f0;color:#333;font-size:16px;font-weight:600;margin:0 0 16px;padding-bottom:8px}.detail-info{display:flex;flex-direction:column;gap:12px}.detail-item{align-items:center;display:flex;gap:12px}.detail-label{color:#666;font-size:14px;min-width:100px}.detail-value{color:#333;font-size:14px;font-weight:500}.parameters-table{overflow-x:auto}.parameters-table table{border-collapse:collapse;width:100%}.parameters-table td,.parameters-table th{border-bottom:1px solid #f0f0f0;padding:12px;text-align:left}.parameters-table th{background-color:#fafafa;color:#333;font-size:14px;font-weight:600}.parameters-table td{color:#666;font-size:14px}.parameters-table tr:hover{background-color:#fafafa}.estimated-badge{background-color:#fef3c7;border-radius:4px;color:#92400e;display:inline-block;font-size:12px;margin-left:8px;padding:2px 6px}.no-data{color:#999;font-size:14px;padding:32px;text-align:center}.detail-footer{background:linear-gradient(180deg,#fff,#f9fafb);border-radius:0 0 16px 16px;border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.detail-footer .edit-btn{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);border:1.5px solid #e5e7eb;border-radius:10px;box-shadow:0 1px 2px #0000000d,0 0 0 0 #3b82f600;color:#1f2937;cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:14px;font-weight:600;gap:8px;justify-content:center;min-width:110px;overflow:hidden;padding:11px 24px;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1)}.detail-footer .edit-btn:before{background:linear-gradient(90deg,#0000,#fff6,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.detail-footer .edit-btn:hover:before{left:100%}.detail-footer .edit-btn:hover{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6;box-shadow:0 4px 12px #3b82f64d,0 2px 4px #0000001a;color:#fff;transform:translateY(-2px)}.detail-footer .edit-btn:active{box-shadow:0 2px 4px #3b82f633,0 1px 2px #0000001a;transform:translateY(0)}.detail-footer .edit-btn svg{flex-shrink:0;transition:transform .2s ease}.detail-footer .edit-btn:hover svg{transform:scale(1.1)}.detail-footer .delete-btn{align-items:center;background:linear-gradient(135deg,#fff,#fef2f2);border:1.5px solid #fecaca;border-radius:10px;box-shadow:0 1px 2px #dc26261a,0 0 0 0 #dc262600;color:#dc2626;cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:14px;font-weight:600;gap:8px;justify-content:center;min-width:110px;overflow:hidden;padding:11px 24px;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1)}.detail-footer .delete-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.detail-footer .delete-btn:hover:before{left:100%}.detail-footer .delete-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);border-color:#dc2626;box-shadow:0 4px 12px #dc262659,0 2px 4px #0000001a;color:#fff;transform:translateY(-2px)}.detail-footer .delete-btn:active{box-shadow:0 2px 4px #dc262640,0 1px 2px #0000001a;transform:translateY(0)}.detail-footer .delete-btn svg{flex-shrink:0;transition:transform .2s ease}.detail-footer .delete-btn:hover svg{transform:scale(1.1)}.server-file-management{display:flex;flex-direction:column;height:100%;padding:24px;width:100%}.file-management-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.header-actions{display:flex;gap:12px}.action-btn{gap:8px;min-width:-webkit-fit-content;min-width:fit-content;white-space:nowrap}.action-btn .btn-text{display:inline-block;opacity:1;visibility:visible}.upload-btn{background-color:#333!important;color:#fff!important}.upload-btn .btn-text{color:#fff!important;opacity:1!important;visibility:visible!important}.upload-btn:hover:not(:disabled){background-color:#444!important}.upload-btn:disabled{opacity:.5}.upload-btn:disabled .btn-text{color:#fff!important}.paste-btn{background-color:#0369a1;color:#fff}.paste-btn:hover:not(:disabled){background-color:#0284c7}.paste-btn:disabled{cursor:not-allowed;opacity:.5}.file-management-content{display:flex;flex:1 1;gap:24px;min-height:0}.region-tree-panel{background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;overflow-y:auto;padding:16px;width:300px}.region-tree-panel h3{color:#333;font-size:16px;font-weight:600;margin:0 0 16px}.tree-container{max-height:calc(100vh - 200px);overflow-y:auto;scroll-behavior:auto}.tree-container:focus-within{outline:none}.tree-item{-webkit-user-select:none;user-select:none}.tree-node{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:4px;min-height:32px;padding:8px 12px;transition:all .2s ease}.tree-node-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-children{overflow:visible}.tree-node:hover{background-color:#f5f5f5}.tree-node.expanded{background-color:#e0f2fe;color:#0369a1}.files-panel{background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;display:flex;flex:1 1;flex-direction:column;min-height:0;padding:16px}.path-navigation{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;gap:8px;margin-bottom:16px;padding-bottom:16px}.path-btn{background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;color:#333;cursor:pointer;font-size:14px;padding:6px 12px;transition:all .2s ease}.path-btn:hover:not(:disabled){background-color:#f5f5f5;border-color:#333}.path-btn:disabled{cursor:not-allowed;opacity:.5}.path-separator{color:#999}.toolbar{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:16px}.toolbar-left{display:flex;gap:8px}.toolbar-btn{align-items:center;background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;color:#333;cursor:pointer;display:flex;font-size:14px;gap:6px;padding:8px 16px;transition:all .2s ease}.toolbar-btn:hover:not(:disabled){background-color:#f5f5f5;border-color:#333}.toolbar-btn:disabled{cursor:not-allowed;opacity:.5}.toolbar-btn.delete-btn{border-color:#dc2626;color:#dc2626}.toolbar-btn.delete-btn:hover:not(:disabled){background-color:#fef2f2}.toolbar-right{color:#666;font-size:14px}.file-count{font-weight:500}.files-list{flex:1 1;min-height:0;overflow-y:auto}.files-list.drag-over{background-color:#e0f2fe;border:2px dashed #0369a1;border-radius:8px}.empty-state{padding:64px 24px}.empty-hint{color:#999;font-size:14px}.files-table{border-collapse:collapse;width:100%}.files-table thead{background-color:#fafafa;position:-webkit-sticky;position:sticky;top:0;z-index:10}.files-table th{border-bottom:2px solid #e0e0e0;color:#333;font-size:14px;font-weight:600;padding:12px;text-align:left}.files-table td{border-bottom:1px solid #f0f0f0;color:#666;font-size:14px;padding:12px}.files-table tbody tr{transition:all .2s ease}.files-table tbody tr:hover{background-color:#fafafa}.files-table tbody tr.selected{background-color:#e0f2fe}.file-actions{display:flex;gap:8px}.action-icon-btn{align-items:center;background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;color:#666;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.action-icon-btn:hover{background-color:#f5f5f5;border-color:#333;color:#333}.action-icon-btn.delete-btn{border-color:#fecaca;color:#dc2626}.action-icon-btn.delete-btn:hover{background-color:#fef2f2;border-color:#dc2626}.access-denied{color:#666;padding:64px 24px;text-align:center}.access-denied h2{font-size:24px;margin-bottom:16px}.upload-progress-modal{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.upload-progress-content{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;flex-direction:column;max-height:80vh;max-width:800px;padding:24px;width:90%}.upload-progress-header{align-items:center;border-bottom:1px solid #e8e8e8;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:12px}.upload-progress-header h3{font-size:18px;font-weight:600;margin:0}.close-btn{align-items:center;background:none;border:none;color:#666;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:color .2s}.close-btn:hover{color:#333}.upload-progress-bar{text-align:center}.upload-progress-bar p{margin:12px 0}.progress-bar{background-color:#f0f0f0;border-radius:4px;height:8px;margin:16px 0;overflow:hidden;width:100%}.progress-fill{background-color:#1890ff;height:100%;transition:width .3s ease}.upload-results{max-height:60vh;overflow-y:auto}.upload-summary{background-color:#f5f5f5;border-radius:4px;margin-bottom:16px;padding:12px}.upload-summary p{font-size:14px;margin:0}.upload-results-list{display:flex;flex-direction:column;gap:12px}.upload-result-item{background-color:#fafafa;border:1px solid #e8e8e8;border-radius:4px;padding:12px}.upload-result-item.success{border-left:4px solid #52c41a}.upload-result-item.failed{border-left:4px solid #ff4d4f}.result-header{gap:8px;margin-bottom:8px}.result-status{font-size:16px;font-weight:700}.upload-result-item.success .result-status{color:#52c41a}.upload-result-item.failed .result-status{color:#ff4d4f}.result-filename{flex:1 1;font-weight:500;word-break:break-all}.result-details{color:#666;font-size:13px;margin-top:8px;padding-left:24px}.result-region{margin-bottom:4px}.result-method{color:#1890ff;font-size:12px}.result-location{color:#999;font-size:12px}.result-error{color:#ff4d4f;font-size:13px;margin-top:8px;padding-left:24px}.upload-error{background-color:#fff2f0;border:1px solid #ffccc7;border-radius:4px;color:#ff4d4f;padding:16px}.registration-approval{margin:0 auto;max-width:1200px;padding:24px}.approval-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.page-title{color:#111;font-size:24px;margin:0}.refresh-btn{align-items:center;background-color:#333;border-radius:8px;display:flex;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s ease}.refresh-btn:hover:not(:disabled){background-color:#444;transform:translateY(-1px)}.spinning{animation:spin 1s linear infinite}.loading{font-size:16px;padding:48px}.empty-state{background-color:#f9fafb;border-radius:12px;color:#666;padding:48px}.registrations-list{display:flex;flex-direction:column;gap:16px}.registration-card{align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;padding:20px 24px;transition:all .2s ease}.registration-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.registration-info{display:flex;flex:1 1;flex-direction:column;gap:8px}.info-row{align-items:center;display:flex;gap:12px}.info-label{color:#666;min-width:80px}.info-label,.info-value{font-size:14px;font-weight:500}.info-value{color:#111}.registration-actions{display:flex;gap:12px;margin-left:24px}.action-btn{border:none;border-radius:8px;font-size:14px;font-weight:500;gap:6px;padding:10px 20px;transition:all .2s ease}.approve-btn{background-color:#10b981;color:#fff}.approve-btn:hover:not(:disabled){background-color:#059669;transform:translateY(-1px)}.reject-btn{background-color:#ef4444;color:#fff}.reject-btn:hover:not(:disabled){background-color:#dc2626;transform:translateY(-1px)}.action-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.registration-card{align-items:flex-start;flex-direction:column;gap:16px}.registration-actions{margin-left:0;width:100%}.action-btn{flex:1 1;justify-content:center}}.economic-data-import{height:100%;overflow-y:auto;padding:24px;width:100%}.import-header{margin-bottom:32px}.page-title{color:#333;font-size:28px;font-weight:600;margin-bottom:12px}.page-description{color:#666;font-size:14px;line-height:1.6}.economic-data-import.disabled{filter:grayscale(50%);opacity:.5;pointer-events:none}.economic-data-import.disabled .import-content{position:relative}.permission-hint{align-items:center;background-color:#fff3cd;border:1px solid #ffc107;border-radius:8px;color:#856404;display:flex;font-size:14px;gap:8px;margin-top:16px;padding:12px 16px}.permission-hint svg{flex-shrink:0}.import-content{display:flex;flex-direction:column;gap:32px}.upload-section{background-color:#fff;border:1px solid #e0e0e0;border-radius:16px;box-shadow:0 2px 8px #0000000d;padding:32px}.upload-form{gap:24px}.form-group,.upload-form{display:flex;flex-direction:column}.form-group{gap:8px}.province-select-wrapper{position:relative;width:100%}.province-input{background-color:#fff;border:1px solid #e0e0e0;border-radius:10px;color:#333;font-size:14px;padding:12px 16px;transition:all .2s ease;width:100%}.province-input:focus{border-color:#333;box-shadow:0 0 0 3px #0000001a;outline:none}.province-dropdown{background-color:#fff;border:1px solid #e0e0e0;border-radius:10px;box-shadow:0 4px 12px #0000001a;left:0;margin-top:4px;max-height:300px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.dropdown-loading{color:#999;font-size:14px;padding:12px 16px;text-align:center}.dropdown-option{color:#333;cursor:pointer;font-size:14px;padding:12px 16px;transition:background-color .2s ease}.dropdown-option:hover{background-color:#f5f5f5}.year-select{background-color:#fff;border:1px solid #e0e0e0;border-radius:10px;color:#333;cursor:pointer;font-size:14px;padding:12px 16px;transition:all .2s ease;width:100%}.year-select:focus{border-color:#333;box-shadow:0 0 0 3px #0000001a;outline:none}.import-hint{background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;color:#0369a1;font-size:13px;margin-top:16px;padding:16px}.import-hint p{font-weight:600;margin:0 0 8px}.import-hint ul{line-height:1.8;margin:0;padding-left:20px}.import-hint li{margin-bottom:4px}.file-input-wrapper{position:relative}.file-input{display:none}.file-input-label{align-items:center;background-color:#fafafa;border:2px dashed #d0d0d0;border-radius:10px;color:#666;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:16px;transition:all .2s ease}.file-input-label:hover{background-color:#f5f5f5;border-color:#333}.file-input-label svg{flex-shrink:0}.file-remove-btn{align-items:center;background-color:#f5f5f5;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:18px;height:24px;justify-content:center;position:absolute;right:8px;top:8px;transition:all .2s ease;width:24px}.file-remove-btn:hover{background-color:#e0e0e0;color:#333}.form-actions{display:flex;justify-content:flex-end;padding-top:8px}.import-btn{background-color:#333;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 32px;transition:all .2s ease}.import-btn:hover:not(:disabled){background-color:#444;box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.import-btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.import-result-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 4px 16px #00000014;overflow:hidden;padding:0;transition:all .3s ease}.import-result-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.import-result-card.success{border-left:4px solid #10b981}.import-result-card.partial{border-left:4px solid #f59e0b}.import-result-card.failed{border-left:4px solid #dc2626}.result-header{align-items:center;background:linear-gradient(135deg,#f9fafb,#fff);border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.result-header-left{align-items:center;display:flex;gap:12px}.result-header h3{color:#111827;font-size:18px;font-weight:600;margin:0}.result-header svg{flex-shrink:0;height:24px;width:24px}.import-result-card.success .result-header svg{color:#10b981}.import-result-card.partial .result-header svg{color:#f59e0b}.import-result-card.failed .result-header svg{color:#dc2626}.result-status-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:6px 12px;white-space:nowrap}.import-result-card.success .result-status-badge{background-color:#d1fae5;color:#065f46}.import-result-card.partial .result-status-badge{background-color:#fef3c7;color:#92400e}.import-result-card.failed .result-status-badge{background-color:#fee2e2;color:#991b1b}.result-content{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:24px}.result-stat-item{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;display:flex;flex-direction:column;gap:8px;padding:16px;transition:all .2s ease}.result-stat-item:hover{background-color:#f3f4f6;border-color:#d1d5db;transform:translateY(-1px)}.result-stat-label{color:#6b7280;font-size:13px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.result-stat-value{color:#111827;font-size:28px;font-weight:700;line-height:1.2}.result-stat-item.success .result-stat-value{color:#10b981}.result-stat-item.fail .result-stat-value{color:#dc2626}.result-info-section{border-top:1px solid #e5e7eb;display:flex;flex-direction:column;gap:12px;grid-column:1/-1;padding-top:16px}.result-info-item{align-items:center;display:flex;font-size:14px;gap:12px}.result-info-label{color:#6b7280;font-weight:500;min-width:80px}.result-info-value{color:#111827;font-weight:500}.import-history-section{background-color:#fff;border:1px solid #e0e0e0;border-radius:16px;box-shadow:0 2px 8px #0000000d;padding:24px}.section-title{font-size:20px;margin-bottom:20px}.history-table-wrapper{overflow-x:auto}.history-table{border-collapse:collapse;font-size:14px;width:100%}.history-table thead{background-color:#f5f5f5}.history-table th{border-bottom:2px solid #e0e0e0;color:#333;font-weight:600;padding:12px 16px;text-align:left;white-space:nowrap}.history-table td{border-bottom:1px solid #f0f0f0;color:#666;padding:12px 16px}.history-table tbody tr:hover{background-color:#fafafa}.file-name-cell{align-items:center;display:flex;gap:8px}.file-name-cell svg{color:#666;flex-shrink:0}.status-badge{border-radius:12px;padding:4px 12px;white-space:nowrap}.status-badge.status-success{background-color:#d1fae5;color:#065f46}.status-badge.status-partial{background-color:#fef3c7;color:#92400e}.status-badge.status-failed{background-color:#fee2e2;color:#991b1b}.status-badge.status-rolled_back{background-color:#e5e7eb;color:#374151}.rollback-btn{align-items:center;background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:4px;padding:6px 12px;transition:all .2s ease}.rollback-btn:hover:not(:disabled){background-color:#fee2e2;border-color:#dc2626}.rollback-btn:disabled{cursor:not-allowed;opacity:.6}.rollback-btn svg{flex-shrink:0}.no-action{color:#999;font-size:12px}.empty-state,.loading{font-size:14px}.fail-count{align-items:center;color:#dc2626;display:inline-flex;font-weight:500;gap:4px}.error-hint{color:#f59e0b;cursor:help}.action-buttons{flex-wrap:wrap}.preview-btn{align-items:center;background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;color:#2563eb;cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:4px;padding:6px 12px;transition:all .2s ease}.preview-btn:hover:not(:disabled){background-color:#dbeafe;border-color:#2563eb}.preview-btn:disabled{cursor:not-allowed;opacity:.6}.preview-btn svg{flex-shrink:0}.preview-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:24px;z-index:10000}.preview-modal{background-color:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:1200px}.preview-modal-header h3{color:#333;font-size:18px;font-weight:600;margin:0}.preview-modal-close{background-color:initial;font-size:24px;height:32px;transition:all .2s ease;width:32px}.preview-modal-close:hover{background-color:#f5f5f5}.preview-empty,.preview-loading{font-size:14px;padding:40px;text-align:center}.preview-empty{color:#999}.preview-regions{display:flex;flex-direction:column;gap:20px}.preview-region-card{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:20px;transition:all .2s ease}.preview-region-card:hover{border-color:#d1d5db;box-shadow:0 2px 8px #00000014}.preview-region-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.preview-region-header h4{color:#111827;font-size:16px;font-weight:600;margin:0}.preview-region-year{background-color:#e5e7eb;border-radius:4px;color:#6b7280;font-size:12px;padding:4px 8px}.preview-parameters{margin-top:12px}.preview-parameters-table{border-collapse:collapse;font-size:13px;width:100%}.preview-parameters-table thead{background-color:#fff}.preview-parameters-table th{border-bottom:2px solid #e5e7eb;color:#374151;font-size:12px;font-weight:600;padding:10px 12px;text-align:left}.preview-parameters-table td{border-bottom:1px solid #f3f4f6;color:#6b7280;padding:10px 12px}.preview-parameters-table tbody tr:hover{background-color:#fff}.preview-no-params{color:#9ca3af;font-size:13px;padding:20px;text-align:center}.preview-more-params{background-color:#f3f4f6;border-radius:6px;color:#6b7280;font-size:12px;margin-top:12px;padding:8px 12px;text-align:center}.rollback-confirm-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:24px;position:fixed;right:0;top:0;z-index:10001}.rollback-confirm-modal{background-color:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-width:500px;width:100%}.rollback-confirm-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;gap:12px;padding:20px 24px}.rollback-confirm-icon{color:#f59e0b;flex-shrink:0}.rollback-confirm-header h3{color:#333;font-size:18px;font-weight:600;margin:0}.rollback-confirm-body{display:flex;flex-direction:column;gap:16px;padding:24px}.rollback-confirm-message{color:#333;font-size:14px;line-height:1.6;margin:0}.rollback-confirm-message strong{color:#111827;font-weight:600}.rollback-confirm-warning{color:#666;font-size:14px;font-weight:500;margin:0}.rollback-confirm-details{display:flex;flex-direction:column;gap:8px;margin:0;padding-left:20px}.rollback-confirm-details li{color:#666;font-size:14px;line-height:1.5}.rollback-confirm-note{background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:13px;margin:0;padding:12px 16px}.rollback-confirm-footer{background:linear-gradient(180deg,#fff,#f9fafb);border-radius:0 0 16px 16px;border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.rollback-confirm-cancel{align-items:center;background-color:#fff;border:1px solid #e0e0e0;border-radius:10px;box-shadow:0 1px 3px #00000014;color:#333;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;min-width:100px;padding:10px 24px;transition:all .2s cubic-bezier(.4,0,.2,1)}.rollback-confirm-cancel:hover:not(:disabled){background-color:#f5f5f5;border-color:#333;box-shadow:0 2px 6px #0000001f;transform:translateY(-1px)}.rollback-confirm-cancel:active:not(:disabled){box-shadow:0 1px 2px #0000001a;transform:translateY(0)}.rollback-confirm-cancel:disabled{cursor:not-allowed;opacity:.6}.rollback-confirm-submit{align-items:center;background-color:#dc2626;border:1px solid #dc2626;border-radius:10px;box-shadow:0 1px 3px #dc26264d;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;min-width:100px;padding:10px 24px;transition:all .2s cubic-bezier(.4,0,.2,1)}.rollback-confirm-submit:hover:not(:disabled){background-color:#b91c1c;border-color:#b91c1c;box-shadow:0 2px 6px #dc262666;transform:translateY(-1px)}.rollback-confirm-submit:active:not(:disabled){box-shadow:0 1px 2px #dc26264d;transform:translateY(0)}.rollback-confirm-submit:disabled{cursor:not-allowed;opacity:.6}.report-template-management{margin:0 auto;max-width:1400px;padding:24px}.management-content{display:flex;flex-direction:column;gap:32px}.error-message{white-space:pre-line}.failed-files-details{background:#fff5f5;border:1px solid #fecaca;border-radius:8px;margin-top:16px;padding:20px}.failed-files-header{border-bottom:2px solid #fecaca;color:#991b1b;font-size:16px;font-weight:600;margin-bottom:16px;padding-bottom:8px}.failed-file-item{background:#fff;border:1px solid #fecaca;border-radius:8px;margin-bottom:20px;padding:16px}.failed-file-item:last-child{margin-bottom:0}.failed-file-name{color:#991b1b;font-size:15px;font-weight:600;margin-bottom:8px}.failed-file-error{color:#dc2626;font-size:14px;margin-bottom:12px}.failed-file-errors{border-top:1px solid #fecaca;margin-top:12px;padding-top:12px}.errors-header{color:#991b1b;font-size:14px;font-weight:600;margin-bottom:12px}.error-detail-item{background:#fef2f2;border-left:3px solid #dc2626;border-radius:4px;margin-bottom:16px;padding:12px}.error-detail-item:last-child{margin-bottom:0}.error-friendly-message{color:#991b1b;font-size:14px;line-height:1.6;margin-bottom:8px}.error-raw-info{background:#fff;border-radius:4px;color:#7f1d1d;font-size:13px;margin-top:8px;padding:8px}.error-raw-info code{background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;color:#1f2937;display:block;font-family:Courier New,monospace;font-size:12px;margin-top:4px;padding:6px 8px;white-space:pre-wrap;word-break:break-all}.failed-file-message{background:#fef2f2;border-radius:4px;color:#991b1b;font-size:14px;line-height:1.6;margin-top:8px;padding:8px}.section-title{align-items:center;display:flex;gap:8px}.placeholder-management-section,.template-upload-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:24px}.upload-area{gap:16px;margin-bottom:24px}.upload-area,.upload-btn{align-items:center;display:flex}.upload-btn{background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s}.upload-btn:hover:not(:disabled){background:#1d4ed8;box-shadow:0 2px 4px #2563eb4d;transform:translateY(-1px)}.upload-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.upload-hint{color:#666;font-size:14px}.templates-list{display:flex;flex-direction:column;gap:12px}.template-item{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;display:flex;gap:16px;justify-content:space-between;min-height:80px;padding:16px;transition:all .2s}.template-item.active{background:#eff6ff;border-color:#2563eb}.template-info{flex:1 1;min-width:0;overflow:hidden}.template-name{align-items:center;color:#333;display:flex;font-size:16px;font-weight:600;gap:8px;margin-bottom:8px;overflow-wrap:break-word;word-break:break-word}.active-badge{background:#10b981;border-radius:4px;color:#fff;font-size:12px;font-weight:500;padding:2px 8px}.template-meta{color:#666;display:flex;font-size:12px;gap:16px}.template-actions{flex-shrink:0;gap:8px}.action-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s;width:36px}.preview-btn:hover{background:#f3f4f6;border-color:#9ca3af}.set-active-btn{border-color:#10b981;color:#10b981}.set-active-btn:hover{background:#10b981;color:#fff}.delete-btn{border-color:#ef4444;color:#ef4444}.delete-btn:hover{background:#ef4444;color:#fff}.placeholder-management-section{margin-top:24px}.standardize-btn{align-items:center;background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;margin-left:auto;padding:8px 16px;transition:all .2s}.standardize-btn:hover:not(:disabled){background:#059669;transform:translateY(-1px)}.standardize-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.placeholder-list{display:flex;flex-direction:column;gap:16px}.placeholder-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.placeholder-name{background:#fff;border-radius:4px;color:#333;font-size:14px;font-weight:600;margin-bottom:12px;padding:8px}.placeholder-mapping{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px}.mapping-input-group{display:flex;flex:1 1;flex-direction:column;gap:4px}.mapping-input-group label{color:#666;font-size:12px;font-weight:500}.input-with-suggestions{position:relative}.calculation-formula-input,.parameter-input,.replace-type-select,.static-value-input,.unit-input{border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:8px 12px;width:100%}.replace-type-select{cursor:pointer}.calculation-formula-input:focus,.parameter-input:focus,.replace-type-select:focus,.static-value-input:focus,.unit-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.suggestions-dropdown{background:#fff;border:1px solid #d1d5db;border-radius:6px;box-shadow:0 4px 12px #00000026;left:0;margin-top:4px;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.suggestion-item{align-items:center;display:flex;justify-content:space-between}.suggestion-item:hover{background-color:#eff6ff;color:#2563eb}.suggestion-item.system-placeholder{background:#f0f9ff}.suggestion-item.system-placeholder:hover{background:#e0f2fe}.system-badge{border-radius:4px;font-size:11px;margin-left:8px;padding:2px 6px}.save-mapping-btn,.system-badge{background:#2563eb;color:#fff;font-weight:500}.save-mapping-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;padding:8px 20px;transition:all .2s;white-space:nowrap}.save-mapping-btn:hover{background:#1d4ed8;transform:translateY(-1px)}.user-management{padding:20px}.user-management-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.user-management-header h2{align-items:center;color:#333;display:flex;font-size:24px;gap:10px;margin:0}.refresh-btn{background-color:#2563eb;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .2s}.refresh-btn:hover:not(:disabled){background-color:#1d4ed8}.refresh-btn:disabled{cursor:not-allowed;opacity:.6}.error-message{background-color:#fee2e2;border-radius:4px;padding:12px}.success-message{background-color:#d1fae5;border-radius:4px;padding:12px}.loading-message{color:#666;padding:40px;text-align:center}.users-table-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.users-table{border-collapse:collapse;width:100%}.users-table thead{background-color:#f9fafb}.users-table th{border-bottom:2px solid #e5e7eb;color:#374151;font-weight:600;padding:12px;text-align:left}.users-table td{border-bottom:1px solid #e5e7eb;padding:12px}.users-table tbody tr:hover{background-color:#f9fafb}.empty-message{color:#9ca3af;padding:40px!important;text-align:center}.display-name-cell{align-items:center;display:flex;gap:8px}.edit-icon-btn{align-items:center;background:none;border:none;color:#6b7280;cursor:pointer;display:flex;opacity:0;padding:4px;transition:opacity .2s}.display-name-cell:hover .edit-icon-btn{opacity:1}.edit-icon-btn:hover{color:#2563eb}.edit-display-name{align-items:center;display:flex;gap:4px}.edit-display-name input{border:1px solid #d1d5db;border-radius:4px;font-size:14px;padding:4px 8px;width:150px}.edit-display-name .cancel-btn,.edit-display-name .save-btn{align-items:center;border:none;border-radius:4px;cursor:pointer;display:flex;font-size:12px;padding:4px 8px}.edit-display-name .save-btn{background-color:#10b981;color:#fff}.edit-display-name .save-btn:hover{background-color:#059669}.edit-display-name .cancel-btn{background-color:#ef4444;color:#fff}.edit-display-name .cancel-btn:hover{background-color:#dc2626}.role-badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px}.role-admin{background-color:#fef3c7;color:#92400e}.role-user{background-color:#e0e7ff;color:#3730a3}.status-badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px}.status-pending{background-color:#fef3c7;color:#92400e}.status-active{background-color:#d1fae5;color:#059669}.status-rejected{background-color:#fee2e2;color:#dc2626}.status-unknown{background-color:#f3f4f6;color:#6b7280}.delete-btn,.reset-password-btn,.toggle-admin-btn{align-items:center;border:none;border-radius:4px;cursor:pointer;display:flex;font-size:13px;gap:4px;padding:6px 12px;transition:all .2s}.reset-password-btn{background-color:#8b5cf6;color:#fff}.reset-password-btn:hover{background-color:#7c3aed}.toggle-admin-btn{background-color:#3b82f6;color:#fff}.toggle-admin-btn:hover:not(:disabled){background-color:#2563eb}.toggle-admin-btn.is-admin{background-color:#f59e0b}.toggle-admin-btn.is-admin:hover:not(:disabled){background-color:#d97706}.delete-btn{background-color:#ef4444;color:#fff}.delete-btn:hover:not(:disabled){background-color:#dc2626}.delete-btn:disabled,.toggle-admin-btn:disabled{cursor:not-allowed;opacity:.5}.feishu-binding-cell{display:flex;flex-direction:column;gap:4px}.feishu-badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px;width:-webkit-fit-content;width:fit-content}.feishu-badge.bound{background-color:#d1fae5;color:#059669}.feishu-badge.unbound{background-color:#f3f4f6;color:#6b7280}.feishu-account{color:#6b7280;font-size:11px;margin-top:2px}.placeholder-dictionary-page{margin:0 auto;max-width:1400px;padding:20px}.page-header{margin-bottom:24px}.dictionary-content{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:24px}.search-filter-bar{flex-wrap:wrap;gap:12px;margin-bottom:20px}.search-box,.search-filter-bar{align-items:center;display:flex}.search-box{background:#f9f9f9;border:1px solid #ddd;border-radius:6px;flex:1 1;gap:8px;min-width:300px;padding:10px 16px}.search-box:focus-within{background:#fff;border-color:#4a90e2}.search-input{background:#0000;border:none;flex:1 1;font-size:14px;outline:none}.filter-buttons{display:flex;gap:8px}.filter-btn{align-items:center;background:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;display:flex;font-size:14px;gap:6px;padding:8px 16px;transition:all .2s}.filter-btn:hover{border-color:#4a90e2;color:#4a90e2}.filter-btn.active{background:#4a90e2;border-color:#4a90e2;color:#fff}.add-btn{background:#28a745;border:1px solid #28a745;border-radius:6px;gap:6px;padding:8px 16px}.add-btn:hover{background:#218838;border-color:#218838}.export-btn{align-items:center;background:#4a90e2;border:1px solid #4a90e2;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;gap:6px;padding:8px 16px;transition:all .2s}.export-btn:hover{background:#357abd;border-color:#357abd}.stats-bar{background:#f5f5f5;border-radius:6px;color:#666;font-size:14px;margin-bottom:16px;padding:12px}.stats-bar strong{color:#4a90e2;font-weight:600}.search-hint{color:#999;margin-left:12px}.success-message{border-radius:6px}.spinner{border-top-color:#4a90e2;height:20px;width:20px}.table-container{overflow-x:auto}.placeholders-table{border-collapse:collapse;font-size:14px;width:100%}.placeholders-table thead{background:#f5f5f5}.placeholders-table th{border-bottom:2px solid #ddd;color:#333;font-weight:600;padding:12px;text-align:left}.placeholders-table td{border-bottom:1px solid #eee;padding:12px}.placeholders-table tbody tr:hover{background:#f9f9f9}.type-badge{align-items:center;border-radius:4px;display:inline-flex;font-size:12px;font-weight:500;gap:6px;padding:4px 8px}.type-badge.type-indicator{background:#e3f2fd;color:#1976d2}.type-badge.type-formula{background:#f3e5f5;color:#7b1fa2}.type-badge.type-system{background:#fff3e0;color:#e65100}.name-cell{color:#333;font-weight:500}.placeholder-cell code{background:#f5f5f5;border:1px solid #ddd;border-radius:4px;color:#d63384;display:inline-block;font-family:Courier New,monospace;font-size:13px;font-weight:600;padding:4px 8px}.description-cell{color:#666;font-size:13px}.value-cell{font-size:13px}.value-display{background:#e8f5e9;border:1px solid #4caf50;border-radius:4px;color:#2e7d32;display:inline-block;font-weight:500;max-width:200px;overflow:hidden;padding:4px 8px;text-overflow:ellipsis;white-space:nowrap}.value-empty{color:#999;font-style:italic}.empty-state svg{margin-bottom:16px;opacity:.5}.empty-state p{font-size:16px}.action-buttons{gap:8px;justify-content:center}.delete-btn,.edit-btn{align-items:center;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;display:inline-flex;height:32px;justify-content:center;transition:all .2s;width:32px}.edit-btn:hover{background:#e3f2fd;border-color:#4a90e2;color:#4a90e2}.delete-btn:hover{background:#fee;border-color:#dc3545;color:#dc3545}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px 24px}.modal-header h2{color:#333;font-size:20px;font-weight:600;margin:0}.modal-close{background:none;border:none;color:#666;cursor:pointer;padding:4px;transition:color .2s}.modal-close:hover{color:#333}.modal-body{padding:24px}.form-group label{color:#333;display:block;font-weight:500;margin-bottom:8px}.form-group .required{color:#dc3545}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:6px;font-family:inherit;font-size:14px;padding:10px 12px;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e21a;outline:none}.form-group textarea{min-height:80px;resize:vertical}.form-hint{color:#666}.modal-footer{border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.btn-cancel,.btn-save{align-items:center;border:1px solid #ddd;border-radius:6px;cursor:pointer;display:flex;font-size:14px;gap:6px;padding:10px 20px;transition:all .2s}.btn-cancel{background:#fff;color:#666}.btn-cancel:hover{background:#f5f5f5;border-color:#bbb}.btn-save{background:#4a90e2;border-color:#4a90e2}.btn-save:hover{background:#357abd;border-color:#357abd}.ai-naming-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s}.ai-naming-btn:hover{background:linear-gradient(135deg,#5568d3,#653a8f);box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}.ai-naming-modal{display:flex;flex-direction:column;max-height:90vh;max-width:800px}.ai-naming-hint{background:#f0f9ff;border-left:4px solid #667eea;border-radius:4px;margin-bottom:20px;padding:16px}.ai-naming-hint p{color:#1e40af;font-size:14px;line-height:1.6;margin:0}.ai-naming-hint .hint-small{color:#64748b;font-size:12px;font-style:italic;margin-top:8px}.selection-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:16px;padding:12px 0}.select-all-btn{align-items:center;background:#fff;border:1px solid #ddd;border-radius:4px;color:#333;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:8px 12px;transition:all .2s}.select-all-btn:hover:not(:disabled){background:#f5f5f5;border-color:#667eea}.select-all-btn:disabled{cursor:not-allowed;opacity:.5}.selection-count{color:#666;font-size:14px;font-weight:500}.placeholder-selection-list{border:1px solid #e0e0e0;border-radius:6px;max-height:400px;overflow-y:auto;padding:8px}.empty-selection{align-items:center;color:#999;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.empty-selection p{font-size:14px;margin-top:16px}.selection-item{align-items:flex-start;background:#fff;border:2px solid #e0e0e0;border-radius:6px;cursor:pointer;display:flex;gap:12px;margin-bottom:8px;padding:12px;transition:all .2s}.selection-item:hover{background:#f8f9ff;border-color:#667eea}.selection-item.selected{background:#f0f9ff;border-color:#667eea}.selection-checkbox{color:#667eea;flex-shrink:0;margin-top:2px}.selection-content{flex:1 1;min-width:0}.selection-name-row{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:8px}.selection-name{color:#333;flex:1 1;font-size:15px;font-weight:500;min-width:0;word-break:break-word}.selection-key{margin-bottom:4px}.selection-key code{background:#f0f9ff;border-radius:4px;color:#667eea;font-family:Courier New,monospace;font-size:13px;padding:4px 8px}.selection-description{color:#666;font-size:12px;line-height:1.5;margin-top:4px}.ai-naming-submit-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none}.ai-naming-submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#5568d3,#653a8f)}.ai-naming-submit-btn:disabled{cursor:not-allowed;opacity:.6}.spinner-small{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:14px;width:14px}.clean-btn{align-items:center;background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s}.clean-btn:hover:not(:disabled){background:#dc2626;box-shadow:0 4px 12px #ef44444d;transform:translateY(-1px)}.clean-btn:disabled{cursor:not-allowed;opacity:.6}.spinner-small-inline{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:14px;width:14px}.clean-modal{max-width:700px}.clean-result-info{margin-bottom:20px}.clean-stats{background:#f8f9fa;border-radius:6px;display:flex;gap:24px;margin-top:16px;padding:16px}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-label{color:#666;font-size:13px}.stat-value{color:#333;font-size:24px;font-weight:600}.stat-value.valid{color:#10b981}.stat-value.invalid{color:#ef4444}.invalid-placeholders-list{margin-bottom:20px;margin-top:20px}.invalid-placeholders-list h4{color:#333;font-size:14px;font-weight:600;margin:0 0 12px}.invalid-list-scroll{background:#fff;border:1px solid #e0e0e0;border-radius:6px;max-height:300px;overflow-y:auto;padding:12px}.invalid-item{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;font-size:13px;gap:8px;padding:8px}.invalid-item:last-child{border-bottom:none}.invalid-index{color:#999;min-width:24px}.invalid-name{color:#ef4444;flex:1 1;font-weight:500}.invalid-key{color:#666;font-family:monospace;font-size:12px}.clean-warning{align-items:flex-start;background:#fef2f2;border-left:4px solid #ef4444;border-radius:4px;display:flex;gap:12px;margin-top:20px;padding:16px}.clean-warning svg{color:#ef4444;flex-shrink:0;margin-top:2px}.clean-warning p{color:#991b1b;font-size:14px;line-height:1.6;margin:0}.clean-confirm-btn{background:#ef4444;border:none}.clean-confirm-btn:hover:not(:disabled){background:#dc2626}.clean-confirm-btn:disabled{cursor:not-allowed;opacity:.6}.region-preview-template-management{margin:0 auto;max-width:1400px;padding:24px}.template-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.template-header h1{color:#1a1a1a;font-size:24px;font-weight:600;margin:0}.template-actions{display:flex;gap:12px}.btn-save,.btn-validate{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s}.btn-validate{background-color:#f0f0f0;color:#333}.btn-validate:hover:not(:disabled){background-color:#e0e0e0}.btn-save{background-color:#007bff;color:#fff}.btn-save:hover:not(:disabled){background-color:#0056b3}.btn-save:disabled,.btn-validate:disabled{cursor:not-allowed;opacity:.6}.error-message{background-color:#fee;border-radius:6px}.error-message .invalid-placeholders{border-top:1px solid #fcc;margin-top:12px;padding-top:12px}.error-message .invalid-placeholders ul{margin:8px 0;padding-left:24px}.error-message .invalid-placeholders li{margin:4px 0}.error-message .invalid-placeholders .hint{color:#666;font-size:13px;margin-top:12px}.success-message,.validation-success{align-items:center;background-color:#efe;border:1px solid #cfc;border-radius:6px;color:#3c3;display:flex;font-size:14px;gap:8px;margin-bottom:20px;padding:12px 16px}.template-editor-container{background:#fff;border:1px solid #ddd;border-radius:8px;padding:24px}.editor-label{margin-bottom:16px}.editor-label label{color:#333;display:block;font-weight:500;margin-bottom:8px}.template-name-input{border:1px solid #ddd;border-radius:4px;font-size:14px;max-width:400px;padding:8px 12px;width:100%}.editor-hint{color:#666;font-size:13px;margin-left:8px}.editor-hint code{background-color:#f5f5f5;border-radius:3px;color:#d63384;font-family:Courier New,monospace;padding:2px 6px}.quill-editor-wrapper{margin-top:16px}.quill-editor-wrapper .ql-editor{font-size:14px;min-height:400px}.quill-editor-wrapper .ql-toolbar{border-top-left-radius:4px;border-top-right-radius:4px}.quill-editor-wrapper .ql-container{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.loading-overlay{align-items:center;background-color:#00000080;bottom:0;color:#fff;display:flex;flex-direction:column;gap:16px;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.spinner{border:4px solid #ffffff4d;border-top-color:#fff}


/*!
 * Quill Editor v1.3.7
 * https://quilljs.com/
 * Copyright (c) 2014, Jason Chen
 * Copyright (c) 2013, salesforce.com
 */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{height:1px;left:-100000px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{word-wrap:break-word;box-sizing:border-box;height:100%;line-height:1.42;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;margin:0;padding:0}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"\2022"}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li:before,.ql-editor ul[data-checked=true]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"\2611"}.ql-editor ul[data-checked=false]>li:before{content:"\2610"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-increment:list-0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow .ql-toolbar:after,.ql-snow.ql-toolbar:after{clear:both;content:"";display:table}.ql-snow .ql-toolbar button,.ql-snow.ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow .ql-toolbar button svg,.ql-snow.ql-toolbar button svg{float:left;height:100%}.ql-snow .ql-toolbar button:active:hover,.ql-snow.ql-toolbar button:active:hover{outline:none}.ql-snow .ql-toolbar input.ql-image[type=file],.ql-snow.ql-toolbar input.ql-image[type=file]{display:none}.ql-snow .ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar button.ql-active,.ql-snow .ql-toolbar button:focus,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar button.ql-active,.ql-snow.ql-toolbar button:focus,.ql-snow.ql-toolbar button:hover{color:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill{fill:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow .ql-toolbar button:hover:not(.ql-active),.ql-snow.ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{margin-bottom:5px;margin-top:5px;padding:5px 10px;white-space:pre-wrap}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;padding:2px 4px;width:24px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid #0000;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{margin-top:-9px;position:absolute;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-item:before,.ql-snow .ql-picker.ql-header .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-item:before,.ql-snow .ql-picker.ql-font .ql-picker-label:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-item:before,.ql-snow .ql-picker.ql-size .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid #0000}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid #0000;box-shadow:0 2px 8px #0003}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{border:1px solid #ccc;display:none;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Edit";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0;content:"Save";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}.ai-chat-settings{margin:0 auto;max-width:900px;padding:24px}.settings-header{border-bottom:1px solid #e0e0e0;gap:12px;padding-bottom:16px}.settings-header h2{color:#333;font-size:24px;font-weight:600;margin:0}.settings-description{background:#f9f9f9;border-left:4px solid #3b82f6}.settings-description p{line-height:1.6}.settings-description ul{margin:12px 0}.settings-description li{line-height:1.6}.important-note{background:#fff3cd;border:1px solid #ffc107;border-radius:6px;color:#856404!important;margin-top:16px!important;padding:12px}.assistants-list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.assistant-item{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:move;display:flex;gap:16px;padding:16px;transition:all .2s ease}.assistant-item:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f61a}.assistant-item.dragging{border-color:#3b82f6;opacity:.5}.assistant-item.disabled{background:#f5f5f5;opacity:.6}.assistant-drag-handle{align-items:center;color:#999;cursor:grab;display:flex}.assistant-drag-handle:active{cursor:grabbing}.assistant-info{align-items:center;display:flex;flex:1 1;gap:12px}.assistant-name{color:#333;font-size:16px;font-weight:600}.assistant-model{color:#666;font-size:13px;font-weight:400;margin-left:8px}.assistant-order-badge{background:#3b82f6;border-radius:12px;color:#fff;font-size:12px;font-weight:500;padding:4px 12px}.assistant-controls{align-items:center;display:flex;gap:24px}.toggle-switch{align-items:center;cursor:pointer;display:flex;gap:8px}.toggle-switch input[type=checkbox]{display:none}.toggle-slider{background:#ccc;border-radius:12px;height:24px;position:relative;transition:background .3s ease;width:44px}.toggle-slider:before{background:#fff;border-radius:50%;box-shadow:0 2px 4px #0003;content:"";height:18px;left:3px;position:absolute;top:3px;transition:transform .3s ease;width:18px}.toggle-switch input[type=checkbox]:checked+.toggle-slider{background:#3b82f6}.toggle-switch input[type=checkbox]:checked+.toggle-slider:before{transform:translateX(20px)}.toggle-label{color:#666;font-size:14px;-webkit-user-select:none;user-select:none}.web-search-toggle .toggle-slider{background:#ccc}.web-search-toggle input[type=checkbox]:checked+.toggle-slider{background:#f59e0b}.assistant-color-preview{border:2px solid #e0e0e0;border-radius:6px;flex-shrink:0;height:32px;width:32px}.settings-actions{border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;padding-top:24px}.save-button{align-items:center;background:#3b82f6;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:15px;font-weight:500;gap:8px;padding:12px 24px;transition:background .2s ease}.save-button:hover:not(:disabled){background:#2563eb}.save-button:disabled{background:#9ca3af}.error-message{background:#fee2e2;border-left:4px solid #dc2626}.error-message,.success-message{margin-bottom:16px;padding:12px 16px}.success-message{background:#d1fae5;border-left:4px solid #059669}.spinner{border:4px solid #f3f4f6;border-top-color:#3b82f6}.financing-calculator{max-width:100%;padding:24px}.financing-calculator h2{color:#333;font-size:20px;font-weight:600;margin:0 0 12px}.financing-loading{color:#666;font-size:14px;padding:24px}.expansion-section{margin-bottom:16px;max-width:100%;overflow-x:auto}.expansion-title{color:#555;font-size:14px;font-weight:600;margin-bottom:8px}.expansion-table{background:#fff;border:1px solid #e5e7eb;border-collapse:collapse;border-radius:6px;min-width:100%;overflow:hidden;width:-webkit-max-content;width:max-content}.expansion-table td,.expansion-table th{border:1px solid #e5e7eb;font-size:13px;padding:6px 10px}.expansion-table th{background:#f9fafb;color:#333;font-weight:600;text-align:left}.expansion-table td{color:#666}.expansion-readonly{background:#f3f4f6;color:#6b7280;text-align:center}.expansion-input{border:1px solid #d1d5db;border-radius:4px;color:#333;font-size:12px;padding:4px 6px;text-align:center;width:56px}.expansion-input:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb33;outline:none}.financing-description{background:#f3f4f6;border-radius:8px;color:#666;font-size:13px;line-height:1.5;margin:0 0 16px;padding:12px 16px}.round-section{margin-bottom:16px}.round-label{color:#555;font-size:13px;font-weight:600;margin-bottom:8px}.financing-row{align-items:stretch;display:flex;gap:12px;max-width:100%;overflow-x:auto;padding-bottom:4px;width:100%}.total-column{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;flex-direction:column;flex-shrink:0;gap:6px;justify-content:space-between;min-height:0;padding:8px;width:88px}.total-label{color:#333;font-size:13px;font-weight:600;line-height:1.2;text-align:center}.total-amount-input{border:1px solid #d1d5db;border-radius:4px;color:#333;font-size:14px;padding:6px 8px;text-align:center;width:100%}.total-amount-input:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb33;outline:none}.total-amount-input::placeholder{color:#9ca3af}.effective-total-card{background:#f0fdf4;border:1px solid #86efac;border-radius:4px;margin-top:6px;padding:6px 8px;text-align:center}.effective-total-label{color:#166534;font-size:11px;font-weight:500}.effective-total-value{color:#15803d;font-size:13px;font-weight:600;overflow-wrap:anywhere}.investors-grid{grid-gap:8px;align-items:stretch;display:grid;flex:1 1;gap:8px;grid-template-columns:repeat(11,minmax(96px,1fr));max-width:100%;min-width:0;width:-webkit-max-content;width:max-content}.investors-grid .investor-card{min-height:100%}.investor-card{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;flex-direction:column;min-width:0;padding:8px;transition:border-color .2s}.investor-card:hover{border-color:#9ca3af}.investor-avatar{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:50%;color:#6b7280;display:flex;height:36px;justify-content:center;margin-bottom:6px;width:36px}.investor-avatar svg{height:18px;width:18px}.investor-info{display:flex;flex-direction:column;gap:4px;width:100%}.investor-amount-input,.investor-name-input,.investor-share-input{border:1px solid #d1d5db;border-radius:4px;color:#333;font-size:12px;padding:4px 6px;width:100%}.investor-amount-input:focus,.investor-name-input:focus,.investor-share-input:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb33;outline:none}.investor-amount-input::placeholder,.investor-name-input::placeholder,.investor-share-input::placeholder{color:#9ca3af}.investor-share-row{align-items:center;display:flex;gap:2px}.investor-share-input{flex:1 1;min-width:0}.share-unit{color:#6b7280;flex-shrink:0;font-size:11px}.investor-card-no-avatar{gap:0;justify-content:space-between;padding:10px 8px}.investor-card-no-avatar .investor-name-display{color:#333;font-size:14px;line-height:1.4;min-height:22px;overflow-wrap:anywhere;padding:0;text-align:center;width:100%}.investor-card-no-avatar .investor-amount-input{font-size:14px;padding:6px 8px}.investor-card-no-avatar .investor-share-display{color:#333;font-size:14px;font-weight:600;max-width:100%;overflow-wrap:anywhere;text-align:center}.investor-change-badge{border-radius:4px;font-size:12px;line-height:1.2;padding:4px 6px;text-align:center}.investor-change-badge.change-up{background:#d1fae5;color:#059669;font-weight:600}.investor-change-badge.change-down{background:#fee2e2;color:#dc2626;font-weight:600}.investor-change-badge:not(.change-up):not(.change-down){background:#f3f4f6;color:#6b7280}.share-changes-section{margin-top:12px}.share-changes-label{color:#555;font-size:13px;font-weight:600;margin-bottom:8px}.share-changes-row{align-items:flex-start;display:flex;gap:12px;width:100%}.share-changes-spacer{flex-shrink:0;width:88px}.share-changes-grid{grid-gap:8px;display:grid;flex:1 1;gap:8px;grid-template-columns:repeat(11,minmax(96px,1fr));max-width:100%;min-width:0;width:-webkit-max-content;width:max-content}.share-change-cell{border-radius:4px;font-size:12px;padding:4px 6px;text-align:center}.share-change-cell.change-up{color:#059669;font-weight:600}.share-change-cell.change-down{color:#dc2626;font-weight:600}@media (max-width:1200px){.financing-row{flex-wrap:wrap}.total-column{width:100%}.investors-grid{grid-template-columns:repeat(5,1fr)}.share-changes-spacer{width:100%}.share-changes-grid{grid-template-columns:repeat(5,1fr)}}@media (max-width:768px){.investors-grid,.share-changes-grid{grid-template-columns:repeat(2,1fr)}}.settings-page{display:flex;flex-direction:column;height:100%;width:100%}.settings-header{border-bottom:2px solid #e0e0e0;padding:24px}.settings-submenu{background:#f9fafb;border-bottom:1px solid #e0e0e0;display:flex;gap:12px;padding:16px 24px}.submenu-item{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#666;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s}.submenu-item:hover{background:#f3f4f6;border-color:#9ca3af}.submenu-item.active{background:#2563eb;border-color:#2563eb;color:#fff}.submenu-item.active:hover{background:#1d4ed8;border-color:#1d4ed8}.settings-content{flex:1 1;overflow:auto}.access-denied{color:#999;font-size:16px;height:100%;justify-content:center}.access-denied,.settings-tools{align-items:center;display:flex}.settings-tools{background:#f9fafb;border-top:1px solid #e0e0e0;gap:12px;margin-top:16px;padding:16px 24px}.refresh-region-names-btn{align-items:center;background:#2563eb;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:all .2s}.refresh-region-names-btn:hover:not(:disabled){background:#1d4ed8;box-shadow:0 2px 4px #2563eb4d;transform:translateY(-1px)}.refresh-region-names-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.refresh-region-names-btn .spinning{animation:spin 1s linear infinite}.refresh-message{border-radius:6px;font-size:14px;font-weight:500;padding:8px 12px}.refresh-message.success{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46}.refresh-message.error{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.parameter-recover-section{max-width:800px;padding:24px}.parameter-recover-section h2{color:#333;font-size:20px;font-weight:600;margin:0 0 16px}.recover-description{background:#f3f4f6;border-radius:8px;color:#666;font-size:14px;line-height:1.6;margin:0 0 24px;padding:16px}.parameter-recover-actions{display:flex;gap:16px;margin-bottom:16px}.recover-button,.save-button{align-items:center;background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s}.save-button{background:#10b981}.save-button:hover:not(:disabled){background:#059669;box-shadow:0 2px 4px #10b9814d;transform:translateY(-1px)}.recover-button:hover:not(:disabled){background:#1d4ed8;box-shadow:0 2px 4px #2563eb4d;transform:translateY(-1px)}.recover-button:disabled,.save-button:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.recover-button .spinning{animation:spin 1s linear infinite}.recover-message{border-radius:8px;font-size:14px;line-height:1.6;margin-top:16px;padding:12px 16px}.recover-message.success{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46}.recover-message.error{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.recover-message pre{word-wrap:break-word;margin:0;white-space:pre-wrap}.feishu-binding-section{max-width:800px;padding:24px}.feishu-binding-section h2{color:#333;font-size:20px;font-weight:600;margin:0 0 16px}.feishu-description{background:#f3f4f6;border-radius:8px;color:#666;font-size:14px;line-height:1.6;margin:0 0 24px;padding:16px}.feishu-status{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin:24px 0;padding:16px}.feishu-status h3{color:#333;font-size:16px;font-weight:600;margin:0 0 12px}.status-info{display:flex;flex-direction:column;gap:8px}.status-info p{color:#666;font-size:14px;margin:0}.status-bound{color:#059669}.status-bound,.status-unbound{font-weight:600;margin-left:8px}.status-unbound{color:#6b7280}.login-feishu{color:#2563eb}.login-browser,.login-feishu{font-weight:600;margin-left:8px}.login-browser{color:#6b7280}.login-tip{background:#fef3c7;border-left:4px solid #f59e0b;border-radius:4px;color:#92400e;margin-top:12px!important;padding:12px}.feishu-binding-actions{margin:24px 0}.bind-button{align-items:center;background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s}.bind-button:hover:not(:disabled){background:#1d4ed8;box-shadow:0 2px 4px #2563eb4d;transform:translateY(-1px)}.bind-button:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.already-bound{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46;font-weight:500;padding:12px 16px}.already-bound,.feishu-warning{border-radius:8px;font-size:14px}.feishu-warning{background:#fef3c7;color:#92400e;margin-top:12px;padding:12px}.feishu-message{border-radius:8px;font-size:14px;line-height:1.6;margin-top:16px;padding:12px 16px}.feishu-message.success{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46}.feishu-message.error{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.data-analysis-page{margin:0 auto;max-width:1200px;padding:24px}.settings-btn{align-items:center;background:#6b7280;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s}.settings-btn:hover{background:#4b5563;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.header-buttons{align-items:center;display:flex;gap:12px}.analysis-content{display:flex;flex-direction:column;gap:24px}.location-info{background:#f5f5f5;border-radius:8px;padding:16px}.location-info h2{color:#666;font-size:18px;font-weight:500;margin:0}.loading-indicator{color:#666;gap:12px;padding:40px}.spinner{border:3px solid #f3f3f3;height:24px;width:24px}.error-message,.success-message{margin-bottom:20px}.error-hint{color:#a33;font-size:14px;margin-top:8px}.results-section{margin-top:24px}.results-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;gap:8px;justify-content:space-between;margin-bottom:20px;padding-bottom:12px}.action-buttons{align-items:center;display:flex;gap:12px}.preview-region-btn{align-items:center;background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s}.preview-region-btn:hover:not(:disabled){background:#2563eb;box-shadow:0 2px 4px #3b82f64d;transform:translateY(-1px)}.preview-region-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.generate-report-btn{align-items:center;background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s}.generate-report-btn:hover:not(:disabled){background:#059669;box-shadow:0 2px 4px #10b9814d;transform:translateY(-1px)}.generate-report-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.results-header h3{color:#333;font-size:20px;font-weight:600;margin:0}.results-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;overflow:hidden}.results-table{border-collapse:collapse;width:100%}.results-table thead{background:#f8f9fa}.results-table th{border-bottom:2px solid #e0e0e0;color:#333;font-size:14px;font-weight:600;padding:16px;text-align:left}.results-table th:first-child{text-align:center;width:80px}.results-table th:nth-child(3){text-align:right;width:150px}.results-table th:last-child{text-align:center;width:100px}.results-table tbody tr{border-bottom:1px solid #f0f0f0;transition:background-color .2s}.results-table tbody tr:hover{background-color:#f8f9fa}.results-table tbody tr:last-child{border-bottom:none}.results-table td{color:#333;font-size:14px;padding:16px}.results-table td:first-child{color:#666;font-weight:500;text-align:center}.results-table .result-label-cell{color:#333;font-weight:500}.results-table .result-value-cell{color:#2563eb;font-family:Courier New,monospace;font-size:16px;font-weight:600;text-align:right}.results-table .result-unit-cell{color:#666;font-size:14px;font-weight:500;text-align:center}.empty-state p{margin:8px 0}.empty-state .hint{color:#bbb;font-size:14px}.preview-modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.preview-modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:900px;overflow:hidden;width:100%}.preview-modal-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px 24px}.preview-modal-header h2{color:#333;font-size:20px;font-weight:600;margin:0}.preview-modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .2s}.preview-modal-close:hover{background:#e0e0e0;color:#333}.preview-modal-content{flex:1 1;overflow-y:auto;padding:24px}.preview-loading{align-items:center;color:#666;display:flex;flex-direction:column;gap:16px;justify-content:center;padding:60px 20px}.preview-error{background:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;padding:16px}.preview-html-content{color:#333;font-size:14px;line-height:1.6}.preview-html-content h1,.preview-html-content h2,.preview-html-content h3{color:#1a1a1a;margin-bottom:12px;margin-top:24px}.preview-html-content h1{font-size:24px}.preview-html-content h2{font-size:20px}.preview-html-content h3{font-size:18px}.preview-html-content p{margin:12px 0}.preview-html-content table{border-collapse:collapse;margin:16px 0;width:100%}.preview-html-content table td,.preview-html-content table th{border:1px solid #ddd;padding:8px 12px;text-align:left}.preview-html-content table th{background-color:#f8f9fa;font-weight:600}.preview-html-content ol,.preview-html-content ul{margin:12px 0;padding-left:24px}.preview-html-content li{margin:6px 0}.brief-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-top:32px;padding:24px}.brief-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;gap:12px;margin-bottom:20px;padding-bottom:16px}.brief-header h3{color:#333;font-size:20px;font-weight:600;margin:0}.brief-loading{align-items:center;color:#666;display:flex;gap:12px;justify-content:center;padding:40px}.brief-answers{display:flex;flex-direction:column;gap:20px}.brief-item{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:16px;padding:20px}.brief-title{border-bottom:1px solid #e0e0e0;color:#333;font-size:16px;font-weight:600;margin-bottom:16px;padding-bottom:12px}.brief-models{display:flex;flex-direction:column;gap:16px}.brief-model-answer{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px;transition:all .2s ease}.brief-model-answer:hover{border-color:#333;box-shadow:0 2px 8px #0000000d}.brief-model-name{border-bottom:1px solid #f0f0f0;color:#666;font-size:13px;font-weight:600;margin-bottom:10px;padding-bottom:8px;text-transform:none}.brief-content{color:#333;font-size:14px;line-height:1.6;margin:0;white-space:pre-wrap}.brief-empty{color:#999;padding:40px 20px}.brief-empty,.brief-error{font-size:14px;text-align:center}.brief-error{background:#fef2f2;border:1px solid #ef4444;border-radius:8px;color:#dc2626;padding:20px}.chat-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-top:32px;padding:24px}.chat-header{border-bottom:1px solid #e0e0e0;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.chat-header,.chat-header h3{align-items:center;display:flex;gap:12px}.chat-header h3{color:#333;flex:1 1;font-size:20px;font-weight:600;margin:0}.chat-expand-button{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;justify-content:center;padding:6px;transition:all .2s ease}.chat-expand-button:hover{background:#f0f0f0;color:#333}.chat-messages{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:16px;max-height:400px;min-height:200px;overflow-y:auto;padding:16px}.chat-messages-fixed{height:400px;max-height:400px;min-height:400px}.chat-empty{color:#999;padding:40px 20px;text-align:center}.chat-message{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.chat-message.user{align-items:flex-end}.chat-message.assistant{align-items:flex-start}.chat-assistant-name{font-size:12px;font-weight:600;margin-bottom:2px;margin-left:4px}.chat-message-content{word-wrap:break-word;border-radius:8px;display:inline-block;font-size:14px;line-height:1.5;max-width:75%;padding:12px 16px}.chat-message-content.user-message{background:#333;color:#fff;text-align:left}.chat-message-content.assistant-message{background:#fff;border:1px solid #e0e0e0;border-left:4px solid #3b82f6;color:#333;text-align:left}.chat-reasoning{background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:4px;display:inline-block;font-size:13px;margin-bottom:8px;max-width:70%;padding:8px 12px}.chat-reasoning-label{color:#1e40af;font-size:12px;font-weight:600;margin-bottom:4px}.chat-reasoning-content{word-wrap:break-word;color:#1e3a8a;line-height:1.5;opacity:.9;white-space:pre-wrap}.chat-streaming-indicator{align-items:center;display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle}.chat-streaming-indicator span{animation:chat-pulse 1.4s ease-in-out infinite;background:#3b82f6;border-radius:50%;height:6px;width:6px}.chat-streaming-indicator span:nth-child(2){animation-delay:.2s}.chat-streaming-indicator span:nth-child(3){animation-delay:.4s}@keyframes chat-pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.chat-typing-indicator{align-items:center;display:flex;gap:4px}.chat-typing-indicator span{animation:typing 1.4s infinite;background:#999;border-radius:50%;height:8px;width:8px}.chat-typing-indicator span:nth-child(2){animation-delay:.2s}.chat-typing-indicator span:nth-child(3){animation-delay:.4s}.chat-modal-overlay{align-items:center;animation:fadeIn .2s ease;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:2000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.chat-modal{animation:slideUp .3s ease;background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column;height:90vh;max-height:90vh;max-width:1200px;overflow:hidden;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chat-modal-header{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;flex-shrink:0;justify-content:space-between;padding:20px 24px}.chat-modal-title{align-items:center;display:flex;flex:1 1;gap:12px}.chat-modal-title h2{color:#333;font-size:20px;font-weight:600;margin:0}.chat-modal-actions{align-items:center;display:flex;gap:8px}.chat-modal-close,.chat-modal-minimize{align-items:center;background:none;border:none;border-radius:6px;color:#666;cursor:pointer;display:flex;justify-content:center;padding:8px;transition:all .2s ease}.chat-modal-minimize:hover{background:#f0f0f0;color:#333}.chat-modal-close:hover{background:#fee2e2;color:#dc2626}.chat-modal-messages{background:#f9f9f9;display:flex;flex:1 1;flex-direction:column;gap:16px;overflow-y:auto;padding:24px}.chat-modal-messages .chat-empty{align-items:center;display:flex;flex:1 1;justify-content:center;padding:60px 20px}.chat-modal-messages .chat-message{margin-bottom:0}.chat-modal-messages .chat-assistant-name{font-size:13px}.chat-modal-messages .chat-message-content{font-size:15px;max-width:75%;padding:14px 18px}.chat-modal-input-container{background:#fff;border-top:1px solid #e0e0e0;display:flex;flex-shrink:0;gap:12px;padding:20px 24px}.chat-modal .chat-controls{background:#f9f9f9;border-top:1px solid #e0e0e0;flex-shrink:0;padding:12px 24px}.chat-modal-input{border:1px solid #e0e0e0;border-radius:8px;flex:1 1;font-size:15px;outline:none;padding:12px 16px;transition:border-color .2s ease}.chat-modal-input:focus{border-color:#333}.chat-modal-input:disabled{background:#f5f5f5;cursor:not-allowed}.chat-modal-stop-button{align-items:center;background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:48px;justify-content:center;padding:0;transition:all .2s ease;width:48px}.chat-modal-stop-button:hover{background:#b91c1c}.chat-modal-send-button{align-items:center;background:#333;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:12px 20px;transition:background .2s ease}.chat-modal-send-button:hover:not(:disabled){background:#555}.chat-modal-send-button:disabled{background:#ccc;cursor:not-allowed}@keyframes typing{0%,60%,to{opacity:.7;transform:translateY(0)}30%{opacity:1;transform:translateY(-10px)}}.chat-input-container{align-items:center;display:flex;gap:12px}.chat-input{border:1px solid #e0e0e0;border-radius:8px;flex:1 1;font-family:inherit;font-size:14px;padding:12px 16px;transition:all .2s}.chat-input:focus{border-color:#333;box-shadow:0 0 0 3px #0000000d;outline:none}.chat-input:disabled{background:#f5f5f5;cursor:not-allowed}.chat-stop-button{align-items:center;background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:44px;justify-content:center;padding:0;transition:all .2s;width:44px}.chat-stop-button:hover{background:#b91c1c}.chat-send-button{align-items:center;background:#333;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:44px;justify-content:center;padding:0;transition:all .2s;width:44px}.chat-send-button:hover:not(:disabled){background:#000}.chat-send-button:disabled{cursor:not-allowed;opacity:.6}.chat-controls{background:#f9f9f9;border-top:1px solid #e0e0e0;padding:12px 16px}.chat-switches{gap:16px}.chat-switch,.chat-switches{align-items:center;display:flex}.chat-switch{cursor:pointer;gap:8px;-webkit-user-select:none;user-select:none}.chat-switch input[type=checkbox]{display:none}.chat-switch .switch-label{background:#e5e7eb;border-radius:6px;color:#666;font-size:14px;padding:6px 12px;transition:all .2s ease}.chat-switch.active .switch-label{background:#3b82f6;color:#fff}.chat-switch.web-search-switch.active .switch-label{background:#f59e0b;color:#fff}.chat-switch input[type=checkbox]:disabled+.switch-label{cursor:not-allowed;opacity:.6}.markdown-content{line-height:1.6}.markdown-content h1,.markdown-content h2,.markdown-content h3{color:#333;font-weight:600}.markdown-content ol,.markdown-content ul{margin:.5em 0}.markdown-content li{margin:.25em 0}.formula-settings-page{margin:0 auto;max-width:1000px;padding:24px}.page-header{border-bottom:2px solid #e0e0e0;justify-content:space-between;margin-bottom:32px;padding-bottom:16px}.header-content,.page-header{align-items:center;display:flex}.header-content{gap:12px}.header-content h1{color:#333;font-size:24px;font-weight:600;margin:0}.back-btn{align-items:center;background:#6b7280;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s}.back-btn:hover{background:#4b5563;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.settings-content{display:flex;flex-direction:column;gap:24px}.error-message{background:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;padding:16px}.success-message{background:#efe;border:1px solid #cfc;border-radius:8px;color:#3c3;padding:16px}.section-title{color:#333;font-size:18px;font-weight:600;margin-bottom:16px}.formulas-list{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:24px}.loading{color:#666;text-align:center}.empty-state,.loading{padding:40px}.formulas-container{display:flex;flex-direction:column;gap:16px}.formula-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.formula-header{align-items:center;display:flex;gap:12px;margin-bottom:12px}.formula-name-input{border:1px solid #d1d5db;border-radius:6px;flex:1 1;font-size:14px;padding:10px 12px}.formula-name-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.formula-input{border:1px solid #d1d5db;border-radius:6px;font-family:Courier New,monospace;font-size:14px;padding:12px;resize:vertical;width:100%}.formula-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.delete-btn{align-items:center;background:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s;width:36px}.delete-btn:hover{background:#fcc;border-color:#f99}.add-formula-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:24px}.add-formula-form{display:flex;flex-direction:column;gap:12px}.add-btn{align-items:center;align-self:flex-start;background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:12px 24px;transition:all .2s}.add-btn:hover{background:#059669;box-shadow:0 2px 4px #10b9814d;transform:translateY(-1px)}.actions{padding-top:16px}.save-btn{align-items:center;background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:500;gap:8px;justify-content:center;padding:12px 32px;transition:all .2s}.save-btn:hover:not(:disabled){background:#1d4ed8;box-shadow:0 4px 8px #2563eb4d;transform:translateY(-1px)}.save-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.6}.formula-input-wrapper{margin-bottom:12px;position:relative}.formula-unit-wrapper{align-items:center;display:flex;gap:8px;margin-top:8px}.unit-label{color:#666;font-size:14px;font-weight:500;white-space:nowrap}.formula-unit-input{border:1px solid #d1d5db;border-radius:6px;flex:1 1;font-size:14px;max-width:200px;padding:8px 12px}.formula-unit-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.formula-suggestions{background:#fff;border:1px solid #d1d5db;border-radius:6px;box-shadow:0 4px 12px #00000026;max-height:200px;max-width:400px;min-width:200px;overflow-y:auto;z-index:10000!important}.suggestion-item{border-bottom:1px solid #f3f4f6;color:#333;cursor:pointer;font-size:14px;padding:10px 12px;transition:background-color .2s}.suggestion-item:last-child{border-bottom:none}.suggestion-item.selected,.suggestion-item:hover{background-color:#eff6ff;color:#2563eb}.suggestion-item.selected{background-color:#dbeafe}.intermediate-variables-section{background-color:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;margin-top:12px;padding:12px}.intermediate-variables-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.intermediate-variables-label{color:#333;font-size:14px;font-weight:500}.add-var-btn{align-items:center;background-color:#fff;border:1px solid #d0d0d0;border-radius:4px;color:#333;cursor:pointer;display:flex;font-size:12px;gap:4px;padding:4px 8px;transition:all .2s}.add-var-btn:hover{background-color:#f0f0f0;border-color:#999}.intermediate-variables-list{display:flex;flex-direction:column;gap:8px}.intermediate-variable-item{background-color:#fff;border:1px solid #e0e0e0;border-radius:4px;display:flex;flex-direction:column;gap:6px;padding:8px}.var-name-input-wrapper{align-items:center;display:flex;gap:8px}.var-name-input{border:1px solid #d0d0d0;border-radius:4px;flex:1 1;font-size:13px;padding:6px 10px}.var-name-input:focus{border-color:#333;outline:none}.delete-var-btn{align-items:center;background-color:#fff;border:1px solid #e0e0e0;border-radius:4px;color:#dc3545;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .2s}.delete-var-btn:hover{background-color:#fee;border-color:#dc3545}.var-formula-input{border:1px solid #d0d0d0;border-radius:4px;font-family:monospace;font-size:13px;padding:6px 10px;resize:vertical;width:100%}.var-formula-input:focus{border-color:#333;outline:none}.region-brief-settings{margin:0 auto;max-width:900px;padding:24px}.settings-header{align-items:center;display:flex;gap:16px;margin-bottom:24px}.settings-header h1{align-items:center;color:#333;display:flex;font-size:24px;font-weight:600;gap:12px;margin:0}.back-button{align-items:center;background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;color:#666;cursor:pointer;display:flex;height:40px;justify-content:center;padding:0;transition:all .2s ease;width:40px}.back-button:hover{background-color:#f5f5f5;border-color:#333;color:#333}.settings-description{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:24px;padding:16px}.settings-description p{color:#666;font-size:14px;margin:0 0 12px}.settings-description ul{color:#666;font-size:14px;margin:0;padding-left:24px}.settings-description li{margin-bottom:8px}.error-message,.success-message{border-radius:8px;font-size:14px;margin-bottom:24px;padding:12px 16px}.error-message{background-color:#fef2f2;border:1px solid #ef4444;color:#dc2626}.success-message{background-color:#f0fdf4;border:1px solid #10b981;color:#059669}.loading-indicator{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;padding:60px 20px}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#333;height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.questions-list{margin-bottom:24px}.empty-state{background-color:#fafafa;border:1px dashed #e0e0e0;border-radius:8px;color:#999;padding:60px 20px;text-align:center}.question-item{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:16px;padding:20px;transition:all .2s ease}.question-item:hover{border-color:#333;box-shadow:0 2px 8px #0000001a}.question-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.question-number{color:#333;font-size:14px;font-weight:600}.remove-button{align-items:center;background-color:#f5f5f5;border:none;border-radius:6px;color:#dc2626;cursor:pointer;display:flex;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.remove-button:hover{background-color:#fee2e2;color:#991b1b}.question-fields{gap:16px}.field-group,.question-fields{display:flex;flex-direction:column}.field-group{gap:8px}.field-group label{color:#333;font-size:14px;font-weight:500}.field-group input,.field-group textarea{border:1px solid #e0e0e0;border-radius:6px;font-family:inherit;font-size:14px;padding:10px 12px;transition:all .2s ease;width:100%}.field-group input:focus,.field-group textarea:focus{border-color:#333;box-shadow:0 0 0 3px #0000000d;outline:none}.field-group textarea{min-height:60px;resize:vertical}.actions{border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;padding-top:24px}.add-button,.save-button{align-items:center;background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;color:#333;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s ease}.add-button:hover{background-color:#f5f5f5;border-color:#333}.save-button{background-color:#333;border-color:#333;color:#fff}.save-button:hover:not(:disabled){background-color:#000}.save-button:disabled{cursor:not-allowed;opacity:.6}.placeholder-key-display{display:flex;flex-direction:column;gap:4px}.placeholder-key-display code{background-color:#f5f5f5;border:1px solid #e0e0e0;border-radius:6px;color:#333;font-family:Courier New,monospace;font-size:14px;font-weight:600;padding:8px 12px}.placeholder-hint{color:#666;font-size:12px;font-style:italic}.model-selection{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;display:flex;flex-direction:column;gap:12px;padding:12px}.model-checkbox{align-items:center;border-radius:4px;cursor:pointer;display:flex;gap:8px;padding:8px;transition:background-color .2s ease}.model-checkbox:hover{background-color:#f0f0f0}.model-checkbox input[type=checkbox]{accent-color:#333;cursor:pointer;height:18px;width:18px}.model-checkbox span{color:#333;font-size:14px;-webkit-user-select:none;user-select:none}.model-hint{border-top:1px solid #e0e0e0;margin-top:8px;padding-top:8px}.model-hint small{color:#666;font-size:12px;line-height:1.5}.data-reactor-container{background:radial-gradient(circle at center,#1a2a6c,#0b1026,#000);height:100vh;left:0;overflow:hidden;position:fixed;top:0;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:100vw;z-index:10000}.reactor-canvas{cursor:crosshair;display:block;height:100%;left:0;position:absolute;top:0;width:100%}.data-reactor-container *{will-change:transform,opacity}.reactor-canvas{will-change:contents}.login-page{align-items:center;background:radial-gradient(circle at top,#f5f5f5,#dcdcdc);display:flex;justify-content:center;min-height:100vh;padding:24px}.login-card{background:#fff;border:1px solid #0000000d;border-radius:16px;box-shadow:0 20px 80px #0000001f;max-width:420px;padding:32px;width:100%}.login-title{color:#111;font-size:24px;font-weight:600;margin:0}.login-subtitle{color:#666;font-size:14px;margin-bottom:24px;margin-top:8px}.login-form{gap:16px}.login-form,.login-label{display:flex;flex-direction:column}.login-label{color:#333;font-size:14px;gap:8px}.login-input{border:1px solid #e0e0e0;border-radius:12px;font-size:14px;height:44px;padding:0 14px;transition:border-color .2s ease,box-shadow .2s ease}.login-input:focus{border-color:#111;box-shadow:0 0 0 3px #1111111a;outline:none}.login-button{background:#111;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;height:48px;transition:opacity .2s ease,transform .2s ease}.login-button:disabled{cursor:not-allowed;opacity:.6}.login-button:not(:disabled):hover{transform:translateY(-1px)}.login-error{background:#dc262614;border-radius:10px;color:#b91c1c;font-size:13px;padding:10px 12px}.login-hint{color:#666;font-size:13px;margin-top:16px;text-align:center}.auth-tabs{display:flex;gap:8px;margin-bottom:20px}.auth-tab{background:#fff;border:1px solid #e0e0e0;border-radius:999px;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;height:40px;transition:all .2s ease}.auth-tab.active{background:#111;border-color:#111;box-shadow:0 8px 20px #11111126;color:#fff}.login-success{background:#16a34a14;border-radius:10px;color:#15803d;font-size:13px;margin-bottom:12px;padding:10px 12px}.toolbox-page{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:24px;width:100%}.toolbox-header{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-bottom:32px}.toolbox-header-left{flex:1 1}.toolbox-title{color:#333;font-size:28px;font-weight:600;margin:0 0 8px}.toolbox-subtitle{color:#666;font-size:14px;margin:0}.toolbox-header-actions{align-items:center;display:flex;gap:12px}.edit-mode-btn,.save-mode-btn{align-items:center;background-color:#333;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:10px 20px;transition:all .2s ease}.edit-mode-btn:hover,.save-mode-btn:hover{background-color:#444;box-shadow:0 2px 4px #00000026;transform:translateY(-1px)}.edit-mode-actions{align-items:center;display:flex;gap:12px}.add-tool-btn{align-items:center;background-color:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:10px 20px;transition:all .2s ease}.add-tool-btn:hover{background-color:#059669;box-shadow:0 2px 4px #10b9814d;transform:translateY(-1px)}.toolbox-content{flex:1 1}.category-filter{border-bottom:1px solid #e0e0e0;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px;padding-bottom:20px}.category-btn{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;color:#666;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.category-btn:hover{background-color:#f5f5f5;border-color:#333;color:#333}.category-btn.active{background-color:#333;border-color:#333;color:#fff}.category-btn.active:hover{background-color:#444}.tools-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.tools-grid.edit-mode .tool-card{cursor:default}.tool-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 1px 3px #0000000d;cursor:pointer;display:flex;flex-direction:column;padding:20px;position:relative;transition:all .2s ease;-webkit-user-select:none;user-select:none}.tool-card:hover:not(.editable){border-color:#333;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.tool-card.editable{border-color:#e0e0e0;cursor:default}.tool-card.editable:hover{border-color:#d1d5db;transform:none}.tool-card-edit-actions{display:flex;gap:8px;position:absolute;right:12px;top:12px;z-index:10}.tool-delete-btn,.tool-edit-btn{align-items:center;background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;color:#666;cursor:pointer;display:flex;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.tool-edit-btn:hover{background-color:#f0f9ff;border-color:#2563eb;color:#2563eb}.tool-delete-btn:hover{background-color:#fef2f2;border-color:#ef4444;color:#ef4444}.tool-card-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.tool-card-title{color:#333;flex:1 1;font-size:18px;font-weight:600;line-height:1.4;margin:0}.tool-card-category{background-color:#f5f5f5;border-radius:6px;color:#666;flex-shrink:0;font-size:12px;font-weight:500;padding:4px 10px;white-space:nowrap}.tool-card-description{color:#666;flex:1 1;font-size:14px;line-height:1.6;margin:0 0 16px}.tool-card-footer{align-items:center;border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end;margin-top:auto;padding-top:12px}.tool-card-link{align-items:center;color:#333;display:flex;font-size:14px;font-weight:500;gap:6px;transition:color .2s ease}.tool-card:hover .tool-card-link{color:#2563eb}.toolbox-empty{color:#999}.toolbox-empty,.toolbox-loading{font-size:14px;padding:60px 20px;text-align:center}.toolbox-loading{color:#666}.toolbox-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:1000}.toolbox-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:600px;width:100%}.toolbox-modal-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px 24px}.toolbox-modal-header h2{color:#333;font-size:20px;font-weight:600;margin:0}.modal-close-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#666;cursor:pointer;display:flex;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.modal-close-btn:hover{background-color:#f5f5f5;color:#333}.toolbox-modal-body{flex:1 1;overflow-y:auto;padding:24px}.form-group{margin-bottom:20px}.form-label{color:#333;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.form-input,.form-textarea{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;box-sizing:border-box;color:#333;font-size:14px;padding:10px 12px;transition:all .2s ease;width:100%}.form-input:focus,.form-textarea:focus{border-color:#333;box-shadow:0 0 0 3px #0000001a;outline:none}.form-textarea{font-family:inherit;resize:vertical}.form-hint{color:#999;display:block;font-size:12px;margin-top:6px}.category-input-wrapper{position:relative}.category-suggestions{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 12px #0000001a;left:0;margin-top:4px;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:100}.category-suggestion-item{background:#0000;border:none;color:#333;cursor:pointer;font-size:14px;padding:10px 12px;text-align:left;transition:background-color .2s ease;width:100%}.category-suggestion-item:hover{background-color:#f5f5f5}.category-suggestion-item:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.category-suggestion-item:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.toolbox-modal-footer{border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.modal-cancel-btn,.modal-save-btn{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.modal-cancel-btn{background-color:#f5f5f5;color:#666}.modal-cancel-btn:hover{background-color:#e8e8e8;color:#333}.modal-save-btn{background-color:#333;color:#fff}.modal-save-btn:hover{background-color:#444;box-shadow:0 2px 4px #00000026;transform:translateY(-1px)}@media (max-width:768px){.toolbox-page{padding:16px}.toolbox-header{align-items:flex-start;flex-direction:column;gap:16px}.edit-mode-actions,.toolbox-header-actions{justify-content:flex-end;width:100%}.toolbox-title{font-size:24px}.category-filter{gap:8px;margin-bottom:20px;padding-bottom:16px}.category-btn{font-size:13px;padding:6px 12px}.tools-grid{gap:16px;grid-template-columns:1fr}.tool-card{padding:16px}.toolbox-modal{border-radius:12px 12px 0 0;margin:0;max-width:100%}.toolbox-modal-body{padding:20px}}
/*# sourceMappingURL=main.ccf46cb7.css.map*/