/* Winmar blue and white, single light look. Layout: white header with logo, blue nav band, content cards on a pale blue ground. */
:root{
  --blue:#004F9A; --blue-dk:#003A72; --blue-lt:#E6EEF7; --blue-mid:#7FA7CD;
  --white:#FFFFFF; --ink:#0E2A47; --muted:#4F6680; --line:#CFDCEA;
  --amber:#B86E00; --amber-bg:#FFF3DF; --done:#004F9A; --done-bg:#DCE8F5; --todo-bg:#EEF1F5; --todo:#5B6B7D;
  --f-d:"Archivo","Helvetica Neue",Arial,sans-serif; --f-b:"Source Sans 3","Segoe UI",Helvetica,Arial,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--blue-lt);color:var(--ink);font-family:var(--f-b);font-size:16px;line-height:1.5}
a{color:var(--blue)}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
header.top{background:var(--white);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;padding-block:14px}
.logo{height:44px;width:auto;display:block}
.site-name{text-align:right}
.site-name b{display:block;font-family:var(--f-d);font-weight:800;font-size:20px;color:var(--blue)}
.site-name span{font-size:13px;color:var(--muted)}
nav.tabs{background:var(--blue);position:sticky;top:0;z-index:5}
nav.tabs .wrap{display:flex;gap:4px;overflow-x:auto}
nav.tabs a{color:var(--white);text-decoration:none;font-weight:600;font-size:15px;padding:13px 14px;white-space:nowrap;border-bottom:3px solid transparent}
nav.tabs a[aria-current="page"]{border-bottom-color:var(--white)}
nav.tabs a:hover{background:var(--blue-dk)}
nav.tabs a:focus-visible,button:focus-visible,.unit:focus-visible{outline:3px solid #FFB000;outline-offset:2px}
.banner{background:var(--white);border:1px dashed var(--blue-mid);color:var(--muted);font-size:13.5px;padding:8px 12px;border-radius:8px;margin-top:16px}
main{padding-block:18px 40px}
section.view{display:flex;flex-direction:column;gap:16px}
h1{font-family:var(--f-d);font-weight:800;font-size:clamp(26px,3.6vw,36px);line-height:1.1;margin:0;color:var(--blue);text-wrap:balance}
h2{font-family:var(--f-d);font-weight:700;font-size:20px;margin:0;color:var(--ink)}
h3{font-size:16px;margin:0}
.card{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:18px}
.grid{display:grid;gap:16px}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g2{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
@media (max-width:860px){.g3,.g2{grid-template-columns:minmax(0,1fr)}}
.lead{font-size:17px;color:var(--muted);margin:6px 0 0;max-width:70ch}
.kpi .k{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.kpi .v{font-family:var(--f-d);font-weight:800;font-size:24px;color:var(--blue);margin-top:4px}
.kpi .s{font-size:14px;color:var(--muted)}
.bar{height:10px;background:var(--blue-lt);border-radius:99px;overflow:hidden;margin-top:10px}
.bar i{display:block;height:100%;background:var(--blue)}
.phases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:640px){.phases{grid-template-columns:minmax(0,1fr)}}
.ph{border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.ph.now{background:var(--blue);border-color:var(--blue);color:var(--white)}
.ph .n{font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;opacity:.85}
.ph .t{font-family:var(--f-d);font-weight:700;font-size:17px;margin-top:2px}
.ph .d{font-size:14px;margin-top:4px;opacity:.9}
.chip{display:inline-block;font-size:12.5px;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap}
.c-todo{background:var(--todo-bg);color:var(--todo)} .c-prog{background:var(--amber-bg);color:var(--amber)} .c-done{background:var(--done-bg);color:var(--done)} .c-hold{background:#F6E6E6;color:#9A2B2B}
/* building */
.floors{display:flex;flex-wrap:wrap;gap:6px}
.fbtn{font:inherit;font-weight:600;font-size:14px;border:1px solid var(--blue);background:var(--white);color:var(--blue);border-radius:8px;padding:8px 14px;cursor:pointer;min-height:40px}
.fbtn[aria-pressed="true"]{background:var(--blue);color:var(--white)}
.planbox{overflow-x:auto}
.plan{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));grid-template-rows:auto 44px auto;gap:8px;min-width:520px}
.unit{font:inherit;text-align:left;background:var(--white);border:2px solid var(--line);border-radius:10px;padding:12px;min-height:96px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;gap:6px;color:var(--ink)}
.unit:hover{border-color:var(--blue-mid)}
.unit[aria-pressed="true"]{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-lt) inset}
.unit .no{font-family:var(--f-d);font-weight:800;font-size:18px;color:var(--blue)}
.unit.locked{background:repeating-linear-gradient(135deg,#F3F5F8,#F3F5F8 8px,#E9EDF2 8px,#E9EDF2 16px);cursor:pointer}
.corridor{grid-column:1 / -1;background:var(--blue-lt);border:1px dashed var(--blue-mid);border-radius:8px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:13px;color:var(--muted);font-weight:600}
.legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:13.5px;color:var(--muted);align-items:center}
.steps{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.steps li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:6px;font-size:15px}
.ph-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.thumb{aspect-ratio:4/3;border-radius:8px;background:var(--blue-lt);border:1px dashed var(--blue-mid);display:flex;align-items:center;justify-content:center;text-align:center;font-size:12.5px;color:var(--muted);padding:6px;max-width:100%}
.thumb svg{width:28px;height:28px;color:var(--blue-mid)}
.note{font-size:14px;color:var(--muted);margin:0}
/* media */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.media .thumb{aspect-ratio:16/9;flex-direction:column;gap:6px}
.media h3{margin-top:8px}
.media p{margin:2px 0 0;font-size:14px;color:var(--muted)}
/* updates */
.upd{border-left:4px solid var(--blue);padding-left:14px}
.upd .date{font-size:13px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.05em}
.upd ul{margin:6px 0 0;padding-left:20px}
/* docs */
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.tbl{overflow-x:auto}
.doclink{text-decoration:none}
.doclink:hover .chip,.doclink:focus-visible .chip{background:var(--blue);color:var(--white)}
.doclink .chip::after{content:' \2197';}
footer{background:var(--blue);color:var(--white);font-size:14px}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;padding-block:18px}
footer a{color:var(--white)}
[hidden]{display:none!important}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* app additions */
.who{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--muted)}
.btn{font:inherit;font-weight:700;font-size:15px;border:0;border-radius:8px;padding:10px 16px;cursor:pointer;min-height:44px;background:var(--blue);color:var(--white)}
.btn:hover{background:var(--blue-dk)}
.btn.ghost{background:var(--white);color:var(--blue);border:1px solid var(--blue)}
.btn.small{min-height:36px;padding:6px 12px;font-size:14px}
.btn.danger{background:#9A2B2B}
.btn:disabled{opacity:.5;cursor:default}
label.f{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:600;color:var(--ink)}
input[type=text],input[type=email],input[type=date],input[type=time],input[type=datetime-local],input[type=number],input[type=url],select,textarea{font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);width:100%}
textarea{min-height:110px;resize:vertical}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #FFB000;outline-offset:1px}
.form{display:grid;gap:12px}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:640px){.row2{grid-template-columns:minmax(0,1fr)}}
.msg{font-size:14px;padding:8px 12px;border-radius:8px}
.msg.err{background:#F6E6E6;color:#9A2B2B}
.msg.okm{background:var(--done-bg);color:var(--done)}
.thumb img{width:100%;height:100%;object-fit:cover;border-radius:8px;display:block}
.thumb.has{padding:0;border-style:solid}
.empty{color:var(--muted);font-size:15px}

/* ---- shared ---- */
:root{
  --c-remove:#D2452F; --c-alt:#E8902A; --c-studs:#D9B44A; --c-kept:#9AA3AE; --ground:#E6EEF7;
  --p1:#004F9A; --p1-lt:#DCE8F5; --p2:#1C7F67; --p2-lt:#D8EFE8; --p3:#B0662A; --p3-lt:#F6E5D6;
  --s-todo:#8A97A6; --s-prog:#E08A00; --s-done:#1C7F67; --s-hold:#B23B3B;
  --shadow:0 1px 2px rgba(14,42,71,.06),0 4px 14px rgba(14,42,71,.06);
}
.card{box-shadow:var(--shadow)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px;background:var(--s-todo)}
.dot.s-prog{background:var(--s-prog)} .dot.s-done{background:var(--s-done)} .dot.s-hold{background:var(--s-hold)}
.seg{display:inline-flex;flex-wrap:wrap;gap:2px;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:3px}
.seg button{font:inherit;font-size:14px;font-weight:600;border:0;background:transparent;color:var(--muted);border-radius:7px;padding:7px 12px;cursor:pointer;min-height:36px;display:inline-flex;align-items:center;gap:7px}
.seg button i{width:10px;height:10px;border-radius:3px;display:inline-block}
.seg button:hover{color:var(--ink);background:var(--blue-lt)}
.seg button[aria-pressed="true"]{background:var(--blue);color:var(--white)}
.seg button:focus-visible{outline:3px solid #FFB000;outline-offset:1px}
.ph-h{border-left:5px solid var(--pc);padding-left:10px}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.stats div{background:var(--blue-lt);border-radius:8px;padding:10px 12px}
.stats b{display:block;font-family:var(--f-d);font-size:16px;color:var(--ink)}
.stats span{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
@media (max-width:640px){.stats{grid-template-columns:minmax(0,1fr)}}

/* ---- overview ---- */
a.kpi-link{display:block;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s}
a.kpi-link:hover{border-color:var(--blue-mid);box-shadow:0 6px 20px rgba(0,79,154,.14);transform:translateY(-1px)}
.go{display:inline-block;margin-top:10px;font-size:14px;font-weight:700;color:var(--blue)}
.contact .c-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.cbtn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border-radius:10px;border:1px solid var(--blue);color:var(--blue);background:var(--white);font-weight:700;font-size:15px;text-decoration:none}
.cbtn:first-child{background:var(--blue);color:var(--white)}
.cbtn:hover{background:var(--blue-dk);border-color:var(--blue-dk);color:var(--white)}
.cbtn svg{width:18px;height:18px;flex:none}
a.ph{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);border-top:4px solid var(--pc);background:var(--white);transition:box-shadow .15s,transform .15s}
a.ph:hover{box-shadow:0 6px 20px rgba(14,42,71,.12);transform:translateY(-1px)}
a.ph .n{color:var(--pc)}
a.ph.now{background:var(--pc);border-color:var(--pc);color:var(--white)}
a.ph.now .n,a.ph.now .go{color:var(--white)}
.ph .d{flex:1}
.ph-meta{display:flex;justify-content:space-between;gap:8px;font-size:13px;margin-top:10px;opacity:.85;font-weight:600}
.ph-bar{height:6px;border-radius:99px;background:rgba(14,42,71,.1);overflow:hidden;margin-top:6px}
.ph-bar i{display:block;height:100%;background:var(--pc)}
a.ph.now .ph-bar{background:rgba(255,255,255,.3)} a.ph.now .ph-bar i{background:var(--white)}
a.ph .go{color:var(--pc);margin-top:8px}

/* ---- 3D model ---- */
.model-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
@media (max-width:960px){.model-grid{grid-template-columns:minmax(0,1fr)}}
.m-main{display:flex;flex-direction:column;gap:10px;min-width:0}
.viewer{position:relative;min-width:0;height:clamp(420px,58vw,640px);border:1px solid var(--line);border-radius:12px;overflow:hidden;background:linear-gradient(180deg,#F7FAFD 0%,var(--ground) 100%);box-shadow:var(--shadow)}
@media (max-width:640px){.viewer{height:62vh;min-height:380px}}
.viewer canvas{display:block;width:100%;height:100%;touch-action:none}
.tags{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.tag{position:absolute;transform:translate(-50%,-50%);font:inherit;font-size:12.5px;font-weight:700;background:rgba(255,255,255,.94);color:var(--ink);border:1px solid var(--line);padding:3px 8px;border-radius:6px;white-space:nowrap;box-shadow:0 1px 4px rgba(14,42,71,.12)}
.tag.note{transform:translate(-50%,-100%);font-weight:600;color:var(--c-remove);border-color:#F1C4BB}
button.tag{pointer-events:auto;cursor:pointer}
.tag.lvl{transform:translate(0,-50%);border-left:3px solid var(--blue)}
.tag.lvl:hover,.tag.lvl[aria-pressed="true"]{background:var(--blue);color:var(--white);border-color:var(--blue)}
.tag.utag{font-family:var(--f-d);font-size:13px;padding:4px 9px;border-radius:99px}
.tag.utag:hover{background:var(--blue);color:var(--white)}
.v-tools{position:absolute;top:10px;left:10px;right:10px;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:flex-start;pointer-events:none}
.v-tools>*{pointer-events:auto}
.seg.dark{background:rgba(255,255,255,.92);box-shadow:0 1px 6px rgba(14,42,71,.12)}
.vtool{font:inherit;font-size:14px;font-weight:700;border:1px solid var(--line);background:rgba(255,255,255,.94);color:var(--blue);border-radius:10px;padding:8px 12px;cursor:pointer;min-height:40px;box-shadow:0 1px 6px rgba(14,42,71,.12)}
.vtool:hover{border-color:var(--blue)}
.vtool[aria-pressed="true"]{background:var(--blue);color:var(--white);border-color:var(--blue)}
.v-back{position:absolute;left:10px;bottom:10px}
.hint{position:absolute;right:10px;bottom:10px;font-size:12.5px;color:var(--muted);background:rgba(255,255,255,.9);border:1px solid var(--line);padding:4px 9px;border-radius:6px;pointer-events:none}
.v-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-weight:600;background:rgba(247,250,253,.85);z-index:2;padding:20px;text-align:center}
.v-load.err{color:#9A2B2B}
.v-load.err .spin{display:none}
.spin{width:20px;height:20px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--blue);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.m-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13.5px;color:var(--muted);font-weight:600}
.m-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.m-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.lvl-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.lvl{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;text-align:left;font:inherit;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:9px 12px;cursor:pointer;color:var(--ink);min-height:48px}
.lvl i{width:14px;height:14px;border-radius:4px}
.lvl b{display:block;font-size:15px}
.lvl small{display:block;font-size:13px;color:var(--muted)}
.lvl .chev{font-size:20px;color:var(--blue-mid)}
.lvl:hover{border-color:var(--blue-mid)}
.lvl[aria-pressed="true"]{border-color:var(--blue);background:var(--blue-lt);box-shadow:inset 3px 0 0 var(--blue)}
@media (max-width:960px){.m-levels .lvl-list{flex-direction:row;overflow-x:auto;padding-bottom:4px}.lvl{min-width:170px}}
.vbtn:focus-visible,.vtool:focus-visible,.lvl:focus-visible,button.tag:focus-visible,.gbar:focus-visible,.g-label:focus-visible,.area:focus-visible,.corridor:focus-visible{outline:3px solid #FFB000;outline-offset:2px}

/* ---- schedule ---- */
.sch-bar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}
.gscroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--white);box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}
.gantt{display:grid;grid-template-columns:300px minmax(0,1fr);font-size:14px}
.g-axis-l{position:sticky;left:0;top:0;z-index:4;background:#F4F7FB;border-bottom:1px solid var(--line);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:9px 14px;box-shadow:1px 0 0 var(--line)}
.g-axis{position:relative;height:36px;border-bottom:1px solid var(--line);background:#F4F7FB}
.tick{position:absolute;top:0;bottom:0;border-left:1px solid var(--line);font-size:12px;font-weight:600;color:var(--muted);padding:10px 0 0 6px;white-space:nowrap}
.now-lbl{position:absolute;bottom:3px;transform:translateX(-50%);background:#C2410C;color:#fff;font-size:11px;font-weight:700;padding:1px 6px;border-radius:99px;z-index:2}
.g-phase-l{position:sticky;left:0;z-index:3;display:flex;gap:10px;align-items:center;padding:10px 14px;background:#F4F7FB;border-top:1px solid var(--line);box-shadow:1px 0 0 var(--line)}
.g-phase-l i{flex:none;width:6px;align-self:stretch;border-radius:3px;background:var(--pc)}
.g-phase-l b{display:block;font-family:var(--f-d);font-size:14.5px;color:var(--pc)}
.g-phase-l small{display:block;font-size:12.5px;color:var(--muted)}
.g-phase-t{position:relative;background:#F4F7FB;border-top:1px solid var(--line);min-height:52px}
.g-sum{position:absolute;top:50%;height:8px;margin-top:-4px;background:var(--pc);border-radius:2px}
.g-sum::before,.g-sum::after{content:'';position:absolute;top:0;width:0;height:0;border-top:8px solid var(--pc)}
.g-sum::before{left:0;border-right:7px solid transparent;top:8px}
.g-sum::after{right:0;border-left:7px solid transparent;top:8px}
.g-label{position:sticky;left:0;z-index:3;display:block;width:100%;text-align:left;font:inherit;font-size:14px;color:var(--ink);background:var(--white);border:0;border-top:1px solid var(--line);border-left:4px solid var(--pc);padding:8px 12px 8px 12px;line-height:1.3;cursor:pointer;box-shadow:1px 0 0 var(--line);min-width:0}
.g-label small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.g-label:hover,.g-label.sel{background:var(--blue-lt)}
.g-track{position:relative;border-top:1px solid var(--line);min-height:50px}
.g-track.sel{background:#F1F6FC}
.g-track .gl,.g-phase-t .gl{position:absolute;top:0;bottom:0;border-left:1px dashed #E1E8F0}
.g-track .now,.g-phase-t .now{position:absolute;top:0;bottom:0;border-left:2px solid #C2410C;z-index:1}
.gbar{position:absolute;top:50%;height:26px;margin-top:-13px;border-radius:6px;border:0;padding:0 8px;cursor:pointer;background:var(--pc);color:#fff;font:inherit;font-size:12px;font-weight:700;text-align:left;overflow:hidden;white-space:nowrap;box-shadow:0 1px 2px rgba(14,42,71,.18);z-index:2;min-width:12px;transition:transform .12s,box-shadow .12s}
.gbar span{display:block;overflow:hidden;text-overflow:clip}
.gbar:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(14,42,71,.25)}
.gbar.planned{background:var(--pcl);color:var(--pc);box-shadow:inset 0 0 0 1.5px var(--pc)}
.gbar.prog{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.28) 0 7px,transparent 7px 14px)}
.gbar.ms{width:18px!important;height:18px;margin-top:-9px;padding:0;min-width:0;transform:translateX(-9px) rotate(45deg);border-radius:3px;background:var(--pc);box-shadow:none}
.gbar.ms:hover{transform:translateX(-9px) rotate(45deg) scale(1.15)}
.gbar.ms.planned{background:var(--pc)}
.gbar.gate{background:var(--white)!important;box-shadow:inset 0 0 0 2.5px var(--pc)}
.gbar[aria-pressed="true"]{box-shadow:0 0 0 2px var(--white),0 0 0 4px var(--ink)}
.gbar.ms[aria-pressed="true"]{box-shadow:0 0 0 2px var(--white),0 0 0 4px var(--ink)}
.g-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13.5px;color:var(--muted);font-weight:600;align-items:center}
.g-legend span{display:inline-flex;align-items:center;gap:7px}
.lg-bar{display:inline-block;width:26px;height:12px;border-radius:3px;background:var(--p1)}
.lg-bar.planned{background:var(--p1-lt);box-shadow:inset 0 0 0 1.5px var(--p1)}
.lg-bar.prog{background:var(--p1) repeating-linear-gradient(135deg,rgba(255,255,255,.35) 0 4px,transparent 4px 8px)}
.lg-ms{display:inline-block;width:11px;height:11px;background:var(--p1);transform:rotate(45deg);border-radius:2px;margin:0 2px}
.lg-ms.gate{background:var(--white);box-shadow:inset 0 0 0 2px var(--p1)}
.lg-now{display:inline-block;width:2px;height:14px;background:#C2410C}
@media (max-width:640px){.gantt{grid-template-columns:168px minmax(0,1fr);font-size:13px}.g-label{font-size:13px;padding:7px 8px}.g-label small{font-size:11.5px}.g-phase-l{padding:8px}.g-phase-l b{font-size:13px}}
.areas{display:flex;flex-wrap:wrap;gap:6px}
.area{font:inherit;font-size:13px;font-weight:600;border:1px solid var(--blue);background:var(--white);color:var(--blue);border-radius:99px;padding:4px 11px;cursor:pointer;min-height:34px;display:inline-flex;align-items:center}
.area:hover{background:var(--blue);color:var(--white)}
.task-link{display:flex;justify-content:space-between;gap:10px;align-items:center;width:100%;text-align:left;font:inherit;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--pc,var(--blue));border-radius:8px;padding:8px 10px;cursor:pointer;color:var(--ink)}
.task-link:hover{border-color:var(--blue)}
.task-link small{color:var(--muted)}
button.corridor{cursor:pointer;font:inherit}
button.corridor[aria-pressed="true"]{border-style:solid;border-color:var(--blue);color:var(--blue)}
.unit.hl{border-color:#C2410C;box-shadow:0 0 0 3px #FCE3D2 inset}
.corridor.hl{border:2px solid #C2410C;box-shadow:0 0 0 3px #FCE3D2 inset;color:#9A3412}
@media (max-width:640px){
  .g-label .who{display:none}
  .gantt{grid-template-columns:150px minmax(0,1fr)}
  .sch-bar .seg{flex-wrap:nowrap;overflow-x:auto;max-width:100%}
  .sch-bar .seg button{padding:7px 10px;white-space:nowrap}
  .v-tools .seg button{padding:7px 9px}
}
.visit{margin-top:12px;padding:10px 12px;border-radius:8px;background:var(--blue-lt);border-left:4px solid var(--blue)}
/* button-style links (match the call button) */
.go{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;min-height:42px;margin-top:14px;padding:9px 16px;border-radius:10px;background:var(--blue);color:var(--white);font-weight:700;font-size:15px;text-decoration:none;transition:background .15s}
.go svg{width:18px;height:18px;flex:none;transition:transform .15s}
a.go:hover,a.kpi-link:hover .go{background:var(--blue-dk)}
a.go:hover svg,a.kpi-link:hover .go svg,a.ph:hover .go svg{transform:translateX(3px)}
a.ph .go{background:var(--pc);color:var(--white)}
a.ph:hover .go{filter:brightness(.9)}
a.ph.now .go{background:var(--white);color:var(--pc)}
a.kpi-link{display:flex;flex-direction:column}
/* every remaining link is a button */
a.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}
.lbtn{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 12px;border-radius:9px;border:1px solid var(--blue);background:var(--white);color:var(--blue);font-weight:700;font-size:14px;text-decoration:none;white-space:nowrap;transition:background .15s,color .15s}
.lbtn svg{width:15px;height:15px;flex:none}
.lbtn:hover,.lbtn.solid{background:var(--blue);color:var(--white)}
.lbtn.solid:hover{background:var(--blue-dk)}
td.act{text-align:right;width:1%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.c-priv{background:#EEF1F5;color:#7A8696}
.unit.private{background:#F7F9FB;border-style:dashed}
.unit.private .no{color:var(--muted)}
.idle-bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:50;display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:center;max-width:calc(100% - 24px);background:var(--ink);color:var(--white);padding:10px 14px;border-radius:12px;box-shadow:0 8px 30px rgba(14,42,71,.35);font-size:15px}
.idle-bar .btn{background:var(--white);color:var(--blue)}
/* ---- appointments ---- */
.walk{margin-top:12px;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:#FAFCFE}
.walk-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.walk-h svg{width:18px;height:18px;color:var(--blue)}
.walk p{margin:6px 0 0}
.walk-act{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}
.walk-act .btn svg,.btn svg{width:16px;height:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.walk-when{font-family:var(--f-d);font-weight:800;font-size:19px;color:var(--blue);margin:8px 0 0}
.walk-form{display:flex;flex-direction:column;gap:10px;margin-top:10px;padding:12px;border-radius:10px;background:var(--blue-lt)}
.walk-form h3{margin:0}
.mine-card h2{margin-bottom:10px}
.mine-list{display:flex;flex-direction:column;gap:8px}
.mine{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.mine b{font-family:var(--f-d);font-size:17px;color:var(--blue)}
.badge{display:inline-block;min-width:20px;padding:0 6px;border-radius:99px;background:#FFB000;color:var(--ink);font-size:12px;font-weight:800;text-align:center;line-height:20px;margin-left:4px}
.wlist{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.wcard{box-shadow:none;padding:14px}
.wc-h{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.wcard p{margin:6px 0 0}
.wc-more{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.wc-more summary{cursor:pointer;font-weight:700;color:var(--blue);font-size:14.5px;padding:4px 0}
.wc-more .f{margin-top:8px}
.wc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (max-width:640px){.wc-grid{grid-template-columns:minmax(0,1fr)}}
.wpast{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.avail{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end}
.own-times{border-top:1px solid var(--line);padding-top:12px}
/* calendar */
.cal-wrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:860px){.cal-wrap{grid-template-columns:minmax(0,1fr)}}
.cal{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.cal-hd{display:grid;grid-template-columns:repeat(7,1fr);background:#F4F7FB;border-bottom:1px solid var(--line)}
.cal-hd span{text-align:center;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:7px 0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-d{font:inherit;background:var(--white);border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:62px;padding:6px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;cursor:pointer;color:var(--ink);text-align:left}
.cal-d:nth-child(7n){border-right:0}
.cal-d .n{font-size:13px;font-weight:600}
.cal-d .c{font-size:11.5px;font-weight:700;color:var(--white);background:var(--p2);border-radius:99px;padding:1px 7px;white-space:nowrap}
.cal-d:disabled{cursor:default;color:#A5B1BF;background:#FBFCFD}
.cal-d.has:not(:disabled):hover{background:var(--blue-lt)}
.cal-d.today .n{color:var(--blue);font-weight:800}
.cal-d.today .n::after{content:' today';font-size:10.5px;font-weight:700;text-transform:uppercase}
.cal-d[aria-pressed="true"]{background:var(--blue);color:var(--white)}
.cal-d[aria-pressed="true"] .c{background:var(--white);color:var(--blue)}
@media (max-width:640px){.cal-d{min-height:52px;padding:4px}.cal-d .c{font-size:10.5px;padding:1px 5px}.cal-d.today .n::after{content:''}}
.cal-side h3{margin-bottom:8px}
.slots{display:flex;flex-direction:column;gap:6px}
.slot-pick{font:inherit;display:flex;gap:12px;align-items:baseline;text-align:left;border:1px solid var(--line);background:var(--white);border-radius:10px;padding:10px 12px;cursor:pointer;color:var(--ink);min-height:46px}
.slot-pick b{font-family:var(--f-d);color:var(--blue);min-width:72px}
.slot-pick span{font-size:14px;color:var(--muted)}
.slot-pick:hover{border-color:var(--blue)}
.slot-pick[aria-pressed="true"]{background:var(--blue);border-color:var(--blue)}
.slot-pick[aria-pressed="true"] b,.slot-pick[aria-pressed="true"] span{color:var(--white)}
.slot{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:14.5px}
.slot small{color:var(--muted)}
.slot.booked{background:#FFF8EC}
.phone-box{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.phone-box .f{flex:1;min-width:220px}
label.slot-pick{align-items:center}
label.slot-pick input{margin:0}
label.slot-pick:has(input:checked){background:var(--blue);border-color:var(--blue)}
label.slot-pick:has(input:checked) b,label.slot-pick:has(input:checked) span{color:var(--white)}
.paused{padding:14px 16px;border-radius:10px;background:#FFF3DF;border-left:4px solid var(--amber)}
.paused p{margin:6px 0 0}
.pause-card{display:flex;flex-direction:column;gap:10px;border-left:4px solid var(--p2)}
.pause-card.on{border-left-color:var(--amber);background:#FFFBF3}
.pause-card p{margin:6px 0 0}
.pz-form input{flex:1;min-width:240px}
.rm{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;width:100%}
.rm legend{font-size:14px;font-weight:600;padding:0;margin-bottom:6px;width:100%}
.rm label{display:inline-flex;gap:6px;align-items:center;font-size:15px;border:1px solid var(--line);border-radius:99px;padding:6px 12px;cursor:pointer}
.rm label:has(input:checked){background:var(--blue-lt);border-color:var(--blue);color:var(--blue);font-weight:700}
/* overview calendar */
.oc-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.oc-nav{display:flex;align-items:center;gap:8px}
.oc-nav b{min-width:140px;text-align:center;font-family:var(--f-d)}
.oc-nav .btn{min-width:40px}
.oc-wrap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:860px){.oc-wrap{grid-template-columns:minmax(0,1fr)}}
.oc-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.oc-d{font:inherit;background:var(--white);border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:70px;padding:5px 6px;display:flex;flex-direction:column;align-items:stretch;gap:3px;cursor:pointer;color:var(--ink);text-align:left}
.oc-d:nth-child(7n){border-right:0}
.oc-d .n{font-size:13px;font-weight:600;display:flex;align-items:center;gap:5px}
.oc-d.other{background:#FAFBFD;color:#A5B1BF}
.oc-d.today .n{color:var(--blue);font-weight:800}
.oc-d:hover{background:var(--blue-lt)}
.oc-d[aria-pressed="true"]{box-shadow:inset 0 0 0 2px var(--blue);background:#F1F6FC}
.oc-bars{display:flex;flex-direction:column;gap:2px}
.oc-bars i{display:block;height:5px;border-radius:3px}
.oc-ap,.oc-ap-k{display:inline-block;font-size:11px;font-weight:700;color:var(--white);background:#C2410C;border-radius:4px;padding:1px 5px;align-self:flex-start;font-style:normal;white-space:nowrap}
.oc-ap-k{margin-right:2px}
.oc-ms{display:inline-block;width:8px;height:8px;background:var(--pc);transform:rotate(45deg);border-radius:1px}
.oc-side h3{margin-bottom:8px}
.oc-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.oc-item{font:inherit;font-size:14.5px;text-align:left;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--pc,#C2410C);border-radius:8px;padding:7px 10px;color:var(--ink)}
.oc-item small{display:block;color:var(--muted);font-size:12.5px}
.oc-item.task{cursor:pointer}
.oc-item.task:hover{border-color:var(--blue)}
@media (max-width:640px){.oc-d{min-height:54px;padding:3px 4px}.oc-ap{font-size:10px;padding:0 3px}}
/* ---- preview, safety, questions, costs, before and after ---- */
.preview{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-top:16px;padding:10px 14px;border-radius:10px;background:#FFF3DF;border:1px solid #F0D3A3;color:#6B4300;font-size:15px}
.preview b{text-transform:uppercase;letter-spacing:.06em;font-size:12px;background:var(--amber);color:#fff;padding:2px 8px;border-radius:99px}
.c-indic{background:#F1ECF8;color:#5B3F8C}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:640px){.facts{grid-template-columns:minmax(0,1fr)}}
.fact{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:10px;background:var(--blue-lt)}
.fact b{font-size:14px}
.fact span{font-size:15px;color:var(--muted)}
.qa{border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.qa p{margin:0}
.qa-q{font-weight:700}
.qa-a{margin-top:6px!important}
.faq{border-bottom:1px solid var(--line);padding:10px 0}
.faq summary{cursor:pointer;font-weight:700;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:10px}
.faq summary::after{content:'+';color:var(--blue);font-size:20px;line-height:1}
.faq[open] summary::after{content:'–'}
.faq summary::-webkit-details-marker{display:none}
.faq p{margin:8px 0 0}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.tile{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow)}
.tile span{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.tile b{font-family:var(--f-d);font-size:20px;color:var(--blue)}
.tile.main{background:var(--blue);border-color:var(--blue)}
.tile.main span,.tile.main b{color:var(--white)}
.co-amt{font-family:var(--f-d);font-weight:800;font-size:20px;color:var(--blue)}
.co-amt small{font-family:var(--f-b);font-size:13px;font-weight:600;color:var(--muted)}
.upd-ph{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-top:10px}
.upd-ph img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;display:block}
.ba-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:12px}
.ba{margin-top:12px}
.ba-box{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--blue-lt)}
.ba-box img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-after{position:absolute;inset:0;clip-path:inset(0 0 0 var(--x))}
.ba-after::before{content:'';position:absolute;top:0;bottom:0;left:var(--x);width:3px;margin-left:-1.5px;background:#fff;z-index:2;box-shadow:0 0 6px rgba(0,0,0,.4)}
.ba-l,.ba-r{position:absolute;top:8px;font-size:12px;font-weight:700;color:#fff;background:rgba(14,42,71,.7);padding:2px 8px;border-radius:99px;z-index:3}
.ba-l{left:8px}.ba-r{right:8px}
.ba-box input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:4;margin:0}
.privacy .card ul{margin:10px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.privacy .card p{margin:10px 0 0}
footer .fl{display:flex;gap:16px;flex-wrap:wrap}
a.kpi-link.static{cursor:default}
a.kpi-link.static:hover{transform:none;box-shadow:var(--shadow);border-color:var(--line)}
