.toast-stack{position:fixed;right:24px;bottom:24px;z-index:60;display:grid;gap:10px;width:min(360px,calc(100vw - 32px))}.toast{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);background:var(--surface);box-shadow:var(--shadow-lg);animation:toast-in .18s ease-out}.toast button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:999px;color:var(--text-secondary);background:transparent;cursor:pointer}.toast-success{border-color:#10b9815c}.toast-error{border-color:#ef444461}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.page-loader{min-height:100vh;display:grid;place-items:center;align-content:center;gap:12px;color:var(--text-secondary);background:var(--app-bg)}.spinner{width:34px;height:34px;border:3px solid var(--border);border-top-color:var(--brand);border-radius:999px;animation:spin .78s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.navbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px;padding:16px 32px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--app-bg) 86%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.navbar__search{display:flex;align-items:center;gap:10px;width:min(420px,100%);padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-tertiary);background:var(--surface)}.navbar__search input{width:100%;border:0;outline:0;color:var(--text-primary);background:transparent}.navbar__actions{display:flex;align-items:center;gap:10px}.navbar__user{max-width:220px;overflow:hidden;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.icon-button{display:inline-grid;place-items:center;width:38px;height:38px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);background:var(--surface);cursor:pointer;transition:transform .16s ease,border-color .16s ease,color .16s ease}.icon-button:hover{transform:translateY(-1px);border-color:var(--border-strong);color:var(--text-primary)}@media(max-width:680px){.navbar{align-items:stretch;flex-direction:column;padding:16px 18px}.navbar__actions{justify-content:space-between}}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;border-right:1px solid var(--border);background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sidebar__brand{display:flex;align-items:center;gap:12px;padding:6px 8px 22px}.sidebar__brand strong,.sidebar__brand span{display:block}.sidebar__brand strong{font-size:.96rem}.sidebar__brand span{color:var(--text-tertiary);font-size:.78rem}.sidebar__logo{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;color:#fff;background:linear-gradient(135deg,#111827,#2563eb);font-weight:800}.sidebar__nav{display:grid;gap:4px}.sidebar__link{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;transition:color .16s ease,background .16s ease,transform .16s ease}.sidebar__link:hover,.sidebar__link.active{color:var(--text-primary);background:var(--surface-hover)}.sidebar__link:hover{transform:translate(2px)}@media(max-width:900px){.sidebar{position:fixed;left:12px;right:12px;bottom:12px;top:auto;z-index:30;height:auto;padding:8px;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-lg)}.sidebar__brand{display:none}.sidebar__nav{grid-template-columns:repeat(5,1fr)}.sidebar__link{justify-content:center;padding:10px 8px}.sidebar__link span{display:none}}.app-shell{min-height:100vh;display:grid;grid-template-columns:264px 1fr;background:var(--app-bg)}.app-shell__main{min-width:0;display:flex;flex-direction:column}.app-shell__content{width:min(1180px,100%);margin:0 auto;padding:32px}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.app-shell__content{padding:24px 18px 96px}}.card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.skeleton{min-height:14px;border-radius:999px;background:linear-gradient(90deg,var(--surface-muted),var(--surface-hover),var(--surface-muted));background-size:220% 100%;animation:shimmer 1.2s ease-in-out infinite}@keyframes shimmer{to{background-position-x:-220%}}.dashboard-hero{display:flex;align-items:end;justify-content:space-between;gap:18px}.dashboard-hero__status{min-width:170px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.dashboard-hero__status span,.dashboard-hero__status strong{display:block}.dashboard-hero__status span{color:var(--text-secondary);font-size:.86rem}.dashboard-hero__status strong{margin-top:4px;font-size:1.55rem}.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric-card{padding:18px}.metric-card__icon{display:grid;place-items:center;width:36px;height:36px;margin-bottom:18px;border-radius:var(--radius-sm);color:var(--brand);background:var(--brand-soft)}.metric-card span{display:block;color:var(--text-secondary);font-size:.88rem}.metric-card strong{display:block;margin-top:8px;font-size:1.65rem}.metric-card__skeleton{width:54px;height:32px;margin-top:10px}.dashboard-overview{display:grid;grid-template-columns:.9fr 1.35fr 1fr;gap:16px}.dashboard-lower{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.panel{padding:22px}.panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.panel h2{margin:0;font-size:1rem}.panel span,.panel-empty p{color:var(--text-secondary)}.simple-chart{height:220px;display:flex;align-items:end;gap:12px;margin-top:24px}.simple-chart span{flex:1;min-width:18px;border-radius:999px 999px 6px 6px;background:linear-gradient(180deg,#2563eb,#14b8a6)}.progress-panel{display:grid;gap:18px}.progress-ring{width:156px;height:156px;display:grid;place-items:center;justify-self:center;border-radius:999px;background:radial-gradient(circle at center,var(--surface) 0 58%,transparent 59%),conic-gradient(var(--brand) var(--progress),var(--surface-muted) 0)}.progress-ring div{display:grid;place-items:center}.progress-ring strong{font-size:1.7rem}.progress-ring span{font-size:.82rem}.progress-skeleton{width:156px;height:156px;justify-self:center;border-radius:999px}.status-list{display:grid;gap:8px}.status-row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid var(--border)}.status-row span{display:flex;align-items:center;gap:8px}.status-row span:before{content:"";width:8px;height:8px;border-radius:999px;background:var(--dot-color)}.activity-panel{display:grid;align-content:start;min-height:260px}.activity-list{display:grid;gap:12px;margin-top:18px}.activity-item{display:grid;gap:3px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--app-bg)}.activity-item strong{font-size:.92rem}.activity-item span{font-size:.86rem}.activity-skeleton{height:46px;border-radius:var(--radius-sm)}.activity-empty{margin:18px 0 0}.compact-list,.project-strip{display:grid;gap:12px;margin-top:18px}.compact-item,.project-mini{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--app-bg)}.compact-item div,.project-mini div{min-width:0}.compact-item strong,.compact-item span,.project-mini strong,.project-mini p{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-item span,.project-mini p,.compact-item time{color:var(--text-secondary);font-size:.86rem}.compact-item time{flex:0 0 auto}.compact-skeleton,.project-skeleton{height:54px;border-radius:var(--radius-sm)}.project-mini{justify-content:flex-start}.project-mini>span{flex:0 0 auto;width:10px;height:42px;border-radius:999px}.project-mini p{margin:2px 0 0}.panel-empty{display:grid;place-items:center;gap:10px;min-height:178px;color:var(--text-tertiary);text-align:center}.panel-empty p{max-width:260px;margin:0}.dashboard-error{padding:12px 14px;border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-sm);color:#b91c1c;background:#ef444414}@media(max-width:980px){.dashboard-grid,.dashboard-overview,.dashboard-lower{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-panel{grid-column:span 2}}@media(max-width:620px){.dashboard-hero{align-items:stretch;flex-direction:column}.dashboard-grid,.dashboard-overview,.dashboard-lower{grid-template-columns:1fr}.progress-panel{grid-column:auto}}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid transparent;border-radius:var(--radius-sm);font-weight:650;line-height:1;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}.button:hover{transform:translateY(-1px)}.button-primary{color:#fff;background:var(--brand);box-shadow:0 10px 22px #2563eb2e}.button-secondary{color:var(--text-primary);border-color:var(--border);background:var(--surface)}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,rgba(37,99,235,.08),transparent 28%),var(--app-bg)}.auth-card{width:min(420px,100%);display:grid;gap:16px;padding:28px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg)}.auth-card p{margin:0 0 8px;color:var(--brand);font-weight:700}.auth-card h1{margin:0;font-size:1.8rem}.auth-card label{display:grid;gap:8px;color:var(--text-secondary);font-size:.9rem}.auth-card input{width:100%;min-height:42px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);background:var(--app-bg)}.auth-card a{color:var(--brand);font-weight:650}.auth-card__helper{width:fit-content;color:var(--text-secondary);font-size:.9rem}.form-error{padding:10px 12px;border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-sm);color:#b91c1c;background:#ef444414}.form-warning{padding:10px 12px;border:1px solid rgba(245,158,11,.38);border-radius:var(--radius-sm);color:#92400e;background:#f59e0b1a}.form-success{padding:10px 12px;border:1px solid rgba(16,185,129,.36);border-radius:var(--radius-sm);color:#047857;background:#10b98114}:root{color-scheme:light;--app-bg: #f7f8fb;--surface: #ffffff;--surface-muted: #eef2f7;--surface-hover: #f1f5f9;--text-primary: #111827;--text-secondary: #4b5563;--text-tertiary: #7c8798;--border: #e5e7eb;--border-strong: #cbd5e1;--brand: #2563eb;--brand-soft: rgba(37, 99, 235, .11);--success: #10b981;--warning: #f59e0b;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--shadow-sm: 0 10px 24px rgba(15, 23, 42, .05);--shadow-lg: 0 24px 60px rgba(15, 23, 42, .12)}:root[data-theme=dark]{color-scheme:dark;--app-bg: #0d1117;--surface: #151b23;--surface-muted: #1f2937;--surface-hover: #202938;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--border: #273244;--border-strong: #475569;--brand: #60a5fa;--brand-soft: rgba(96, 165, 250, .16);--success: #34d399;--warning: #fbbf24;--shadow-sm: 0 10px 24px rgba(0, 0, 0, .18);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .34)}*{box-sizing:border-box}html{min-width:320px;background:var(--app-bg)}body{margin:0;color:var(--text-primary);background:var(--app-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.5;text-rendering:optimizeLegibility}button,input,textarea,select{font:inherit}button:disabled{cursor:not-allowed;opacity:.68}a{color:inherit}.page-stack{display:grid;gap:22px}.page-heading p{margin:0 0 6px;color:var(--brand);font-weight:750}.page-heading h1{margin:0;font-size:clamp(1.8rem,2.6vw,2.55rem);line-height:1.12}.page-heading--row{display:flex;align-items:center;justify-content:space-between;gap:16px}.empty-state{display:grid;place-items:center;min-height:260px;padding:28px;text-align:center}.empty-state h2{margin:0 0 8px;font-size:1.15rem}.empty-state p{max-width:560px;margin:0;color:var(--text-secondary)}.kanban-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.kanban-preview__column{min-height:280px;padding:18px}.kanban-preview__column h2{margin:0 0 10px;font-size:1rem}.kanban-preview__column p{margin:0;color:var(--text-secondary)}@media(max-width:760px){.page-heading--row{align-items:stretch;flex-direction:column}.kanban-preview{grid-template-columns:1fr}}
