@import"https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-base: #F5F7FA;--color-panel: #FFFFFF;--color-elevated: #F0F2F5;--color-border: #E2E8F0;--color-border-subtle: #EEF0F3;--color-text-primary: #0F172A;--color-text-secondary: #475569;--color-text-muted: #94A3B8;--color-blue: #2563EB;--color-blue-dk: #1D4ED8;--color-blue-subtle: rgba(37, 99, 235, .08);--color-green: #059669;--color-green-subtle: rgba(5, 150, 105, .08);--color-amber: #D97706;--color-amber-subtle: rgba(217, 119, 6, .08);--color-red: #E11D48;--color-red-subtle: rgba(225, 29, 72, .08);--color-purple: #7C3AED;--color-purple-subtle: rgba(124, 58, 237, .08);--sidebar-width: 256px;--header-height: 56px;--radius: 8px;--radius-sm: 6px;--radius-lg: 12px}[data-theme=dark]{--color-base: #0D0D0D;--color-panel: #161616;--color-elevated: #1C1C1C;--color-border: #222222;--color-border-subtle: #1A1A1A;--color-text-primary: #F1F5F9;--color-text-secondary: #94A3B8;--color-text-muted: #475569;--color-blue: #3B82F6;--color-blue-dk: #2563EB;--color-blue-subtle: rgba(59, 130, 246, .08);--color-green: #34D399;--color-green-subtle: rgba(52, 211, 153, .08);--color-amber: #FBBF24;--color-amber-subtle: rgba(251, 191, 36, .08);--color-red: #FB7185;--color-red-subtle: rgba(251, 113, 133, .08);--color-purple: #A78BFA;--color-purple-subtle: rgba(167, 139, 250, .08)}html{font-family:Outfit,sans-serif;background:var(--color-base);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5;color-scheme:light}body{min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--color-panel);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:40;overflow-y:auto;overflow-x:hidden}.main-content{margin-left:var(--sidebar-width);flex:1;display:flex;flex-direction:column;min-height:100vh}.page-header{height:var(--header-height);min-height:var(--header-height);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 24px;gap:12px;background:var(--color-panel);position:sticky;top:0;z-index:30}.page-body{flex:1;padding:24px;overflow-y:auto;overflow-x:hidden}.page-scroll-shell{display:flex;flex-direction:column;height:100%;overflow:hidden}.sidebar-logo{height:var(--header-height);min-height:var(--header-height);display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--color-border);flex-shrink:0}.sidebar-logo-mark{width:32px;height:32px;background:var(--color-blue);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;color:#fff;flex-shrink:0;box-shadow:0 2px 8px var(--color-blue-subtle)}.sidebar-logo-text{display:flex;flex-direction:column;gap:1px}.sidebar-logo-title{font-size:13px;font-weight:700;color:var(--color-text-primary);line-height:1}.sidebar-logo-sub{font-size:10px;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;line-height:1}.sidebar-nav{flex:1;padding:12px 0;display:flex;flex-direction:column;gap:2px}.sidebar-section-label{font-size:9px;font-weight:700;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);padding:12px 16px 4px;margin-top:4px}.sidebar-item{display:flex;align-items:center;gap:10px;padding:8px 16px;margin:0 8px;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:13px;font-weight:500;transition:all .15s ease;cursor:pointer;border:none;background:none;width:calc(100% - 16px);text-align:left;text-decoration:none}.sidebar-item:hover{background:#ffffff0a;color:var(--color-text-primary)}.sidebar-item.active{background:var(--color-blue-subtle);color:var(--color-blue)}.sidebar-item.active .sidebar-icon{color:var(--color-blue)}.sidebar-item.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.sidebar-icon{width:16px;height:16px;flex-shrink:0;opacity:.7}.sidebar-item.active .sidebar-icon{opacity:1}.sidebar-item-badge{margin-left:auto;background:var(--color-blue);color:#fff;font-size:9px;font-weight:700;font-family:JetBrains Mono,monospace;padding:2px 6px;border-radius:10px;line-height:1.4}.sidebar-item-badge.soon{background:var(--color-elevated);color:var(--color-text-muted);border:1px solid var(--color-border)}.sidebar-footer{border-top:1px solid var(--color-border);padding:12px 8px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s}.sidebar-user:hover{background:#ffffff0a}.sidebar-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-blue-subtle);border:1px solid var(--color-blue);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--color-blue);flex-shrink:0}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:12px;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:10px;font-weight:500;color:var(--color-text-muted);font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.06em}.card{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}.card-elevated{background:var(--color-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}.spotlight-card{position:relative;overflow:hidden;background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:box-shadow .2s,border-color .2s}.spotlight-card:hover{border-color:var(--color-blue);box-shadow:0 0 0 3px var(--color-blue-subtle),0 4px 16px #0000000f}.kpi-card{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:8px}.kpi-label{font-size:11px;font-weight:700;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}.kpi-value{font-size:28px;font-weight:800;color:var(--color-text-primary);line-height:1;font-family:JetBrains Mono,monospace}.kpi-sub{font-size:12px;color:var(--color-text-secondary)}.kpi-trend-up{color:var(--color-green);font-size:12px;font-weight:600}.kpi-trend-down{color:var(--color-red);font-size:12px;font-weight:600}.status-badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 10px;border-radius:11px;font-size:10px;font-weight:700;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.status-dot{width:5px;height:5px;border-radius:50%;animation:pulse-dot 2s ease-in-out infinite}.status-badge.active{color:var(--color-green);background:var(--color-green-subtle)}.status-badge.active .status-dot{background:var(--color-green)}.status-badge.pending{color:var(--color-amber);background:var(--color-amber-subtle)}.status-badge.pending .status-dot{background:var(--color-amber)}.status-badge.info{color:var(--color-blue);background:var(--color-blue-subtle)}.status-badge.info .status-dot{background:var(--color-blue)}.status-badge.danger{color:var(--color-red);background:var(--color-red-subtle)}.status-badge.danger .status-dot{background:var(--color-red)}.status-badge.neutral{color:var(--color-text-secondary);background:#ffffff0a}.status-badge.neutral .status-dot{background:var(--color-text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 16px;border-radius:var(--radius);font-size:13px;font-weight:600;font-family:inherit;border:none;cursor:pointer;transition:all .18s cubic-bezier(.16,1,.3,1);white-space:nowrap;text-decoration:none}.btn-primary{background:var(--color-blue);color:#fff;box-shadow:0 1px 4px #2563eb40}.btn-primary:hover{background:var(--color-blue-dk);box-shadow:0 4px 12px #2563eb59;transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-ghost:hover{background:#ffffff0a;color:var(--color-text-primary);border-color:#ffffff1a}.btn-danger{background:var(--color-red-subtle);color:var(--color-red);border:1px solid rgba(251,113,133,.2)}.btn-danger:hover{background:#fb718526}.btn-sm{height:28px;padding:0 12px;font-size:12px}.btn-lg{height:44px;padding:0 24px;font-size:14px}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.input-base{background:var(--color-elevated);border:1px solid var(--color-border);border-radius:var(--radius);padding:0 12px;height:36px;font-size:13px;color:var(--color-text-primary);outline:none;width:100%;font-family:inherit;transition:border-color .18s}.input-base::placeholder{color:var(--color-text-muted)}.input-base:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px #3b82f61f}.input-label{font-size:12px;font-weight:600;color:var(--color-text-secondary);margin-bottom:6px;display:block}.input-group{display:flex;flex-direction:column;gap:4px}.input-error{font-size:11px;color:var(--color-red);margin-top:4px}.data-table{width:100%;border-collapse:collapse}.data-table th{background:#ffffff05;font-size:10px;font-weight:700;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);padding:10px 16px;text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table td{padding:0 16px;height:52px;border-bottom:1px solid rgba(255,255,255,.03);vertical-align:middle;color:var(--color-text-secondary);font-size:13px}.data-table td.primary{color:var(--color-text-primary);font-weight:500}.data-table tr:hover td{background:#ffffff05}.data-table tr:last-child td{border-bottom:none}.page-title{font-size:18px;font-weight:700;color:var(--color-text-primary);line-height:1}.page-subtitle{font-size:13px;color:var(--color-text-muted)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.divider{border:none;border-top:1px solid var(--color-border);margin:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:48px 24px;color:var(--color-text-muted);text-align:center}.empty-state-icon{font-size:32px;opacity:.5}.empty-state-text{font-size:13px}.spinner{width:18px;height:18px;border:2px solid var(--color-border);border-top-color:var(--color-blue);border-radius:50%;animation:spin .6s linear infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in-up{animation:fade-in-up .2s cubic-bezier(.16,1,.3,1) both}.animate-fade-in{animation:fade-in .2s ease both}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}::-webkit-scrollbar-corner{background:transparent}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.kanban-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.kanban-board{flex:1;overflow-x:auto;overflow-y:hidden;padding:16px 24px 20px}.kanban-columns{display:flex;gap:12px;height:100%;min-width:max-content}.kanban-col{width:240px;flex-shrink:0;display:flex;flex-direction:column;background:var(--color-base);border:1px solid var(--color-border);border-radius:10px;transition:background .15s,border-color .15s;min-height:0}.kanban-col.drag-over{background:#3b82f60a;border-color:#3b82f659}.kanban-col-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 10px;border-bottom:1px solid var(--color-border);border-top:3px solid var(--color-border);border-radius:10px 10px 0 0;flex-shrink:0}.kanban-col-label{font-size:11px;font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.06em}.kanban-col-count{font-size:11px;padding:2px 8px;border-radius:10px;font-family:JetBrains Mono,monospace;font-weight:700;min-width:24px;text-align:center}.kanban-col-cards{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:0}.kanban-empty{text-align:center;padding:32px 0;color:var(--color-text-muted);font-size:12px;opacity:.5;font-style:italic;-webkit-user-select:none;user-select:none}.page-full{display:flex;flex-direction:column;height:100vh;overflow:hidden}.table-wrap{overflow-x:auto;border-radius:var(--radius-lg)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .15s ease}.modal-box{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:480px;padding:28px;box-shadow:0 8px 40px #00000026;animation:fade-in-up .2s cubic-bezier(.16,1,.3,1)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-title{font-size:16px;font-weight:700;color:var(--color-text-primary)}.modal-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--color-elevated);border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-muted);cursor:pointer;font-size:16px;transition:all .15s}.modal-close:hover{background:var(--color-red-subtle);border-color:#fb71854d;color:var(--color-red)}[data-tooltip]{position:relative}[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#1a1a1a;border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:11px;white-space:nowrap;padding:4px 10px;border-radius:6px;pointer-events:none;z-index:100}
