:root,[data-theme=light]{--bg:#e8f2ff;--bg-deep:#d4e8ff;--surface:#ffffffc7;--surface-solid:#fff;--surface-elevated:#ffffffeb;--text:#1a2b4a;--text-muted:#6b7c99;--accent:#4b7bff;--accent-soft:#a8c4ff;--accent-glow:#4b7bff59;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--nav:#ffffff8c;--shadow:0 18px 40px #4b7bff1f;--shadow-soft:0 8px 24px #1a2b4a14;--ring-track:#4b7bff26;--wave-1:#78b4ff73;--wave-2:#4b7bff59;--wave-3:#a0d2ff8c;--card-hero:linear-gradient(135deg, #5b8cff 0%, #3d6ef5 100%);--glass-border:#ffffffa6;--input-bg:#ffffffe6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#121212;--bg-deep:#0a0a0a;--surface:#1e1e1e;--surface-solid:#242424;--surface-elevated:#2a2a2a;--text:#f4f6fb;--text-muted:#9aa3b5;--accent:#5e81ff;--accent-soft:#8aa4ff;--accent-glow:#5e81ff66;--success:#4ade80;--warning:#fbbf24;--danger:#f87171;--nav:#1c1c1cd9;--shadow:0 16px 40px #00000073;--shadow-soft:0 8px 20px #00000059;--ring-track:#ffffff14;--wave-1:#5e81ff2e;--wave-2:#5e81ff47;--wave-3:#3c5ab438;--card-hero:linear-gradient(135deg, #f0c14b 0%, #d4a017 100%);--glass-border:#ffffff0f;--input-bg:#1a1a1a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}.app-shell{max-width:480px;min-height:100dvh;margin:0 auto;padding:0 18px 32px;position:relative;overflow-x:hidden}.bg-waves{pointer-events:none;z-index:0;max-width:480px;height:55vh;margin:0 auto;position:fixed;inset:auto 0 0;overflow:hidden}.bg-waves span{filter:blur(2px);border-radius:50%;height:180px;position:absolute;left:-20%;right:-20%}.bg-waves span:first-child{background:var(--wave-1);animation:12s ease-in-out infinite drift;bottom:-40px}.bg-waves span:nth-child(2){background:var(--wave-2);animation:16s ease-in-out infinite reverse drift;bottom:40px}.bg-waves span:nth-child(3){background:var(--wave-3);opacity:.7;animation:20s ease-in-out infinite drift;bottom:110px}@keyframes drift{0%,to{transform:translate(0)scaleX(1)}50%{transform:translate(4%)scaleX(1.04)}}.page{z-index:1;padding-top:18px;position:relative}.top-bar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.greet{flex-direction:column;gap:2px;display:flex}.greet .eyebrow{color:var(--text-muted);font-size:13px;font-weight:500}.greet h1{letter-spacing:-.03em;margin:0;font-size:28px;font-weight:800}.top-actions{align-items:center;gap:10px;display:flex}.icon-btn{border:1px solid var(--glass-border);background:var(--surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:42px;height:42px;color:var(--text);cursor:pointer;box-shadow:var(--shadow-soft);border-radius:50%;place-items:center;transition:transform .15s,background .2s;display:grid}.icon-btn:active{transform:scale(.96)}.login-btn{background:var(--accent);color:#fff;box-shadow:0 8px 18px var(--accent-glow);border-color:#0000}.avatar{background:linear-gradient(145deg, var(--accent), #7aa0ff);color:#fff;width:42px;height:42px;box-shadow:var(--shadow-soft);border:2px solid var(--surface-solid);border-radius:50%;place-items:center;font-size:14px;font-weight:700;display:grid}.hero-progress{aspect-ratio:1;background:var(--surface-elevated);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);width:min(100%,300px);box-shadow:var(--shadow);border:1px solid var(--glass-border);border-radius:50%;place-items:center;margin:8px auto 28px;display:grid;position:relative;overflow:hidden}.hero-progress .hero-ring{width:100%;height:100%;position:absolute;inset:0}.hero-progress .liquid{background:linear-gradient(180deg, transparent, var(--wave-2));opacity:.55;border-radius:50% 50% 0 0/20% 20% 0 0;height:42%;position:absolute;inset:auto 0 0}.hero-progress .center-copy{z-index:2;text-align:center;padding:20px;position:relative}.hero-progress .center-copy strong{letter-spacing:-.04em;color:var(--accent);font-size:40px;font-weight:800;display:block}.hero-progress .center-copy span{color:var(--text-muted);font-size:14px}.pill{background:var(--surface);border:1px solid var(--glass-border);color:var(--text-muted);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.project-list{flex-direction:column;gap:14px;display:flex}.project-card{text-align:left;cursor:pointer;background:var(--surface-solid);width:100%;box-shadow:var(--shadow);color:var(--text);border:none;border-radius:28px;padding:0;transition:transform .18s,box-shadow .18s;display:block;overflow:hidden}.project-card:active{transform:scale(.985)}.project-card-top{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 18px 14px;display:flex}.project-card-top h2{letter-spacing:-.02em;margin:0 0 4px;font-size:22px;font-weight:800}.project-card-top p{color:var(--text-muted);margin:0;font-size:13px}.project-card-bottom{background:color-mix(in srgb, var(--project-accent,var(--accent)) 12%, var(--surface));border-radius:20px;justify-content:space-between;align-items:center;gap:12px;margin:0 10px 10px;padding:14px 16px;display:flex}.project-card--nexa .project-card-top{color:#fff;background:linear-gradient(135deg,#fb923c,#ea580c)}.project-card--nexa .project-card-top p{color:#ffffffd9}.project-card--concierge .project-card-top{color:#1a1405;background:linear-gradient(135deg,#f0c14b,#c9941a)}.project-card--concierge .project-card-top p{color:#1a1405b3}.project-card--varchlearn .project-card-top{color:#0b2740;background:linear-gradient(135deg,#7dd3fc,#0ea5e9)}.project-card--varchlearn .project-card-top p{color:#0b2740bf}.mini-ring{flex-shrink:0;width:54px;height:54px}.stats-row{grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 8px;display:grid}.stat-card{background:var(--surface-solid);box-shadow:var(--shadow-soft);border:1px solid var(--glass-border);border-radius:22px;padding:16px}.stat-card .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.stat-card .value{letter-spacing:-.03em;margin-top:8px;font-size:28px;font-weight:800}.stat-card.good .value{color:var(--success)}.stat-card.warn .value{color:var(--warning)}.back-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:10px;padding:0;font-size:14px;font-weight:600;display:inline-flex}.detail-hero{background:var(--surface-solid);box-shadow:var(--shadow);border:1px solid var(--glass-border);border-radius:28px;margin-bottom:16px;padding:20px}.detail-hero h1{margin:0 0 6px;font-size:26px;font-weight:800}.detail-hero .meta{color:var(--text-muted);font-size:13px;line-height:1.45}.roadmap{flex-direction:column;gap:0;margin-top:8px;display:flex}.milestone{grid-template-columns:28px 1fr;gap:12px;display:grid}.milestone-rail{flex-direction:column;align-items:center;display:flex}.milestone-dot{border:3px solid var(--accent);background:var(--surface-solid);border-radius:50%;flex-shrink:0;width:16px;height:16px;margin-top:18px}.milestone-dot.completed{background:var(--success);border-color:var(--success)}.milestone-dot.in_progress{background:var(--accent)}.milestone-dot.delayed{background:var(--danger);border-color:var(--danger)}.milestone-line{background:var(--ring-track);flex:1;width:2px;min-height:18px}.milestone-card{background:var(--surface-solid);border:1px solid var(--glass-border);box-shadow:var(--shadow-soft);border-radius:22px;margin-bottom:12px;padding:14px 16px}.milestone-card header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.milestone-card h3{margin:0;font-size:15px;font-weight:700;line-height:1.3}.milestone-card .week{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;font-weight:700}.status-chip{white-space:nowrap;text-transform:capitalize;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700}.status-chip.pending{background:color-mix(in srgb, var(--text-muted) 14%, transparent);color:var(--text-muted)}.status-chip.in_progress{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent)}.status-chip.completed{background:color-mix(in srgb, var(--success) 18%, transparent);color:var(--success)}.status-chip.delayed{background:color-mix(in srgb, var(--danger) 18%, transparent);color:var(--danger)}.milestone-card .theme{color:var(--text-muted);margin:8px 0 0;font-size:13px}.note-box{background:color-mix(in srgb, var(--accent) 8%, transparent);border-radius:14px;margin-top:10px;padding:10px 12px;font-size:13px;line-height:1.4}.note-box.delay{background:color-mix(in srgb, var(--danger) 10%, transparent)}.milestone-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.edit-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:14px;padding:10px 14px;font-size:13px;font-weight:700}.edit-btn.ghost{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.edit-btn.danger-outline{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger)}.danger-text{color:var(--danger)!important}.duration-editor{margin-top:10px}.duration-editor label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:6px;font-size:11px;font-weight:700;display:block}.duration-row{align-items:center;gap:8px;display:flex}.duration-row input{border:1px solid var(--glass-border);background:var(--input-bg);color:var(--text);border-radius:14px;flex:1;padding:10px 12px}.duration-msg{color:var(--success);margin-top:6px;font-size:12px;font-weight:600;display:inline-block}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#0a102073;place-items:end center;padding:16px;display:grid;position:fixed;inset:0}.modal-sheet{background:var(--surface-solid);width:min(480px,100%);box-shadow:var(--shadow);border:1px solid var(--glass-border);border-radius:28px 28px 22px 22px;padding:22px 18px 18px;animation:.22s rise}@keyframes rise{0%{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.modal-sheet h2{margin:0 0 6px;font-size:20px}.modal-sheet .sub{color:var(--text-muted);margin-bottom:16px;font-size:13px}.field{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.field input,.field textarea,.field select{border:1px solid var(--glass-border);background:var(--input-bg);color:var(--text);border-radius:14px;outline:none;padding:12px 14px}.field textarea{resize:vertical;min-height:88px}.modal-actions{gap:10px;margin-top:8px;display:flex}.btn{cursor:pointer;border:none;border-radius:16px;flex:1;padding:13px 14px;font-weight:700}.btn.primary{background:var(--accent);color:#fff}.btn.ghost{background:color-mix(in srgb, var(--text-muted) 12%, transparent);color:var(--text)}.error{color:var(--danger);margin:0 0 10px;font-size:13px}.auth-banner{background:var(--surface);border:1px solid var(--glass-border);color:var(--text-muted);border-radius:16px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;font-size:13px;display:flex}.auth-banner button{color:var(--accent);cursor:pointer;background:0 0;border:none;font-weight:700}.empty-hint{text-align:center;color:var(--text-muted);padding:24px 8px;font-size:14px}@media (width>=768px){.app-shell{padding-top:12px}}
