:root{color-scheme:dark;--color-bg-canvas: #0d0710;--color-bg-app: #120a16;--color-bg-sidebar: #160b1d;--color-bg-surface: #1b1023;--color-bg-surface-raised: #22142c;--color-border-subtle: #35213e;--color-border-strong: #4a2d57;--color-text-primary: #f5f0f7;--color-text-secondary: #c8bcd1;--color-text-muted: #8f8398;--color-accent-primary: #f43fa7;--color-accent-hover: #ff59b8;--color-accent-soft: #3c1832;--color-success: #58d49c;--color-warning: #ffb454;--color-info: #8c7cff;--color-danger: #ff6b7a;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--radius-1: 4px;--radius-2: 6px;--radius-3: 8px;--radius-4: 12px;--shadow-raised: 0 18px 48px rgba(6, 2, 8, .32);--sidebar-width: 280px}*{box-sizing:border-box}html{min-width:320px;background:var(--color-bg-canvas);color:var(--color-text-primary);font-family:var(--font-sans);line-height:1.5}body{margin:0;min-height:100vh;background:var(--color-bg-canvas)}button,input{font:inherit}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh;background:radial-gradient(circle at top left,rgba(244,63,167,.12),transparent 32rem),var(--color-bg-app)}.sidebar{position:sticky;top:0;height:100vh;padding:var(--space-6);background:var(--color-bg-sidebar);border-right:1px solid var(--color-border-subtle)}.brand{display:grid;gap:var(--space-1);margin-bottom:var(--space-8)}.brand__name{font-size:22px;font-weight:700;letter-spacing:0}.brand__subtitle{color:var(--color-text-muted);font-size:13px}.nav{display:grid;gap:var(--space-2)}.nav__link{display:flex;align-items:center;gap:var(--space-3);padding:10px 12px;min-height:42px;color:var(--color-text-secondary);border:1px solid transparent;border-radius:var(--radius-3)}.nav__link:hover,.nav__link--active{color:var(--color-text-primary);background:var(--color-bg-surface);border-color:var(--color-border-subtle)}.main{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:76px;padding:var(--space-5) var(--space-8);border-bottom:1px solid var(--color-border-subtle);background:#120a16c7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar__title{margin:0;font-size:18px;font-weight:650}.topbar__context{color:var(--color-text-muted);font-size:13px}.topbar__actions{display:flex;align-items:center;gap:var(--space-2)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;color:var(--color-text-secondary);background:var(--color-bg-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-2);cursor:pointer}.icon-button:hover{color:var(--color-text-primary);border-color:var(--color-border-strong)}.page{display:grid;gap:var(--space-6);padding:var(--space-8)}.page-header{display:flex;align-items:end;justify-content:space-between;gap:var(--space-5)}.eyebrow{margin:0 0 var(--space-2);color:var(--color-accent-hover);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:var(--space-2);font-size:34px;line-height:1.12;letter-spacing:0}h2{margin-bottom:var(--space-4);font-size:20px}h3{margin-bottom:var(--space-2);font-size:16px}.muted{color:var(--color-text-muted)}.lead{max-width:820px;color:var(--color-text-secondary);font-size:16px}.grid{display:grid;gap:var(--space-4)}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:var(--space-5);align-items:start}.project-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:var(--space-5);align-items:start}.card{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-3);box-shadow:var(--shadow-raised)}.card__body{padding:var(--space-5)}.stat-card{min-height:112px}.stat-card__label{color:var(--color-text-muted);font-size:13px}.stat-card__value{margin-top:var(--space-2);font-size:30px;font-weight:700}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);color:var(--color-text-primary);background:var(--color-accent-primary);border:1px solid var(--color-accent-primary);border-radius:var(--radius-2);cursor:pointer}.button:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.button--secondary{background:var(--color-bg-surface-raised);border-color:var(--color-border-strong)}.input{width:100%;min-height:42px;padding:0 var(--space-3);color:var(--color-text-primary);background:var(--color-bg-surface-raised);border:1px solid var(--color-border-subtle);border-radius:var(--radius-2);outline:none}.input:focus{border-color:var(--color-accent-primary)}.search-input{position:relative;min-width:260px}.search-input svg{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--color-text-muted)}.search-input .input{padding-left:40px}.badge{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 9px;color:var(--color-text-secondary);background:var(--color-bg-surface-raised);border:1px solid var(--color-border-subtle);border-radius:999px;font-size:12px;white-space:nowrap}.badge--success{color:var(--color-success)}.badge--warning{color:var(--color-warning)}.badge--info{color:var(--color-info)}.badge--danger{color:var(--color-danger)}.tabs{display:flex;gap:var(--space-2);overflow-x:auto;border-bottom:1px solid var(--color-border-subtle)}.tabs__button{min-height:44px;padding:0 var(--space-3);color:var(--color-text-muted);background:transparent;border:0;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}.tabs__button--active{color:var(--color-text-primary);border-bottom-color:var(--color-accent-primary)}.project-card{display:grid;gap:var(--space-3)}.project-card__meta{display:flex;flex-wrap:wrap;gap:var(--space-2)}.activity-table{width:100%;border-collapse:collapse}.activity-table th,.activity-table td{padding:14px 12px;text-align:left;border-bottom:1px solid var(--color-border-subtle);vertical-align:top}.activity-table th{color:var(--color-text-muted);font-size:12px;font-weight:650;text-transform:uppercase}.progress{width:100%;min-width:120px;height:7px;overflow:hidden;background:var(--color-bg-surface-raised);border-radius:999px}.progress__bar{height:100%;background:var(--color-accent-primary)}.detail-panel{position:sticky;top:96px}.list{display:grid;gap:var(--space-3);margin:0;padding:0;list-style:none}.list-item{padding:var(--space-3);background:#22142cb8;border:1px solid var(--color-border-subtle);border-radius:var(--radius-2)}.funding-card{display:grid;gap:var(--space-3)}.funding-card__footer{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.login-page{display:grid;min-height:100vh;place-items:center;padding:var(--space-6);background:radial-gradient(circle at top left,rgba(244,63,167,.16),transparent 34rem),var(--color-bg-canvas)}.login-card{width:min(100%,520px)}.login-brand{display:flex;gap:var(--space-4);align-items:center;margin-bottom:var(--space-4)}.login-brand__mark{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--color-accent-hover);background:var(--color-accent-soft);border:1px solid var(--color-border-strong);border-radius:var(--radius-3)}.login-form{display:grid;gap:var(--space-4);margin-top:var(--space-6)}.login-form label{display:grid;gap:var(--space-2);color:var(--color-text-secondary);font-size:13px}.login-error{padding:var(--space-3);color:var(--color-danger);background:#ff6b7a14;border:1px solid rgba(255,107,122,.28);border-radius:var(--radius-2)}@media (max-width: 1080px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.nav{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-layout,.project-layout,.grid--3,.grid--2{grid-template-columns:1fr}.detail-panel{position:static}}@media (max-width: 720px){.topbar,.page{padding:var(--space-5)}.page-header{display:grid}.nav{grid-template-columns:1fr 1fr}h1{font-size:28px}}
