/* Dufixo Client Portal — v1.4.4 new look (loaded after app.css).
   Brand kept: orange #F16A32 + navy #182B3A, Josefin Sans headings. Adds: hero, quick actions, softer cards,
   micro-animations (respecting "reduce motion"), Book a time, Design my home, Emails & texts, chat bubble, search. */
:root{--r:18px;--r-lg:24px;--grad:linear-gradient(135deg,#F16A32 0%,#ff8a4c 45%,#ffb36b 100%);--grad-navy:linear-gradient(150deg,#182B3A 0%,#22394b 60%,#2d4a60 100%);--sh-1:0 1px 2px rgba(24,43,58,.04),0 6px 18px rgba(24,43,58,.06)}
body{background:radial-gradient(1200px 500px at 100% -10%,#fdeee6 0,rgba(253,238,230,0) 60%),var(--bg)}
h1,h2,h3{letter-spacing:-.01em}
.card,.tile{border-radius:var(--r);border-color:#edf0f3}
.btn{border-radius:12px;transition:transform .12s ease,background .15s,border-color .15s,box-shadow .2s}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--grad);box-shadow:0 6px 16px -6px rgba(241,106,50,.6)}
.btn-primary:hover{background:var(--grad);filter:brightness(1.04)}
.btn-bad{background:var(--bad);color:#fff}.btn-bad-ghost{color:var(--bad)!important}
a.card,.tile{transition:transform .18s ease,box-shadow .2s}
a.card:active,.tile:active{transform:scale(.985)}
.tabbar{background:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px);border-top:1px solid rgba(24,43,58,.06)}
.tab-fab .fab{background:var(--grad);box-shadow:0 0 0 4px #fff,0 8px 18px -4px rgba(241,106,50,.55);transition:transform .2s}
.tab-fab:active .fab{transform:scale(.92) rotate(90deg)}
.tabbar a.on .ic{animation:pop .35s ease}
@keyframes pop{40%{transform:scale(1.25)}}
.spin{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;display:inline-block;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes rise{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.mt8{margin-top:8px}.mt16{margin-top:16px}

/* home hero + quick actions */
.hero144{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:22px 20px 18px;background:var(--grad-navy);color:#fff;margin-bottom:16px;box-shadow:0 18px 40px -22px rgba(24,43,58,.7)}
.hero144::after{content:"";position:absolute;right:-60px;top:-70px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(241,106,50,.55),rgba(241,106,50,0) 70%);animation:float 7s ease-in-out infinite}
@keyframes float{50%{transform:translate(-18px,14px)}}
.hero144 h1{color:#fff;font-size:30px}.hero144 .hello{color:#ffb38f;font-weight:600;margin:0 0 2px}.hero144 p{color:rgba(255,255,255,.78);margin:4px 0 0}
.hero-text{position:relative;z-index:1}
.wave{display:inline-block;animation:wave 2.4s ease-in-out 1;transform-origin:70% 70%}
@keyframes wave{10%,30%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}40%{transform:none}}
.hero-next{display:inline-flex;align-items:center;margin-top:12px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.12);font-size:13px;font-weight:600}
.hero-search{position:relative;z-index:1;display:flex;align-items:center;gap:10px;width:100%;margin-top:16px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.95);color:var(--mute);font-size:15px;text-align:left}
.hero-search span{flex:1}.hero-search .ic{color:var(--navy)}
.quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}
@media (min-width:900px){.quick{grid-template-columns:repeat(6,minmax(0,1fr))}}
.q{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px 12px;border-radius:18px;background:#fff;border:1px solid #edf0f3;box-shadow:var(--sh-1);text-align:center;animation:rise .45s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0) * 45ms);transition:transform .15s}
.q:active{transform:scale(.95)}
.q span{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;color:#fff}
.q b{font-size:12.5px;line-height:1.2;color:var(--navy)}
.q-or span{background:var(--grad)}.q-bl span{background:linear-gradient(135deg,#2b6fc0,#5a9be6)}.q-pu span{background:linear-gradient(135deg,#7b4fd6,#b58cff)}
.q-gr span{background:linear-gradient(135deg,#16915f,#43c08a)}.q-nv span{background:var(--grad-navy)}.q-tl span{background:linear-gradient(135deg,#1f8a8a,#4fc2c2)}
.rate-banner{display:flex;align-items:center;gap:14px;margin-bottom:18px;background:linear-gradient(135deg,#fff7f2,#fff);border-color:#fbd6c3}
.rb-stars{color:#f5a524;font-size:18px;letter-spacing:1px;animation:pop 1.2s ease 2}
.rate-banner b{color:var(--navy)}.rate-banner p{margin:0;color:var(--mute);font-size:13px}.rate-banner .chev{margin-left:auto}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:999px;background:#f1f4f7;border:1px solid transparent;font-weight:600;font-size:13.5px;color:var(--ink-2);transition:all .15s}
.chip-btn small{color:var(--mute);font-weight:500}
.chip-btn.on{background:var(--or-soft);border-color:var(--or);color:var(--or-d)}
.chip-btn:active{transform:scale(.95)}
.seg-scroll{display:flex;flex-wrap:nowrap;overflow-x:auto;max-width:100%}

/* book a time */
.book{display:flex;flex-direction:column;gap:14px;padding-bottom:20px}
.day-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.day{flex:none;width:62px;padding:8px 0;border-radius:16px;background:#f4f6f8;border:1.5px solid transparent;display:flex;flex-direction:column;align-items:center;scroll-snap-align:center;transition:all .15s}
.day small{font-size:11px;color:var(--mute);text-transform:uppercase;font-weight:700}.day b{font-size:20px;font-family:var(--head);color:var(--navy)}.day i{font-style:normal;font-size:10.5px;color:var(--ok);font-weight:600}
.day.on{background:var(--navy);border-color:var(--navy)}.day.on small,.day.on i{color:#ffb38f}.day.on b{color:#fff}
.day.none{opacity:.45}.day.none i{color:var(--mute)}
.day.skel{height:70px}
.slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
@media (min-width:700px){.slot-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
.slot{padding:12px 4px;border-radius:12px;border:1.5px solid #e2e7ec;background:#fff;font-weight:700;color:var(--navy);animation:rise .35s ease both;animation-delay:calc(var(--i,0) * 25ms);transition:all .15s}
.slot.on{background:var(--grad);border-color:transparent;color:#fff;transform:scale(1.04);box-shadow:0 8px 16px -8px rgba(241,106,50,.7)}
.slot-skel{height:44px;border-radius:12px;background:linear-gradient(90deg,#e6ebf0 20%,#f3f6f9 40%,#e6ebf0 60%);background-size:200% 100%;animation:shimmer 1.2s linear infinite}
@keyframes shimmer{to{background-position:-200% 0}}
.policy-note{margin-top:14px}
.book-bar{position:sticky;bottom:calc(var(--tab) + var(--safe-b) + 8px);z-index:25;border-radius:18px;box-shadow:0 10px 30px -12px rgba(24,43,58,.35);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line)}
.book-bar b{display:block;color:var(--navy);font-size:15px}
@media (min-width:1024px){.book-bar{bottom:16px}}
.done-head .big-pop{animation:pop .6s ease}
.ic-ok{background:var(--ok-soft)!important;color:var(--ok)!important}.ic-bad{background:var(--bad-soft)!important;color:var(--bad)!important}
.state-bad{background:var(--bad-soft);color:var(--bad)}

/* rating */
.stars{color:#d5dbe1;letter-spacing:2px}.stars .on{color:#f5a524}.stars.lg{font-size:24px}
.star-pick{display:flex;justify-content:center;gap:6px;margin:6px 0}
.sp{font-size:40px;line-height:1;color:#d5dbe1;transition:transform .15s,color .15s}
.sp.on{color:#f5a524;transform:scale(1.12)}.sp:active{transform:scale(.9)}
.rate-ask{background:linear-gradient(160deg,#fff 40%,#fff4ec)}
.file-btn{cursor:pointer}

/* notes */
.note .to-job{margin-top:10px}.converted{display:inline-flex;align-items:center;margin-top:10px;padding:5px 10px;border-radius:999px;background:var(--ok-soft);color:var(--ok);font-weight:600;font-size:12.5px}

/* emails & texts */
.thread{max-height:62vh;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:6px}
.day-sep{text-align:center;margin:10px 0 4px}.day-sep span{font-size:11.5px;color:var(--mute);background:#f1f4f7;padding:3px 10px;border-radius:999px}
.bubble-row{display:flex}.bubble-row.me{justify-content:flex-end}
.bubble{max-width:80%;padding:9px 13px;border-radius:18px 18px 18px 6px;background:#eef1f4;color:var(--ink);font-size:14.5px;animation:rise .3s ease both}
.bubble-row.me .bubble{background:var(--grad);color:#fff;border-radius:18px 18px 6px 18px}
.bubble small{display:block;font-size:11px;opacity:.7;margin-top:3px}
.mail summary{list-style:none;display:flex;align-items:center;gap:12px;padding:12px 8px;cursor:pointer}
.mail summary::-webkit-details-marker{display:none}
.mail summary b{display:block}.mail summary small{color:var(--mute)}
.mail[open] .chev{transform:rotate(180deg)}.mail+.mail{border-top:1px solid var(--line-2)}
.mail-body{padding:4px 12px 16px 58px;color:var(--ink-2);font-size:14px}

/* floating chat bubble + contact sheet */
.chat-fab{position:fixed;right:16px;bottom:calc(var(--tab) + var(--safe-b) + 16px);z-index:28;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--grad-navy);box-shadow:0 12px 26px -8px rgba(24,43,58,.65);animation:fabIn .5s cubic-bezier(.2,1.4,.4,1) both .4s;transition:transform .15s}
.chat-fab .ic{width:26px;height:26px}.chat-fab:active{transform:scale(.9)}
.chat-fab::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(241,106,50,.6);animation:ring 2.6s ease-out infinite 1s}
@keyframes ring{from{transform:scale(1);opacity:1}to{transform:scale(1.5);opacity:0}}
@keyframes fabIn{from{transform:scale(0)}to{transform:scale(1)}}
.fab-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;border-radius:9px;background:var(--or);font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 4px;border:2px solid #fff}
@media (min-width:1024px){.chat-fab{bottom:24px;right:24px}}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 14px}
.cg{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px;border-radius:16px;color:#fff;min-width:0;animation:rise .35s ease both;transition:transform .15s}
.cg:active{transform:scale(.96)}
.cg b{font-size:15px}.cg small{font-size:12px;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.cg-call{background:var(--grad)}.cg-chat{background:var(--grad-navy);animation-delay:.05s}.cg-mail{background:linear-gradient(135deg,#2b6fc0,#5a9be6);animation-delay:.1s}.cg-wa{background:linear-gradient(135deg,#1da851,#25d366);animation-delay:.15s}

/* properties + design my home */
.prop144 .prop-photo{position:relative;height:180px;overflow:hidden;border-radius:var(--r) var(--r) 0 0;margin:-20px -20px 14px;background:#e6ebf0}
.prop144 .prop-photo img{width:100%;height:100%;object-fit:cover;transition:transform 6s ease}
.prop144:hover .prop-photo img{transform:scale(1.06)}
.photo-tag{position:absolute;left:10px;bottom:10px;padding:3px 9px;border-radius:999px;background:rgba(24,43,58,.72);color:#fff;font-size:11px;font-weight:600}
.design-hero{position:relative;height:220px;border-radius:var(--r-lg);overflow:hidden;margin-bottom:14px;background:var(--navy)}
.design-hero img{width:100%;height:100%;object-fit:cover}
.design-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,43,58,0) 30%,rgba(24,43,58,.88))}
.dh-text{position:absolute;left:18px;bottom:16px;z-index:1;color:#fff}.dh-text h1{color:#fff}.dh-text p{margin:0;opacity:.85}.dh-text .eyebrow{color:#ffb38f}
.design-ask textarea{width:100%;margin:8px 0 10px;padding:12px;border-radius:12px;border:1.5px solid #e2e7ec;resize:vertical}
.idea-chips{margin-bottom:14px}
.designs{display:grid;gap:14px;margin-top:16px}
@media (min-width:800px){.designs{grid-template-columns:1fr 1fr}}
.design{padding:0;overflow:hidden;animation:rise .45s ease both}
.design-body{padding:14px 16px}
.design-img img{width:100%;aspect-ratio:4/3;object-fit:cover}
.design-mock{position:relative;overflow:hidden;aspect-ratio:4/3;background:#e6ebf0}
.design-mock img{width:100%;height:100%;object-fit:cover;filter:saturate(1.15) contrast(1.05)}
.design-mock::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 70%,var(--wash) 0,var(--wash) 35%,transparent 80%);mix-blend-mode:color;opacity:.8;z-index:1}
.mock-label{position:absolute;left:10px;top:10px;z-index:2;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--navy);font-size:11.5px;font-weight:700}
.design-mock.empty{display:grid;place-items:center;color:var(--mute)}

/* search */
.search-box{display:flex;align-items:center;gap:10px;padding:6px 6px 6px 14px;border-radius:16px;background:#f1f4f7;margin:6px 0 12px}
.search-box input{flex:1;border:0;background:transparent;font-size:16px;padding:10px 0;outline:none;min-width:0}
.search-box .s-ic .ic{color:var(--mute)}
.mic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#fff;color:var(--navy)}
.mic.live{background:var(--or);color:#fff;animation:pulse 1s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(241,106,50,.2)}}
.search-res{min-height:120px;max-height:60vh;overflow-y:auto}
.res-h{margin:12px 4px 4px;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute)}
.res{display:block;padding:10px 12px;border-radius:12px;animation:rise .25s ease both}
.res:hover,.res:focus{background:#f6f7f9}.res b{display:block;color:var(--navy);font-size:14.5px}.res small{color:var(--mute);font-size:12.5px}


/* ===== v1.4.4 home hub ===== */
.hub-hero{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:16px;background:var(--grad-navy);color:#fff;margin-bottom:14px;box-shadow:0 18px 40px -22px rgba(24,43,58,.7)}
.hub-hero::after{content:"";position:absolute;left:-60px;bottom:-90px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(241,106,50,.45),rgba(241,106,50,0) 70%);animation:float 8s ease-in-out infinite}
.hub-props{margin-bottom:12px;background:rgba(255,255,255,.1)!important}.hub-props a{display:inline-flex;align-items:center;padding:6px 12px;border-radius:10px;font-weight:600;font-size:13px;color:rgba(255,255,255,.8);white-space:nowrap}.hub-props a.on{background:#fff;color:var(--navy)}
.hub-top{display:flex;gap:16px;align-items:center;position:relative;z-index:1}
.hscore{position:relative;width:112px;height:112px;flex:none;display:grid;place-items:center;color:#fff;background:none;border:0;padding:0}
.hscore .hring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.hscore .h-num{position:relative;z-index:1}
.ring-bg{fill:none;stroke:rgba(255,255,255,.14);stroke-width:10}.ring-fg{fill:none;stroke-width:10;stroke-linecap:round;stroke-dashoffset:var(--off);animation:ringIn 1.2s cubic-bezier(.2,.8,.2,1) both}
@keyframes ringIn{from{stroke-dashoffset:300}}
.h-num{font-family:var(--head);font-size:34px;font-weight:700;line-height:1;margin-top:-8px}.hscore small{position:absolute;bottom:26px;font-size:10.5px;opacity:.8}
.hscore.off{background:rgba(255,255,255,.1);border-radius:50%}
.hub-text h1{color:#fff;font-size:22px}.hub-text .eyebrow{color:#ffb38f}.h-label{margin:4px 0 0;color:rgba(255,255,255,.85);font-size:14px}.h-label .link{color:#ffb38f;text-decoration:underline}
.hub-alert{display:inline-flex;align-items:center;margin-top:10px;padding:5px 11px;border-radius:999px;background:rgba(245,165,36,.2);color:#ffd27a;font-weight:600;font-size:12.5px}
.hub-tabs{margin-bottom:14px}
.season-item .row-main{min-width:0}.season-item .row-main b,.season-item .row-main small{white-space:normal}.mb12{margin-bottom:12px}
.hub-tl{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px dashed #dfe5eb;display:flex;flex-direction:column;gap:12px}
.hub-tl li{position:relative;animation:rise .4s ease both;animation-delay:calc(var(--i,0) * 40ms)}
.tl-dot{position:absolute;left:-31px;top:12px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid #dfe5eb;color:var(--navy)}.tl-dot .ic-sm{margin:0}
.tl-done .tl-dot{background:var(--ok);border-color:var(--ok);color:#fff}.tl-design .tl-dot{background:#7b4fd6;border-color:#7b4fd6;color:#fff}.tl-doc .tl-dot{background:#2b6fc0;border-color:#2b6fc0;color:#fff}.tl-job .tl-dot{background:var(--or);border-color:var(--or);color:#fff}
.tl-card{display:flex;gap:12px;align-items:center;padding:12px;border-radius:16px;background:#fff;border:1px solid #edf0f3;box-shadow:var(--sh-1)}
.tl-card img{width:54px;height:54px;border-radius:12px;object-fit:cover;flex:none}.tl-card b{display:block;color:var(--navy)}.tl-card small{color:var(--mute)}
.ap-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width:700px){.ap-grid{grid-template-columns:1fr 1fr}}
.ap{animation:rise .4s ease both;animation-delay:calc(var(--i,0)*50ms)}.ap.has-alert{border-color:#fbd6c3;background:linear-gradient(160deg,#fff 50%,#fff6ef)}
.life{height:8px;border-radius:99px;background:#eef1f4;margin:10px 0 4px;overflow:hidden}.life span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#43c08a,#16915f);animation:grow 1s ease both}.life span.warn{background:linear-gradient(90deg,#f5c24d,#f5a524)}.life span.bad{background:linear-gradient(90deg,#f08a7e,#d23c35)}
@keyframes grow{from{width:0!important}}
.ap-svc{margin:8px 0 0;font-size:13px;color:var(--ink-2)}.ap-alert{margin:6px 0 10px;color:#b45309;font-weight:600;font-size:13px}
.season-head{display:flex;align-items:center;justify-content:space-between;padding:16px;border-radius:18px;color:#fff;margin-bottom:12px}
.season-head b{display:block;font-family:var(--head);font-size:18px}.season-head small{opacity:.85}
.season-fall{background:linear-gradient(135deg,#c2410c,#F16A32 60%,#f59e0b)}.season-winter{background:linear-gradient(135deg,#1e3a5f,#2b6fc0 60%,#7cb7f0)}.season-spring{background:linear-gradient(135deg,#15803d,#43c08a 60%,#a3e635)}.season-summer{background:linear-gradient(135deg,#d97706,#f5a524 60%,#fde047)}
.season-prog{font-family:var(--head);font-size:24px;font-weight:700;background:rgba(255,255,255,.2);padding:6px 12px;border-radius:14px}
.season-item.done .row-main b{text-decoration:line-through;color:var(--mute)}
.tick{width:30px;height:30px;flex:none;border-radius:50%;border:2px solid #cfd7df;display:grid;place-items:center;color:transparent;transition:all .2s}
.tick .ic-sm{margin:0}.tick.on{background:var(--ok);border-color:var(--ok);color:#fff;animation:pop .35s ease}.tick.sm{width:20px;height:20px;border-width:1.5px}
.neg{color:var(--bad)}.pos{color:var(--ok)}
.doc-warranty{background:var(--ok-soft)!important;color:var(--ok)!important}.doc-receipt{background:var(--or-soft)!important;color:var(--or-d)!important}.doc-manual{background:var(--info-soft)!important;color:var(--info)!important}

/* ===== v1.4.4 organizer (notes) ===== */
.org-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.os{padding:14px 12px;border-radius:18px;color:#fff;animation:rise .4s ease both}.os b{display:block;font-family:var(--head);font-size:26px;line-height:1.1}.os small{opacity:.9;font-size:12px}
.os-1{background:var(--grad)}.os-2{background:linear-gradient(135deg,#7b4fd6,#b58cff);animation-delay:.05s}.os-3{background:var(--grad-navy);animation-delay:.1s}
.quick-add{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:10px}
.qa{flex:none;display:inline-flex;align-items:center;padding:9px 14px;border-radius:999px;font-weight:700;font-size:13px;color:#fff;transition:transform .15s}.qa:active{transform:scale(.94)}
.qa.k-note,.kp.k-note.on{background:linear-gradient(135deg,#475569,#64748b)}.qa.k-bill,.kp.k-bill.on{background:linear-gradient(135deg,#16915f,#43c08a)}.qa.k-rem,.kp.k-rem.on{background:linear-gradient(135deg,#7b4fd6,#b58cff)}.qa.k-sch,.kp.k-sch.on{background:linear-gradient(135deg,#2b6fc0,#5a9be6)}.qa.k-todo,.kp.k-todo.on{background:var(--grad)}
.filt{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}
.note.n2{border-left:5px solid #94a3b8;animation:rise .4s ease both;animation-delay:calc(var(--i,0)*35ms)}
.note.n2.k-bill{border-left-color:#16915f}.note.n2.k-rem{border-left-color:#7b4fd6}.note.n2.k-sch{border-left-color:#2b6fc0}.note.n2.k-todo{border-left-color:var(--or)}
.note.is-done{opacity:.6}.note.is-done h3{text-decoration:line-through}
.kind-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#f1f4f7;font-size:12px;font-weight:700;color:var(--ink-2)}
.k-bill .kind-chip{background:var(--ok-soft);color:var(--ok)}.k-rem .kind-chip{background:#f1ebfd;color:#6b46c1}.k-sch .kind-chip{background:var(--info-soft);color:var(--info)}.k-todo .kind-chip{background:var(--or-soft);color:var(--or-d)}
.n-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0}.n-amt{font-family:var(--head);font-size:20px;color:var(--navy)}
.n-due{display:inline-flex;align-items:center;font-size:12.5px;font-weight:600;color:var(--ink-2);background:#f6f7f9;padding:4px 9px;border-radius:999px}.n-due.over{background:var(--bad-soft);color:var(--bad)}
.n-cl{margin:8px 0}.n-prog{height:6px;border-radius:99px;background:#eef1f4;overflow:hidden;margin-bottom:6px}.n-prog span{display:block;height:100%;background:var(--grad);transition:width .4s}
.cl-item{display:flex;align-items:center;gap:8px;width:100%;padding:5px 0;font-size:14px;text-align:left}.cl-item.on{color:var(--mute);text-decoration:line-through}
.att-row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.att{position:relative;width:64px;height:64px;border-radius:12px;overflow:hidden;background:#eef1f4}.att img{width:100%;height:100%;object-fit:cover}
.att button{position:absolute;top:2px;right:2px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:grid;place-items:center}.att button .ic-sm{margin:0}
.done-title{margin:18px 0 8px;grid-column:1/-1}
.kind-pick{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:14px}
.kp{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 2px;border-radius:14px;background:#f1f4f7;font-size:11.5px;font-weight:700;color:var(--ink-2);transition:all .15s}.kp.on{color:#fff;transform:scale(1.04)}
.cl-row{display:flex;align-items:center;gap:8px;padding:4px 0}.struck{text-decoration:line-through;color:var(--mute)}
.form:not([data-k=bill]) .amt-field input{opacity:.85}
.form[data-k=note] .when-row{opacity:.7}
.coming-up{margin-bottom:18px}.coming-up h2{display:flex;align-items:center;gap:6px}
.cu-row{display:flex;align-items:center;gap:12px;padding:10px 4px;border-top:1px solid var(--line-2);animation:rise .35s ease both;animation-delay:calc(var(--i,0)*50ms)}
.cu-row b{display:block;font-size:14.5px;color:var(--navy)}.cu-row small{color:var(--mute);font-size:12.5px}
.cu-ic{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#fff;background:#64748b}.cu-ic .ic-sm{margin:0}
.cu-row.k-bill .cu-ic{background:linear-gradient(135deg,#16915f,#43c08a)}.cu-row.k-rem .cu-ic{background:linear-gradient(135deg,#7b4fd6,#b58cff)}.cu-row.k-sch .cu-ic{background:linear-gradient(135deg,#2b6fc0,#5a9be6)}.cu-row.k-todo .cu-ic{background:var(--grad)}

/* ===== v1.4.4 landing ===== */
.page-landing{background:#0f1c26}
.lp{color:var(--ink);background:var(--bg);min-height:100vh;padding-bottom:90px}
.lp-top{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-t) + 14px) 18px 0}
.lp-hero{position:relative;min-height:600px;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.lp-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:kenburns 18s ease-in-out infinite alternate}
@keyframes kenburns{to{transform:scale(1.12) translate(-2%,-2%)}}
.lp-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,28,38,.35) 0,rgba(15,28,38,.25) 30%,rgba(24,43,58,.94) 78%)}
.lp-hero-in{position:relative;z-index:2;padding:0 20px 30px;max-width:720px}
.lp-kicker{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:12.5px;font-weight:600}
.lp-hero h1{color:#fff;font-size:42px;line-height:1.05;margin:14px 0 10px}.lp-hero h1 span{background:linear-gradient(90deg,#ff8a4c,#ffb36b);-webkit-background-clip:text;background-clip:text;color:transparent}
.lp-hero p{color:rgba(255,255,255,.88);font-size:16px}
.lp-ctas{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 14px}
.lp-terms{display:flex;flex-wrap:wrap;gap:8px}.lp-terms span{display:inline-flex;align-items:center;font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.12)}
.lp-sec{padding:34px 18px 6px;max-width:980px;margin:0 auto}.lp-sec h2{font-size:26px;margin-bottom:6px}.lp-sub{color:var(--mute);margin-bottom:16px}
.lp-steps{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:12px}@media (min-width:800px){.lp-steps{grid-template-columns:repeat(3,1fr)}}
.lp-steps li{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;padding:16px;border-radius:20px;background:#fff;border:1px solid #edf0f3;box-shadow:var(--sh-1);animation:rise .5s ease both;animation-delay:calc(var(--i)*90ms)}
.lp-si{grid-row:1/3;width:50px;height:50px;border-radius:16px;display:grid;place-items:center;color:#fff;background:var(--grad)}.lp-steps b{font-family:var(--head);font-size:17px;color:var(--navy)}.lp-steps small{color:var(--mute);font-size:13.5px}
.lp-n{position:absolute;top:10px;right:14px;font-family:var(--head);font-size:34px;font-weight:700;color:#f1f4f7}
.lp-plans{display:grid;gap:14px}@media (min-width:800px){.lp-plans{grid-template-columns:1fr 1fr}}
.lp-plan{position:relative;padding:22px 18px;border-radius:24px;background:#fff;border:1px solid #edf0f3;box-shadow:var(--sh-1)}
.lp-plan.best{background:var(--grad-navy);color:#fff;border:0;box-shadow:0 20px 40px -18px rgba(24,43,58,.6)}.lp-plan.best h3{color:#fff}.lp-plan.best li{color:rgba(255,255,255,.9)}
.lp-badge{position:absolute;top:-12px;right:16px;display:inline-flex;align-items:center;padding:5px 12px;border-radius:999px;background:var(--grad);color:#fff;font-size:12px;font-weight:700}
.lp-price{margin:6px 0 12px}.lp-price b{font-family:var(--head);font-size:40px}.lp-price small{opacity:.7}
.lp-plan ul{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:7px;font-size:14px}.lp-plan li{display:flex;align-items:flex-start}.lp-plan li .ic-sm{color:var(--or);flex:none;margin-top:2px}
.lp-fh{font-weight:700;margin-top:6px;color:var(--or)!important}
.lp-feats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}@media (min-width:800px){.lp-feats{grid-template-columns:repeat(3,1fr)}}
.lp-f{padding:16px 14px;border-radius:18px;background:#fff;border:1px solid #edf0f3;animation:rise .5s ease both;animation-delay:calc(var(--i)*60ms)}
.lp-f span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;color:#fff;background:var(--grad-navy);margin-bottom:10px}.lp-f:nth-child(3n+2) span{background:var(--grad)}.lp-f:nth-child(3n) span{background:linear-gradient(135deg,#7b4fd6,#b58cff)}
.lp-f b{display:block;color:var(--navy)}.lp-f small{color:var(--mute);font-size:12.5px}
.lp-biz{margin-top:26px;padding:20px 18px;border-radius:22px;background:var(--or-soft);display:flex;flex-direction:column;gap:12px;max-width:944px}
.lp-faq details{background:#fff;border:1px solid #edf0f3;border-radius:16px;margin-top:8px;padding:0 14px}.lp-faq summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:14px 0;font-weight:700;color:var(--navy);cursor:pointer}
.lp-faq summary::-webkit-details-marker{display:none}.lp-faq details[open] .chev{transform:rotate(180deg)}.lp-faq p{color:var(--ink-2);padding-bottom:12px}
.lp-foot{margin-top:30px;padding:28px 18px;background:var(--navy);color:rgba(255,255,255,.8);text-align:center}.lp-foot img{margin:0 auto 10px}.lp-foot a{color:#fff}
.lp-bar{position:fixed;left:10px;right:10px;bottom:calc(10px + var(--safe-b));z-index:20;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 10px 10px 16px;border-radius:20px;background:rgba(24,43,58,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#fff;box-shadow:0 14px 30px -10px rgba(0,0,0,.5);animation:rise .5s ease both .6s}
.lp-bar b{display:block}.lp-bar small{opacity:.75;font-size:12px}
@media (min-width:1024px){.lp-bar{left:auto;right:24px;width:420px}}
.lp-teaser{display:flex;align-items:center;gap:12px;margin-top:14px;padding:14px;border-radius:18px;background:linear-gradient(135deg,#fff4ec,#fff);border:1px solid #fbd6c3;color:var(--navy)}
.lp-teaser>span:first-child{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--grad);color:#fff;flex:none}.lp-teaser b{display:block}.lp-teaser small{color:var(--mute)}


/* ===== v1.4.4 dark mode (follows the phone setting) ===== */
@media (prefers-color-scheme:dark){
  :root{--bg:#0f1a23;--card:#16242f;--ink:#e8eef3;--ink-2:#c3cfd8;--mute:#8fa1af;--line:#243644;--line-2:#1d2d39;--navy:#e8eef3;--or-soft:#3a2418;--ok-soft:#12352a;--warn-soft:#3a3016;--bad-soft:#3d1c1b;--info-soft:#162c45}
  body{background:radial-gradient(1200px 500px at 100% -10%,#2a1a12 0,rgba(42,26,18,0) 60%),var(--bg);color:var(--ink)}
  h1,h2,h3{color:#fff}
  .card,.tile,.q,.tl-card,.lp-steps li,.lp-plan,.lp-f,.lp-faq details,.slot,.chip-btn,.day,.kind-chip,.n-due,.search-box,.mic,.cl-item,.hero-search{background:#16242f;border-color:#243644;color:var(--ink)}
  .q b,.cu-row b,.tl-card b,.res b,.lp-steps b,.lp-f b,.day b,.slot,.n-amt,.book-bar b,.lp-faq summary{color:#fff}
  .tabbar,.book-bar{background:rgba(15,26,35,.9);border-color:#243644}
  .tab-fab .fab{box-shadow:0 0 0 4px #0f1a23,0 8px 18px -4px rgba(241,106,50,.55)}
  .sheet{background:#16242f;color:var(--ink)}
  input,select,textarea,.form input[type=datetime-local],.form input[type=date],.design-ask textarea{background:#0f1a23!important;color:var(--ink)!important;border-color:#2c4253!important}
  .btn-ghost{background:#16242f;color:#fff;border-color:#2c4253}
  .list-row:hover,.res:hover{background:#1d2d39}
  .bubble{background:#1d2d39;color:var(--ink)}
  .day.on{background:#F16A32;border-color:#F16A32}
  .rate-banner,.rate-ask,.lp-teaser,.ap.has-alert{background:linear-gradient(135deg,#2a1a12,#16242f);border-color:#4a2a1a}
  .hero-search{background:rgba(255,255,255,.1);color:#c3cfd8}.hero-search .ic{color:#fff}
  .lp{background:var(--bg)}.lp-biz{background:#2a1a12}
  .chat-fab::before{border-color:rgba(241,106,50,.8)}
}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.chip-btn{white-space:nowrap;flex:none}
.tabs{overflow-x:auto;max-width:100%;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}
.tabs a,.tabs button{white-space:nowrap;flex:none}
.form input[type=datetime-local],.form input[type=date]{width:100%;min-height:48px;border:1px solid #d9dfe5;border-radius:12px;padding:10px 14px;background:#fff;font:inherit;color:var(--ink)}

/* ===== v1.4.4 vendor app: same look ===== */
.v-body{background:radial-gradient(900px 420px at 100% -10%,#fdeee6 0,rgba(253,238,230,0) 60%),var(--bg)}
.v-btn.v-primary{background:var(--grad)!important;border:0!important;box-shadow:0 6px 16px -6px rgba(241,106,50,.6);transition:transform .12s}
.v-btn:active{transform:scale(.97)}
.v-top{background:var(--grad-navy)!important}

body:not(.is-auth) .view{padding-bottom:calc(var(--tab) + var(--safe-b) + 96px)}

/* v1.4.4 start / sign-in screens: aurora glow + glass role cards (phone) */
.auth-panel { position: relative; overflow: hidden; background: radial-gradient(520px 320px at 110% -8%, rgba(241,106,50,.22), transparent 62%), radial-gradient(460px 300px at -20% 105%, rgba(45,108,223,.14), transparent 60%), var(--bg); }
.auth-panel::before { content: ''; position: absolute; width: 260px; height: 260px; right: -80px; top: 120px; border-radius: 50%; background: radial-gradient(circle, rgba(241,106,50,.18), transparent 70%); animation: dfxBlob 10s ease-in-out infinite alternate; pointer-events: none; }
@keyframes dfxBlob { from { transform: translate(0,0) scale(1); } to { transform: translate(-60px,80px) scale(1.25); } }
.role-opt { background: rgba(255,255,255,.82); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-radius: 20px; transition: transform .18s, box-shadow .18s, border-color .18s; animation: dfxRoleIn .5s cubic-bezier(.2,.8,.2,1) both; }
.role-list .role-opt:nth-child(2) { animation-delay: .07s; } .role-list .role-opt:nth-child(3) { animation-delay: .14s; }
@keyframes dfxRoleIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.role-opt:hover, .role-opt:focus-visible { box-shadow: 0 14px 30px rgba(24,43,58,.12); }
.role-opt[data-role=homeowner] .role-ic { background: linear-gradient(135deg, #F16A32, #ff9a5c); color: #fff; box-shadow: 0 8px 18px rgba(241,106,50,.35); }
.role-opt[data-role=vendor] .role-ic { background: linear-gradient(135deg, #2d6cdf, #6aa0ff); color: #fff; box-shadow: 0 8px 18px rgba(45,108,223,.3); }
.role-opt[data-role=office] .role-ic { background: linear-gradient(135deg, #182B3A, #3c5a75); color: #fff; box-shadow: 0 8px 18px rgba(24,43,58,.3); }
@media (prefers-reduced-motion: reduce) { .auth-panel::before, .role-opt { animation: none !important; } }

/* hosted card fields (the processor draws the inputs inside this box) + decline banner */
.hf-fields{min-height:96px;padding:8px;border:1px solid var(--line,#d8dee4);border-radius:12px;background:var(--card,#fff)}
.card-alert,.card-pending{align-items:center;flex-wrap:wrap}.card-alert .grow,.card-pending .grow{flex:1;min-width:180px}
