:root{color-scheme:dark;--line: rgba(255, 255, 255, .08);--line-strong: rgba(255, 255, 255, .14);--text: #ecf3ff;--muted: #9eb0c9;--accent: #6fd3ff;--accent-2: #8b5cf6;--yellow: #f6c343;--danger-soft: rgba(255, 80, 80, .08);--shadow: 0 24px 70px rgba(0, 0, 0, .38);--radius-xl: 28px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:Arial,Helvetica,sans-serif;color:var(--text);background:radial-gradient(circle at top left,rgba(111,211,255,.12),transparent 30%),radial-gradient(circle at top right,rgba(139,92,246,.14),transparent 28%),linear-gradient(180deg,#08111d,#0b1422 38%,#08101c)}button,input,select{font:inherit}a{color:inherit;text-decoration:none}.pageShell{min-height:100vh}.siteHeader{position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#070e18c7;border-bottom:1px solid rgba(255,255,255,.06)}.siteHeaderInner{max-width:1320px;margin:0 auto;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:14px}.brandLogo{width:52px;height:52px;object-fit:contain;border-radius:14px;background:#ffffff08;padding:6px}.brandText{display:flex;flex-direction:column;gap:2px}.brandName{display:flex;align-items:center;gap:.35rem;font-size:1rem;font-weight:900;letter-spacing:.18em}.brandNamePrimary{color:#fff}.brandNameAccent{color:var(--yellow)}.brandTag{font-size:.8rem;color:var(--muted)}.headerActions{display:flex;gap:10px;flex-wrap:wrap}.backButton,.signOutButton{border:1px solid var(--line-strong);background:#ffffff0a;color:var(--text);padding:12px 16px;border-radius:14px;cursor:pointer;font-weight:700}.landingPage,.projectPage{max-width:1320px;margin:0 auto;padding:30px 22px 96px}.landingHero,.projectHero,.progressPanel,.controlPanel,.partsTable,.projectCard,.projectSectionHeader,.loginCard{background:linear-gradient(180deg,#0f1c2fe0,#0a1423eb);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow)}.landingHero,.projectHero,.progressPanel,.controlPanel,.projectSectionHeader{padding:24px;margin-bottom:18px}.eyebrow{display:inline-flex;padding:8px 12px;border-radius:999px;background:#6fd3ff1f;color:var(--accent);font-weight:700;font-size:.84rem;letter-spacing:.04em;margin-bottom:14px}.landingHero h1,.projectHero h1{margin:0 0 12px;font-size:clamp(2rem,4vw,3.4rem);line-height:.98;letter-spacing:-.03em}.landingHero p,.projectHeroText,.projectSectionHeader p,.emptyState p,.loginCopy{margin:0;color:var(--muted);line-height:1.65}.landingHero p{margin-bottom:18px;max-width:58ch;font-size:1.02rem}.uploadBox input,.searchWrap input,.sortSelect,.loginForm input{width:100%;padding:14px 16px;border-radius:16px;border:1px solid var(--line-strong);background:#ffffff0a;color:var(--text);outline:none}.uploadBox input{max-width:340px}.searchWrap{min-width:0;width:100%}.uploadBox input::file-selector-button{margin-right:12px;border:0;padding:10px 12px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#7dd3fc);color:#04111e;font-weight:800;cursor:pointer}.projectSectionHeader h2{margin:0 0 8px;font-size:1.3rem}.projectGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.projectCard{padding:18px;display:grid;gap:12px;transition:transform .18s ease,border-color .18s ease}.projectCardMain{width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:2px;cursor:pointer}.projectCardTop{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.projectCardTitle{font-size:1.15rem;font-weight:800}.projectCardProgressPill,.progressMetaPill,.doneBadge{white-space:nowrap;padding:8px 10px;border-radius:999px}.projectCardProgressPill{background:#6fd3ff1a;border:1px solid rgba(111,211,255,.16);color:var(--accent);font-size:.82rem;font-weight:800}.projectMetaGrid,.projectStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.projectMetaItem,.statTile{background:#ffffff08;border:1px solid var(--line);border-radius:16px;padding:12px}.projectMetaLabel,.statLabel{display:block;color:var(--muted);font-size:.74rem;margin-bottom:6px}.miniProgressBar,.progressBar{width:100%;height:10px;background:#ffffff0f;border-radius:999px;overflow:hidden}.progressBar{height:14px;margin-bottom:14px}.miniProgressBarFill,.progressBarFill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.deleteProjectButton{border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#ffb4b4;padding:10px 12px;border-radius:12px;cursor:pointer;font-weight:700}.projectHero{display:grid;grid-template-columns:1.2fr .95fr;gap:18px}.progressHeader{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.progressMetaRow{display:flex;gap:10px;flex-wrap:wrap}.progressMetaPill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#ffffff08}.progressMetaPill span{color:var(--muted);font-size:.82rem}.controlPanel{position:sticky;top:84px;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.controlPanelTop{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;margin-bottom:14px}.filterChips{display:flex;gap:10px;flex-wrap:wrap}.chipButton,.mobileActionButton{border:1px solid var(--line);background:#ffffff08;color:var(--muted);padding:11px 14px;border-radius:999px;cursor:pointer;font-weight:700}.chipButtonActive,.mobileActionButtonActive{background:#6fd3ff1f;color:var(--accent);border-color:#6fd3ff33}.partsTable{overflow:hidden}.partsHeader,.partRow{display:grid;grid-template-columns:190px minmax(0,1fr) 190px;align-items:center;gap:18px}.partsHeader{padding:18px 22px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.9rem;font-weight:700;letter-spacing:.03em}.partRow{padding:18px 22px;border-top:1px solid rgba(255,255,255,.05);transition:background .18s ease,opacity .18s ease,filter .18s ease}.partRowComplete{opacity:.5;filter:grayscale(.35);background:#ffffff05}.partRowComplete .qtyValue{color:#9ca3af}.partPreviewCell{display:flex;align-items:center}.partPreviewButton{border:0;background:transparent;padding:0;cursor:pointer;border-radius:20px;color:inherit;text-align:center}.partPreviewTint{width:160px;height:110px;border-radius:20px;display:flex;align-items:center;justify-content:center;padding:14px;border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 0 0 9999px #ffffff29}.partPreviewImage{max-width:100%;max-height:100%;object-fit:contain;filter:grayscale(1) contrast(1.15) brightness(.7);mix-blend-mode:multiply}.tapHint{display:inline-block;margin-top:8px;color:var(--accent);font-size:.72rem;font-weight:700}.partNumberTop{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.partNumber{font-size:1.05rem;font-weight:800}.doneBadge{background:#34d3992e;border:1px solid rgba(52,211,153,.35);color:#a7f3d0;font-size:.72rem;font-weight:900;letter-spacing:.04em}.partColorRow{display:flex;align-items:center;gap:10px}.colorChip{width:14px;height:14px;border-radius:999px;border:1px solid rgba(255,255,255,.2);flex:0 0 auto}.partColor{color:var(--muted)}.qtyControl{display:inline-flex;align-items:center;gap:12px;background:#ffffff0d;border:1px solid var(--line);border-radius:18px;padding:8px 10px}.qtyButton{width:44px;height:44px;border:0;border-radius:14px;cursor:pointer;background:#6fd3ff29;color:var(--text);font-size:1.5rem;font-weight:900;line-height:1}.qtyValue{min-width:52px;text-align:center;font-size:2.5rem;font-weight:900;color:var(--accent);letter-spacing:-.03em;line-height:1}.emptyState{padding:42px 22px;text-align:center}.emptyStateLarge{grid-column:1 / -1}.emptyStateIcon{font-size:2rem;margin-bottom:12px;color:var(--accent)}.errorBanner{margin-bottom:16px;padding:14px 16px;border-radius:16px;border:1px solid rgba(255,80,80,.25);background:#ff50501a;color:#ffd5d5;font-weight:700}.mobileActionBar{display:none}.loginPage{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.loginCard{width:100%;max-width:420px;padding:40px 28px;text-align:center}.loginLogo{width:90px;margin-bottom:20px}.loginTitle{font-weight:900;letter-spacing:.18em;margin-bottom:6px}.loginSubtitle{color:var(--muted);margin-bottom:10px}.loginCopy{margin-bottom:24px}.loginForm{display:grid;gap:12px}.loginForm button{padding:14px;border-radius:14px;border:none;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#04111e;font-weight:800;cursor:pointer}.loginSuccess{color:var(--accent);font-weight:700}@media (max-width: 1120px){.projectGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.projectHero{grid-template-columns:1fr}.partsHeader,.partRow{grid-template-columns:150px minmax(0,1fr) 150px}.partPreviewTint{width:126px;height:96px}}@media (max-width: 860px){.projectMetaGrid,.projectStats,.controlPanelTop{grid-template-columns:1fr}.sortSelect{width:100%}}@media (max-width: 760px){.siteHeaderInner{flex-direction:column;align-items:flex-start}.headerActions{width:100%}.partsHeader,.partRow{grid-template-columns:88px minmax(0,1fr) 96px;gap:10px}.partsHeader{font-size:.72rem;padding:12px 10px}.partRow{padding:12px 10px}.partPreviewTint{width:72px;height:72px;border-radius:14px;padding:8px}.partNumber{font-size:.9rem}.partColor,.tapHint{font-size:.72rem}.qtyControl{gap:6px;padding:4px 6px}.qtyButton{width:34px;height:34px;border-radius:10px;font-size:1.15rem}.qtyValue{min-width:28px;font-size:1.45rem}.filterChips{display:none}.mobileActionBar{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;position:sticky;bottom:12px;margin-top:16px;z-index:12;padding:10px;border-radius:22px;background:#070e18d6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 40px #00000059}.mobileActionButton{border-radius:14px}}@media (max-width: 640px){.landingPage,.projectPage{padding:22px 14px 110px}.siteHeaderInner{padding:14px}.projectGrid{grid-template-columns:1fr}.brandName{font-size:.84rem}.brandTag{font-size:.75rem}.landingHero h1,.projectHero h1{font-size:2.2rem}}
