.color-picker-expandable[data-v-1f186691]{align-items:center;display:flex;position:relative}.color-dots[data-v-1f186691]{transform-origin:100%;background:var(--c-card-bg,#fff);border:1px solid var(--c-border,#e2e8f0);opacity:0;pointer-events:none;z-index:1;border-radius:9999px;align-items:center;gap:8px;padding:5px 36px 5px 12px;transition:opacity .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%)scaleX(.8);box-shadow:0 4px 14px #00000014}.color-picker-expandable:hover .color-dots[data-v-1f186691],.color-dots.is-expanded[data-v-1f186691]{opacity:1;pointer-events:auto;transform:translateY(-50%)scaleX(1)}.color-dot[data-v-1f186691]{cursor:pointer;opacity:0;width:20px;height:20px;transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1),box-shadow .15s;transition-delay:calc(var(--index,0) * 20ms);box-sizing:border-box;border:1px solid #80808040;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative;transform:scale(.6);box-shadow:0 1px 3px #0003}.color-picker-expandable:hover .color-dot[data-v-1f186691],.color-dots.is-expanded .color-dot[data-v-1f186691]{opacity:1;transform:scale(1)}.color-dot[data-v-1f186691]:hover{z-index:5;box-shadow:0 2px 8px #0000004d;transform:scale(1.22)!important}.color-dot.active[data-v-1f186691]{box-shadow:0 0 0 2px var(--c-card-bg,#fff), 0 0 0 3.5px var(--c-primary,#2563eb)}.color-dot-custom[data-v-1f186691]{background:var(--c-subtle-bg,#f1f5f9);color:var(--c-text-secondary,#64748b);border:1px dashed var(--c-border-strong,#cbd5e1)}.hidden-color-input[data-v-1f186691]{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.palette-btn[data-v-1f186691]{border-radius:var(--radius-md,8px);width:32px;height:32px;color:var(--c-text-secondary,#64748b);cursor:pointer;box-sizing:border-box;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;outline:none;justify-content:center;align-items:center;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.palette-btn[data-v-1f186691]:hover{color:var(--c-primary,#2563eb);background-color:var(--c-subtle-bg,#f1f5f9);border-color:var(--c-border-subtle,#e2e8f0)}.color-picker-expandable.is-inline[data-v-1f186691]{box-sizing:border-box;justify-content:center;align-items:center;width:100%;padding:4px 0;display:flex}.color-picker-expandable.is-inline .color-dots[data-v-1f186691]{pointer-events:auto;border-radius:var(--radius-sm,6px);background:var(--c-card-bg,#fff);border:1px solid var(--c-border,#e2e8f0);box-sizing:border-box;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;width:100%;padding:8px 16px;display:flex;position:relative;top:auto;right:auto;box-shadow:0 1px 3px #0000000a;opacity:1!important;transform:none!important}.color-picker-expandable.is-inline .color-dot[data-v-1f186691]{opacity:1;width:22px;height:22px;transform:scale(1)}.color-picker-divider[data-v-1f186691]{background-color:var(--c-border,#cbd5e1);opacity:0;flex-shrink:0;align-self:center;width:1px;height:16px;margin:0 4px;transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1);transform:scaleY(.6)}.color-picker-expandable:hover .color-picker-divider[data-v-1f186691],.color-dots.is-expanded .color-picker-divider[data-v-1f186691],.color-picker-expandable.is-inline .color-picker-divider[data-v-1f186691]{opacity:1;transform:scaleY(1)}.color-picker-expandable.is-inline .color-picker-divider[data-v-1f186691]{height:16px;margin:0 4px}:root{--c-page-bg:#f8fafc;--c-card-bg:#fff;--c-subtle-bg:#f1f5f9;--c-header-bg:#ffffffeb;--c-modal-bg:#fff;--c-overlay-bg:#00000073;--c-sidebar-bg:#fff;--c-bg:var(--c-page-bg);--c-bg-secondary:var(--c-subtle-bg);--c-bg-primary:var(--c-card-bg);--c-border:#e2e8f0;--c-border-subtle:#f1f5f9;--c-border-strong:#cbd5e1;--c-text-primary:#0f172a;--c-text-secondary:#475569;--c-text-muted:#94a3b8;--c-text-inverse:#fff;--c-text:var(--c-text-primary);--c-primary:#2563eb;--c-primary-hover:#1d4ed8;--c-primary-subtle:#2563eb14;--c-primary-active:#1e40af;--c-link:var(--c-primary);--c-link-visited:#6d28d9;--c-danger:#ef4444;--c-danger-hover:#dc2626;--c-danger-bg:#fef2f2;--c-success:#16a34a;--c-success-bg:#f0fdf4;--c-warning:#f59e0b;--c-warning-bg:#fffbeb;--c-info:#0284c7;--c-info-bg:#f0f9ff;--c-table-header-bg:#f8fafc;--c-table-body-bg:#fff;--c-table-row-hover-bg:#f1f5f9;--c-table-row-selected-bg:#eff6ff;--c-table-border:var(--c-border);--c-input-bg:#fff;--c-input-border:var(--c-border);--c-input-focus:var(--c-primary);--font-stack:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", monospace;--font-size-3xl:1.75rem;--font-size-2xl:1.5rem;--font-size-xl:1.25rem;--font-size-lg:1.125rem;--font-size-md:1rem;--font-size-base:.9375rem;--font-size-body:.875rem;--font-size-sm:.8125rem;--font-size-xs:.75rem;--font-size-xxs:.6875rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-none:1;--line-height-tight:1.25;--line-height-snug:1.35;--line-height-normal:1.5;--line-height-relaxed:1.65;--line-height:var(--line-height-normal);--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:14px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000000d;--shadow-popover:0 10px 25px -5px #00000026, 0 8px 10px -6px #0000000d;--duration-fast:.15s;--duration-normal:.2s;--ease-standard:ease;--ease-smooth:ease-in-out;--transition-fast:all var(--duration-fast) var(--ease-standard);--transition-normal:all var(--duration-normal) var(--ease-smooth);--transition-theme:background-color var(--duration-normal) var(--ease-smooth), border-color var(--duration-normal) var(--ease-smooth), color var(--duration-normal) var(--ease-smooth);--control-height:34px;--control-radius:var(--radius-sm);--toolbar-padding-y:4px;--toolbar-padding-x:6px;--toolbar-gap:4px;--toolbar-mb:4px;--search-padding-x:30px;--space-xxs:2px;--space-xs:4px;--space-sm:5px;--space-md:8px;--space-lg:12px;--space-xl:16px;--space-2xl:24px;--layout-page-px:24px;--layout-page-py:5px;--layout-grid-gap:5px;--layout-panel-padding:5px;--card-gap:5px}::view-transition-old(root){animation-duration:.25s;animation-timing-function:ease-in-out}::view-transition-new(root){animation-duration:.25s;animation-timing-function:ease-in-out}.disable-theme-transition,.disable-theme-transition *,.disable-theme-transition :before,.disable-theme-transition :after{transition:none!important}.text-3xl{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}.text-2xl{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}.text-xl{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-snug)}.text-lg{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);line-height:var(--line-height-snug)}.text-md{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:var(--line-height-normal)}.text-base{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal)}.text-body{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal)}.text-sm{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal)}.text-xs{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal)}.text-xxs{font-size:var(--font-size-xxs);font-weight:var(--font-weight-semibold);line-height:var(--line-height-none)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{box-sizing:border-box;height:100%;max-height:100%;transition:var(--transition-theme);margin:0;padding:0;overflow:hidden}html{-webkit-text-size-adjust:100%;font-size:16px}html.dark-theme{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:var(--c-bg,#1e293b)}body{font-family:var(--font-stack);line-height:var(--line-height);color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased}a{color:var(--c-link);text-underline-offset:.15em;text-decoration:underline}a:visited{color:var(--c-link-visited)}a:hover{color:var(--c-text)}.auth-page{background:var(--c-bg-secondary);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.auth-card{background:var(--c-bg);border:1px solid var(--c-border);width:100%;max-width:24rem;padding:2.5rem 2rem}.auth-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);letter-spacing:-.02em;margin-bottom:.25rem}.auth-sub{color:var(--c-text-secondary);font-size:var(--font-size-base);margin-bottom:1.5rem}.auth-form{flex-direction:column;gap:1rem;display:flex}.auth-link{font-size:var(--font-size-body);color:var(--c-text-secondary);text-align:center;margin-top:1.25rem}.form-group{flex-direction:column;gap:.35rem;display:flex}.form-group label{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--c-text);letter-spacing:.01em}.required{color:var(--c-danger)}input[type=text],input[type=email],input[type=password],input[type=url],textarea{font-family:var(--font-stack);font-size:var(--font-size-body);border:1px solid var(--c-input-border);background:var(--c-input-bg);color:var(--c-text);border-radius:var(--radius-sm);transition:border-color var(--duration-fast);outline:none;padding:.5rem .75rem}input:focus,textarea:focus{border-color:var(--c-input-focus);box-shadow:0 0 0 1px var(--c-input-focus)}.search-box-wrapper{align-items:center;width:100%;display:flex;position:relative}.search-box-icon{color:var(--c-text-muted);pointer-events:none;z-index:2;font-size:13px;position:absolute;left:10px}.search-box-input,.search-input{height:var(--control-height);padding:8px var(--search-padding-x);line-height:20px;font-family:var(--font-stack);font-size:var(--font-size-body);border-radius:var(--control-radius);border:1px solid var(--c-table-border);background-color:var(--c-table-body-bg);color:var(--c-text-primary);box-sizing:border-box;width:100%;transition:border-color var(--duration-fast), box-shadow var(--duration-fast), background-color var(--duration-fast), color var(--duration-fast);outline:none}.search-box-input:focus,.search-input:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--c-primary) 18%, transparent)}.search-box-clear{color:var(--c-text-muted);cursor:pointer;z-index:2;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;font-size:12px;display:flex;position:absolute;right:10px}.search-box-clear:hover{color:var(--c-text-primary)}input[readonly],textarea[readonly],select[disabled],input:disabled,textarea:disabled,.form-control[readonly],.form-control:disabled{background-color:var(--c-subtle-bg)!important;color:var(--c-text-muted)!important;cursor:not-allowed!important;font-weight:var(--font-weight-medium)!important;border-color:var(--c-border)!important}textarea{resize:vertical;min-height:4rem}.app-modal-mask{z-index:150;background-color:var(--c-overlay-bg,#0f172a73);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-sizing:border-box;animation:appModalFadeIn var(--duration-normal) ease-out;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}@keyframes appModalFadeIn{0%{opacity:0}to{opacity:1}}.app-modal-container{background-color:var(--c-modal-bg,var(--c-card-bg));border:1px solid var(--c-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-popover);box-sizing:border-box;animation:appModalScaleIn var(--duration-normal) cubic-bezier(.16, 1, .3, 1);overflow:hidden}@keyframes appModalScaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.btn-primary{font-family:var(--font-stack);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);background:var(--c-primary);color:var(--c-primary-btn-text,#fff);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast), opacity var(--duration-fast);letter-spacing:.01em;border:none;padding:.65rem 1.25rem}.btn-primary:hover:not(:disabled){background:var(--c-primary-hover);opacity:.92}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary-sm{font-family:var(--font-stack);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);background:var(--c-primary);color:var(--c-primary-btn-text,#fff);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--duration-fast), transform var(--duration-fast), box-shadow var(--duration-fast);border:none;justify-content:center;align-items:center;padding:5px 14px;text-decoration:none;display:inline-flex}.btn-primary-sm:hover:not(:disabled){background:var(--c-primary-hover);transform:translateY(-1px);box-shadow:0 2px 6px #2563eb40}.btn-primary-sm:disabled{opacity:.5;cursor:not-allowed}.btn-text{font-family:var(--font-stack);font-size:var(--font-size-body);color:var(--c-link);cursor:pointer;background:0 0;border:none;padding:.25rem 0}.btn-text:hover{color:var(--c-text);text-decoration:underline}.btn-text-sm{font-family:var(--font-stack);font-size:var(--font-size-sm);color:var(--c-link);cursor:pointer;background:0 0;border:none;padding:0}.btn-text-sm:hover{color:var(--c-text);text-decoration:underline}.btn-text-sm.danger{color:var(--c-danger)}.form-error{color:var(--c-danger);font-size:var(--font-size-body);padding:.5rem 0}.home{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--c-border);background:var(--c-bg-secondary);justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex}.header-left{align-items:center;gap:2rem;display:flex}.logo{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);letter-spacing:-.02em;color:var(--c-text)}.header-nav{gap:.5rem;display:flex}.nav-item{font-size:var(--font-size-body);color:var(--c-text-secondary);padding:.3rem 0;text-decoration:none}.nav-item.active{color:var(--c-text);font-weight:var(--font-weight-semibold)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:3px solid var(--c-primary-subtle);border-top-color:var(--c-primary);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin;display:inline-block}
