/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-600:oklch(57.7% .245 27.325);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-bold:700;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.visible\!{visibility:visible!important}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.start\!{inset-inline-start:var(--spacing)!important}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mt-2{margin-top:calc(var(--spacing) * 2)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.min-h-screen{min-height:100vh}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-white{background-color:var(--color-white)}.p-6{padding:calc(var(--spacing) * 6)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-3{padding-block:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-gray-600{color:var(--color-gray-600)}.text-gray-900{color:var(--color-gray-900)}.text-indigo-600{color:var(--color-indigo-600)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.underline{text-decoration-line:underline}.shadow,.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.select-all{-webkit-user-select:all;user-select:all}@media (hover:hover){.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}}@media (min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}:root{--color-primary-50:#edf1f8;--color-primary-100:#d6dfee;--color-primary-200:#aebfdc;--color-primary-300:#85a0cb;--color-primary-400:#4f719f;--color-primary-500:#2c4f82;--color-primary-600:#16335f;--color-primary-700:#122b50;--color-primary-800:#0e2240;--color-primary-900:#0a1930;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:14px;--transition-fast:.15s ease;--transition-base:.3s cubic-bezier(.4,0,.2,1);--sidebar-width:260px;--sidebar-collapsed:64px;--header-height:64px}*,:before,:after{box-sizing:border-box}body{color:#1e293b;-webkit-font-smoothing:antialiased;background:#f1f5f9;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-primary-200);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary-300)}.app-shell{height:100vh;display:flex;overflow:hidden}.main-wrapper{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.main-content{background:#f1f5f9;flex:1;padding:1.5rem;overflow-y:auto}@media (max-width:767px){.main-content{padding:1rem}}.main-content.cf-pre-auth{visibility:hidden}#sidebar{width:var(--sidebar-width);z-index:30;height:100%;transition:width var(--transition-base);background:#fff;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden;box-shadow:2px 0 16px #00000012}.sidebar-brand{height:var(--header-height);background:var(--color-primary-600);flex-shrink:0;align-items:center;gap:12px;padding:0 1rem;display:flex}.sidebar-brand-icon{background:#fff3;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.sidebar-brand-icon i{color:#fff;font-size:17px}.sidebar-brand-text{line-height:1.3;overflow:hidden}.sidebar-brand-name{color:#fff;white-space:nowrap;letter-spacing:-.01em;font-size:15px;font-weight:700}.sidebar-brand-sub{color:var(--color-primary-200);text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;font-size:10px}#sidebar-nav{flex:1;padding:.75rem .5rem;overflow-y:auto}.sb-group-label{letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;padding:12px 12px 6px;font-size:10px;font-weight:600}#sidebar.collapsed .sb-group-label{display:none!important}.nav-parent-btn{border-radius:var(--radius-lg);color:#475569;cursor:pointer;width:100%;transition:background var(--transition-fast);font-family:inherit;font-size:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.nav-parent-btn:hover{background:#4f46e50f}.nav-item-inner{align-items:center;gap:10px;width:100%;min-width:0;display:flex}.sb-label{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.sidebar-icon{text-align:center;color:#94a3b8;flex-shrink:0;width:20px;font-size:14px}.nav-arrow{color:#94a3b8;flex-shrink:0;font-size:10px;transition:transform .25s}.nav-arrow.rotated{transform:rotate(90deg)}.nav-badge{white-space:nowrap;border-radius:20px;padding:1px 6px;font-size:10px;font-weight:600}.nav-submenu{max-height:0;transition:max-height var(--transition-base);overflow:hidden}.nav-submenu.open{max-height:900px}.nav-leaf{border-radius:var(--radius-lg);color:#64748b;cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:10px;padding:7px 12px;font-size:12.5px;text-decoration:none;display:flex;position:relative}.nav-leaf:hover:not(.active){background:#f8fafc}.nav-leaf.active{background:var(--color-primary-50);font-weight:600;color:var(--color-primary-600)!important}.nav-leaf.active:before{content:"";background:var(--color-primary-600);border-radius:0 3px 3px 0;width:3px;position:absolute;top:4px;bottom:4px;left:0}.nav-leaf.active .leaf-dot{background:var(--color-primary-600)!important}.leaf-dot{background:#cbd5e1;border-radius:50%;flex-shrink:0;width:6px;height:6px}.sidebar-footer{border-top:1px solid #f1f5f9;flex-shrink:0;padding:12px 16px}.footer-version{align-items:center;gap:8px;margin-bottom:6px;display:flex}.footer-version-badge{background:var(--color-primary-50);color:var(--color-primary-600);border:1px solid var(--color-primary-100);border-radius:20px;align-items:center;gap:6px;padding:2px 8px;font-size:10.5px;font-weight:600;display:inline-flex}.footer-build{color:#94a3b8;font-size:10.5px}.footer-links{align-items:center;gap:10px;display:flex}.footer-links a{color:#94a3b8;transition:color var(--transition-fast);font-size:10.5px}.footer-links a:hover{color:var(--color-primary-600)}.footer-links-sep{color:#e2e8f0;font-size:10px}.footer-collapsed-icon{justify-content:center;display:none}.footer-collapsed-icon i{color:#cbd5e1;font-size:16px}#sidebar.collapsed{width:var(--sidebar-collapsed)}#sidebar.collapsed .sb-label,#sidebar.collapsed .sidebar-brand-text,#sidebar.collapsed .nav-arrow,#sidebar.collapsed .sb-group-label,#sidebar.collapsed .sidebar-footer-content{display:none!important}#sidebar.collapsed .nav-item-inner,#sidebar.collapsed .nav-parent-btn{justify-content:center}#sidebar.collapsed .nav-leaf{justify-content:center;padding-left:0;padding-right:0}#sidebar.collapsed .footer-collapsed-icon{display:flex}#sidebar.collapsed .nav-submenu{max-height:0!important}@media (max-width:767px){#sidebar{transition:transform var(--transition-base);z-index:50;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);width:260px!important}#sidebar.mobile-open{transform:translate(0);box-shadow:4px 0 24px #0000002e}}#sidebar-backdrop{z-index:40;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#00000080;display:none;position:fixed;inset:0}#sidebar-backdrop.show{display:block}#nav-flyout{z-index:100;opacity:0;pointer-events:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;width:224px;max-height:calc(100vh - 80px);transition:opacity .18s,transform .18s;display:flex;position:fixed;left:68px;overflow:hidden;transform:translate(-6px);box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f}#nav-flyout.visible{opacity:1;pointer-events:all;transform:translate(0)}#nav-flyout:before{content:"";background:#fff;border-bottom:1px solid #e2e8f0;border-left:1px solid #e2e8f0;width:10px;height:10px;position:absolute;top:20px;left:-5px;transform:rotate(45deg)}.flyout-header{background:#f8fafc;border-bottom:1px solid #f1f5f9;flex-shrink:0;align-items:center;gap:10px;padding:12px 16px;display:flex}.flyout-header i{color:var(--color-primary-600);font-size:13px}.flyout-header span{color:#1e293b;font-size:13px;font-weight:600}.flyout-body{flex:1;padding:6px 0;overflow-y:auto}.flyout-item{color:#374151;cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:10px;padding:8px 16px;font-size:12.5px;text-decoration:none;display:flex}.flyout-item:hover{color:var(--color-primary-600);background:#f8fafc}.flyout-item i{text-align:center;color:#94a3b8;width:14px;font-size:12px}.flyout-item:hover i{color:var(--color-primary-500)}.flyout-group-btn{color:#374151;cursor:pointer;width:100%;transition:background var(--transition-fast);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:8px 16px;font-family:inherit;font-size:12.5px;display:flex}.flyout-group-btn:hover{background:#f8fafc}.flyout-group-btn .flyout-group-left{align-items:center;gap:10px;display:flex}.flyout-group-btn i.group-icon{text-align:center;color:#94a3b8;width:14px;font-size:12px}.flyout-arrow-icon{color:#94a3b8;font-size:9px;transition:transform .2s}.flyout-arrow-icon.rotated{transform:rotate(90deg)}.flyout-sub{max-height:0;transition:max-height .2s;overflow:hidden}.flyout-sub.open{max-height:400px}.flyout-sub-item{color:#64748b;cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:8px;padding:6px 16px 6px 30px;font-size:12px;text-decoration:none;display:flex}.flyout-sub-item:hover{color:var(--color-primary-600);background:#f8fafc}.flyout-sub-item .flyout-dot{background:#cbd5e1;border-radius:50%;flex-shrink:0;width:5px;height:5px}#app-header{height:var(--header-height);z-index:20;background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;align-items:center;gap:12px;padding:0 1.25rem;display:flex;box-shadow:0 1px 4px #0000000f}.header-toggle{border-radius:var(--radius-md);color:#64748b;cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:8px;display:flex}.header-toggle:hover{color:#374151;background:#f1f5f9}.header-toggle i{font-size:15px}.header-mobile-title{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;font-weight:600;display:none;overflow:hidden}@media (max-width:767px){.header-mobile-title{display:block}#app-header{padding:0 1rem}}.header-spacer{flex:1}.header-divider{background:#e2e8f0;flex-shrink:0;width:1px;height:24px}@media (max-width:640px){.header-divider{display:none}}.header-notif-btn{border-radius:var(--radius-md);color:#64748b;cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;align-items:center;padding:8px;display:flex;position:relative}.header-notif-btn:hover{background:#f1f5f9}.header-notif-btn i{font-size:16px}.notif-dot{background:#ef4444;border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.notif-badge{color:#fff;text-align:center;background:#ef4444;border:2px solid #fff;border-radius:20px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:700;line-height:16px;display:flex;position:absolute;top:2px;right:2px}.header-user-btn{cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;border-radius:12px;align-items:center;gap:8px;padding:4px 8px 4px 4px;display:flex}.header-user-btn:hover{background:#f1f5f9}.user-avatar{background:var(--color-primary-600);width:32px;height:32px;box-shadow:0 0 0 2px var(--color-primary-200);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.user-avatar span{color:#fff;font-size:11px;font-weight:700}.user-info{text-align:left}.user-name{color:#1e293b;font-size:13px;font-weight:600;line-height:1.2}.user-role{color:#94a3b8;font-size:10.5px;line-height:1.2}.user-chevron{color:#94a3b8;font-size:10px}@media (max-width:640px){.user-info,.user-chevron{display:none}}.dropdown{display:none}.dropdown.show{display:block}.notif-dropdown{border-radius:var(--radius-xl);z-index:50;background:#fff;border:1px solid #e2e8f0;width:min(320px,90vw);position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 24px #0000001a}.notif-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.notif-title{color:#1e293b;font-size:13px;font-weight:600}.notif-mark-all{color:var(--color-primary-600);cursor:pointer;font-size:11.5px;font-weight:500}.notif-mark-all:hover{text-decoration:underline}.notif-list{max-height:280px;overflow-y:auto}.notif-item{cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid #f8fafc;gap:12px;padding:12px 16px;display:flex}.notif-item:hover{background:#f8fafc}.notif-item.unread{background:#6366f108}.notif-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-top:2px;display:flex}.notif-icon i{font-size:12px}.notif-icon.amber{background:#fef3c7}.notif-icon.amber i{color:#d97706}.notif-icon.green{background:#d1fae5}.notif-icon.green i{color:#059669}.notif-icon.red{background:#fee2e2}.notif-icon.red i{color:#dc2626}.notif-icon.blue{background:#dbeafe}.notif-icon.blue i{color:#2563eb}.notif-icon.purple{background:#ede9fe}.notif-icon.purple i{color:#7c3aed}.notif-content{flex:1;min-width:0}.notif-content-title{color:#1e293b;margin-bottom:2px;font-size:12.5px;font-weight:500}.notif-content-text{color:#64748b;white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.notif-content-time{color:#94a3b8;margin-top:2px;font-size:10.5px}.notif-unread-dot{background:var(--color-primary-500);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notif-footer{text-align:center;border-top:1px solid #f1f5f9;padding:10px 16px}.notif-footer a{color:var(--color-primary-600);font-size:12px;font-weight:500}.notif-footer a:hover{text-decoration:underline}.user-dropdown{border-radius:var(--radius-xl);z-index:50;background:#fff;border:1px solid #e2e8f0;width:208px;padding:4px 0;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 24px #0000001a}.user-dd-info{border-bottom:1px solid #f1f5f9;padding:12px 16px}.user-dd-name{color:#1e293b;font-size:13px;font-weight:600}.user-dd-email{color:#64748b;font-size:11.5px}.user-dd-item{color:#374151;cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:10px;padding:9px 16px;font-size:13px;text-decoration:none;display:flex}.user-dd-item:hover{background:#f8fafc}.user-dd-item i{text-align:center;color:#94a3b8;width:16px;font-size:12px}.user-dd-sep{border:none;border-top:1px solid #f1f5f9;margin:4px 0}.user-dd-item.danger{color:#dc2626}.user-dd-item.danger:hover{background:#fef2f2}.user-dd-item.danger i{color:#fca5a5}#breadcrumb{white-space:nowrap;background:#fff;border-bottom:1px solid #f1f5f9;flex-shrink:0;align-items:center;gap:0;padding:10px 1.5rem;display:flex;overflow-x:auto}@media (max-width:767px){#breadcrumb{padding:8px 1rem}}.bc-item{color:#94a3b8;transition:color var(--transition-fast);white-space:nowrap;align-items:center;gap:4px;font-size:12px;text-decoration:none;display:flex}.bc-item:hover{color:var(--color-primary-600)}.bc-item i{font-size:10px}.bc-sep{color:#cbd5e1;flex-shrink:0;margin:0 8px;font-size:9px}.bc-current{color:#1e293b;white-space:nowrap;font-size:12px;font-weight:500}.page-header{flex-direction:column;gap:12px;margin-bottom:1.5rem;display:flex}@media (min-width:640px){.page-header{flex-direction:row;justify-content:space-between;align-items:flex-start}}.page-title{color:#0f172a;letter-spacing:-.02em;font-size:20px;font-weight:700}.page-subtitle{color:#64748b;margin-top:2px;font-size:13px}@media (max-width:640px){.page-title{font-size:18px}}.tb-btn{color:#475569;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:#fff;border:1px solid #e2e8f0;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12.5px;font-weight:500;display:inline-flex}.tb-btn:hover{border-color:var(--color-primary-200);color:var(--color-primary-600);background:#f8fafc}.tb-btn.active{border-color:var(--color-primary-600);color:var(--color-primary-600);background:var(--color-primary-50)}.tb-btn-primary{background:var(--color-primary-600);color:#fff;border-color:var(--color-primary-600)}.tb-btn-primary:hover{background:var(--color-primary-700);border-color:var(--color-primary-700);color:#fff}.tb-btn-secondary{color:#475569;background:#fff;border-color:#e2e8f0}.tb-btn-secondary:hover{border-color:var(--color-primary-200);color:var(--color-primary-600);background:#f8fafc}.tb-btn i{font-size:12px}.badge{border-radius:20px;align-items:center;gap:5px;padding:2px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.badge-active{color:#166534;background:#dcfce7}.badge-inactive{color:#64748b;background:#f1f5f9}.badge-pending{color:#854d0e;background:#fef9c3}.badge-info{color:#1e40af;background:#dbeafe}.badge-warning{color:#92400e;background:#fef3c7}.badge-danger{color:#991b1b;background:#fee2e2}.badge-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.badge-active .badge-dot{background:#22c55e}.badge-inactive .badge-dot{background:#94a3b8}.badge-pending .badge-dot{background:#ca8a04}.badge-info .badge-dot{background:#3b82f6}.badge-warning .badge-dot{background:#d97706}.badge-danger .badge-dot{background:#ef4444}.badge-pulse{animation:1.6s ease-in-out infinite badge-pulse}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.55}}.badge-value-type{color:#1e40af;vertical-align:middle;background:#dbeafe;margin-left:6px;font-size:10px}.popup-menu{border-radius:var(--radius-lg);z-index:200;opacity:0;pointer-events:none;background:#fff;border:1px solid #e2e8f0;min-width:168px;padding:4px;transition:opacity .15s,transform .15s;position:absolute;transform:translateY(-4px);box-shadow:0 8px 24px #0000001a,0 2px 8px #0000000f}.popup-menu.open{opacity:1;pointer-events:all;transform:translateY(0)}.pm-item{border-radius:var(--radius-md);color:#374151;cursor:pointer;transition:background var(--transition-fast);text-align:left;background:0 0;border:none;align-items:center;gap:9px;width:100%;padding:7px 10px;font-family:inherit;font-size:12.5px;display:flex}.pm-item:hover{color:var(--color-primary-600);background:#f8fafc}.pm-item .pm-icon{text-align:center;color:#9ca3af;width:16px;font-size:12px}.pm-item:hover .pm-icon{color:var(--color-primary-500)}.pm-item.danger{color:#dc2626}.pm-item.danger:hover{color:#dc2626;background:#fef2f2}.pm-item.danger .pm-icon{color:#fca5a5}.pm-divider{background:#f1f5f9;height:1px;margin:4px 0}#row-ctx-menu{border-radius:var(--radius-lg);z-index:300;background:#fff;border:1px solid #e2e8f0;min-width:168px;padding:4px;display:none;position:fixed;box-shadow:0 8px 24px #0000001f}#row-ctx-menu.show{display:block}.filter-badge{color:#fff;background:#ef4444;border-radius:20px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:700;line-height:1;display:none}.filter-badge.show{display:inline-flex}#filter-bar{background:#fafbfc;border-top:1px solid #f1f5f9;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;display:none}#filter-bar.show{display:flex}.filter-chip{background:var(--color-primary-50);color:var(--color-primary-700);border:1px solid var(--color-primary-100);border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:500;display:inline-flex}.filter-chip-remove{background:var(--color-primary-100);cursor:pointer;width:14px;height:14px;transition:background var(--transition-fast);color:var(--color-primary-600);border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:8px;display:flex}.filter-chip-remove:hover{background:var(--color-primary-200)}.filter-clear-all{color:#ef4444;cursor:pointer;background:0 0;border:none;margin-left:auto;font-family:inherit;font-size:11.5px;font-weight:500}.filter-clear-all:hover{text-decoration:underline}.filter-field{margin-bottom:16px}#modal-overlay{z-index:1050;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;justify-content:center;align-items:center;padding:1rem;display:none;position:fixed;inset:0}#modal-overlay.show{display:flex}.modal-box{background:#fff;border-radius:16px;flex-direction:column;width:100%;max-width:520px;max-height:calc(100vh - 2rem);animation:.2s modal-scale-in;display:flex;box-shadow:0 16px 48px #00000026}.cf-modal-backdrop{z-index:1050;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.cf-modal{background:#fff;border-radius:16px;flex-direction:column;width:100%;max-height:calc(100vh - 2rem);animation:.2s modal-scale-in;display:flex;box-shadow:0 16px 48px #00000026}.cf-modal-sm{max-width:400px}.cf-modal-md{max-width:560px}.cf-modal-lg{max-width:760px}.modal-header{border-bottom:1px solid #f1f5f9;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header-title{color:#1e293b;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.modal-header-title i{color:var(--color-primary-600)}.modal-close{border-radius:var(--radius-md);color:#94a3b8;cursor:pointer;width:32px;height:32px;transition:background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.modal-close:hover{color:#475569;background:#f1f5f9}.modal-body{flex:1;padding:20px;overflow-y:auto}.modal-footer{border-top:1px solid #f1f5f9;flex-shrink:0;align-items:center;gap:8px;padding:12px 20px;display:flex}.modal-footer-actions{gap:8px;margin-left:auto;display:flex}.modal-body-tabs{padding:0}.cf-loading-placeholder{text-align:center;color:#94a3b8;padding:24px}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.cf-confirm-backdrop{z-index:1060;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.cf-confirm{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:400px;padding:2rem;animation:.2s modal-scale-in;box-shadow:0 16px 48px #00000026}.cf-confirm-icon{border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 1rem;font-size:1.5rem;display:flex}.cf-confirm-danger{color:#dc2626;background:#fee2e2}.cf-confirm-warning{color:#d97706;background:#fef3c7}.cf-confirm-info{background:var(--color-primary-50);color:var(--color-primary-600)}.cf-confirm-title{color:#1e293b;margin-bottom:.5rem;font-size:1.1rem;font-weight:700}.cf-confirm-message{color:#64748b;margin-bottom:1.5rem;font-size:13px}.cf-confirm-sub{color:#94a3b8;margin-top:4px;font-size:12px;display:inline-block}.cf-confirm-actions{justify-content:center;gap:.5rem;display:flex}.cf-confirm-cancel{border-radius:var(--radius-md);color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;padding:.5rem 1.25rem;font-size:13px}.cf-confirm-cancel:hover{background:#f8fafc}.cf-confirm-ok{border-radius:var(--radius-md);color:#fff;cursor:pointer;border:none;padding:.5rem 1.25rem;font-size:13px;font-weight:600}.cf-confirm-btn-danger{background:#dc2626}.cf-confirm-btn-danger:hover{background:#b91c1c}.cf-confirm-btn-warning{color:#fff;background:#d97706}.cf-confirm-btn-info{background:var(--color-primary-600)}.cf-alert{border-radius:var(--radius-md);border-left:4px solid #0000;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:13px;display:flex}.cf-alert-success{color:#166534;background:#f0fdf4;border-left-color:#22c55e}.cf-alert-error{color:#991b1b;background:#fef2f2;border-left-color:#ef4444}.cf-alert-warning{color:#92400e;background:#fffbeb;border-left-color:#f59e0b}.cf-alert-info{background:var(--color-primary-50);color:var(--color-primary-800);border-left-color:var(--color-primary-500)}.cf-alert i{flex-shrink:0;font-size:1rem}.cf-alert-close{cursor:pointer;opacity:.5;background:0 0;border:none;margin-left:auto;font-size:1.2rem;line-height:1}.cf-alert-close:hover{opacity:1}.cf-toast-container{z-index:9999;flex-direction:column;gap:.5rem;max-width:380px;display:flex;position:fixed;top:1rem;right:1rem}.cf-toast{background:#fff;border-left:4px solid #0000;border-radius:10px;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;animation:.3s toast-slide-in;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 20px #0000001f}.cf-toast-success{border-left-color:#22c55e}.cf-toast-error{border-left-color:#ef4444}.cf-toast-warning{border-left-color:#f59e0b}.cf-toast-info{border-left-color:var(--color-primary-500)}.cf-toast-icon{margin-top:2px;font-size:1.1rem}.cf-toast-success .cf-toast-icon{color:#22c55e}.cf-toast-error .cf-toast-icon{color:#ef4444}.cf-toast-warning .cf-toast-icon{color:#f59e0b}.cf-toast-info .cf-toast-icon{color:var(--color-primary-500)}.cf-toast-body{flex:1}.cf-toast-title{color:#1e293b;font-size:13px;font-weight:600}.cf-toast-message{color:#64748b;margin-top:2px;font-size:12.5px}.cf-toast-close{color:#9ca3af;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.2rem;line-height:1}.cf-toast-close:hover{color:#4b5563}.cf-toast-progress{height:3px;animation:4s linear forwards toast-progress;position:absolute;bottom:0;left:0}.cf-toast-success .cf-toast-progress{background:#22c55e}.cf-toast-error .cf-toast-progress{background:#ef4444}.cf-toast-warning .cf-toast-progress{background:#f59e0b}.cf-toast-info .cf-toast-progress{background:var(--color-primary-500)}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-progress{0%{width:100%}to{width:0%}}.cf-tabs{background:#fafbff;border-bottom:1px solid #f1f5f9;gap:0;padding:0 20px;display:flex}.cf-tab{color:#64748b;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 16px;font-family:inherit;font-size:12.5px;font-weight:500;display:inline-flex}.cf-tab:hover{color:var(--color-primary-600)}.cf-tab.active{color:var(--color-primary-600);border-bottom-color:var(--color-primary-600);font-weight:600}.cf-tab i{font-size:11px}.cf-tab-content-pad{padding:20px}.form-label{color:#374151;margin-bottom:6px;font-size:12.5px;font-weight:500;display:block}.form-input,.form-select{border-radius:var(--radius-md);width:100%;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);color:#1e293b;background:#fff;border:1px solid #e2e8f0;outline:none;padding:8px 12px;font-family:inherit;font-size:13px;display:block}.form-input:focus,.form-select:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #6366f11a}.form-error{color:#dc2626;margin-top:4px;font-size:12px;display:none}.cf-form-group{margin-bottom:16px}.cf-form-group:last-child{margin-bottom:0}.cf-form-row{gap:16px;display:grid}.cf-form-row-2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:640px){.cf-form-row-2{grid-template-columns:1fr}}.cf-code-input-group{align-items:center;display:flex}.cf-code-prefix{color:#64748b;white-space:nowrap;background:#f1f5f9;border:1px solid #e2e8f0;border-right:none;border-radius:6px 0 0 6px;padding:7px 8px;font-family:monospace;font-size:12px}.cf-code-suffix{border-radius:0 6px 6px 0;font-family:monospace;font-size:12px}.cf-code-hint{color:#94a3b8;margin-top:4px;font-size:11px}.cf-system-note{color:#f59e0b;margin-top:4px;font-size:11px;display:none}.cf-system-note i{font-size:10px}.cf-input-readonly{color:#64748b;background:#f8fafc}.cf-input-disabled{color:#94a3b8;background:#f8fafc}.cf-required{color:#ef4444}.cf-muted-dash{color:#94a3b8;font-size:11.5px}.cf-select-wrap{width:100%;position:relative}.cf-select-trigger{border-radius:var(--radius-md);cursor:pointer;width:100%;min-height:38px;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);color:#1e293b;background:#fff;border:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 32px 4px 10px;font-family:inherit;font-size:13px;display:flex;position:relative}.cf-select-trigger:hover{border-color:#cbd5e1}.cf-select-trigger.open{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #6366f11a}.cf-select-trigger.disabled{cursor:not-allowed;opacity:.6;background:#f8fafc}.cf-select-arrow{color:#94a3b8;pointer-events:none;transition:transform var(--transition-fast);font-size:10px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.cf-select-trigger.open .cf-select-arrow{transform:translateY(-50%)rotate(180deg)}.cf-select-placeholder{color:#94a3b8;-webkit-user-select:none;user-select:none;font-size:13px}.cf-select-single-value{align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.cf-select-single-value .cf-opt-icon,.cf-select-single-value .cf-opt-avatar{flex-shrink:0}.cf-select-single-value span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cf-select-tag{background:var(--color-primary-50);color:var(--color-primary-700);border:1px solid var(--color-primary-100);white-space:nowrap;border-radius:20px;align-items:center;gap:4px;max-width:180px;padding:2px 6px 2px 8px;font-size:11.5px;font-weight:500;display:inline-flex}.cf-select-tag span{text-overflow:ellipsis;overflow:hidden}.cf-select-tag-remove{background:var(--color-primary-100);width:14px;height:14px;color:var(--color-primary-600);cursor:pointer;transition:background var(--transition-fast);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:8px;display:inline-flex}.cf-select-tag-remove:hover{background:var(--color-primary-200)}.cf-select-dropdown{border-radius:var(--radius-lg);z-index:1200;background:#fff;border:1px solid #e2e8f0;flex-direction:column;max-height:280px;display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 8px 24px #0000001a,0 2px 8px #0000000f}.cf-select-dropdown.open{display:flex}.cf-select-search-wrap{flex-shrink:0;padding:8px 8px 4px;position:relative}.cf-select-search{border-radius:var(--radius-md);color:#1e293b;width:100%;transition:border-color var(--transition-fast);background:#fff;border:1px solid #e2e8f0;outline:none;padding:7px 10px 7px 30px;font-family:inherit;font-size:12.5px}.cf-select-search:focus{border-color:var(--color-primary-400)}.cf-select-search-wrap i{color:#94a3b8;pointer-events:none;margin-top:2px;font-size:11px;position:absolute;top:50%;left:18px;transform:translateY(-50%)}.cf-select-search-hint{color:#94a3b8;padding:2px 12px 4px;font-size:11px;display:none}.cf-select-all-bar{color:#64748b;cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid #f1f5f9;flex-shrink:0;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.cf-select-all-bar:hover{background:#f8fafc}.cf-select-all-bar input[type=checkbox]{accent-color:var(--color-primary-600);cursor:pointer;width:14px;height:14px}.cf-select-options{flex:1;padding:4px 0;overflow-y:auto}.cf-select-option{color:#374151;cursor:pointer;transition:background var(--transition-fast);text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 12px;font-size:13px;display:flex}.cf-select-option:hover{background:#f8fafc}.cf-select-option.selected{background:var(--color-primary-50);color:var(--color-primary-700)}.cf-select-option.highlighted{background:#f1f5f9}.cf-select-option.disabled{opacity:.4;cursor:not-allowed}.cf-select-option input[type=checkbox]{accent-color:var(--color-primary-600);cursor:pointer;flex-shrink:0;width:14px;height:14px}.cf-opt-content{flex-direction:column;flex:1;min-width:0;display:flex}.cf-opt-title{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.cf-opt-desc{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:11.5px;overflow:hidden}.cf-opt-icon{background:var(--color-primary-50);width:24px;height:24px;color:var(--color-primary-600);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:flex}.cf-opt-avatar{object-fit:cover;background:#f1f5f9;border-radius:50%;flex-shrink:0;width:28px;height:28px}.cf-select-loading,.cf-select-empty{color:#94a3b8;justify-content:center;align-items:center;gap:8px;padding:16px 12px;font-size:12.5px;display:flex}.cf-select-loading i{animation:1s linear infinite cf-spin}@keyframes cf-spin{to{transform:rotate(360deg)}}.cf-freetag-trigger{cursor:text;padding-right:10px}.cf-freetag-trigger:focus-within{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #6366f11a}.cf-freetag-input{color:#1e293b;background:0 0;border:none;outline:none;flex:1;min-width:80px;padding:2px 0;font-family:inherit;font-size:13px}.cf-freetag-input::placeholder{color:#94a3b8;font-size:13px}.cf-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.cf-toggle.disabled{opacity:.5;cursor:not-allowed}.cf-toggle input[type=checkbox]{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.cf-toggle-track{transition:background var(--transition-fast);background:#cbd5e1;border-radius:999px;flex-shrink:0;align-items:center;display:flex;position:relative}.cf-toggle-thumb{transition:transform var(--transition-fast);background:#fff;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;box-shadow:0 1px 3px #00000026}.cf-toggle input:checked~.cf-toggle-track{background:var(--color-primary-600)}.cf-toggle-sm .cf-toggle-track{width:28px;height:16px;padding:2px}.cf-toggle-sm .cf-toggle-thumb{width:12px;height:12px;left:2px}.cf-toggle-sm input:checked~.cf-toggle-track .cf-toggle-thumb{transform:translate(12px)}.cf-toggle-md .cf-toggle-track{width:36px;height:20px;padding:2px}.cf-toggle-md .cf-toggle-thumb{width:16px;height:16px;left:2px}.cf-toggle-md input:checked~.cf-toggle-track .cf-toggle-thumb{transform:translate(16px)}.cf-toggle-lg .cf-toggle-track{width:44px;height:24px;padding:2px}.cf-toggle-lg .cf-toggle-thumb{width:20px;height:20px;left:2px}.cf-toggle-lg input:checked~.cf-toggle-track .cf-toggle-thumb{transform:translate(20px)}.cf-toggle-label{color:#1e293b;align-items:center;gap:6px;margin-top:1px;font-size:13px;font-weight:500;display:inline-flex}.cf-checkbox-list{flex-direction:column;gap:10px;display:flex}.cf-checkbox-list.inline{flex-flow:wrap;gap:16px}.cf-checkbox-item{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.cf-checkbox-item.disabled{opacity:.5;cursor:not-allowed}.cf-checkbox-item input[type=checkbox]{accent-color:var(--color-primary-600);cursor:pointer;flex-shrink:0;width:16px;height:16px;margin-top:2px}.cf-checkbox-item.disabled input{cursor:not-allowed}.cf-checkbox-content{flex-direction:column;min-width:0;display:flex}.cf-checkbox-label{color:#1e293b;font-size:13px;font-weight:500}.cf-checkbox-desc{color:#64748b;margin-top:1px;font-size:12px;line-height:1.4}.cf-radio-group{flex-direction:column;gap:10px;display:flex}.cf-radio-group.inline{flex-flow:wrap;gap:16px}.cf-radio-item{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.cf-radio-item.disabled{opacity:.5;cursor:not-allowed}.cf-radio-item input[type=radio]{accent-color:var(--color-primary-600);cursor:pointer;flex-shrink:0;width:16px;height:16px;margin-top:2px}.cf-radio-item.disabled input{cursor:not-allowed}.cf-radio-content{flex-direction:column;min-width:0;display:flex}.cf-radio-label{color:#1e293b;font-size:13px;font-weight:500}.cf-radio-desc{color:#64748b;margin-top:1px;font-size:12px;line-height:1.4}.cf-role-checkbox-grid{border-radius:var(--radius-md);border:1px solid #f1f5f9;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:360px;padding:8px;display:grid;overflow-y:auto}@media (max-width:640px){.cf-role-checkbox-grid{grid-template-columns:1fr}}.cf-role-checkbox-item{border-radius:var(--radius-md);transition:all var(--transition-fast);border:1px solid #f1f5f9;align-items:center;gap:10px;padding:8px 12px;font-size:12.5px;display:flex}.cf-role-checkbox-interactive{cursor:pointer}.cf-role-checkbox-interactive:hover{border-color:var(--color-primary-200);background:#f8fafc}.cf-role-check{accent-color:var(--color-primary-600);cursor:pointer;flex-shrink:0;width:15px;height:15px}.cf-role-info{flex-direction:column;min-width:0;display:flex}.cf-role-name{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:500;overflow:hidden}.cf-role-code{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;font-family:monospace;font-size:10.5px;overflow:hidden}.cf-role-badges{flex-wrap:wrap;gap:4px;display:flex}.cf-detail-stack{flex-direction:column;gap:14px;display:flex}.cf-detail-row{gap:24px;display:flex}.cf-detail-label{margin-bottom:2px}.cf-detail-value{color:#1e293b;font-size:13px;font-weight:500}.cf-detail-value-mono{color:#475569;font-family:monospace;font-size:12px}.cf-detail-value-muted{color:#94a3b8;font-size:11.5px}.cf-view-icon-display,.cf-view-color-display{flex-wrap:wrap;align-items:center;gap:8px;min-height:30px;display:inline-flex}.cf-view-icon-box{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;display:inline-flex}.cf-view-color-dot{border:1px solid #0f172a14;border-radius:999px;flex-shrink:0;width:18px;height:18px;display:inline-block;box-shadow:inset 0 1px #ffffff73}.cf-detail-divider{border-top:1px solid #f1f5f9;padding-top:12px}.cf-icon-input-group{align-items:center;gap:8px;display:flex}.cf-icon-input-group .form-input{flex:1;min-width:0}.cf-icon-picker-btn{flex-shrink:0;padding:7px 10px}.cf-icon-preview{border-radius:var(--radius-md);color:#475569;background:#f8fafc;border:1px solid #e2e8f0;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:inline-flex}.cf-icon-preview:empty{color:#cbd5e1;border-style:dashed}.cf-icon-preview:empty:before{content:"";opacity:.65;font-family:"Font Awesome 6 Free";font-size:14px;font-weight:900}.cf-icon-input-group-compact,.cf-color-input-group-compact{cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);background:#fff;border:1px solid #e2e8f0;border-radius:10px;gap:10px;padding:8px 12px 8px 8px;position:relative;box-shadow:0 1px 2px #0f172a0a,0 1px 3px #0f172a14}.cf-icon-input-group-compact:hover,.cf-color-input-group-compact:hover{border-color:#cbd5e1}.cf-icon-input-group-compact:focus-within,.cf-color-input-group-compact:focus-within{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #6366f11a,0 1px 3px #0f172a14}.cf-icon-input-group-compact .cf-icon-preview,.cf-icon-input-group-compact .form-input,.cf-color-input-group-compact .cf-color-preview-dot,.cf_color-input_group-compact .form-input{z-index:1;pointer-events:none;position:relative}.cf-icon-input-group-compact .cf-icon-preview,.cf-color-input-group-compact .cf-color-preview-dot{border:1px solid #0f172a14;border-radius:7px;width:28px;height:28px;box-shadow:inset 0 1px #fff6}.cf-icon-input-group-compact .cf-icon-preview{font-size:14px}.cf-icon-input-group-compact .form-input,.cf-color-input-group-compact .form-input{box-shadow:none;color:#475569;background:0 0;border:none;padding:0;font-weight:500}.cf-icon-input-group-compact .form-input:focus,.cf-color-input-group-compact .form-input:focus{box-shadow:none;border:none}.cf-icon-input-group-compact .cf-input-readonly,.cf-color-input-group-compact .cf-input-readonly{color:#475569;background:0 0}.cf-icon-input-group-compact .form-input::placeholder,.cf-color-input-group-compact .form-input::placeholder{color:#94a3b8;font-weight:400}.cf-icon-input-group-compact .cf-icon-picker-btn,.cf-color-input-group-compact .cf-color-swatch-btn{border-radius:inherit;color:#0000;z-index:2;background:0 0;border:none;width:auto;height:auto;padding:0;position:absolute;inset:0}.cf-icon-input-group-compact .cf-icon-picker-btn i,.cf-color-input-group-compact .cf-color-swatch-btn i{opacity:0}.cf-icon-grid{grid-template-columns:repeat(8,1fr);gap:6px;max-height:320px;display:grid;overflow-y:auto}.cf-icon-grid-item{aspect-ratio:1;border-radius:var(--radius-md);cursor:pointer;color:#475569;width:100%;transition:all var(--transition-fast);background:#fff;border:1px solid #e2e8f0;outline:none;justify-content:center;align-items:center;padding:0;font-size:16px;display:inline-flex}.cf-icon-grid-item:hover{border-color:var(--color-primary-300);color:var(--color-primary-600);background:var(--color-primary-50);transform:scale(1.08)}.cf-color-input-group{align-items:center;gap:8px;display:flex}.cf-color-input-group .form-input{flex:1;min-width:0}.cf-color-preview-dot{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;flex-shrink:0;width:24px;height:24px;display:inline-block}.cf-color-swatch-btn{border-radius:var(--radius-md);cursor:pointer;color:#94a3b8;width:36px;height:36px;transition:all var(--transition-fast);background:#fff;border:1px solid #e2e8f0;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.cf-color-swatch-btn:hover{border-color:var(--color-primary-300);color:var(--color-primary-600);background:var(--color-primary-50)}.cf-cp-popover{z-index:1100;border-radius:var(--radius-lg);background:#fff;border:1px solid #e2e8f0;width:270px;position:fixed;overflow:hidden;box-shadow:0 8px 32px #00000024,0 2px 8px #00000014}.cf-cp-preview-bar{padding:10px 10px 0}.cf-cp-preview-block{border-radius:var(--radius-md);border:1px solid #e2e8f0;width:100%;height:32px;transition:background 50ms}.cf-cp-body{padding:10px}.cf-cp-canvas-wrap{border-radius:var(--radius-md);cursor:crosshair;margin-bottom:10px;line-height:0;position:relative;overflow:hidden}.cf-cp-canvas-wrap canvas{border-radius:var(--radius-md);width:100%;height:150px;display:block}.cf-cp-sv-cursor{pointer-events:none;z-index:2;border:2px solid #fff;border-radius:50%;width:16px;height:16px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0003,0 2px 4px #0003}.cf-cp-hue-wrap{cursor:pointer;height:14px;margin-bottom:10px;line-height:0;position:relative}.cf-cp-hue-wrap canvas{border-radius:7px;width:100%;height:14px;display:block}.cf-cp-hue-cursor{pointer-events:none;z-index:2;background:0 0;border:2px solid #fff;border-radius:50%;width:18px;height:18px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #00000026,0 2px 6px #00000040}.cf-cp-swatch-grid{grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:10px;display:grid}.cf-cp-swatch{aspect-ratio:1;cursor:pointer;width:100%;transition:transform var(--transition-fast), border-color var(--transition-fast);border:2px solid #0000;border-radius:4px;outline:none;padding:0}.cf-cp-swatch:hover{border-color:#fff9;transform:scale(1.15)}.cf-cp-swatch.active{box-shadow:0 0 0 2px var(--color-primary-600);border-color:#fff;transform:scale(1.1)}.cf-cp-hex-row{align-items:center;gap:4px;margin-bottom:10px;display:flex}.cf-cp-hex-label{color:#64748b;flex-shrink:0;padding:0 4px;font-size:13px;font-weight:600}.cf-cp-hex-input{border-radius:var(--radius-md);color:#1e293b;transition:border-color var(--transition-fast);background:#fff;border:1px solid #e2e8f0;outline:none;flex:1;padding:6px 10px;font-family:monospace;font-size:12.5px}.cf-cp-hex-input:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #6366f11f}.cf-cp-actions{gap:6px;display:flex}.cf-cp-action-btn{flex:1;justify-content:center;padding:5px 8px;font-size:12px}.cf-cbt-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.cf-cbt-search{flex:1;min-width:160px;position:relative}.cf-cbt-search i{color:#94a3b8;pointer-events:none;font-size:11px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.cf-cbt-search input{border-radius:var(--radius-md);color:#1e293b;border:1px solid #e2e8f0;outline:none;width:100%;padding:6px 10px 6px 30px;font-family:inherit;font-size:12.5px}.cf-cbt-search input:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #6366f11a}.cf-cbt-tree{border-radius:var(--radius-md);border:1px solid #f1f5f9;max-height:360px;padding:8px 0;overflow-y:auto}.cf-cbt-row{transition:background var(--transition-fast);align-items:center;gap:6px;padding:5px 12px;font-size:12.5px;display:flex}.cf-cbt-row:hover{background:#f8fafc}.cf-cbt-toggle{color:#94a3b8;cursor:pointer;width:18px;height:18px;transition:all var(--transition-fast);background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:9px;display:inline-flex}.cf-cbt-toggle:hover{background:var(--color-primary-50);color:var(--color-primary-600)}.cf-cbt-leaf-dot{background:#cbd5e1;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin:0 6px}.cf-cbt-check-label{cursor:pointer;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.cf-cbt-check{accent-color:var(--color-primary-600);cursor:pointer;flex-shrink:0;width:14px;height:14px}.cf-cbt-name{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.cf-cbt-empty{text-align:center;color:#94a3b8;padding:24px}.cf-cbt-empty i{margin-bottom:8px;font-size:20px;display:block}.cf-cbt-error{text-align:center;color:#ef4444;padding:24px}.cf-cbt-code-tag{margin-left:6px;font-size:10px}.cf-cbt-assigned-badge{margin-left:8px;font-size:9px}.cf-fu-avatar-wrap{flex-direction:column;align-items:center;gap:8px;display:flex}.cf-fu-avatar-circle{flex-shrink:0;width:96px;height:96px;position:relative}.cf-fu-avatar-preview{background:#f8fafc;border:2px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;display:flex;overflow:hidden}.cf-fu-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.cf-fu-avatar-placeholder{color:#cbd5e1;justify-content:center;align-items:center;width:100%;height:100%;font-size:32px;display:flex}.cf-fu-avatar-camera{background:var(--color-primary-600);color:#fff;cursor:pointer;width:28px;height:28px;transition:background var(--transition-fast);border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:11px;display:flex;position:absolute;bottom:0;right:0;box-shadow:0 2px 6px #00000026}.cf-fu-avatar-camera:hover{background:var(--color-primary-700)}.cf-fu-avatar-overlay{color:#fff;z-index:2;background:#00000059;border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex;position:absolute;inset:0}.cf-fu-avatar-hint{color:#94a3b8;text-align:center;font-size:11px}.cf-fu-hidden-input{display:none!important}.cf-fu-dropzone{border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);background:#fafbff;border:2px dashed #e2e8f0;padding:24px 16px}.cf-fu-dropzone:hover,.cf-fu-dropzone-over{border-color:var(--color-primary-400);background:var(--color-primary-50)}.cf-fu-dropzone-compact{margin-bottom:12px;padding:12px 16px}.cf-fu-dropzone-inner{pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex}.cf-fu-dropzone-icon{color:#cbd5e1;font-size:24px}.cf-fu-dropzone:hover .cf-fu-dropzone-icon,.cf-fu-dropzone-over .cf-fu-dropzone-icon{color:var(--color-primary-400)}.cf-fu-dropzone-text{color:#475569;font-size:13px;font-weight:500}.cf-fu-dropzone-hint{color:#94a3b8;font-size:11.5px}.cf-fu-file-card{border-radius:var(--radius-lg);background:#fafbff;border:1px solid #e2e8f0;align-items:center;gap:12px;padding:12px 14px;display:flex}.cf-fu-file-card-icon{color:#64748b;text-align:center;flex-shrink:0;width:32px;font-size:24px}.cf-fu-file-card-info{flex:1;min-width:0}.cf-fu-file-card-name{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.cf-fu-file-card-meta{color:#94a3b8;margin-top:2px;font-size:11.5px}.cf-fu-file-card-status{color:#22c55e;align-items:center;gap:4px;margin-top:4px;font-size:11.5px;display:flex}.cf-fu-file-card-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.cf-fu-single-empty{color:#cbd5e1;border-radius:var(--radius-lg);border:1px dashed #e2e8f0;justify-content:center;align-items:center;gap:6px;padding:16px;font-size:12.5px;display:flex}.cf-fu-progress-wrap{background:#f1f5f9;border-radius:4px;height:4px;margin-top:6px;overflow:hidden}.cf-fu-progress-wrap-sm{height:3px;margin-top:4px}.cf-fu-progress-bar{background:var(--color-primary-500);border-radius:4px;height:100%;transition:width .2s}.cf-fu-file-action{border-radius:var(--radius-md);color:#64748b;cursor:pointer;width:28px;height:28px;transition:all var(--transition-fast);background:#fff;border:1px solid #e2e8f0;justify-content:center;align-items:center;padding:0;font-size:12px;display:inline-flex}.cf-fu-file-action:hover{color:#374151;background:#f8fafc;border-color:#cbd5e1}.cf-fu-file-action-danger{color:#ef4444;border-color:#fecaca}.cf-fu-file-action-danger:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.cf-fu-table{border-collapse:collapse;width:100%;font-size:12.5px}.cf-fu-table thead th{text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;text-align:left;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #f1f5f9;padding:6px 10px;font-size:10.5px;font-weight:600}.cf-fu-table tbody td{vertical-align:middle;color:#374151;border-bottom:1px solid #f8fafc;padding:8px 10px}.cf-fu-table tbody tr:last-child td{border-bottom:none}.cf-fu-table tbody tr:hover td{background:#fafbff}.cf-fu-table-num{color:#94a3b8;text-align:center;width:32px}.cf-fu-table-size{color:#94a3b8;white-space:nowrap;width:80px}.cf-fu-table-doctype{width:140px}.cf-fu-table-actions{text-align:right;width:80px}.cf-fu-table-file{align-items:center;gap:8px;display:flex}.cf-fu-table-file-icon{color:#94a3b8;flex-shrink:0;font-size:14px}.cf-fu-table-file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cf-fu-table-uploading{color:var(--color-primary-500);font-size:11px;font-weight:600}.cf-fu-doctype-select{border-radius:var(--radius-sm);color:#374151;background:#fff;border:1px solid #e2e8f0;outline:none;width:100%;padding:4px 8px;font-family:inherit;font-size:12px}.cf-fu-doctype-select:focus{border-color:var(--color-primary-400)}.cf-fu-multi-empty{color:#cbd5e1;justify-content:center;align-items:center;gap:6px;padding:16px;font-size:12.5px;display:flex}.cf-fu-multi-footer{color:#94a3b8;text-align:right;padding:6px 10px 0;font-size:11px}.table-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;position:relative;box-shadow:0 1px 3px #0000000a}.table-toolbar-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.toolbar-search{align-items:center;display:flex;position:relative}.toolbar-search i{color:#94a3b8;pointer-events:none;font-size:12px;position:absolute;left:10px}.toolbar-search input{border-radius:var(--radius-md);width:260px;max-width:100%;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);color:#1e293b;background:#fff;border:1px solid #e2e8f0;outline:none;padding:7px 12px 7px 32px;font-family:inherit;font-size:13px}.toolbar-search input:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #6366f11a}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (max-width:640px){.table-toolbar-top{flex-direction:column;align-items:stretch}.toolbar-search,.toolbar-search input{width:100%}.toolbar-actions{flex-wrap:wrap;justify-content:center}}.table-toolbar-bottom{border-top:1px solid #f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}@media (max-width:640px){.table-toolbar-bottom{flex-direction:column;align-items:center}.toolbar-row-info,.toolbar-pagination{flex-wrap:wrap;justify-content:center}}.toolbar-row-info{color:#64748b;align-items:center;gap:8px;font-size:12.5px;display:flex}.page-size-wrap{color:#64748b;align-items:center;gap:6px;font-size:12.5px;display:flex}.page-size-select{border-radius:var(--radius-sm);color:#1e293b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;outline:none;padding:4px 6px;font-family:inherit;font-size:12.5px}.page-size-select:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 2px #6366f11a}.toolbar-pagination{align-items:center;gap:4px;display:flex}.pg-btn{border-radius:var(--radius-sm);color:#475569;cursor:pointer;min-width:32px;height:32px;transition:all var(--transition-fast);background:#fff;border:1px solid #e2e8f0;justify-content:center;align-items:center;padding:0 6px;font-family:inherit;font-size:12.5px;font-weight:500;display:inline-flex}.pg-btn:hover:not(.active):not(.disabled):not(.ellipsis){border-color:var(--color-primary-200);color:var(--color-primary-600);background:#f8fafc}.pg-btn.active{background:var(--color-primary-600);border-color:var(--color-primary-600);color:#fff}.pg-btn.disabled{opacity:.4;cursor:default;pointer-events:none}.pg-btn.ellipsis{cursor:default;pointer-events:none;color:#94a3b8;background:0 0;border:none}.pg-btn i{font-size:11px}.col-toggle-popup{border-radius:var(--radius-lg);z-index:200;background:#fff;border:1px solid #e2e8f0;min-width:200px;padding:8px 0;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001a}.col-toggle-item{color:#374151;cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:8px;padding:7px 14px;font-size:12.5px;display:flex}.col-toggle-item:hover{background:#f8fafc}.col-toggle-item input[type=checkbox]{accent-color:var(--color-primary-600);cursor:pointer;width:14px;height:14px}.actions-popup{border-radius:var(--radius-lg);z-index:200;background:#fff;border:1px solid #e2e8f0;min-width:180px;padding:4px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001a}.table-wrap{overflow:auto hidden}.table-toolbar-top:first-child{border-radius:12px 12px 0 0}.table-toolbar-bottom:last-child{border-radius:0 0 12px 12px}.cf-table{border-collapse:collapse;width:100%}.cf-table thead th{text-transform:uppercase;letter-spacing:.05em;color:#64748b;text-align:left;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:10px 16px;font-size:11px;font-weight:600;position:relative}.cf-table thead th.no-sort{cursor:default}.cf-table tbody td{color:#374151;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #f1f5f9;padding:12px 16px;font-size:13px;overflow:hidden}.cf-table tbody tr:last-child td{border-bottom:none}.cf-table tbody tr:hover{background:#fafafb}.cf-table.dataTable{width:100%}.cf-table.dataTable thead th,.cf-table.dataTable tbody td{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row-checkbox{accent-color:var(--color-primary-600);cursor:pointer;width:15px;height:15px}.kebab-btn{border-radius:var(--radius-md);color:#94a3b8;cursor:pointer;width:28px;height:28px;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.kebab-btn:hover{color:#475569;background:#f1f5f9}.cf-table.dataTable thead .sorting,.cf-table.dataTable thead .sorting_asc,.cf-table.dataTable thead .sorting_desc{background-image:none!important}.cf-table.dataTable thead .sorting:after,.cf-table.dataTable thead .sorting_asc:after,.cf-table.dataTable thead .sorting_desc:after{content:"";color:#cbd5e1;vertical-align:middle;margin-left:6px;font-family:"Font Awesome 6 Free";font-size:10px;font-weight:900;display:inline-block}.cf-table.dataTable thead .sorting:after{content:""}.cf-table.dataTable thead .sorting_asc:after{content:"";color:var(--color-primary-600)}.cf-table.dataTable thead .sorting_desc:after{content:"";color:var(--color-primary-600)}.cf-table.dataTable thead th.no-sort:after{content:none!important}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{display:none!important}.dataTables_wrapper{margin:0!important;padding:0!important}.cf-table tbody tr.tt-hidden{display:none}.cf-table tbody tr.tt-search-match td{background:#fffbeb}.tt-cell-wrap{align-items:center;display:flex}.tt-toggler{cursor:pointer;color:#94a3b8;width:20px;height:20px;transition:all var(--transition-fast);background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;margin-right:4px;font-size:10px;display:inline-flex}.tt-toggler:hover{background:var(--color-primary-50);color:var(--color-primary-600)}.tt-leaf-dot{background:#cbd5e1;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin:0 11px 0 7px;display:inline-block}.node-depth-0{color:#0f172a;font-size:13px;font-weight:600}.node-depth-1{color:#1e293b;font-size:12.5px;font-weight:500}.node-depth-2{color:#475569;font-size:12px;font-weight:400}.tree-summary{color:#64748b;background:#f8fafc;border-bottom:1px solid #f1f5f9;flex-wrap:wrap;align-items:center;gap:16px;padding:7px 16px;font-size:11.5px;display:flex}.sum-item{align-items:center;gap:5px;display:flex}.sum-dot{border-radius:2px;width:8px;height:8px;display:inline-block}.tt-sort-icon{color:#cbd5e1;margin-left:6px;font-size:10px}.cf-table thead th.tt-sortable{cursor:pointer}.cf-table thead th.tt-sort-asc .tt-sort-icon,.cf-table thead th.tt-sort-desc .tt-sort-icon{color:var(--color-primary-600)}.tt-node-name-0{color:#0f172a;font-size:13px;font-weight:600}.tt-node-name-1{color:#1e293b;font-size:12.5px;font-weight:500}.tt-node-name-2{color:#475569;font-size:12px;font-weight:400}.lv-badge{border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:10.5px;font-weight:600;display:inline-flex}.lv-badge i{font-size:9px}.lv-0{background:var(--color-primary-50);color:#122b50}.lv-1{color:#166534;background:#f0fdf4}.lv-2{color:#9a3412;background:#fff7ed}.tp-badge{border-radius:20px;padding:2px 8px;font-size:10.5px;font-weight:500;display:inline-block}.tp-Strategis{color:#5b21b6;background:#ede9fe}.tp-Operasional{color:#1e40af;background:#dbeafe}.tp-Pendukung{color:#9d174d;background:#fce7f3}.cell-code{color:#475569;background:#f1f5f9;border-radius:4px;padding:2px 6px;font-family:Courier New,monospace;font-size:11px}.cell-name{color:#1e293b;font-size:13px;font-weight:600}.cf-muted-text{color:#94a3b8;font-size:12px}.cf-muted-dash{color:#cbd5e1}.cf-detail-value-sm{color:#475569;font-size:12.5px}.badge-sm{padding:1px 6px;font-size:10px}.cell-user-count{color:#475569;align-items:center;gap:4px;font-size:12.5px;display:inline-flex}.cell-user-count i{color:#94a3b8;font-size:11px}.cell-user-count.cell-user-count--zero{color:#cbd5e1}.cf-table tbody tr.dtrg-group td{cursor:pointer;-webkit-user-select:none;user-select:none;background:#f1f5f9;border-top:2px solid #e2e8f0;border-bottom:1px solid #e2e8f0;padding:9px 16px}.cf-table tbody tr.dtrg-group:first-child td{border-top:none}.cf-table tbody tr.dtrg-group:hover td{background:#e8edf5}.group-row-inner{align-items:center;gap:10px;display:flex}.group-toggle-icon{color:#64748b;width:20px;height:20px;transition:transform .2s ease, background var(--transition-fast);background:#fff;border:1px solid #e2e8f0;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:inline-flex}.group-toggle-icon.collapsed{transform:rotate(-90deg)}.group-toggle-icon:hover{background:var(--color-primary-50);color:var(--color-primary-600)}.group-label-text{color:#1e293b;font-size:12.5px;font-weight:600}.group-count-badge{background:var(--color-primary-100);min-width:20px;height:20px;color:var(--color-primary-700);border-radius:20px;justify-content:center;align-items:center;padding:0 6px;font-size:10px;font-weight:700;display:inline-flex}.group-sum-badge{color:#64748b;align-items:center;gap:4px;margin-left:auto;font-size:11px;font-weight:500;display:inline-flex}.cf-table tbody tr.group-row-hidden{display:none!important}.group-by-wrap{background:#fafbff;border-bottom:1px solid #f1f5f9;align-items:center;gap:8px;padding:8px 16px;display:flex}.group-by-label{color:#64748b;white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.group-by-label i{color:#94a3b8;font-size:11px}.group-by-options{flex-wrap:wrap;gap:6px;display:flex}.group-by-chip{color:#475569;cursor:pointer;transition:all var(--transition-fast);background:#fff;border:1px solid #e2e8f0;border-radius:20px;align-items:center;gap:5px;padding:4px 12px;font-family:inherit;font-size:12px;font-weight:500;display:inline-flex}.group-by-chip:hover{border-color:var(--color-primary-300);color:var(--color-primary-600);background:var(--color-primary-50)}.group-by-chip.active{border-color:var(--color-primary-600);background:var(--color-primary-600);color:#fff}.group-by-chip i{font-size:10px}.group-by-stats{color:#94a3b8;margin-left:auto;font-size:11.5px}.popup-wrap{z-index:500;position:relative}.kebab-cell{justify-content:center;display:flex}.cf-table thead th.dt-server-sortable{cursor:pointer}.cf-table thead th.dt-server-sortable:after{content:"";color:#cbd5e1;vertical-align:middle;margin-left:6px;font-family:"Font Awesome 6 Free";font-size:10px;font-weight:900;display:inline-block}.cf-table thead th.dt-server-sortable.sorting_asc:after{content:"";color:var(--color-primary-600)}.cf-table thead th.dt-server-sortable.sorting_desc:after{content:"";color:var(--color-primary-600)}.cf-table thead th.dt-server-sortable:hover{color:var(--color-primary-600);background:#f1f5f9}.modal-filter-actions{gap:8px;margin-left:auto;display:flex}.tb-btn-reset{color:#ef4444}.tb-btn-reset:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.cf-table-empty-cell{text-align:center;color:#94a3b8;padding:32px 16px}.cf-table-empty-cell i{margin-bottom:8px;font-size:24px;display:block}.lc-container{width:100%}.lc-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.lc-search-wrap{align-items:center;display:flex;position:relative}.lc-search-wrap>i{color:#94a3b8;pointer-events:none;font-size:13px;position:absolute;left:12px}.lc-search-input{border-radius:var(--radius-md);width:300px;max-width:100%;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);color:#1e293b;background:#fff;border:1px solid #e2e8f0;outline:none;padding:8px 14px 8px 36px;font-family:inherit;font-size:13px}.lc-search-input:focus{border-color:var(--color-primary-400);box-shadow:0 0 0 3px #6366f11a}.lc-btn-wrap{gap:8px;display:flex}.lc-btn{border-radius:var(--radius-md);color:#475569;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:#fff;border:1px solid #e2e8f0;align-items:center;gap:6px;padding:7px 14px;font-family:inherit;font-size:12.5px;font-weight:500;display:inline-flex}.lc-btn:hover{border-color:var(--color-primary-300);color:var(--color-primary-600);background:var(--color-primary-50)}.lc-btn i{font-size:11px}.lc-summary{color:#64748b;white-space:nowrap;align-items:center;gap:12px;margin-left:auto;font-size:12.5px;display:flex}.lc-summary-stat{color:#1e293b;font-weight:600}.lc-summary-badge{border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.lc-summary-badge-encrypted{color:#92400e;background:#fef3c7}.lc-card-list{flex-direction:column;gap:12px;display:flex}.lc-card{transition:box-shadow var(--transition-fast);background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000a}.lc-card:hover{box-shadow:0 2px 8px #0000000f}.lc-card-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast);align-items:center;gap:14px;padding:16px 20px;display:flex}.lc-card-header:hover{background:#fafbff}.lc-group-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;font-weight:700;display:flex}.lc-group-icon i{font-size:16px}.lc-group-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.lc-group-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.lc-group-desc{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.lc-header-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.lc-key-count{color:var(--color-primary-600);white-space:nowrap;font-size:12px;font-weight:600}.lc-chevron{color:#94a3b8;font-size:12px;transition:transform .2s}.lc-card-body{border-top:1px solid #f1f5f9}.lc-table-header{background:#f8fafc;border-bottom:1px solid #f1f5f9}.lc-table-header .lc-table-row{align-items:center;padding:8px 20px;display:flex}.lc-table-header .lc-table-cell{padding:0 8px}.lc-col-title{text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-size:10.5px;font-weight:600}.lc-table-body .lc-table-row{transition:background var(--transition-fast);border-bottom:1px solid #f8fafc;align-items:center;padding:12px 20px;display:flex}.lc-table-body .lc-table-row:last-child{border-bottom:none}.lc-table-body .lc-table-row:hover{background:#fafafb}.lc-table-cell{color:#374151;white-space:nowrap;text-overflow:ellipsis;padding:0 8px;font-size:13px;overflow:hidden}.lc-key-name{color:#0f172a;font-size:13px;font-weight:700}.lc-key-type{border-radius:4px;align-items:center;gap:3px;margin-top:2px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.lc-type-int{color:#1e40af;background:#dbeafe}.lc-type-string{color:#6b21a8;background:#f3e8ff}.lc-type-bool{color:#166534;background:#dcfce7}.lc-type-json{color:#92400e;background:#fef3c7}.lc-type-decimal{color:#075985;background:#e0f2fe}.lc-type-default{color:#475569;background:#f1f5f9}.lc-value-text{color:#374151;text-overflow:ellipsis;white-space:nowrap;max-width:300px;font-size:13px;overflow:hidden}.lc-value-encrypted{color:#94a3b8;letter-spacing:2px;font-family:monospace}.lc-cell-action{justify-content:flex-end;align-items:center;gap:4px;display:flex}.lc-row-action{border-radius:var(--radius-sm);color:#64748b;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;align-items:center;gap:4px;padding:4px 10px;font-family:inherit;font-size:12px;font-weight:500;display:inline-flex}.lc-row-action:hover{color:var(--color-primary-600);background:#f1f5f9}.lc-row-action i{font-size:11px}.lc-action-danger:hover{color:#dc2626;background:#fef2f2}.lc-empty{color:#94a3b8;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:48px 20px;display:flex}.lc-empty i{color:#cbd5e1;font-size:32px}.lc-empty span{font-size:13px}@media (max-width:640px){.lc-toolbar{flex-direction:column;align-items:stretch}.lc-search-input{width:100%}.lc-summary{justify-content:center;margin-left:0}.lc-btn-wrap{justify-content:center}.lc-card-header{padding:12px 14px}.lc-table-header .lc-table-row,.lc-table-body .lc-table-row{padding:8px 14px}}.sp-shell{background:#fff;border:1px solid #e2e8f0;border-radius:12px;min-height:calc(100vh - 210px);display:flex;overflow:hidden;box-shadow:0 1px 4px #0000000f}.sp-left{background:#fafbff;border-right:1px solid #e2e8f0;flex-direction:column;flex-shrink:0;width:256px;display:flex}.sp-left-header{border-bottom:1px solid #e2e8f0;flex-shrink:0;align-items:center;min-height:58px;padding:12px;display:flex}.sp-search-wrap{width:100%;position:relative}.sp-search-wrap i{color:#94a3b8;pointer-events:none;font-size:11px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.sp-search-input{color:#374151;width:100%;transition:border-color var(--transition-fast);background:#fff;border:1px solid #e2e8f0;border-radius:7px;outline:none;padding:7px 10px 7px 30px;font-family:inherit;font-size:12px}.sp-search-input:focus{border-color:var(--color-primary-500)}.sp-list{flex:1;padding:6px;overflow-y:auto}.sp-left-footer{border-top:1px solid #e2e8f0;flex-shrink:0;padding:10px 12px}.sp-add-btn{border:1px dashed var(--color-primary-200);width:100%;color:var(--color-primary-500);cursor:pointer;transition:all var(--transition-fast);background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px;font-family:inherit;font-size:12px;font-weight:500;display:flex}.sp-add-btn:hover{background:var(--color-primary-50);border-color:var(--color-primary-400)}.sp-item{cursor:pointer;transition:all var(--transition-fast);border-radius:9px;align-items:center;gap:9px;margin-bottom:2px;padding:9px 10px;display:flex;position:relative}.sp-item:hover{background:var(--color-primary-50)}.sp-item:hover .sp-item-actions{opacity:1}.sp-item.active{background:var(--color-primary-600)}.sp-item.active .sp-item-name{color:#fff;font-weight:600}.sp-item.active .sp-item-meta{color:#fff9}.sp-item.active .sp-item-count{color:#fff;background:#fff3}.sp-item.active .sp-item-icon{background:#ffffff2e!important}.sp-item.active .sp-item-icon i{color:#fff!important}.sp-item.active .sp-item-actions button{color:#ffffffb3}.sp-item.active .sp-item-actions button:hover{color:#fff;background:#ffffff26}.sp-item-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.sp-item-icon i{font-size:13px}.sp-item-info{flex:1;min-width:0}.sp-item-name{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:500;overflow:hidden}.sp-item-meta{color:#94a3b8;margin-top:1px;font-size:10.5px}.sp-item-count{background:var(--color-primary-100);color:var(--color-primary-800);border-radius:20px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:600}.sp-item-actions{opacity:0;transition:opacity var(--transition-fast);flex-shrink:0;gap:2px;display:flex}.sp-item-action-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;width:22px;height:22px;font-family:inherit;font-size:11px;transition:all .12s;display:flex}.sp-item-action-btn:hover{background:var(--color-primary-50);color:var(--color-primary-600)}.sp-item-action-btn.danger:hover{color:#dc2626;background:#fef2f2}.sp-right{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.sp-right-header{border-bottom:1px solid #e2e8f0;flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:12px;min-height:58px;padding:12px 18px;display:flex}.sp-rh-icon{border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:15px;display:flex}.sp-rh-title{color:#0f172a;font-size:14px;font-weight:700;line-height:1.2}.sp-rh-sub{color:#64748b;margin-top:1px;font-size:11.5px}.sp-right-content{flex:1;overflow-y:auto}.sp-empty{color:#94a3b8;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:100%;padding:40px;display:flex}.sp-empty-icon{color:#cbd5e1;background:#f1f5f9;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:22px;display:flex}.sp-empty-title{color:#374151;font-size:14px;font-weight:600}.sp-empty-desc{color:#94a3b8;max-width:260px;font-size:13px;line-height:1.6}.sp-badge-sys{color:#92400e;background:#fef3c7;border-radius:20px;align-items:center;gap:3px;padding:2px 7px;font-size:10px;font-weight:500;display:inline-flex}.sp-badge-def{color:#1e40af;background:#dbeafe;border-radius:20px;align-items:center;gap:3px;padding:2px 7px;font-size:10px;font-weight:500;display:inline-flex}.sp-extra-json{color:#64748b;text-overflow:ellipsis;white-space:nowrap;cursor:default;background:#f8fafc;border:1px solid #f1f5f9;border-radius:5px;max-width:180px;padding:2px 7px;font-family:Courier New,monospace;font-size:10.5px;display:block;overflow:hidden}.sp-extra-json:hover{white-space:normal;word-break:break-all;background:#f1f5f9}.sp-icon-grid{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.sp-icon-opt{cursor:pointer;color:#64748b;width:36px;height:36px;transition:all var(--transition-fast);background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;font-size:14px;display:flex}.sp-icon-opt:hover{border-color:var(--color-primary-400);background:var(--color-primary-50);color:var(--color-primary-600)}.sp-icon-opt.selected{border-color:var(--color-primary-600);background:var(--color-primary-600);color:#fff}.sp-color-opt{cursor:pointer;width:26px;height:26px;transition:all var(--transition-fast);border:2px solid #0000;border-radius:50%;flex-shrink:0}.sp-color-opt.selected{border-color:#fff;box-shadow:0 0 0 2px}.sp-right-content>.table-card{box-shadow:none;border:none;border-radius:0}@media (max-width:767px){.sp-shell{flex-direction:column}.sp-left{border-bottom:1px solid #e2e8f0;border-right:none;width:100%;max-height:200px}.sp-list{flex-direction:row;gap:4px;padding:6px;display:flex;overflow-x:auto}.sp-item{flex-shrink:0;min-width:110px}}.cf-jb-container{flex-direction:column;gap:6px;margin-bottom:6px;display:flex}.cf-jb-row{align-items:center;gap:6px;display:flex}.cf-jb-key{flex:0 0 38%;padding:6px 10px;font-family:monospace;font-size:12px}.cf-jb-val-wrap{flex:1;align-items:center;min-width:0;display:flex}.cf-jb-val{flex:1;padding:6px 10px;font-size:12px}.cf-jb-color-wrap{align-items:center;gap:5px;width:100%;display:flex}.cf-jb-color-input{cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:6px;flex-shrink:0;width:30px;height:28px;padding:1px 2px}.cf-jb-hex{flex:1;padding:6px 10px;font-family:monospace;font-size:12px}.cf-jb-remove-btn{color:#ef4444;cursor:pointer;width:28px;height:28px;transition:background var(--transition-fast);background:#fee2e2;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:flex}.cf-jb-remove-btn:hover{background:#fecaca}.cf-jb-add-btn{width:100%;color:var(--color-primary-600);border:1px dashed var(--color-primary-300);cursor:pointer;transition:background var(--transition-fast);background:0 0;border-radius:6px;justify-content:center;align-items:center;gap:5px;padding:5px 12px;font-family:inherit;font-size:12px;display:flex}.cf-jb-add-btn:hover{background:var(--color-primary-50)}.cf-jb-add-btn i{font-size:10px}.cf-jb-preview-wrap{margin-top:8px}.cf-jb-preview-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:10px;font-weight:600}.cf-jb-preview{white-space:pre-wrap;word-break:break-all;color:#374151;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;max-height:110px;margin:0;padding:8px 10px;font-family:monospace;font-size:11px;overflow-y:auto}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton,.cf-sk-bar,.cf-sk-card{background:linear-gradient(90deg,#e8ecf1 25%,#f1f5f9 50%,#e8ecf1 75%) 0 0/600px 100%;border-radius:8px;animation:1.4s linear infinite shimmer;display:block}.skeleton{border-radius:var(--radius-md)}.skeleton-text{width:100%;height:14px;margin-bottom:8px}.skeleton-title{width:60%;height:20px;margin-bottom:12px}.skeleton-badge{border-radius:20px;width:72px;height:22px}.skeleton-avatar{border-radius:50%;width:40px;height:40px}.skeleton-btn{border-radius:8px;width:100px;height:36px}.skeleton-card{border-radius:12px;width:100%;height:120px}.skeleton-input{border-radius:6px;width:100%;height:38px}.skeleton-chart{border-radius:8px;width:100%;height:280px}.skeleton-stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem}.skeleton-container{transition:opacity .3s}.skeleton-container.fade-out{opacity:0;pointer-events:none}#skeleton-view,#content-view{transition:opacity .4s}tr.cf-sk-row td{vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:14px 12px}.cf-sk-bar{border-radius:8px;height:16px}.cf-sk-card{border-radius:12px}.cf-sk-lines{flex-direction:column;display:flex}.skeleton-form-section{border-bottom:1px solid #f1f5f9;padding:16px 24px}.skeleton-form-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}.skeleton-form-full{grid-column:span 2}.cf-skeleton-wrap.cf-skeleton-hidden{display:none}.as-steps-toolbar{justify-content:flex-end;margin-bottom:12px;display:flex}.as-step-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:12px;overflow:hidden}.as-step-card:last-child{margin-bottom:0}.as-step-readonly{background:#fafbff;border-color:#f1f5f9}.as-step-header{background:#f8fafc;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;display:flex}.as-step-title{color:#1e293b;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.as-step-title i{color:#94a3b8;font-size:12px}.as-step-body{padding:14px}.as-approvers-section{border:1px solid #f1f5f9;border-radius:8px;margin-top:12px;overflow:hidden}.as-approvers-header{color:#475569;background:#fafbff;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.as-approvers-header i{color:#94a3b8;font-size:11px}.as-approvers-list{padding:8px 12px}.as-approver-row{border-bottom:1px solid #f8fafc;padding:6px 0}.as-approver-row:last-child{border-bottom:none}.as-view-approver{color:#374151;border-bottom:1px solid #f8fafc;align-items:center;gap:8px;padding:6px 0;font-size:12.5px;display:flex}.as-view-approver:last-child{border-bottom:none}.as-view-approver i{color:#94a3b8;text-align:center;width:16px;font-size:11px}.as-parallel-group{background:#eef2ff4d;border:2px dashed #aebfdc;border-radius:10px;margin-bottom:12px;padding:12px}.as-parallel-label{color:#2c4f82;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:600;display:flex}.as-parallel-label i{font-size:10px}.vs-pipeline{flex-direction:column;align-items:center;padding:8px 0;display:flex}.vs-terminal{flex-direction:column;align-items:center;gap:6px;display:flex}.vs-terminal span{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.vs-terminal-dot{border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;display:flex}.vs-start .vs-terminal-dot{color:#16a34a;background:#dcfce7;border:2px solid #bbf7d0}.vs-end .vs-terminal-dot{color:#2563eb;background:#dbeafe;border:2px solid #bfdbfe}.vs-connector{flex-direction:column;align-items:center;gap:0;height:32px;display:flex}.vs-connector-line{background:#e2e8f0;flex:1;width:2px}.vs-connector-arrow{color:#cbd5e1;font-size:8px}.vs-fork-label{color:#2c4f82;background:#edf1f8;border:1px dashed #aebfdc;border-radius:20px;align-items:center;gap:6px;margin-bottom:8px;padding:4px 14px;font-size:11px;font-weight:600;display:flex}.vs-fork-label i{font-size:10px}.vs-parallel-row{flex-wrap:wrap;justify-content:center;gap:16px;width:100%;display:flex}.vs-parallel-row .vs-step-node{flex:1;min-width:220px;max-width:340px}.vs-step-node{flex-direction:column;align-items:center;gap:0;width:100%;max-width:420px;display:flex}.vs-step-circle{z-index:2;background:#fff;border:2.5px solid #2c4f82;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-bottom:-10px;display:flex;box-shadow:0 1px 4px #00000014}.vs-step-num{color:#1e293b;font-size:12px;font-weight:700}.vs-step-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;width:100%;padding:20px 16px 14px;box-shadow:0 1px 4px #0000000a,0 2px 8px #00000005}.vs-step-name{color:#1e293b;text-align:center;margin-bottom:8px;font-size:14px;font-weight:600}.vs-step-meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-bottom:10px;display:flex}.vs-mode-badge{color:#fff;letter-spacing:.02em;border-radius:20px;align-items:center;padding:2px 10px;font-size:10.5px;font-weight:600;display:inline-flex}.vs-meta-pill{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:10.5px;font-weight:500;display:inline-flex}.vs-meta-pill i{color:#94a3b8;font-size:9px}.vs-return-indicator{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;justify-content:center;align-items:center;gap:6px;margin-bottom:10px;padding:5px 12px;font-size:11px;font-weight:500;display:flex}.vs-return-indicator i{color:#d97706;font-size:10px}.vs-approvers{border-top:1px solid #f1f5f9;flex-direction:column;gap:6px;padding-top:10px;display:flex}.vs-approver{align-items:center;gap:10px;padding:4px 0;display:flex}.vs-approver-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;display:flex}.vs-approver-info{flex-direction:column;min-width:0;display:flex}.vs-approver-name{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:500;overflow:hidden}.vs-approver-type{color:#94a3b8;font-size:10.5px}.login-body{background-color:#f1f5f9;background-image:radial-gradient(circle,#cbd5e1 1px,#0000 1px);background-size:24px 24px;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.login-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;width:100%;max-width:400px;padding:36px 36px 28px;animation:.35s cubic-bezier(.34,1.4,.64,1) login-card-in;box-shadow:0 4px 24px #00000014,0 1px 4px #0000000a}@keyframes login-card-in{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:none}}.login-brand{align-items:center;gap:10px;margin-bottom:28px;display:flex}.login-brand-icon{background:#16335f;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.login-brand-icon i{color:#fff;font-size:17px}.login-brand-text-wrap{line-height:1.25}.login-brand-name{color:#0f172a;letter-spacing:-.01em;font-size:16px;font-weight:700}.login-brand-sub{color:#94a3b8;text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:500}.login-card-title{color:#0f172a;letter-spacing:-.02em;margin-bottom:4px;font-size:20px;font-weight:700}.login-card-sub{color:#64748b;margin-bottom:24px;font-size:13px}.login-alert-banner{border-radius:9px;align-items:flex-start;gap:10px;margin-bottom:18px;padding:11px 14px;animation:.25s login-alert-in;display:none}.login-alert-banner.show{display:flex}@keyframes login-alert-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.login-alert-banner.error{background:#fef2f2;border:1px solid #fecaca}.login-alert-banner.locked{background:#fff7ed;border:1px solid #fed7aa}.login-alert-banner .login-ab-icon{flex-shrink:0;margin-top:1px;font-size:14px}.login-alert-banner.error .login-ab-icon{color:#dc2626}.login-alert-banner.locked .login-ab-icon{color:#d97706}.login-ab-title{font-size:12.5px;font-weight:600}.login-ab-desc{margin-top:1px;font-size:11.5px}.login-alert-banner.error .login-ab-title{color:#991b1b}.login-alert-banner.error .login-ab-desc{color:#b91c1c}.login-alert-banner.locked .login-ab-title{color:#92400e}.login-alert-banner.locked .login-ab-desc{color:#b45309}.login-form-field{margin-bottom:16px}.login-form-label{color:#374151;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.login-input-wrap{position:relative}.login-form-input{color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:9px;outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.login-form-input::placeholder{color:#cbd5e1}.login-form-input:focus{border-color:#2c4f82;box-shadow:0 0 0 3px #6366f124}.login-form-input.has-error{border-color:#f87171}.login-form-input.has-error:focus{box-shadow:0 0 0 3px #ef44441f}.login-form-input:disabled{color:#94a3b8;cursor:not-allowed;background:#f8fafc}.login-pw-toggle{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:center;padding:4px;transition:color .15s;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.login-pw-toggle:hover{color:#475569}.login-pw-toggle i{font-size:14px}.login-pw-field{padding-right:40px}.login-field-error{color:#dc2626;align-items:center;gap:4px;margin-top:5px;font-size:11.5px;display:none}.login-field-error.show{display:flex}.login-field-error i{font-size:11px}.login-submit-btn{color:#fff;cursor:pointer;letter-spacing:-.01em;background:#16335f;border:none;border-radius:9px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:6px;padding:11px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,transform .1s;display:flex}.login-submit-btn:hover:not(:disabled){background:#122b50}.login-submit-btn:active:not(:disabled){transform:scale(.99)}.login-submit-btn:disabled{cursor:not-allowed;background:#85a0cb;transform:none}.login-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.65s linear infinite login-spin;display:none}.login-spinner.show{display:block}@keyframes login-spin{to{transform:rotate(360deg)}}.login-footer{text-align:center;color:#94a3b8;flex-direction:column;gap:4px;margin-top:20px;font-size:11.5px;display:flex}.login-footer-links{justify-content:center;align-items:center;gap:12px;display:flex}.login-footer-links a{color:#94a3b8;text-decoration:none;transition:color .15s}.login-footer-links a:hover{color:#16335f}.login-footer-sep{color:#cbd5e1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}