:root{--navy:#0f172a;--ink:#1e293b;--muted:#64748b;--line:#e5e8ee;--soft:#f6f7f9;--or:#FF8500;--or2:#F07800;--orink:#c2410c;--ortint:#fff7ed;--gr:#168B3D;--r:18px}
*{box-sizing:border-box;margin:0}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:var(--ink);background:#fff;font-size:14px;line-height:1.5}
a{color:inherit;text-decoration:none}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px}
.util{background:var(--navy);color:#94a3b8;font-size:12px}.util .wrap{display:flex;justify-content:space-between;padding:7px 24px}
.util b{color:#fdba74;font-weight:600}
header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:22px;height:68px}
.logo{font-weight:800;font-size:22px;color:var(--navy);letter-spacing:-.5px}.logo em{font-style:normal;color:var(--or)}
.tabs{display:flex;gap:4px;background:var(--soft);padding:4px;border-radius:14px}
.tabs a{padding:8px 16px;border-radius:10px;font-weight:600;font-size:13px;color:var(--muted)}
.tabs a.on{background:#fff;color:var(--navy);box-shadow:0 1px 4px rgba(15,23,42,.1)}
.sr{flex:1;display:flex;align-items:center;gap:10px;background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:10px 14px;color:var(--muted)}
.sr kbd{margin-left:auto;font:600 11px 'Plus Jakarta Sans';background:#fff;border:1px solid var(--line);border-radius:6px;padding:2px 7px}
.ic{width:42px;height:42px;border-radius:12px;border:1px solid var(--line);display:grid;place-items:center;font-size:19px;position:relative}
.ic i.d{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:9px;background:var(--or);border:2px solid #fff}
.cta{background:linear-gradient(180deg,#F79A2E,#EE7F12);color:#fff;font-weight:700;padding:11px 20px;border-radius:14px;box-shadow:0 8px 20px -6px rgba(238,127,18,.6);white-space:nowrap}
.cats{display:flex;gap:6px;overflow:hidden;padding:0 0 10px}
.cats a{display:flex;align-items:center;gap:7px;padding:7px 13px;border-radius:99px;font-weight:600;font-size:13px;color:var(--ink);white-space:nowrap}
.cats a:hover,.cats a.on{background:var(--ortint);color:var(--orink)}
.hero{position:relative;background:var(--navy);color:#fff;overflow:hidden}
.hero:before{content:"";position:absolute;width:700px;height:700px;right:-120px;top:-260px;background:radial-gradient(circle,rgba(242,140,27,.42),transparent 62%)}
.hero:after{content:"";position:absolute;width:520px;height:520px;left:-160px;bottom:-300px;background:radial-gradient(circle,rgba(56,189,248,.2),transparent 65%)}
.hg{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:48px;padding:64px 0 88px;align-items:center}
.pill{display:inline-flex;gap:8px;align-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:99px;padding:6px 14px;font-size:12px;font-weight:600;color:#fdba74}
.pill i{width:7px;height:7px;border-radius:9px;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.25)}
h1{font-size:54px;line-height:1.05;font-weight:800;letter-spacing:-2px;margin:18px 0 14px}
h1 span{background:linear-gradient(90deg,#fdba74,#F28C1B);-webkit-background-clip:text;color:transparent}
.hero p.s{color:#cbd5e1;font-size:16px;max-width:520px}
.sb{margin-top:30px;background:#fff;color:var(--ink);border-radius:22px;padding:10px;box-shadow:0 30px 60px -20px rgba(0,0,0,.55)}
.seg{display:flex;gap:4px;padding:4px 6px 10px}.seg a{padding:7px 14px;border-radius:99px;font-size:13px;font-weight:600;color:var(--muted)}.seg a.on{background:var(--navy);color:#fff}
.fld{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.fld div{padding:11px 16px;border-right:1px solid var(--line)}.fld small{display:block;font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.fld b{font-weight:600}
.fld button{border:0;background:linear-gradient(180deg,#F79A2E,#EE7F12);color:#fff;font:700 14px 'Plus Jakarta Sans';padding:0 26px;display:flex;align-items:center;gap:8px}
.chips{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;font-size:12px;color:#94a3b8;align-items:center}.chips a{border:1px solid rgba(255,255,255,.18);border-radius:99px;padding:5px 12px;color:#e2e8f0}
.trust{display:flex;gap:28px;margin-top:30px}.trust b{font-size:24px;font-weight:800;display:block}.trust span{font-size:12px;color:#94a3b8}
.stack{position:relative;height:420px}
.gc{position:absolute;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(12px);border-radius:22px;padding:16px;color:#fff}
.gc.a{left:0;top:10px;width:300px}.gc.b{right:0;top:150px;width:290px}.gc.c{left:40px;bottom:0;width:260px}
.th{height:110px;border-radius:14px;background:linear-gradient(135deg,#334155,#475569 50%,#F28C1B);margin-bottom:10px;position:relative}
.th em{position:absolute;left:8px;top:8px;background:#fff;color:var(--orink);font:700 11px 'Plus Jakarta Sans';font-style:normal;padding:2px 8px;border-radius:99px}
.gc h4{font-size:15px;font-weight:700}.gc small{color:#cbd5e1;font-size:12px}
.gc .row{display:flex;justify-content:space-between;align-items:center;margin-top:6px}
.up{display:flex;gap:10px;margin-bottom:12px}.up i{font-size:20px;color:#fdba74;background:rgba(242,140,27,.18);border-radius:10px;padding:7px;height:36px}
.bar{height:6px;background:rgba(255,255,255,.15);border-radius:9px;margin-top:8px}.bar i{display:block;height:6px;width:62%;background:linear-gradient(90deg,#fdba74,#F28C1B);border-radius:9px}
section{padding:56px 0}
.sh{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}
.sh h2{font-size:30px;font-weight:800;letter-spacing:-1px;color:var(--navy)}.sh p{color:var(--muted)}.sh a{color:var(--orink);font-weight:700}
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:16px}
.bt{border-radius:var(--r);padding:20px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid var(--line);background:var(--soft)}
.bt i.big{position:absolute;right:16px;top:14px;font-size:44px;opacity:.9}
.bt b{font-size:17px;font-weight:700;color:var(--navy)}.bt span{font-size:12px;color:var(--muted)}
.bt.w{grid-column:span 2;grid-row:span 2;background:var(--navy);border:0}.bt.w b{color:#fff;font-size:26px}.bt.w span{color:#94a3b8}.bt.w i.big{font-size:88px;color:var(--or);opacity:.95}
.bt.o{background:var(--ortint);border-color:#fed7aa}.bt.o i.big{color:var(--or)}
.bt.t{grid-column:span 2}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;transition:.2s}
.card:hover{transform:translateY(-4px);box-shadow:0 24px 40px -20px rgba(15,23,42,.35)}
.ph{height:170px;position:relative;background:linear-gradient(135deg,#e2e8f0,#cbd5e1)}
.ph.p2{background:linear-gradient(135deg,#fed7aa,#fdba74)}.ph.p3{background:linear-gradient(135deg,#bae6fd,#7dd3fc)}.ph.p4{background:linear-gradient(135deg,#bbf7d0,#86efac)}
.ph>i.main{position:absolute;inset:0;display:grid;place-items:center;font-size:54px;color:rgba(15,23,42,.25)}
.tag{position:absolute;left:12px;top:12px;background:#fff;color:var(--orink);font-weight:700;font-size:11px;padding:3px 10px;border-radius:99px}
.hrt{position:absolute;right:12px;top:12px;width:34px;height:34px;border-radius:99px;background:#fff;display:grid;place-items:center}
.dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:4px}.dots i{width:6px;height:6px;border-radius:9px;background:#fff;opacity:.6}.dots i:first-child{width:16px;opacity:1}
.vw{position:absolute;left:12px;bottom:10px;background:rgba(15,23,42,.7);color:#fff;font-size:11px;padding:2px 9px;border-radius:99px}
.cb{padding:14px 16px 16px}.cb .pr{font-size:20px;font-weight:800;color:var(--navy)}.cb .pr small{font-size:12px;color:var(--muted);font-weight:500}
.cb h5{font-size:14px;font-weight:600;margin:3px 0}.cb .m{color:var(--muted);font-size:12px;display:flex;gap:12px}
.cb .ft{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);font-size:12px}
.vf{color:var(--gr);font-weight:700;display:flex;gap:4px;align-items:center}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:24px;background:var(--soft);border-radius:28px;padding:28px}
.list .it{display:flex;gap:14px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px;margin-bottom:12px}
.list .it .im{width:96px;height:80px;border-radius:12px;background:linear-gradient(135deg,#fed7aa,#fdba74);flex:none}
.map{border-radius:20px;min-height:340px;background:linear-gradient(#e2e8f0 1px,transparent 1px) 0 0/36px 36px,linear-gradient(90deg,#e2e8f0 1px,transparent 1px) 0 0/36px 36px,#f1f5f9;position:relative;border:1px solid var(--line)}
.pin{position:absolute;background:var(--navy);color:#fff;font-weight:700;font-size:12px;padding:5px 11px;border-radius:99px;box-shadow:0 8px 16px -6px rgba(15,23,42,.5)}.pin.hot{background:var(--or)}
.proj{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pc{border:1px solid var(--line);border-radius:var(--r);padding:20px;display:flex;gap:16px;align-items:center}
.ring{width:72px;height:72px;border-radius:99px;display:grid;place-items:center;font-weight:800;color:var(--navy);flex:none;background:conic-gradient(var(--or) var(--p),#e5e8ee 0)}
.ring span{width:56px;height:56px;border-radius:99px;background:#fff;display:grid;place-items:center}
.pc small{color:var(--muted);font-size:12px}.pc b{font-size:15px;color:var(--navy)}
.eco{background:var(--navy);border-radius:28px;padding:44px;color:#fff;display:grid;grid-template-columns:1fr 1.5fr;gap:36px;position:relative;overflow:hidden}
.eco:before{content:"";position:absolute;right:-100px;top:-100px;width:400px;height:400px;background:radial-gradient(circle,rgba(242,140,27,.35),transparent 65%)}
.eco h2{font-size:32px;font-weight:800;letter-spacing:-1px;line-height:1.1}.eco p{color:#94a3b8;margin-top:10px}
.eg{display:grid;grid-template-columns:1fr 1fr;gap:14px;position:relative}
.eg div{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:18px}
.eg i{font-size:26px;color:#fdba74}.eg b{display:block;margin-top:8px}.eg span{font-size:12px;color:#94a3b8}
.app{display:flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid var(--line);border-radius:28px;padding:32px 40px;background:var(--ortint)}
.qr{width:96px;height:96px;background:repeating-conic-gradient(var(--navy) 0 25%,#fff 0 50%) 0 0/16px 16px;border:6px solid #fff;border-radius:12px}
@media(max-width:1000px){.hg,.split,.eco,.proj,.eg{grid-template-columns:1fr}.stack{display:none}.cards{grid-template-columns:repeat(2,1fr)}.bento{grid-template-columns:repeat(2,1fr)}.bt.w,.bt.t{grid-column:span 2}.tabs,.sr kbd,.ic{display:none}h1{font-size:38px}.fld{grid-template-columns:1fr 1fr}.fld button{padding:12px}.app{flex-direction:column;text-align:center}.cats{overflow-x:auto}}
footer{background:var(--navy);color:#94a3b8;padding:32px 0;font-size:13px;margin-top:56px}

/* ---- app additions ---- */
.sr input,.fld input,.fld select{border:0;background:transparent;font:inherit;color:inherit;outline:0;width:100%;padding:0}
.sr input{flex:1}
.lnk{font-weight:600;color:var(--ink);padding:0 6px;white-space:nowrap}
button.ic{background:#fff;cursor:pointer}
.mu{color:var(--muted);font-size:12px}
.flash{border-radius:12px;padding:12px 16px;margin:14px 0;font-weight:500;background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
.flash.err{background:#fef2f2;color:#991b1b;border-color:#fecaca}.flash.warn{background:var(--ortint);color:var(--orink);border-color:#fed7aa}
.tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.tiles .bt{min-height:120px;text-decoration:none}.tiles .bt i.big{font-size:34px}
.cards.c3{grid-template-columns:repeat(3,1fr)}
.card{display:block}.card .ph>.tag+.vw{left:12px}
.empty{text-align:center;border:1px dashed var(--line);border-radius:var(--r);padding:48px 20px;background:var(--soft)}.empty h3{font-size:20px;color:var(--navy);margin-bottom:6px}.empty p{color:var(--muted);margin-bottom:16px}
.bgrid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px}
.fl{border:1px solid var(--line);border-radius:var(--r);padding:18px;align-self:start;display:grid;gap:12px}
.fl h4{font-size:16px;color:var(--navy)}
.form{display:grid;gap:14px}
label{display:grid;gap:5px;font-weight:600;font-size:13px;color:var(--ink)}
label input,label select,label textarea,form.bx input{font:inherit;font-weight:400;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;width:100%}
label input:focus,label select:focus,label textarea:focus{outline:2px solid #fed7aa;border-color:var(--or)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.narrow{max-width:720px}.narrow.sm{max-width:420px}.h2{font-size:30px;font-weight:800;letter-spacing:-1px;color:var(--navy);margin-bottom:6px}
button.cta{border:0;font:700 14px 'Plus Jakarta Sans';cursor:pointer}
button.ghost,a.ghost{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 14px;font:600 13px 'Plus Jakarta Sans';cursor:pointer}
.det{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:24px}
.bx{border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:14px;display:block}.bx h3{font-size:16px;color:var(--navy);margin-bottom:10px}
.gal>img{width:100%;max-height:420px;object-fit:cover;border-radius:var(--r);display:block}
.thumbs{display:flex;gap:8px;margin-top:8px;overflow:auto}.thumbs img{height:70px;border-radius:10px}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}.kv div{display:flex;justify-content:space-between;border-bottom:1px dashed var(--line);padding:5px 0}.kv span{color:var(--muted)}
.act{display:flex;gap:8px;margin-top:12px}.act a{flex:1;text-align:center;border-radius:12px;padding:12px;font-weight:700;color:#fff}.act .b1{background:var(--or2)}.act .b2{background:var(--gr)}
.rows{display:grid;gap:10px}.row2{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px 16px}.row2>a,.row2>div{flex:1}
.st{font-size:11px;font-weight:700;border-radius:99px;padding:3px 10px;background:var(--soft);text-transform:capitalize}
.st.active{background:#ecfdf5;color:#065f46}.st.pending{background:var(--ortint);color:var(--orink)}.st.rejected{background:#fef2f2;color:#991b1b}
form.bx{display:grid;gap:8px}
@media(max-width:1000px){.tiles{grid-template-columns:repeat(2,1fr)}.bgrid,.det{grid-template-columns:1fr}.cards.c3{grid-template-columns:repeat(2,1fr)}.hero .fld{grid-template-columns:1fr!important}.row2{flex-wrap:wrap}.two,.kv{grid-template-columns:1fr}}

/* ---- phase 2 ---- */
.card{position:relative}.cardlink{display:block;color:inherit}
.hrt{border:0;cursor:pointer;font-size:17px;color:var(--muted);transition:.15s}.hrt:hover{color:var(--or2);transform:scale(1.08)}
.hrt.on{color:#e11d48;background:#ffe4e6}
.hrt{z-index:2}
.favbtn2.on{color:#e11d48;border-color:#fecdd3}
.vt{display:flex;gap:4px;background:var(--soft);padding:4px;border-radius:12px}.vt a{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;font-size:18px;color:var(--muted)}.vt a.on{background:#fff;color:var(--navy);box-shadow:0 1px 4px rgba(15,23,42,.12)}
.cards.lst{grid-template-columns:1fr}.cards.lst .cardlink{display:flex}.cards.lst .ph{width:240px;height:auto;min-height:150px;flex:none}.cards.lst .cb{flex:1;align-self:center}
.pager{display:flex;gap:6px;justify-content:center;margin-top:28px}.pager a{min-width:40px;height:40px;padding:0 12px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;font-weight:600}.pager a.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.gmain{position:relative}.gmain img{width:100%;height:420px;object-fit:cover;border-radius:var(--r);display:block;cursor:zoom-in;background:var(--soft)}
.gnav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:99px;border:0;background:rgba(255,255,255,.92);font-size:20px;cursor:pointer;display:grid;place-items:center}.gprev{left:12px}.gnext{right:12px}
.gcount{position:absolute;right:12px;bottom:12px;background:rgba(15,23,42,.72);color:#fff;font-size:12px;padding:3px 10px;border-radius:99px}
.thumbs .gthumb{width:92px;height:70px;object-fit:cover;border:2px solid transparent;cursor:pointer;flex:none}.thumbs .gthumb.on{border-color:var(--or)}
.lightbox{position:fixed;inset:0;background:rgba(15,23,42,.92);z-index:50;display:grid;place-items:center}.lightbox[hidden]{display:none}
.lightbox img{max-width:92vw;max-height:88vh;border-radius:12px}.lbx{position:absolute;top:16px;right:20px;font-size:34px;color:#fff;background:0;border:0;cursor:pointer}
.mapbox{height:280px;border-radius:14px;border:1px solid var(--line);z-index:0}
.avatar{width:64px;height:64px;border-radius:99px;background:var(--navy);color:#fdba74;display:grid;place-items:center;font:800 26px 'Plus Jakarta Sans'}
.stat{text-align:center;padding:0 14px}.stat b{display:block;font-size:24px;color:var(--navy)}.stat span{font-size:12px;color:var(--muted)}
@media(max-width:1000px){.cards.lst .cardlink{display:block}.cards.lst .ph{width:auto;height:170px}.gmain img{height:260px}}

/* ---- phase 3 ---- */
.ic{position:relative}.nb{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--or2);color:#fff;font:700 11px/18px 'Plus Jakarta Sans';text-align:center}
.h3{font-size:18px;color:var(--navy);margin:14px 0 10px}
.avatar.sm{width:42px;height:42px;font-size:17px;flex:none}
.inb{color:inherit}.inb.unread{border-color:#fed7aa;background:var(--ortint)}.clip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}
.badge{background:var(--or2);color:#fff;border-radius:99px;font:700 12px 'Plus Jakarta Sans';padding:2px 9px;margin-left:auto}
.chathead{display:flex;justify-content:space-between;margin:10px 0 12px}
.thread{height:min(56vh,480px);overflow-y:auto;border:1px solid var(--line);border-radius:var(--r);padding:16px;background:var(--soft);display:flex;flex-direction:column;gap:8px}
.msg{max-width:78%;padding:9px 13px;border-radius:16px;font-size:14px;overflow-wrap:anywhere;white-space:pre-line}.msg small{display:block;font-size:10px;opacity:.65;margin-top:2px;text-align:right}
.msg.mine{align-self:flex-end;background:var(--navy);color:#fff;border-bottom-right-radius:4px}.msg.theirs{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px}
.composer{display:flex;gap:8px;margin-top:12px}.composer input{flex:1;font:inherit;border:1px solid var(--line);border-radius:12px;padding:11px 14px}
.visit{display:grid;gap:8px;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
.visit input{font:inherit;border:1px solid var(--line);border-radius:12px;padding:9px 12px;width:100%}
.st.confirmed{background:#ecfdf5;color:#065f46}.st.declined,.st.cancelled{background:#fef2f2;color:#991b1b}
.stars{color:#b45309;font-weight:700}.stars i{color:#f59e0b}
.rate{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px}.rate input{position:absolute;opacity:0;width:1px;height:1px}
.rate label{font-size:28px;color:#cbd5e1;cursor:pointer;display:block;padding:0}.rate label:hover,.rate label:hover~label,.rate input:checked~label{color:#f59e0b}
.rate input:focus-visible+label{outline:2px solid var(--or);border-radius:6px}

/* ---- phase 4 ---- */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pcard{display:block;border:1px solid var(--line);border-radius:var(--r);padding:18px;background:#fff;color:inherit;transition:.2s}
a.pcard:hover{transform:translateY(-3px);box-shadow:0 20px 36px -22px rgba(15,23,42,.4)}
.pcard h4{font-size:16px;color:var(--navy);margin:8px 0 4px}
.pmeta{display:flex;gap:6px;flex-wrap:wrap}.chip{font-size:11px;font-weight:700;border-radius:99px;padding:3px 10px;background:var(--navy);color:#fff}.chip.soft{background:var(--ortint);color:var(--orink)}
.prow{display:flex;justify-content:space-between;margin:12px 0 8px;font-size:13px}.prow b{color:var(--navy)}
.pbar{height:7px;background:var(--line);border-radius:9px;overflow:hidden;margin-bottom:5px}.pbar i{display:block;height:100%;background:linear-gradient(90deg,#fdba74,#F28C1B);border-radius:9px}.pbar.big{height:10px;margin-top:14px}
.pfilters{display:grid;grid-template-columns:repeat(5,1fr) auto;gap:10px}
.pfilters select,.pfilters input{font:inherit;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;min-width:0}
.mini{display:block;padding:8px 0;border-top:1px dashed var(--line)}.mini b{display:block;font-size:13px;color:var(--navy)}
.upd{border-top:1px dashed var(--line);padding:12px 0}.bx>.upd:first-of-type{border-top:0}.article.upd{border-top:0}
article.bx.upd{border-top:1px solid var(--line);padding:18px}
.uph{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:8px 0}.uph img{width:100%;height:100px;object-fit:cover;border-radius:10px}
.yt{position:relative;padding-top:56.25%;margin:8px 0;border-radius:12px;overflow:hidden}.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.upform{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
@media(max-width:1000px){.pgrid{grid-template-columns:1fr 1fr}.pfilters{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.pgrid{grid-template-columns:1fr}}

/* ---- phase 5 ---- */
body{font-family:'Plus Jakarta Sans','Noto Sans Telugu',system-ui,sans-serif}
.langsw{display:flex;background:var(--soft);border-radius:10px;padding:3px}.langsw a{padding:6px 10px;border-radius:8px;font-size:12px;font-weight:700;color:var(--muted)}.langsw a.on{background:#fff;color:var(--navy);box-shadow:0 1px 3px rgba(15,23,42,.12)}
.aibox{border:1px dashed #fdba74;background:var(--ortint);border-radius:14px;padding:14px}.aibox textarea{width:100%;font:inherit;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
.airow{display:flex;gap:8px;align-items:center;margin-top:8px;flex-wrap:wrap}.airow select{font:inherit;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}
.scanbox{position:relative;background:#0f172a;border-radius:16px;overflow:hidden;aspect-ratio:1/1;max-width:420px}.scanbox video{width:100%;height:100%;object-fit:cover}
.scanframe{position:absolute;inset:18%;border:3px solid #F28C1B;border-radius:18px;pointer-events:none}
.tplrow{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 14px}.chipbtn{border:1px solid var(--line);border-radius:99px;padding:6px 14px;font-weight:700;font-size:12px}.chipbtn.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.board{width:min(100%,640px);margin:20px auto 40px;border:6px solid var(--bc);border-radius:20px;background:#fff;text-align:center;overflow:hidden;color:#0f172a}
.bhead{background:var(--bc);color:#fff;font-weight:800;font-size:44px;letter-spacing:2px;padding:16px 10px}
.bbody{padding:22px 24px}.bbody h1{font-size:26px;letter-spacing:-.5px;margin:0 0 6px}.bprice{font-size:38px;font-weight:800;color:var(--bc)}.bloc{font-size:18px;color:#475569;margin-bottom:14px}
.bqr{display:flex;justify-content:center;margin:10px 0}.bqr img,.bqr canvas{border:8px solid #fff;outline:2px solid #e5e8ee;border-radius:6px}
.bscan{font-weight:700;font-size:18px;margin-top:4px}.bphone{font-size:30px;font-weight:800;margin-top:12px}.bfoot{background:#0f172a;color:#cbd5e1;padding:10px;font-size:13px}
@media print{header,footer,.noprint,.flash{display:none!important}body{background:#fff}.board{margin:0 auto;width:100%;border-width:8px;break-inside:avoid}@page{size:A4;margin:12mm}}
@media(max-width:620px){.bhead{font-size:30px}.bprice{font-size:30px}.bphone{font-size:24px}.langsw{display:none}}

/* ---- phase 6 ---- */
.toolcard{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid #fed7aa;background:var(--ortint);border-radius:var(--r);padding:16px 18px;margin:0 0 18px}
.toolbtns{display:flex;gap:8px;flex-wrap:wrap}.toolbtns .ghost{background:#fff;text-decoration:none;color:var(--ink)}

/* ---- phone header: keep every control reachable ---- */
@media(max-width:1000px){
  .nav{flex-wrap:wrap;height:auto;padding:10px 0;gap:8px}
  .tabs{display:none}
  .ic{display:grid!important;width:38px;height:38px;font-size:18px}
  .langsw{display:flex!important}
  .logo{font-size:19px}
  .sr{order:10;flex:1 1 100%}
  .cta{padding:9px 14px;font-size:13px}
  .nav>.cta{margin-left:auto}
  .lnk{margin-left:auto}
}

/* ================= header + footer (RentHub360 brand) ================= */
.topbar{background:var(--navy);color:#cbd5e1;font-size:12px}
.topbar-in{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 24px}
.tb-msg{display:flex;gap:6px;align-items:center;color:#fdba74;font-weight:600}
.tb-right{display:flex;gap:16px;align-items:center}.tb-right a{color:#e2e8f0;display:flex;gap:5px;align-items:center}.tb-right a:hover{color:#fff}
.topbar .langsw{background:rgba(255,255,255,.12)}.topbar .langsw a{color:#cbd5e1;padding:3px 9px}.topbar .langsw a.on{background:#fff;color:var(--navy);box-shadow:none}
.site-header .hb{display:flex;align-items:center;gap:18px;min-height:76px;position:relative}
.hamb{display:none;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:22px;cursor:pointer;color:var(--navy);flex:none}
.brand{display:flex;align-items:center;gap:8px;flex:none}
.brand-mark{height:48px;width:auto;display:block}.brand-word{height:42px;width:auto;display:block}
.mnav{display:flex;align-items:center;gap:2px;flex:1;min-width:0}
.nl{display:flex;align-items:center;gap:6px;padding:9px 12px;border-radius:10px;font-weight:600;font-size:13.5px;color:var(--ink);white-space:nowrap}
.nl i{font-size:17px;color:var(--muted)}.nl:hover{background:var(--soft)}.nl.on{background:var(--ortint);color:var(--orink)}.nl.on i{color:var(--or)}
.nl-mg{border:1px solid #fed7aa;background:#fff;margin-left:4px}.nl-mg i{color:var(--or)}
.mnav .sr{margin-left:auto;flex:0 1 290px;min-width:150px;padding:8px 12px;border-radius:12px}.mnav .sr input{min-width:0}
.mlang{display:none}
.hactions{display:flex;align-items:center;gap:10px;flex:none}
.postbtn{position:relative;display:flex;align-items:center;gap:7px;height:44px;padding:0 18px;border-radius:12px;background:linear-gradient(180deg,#F79A2E,#EE7F12);color:#fff;font-weight:700;font-size:14px;box-shadow:0 8px 18px -8px rgba(238,127,18,.7);white-space:nowrap}
.postbtn i{font-size:20px}.postbtn:hover{filter:brightness(1.05)}
.freetag{position:absolute;top:-9px;right:12px;background:#047857;color:#fff;font-size:10px;font-weight:800;letter-spacing:.5px;padding:2px 8px;border-radius:99px;line-height:1.3}
.acct{position:relative}
.acct-btn{display:flex;align-items:center;gap:4px;border:1px solid var(--line);background:#fff;border-radius:99px;padding:3px 9px 3px 3px;cursor:pointer;position:relative;color:var(--ink)}
.acct-btn .chev{font-size:14px;color:var(--muted);transition:.15s}
.avatar-s{width:36px;height:36px;border-radius:99px;background:var(--navy);color:#fdba74;display:grid;place-items:center;font-weight:800}.avatar-s.guest{background:var(--soft);color:var(--navy);font-size:18px}
.acct-btn .nb{top:-4px;right:-4px}
.acct-menu{display:none;position:absolute;right:0;top:calc(100% + 8px);width:260px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 48px -16px rgba(15,23,42,.35);padding:8px;z-index:60}
.acct.open .acct-menu{display:block}.acct.open .chev{transform:rotate(180deg)}
.acct-menu a,.acct-menu .am-out{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;font:600 13.5px 'Plus Jakarta Sans','Noto Sans Telugu',sans-serif;color:var(--ink);width:100%;border:0;background:0;cursor:pointer;text-align:left}
.acct-menu a:hover,.acct-menu .am-out:hover{background:var(--soft)}.acct-menu i{font-size:18px;color:var(--muted)}
.am-head{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:6px;display:flex;flex-direction:column}.am-head span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.am-sep{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700;padding:10px 10px 4px}
.acct-menu a.am-primary{background:var(--navy);color:#fff;justify-content:center;margin-bottom:6px}.acct-menu a.am-primary:hover{background:#1e293b}
.nb.in{position:static;margin-left:auto}

footer.site-footer{background:#faf7f2;border-top:1px solid var(--line);margin-top:56px;padding:0;color:var(--ink);font-size:14px}
.fgrid{display:grid;grid-template-columns:1.25fr 1.25fr 1fr 1fr 1fr;gap:32px;padding:48px 0 34px}
.fcol h3{font-size:14px;font-weight:800;color:var(--navy);margin:0 0 14px}
.fcol ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}.fcol a{color:#475569}.fcol a:hover{color:var(--orink)}
.fbrand img{height:66px;width:auto;display:block}.fslogan{font-weight:800;color:var(--navy);margin:10px 0 6px;font-size:1.05rem;line-height:1.35}.fabout{color:var(--muted);font-size:13px;max-width:260px;margin:0}
.fsocial{display:flex;gap:10px;margin-top:14px}.fsocial a{width:38px;height:38px;border-radius:99px;background:var(--navy);color:#fff!important;display:grid;place-items:center;font-size:18px}.fsocial a:hover{background:var(--or2)}
address{font-style:normal}address p{display:flex;gap:8px;align-items:flex-start;margin:0 0 10px;font-weight:600;color:#334155;line-height:1.5}address i{color:var(--or);font-size:17px;margin-top:2px;flex:none}
.fphone a{font-weight:800;color:var(--navy)!important;font-size:1.05rem}.fmail{color:#b45309!important;font-weight:700}
.fbottom{background:var(--navy);color:#cbd5e1;font-size:13px;padding:14px 0;text-align:center}.fbottom p{margin:0}
.to-top{position:fixed;right:18px;bottom:18px;width:44px;height:44px;border-radius:99px;border:0;background:var(--navy);color:#fff;font-size:20px;cursor:pointer;box-shadow:0 10px 24px -8px rgba(15,23,42,.6);display:grid;place-items:center;z-index:40}.to-top[hidden]{display:none}

@media(max-width:1180px){
  .brand-word{height:36px}.nl{padding:8px 9px}.nl i{display:none}.mnav .sr{flex-basis:200px;min-width:120px}
  .fgrid{grid-template-columns:1fr 1fr 1fr}
}
@media(max-width:1000px){
  .hamb{display:grid}.site-header .hb{gap:10px;min-height:64px}
  .brand-mark{height:40px}.brand-word{height:30px}
  .mnav{display:none;position:absolute;left:-24px;right:-24px;top:100%;flex-direction:column;align-items:stretch;gap:2px;background:#fff;padding:12px 24px 16px;border-bottom:1px solid var(--line);box-shadow:0 24px 40px -24px rgba(15,23,42,.45);z-index:55}
  .mnav.open{display:flex}
  .nl{padding:12px 10px;font-size:15px}.nl i{display:inline-block}.nl-mg{margin-left:0}
  .mnav .sr{order:-1;flex:none;max-width:none;margin:0 0 8px;width:100%}
  .mlang{display:flex;padding:10px 4px 0}
  .hactions{margin-left:auto;gap:8px}
  .postbtn{height:40px;padding:0 13px;font-size:13px}.freetag{right:6px}
  .tb-msg,.tb-mail,.topbar .langsw{display:none}.tb-right{margin-left:auto}
}
@media(max-width:700px){.fgrid{grid-template-columns:1fr 1fr;gap:26px}.fbrand{grid-column:1/-1}}
@media(max-width:520px){.brand-word{height:26px}.brand-mark{height:36px}.postbtn i{display:none}.fgrid{grid-template-columns:1fr}}
@media(max-width:400px){.hactions .ic{display:none!important}.brand-word{height:22px}}

/* header room on mid-size desktops */
.site-header .wrap{max-width:1360px}
.mnav .sr{min-width:170px}
@media(min-width:1001px) and (max-width:1320px){.nl i{display:none}.nl{padding:8px 10px}.mnav .sr{flex-basis:220px}}
@media(max-width:1000px){
  .site-header .wrap{max-width:none}
  .tb-right .tb-mail,.topbar .langsw{display:none!important}
  .tb-right{margin-left:auto}
}
.ptl{display:inline}.pts{display:none}
@media(max-width:700px){.ptl{display:none}.pts{display:inline}}

/* ---- admin console (phase 8) */
.admnav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.admnav .wrap{display:flex;gap:4px;overflow-x:auto;padding-top:6px;padding-bottom:6px;scrollbar-width:thin}
.admnav a{white-space:nowrap;padding:8px 12px;border-radius:10px;font-weight:600;font-size:14px;color:#334155}
.admnav a:hover{background:#f1f5f9}.admnav a.on{background:#0f172a;color:#fff}
.astats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.astat{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:#fff}.astat b{display:block;font-size:26px;color:#0f172a}.astat span{font-size:13px;color:#64748b}
.astat.bad{border-color:#fecaca;background:#fef2f2}.astat.bad b{color:#991b1b}
.afilter{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;align-items:center}
.afilter input,.afilter select,.tbl input:not([type=checkbox]),.tbl select{border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit;font-size:14px;max-width:100%}
.tblw{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#fff}
.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;padding:10px 12px;background:#f8fafc;white-space:nowrap}
.tbl td{padding:10px 12px;border-top:1px solid var(--line);vertical-align:top}.tbl tr.blk td{background:#fef2f2}
.acts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.acts form,form.inl{display:inline-flex;gap:6px;align-items:center;margin:0}
.ghost.sm,a.cta.sm{padding:5px 12px;font-size:13px}.ghost.dng{color:#b91c1c;border-color:#fecaca}
.st{display:inline-block;border-radius:99px;padding:2px 10px;font-size:12px;font-weight:700;background:#e2e8f0;color:#334155}
.st-active{background:#d1fae5;color:#065f46}.st-pending{background:#ffedd5;color:#9a3412}.st-rejected,.st-unpublished{background:#fee2e2;color:#991b1b}.st-sold{background:#dbeafe;color:#1e40af}
.acat{border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin:10px 0;background:#fff}.acat summary{cursor:pointer;padding:4px 0}.acat .tblw{margin-top:10px}
.tbl tr.newrow td{background:#f8fafc}
@media(max-width:700px){.row2 form.inl{width:100%}}
html[data-theme="dark"] .astat{background:#111b2b;border-color:#243248}html[data-theme="dark"] .astat b{color:#f1f5f9}html[data-theme="dark"] .astat span{color:#94a3b8}
html[data-theme="dark"] .astat.bad{background:#2a1215;border-color:#7f1d1d}html[data-theme="dark"] .astat.bad b{color:#fca5a5}
html[data-theme="dark"] .acat{background:#111b2b;border-color:#243248}html[data-theme="dark"] .tbl tr.newrow td,html[data-theme="dark"] .tbl tr.blk td{background:#152238}
/* Admin on phones: compact stat tiles, tables become one card per row with the column name beside each value. */
@media(max-width:700px){
  .admin-page section>.wrap>.h2:first-child{font-size:24px;margin:18px 0 12px}
  .admnav a{font-size:13px;padding:7px 10px}
  .astats{grid-template-columns:repeat(2,1fr);gap:8px}
  .astat{padding:10px 12px;border-radius:12px}.astat b{font-size:20px}.astat span{font-size:12px;line-height:1.3}
  .afilter>*{flex:1 1 140px}.afilter .cta,.afilter button{flex:0 0 auto}
  .row2{padding:12px}.row2 form.inl input{flex:1;min-width:0}
  .tblw:has(.tbl-cards){overflow:visible;border:0;background:transparent!important}
  .tbl-cards,.tbl-cards tbody,.tbl-cards tr,.tbl-cards td{display:block;width:auto}
  .tbl-cards thead{display:none}
  .tbl-cards tr{border:1px solid var(--line);border-radius:14px;padding:6px 14px;margin:0 0 10px;background:var(--card,#fff)}
  html[data-theme="dark"] .tbl-cards tr{background:#111b2b;border-color:#243248}
  .tbl-cards td{position:relative;padding:8px 0 8px 92px;border-top:1px solid var(--line);overflow-wrap:anywhere;min-height:20px}
  .tbl-cards td:first-child{border-top:0}
  .tbl-cards td:not([data-label]){padding-left:0}
  .tbl-cards td[data-label]:before{content:attr(data-label);position:absolute;left:0;top:10px;width:84px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b}
  .tbl-cards td.acts,.tbl-cards td[data-label=Actions],.tbl-cards td[data-label=Action]{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 0 6px}
  .tbl-cards td.acts:before,.tbl-cards td[data-label=Actions]:before,.tbl-cards td[data-label=Action]:before{display:none}
  .tbl-cards td[data-label="#"]{font-weight:700;color:#64748b}
  .tbl-cards .acts form,.tbl-cards form.inl{flex-wrap:nowrap}.tbl-cards form.inl input{width:120px;min-width:0}
  .tbl-cards a.ghost{font-family:inherit;font-weight:600}
  .tbl-cards tr:hover td{background:transparent!important}
}

/* ---- property page on phones and tablets ----
   The single column was "1fr", whose minimum is the photo strip's full width (~790px), so the photo, title, buttons and
   every box ran off the right edge. minmax(0,1fr) + min-width:0 lets the column shrink to the screen. */
.lbar{display:none}
@media(max-width:1000px){
  .det{grid-template-columns:minmax(0,1fr)!important}
  .det>*,.det .gal,.det .bx{min-width:0;max-width:100%}
  .det .thumbs{max-width:100%}
}
@media(max-width:700px){
  .det{gap:14px!important}
  .det .gmain img{height:250px!important;border-radius:18px!important}
  .det .thumbs{gap:6px;margin-top:6px;scrollbar-width:none}.det .thumbs::-webkit-scrollbar{display:none}
  .det .thumbs .gthumb{width:64px!important;height:48px!important;border-radius:10px!important}
  .det .gnav{width:36px;height:36px}
  .det .bx{padding:16px!important;border-radius:18px!important}
  .det .bx>div[style*="space-between"]{flex-wrap:wrap;gap:10px!important}
  .det h1{font-size:22px!important;line-height:1.25!important;overflow-wrap:anywhere;flex:1 1 100%}
  .det .bx>div[style*="space-between"]>div{flex-wrap:wrap}
  .det .favbtn2,.det #shareBtn,.det .bx a.ghost{padding:8px 12px;font-size:13px}
  .det .mu{overflow-wrap:anywhere}
  .det .kv{grid-template-columns:1fr 1fr!important;gap:10px}
  .det .mapbox{height:220px}
  .det aside .pr{font-size:24px!important}
  .det .act a{padding:12px 8px}
  .det .visit input{min-width:0}
  /* slim bar at the bottom: price + jump to the contact box (which sits below the description on phones) */
  .lbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--card,#fff);border-top:1px solid var(--line);box-shadow:0 -10px 24px -18px rgba(15,23,42,.5)}
  html[data-theme="dark"] .lbar{background:#0f1a2b;border-color:#24324a}
  .lbar-p{min-width:0}.lbar-p b{font:800 19px/1.1 'Poppins',sans-serif;color:var(--ink)}.lbar-p small{margin-left:4px;font-size:12px;color:var(--muted)}
  .lbar-go{flex:none;display:inline-flex;align-items:center;gap:6px;padding:11px 16px;border-radius:12px;background:#17804a;color:#fff!important;font:700 14px 'Inter',sans-serif;text-decoration:none}
  body:has(.lbar) .to-top{bottom:84px}
  body:has(.lbar) .site-footer .fbottom{padding-bottom:90px}
  #lcontact{scroll-margin-top:150px}
}
