:root{--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-muted: #f1f5f9;--color-surface-strong: #e2e8f0;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-text-primary: #0f172a;--color-text-secondary: #1f2937;--color-text-muted: #475569;--color-text-dim: #64748b;--color-accent: #2563eb;--color-accent-strong: #1d4ed8;--color-success: #059669;--color-danger: #dc2626;--color-card-shadow: 0 10px 25px rgba(0, 0, 0, .06)}:root[data-theme=dark]{--color-bg: #0f172a;--color-surface: #1e293b;--color-surface-muted: #0f172a;--color-surface-strong: #334155;--color-border: #334155;--color-border-strong: #475569;--color-text-primary: #f8fafc;--color-text-secondary: #cbd5e1;--color-text-muted: #94a3b8;--color-text-dim: #64748b;--color-accent: #3b82f6;--color-accent-strong: #2563eb;--color-success: #10b981;--color-danger: #ef4444;--color-card-shadow: 0 10px 25px rgba(0, 0, 0, .25)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);color:var(--color-text-primary)}.app-shell{display:flex;min-height:100vh}.sidebar{width:260px;background-color:var(--color-surface);border-right:1px solid var(--color-border);padding:24px 16px;display:flex;flex-direction:column}.sidebar.collapsed{width:72px;padding:16px 10px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:20px}.sidebar.collapsed .sidebar-header{justify-content:center}.theme-toggle,.sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;border:1px solid var(--color-border-strong);background-color:transparent;color:var(--color-text-muted);cursor:pointer}.theme-toggle:hover,.sidebar-toggle:hover{background-color:var(--color-surface-strong);color:var(--color-text-primary)}.logo{font-size:20px;font-weight:700;color:var(--color-text-primary);padding:0 12px}.sidebar.collapsed .logo{padding:0}.sidebar.collapsed .logo-text{display:none}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav a{padding:10px 12px;color:var(--color-text-muted);text-decoration:none;border-radius:6px;transition:all .12s ease-in-out}.sidebar nav a{display:flex;align-items:center;gap:10px}.sidebar.collapsed nav a{justify-content:center;padding:10px}.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}.sidebar.collapsed .nav-label{display:none}.sidebar nav a:hover{background-color:var(--color-surface-strong);color:var(--color-text-primary)}.sidebar nav a.active{background-color:var(--color-accent);color:#fff}.content{flex:1;padding:32px;overflow-y:auto;background:var(--color-bg);color:var(--color-text-primary)}.page{width:100%}.page h1{font-size:32px;font-weight:700;margin:0 0 8px;color:var(--color-text-primary)}.page p{font-size:16px;color:var(--color-text-dim);margin:0 0 24px}.project-list,.resource-list{display:grid;gap:16px}.project-card,.resource-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:20px;transition:all .12s ease-in-out;box-shadow:var(--color-card-shadow)}.project-card:hover,.resource-card:hover{border-color:var(--color-border-strong);background-color:var(--color-surface-muted)}.project-card h3,.resource-card h3{font-size:18px;font-weight:600;margin:0 0 12px;color:var(--color-text-primary)}.project-meta,.resource-meta{display:flex;flex-direction:column;gap:8px;color:var(--color-text-dim)}.resource-type{font-size:14px;color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.5px}.resource-availability{font-size:14px;color:var(--color-text-dim)}.status-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;width:fit-content}.status-pill.todo{background-color:var(--color-surface-strong);color:var(--color-text-secondary)}.status-pill.in_progress{background-color:var(--color-accent);color:#f8fafc}.status-pill.done{background-color:var(--color-success);color:#ecfdf3}.status-pill.blocked{background-color:var(--color-danger);color:#fee2e2}.gantt-layout{display:flex;gap:24px;height:600px}.gantt-task-list{width:360px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;overflow-y:auto}.gantt-toolbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);position:sticky;top:0;background-color:var(--color-surface);z-index:10}.gantt-toolbar h3{font-size:16px;font-weight:600;margin:0;color:var(--color-text-primary)}.gantt-toolbar p{font-size:12px;color:var(--color-text-dim);margin:0}.scale-toggle{display:flex;gap:4px}.scale-toggle button{padding:6px 12px;font-size:12px;background-color:var(--color-surface-muted);color:var(--color-text-muted);border:1px solid var(--color-border-strong);border-radius:4px;cursor:pointer;transition:all .12s ease-in-out}.scale-toggle button:hover{background-color:var(--color-surface-strong);color:var(--color-text-primary)}.scale-toggle button.active{background-color:var(--color-accent);color:#fff;border-color:var(--color-accent)}.gantt-task{padding:16px 20px;border-bottom:1px solid var(--color-border)}.gantt-task:last-child{border-bottom:none}.gantt-task .name{font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:8px}.gantt-task .meta{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--color-text-dim);margin-bottom:8px}.gantt-task .status-pill{margin-bottom:8px}.filters{padding:16px 20px;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:12px}.filters input,.filters select{padding:8px 12px;font-size:14px;background-color:var(--color-surface-muted);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:4px}.filters input:focus,.filters select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 25%,transparent)}.gantt-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;overflow:hidden;flex:1;display:flex;flex-direction:column;box-shadow:var(--color-card-shadow)}.gantt-header{padding:16px 20px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.gantt-header h2{font-size:16px;font-weight:600;margin:0 0 4px;color:var(--color-text-primary)}.gantt-header p{font-size:12px;color:var(--color-text-dim);margin:0}.gantt-legend{display:flex;gap:16px;font-size:12px;color:var(--color-text-muted)}.gantt-legend span{display:flex;align-items:center;gap:6px}.gantt-legend .dot{width:10px;height:10px;border-radius:50%}.gantt-legend .dot.todo{background-color:var(--color-surface-strong)}.gantt-legend .dot.in-progress{background-color:var(--color-accent)}.gantt-legend .dot.done{background-color:var(--color-success)}.gantt-legend .dot.blocked{background-color:var(--color-danger)}.gantt-scroll{flex:1;overflow:auto}.gantt-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-dim);font-size:14px}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--color-bg)}.auth-card{width:100%;max-width:360px;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:32px;display:flex;flex-direction:column;gap:20px;box-shadow:var(--color-card-shadow)}.auth-card h1{font-size:24px;font-weight:700;margin:0;color:var(--color-text-primary);text-align:center}.auth-card label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:500;color:var(--color-text-muted)}.auth-card input{padding:10px 12px;font-size:14px;background-color:var(--color-surface-muted);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:4px}.auth-card input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 25%,transparent)}.auth-card button{padding:10px 16px;font-size:14px;font-weight:500;background-color:var(--color-accent);color:#fff;border:1px solid var(--color-accent);border-radius:4px;cursor:pointer;transition:all .12s ease-in-out}.auth-card button:hover:not(:disabled){background-color:var(--color-accent-strong)}.auth-card button:disabled{opacity:.5;cursor:not-allowed}.auth-error{padding:12px;font-size:14px;color:#fecaca;background-color:color-mix(in srgb,var(--color-danger) 20%,transparent);border:1px solid var(--color-danger);border-radius:4px}@media (max-width: 1024px){.gantt-layout{flex-direction:column;height:auto}.gantt-task-list{width:100%;max-height:400px}.gantt-card{min-height:500px}}@media (max-width: 768px){.sidebar{display:none}.content{padding:16px}.project-list,.resource-list{grid-template-columns:1fr}}
