@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap";:root{--color-primary: #0f172a;--color-primary-dark: #020617;--color-primary-light: #1e40af;--color-primary-soft: #f0f4ff;--color-primary-muted: #334155;--color-accent: #2563eb;--color-accent-soft: #dbeafe;--color-text-primary: #0f172a;--color-text-secondary: #475569;--color-text-tertiary: #64748b;--color-text-muted: #94a3b8;--color-text-inverse: #ffffff;--color-surface-white: #ffffff;--color-surface-primary: #fafbfc;--color-surface-secondary: #f1f5f9;--color-surface-tertiary: #e2e8f0;--color-surface-hover: #f8fafc;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-border-hover: #cbd5e1;--color-success: #059669;--color-success-soft: #ecfdf5;--color-warning: #d97706;--color-warning-soft: #fffbeb;--color-error: #dc2626;--color-error-soft: #fef2f2;--color-info: #0284c7;--color-info-soft: #f0f9ff;--color-sidebar: #0f172a;--color-sidebar-hover: rgba(255, 255, 255, .06);--color-sidebar-active: rgba(255, 255, 255, .12);--brand-accent: #3b82f6;--brand-accent-soft: rgba(59, 130, 246, .15);--brand-accent-softer: rgba(59, 130, 246, .08);--font-family: "Plus Jakarta Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "SF Mono", "Monaco", "Inconsolata", monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: .9375rem;--text-lg: 1rem;--text-xl: 1.125rem;--text-2xl: 1.375rem;--text-3xl: 1.75rem;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--space-0: 0;--space-0_5: 4px;--space-1: 8px;--space-1_5: 12px;--space-2: 16px;--space-2_5: 20px;--space-3: 24px;--space-4: 32px;--space-5: 40px;--space-6: 48px;--space-8: 64px;--space-10: 80px;--space-12: 96px;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .03);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .04), 0 1px 2px -1px rgb(0 0 0 / .04);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .05), 0 2px 4px -2px rgb(0 0 0 / .04);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .06), 0 4px 6px -4px rgb(0 0 0 / .04);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .07), 0 8px 10px -6px rgb(0 0 0 / .04);--shadow-float: 0 25px 50px -12px rgb(0 0 0 / .15);--ring-width: 2px;--ring-offset: 2px;--ring-color: rgba(37, 99, 235, .2);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 9999px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-instant: 50ms;--duration-fast: .12s;--duration-normal: .18s;--duration-slow: .22s;--duration-slower: .3s;--transition-fast: var(--duration-fast) var(--ease-out);--transition-normal: var(--duration-normal) var(--ease-out);--transition-slow: var(--duration-slow) var(--ease-out)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);font-size:var(--text-base);background-color:var(--color-surface-primary);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:var(--leading-normal)}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}::selection{background:var(--color-accent-soft);color:var(--color-accent)}:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.sidebar{--active-accent-color: #60a5fa;--sidebar-hover: rgba(255, 255, 255, .06);--sidebar-active-bg: rgba(255, 255, 255, .1)}.sidebar{width:260px;background:linear-gradient(180deg,#0f172a,#0a1020,#060810);color:var(--color-text-inverse);display:flex;flex-direction:column;height:100vh;position:fixed;left:0;top:0;z-index:30;transition:transform var(--transition-slow);border-right:1px solid rgba(255,255,255,.04)}.sidebar-header{padding:var(--space-4) var(--space-3);display:flex;align-items:center;justify-content:center;border-bottom:1px solid rgba(255,255,255,.06);background:#00000026}.sidebar-logo{max-width:180px;max-height:56px;width:auto;height:auto;object-fit:contain;filter:brightness(1.05)}.sidebar-nav{flex:1;padding:var(--space-3) var(--space-2);display:flex;flex-direction:column;gap:var(--space-4);overflow-y:auto}.nav-section{display:flex;flex-direction:column;gap:2px}.nav-section-label{font-size:10px;font-weight:var(--weight-semibold);color:#ffffff4d;text-transform:uppercase;letter-spacing:.1em;padding:0 var(--space-2) var(--space-1_5);margin-bottom:4px}.sidebar-link{display:flex;align-items:center;padding:var(--space-1_5) var(--space-2);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--weight-medium);color:#ffffff8c;text-decoration:none;transition:all var(--transition-fast);position:relative;gap:var(--space-1_5)}.sidebar-link:hover{background-color:var(--sidebar-hover);color:#ffffffe6}.link-indicator{position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);height:24px;width:3px;background:var(--active-accent-color);border-radius:0 4px 4px 0;opacity:0;transition:all var(--duration-normal) var(--ease-out)}.sidebar-link.active{background-color:var(--sidebar-active-bg);color:#fff}.sidebar-link.active .link-indicator{transform:translateY(-50%) scaleY(1);opacity:1}.sidebar-link.active .sidebar-icon{color:var(--active-accent-color)}.sidebar-icon{width:18px;height:18px;opacity:.65;transition:all var(--transition-fast);flex-shrink:0}.sidebar-link:hover .sidebar-icon,.sidebar-link.active .sidebar-icon{opacity:1}.link-label{flex:1}.sidebar-footer{padding:var(--space-2) var(--space-2);border-top:1px solid rgba(255,255,255,.06);background:#0003}.user-profile{display:flex;align-items:center;gap:var(--space-1_5);padding:var(--space-1_5);border-radius:var(--radius-lg);transition:background-color var(--transition-fast);cursor:pointer}.user-profile:hover{background-color:var(--sidebar-hover)}.user-avatar{width:36px;height:36px;border-radius:var(--radius-full);background-color:#ffffff1a;object-fit:cover;flex-shrink:0;border:2px solid rgba(255,255,255,.1)}.user-avatar-custom{width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700;flex-shrink:0;letter-spacing:.02em}.user-info{flex:1;min-width:0}.user-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:#fffffff2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:var(--leading-snug)}.user-role{font-size:11px;color:#fff6;text-transform:capitalize;line-height:var(--leading-snug)}@media(max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}}.topbar{height:64px;background-color:var(--color-surface-white);border-bottom:1px solid var(--color-border-light);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);position:sticky;top:0;z-index:20}.topbar-left{display:flex;align-items:center;flex:1}.search-bar{display:flex;align-items:center;background-color:var(--color-surface-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-lg);width:320px;border:1px solid transparent;transition:all var(--transition-fast)}.search-bar:focus-within{background-color:var(--color-surface-white);border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.search-icon{color:var(--color-text-muted);margin-right:var(--space-1);flex-shrink:0}.search-input{border:none;background:transparent;outline:none;font-size:var(--text-sm);color:var(--color-text-primary);width:100%}.search-input::placeholder{color:var(--color-text-muted)}.topbar-right{display:flex;align-items:center;gap:var(--space-2)}.context-switcher{display:flex;align-items:center;gap:var(--space-1_5);padding-right:var(--space-2);margin-right:var(--space-1);border-right:1px solid var(--color-border)}.context-label{font-size:10px;font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.select-wrapper{position:relative}.context-select{appearance:none;background-color:var(--color-surface-secondary);border:1px solid transparent;border-radius:var(--radius-md);padding:6px 28px 6px 12px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary);cursor:pointer;min-width:140px;transition:all var(--transition-fast)}.context-select:hover{border-color:var(--color-border-hover);background-color:var(--color-surface-hover)}.context-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--ring-color)}.select-icon{position:absolute;right:8px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--color-text-muted)}.icon-btn{position:relative;background:none;border:none;color:var(--color-text-tertiary);padding:var(--space-1);border-radius:var(--radius-md);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.icon-btn:hover{color:var(--color-text-primary);background-color:var(--color-surface-secondary)}.notification-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;background-color:var(--color-error);border-radius:var(--radius-full);border:2px solid var(--color-surface-white)}.topbar-divider{width:1px;height:24px;background-color:var(--color-border)}.signout-btn{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--color-text-tertiary);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:6px 12px;border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer}.signout-btn:hover{color:var(--color-error);background-color:var(--color-error-soft)}@media(max-width:768px){.search-bar{width:200px}.context-label{display:none}.context-select{min-width:120px}.signout-btn span{display:none}}.app-layout{display:flex;min-height:100vh;background-color:var(--color-surface-primary)}.main-content{flex:1;margin-left:260px;min-height:100vh;display:flex;flex-direction:column;transition:margin-left var(--transition-slow)}.page-container{flex:1;padding:var(--space-5) var(--space-6);max-width:1400px;margin:0 auto;width:100%;animation:pageEnter var(--duration-slow) var(--ease-out)}@keyframes pageEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.page-container{padding:var(--space-4) var(--space-4)}}@media(max-width:768px){.main-content{margin-left:0}.page-container{padding:var(--space-3) var(--space-2)}}.preloader{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:9999}.preloader.fade-out{animation:fadeOut .3s ease forwards}@keyframes fadeOut{to{opacity:0;visibility:hidden}}.preloader-content{display:flex;flex-direction:column;align-items:center;gap:32px}.preloader-logo{height:56px;width:auto;max-width:200px;object-fit:contain}.preloader-spinner{width:32px;height:32px}.preloader-spinner svg{width:100%;height:100%;animation:rotate 1s linear infinite}.preloader-spinner circle{stroke:#ffffff4d;stroke-linecap:round;stroke-dasharray:80,200;stroke-dashoffset:0;animation:dash 1.2s ease-in-out infinite}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:60,200;stroke-dashoffset:-20}to{stroke-dasharray:60,200;stroke-dashoffset:-100}}.image-upload-container{margin-bottom:var(--space-4)}.upload-label{display:block;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.upload-box{width:100%;height:160px;border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.upload-box:hover{border-color:var(--color-primary);background:var(--color-surface-tertiary)}.upload-box.dragging{border-color:var(--color-primary);background:var(--color-primary-light)}.upload-box.has-image{border-style:solid;padding:0}.upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--color-text-muted)}.icon-circle{width:40px;height:40px;border-radius:50%;background:var(--color-surface-white);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);margin-bottom:var(--space-2);color:var(--color-text-secondary)}.upload-text{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-primary)}.upload-subtext{font-size:var(--text-xs);color:var(--color-text-muted)}.image-preview-wrapper{width:100%;height:100%;position:relative;background:var(--color-surface-tertiary);display:flex;align-items:center;justify-content:center;overflow:hidden}.image-preview{max-width:100%;max-height:100%;object-fit:contain;padding:8px}.image-overlay{position:absolute;inset:0;background:#00000080;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10}.upload-box:hover .image-overlay{opacity:1}.change-text{color:#fff;font-size:var(--text-sm);font-weight:var(--weight-medium);margin-top:var(--space-2)}.remove-btn{position:absolute;top:var(--space-2);right:var(--space-2);background:#fff;border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--color-danger);cursor:pointer;box-shadow:var(--shadow-md)}.remove-btn:hover{background:var(--color-danger-bg)}.upload-loading{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);color:var(--color-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);font-weight:var(--weight-medium);transition:all var(--transition-fast);border:1px solid transparent;cursor:pointer;white-space:nowrap;gap:var(--space-1)}.btn:disabled,.btn-loading{opacity:.6;cursor:not-allowed;pointer-events:none}.btn-sm{padding:0 var(--space-1_5);height:32px;font-size:var(--text-sm);border-radius:var(--radius-md)}.btn-md{padding:0 var(--space-2_5);height:40px;font-size:var(--text-base)}.btn-lg{padding:0 var(--space-4);height:48px;font-size:var(--text-lg);border-radius:var(--radius-xl)}.btn-icon{flex-shrink:0}.btn-sm .btn-icon{width:14px;height:14px}.btn-md .btn-icon{width:18px;height:18px}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.btn-primary:hover{background-color:var(--color-primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-secondary{background-color:var(--color-surface-white);color:var(--color-text-secondary);border-color:var(--color-border);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background-color:var(--color-surface-secondary);color:var(--color-text-primary);border-color:var(--color-border-hover)}.btn-secondary:active{background-color:var(--color-surface-tertiary)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background-color:var(--color-surface-secondary);color:var(--color-text-primary)}.btn-ghost:active{background-color:var(--color-surface-tertiary)}.btn-danger{background-color:var(--color-error);color:var(--color-text-inverse)}.btn-danger:hover{background-color:#b91c1c;box-shadow:var(--shadow-sm)}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.25);border-radius:var(--radius-full);border-top-color:currentColor;animation:spin .6s linear infinite}.btn-secondary .spinner,.btn-ghost .spinner{border-color:#0000001a;border-top-color:currentColor}@keyframes spin{to{transform:rotate(360deg)}}.card{background-color:var(--color-surface-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs);border:1px solid var(--color-border-light);transition:all var(--transition-normal);overflow:hidden}.card:hover{box-shadow:var(--shadow-sm)}.card-interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{padding-bottom:0;display:flex;align-items:center;justify-content:space-between}.card-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text-primary);letter-spacing:-.01em}.card:not(:has(.card-header)) .card-content{padding-top:var(--space-4)}.card-action{display:flex;align-items:center;gap:var(--space-1)}.card-compact .card-content{padding:var(--space-3)}.card-compact .card-header{padding:var(--space-2) var(--space-3)}.modal-overlay{position:fixed;inset:0;background-color:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlayFadeIn var(--duration-fast) var(--ease-out)}.modal-container{background-color:var(--color-surface-white);border-radius:var(--radius-2xl);box-shadow:var(--shadow-float);width:100%;max-height:85vh;display:flex;flex-direction:column;animation:modalSlideIn var(--duration-normal) var(--ease-out);margin:var(--space-4)}.modal-sm{max-width:420px}.modal-md{max-width:560px}.modal-lg{max-width:720px}.modal-xl{max-width:960px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-light)}.modal-title{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text-primary);letter-spacing:-.01em}.modal-close-btn{background:none;border:none;color:var(--color-text-muted);padding:var(--space-1);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.modal-close-btn:hover{background-color:var(--color-surface-secondary);color:var(--color-text-primary)}.modal-content{padding:var(--space-4);overflow-y:auto}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-1_5);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-light)}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.98) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.form-group{display:flex;flex-direction:column}.form-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.form-input{height:44px;padding:0 var(--space-2);border-radius:var(--radius-lg);border:1px solid var(--color-border);font-size:var(--text-base);transition:all var(--transition-fast);background-color:var(--color-surface-white);color:var(--color-text-primary)}.form-input::placeholder{color:var(--color-text-muted)}.form-input:hover:not(:focus){border-color:var(--color-border-hover)}.form-input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--ring-color)}.input-error{border-color:var(--color-error)}.input-error:focus{box-shadow:0 0 0 3px #dc26261a}.form-error{font-size:var(--text-xs);color:var(--color-error);margin-top:var(--space-0_5)}.form-helper-text{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:var(--space-0_5)}.form-textarea{min-height:100px;padding:var(--space-1_5) var(--space-2);border-radius:var(--radius-lg);border:1px solid var(--color-border);font-size:var(--text-base);transition:all var(--transition-fast);background-color:var(--color-surface-white);color:var(--color-text-primary);resize:vertical}.form-textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--ring-color)}.form-select{height:44px;padding:0 var(--space-4) 0 var(--space-2);border-radius:var(--radius-lg);border:1px solid var(--color-border);font-size:var(--text-base);transition:all var(--transition-fast);background-color:var(--color-surface-white);color:var(--color-text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:16px 16px}.form-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--ring-color)}.form-inline{display:flex;align-items:center;gap:var(--space-2)}
