: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;--success-soft: rgba(52, 211, 153, .12);--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)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.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;min-width:0}.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;align-items:center}.backButton,.logoutButton,.secondaryButton{border:1px solid var(--line-strong);background:#ffffff0a;color:var(--text);padding:12px 16px;border-radius:14px;cursor:pointer;font-weight:700}.backButton:hover,.logoutButton:hover,.secondaryButton:hover{background:#ffffff0f}.secondaryButton{color:var(--accent)}.logoutButton{color:var(--muted)}.landingPage,.projectPage{max-width:1320px;margin:0 auto;padding:30px 22px 96px}.landingHero,.projectHero,.progressPanel,.controlPanel,.partsTable,.projectCard,.projectSectionHeader,.loadingPanel{background:linear-gradient(180deg,#0f1c2fe0,#0a1423eb);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow)}.landingHero{padding:30px;margin-bottom:22px}.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{margin:0;color:var(--muted);line-height:1.65}.landingHero p{margin-bottom:18px;max-width:58ch;font-size:1.02rem}.bannerError{margin-bottom:18px;padding:14px 16px;border-radius:16px;background:#ff50501f;border:1px solid rgba(255,80,80,.25);color:#ffd0d0}.uploadBoxWrap{display:grid;gap:8px}.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}.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}.uploadHelper{color:var(--muted);font-size:.9rem}.searchWrap input::placeholder{color:#9eb0c9b8}.projectSectionHeader{padding:22px 24px;margin-bottom:18px}.projectSectionHeader h2{margin:0 0 8px;font-size:1.3rem}.loadingPanel{padding:28px;text-align:center}.projectGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.projectCard{padding:18px;text-align:left;display:grid;gap:12px;transition:transform .18s ease,border-color .18s ease}.projectCard:hover{border-color:#6fd3ff38;transform:translateY(-2px)}.projectCardMain{width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:2px;cursor:pointer}.projectCardTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.projectCardTitle{font-size:1.15rem;font-weight:800}.projectCardProgressPill{white-space:nowrap;padding:8px 10px;border-radius:999px;background:#6fd3ff1a;border:1px solid rgba(111,211,255,.16);color:var(--accent);font-size:.82rem;font-weight:800}.projectMetaGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.projectMetaItem{background:#ffffff08;border:1px solid var(--line);border-radius:16px;padding:12px}.projectMetaLabel{display:block;color:var(--muted);font-size:.74rem;margin-bottom:6px}.projectMetaItem strong{font-size:1.05rem}.miniProgressBar,.progressBar{width:100%;background:#ffffff0f;border-radius:999px;overflow:hidden}.miniProgressBar{height:10px}.miniProgressBarFill,.progressBarFill{background:linear-gradient(90deg,var(--accent),var(--accent-2));height:100%;border-radius:inherit}.deleteProjectButton{border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#ffb4b4;padding:10px 12px;border-radius:12px;cursor:pointer;font-weight:700}.deleteProjectButton:hover{border-color:#ff787859;background:var(--danger-soft)}.projectHero{padding:28px;margin-bottom:18px;display:grid;grid-template-columns:1.2fr .95fr;gap:18px}.projectStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.statTile{background:#ffffff08;border:1px solid var(--line);border-radius:20px;padding:16px}.statLabel{display:block;color:var(--muted);font-size:.78rem;margin-bottom:8px}.statTile strong{font-size:1.7rem;letter-spacing:-.03em}.progressPanel{padding:20px 22px;margin-bottom:18px}.progressHeader{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.progressHeader span{color:var(--muted);font-weight:700}.progressHeader strong{font-size:1.05rem}.progressBar{height:14px;margin-bottom:14px}.progressMetaRow{display:flex;gap:10px;flex-wrap:wrap}.progressMetaPill{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:999px;border:1px solid var(--line);background:#ffffff08}.progressMetaPill span{color:var(--muted);font-size:.82rem}.progressMetaPill strong{font-size:.95rem}.controlPanel{padding:18px 20px;margin-bottom:18px;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{border:1px solid var(--line);background:#ffffff08;color:var(--muted);padding:11px 14px;border-radius:999px;cursor:pointer;font-weight:700}.chipButtonActive{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}.partRow:hover{background:#ffffff08}.partRowComplete{opacity:.5;filter:grayscale(.35);background:#ffffff05}.partRowComplete .partPreviewTint{box-shadow:inset 0 0 0 9999px #ffffff38}.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}.partPreviewButton:hover .partPreviewTint{border-color:#6fd3ff59;transform:translateY(-1px)}.partPreviewButton:active .partPreviewTint{transform:scale(.96);box-shadow:inset 0 0 0 9999px #ffffff2e,0 0 0 4px #6fd3ff1f}.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;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.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{padding:6px 10px;border-radius:999px;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);box-shadow:0 0 0 2px #ffffff08;flex:0 0 auto}.partColor{color:var(--muted)}.partQtyCell{justify-self:start}.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}.qtyButton:hover{background:#6fd3ff3d}.qtyButton:active{transform:scale(.93)}.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)}.emptyState h3{margin:0 0 10px;font-size:1.2rem}.mobileActionBar{display:none}.loginPage{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.loginCard{width:100%;max-width:440px;padding:40px 28px;border-radius:28px;text-align:center;background:linear-gradient(180deg,#0f1c2fe6,#0a1423f2);border:1px solid rgba(255,255,255,.08);box-shadow:0 30px 80px #00000080}.loginLogo{width:96px;margin-bottom:20px}.loginTitle{font-weight:900;letter-spacing:.18em;margin-bottom:8px}.loginSubtitle{color:var(--muted);margin-bottom:12px}.loginBodyText{color:var(--muted);line-height:1.6;margin:0 0 22px}.loginForm{display:grid;gap:12px}.loginForm button,.googleButton{padding:14px;border-radius:14px;border:none;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#04111e;font-weight:800;cursor:pointer}.googleButton{background:#ffffff12;color:var(--text);border:1px solid var(--line)}.loginDivider{color:var(--muted);font-size:.85rem;margin:2px 0}.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%;flex-wrap:wrap}.progressMetaRow{gap:8px}.partsHeader,.partRow{grid-template-columns:88px minmax(0,1fr) 96px;gap:10px}.partsHeader{display:grid;font-size:.72rem;padding:12px 10px}.partRow{padding:12px 10px}.partPreviewTint{width:72px;height:72px;border-radius:14px;padding:8px}.tapHint{font-size:.62rem}.partNumber{font-size:.9rem}.partColor{font-size:.72rem}.partQtyCell{justify-self:end}.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:1px solid var(--line);background:#ffffff0a;color:var(--muted);padding:12px 10px;border-radius:14px;font-weight:800}.mobileActionButtonActive{color:var(--accent);border-color:#6fd3ff38;background:#6fd3ff1f}}@media (max-width: 640px){.landingPage,.projectPage{padding:22px 14px 110px}.siteHeaderInner{padding:14px}.landingHero,.projectHero,.progressPanel,.controlPanel,.partsTable,.projectCard,.projectSectionHeader,.loadingPanel{border-radius:22px}.projectGrid{grid-template-columns:1fr}.brandName{font-size:.84rem}.brandTag{font-size:.75rem}.landingHero h1,.projectHero h1{font-size:2.2rem}}.nativeShell{min-height:100vh;-webkit-tap-highlight-color:transparent}.safeBottom{padding-bottom:max(20px,env(safe-area-inset-bottom))}.glassPanel{background:linear-gradient(180deg,#0f1520e6,#0b111cf0);border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 48px #00000057;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.proPill{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--muted);font-size:.75rem;font-weight:900;letter-spacing:.12em}.proPillActive{color:#dffcff;border-color:#6fd3ff40;background:linear-gradient(135deg,#6fd3ff2e,#895cff2e)}.projectCardActions,.heroActions,.upgradeCtaRow,.upgradePriceRow{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.projectCardActions{margin-top:16px}.primaryButton{border:0;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#04111e;padding:13px 18px;border-radius:14px;cursor:pointer;font-weight:900}.primaryButton:active,.secondaryButton:active,.backButton:active,.logoutButton:active,.mobileActionButton:active,.deleteProjectButton:active{transform:scale(.98)}.heroHelperText,.upgradeFinePrint{color:var(--muted);font-size:.92rem;margin-top:14px}.projectCountPill{white-space:nowrap;padding:10px 12px;border-radius:999px;background:#ffffff0a;border:1px solid var(--line);font-weight:800}.proLockedPanel{padding:18px 20px;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.upgradeHero{padding:30px;margin-bottom:18px}.upgradeEyebrow,.upgradeColumnLabel{color:var(--accent);font-weight:900;letter-spacing:.14em;font-size:.76rem;margin-bottom:10px}.upgradeHero h1,.upgradeCard h2{margin:0 0 12px}.upgradePrice{font-size:clamp(2.4rem,6vw,3.8rem);font-weight:900;letter-spacing:-.05em}.upgradePriceMeta{color:var(--muted);padding-bottom:8px}.upgradeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.upgradeCard{padding:24px;border-radius:28px}.upgradeCardPro{outline:1px solid rgba(111,211,255,.18)}.upgradeList{margin:0;padding-left:18px;color:var(--muted);line-height:1.8}@media (max-width: 860px){.upgradeGrid{grid-template-columns:1fr}.proLockedPanel{flex-direction:column;align-items:flex-start}}
