:root{--color-primary:#0ea5e9;--color-primary-light:#38bdf8;--color-primary-dark:#0284c7;--color-primary-glow:#0ea5e940;--color-primary-subtle:#0ea5e914;--color-success:#10b981;--color-success-light:#34d399;--color-success-dark:#059669;--color-success-subtle:#10b9811a;--color-warning:#f59e0b;--color-warning-light:#fbbf24;--color-warning-dark:#d97706;--color-warning-subtle:#f59e0b1a;--color-danger:#ef4444;--color-danger-light:#f87171;--color-danger-dark:#dc2626;--color-danger-subtle:#ef44441a;--color-info:#8b5cf6;--color-info-light:#a78bfa;--color-info-dark:#7c3aed;--color-info-subtle:#8b5cf61a;--bg-root:#0a0e1a;--bg-surface:#111827;--bg-card:#1e293b;--bg-elevated:#263348;--bg-hover:#ffffff0a;--bg-active:#0ea5e91f;--bg-sidebar:#0d1321;--bg-topbar:#111827d9;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--text-inverse:#0f172a;--text-on-primary:#fff;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--text-xs:.6875rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.125rem;--text-xl:1.3125rem;--text-2xl:1.625rem;--text-3xl:2rem;--text-4xl:2.5rem;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.75;--border-width:.5px;--border-subtle:#ffffff0f;--border-default:#ffffff1a;--border-strong:#ffffff29;--border-focus:var(--color-primary);--glass-bg:#1e293b99;--glass-border:#ffffff14;--glass-blur:16px;--sp-1:15px;--sp-2:15px;--sp-3:15px;--sp-4:15px;--sp-5:15px;--sp-6:15px;--sp-8:15px;--sp-10:15px;--sp-12:15px;--sp-16:15px;--radius-sm:10px;--radius-md:15px;--radius-lg:15px;--radius-xl:15px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 8px 30px #0006;--shadow-xl:0 16px 50px #00000080;--shadow-glow:0 0 30px var(--color-primary-glow);--shadow-card:0 2px 8px #0003, 0 0 0 1px var(--border-subtle);--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width:240px;--sidebar-collapsed:50px;--topbar-height:64px;--content-max-width:1440px;--z-sidebar:100;--z-topbar:90;--z-modal-backdrop:200;--z-modal:210;--z-toast:300}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-family);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background:var(--bg-root);height:100vh;overflow:hidden}#app{height:100vh;display:flex;overflow:hidden}.main-wrapper{flex-direction:column;flex:1;min-width:0;margin-right:15px;display:flex;overflow:hidden}a{color:var(--color-primary-light);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary)}img,svg{max-width:100%;display:block}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:var(--leading-tight)}::selection{background:var(--color-primary);color:var(--text-on-primary)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.container-narrow{max-width:640px;margin:0 auto}.container-medium{max-width:960px;margin:0 auto}.container-wide{max-width:1280px;margin:0 auto}.container-full{width:100%}.interface-stats{gap:var(--sp-3);flex-wrap:nowrap;width:100%;display:flex}.interface-stats>.stat-card{flex:1;min-width:0}.interface-container{box-sizing:border-box;width:100%;max-width:100%;margin:0 auto;padding:0 15px}@media (width>=1400px){.interface-container{max-width:1400px;margin:0 auto;padding:0 15px}.interface-cards{gap:var(--sp-5);grid-template-columns:repeat(4,1fr);display:grid}.interface-table{font-size:var(--text-sm)}}@media (width>=1024px) and (width<=1399px){.interface-container{max-width:1024px;padding:0 var(--sp-5);margin:0 auto}.interface-cards{gap:var(--sp-4);grid-template-columns:repeat(3,1fr);display:grid}.interface-table{font-size:var(--text-sm)}}@media (width>=900px) and (width<=1023px){.interface-container{width:100%;padding:0 var(--sp-4)}.interface-cards{gap:var(--sp-3);grid-template-columns:repeat(2,1fr);display:grid}.interface-table{font-size:var(--text-xs)}.interface-table th,.interface-table td{padding:var(--sp-2) var(--sp-3)}}@media (width>=600px) and (width<=899px){.interface-container{width:100%;padding:0 var(--sp-3)}.interface-cards{gap:var(--sp-3);grid-template-columns:repeat(2,1fr);display:grid}.interface-form{gap:var(--sp-3);grid-template-columns:1fr;display:grid}.interface-table{font-size:var(--text-xs);display:block;overflow-x:auto}.interface-stats{flex-wrap:wrap}.interface-stats>.stat-card{min-width:calc(50% - var(--sp-3));flex:none}}@media (width<=599px){.interface-container{width:100%;padding:0 var(--sp-3)}.interface-cards,.interface-form{gap:var(--sp-3);grid-template-columns:1fr;display:grid}.interface-table{font-size:var(--text-xs);white-space:nowrap;display:block;overflow-x:auto}.interface-actions{gap:var(--sp-2);flex-direction:column}.interface-stats{gap:var(--sp-2);grid-template-columns:repeat(2,1fr);display:grid}}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-subtle);height:100vh;transition:width var(--transition-base);z-index:var(--z-sidebar);flex-direction:column;display:flex;position:relative;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar-header{align-items:center;gap:var(--sp-3);border-bottom:1px solid var(--border-subtle);min-height:var(--topbar-height);padding:14px;display:flex}.sidebar-logo{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--color-primary), var(--color-info));color:#fff;width:38px;height:38px;font-weight:800;font-size:var(--text-lg);box-shadow:var(--shadow-glow);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-brand{flex-direction:column;display:flex;overflow:hidden}.sidebar-brand-name{font-size:var(--text-base);color:var(--text-primary);letter-spacing:-.02em;white-space:nowrap;font-weight:700}.sidebar-brand-sub{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap}.sidebar.collapsed .sidebar-brand,.sidebar.collapsed .sidebar-section-title,.sidebar.collapsed .nav-item-text,.sidebar.collapsed .nav-item-badge{display:none}.sidebar-nav{flex:1;padding:8px 6px;overflow-y:auto}.sidebar-section{margin-bottom:var(--sp-3)}.sidebar-section-title{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:var(--sp-2) var(--sp-3);white-space:nowrap;font-weight:600}.nav-item{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;font-size:var(--text-sm);margin-bottom:1px;display:flex;position:relative}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:var(--bg-active);color:var(--color-primary-light)}.nav-item.active:before{content:"";background:var(--color-primary);border-radius:var(--radius-full);width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav-item-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.nav-item-icon svg{stroke-width:1.75px;width:18px;height:18px}.nav-item-text{text-overflow:ellipsis;flex:1;overflow:hidden}.nav-item-badge{border-radius:var(--radius-full);background:var(--color-primary-subtle);color:var(--color-primary-light);padding:1px 6px;font-size:.625rem;font-weight:600}.pillar{align-items:center;gap:var(--sp-3);padding:10px var(--sp-3);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);margin-bottom:3px;font-size:13px;display:flex;position:relative}.pillar:hover{background:var(--bg-hover);color:var(--text-primary)}.pillar.active{background:var(--bg-active);color:var(--color-primary-light);font-weight:500}.pillar.active:before{content:"";background:var(--color-primary);border-radius:0 var(--radius-md) var(--radius-md) 0;width:3px;position:absolute;top:0;bottom:0;left:0}.pillar-icon{flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.pillar-icon svg{stroke-width:1.75px;width:16px;height:16px}.pillar-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sidebar.collapsed .pillar-title{display:none}.pillar-group{margin-bottom:2px}.pillar-arrow{width:16px;height:16px;transition:transform var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:flex}.pillar-arrow.rotated{transform:rotate(180deg)}.pillar-submenu{max-height:0;transition:max-height var(--transition-base) ease-out;flex-direction:column;display:flex;overflow:hidden}.pillar-submenu.expanded{max-height:500px;transition:max-height var(--transition-base) ease-in}.submenu-item{align-items:center;gap:var(--sp-2);padding:7px var(--sp-2) 7px calc(var(--sp-2) + 22px);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;font-size:12px;display:flex;position:relative}.submenu-item:hover{background:var(--bg-hover);color:var(--text-primary)}.submenu-item.active{background:var(--bg-active);color:var(--color-primary-light);font-weight:500}.submenu-item.active:before{content:"";left:var(--sp-3);background:var(--color-primary);border-radius:var(--radius-full);width:3px;height:60%;position:absolute;top:50%;transform:translateY(-50%)}.submenu-icon{flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:flex}.submenu-icon svg{stroke-width:1.75px;width:14px;height:14px}.submenu-text{text-overflow:ellipsis;flex:1;overflow:hidden}.sidebar.collapsed .submenu-text,.sidebar.collapsed .pillar-arrow,.sidebar.collapsed .pillar-submenu{display:none}.sidebar-footer{padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle)}.sidebar-toggle{width:100%;padding:var(--sp-2);border-radius:var(--radius-md);color:var(--text-tertiary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.sidebar-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.topbar{height:var(--topbar-height);background:var(--bg-topbar);-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--border-subtle);padding:0 var(--sp-6);align-items:center;gap:var(--sp-4);z-index:var(--z-topbar);display:flex}.topbar-breadcrumb{align-items:center;gap:var(--sp-2);font-size:var(--text-sm);color:var(--text-secondary);display:flex}.topbar-hamburger{width:40px;height:40px;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;justify-content:center;align-items:center;display:none}.topbar-hamburger:hover{background:var(--bg-hover)}.topbar-breadcrumb span{color:var(--text-primary);font-weight:500}.topbar-spacer{flex:1}.topbar-search{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-width:240px;transition:border-color var(--transition-fast);display:flex}.topbar-search:focus-within{border-color:var(--color-primary)}.topbar-search svg{width:16px;height:16px;color:var(--text-tertiary);flex-shrink:0}.topbar-search input{color:var(--text-primary);font-size:var(--text-sm);background:0 0;border:none;outline:none;width:100%}.topbar-search input::placeholder{color:var(--text-tertiary)}.topbar-actions{align-items:center;gap:var(--sp-1);display:flex}.topbar-btn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex;position:relative}.topbar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.topbar-btn .badge-dot{background:var(--color-danger);border:2px solid var(--bg-topbar);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.topbar-avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--color-primary), var(--color-info));width:34px;height:34px;font-weight:600;font-size:var(--text-sm);color:#fff;cursor:pointer;margin-left:var(--sp-2);justify-content:center;align-items:center;display:flex}.topbar-scope{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);display:flex}.topbar-scope:hover{border-color:var(--border-strong)}.topbar-scope .scope-label{color:var(--text-tertiary)}.topbar-scope .scope-value{color:var(--text-primary);font-weight:500}.topbar-company-info{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex}.topbar-company-info:hover{border-color:var(--border-strong);background:var(--bg-elevated)}.topbar-company-logo{object-fit:contain;border-radius:var(--radius-sm);background:#fff;width:40px;height:40px}.topbar-company-icon{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;width:40px;height:40px;font-weight:700;font-size:var(--text-lg);justify-content:center;align-items:center;display:flex}.topbar-company-text{flex-direction:column;gap:2px;display:flex}.topbar-company-name{font-weight:600;font-size:var(--text-sm);color:var(--text-primary);line-height:1.2}.topbar-company-reg{font-size:var(--text-xs);color:var(--text-tertiary)}.topbar-company-phone,.topbar-company-email{color:var(--text-tertiary);font-size:10px}.content{background:var(--bg-root);box-sizing:border-box;flex:1;width:100%;padding:0;overflow-y:auto}.page-header{margin-bottom:var(--sp-5)}.page-header h1{font-size:var(--text-2xl);color:var(--text-primary);letter-spacing:-.02em;font-weight:700}.page-header p{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--sp-1)}.page-header-actions{align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);display:flex}.page-header-row{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);display:flex}.grid{gap:var(--sp-5);display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-5{grid-template-columns:repeat(5,1fr)}@media (width<=1400px){.grid-5{grid-template-columns:repeat(4,1fr)}}@media (width<=1200px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-5{grid-template-columns:repeat(3,1fr)}}@media (width<=900px){.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr}}body.auth-mode .sidebar,body.auth-mode .topbar{display:none!important}body.auth-mode .main-wrapper{width:100vw;height:100vh;margin-left:0!important}body.auth-mode .content{padding:var(--sp-6);background:radial-gradient(circle at top right, #0ea5e91a, transparent 40%), radial-gradient(circle at bottom left, #10b9811a, transparent 40%), var(--bg-root);justify-content:center;align-items:center;display:flex}@media (width<=1024px){.sidebar{width:var(--sidebar-collapsed)}.sidebar .sidebar-brand-name,.sidebar .sidebar-brand-sub,.sidebar .nav-item-text,.sidebar .sidebar-section-title{display:none}.main-wrapper{margin-left:15px}.topbar{padding:0 var(--sp-4)}.page-header h1{font-size:var(--text-xl)}}@media (width>=1025px){.sidebar{flex-shrink:0;width:var(--sidebar-width)!important;position:relative!important;left:0!important;transform:none!important}.sidebar.collapsed{width:var(--sidebar-collapsed)!important}.sidebar.open{left:0!important}.sidebar-overlay{display:none!important}.main-wrapper,.main-wrapper.collapsed{margin-left:15px!important}.topbar-hamburger{display:none!important}.topbar-breadcrumb,.topbar-scope,.topbar-search{display:flex!important}}@media (width>=769px) and (width<=1024px){.sidebar{width:280px;transition:left var(--transition-base);z-index:999;position:fixed;left:-100%}.sidebar.open{left:0}.sidebar-overlay{z-index:998;background:#00000080;display:block;position:fixed;inset:0}.sidebar .sidebar-brand-name,.sidebar .sidebar-brand-sub,.sidebar .nav-item-text,.sidebar .sidebar-section-title{display:block}.main-wrapper{margin-left:0!important}.topbar-hamburger,.topbar-breadcrumb{display:flex}.topbar-scope,.topbar-search{display:none}}@media (width<=768px){.sidebar{width:280px;transition:left var(--transition-base);z-index:999;position:fixed;left:-100%}.sidebar.open{left:0}.sidebar-overlay{z-index:998;background:#00000080;display:block;position:fixed;inset:0}.sidebar .sidebar-brand-name,.sidebar .sidebar-brand-sub,.sidebar .nav-item-text,.sidebar .sidebar-section-title{display:block}.main-wrapper{margin-left:0!important}.topbar{padding:0 var(--sp-3);justify-content:flex-start}.topbar-hamburger{display:flex}.topbar-breadcrumb,.topbar-scope,.topbar-search{display:none}.topbar-title{font-size:var(--text-lg)}.content{padding:var(--sp-4)}.page-header{padding:var(--sp-4) 0}.page-header h1{font-size:var(--text-lg)}.card{padding:var(--sp-4)}.card-header{gap:var(--sp-2);flex-direction:column;align-items:flex-start}.data-table{font-size:var(--text-xs)}.data-table th,.data-table td{padding:var(--sp-2)}}@media (width>=1600px){.grid-5{grid-template-columns:repeat(5,1fr)}}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-5);margin-bottom:var(--sp-5);transition:all var(--transition-fast)}.card:hover{border-color:var(--border-default)}.card-glass{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius-lg);padding:var(--sp-5)}.card-header{margin-bottom:var(--sp-4);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--text-base);color:var(--text-primary);font-weight:600}.card-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--sp-1)}.stat-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-5);gap:var(--sp-3);transition:all var(--transition-fast);flex-direction:column;display:flex;position:relative;overflow:hidden}.stat-card-summary{justify-content:space-between;padding:var(--sp-3) var(--sp-4)!important;align-items:center!important;gap:var(--sp-2)!important;flex-direction:row!important;display:flex!important}.stat-card-summary .stat-card-icon{flex-shrink:0;width:32px;height:32px}.stat-card-summary .stat-card-value{font-weight:700;font-size:var(--text-xl)!important}.stat-card-summary .stat-card-label{font-size:var(--text-xs)!important}.stat-card:before{content:"";background:var(--stat-color,var(--color-primary));opacity:.7;height:3px;position:absolute;top:0;left:0;right:0}.stat-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card-clickable{cursor:pointer}.stat-card-clickable .stat-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md), 0 0 0 2px var(--color-primary-glow);transform:translateY(-2px)}.stat-card-header{justify-content:space-between;align-items:center;display:flex}.stat-card-icon{border-radius:var(--radius-md);background:var(--stat-bg,var(--color-primary-subtle));width:40px;height:40px;color:var(--stat-color,var(--color-primary));justify-content:center;align-items:center;display:flex}.stat-card-icon svg{width:20px;height:20px}.stat-card-trend{font-size:var(--text-xs);border-radius:var(--radius-full);padding:2px 8px;font-weight:600}.stat-card-trend.up{background:var(--color-success-subtle);color:var(--color-success-light)}.stat-card-trend.down{background:var(--color-danger-subtle);color:var(--color-danger-light)}.stat-card-value{font-size:var(--text-3xl);color:var(--text-primary);letter-spacing:-.03em;font-weight:800;animation:.5s ease-out both countUp}.stat-card-label{font-size:var(--text-sm);color:var(--text-secondary)}@media (width<=1024px){.stat-card-value{font-size:var(--text-2xl)}.stat-card-label{font-size:var(--text-xs)}.stat-card-icon{width:32px;height:32px}.stat-card-icon svg{width:20px;height:20px}}@media (width<=600px){.stat-card{padding:var(--sp-3)}.stat-card-value{font-size:var(--text-xl)}.stat-card-label{font-size:11px}.stat-card-icon{width:28px;height:28px}.stat-card-icon svg{width:16px;height:16px}.stat-card-trend{padding:2px 6px;font-size:10px}}.btn{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);font-size:var(--text-sm);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;font-weight:500;line-height:1.5;display:inline-flex}.btn svg{width:16px;height:16px}.btn-primary{background:var(--color-primary);color:var(--text-on-primary);box-shadow:0 1px 3px #0ea5e94d}.btn-primary:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e966}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn-ghost{color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:var(--color-danger-dark)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover{background:var(--color-success-dark)}.btn-sm{padding:var(--sp-1) var(--sp-3);font-size:var(--text-xs)}.btn-lg{padding:var(--sp-3) var(--sp-6);font-size:var(--text-base)}.btn-icon{border-radius:var(--radius-md);width:34px;height:34px;padding:0}.badge{align-items:center;gap:var(--sp-1);font-size:var(--text-xs);border-radius:var(--radius-full);white-space:nowrap;padding:2px 10px;font-weight:600;display:inline-flex}.badge-primary{background:var(--color-primary-subtle);color:var(--color-primary-light)}.badge-success{background:var(--color-success-subtle);color:var(--color-success-light)}.badge-warning{background:var(--color-warning-subtle);color:var(--color-warning-light)}.badge-danger{background:var(--color-danger-subtle);color:var(--color-danger-light)}.badge-info{background:var(--color-info-subtle);color:var(--color-info-light)}.badge-neutral{color:var(--text-secondary);background:#94a3b81a}.badge-dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.data-table-wrapper{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-card);overflow-x:auto}.data-table th{text-align:left;padding:var(--sp-3) var(--sp-4);font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600}.data-table th:hover{color:var(--text-primary)}.data-table td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.data-table tr:hover td{background:var(--bg-hover);color:var(--text-primary)}.data-table tr:last-child td{border-bottom:none}@media (width<=900px){.data-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table{min-width:600px;font-size:var(--text-xs)}}@media (width<=600px){.data-table{min-width:500px;font-size:11px}.data-table th,.data-table td{padding:var(--sp-2)}.badge{padding:2px 6px;font-size:10px}}.form-group{gap:var(--sp-2);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500}.form-input,.form-select,.form-textarea{padding:var(--sp-2) var(--sp-3);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);transition:border-color var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow);outline:none}.form-input::placeholder{color:var(--text-tertiary)}.form-textarea{resize:vertical;min-height:80px}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a0a0a0' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:36px}.form-label{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--sp-2);font-weight:500;display:block}.form-group{margin-bottom:var(--sp-4)}.form-row{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.tabs{gap:var(--sp-1);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--sp-5);display:flex}.tab{padding:var(--sp-3) var(--sp-4);font-size:var(--text-sm);color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border-bottom:2px solid #0000;font-weight:500}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--color-primary-light);border-bottom-color:var(--color-primary)}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal-backdrop);background:#0009;animation:.2s ease-out fadeIn;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--sp-6);z-index:var(--z-modal);min-width:480px;max-width:640px;max-height:80vh;box-shadow:var(--shadow-xl);animation:.25s ease-out scaleIn;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.modal-header{margin-bottom:var(--sp-5);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--text-lg);font-weight:600}.modal-close{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-tertiary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-footer{justify-content:flex-end;gap:var(--sp-3);margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--border-subtle);display:flex}@media (width<=768px){.modal{min-width:calc(100% - var(--sp-6));max-width:calc(100% - var(--sp-6));max-height:90vh;padding:var(--sp-4)}.modal-title{font-size:var(--text-md)}.modal-body{font-size:var(--text-sm)}}@media (width<=480px){.modal{padding:var(--sp-3);border-radius:var(--radius-lg)}.modal-header{margin-bottom:var(--sp-3)}.modal-footer{gap:var(--sp-2);flex-direction:column}.modal-footer .btn{width:100%}}.toast-container{top:var(--sp-5);right:var(--sp-5);z-index:var(--z-toast);gap:var(--sp-3);flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:300px;font-size:var(--text-sm);animation:.35s ease-out slideInRight;display:flex}.toast-icon{flex-shrink:0}.toast-message{color:var(--text-primary);flex:1}.toast-close{color:var(--text-tertiary);cursor:pointer}.toast.success{border-left:3px solid var(--color-success)}.toast.error{border-left:3px solid var(--color-danger)}.toast.warning{border-left:3px solid var(--color-warning)}.toast.info{border-left:3px solid var(--color-primary)}.progress-bar{background:var(--bg-elevated);border-radius:var(--radius-full);height:6px;overflow:hidden}.progress-fill{background:var(--color-primary);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.progress-fill.success{background:var(--color-success)}.progress-fill.warning{background:var(--color-warning)}.progress-fill.danger{background:var(--color-danger)}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);padding:var(--sp-2) var(--sp-3);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-primary);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);box-shadow:var(--shadow-md);z-index:50;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip:hover:after{opacity:1}.empty-state{padding:var(--sp-12) var(--sp-6);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{border-radius:var(--radius-xl);background:var(--bg-elevated);width:64px;height:64px;margin-bottom:var(--sp-4);color:var(--text-tertiary);justify-content:center;align-items:center;display:flex}.empty-state-title{font-size:var(--text-lg);color:var(--text-primary);margin-bottom:var(--sp-2);font-weight:600}.empty-state-text{font-size:var(--text-sm);color:var(--text-secondary);max-width:400px}.kanban{gap:var(--sp-4);padding-bottom:var(--sp-4);display:flex;overflow-x:auto}.kanban-column{flex-shrink:0;width:280px;min-width:280px}.kanban-column-header{padding:var(--sp-3);margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.kanban-column-title{font-size:var(--text-sm);align-items:center;gap:var(--sp-2);font-weight:600;display:flex}.kanban-column-count{font-size:var(--text-xs);border-radius:var(--radius-full);background:var(--bg-elevated);color:var(--text-tertiary);padding:1px 8px}.kanban-cards{gap:var(--sp-2);flex-direction:column;min-height:100px;display:flex}.kanban-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-3);cursor:pointer;transition:all var(--transition-fast)}.kanban-card:hover{border-color:var(--border-default);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.kanban-card-title{font-size:var(--text-sm);color:var(--text-primary);margin-bottom:var(--sp-2);font-weight:500}.kanban-card-meta{align-items:center;gap:var(--sp-2);font-size:var(--text-xs);color:var(--text-tertiary);display:flex}.tree-node{padding-left:var(--sp-5)}.tree-node-header{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);font-size:var(--text-sm);display:flex}.tree-node-header:hover{background:var(--bg-hover)}.tree-node-toggle{width:16px;height:16px;color:var(--text-tertiary);transition:transform var(--transition-fast);justify-content:center;align-items:center;display:flex}.tree-node-toggle.expanded{transform:rotate(90deg)}.tree-node-icon{color:var(--color-primary)}.tree-node-label{color:var(--text-primary);font-weight:500}.tree-node-badge{margin-left:auto}.tree-children{transition:max-height var(--transition-base);overflow:hidden}.sprint-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-5);transition:all var(--transition-fast)}.sprint-card:hover{border-color:var(--border-default)}.sprint-header{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.sprint-title{font-size:var(--text-base);font-weight:600}.sprint-tasks{margin-top:var(--sp-3);gap:var(--sp-2);flex-direction:column;display:flex}.sprint-task{align-items:center;gap:var(--sp-3);padding:var(--sp-2);font-size:var(--text-sm);color:var(--text-secondary);border-radius:var(--radius-sm);display:flex}.sprint-task:hover{background:var(--bg-hover)}.sprint-task-check{border:2px solid var(--border-strong);width:18px;height:18px;transition:all var(--transition-fast);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sprint-task-check.done{background:var(--color-success);border-color:var(--color-success);color:#fff}.activity-item{gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border-subtle);display:flex}.activity-item:last-child{border-bottom:none}.activity-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.activity-content{flex:1}.activity-text{font-size:var(--text-sm);color:var(--text-secondary)}.activity-text strong{color:var(--text-primary);font-weight:500}.activity-time{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--sp-1)}.modal-wide .modal-body{max-width:900px}.doc-viewer-loading{padding:var(--sp-8);text-align:center;color:var(--text-secondary)}.pdf-container{gap:var(--sp-4);flex-direction:column;display:flex}.pdf-page-wrapper{border-radius:var(--radius-sm);overflow:hidden;box-shadow:0 2px 8px #00000026}.pdf-page-wrapper canvas{width:100%;height:auto;display:block}.docx-container{padding:var(--sp-4);line-height:1.6}.docx-container h1,.docx-container h2,.docx-container h3{margin-top:var(--sp-4);margin-bottom:var(--sp-2)}.docx-container p{margin-bottom:var(--sp-3)}.docx-container table{border-collapse:collapse;width:100%;margin:var(--sp-3) 0}.docx-container th,.docx-container td{border:1px solid var(--border-default);padding:var(--sp-2)}.docx-container th{background:var(--bg-subtle)}.table-wrapper{max-height:500px;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table th,.data-table td{border:1px solid var(--border-subtle);padding:var(--sp-2) var(--sp-3);text-align:left}.data-table th{background:var(--bg-subtle);font-weight:600;position:sticky;top:0}.data-table tr:hover{background:var(--bg-hover)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-5{gap:var(--sp-5)}.mt-4{margin-top:var(--sp-4)}.mt-6{margin-top:var(--sp-6)}.mb-4{margin-bottom:var(--sp-4)}.text-sm{font-size:var(--text-sm)}.text-xs{font-size:var(--text-xs)}.text-muted{color:var(--text-secondary)}.text-right{text-align:right}.w-full{width:100%}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.production-portal{gap:var(--sp-5);flex-direction:column;display:flex}.production-tabs{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--sp-4);overflow-x:auto}.production-tabs .tabs{gap:var(--sp-2);border-bottom:2px solid var(--border-subtle);padding-bottom:var(--sp-3);display:flex}.production-tabs .tab{align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);height:36px;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;margin-bottom:-var(--sp-3);border-bottom:2px solid #0000;font-weight:500;display:flex;position:relative}.production-tabs .tab:hover{color:var(--text-primary)}.production-tabs .tab.active{color:var(--color-primary-light);border-bottom-color:var(--color-primary)}.production-content{gap:var(--sp-5);flex-direction:column;display:flex}.production-tab{animation:fadeIn var(--transition-base);display:none}.production-tab.active{display:contents}.metric-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-4);text-align:center}.metric-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-2);font-weight:600;display:block}.metric-value{font-size:var(--text-3xl);margin-bottom:var(--sp-1);font-weight:700;display:block}.metric-sub{font-size:var(--text-xs);color:var(--text-tertiary);display:block}.constraint-item{gap:var(--sp-2);padding:var(--sp-3);border-left:3px solid var(--color-info);border-radius:var(--radius-md);margin-bottom:var(--sp-3);background:#0ea5e90d;flex-direction:column;display:flex}.constraint-label{font-size:var(--text-sm);color:var(--text-primary);font-weight:600}.constraint-value{font-size:var(--text-sm);color:var(--text-secondary)}.constraint-impact{font-size:var(--text-xs);font-weight:500}.header-actions{gap:var(--sp-2);align-items:center;display:flex}.input-sm{padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text-primary)}.input-sm::placeholder{color:var(--text-tertiary)}.summary-box{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-4);text-align:center}.summary-label{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--sp-2);font-weight:600;display:block}.summary-value{font-size:var(--text-2xl);color:var(--text-primary);font-weight:700;display:block}.section-divider{background:var(--border-subtle);height:1px;margin:var(--sp-6) 0}.compliance-metric{margin-bottom:var(--sp-6)}.metric-row{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2);display:flex}.metric-label{flex-shrink:0;width:160px}.metric-bar{background:var(--bg-input);border-radius:var(--radius-full);flex:1;justify-content:center;align-items:center;height:24px;display:flex;position:relative;overflow:hidden}.metric-bar:before{content:"";z-index:1;transition:width var(--transition-base);background:linear-gradient(90deg,#10b981,#34d399);position:absolute;top:0;bottom:0;left:0}.metric-bar-value{z-index:2;font-size:var(--text-xs);color:#fff;font-weight:600;position:relative}.compliance-items{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.compliance-item{background:var(--bg-input);border-radius:var(--radius-md);padding:var(--sp-3);text-align:center}.compliance-title{font-size:var(--text-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--sp-2);font-weight:600;display:block}.compliance-value{font-size:var(--text-xl);margin-bottom:var(--sp-1);font-weight:700;display:block}.compliance-sub{font-size:var(--text-xs);color:var(--text-tertiary);display:block}.nosa-elements{gap:var(--sp-3);flex-direction:column;display:flex}.element{padding:var(--sp-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-input);cursor:pointer;transition:all var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.element:hover{border-color:var(--color-primary);background:var(--bg-card)}.element-label{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.element-badge{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;display:inline-block}.template-browser{gap:var(--sp-4);flex-direction:column;display:flex}.browser-header{padding:var(--sp-2) 0}.browser-header h2{font-size:var(--text-lg);color:var(--text-primary);margin:0;font-weight:700}.browser-header p{margin:0}.template-list{border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden}.template-item{padding:var(--sp-4);border-bottom:1px solid var(--border-subtle)}.template-item:last-child{border-bottom:none}.template-item:hover{background:var(--bg-hover)}.btn-preview-template,.btn-use-template{min-width:90px}.template-card-clickable{flex-direction:column;justify-content:center;align-items:center;min-height:120px;display:flex}.template-card-clickable:hover{box-shadow:var(--shadow-md)}.sites-grid{gap:var(--sp-4);padding:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.site-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--sp-4);background:var(--bg-card);transition:all var(--transition-fast);flex-direction:column;height:100%;display:flex}.site-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-2px)}.site-card h4{font-size:var(--text-base);color:var(--text-primary);margin:0;font-weight:600}.site-card .site-meta{gap:var(--sp-2);margin:var(--sp-3) 0;font-size:var(--text-xs);color:var(--text-tertiary);grid-template-columns:1fr 1fr;display:grid}.site-card .site-meta strong{color:var(--text-secondary);margin-bottom:2px;font-weight:500;display:block}.site-card .site-address{font-size:var(--text-xs);color:var(--text-secondary);margin:var(--sp-3) 0;line-height:1.4}.site-card .site-actions{gap:var(--sp-2);padding-top:var(--sp-3);border-top:1px solid var(--border-subtle);margin-top:auto;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out both}.animate-fade-in-up{animation:fadeInUp var(--transition-slow) ease-out both}.animate-fade-in-down{animation:fadeInDown var(--transition-slow) ease-out both}.animate-scale-in{animation:scaleIn var(--transition-base) ease-out both}.animate-bounce-in{animation:.6s ease-out both bounceIn}.animate-pulse{animation:2s ease-in-out infinite pulse}.animate-spin{animation:1s linear infinite spin}.animate-shimmer{background:linear-gradient(90deg, var(--bg-card) 25%, var(--bg-elevated) 50%, var(--bg-card) 75%);background-size:200% 100%;animation:1.5s infinite shimmer}.delay-1{animation-delay:50ms}.delay-2{animation-delay:.1s}.delay-3{animation-delay:.15s}.delay-4{animation-delay:.2s}.delay-5{animation-delay:.25s}.delay-6{animation-delay:.3s}.delay-7{animation-delay:.35s}.delay-8{animation-delay:.4s}.page-enter{animation:.35s ease-out both fadeInUp}
