@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=DM+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f2eb;--surface:#fff;--border:#e6e2d8;--border-lt:#f0ece2;--text:#1a1a18;--muted:#888880;--faint:#bbb9b0;--accent:#2563eb;--success:#16a34a;--warn-bg:#fef3c7;--warn-bdr:#fde68a;--warn-txt:#92400e;--font:"DM Sans", sans-serif;--mono:"DM Mono", monospace;--radius:10px;--radius-sm:6px}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:inherit;text-decoration:none}input,select,button{font-family:var(--font);font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.card-title{color:var(--faint);letter-spacing:1px;text-transform:uppercase;border-bottom:1px solid var(--border-lt);margin-bottom:20px;padding-bottom:12px;font-size:10px;font-weight:600}.fg{margin-bottom:15px}.fl{color:var(--muted);letter-spacing:.3px;text-transform:uppercase;margin-bottom:5px;font-size:11px;font-weight:500;display:block}.fi,.fs{border-radius:var(--radius-sm);width:100%;color:var(--text);background:#faf9f6;border:1px solid #ddd9d0;outline:none;padding:9px 11px;font-size:13.5px;transition:border-color .15s,background .15s}.fi:focus,.fs:focus{border-color:var(--accent);background:var(--surface)}.btn-dark{background:var(--text);color:#fff;border-radius:var(--radius-sm);cursor:pointer;letter-spacing:.2px;border:none;width:100%;padding:11px;font-size:13.5px;font-weight:500;transition:opacity .15s}.btn-dark:hover{opacity:.87}.btn-dark:disabled{opacity:.38;cursor:not-allowed}.btn-dark.running{background:var(--accent)}.badge{letter-spacing:.2px;white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.badge-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge-dot.blink{animation:2s ease-in-out infinite blink}.badge.preview{background:var(--warn-bg);color:var(--warn-txt);border:1px solid var(--warn-bdr)}.badge.complete{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.app{background:var(--bg);min-height:100vh;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}.topbar{z-index:100;background:#1e293b;align-items:center;gap:12px;height:48px;padding:0 16px;display:none;position:fixed;top:0;left:0;right:0}@media (width<=768px){.topbar{display:flex}.app{padding-top:48px}}.topbar-title{color:#fff;font-size:15px;font-weight:600}.hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:4px;padding:4px;display:flex}.hamburger span{background:#fff;border-radius:2px;width:20px;height:2px;display:block}.sidebar-overlay{z-index:40;background:#0006;position:fixed;inset:0}.sidebar{color:#cbd5e1;background:#1e293b;flex-direction:column;flex-shrink:0;width:240px;height:100vh;min-height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}@media (width<=768px){.sidebar{z-index:50;transition:left .25s;position:fixed;top:0;bottom:0;left:-240px}.sidebar.open{left:0}}.sidebar-header{border-bottom:1px solid #334155;padding:20px 16px 16px}.sidebar-brand{color:#f1f5f9;margin-bottom:3px;font-size:15px;font-weight:600}.sidebar-sub{color:#64748b;font-size:11px}.sidebar-nav{flex:1;padding:12px 0}.nav-group{margin-bottom:4px}.nav-group-label{color:#475569;letter-spacing:.8px;text-transform:uppercase;padding:8px 16px 4px;font-size:10px;font-weight:600}.nav-item{color:#94a3b8;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:8px 16px;font-family:inherit;font-size:13.5px;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-item:hover{color:#e2e8f0;background:#273548}.nav-item.active{color:#f1f5f9;background:#334155}.nav-icon{font-size:14px}.nav-ext-icon{opacity:.6;margin-left:auto;font-size:11px}.sidebar-footer{border-top:1px solid #334155;flex-direction:column;gap:6px;padding:16px;display:flex}.sidebar-portfolio-link{color:#64748b;font-size:12px;text-decoration:none;transition:color .15s}.sidebar-portfolio-link:hover{color:#94a3b8}.main-content{flex:1;overflow-y:auto}
