:root{--bg:#0e0d0b;--bg-raised:#171512;--bg-card:#1c1a16;--bg-hover:#23201a;--border:#2b2822;--border-strong:#3a362e;--text:#ece7de;--text-dim:#a39c8f;--text-faint:#6f695d;--gold:#c9a96e;--gold-bright:#dcbf85;--gold-dim:#8b6f3d;--gold-glow:hsla(39,46%,61%,.14);--urgent:#e05d5d;--high:#e0a25d;--medium:#c9c05d;--low:#6fae7c;--info:#7c9fae;--font-ui:var(--font-geist-sans),system-ui,-apple-system,sans-serif;--font-accent:"Fraunces Variable",Georgia,serif;--radius:12px;--radius-sm:8px;--shell-max:42rem;--nav-h:4.2rem}html{font-size:18px;box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100dvh}body,p{font-size:1rem}p{margin:0 0 .75em}small{font-size:.85rem}h1,h2,h3{line-height:1.25;margin:0 0 .5em;font-weight:600}h1{font-size:1.9rem}h2{font-size:1.45rem}h3{font-size:1.15rem}a{color:var(--gold);text-decoration:none}a:hover{color:var(--gold-bright)}:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.brand{font-family:var(--font-ui);font-weight:500;letter-spacing:-.01em;color:var(--text)}.brand em{font-family:var(--font-accent);font-style:italic;color:var(--gold)}.brand em,.btn{font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.7rem;padding:.55rem 1.2rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-card);font-family:var(--font-ui);font-size:1rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .06s ease;text-decoration:none}.btn,.btn:hover{color:var(--text)}.btn:hover{background:var(--bg-hover);border-color:var(--gold-dim)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-gold{background:var(--gold);border-color:var(--gold);color:#17130c;font-weight:600}.btn-gold:hover{background:var(--gold-bright);border-color:var(--gold-bright);color:#17130c}.btn-block{width:100%}.field{margin-bottom:1rem}.field label{display:block;font-size:.85rem;color:var(--text-dim);margin-bottom:.35rem;letter-spacing:.02em}.input{width:100%;min-height:2.7rem;padding:.55rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text);font-family:var(--font-ui);font-size:1rem;line-height:1.5}.input::placeholder{color:var(--text-faint)}.input:focus{border-color:var(--gold-dim);outline:none;box-shadow:0 0 0 3px var(--gold-glow)}textarea.input{resize:vertical;min-height:5.5rem}.error-text{color:var(--urgent);font-size:.85rem;margin:.35rem 0 0}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.auth-wrap{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem}.auth-card{width:100%;max-width:24rem}.auth-brand{font-size:2.6rem;text-align:center;margin-bottom:.2rem}.auth-tag{text-align:center;color:var(--text-dim);margin-bottom:2rem;font-size:1rem}.auth-tag em{font-family:var(--font-accent);font-style:italic;color:var(--gold)}.auth-alt{text-align:center;margin-top:1.25rem;color:var(--text-dim);font-size:.9rem}.shell{max-width:var(--shell-max);margin:0 auto;padding:0 1.1rem calc(var(--nav-h) + 2rem)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);margin:0 -1.1rem 1.25rem;padding:.8rem 1.1rem;display:flex;align-items:center;justify-content:space-between}.topbar .brand{font-size:1.35rem}.topbar-actions{display:flex;gap:.6rem;align-items:center}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-dim);cursor:pointer}.iconbtn:hover{color:var(--text);background:var(--bg-hover)}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:30;height:var(--nav-h);background:color-mix(in srgb,var(--bg-raised) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);display:flex;align-items:stretch;justify-content:space-around;padding-bottom:env(safe-area-inset-bottom)}.navitem{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;color:var(--text-faint);font-size:.78rem;text-decoration:none;min-width:44px}.navitem.active{color:var(--gold)}.navitem:hover{color:var(--text-dim)}.navitem svg{width:1.35rem;height:1.35rem}.snapbtn{align-self:center;width:3.4rem;height:3.4rem;border-radius:50%;background:var(--gold);color:#17130c;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;box-shadow:0 4px 18px hsla(39,46%,61%,.35);transform:translateY(-.9rem);transition:transform .12s ease,background .15s ease}.snapbtn:hover{background:var(--gold-bright);transform:translateY(-1rem)}.snapbtn svg{width:1.5rem;height:1.5rem}.page-title{font-size:1.55rem;margin-bottom:1rem}.page-title em{font-family:var(--font-accent);font-style:italic;font-weight:500;color:var(--gold)}.loading-dim{color:var(--text-faint);text-align:center;padding:3rem 0}.steps{display:flex;gap:.4rem;margin-bottom:1.4rem}.step-dot{flex:1 1;height:4px;border-radius:2px;background:var(--border-strong);transition:background .2s ease}.step-dot.active{background:var(--gold)}.step-dot.done{background:var(--gold-dim)}.step-label{font-size:.85rem;color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase;margin-bottom:.3rem}.chips{display:flex;flex-wrap:wrap;gap:.55rem;margin:.35rem 0 1rem}.chip{min-height:2.7rem;padding:.5rem 1rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text-dim);font-family:var(--font-ui);font-size:.95rem;cursor:pointer;transition:all .12s ease}.chip:hover{border-color:var(--gold-dim);color:var(--text)}.chip.selected{background:var(--gold);border-color:var(--gold);color:#17130c;font-weight:600}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--border)}.toggle-row:last-child{border-bottom:none}.toggle-row .t-label{font-size:1rem}.toggle-row .t-sub{font-size:.85rem;color:var(--text-faint)}.switch{position:relative;width:3rem;height:1.7rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-raised);cursor:pointer;transition:background .15s ease,border-color .15s ease;flex-shrink:0}.switch:after{content:"";position:absolute;top:2px;left:2px;width:1.3rem;height:1.3rem;border-radius:50%;background:var(--text-dim);transition:transform .15s ease,background .15s ease}.switch.on{background:var(--gold);border-color:var(--gold)}.switch.on:after{transform:translateX(1.28rem);background:#17130c}.wizard-nav{display:flex;gap:.7rem;margin-top:1.4rem}.wizard-nav .btn{flex:1 1}.profile-summary-row{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--border);font-size:.95rem}.profile-summary-row:last-child{border-bottom:none}.profile-summary-row .k{color:var(--text-faint)}.profile-summary-row .v{color:var(--text);text-align:right}.success-note{color:var(--low);font-size:.9rem;margin-top:.6rem}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(6rem,1fr));grid-gap:.6rem;gap:.6rem;margin:.6rem 0 1rem}.photo-thumb{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-strong);background:var(--bg-raised)}.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.photo-remove{position:absolute;top:.3rem;right:.3rem;width:1.6rem;height:1.6rem;border-radius:50%;border:none;background:rgba(14,13,11,.82);color:var(--text);font-size:1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.photo-remove:hover{background:var(--urgent)}.photo-add{aspect-ratio:1;border-radius:var(--radius-sm);border:1.5px dashed var(--border-strong);background:transparent;color:var(--text-faint);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;cursor:pointer;font-size:.85rem;transition:border-color .15s ease,color .15s ease}.photo-add:hover{border-color:var(--gold-dim);color:var(--gold)}.photo-add svg{width:1.6rem;height:1.6rem}.context-wrap{position:relative}.micbtn{position:absolute;right:.5rem;bottom:.5rem;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center}.micbtn:hover{color:var(--gold);border-color:var(--gold-dim)}.micbtn.listening{background:var(--gold);border-color:var(--gold);color:#17130c;animation:mic-pulse 1.4s ease infinite}.micbtn svg{width:1.2rem;height:1.2rem}@keyframes mic-pulse{0%,to{box-shadow:0 0 0 0 hsla(39,46%,61%,.45)}50%{box-shadow:0 0 0 9px hsla(39,46%,61%,0)}}.stats-strip{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.7rem;gap:.7rem;margin-bottom:1.2rem}.stat{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem .9rem}.stat .n{font-family:var(--font-accent);font-size:1.7rem;font-weight:500;line-height:1.15;color:var(--text)}.stat.alert .n{color:var(--urgent)}.stat .l{font-size:.78rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em}.filter-row{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.4rem;margin-bottom:.9rem;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.filter-row .chip{flex-shrink:0}.task-list{display:flex;flex-direction:column;gap:.7rem}.task-card{position:relative;display:flex;gap:.85rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem .95rem .85rem 1.15rem;overflow:hidden;text-decoration:none;color:var(--text);transition:border-color .15s ease,background .15s ease}.task-card:hover{border-color:var(--gold-dim);background:var(--bg-hover);color:var(--text)}.task-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--edge,var(--border-strong))}.task-card.u-urgent{--edge:var(--urgent)}.task-card.u-high{--edge:var(--high)}.task-card.u-medium{--edge:var(--medium)}.task-card.u-low{--edge:var(--low)}.task-card.u-pending{--edge:var(--info)}.task-thumb{width:4.2rem;height:4.2rem;border-radius:var(--radius-sm);object-fit:cover;background:var(--bg-raised);flex-shrink:0}.task-body{min-width:0;flex:1 1}.task-title{font-size:1rem;font-weight:600;margin:0 0 .15rem}.task-meta,.task-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-meta{font-size:.8rem;color:var(--text-faint);margin:0 0 .35rem}.task-badges{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.badge{display:inline-flex;align-items:center;font-size:.78rem;font-weight:600;letter-spacing:.03em;padding:.14rem .55rem;border-radius:999px;border:1px solid}.badge.u-urgent{color:var(--urgent);border-color:var(--urgent)}.badge.u-high{color:var(--high);border-color:var(--high)}.badge.u-medium{color:var(--medium);border-color:var(--medium)}.badge.u-low{color:var(--low);border-color:var(--low)}.badge.v-pro{color:var(--gold);border-color:var(--gold-dim)}.badge.v-diy{color:var(--low);border-color:var(--low)}.badge.v-either{color:var(--text-dim)}.badge.plain,.badge.v-either{border-color:var(--border-strong)}.badge.plain{color:var(--text-faint);font-weight:500}.task-cost{font-size:.85rem;color:var(--text-dim)}.analyzing{display:inline-flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--info)}.analyzing:before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--info);animation:pulse-dot 1.2s ease infinite}@keyframes pulse-dot{0%,to{opacity:.35}50%{opacity:1}}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--text-dim)}.empty-state .big{font-family:var(--font-accent);font-style:italic;font-size:1.5rem;color:var(--text);margin-bottom:.4rem}.detail-meta{color:var(--text-faint);font-size:.85rem;margin:-.5rem 0 1rem}.photo-strip{display:flex;gap:.6rem;overflow-x:auto;margin-bottom:1rem;scrollbar-width:none}.photo-strip::-webkit-scrollbar{display:none}.photo-strip img{height:7.5rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);cursor:zoom-in;flex-shrink:0}.lightbox{position:fixed;inset:0;z-index:60;background:rgba(10,9,7,.94);display:flex;align-items:center;justify-content:center;padding:1.2rem}.lightbox img{max-width:100%;max-height:88dvh;border-radius:var(--radius-sm)}.lightbox-close{top:1rem;right:1rem;font-size:1.3rem}.lightbox-close,.lightbox-nav{position:absolute;width:2.7rem;height:2.7rem;border-radius:50%;border:1px solid var(--border-strong);background:var(--bg-card);color:var(--text);cursor:pointer}.lightbox-nav{top:50%;transform:translateY(-50%);font-size:1.2rem}.lightbox-nav.prev{left:.8rem}.lightbox-nav.next{right:.8rem}.urgency-banner{border-radius:var(--radius);border:1px solid var(--border);border-left:5px solid var(--edge,var(--border-strong));background:var(--bg-card);padding:1rem 1.1rem;margin-bottom:1rem}.urgency-banner.u-urgent{--edge:var(--urgent)}.urgency-banner.u-high{--edge:var(--high)}.urgency-banner.u-medium{--edge:var(--medium)}.urgency-banner.u-low{--edge:var(--low)}.urgency-banner .head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem}.urgency-banner .lvl{font-family:var(--font-accent);font-style:italic;font-size:1.35rem;text-transform:capitalize}.u-urgent .lvl{color:var(--urgent)}.u-high .lvl{color:var(--high)}.u-medium .lvl{color:var(--medium)}.u-low .lvl{color:var(--low)}.urgency-banner .score{color:var(--text-faint);font-size:.85rem}.urgency-banner .timing{margin:.45rem 0 0;font-size:.9rem;color:var(--text-dim)}.verdict-row{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:1rem}.verdict-row .cost{font-family:var(--font-accent);font-size:1.25rem;color:var(--text)}.verdict-row .trade{color:var(--text-dim);font-size:.9rem}.report-section{margin-bottom:1rem}.report-section h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gold);margin-bottom:.4rem;font-weight:600}.report-section p{color:var(--text);margin-bottom:0}.risk-list,.steps-list{margin:0;padding-left:1.2rem}.risk-list li,.steps-list li{margin-bottom:.45rem;color:var(--text)}.steps-list li::marker{color:var(--gold);font-weight:600}.risk-list li::marker{color:var(--high)}.warning-card{border:1px solid color-mix(in srgb,var(--high) 45%,var(--border));background:color-mix(in srgb,var(--high) 8%,var(--bg-card));border-radius:var(--radius);padding:.9rem 1rem;margin-bottom:1rem}.warning-card h3{color:var(--high)}.status-chips{margin-bottom:1.2rem}.note-item{padding:.7rem 0;border-bottom:1px solid var(--border)}.note-item:last-child{border-bottom:none}.note-item .when{font-size:.78rem;color:var(--text-faint);margin-bottom:.1rem}.note-item p{margin:0}.note-form{display:flex;gap:.6rem;margin-top:.8rem}.note-form .input{flex:1 1}.pro-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);padding:.9rem 1rem;margin-bottom:.7rem;cursor:pointer;transition:border-color .15s ease}.pro-card.expanded,.pro-card:hover{border-color:var(--gold-dim)}.pro-card.expanded{background:var(--bg-card)}.pro-head{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start}.pro-name{font-weight:600;font-size:1rem;margin:0 0 .15rem}.pro-sub{font-size:.8rem;color:var(--text-faint);margin:0}.pro-rating{flex-shrink:0;text-align:right}.pro-rating .stars{color:var(--gold);font-size:.95rem;letter-spacing:.05em}.pro-rating .count{font-size:.78rem;color:var(--text-faint)}.pro-intro{font-size:.9rem;color:var(--text-dim);margin:.5rem 0 0}.pro-expand{margin-top:.9rem;border-top:1px solid var(--border);padding-top:.9rem}.pro-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.9rem}.review-item{padding:.55rem 0;border-bottom:1px solid var(--border)}.review-item:last-child{border-bottom:none}.review-item .r-head{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-faint);margin-bottom:.15rem}.review-item .r-head .stars{color:var(--gold)}.review-item p{margin:0;font-size:.92rem}.request-confirm{text-align:center;padding:1.4rem 1rem}.request-confirm .big{font-family:var(--font-accent);font-style:italic;font-size:1.35rem;color:var(--low);margin-bottom:.4rem}.fallback-link{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.85rem 1rem;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-dim);font-size:.95rem}.fallback-link:hover{border-color:var(--gold-dim);color:var(--gold)}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-vietnamese-wght-normal.9ea1ffad.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-latin-ext-wght-normal.df252a37.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-latin-wght-normal.7d78925e.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__GeistSans_8adcd2;src:url(/_next/static/media/0b78ff376f6b9734-s.p.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:__GeistSans_Fallback_8adcd2;src:local("Arial");ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.00%;size-adjust:106.28%}.__className_8adcd2{font-family:__GeistSans_8adcd2,__GeistSans_Fallback_8adcd2}.__variable_8adcd2{--font-geist-sans:"__GeistSans_8adcd2","__GeistSans_Fallback_8adcd2"}