/* 3S customer portal */
body{display:block}
.ic{flex:0 0 auto}
[hidden]{display:none!important}

/* ---------- landing ---------- */
.c-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;padding-block:56px 64px;border-bottom:1px solid var(--line-soft)}
.c-hero .dh{margin:14px 0 16px}
.c-hero .lede{margin-bottom:22px}
.c-proof{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;padding:0;margin:0;font-size:.86rem;color:var(--muted)}
.c-proof li{display:flex;gap:8px;align-items:center}
.c-proof .ic{color:var(--accent-lit)}
@media(max-width:900px){.c-hero{grid-template-columns:1fr;gap:30px;padding-block:36px 44px}}

.c-auth{border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));box-shadow:0 40px 90px -40px rgba(0,0,0,.95);overflow:hidden}
.c-auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line)}
.c-auth-tabs button{background:none;border:0;padding:16px 10px;color:var(--muted);font-weight:600;font-size:.92rem;cursor:pointer;border-bottom:2px solid transparent}
.c-auth-tabs button[aria-selected="true"]{color:var(--bone);border-bottom-color:var(--accent-lit);background:rgba(255,255,255,.02)}
.c-auth-b{padding:24px 24px 26px}
.c-auth-b h2{font-size:1.35rem;margin-bottom:6px}
.c-auth-b p.sm{font-size:.86rem;color:var(--muted);margin-bottom:18px}
.c-auth-b .enq-small{font-size:.78rem;color:var(--muted-2);margin-top:12px}
.c-auth .ok{margin-top:4px}

.c-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.c-feat{border:1px solid var(--line);border-radius:18px;padding:22px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.008))}
.c-feat .ic{color:var(--accent-lit);margin-bottom:12px}
.c-feat h3{margin-bottom:6px}
.c-feat p{font-size:.9rem;color:var(--muted)}
@media(max-width:900px){.c-feats{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.c-feats{grid-template-columns:1fr}}

.c-video{position:relative;aspect-ratio:16/9;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:radial-gradient(circle at 30% 30%,rgba(163,200,100,.12),transparent 60%),#0d100a}
.c-video video{width:100%;height:100%;display:block;object-fit:cover;background:#000}
.c-video-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:20px}
.c-video-ph .play{width:74px;height:74px;border-radius:50%;border:1px solid var(--accent-dim);display:flex;align-items:center;justify-content:center;color:var(--accent-lit);background:rgba(163,200,100,.06)}
.c-video-ph b{font-family:Archivo,sans-serif;font-size:1.1rem}
.c-video-ph span{font-size:.86rem;color:var(--muted)}

.c-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:s}
.c-steps li{counter-increment:s;border-top:2px solid var(--line);padding-top:16px}
.c-steps li::before{content:counter(s,decimal-leading-zero);font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--accent-lit);letter-spacing:.1em}
.c-steps h3{margin:8px 0 6px}
.c-steps p{font-size:.88rem;color:var(--muted)}
.c-steps li.key{border-top-color:var(--accent-lit)}
@media(max-width:900px){.c-steps{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.c-steps{grid-template-columns:1fr}}

/* ---------- dashboard ---------- */
.c-dash{padding-block:30px 70px}
.c-top{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-bottom:20px}
.c-top h1{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:800;letter-spacing:-.035em;margin:8px 0 4px}
.c-top .who{display:flex;gap:10px;align-items:center;font-size:.84rem;color:var(--muted)}
.c-tabs{display:flex;gap:6px;overflow-x:auto;margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:12px;scrollbar-width:none}
.c-tabs::-webkit-scrollbar{display:none}
.c-tabs a{flex:0 0 auto;text-decoration:none;color:var(--muted);font-size:.9rem;padding:9px 16px;border-radius:99px;border:1px solid transparent;white-space:nowrap}
.c-tabs a:hover{color:var(--bone);background:rgba(255,255,255,.04)}
.c-tabs a.on{color:#0B0C0A;background:var(--accent-lit);font-weight:600}
.c-tabs .cnt{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;border-radius:99px;font-size:.72rem;font-weight:700;background:rgba(255,255,255,.12);margin-left:4px;padding:0 6px}
.c-tabs a.on .cnt{background:rgba(0,0,0,.18)}

.c-h2{font-family:Archivo,sans-serif;font-size:1.3rem;font-weight:700;margin:0 0 4px}
.c-sub{color:var(--muted);font-size:.92rem;margin-bottom:18px}
.c-sec{margin-bottom:34px}

.c-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:30px}
.c-tile{text-align:left;padding:18px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012));color:inherit;text-decoration:none;display:block}
.c-tile:hover{border-color:var(--accent-dim)}
.c-tile b{display:block;font-family:Archivo,sans-serif;font-size:1.9rem;font-weight:800;color:var(--accent-lit);line-height:1;margin-bottom:6px}
.c-tile b.warn{color:var(--amber)} .c-tile b.bad{color:#F0A08A}
.c-tile span{font-size:.84rem;color:var(--muted)}
@media(max-width:760px){.c-tiles{grid-template-columns:1fr 1fr}}

.c-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.c-cat{display:flex;gap:14px;align-items:flex-start;text-align:left;padding:18px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.02);color:inherit;font:inherit;cursor:pointer;transition:border-color .18s,transform .18s,background .18s}
.c-cat:hover,.c-cat:focus-visible{border-color:var(--accent-lit);background:rgba(163,200,100,.05);transform:translateY(-2px);outline:none}
.c-cat .ico{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(163,200,100,.09);color:var(--accent-lit);flex:0 0 auto}
.c-cat b{display:block;font-family:Archivo,sans-serif;font-size:1rem;margin-bottom:3px}
.c-cat span{font-size:.82rem;color:var(--muted);line-height:1.45}

/* booking wizard */
.c-wiz{max-width:820px}
.c-prog{display:flex;gap:6px;margin:0 0 22px;padding:0;list-style:none}
.c-prog li{flex:1;font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);border-top:3px solid var(--line);padding-top:8px}
.c-prog li.on{color:var(--accent-lit);border-top-color:var(--accent-lit)}
.c-prog li.done{color:var(--muted);border-top-color:var(--accent-dim)}
.c-card{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012));padding:24px;margin-bottom:16px}
.c-card h3{font-size:1.15rem;margin-bottom:4px}
.c-q{margin-bottom:20px}
.c-q>label,.c-q>.lbl{display:block;font-weight:600;font-size:.94rem;margin-bottom:8px}
.c-q .req{color:var(--accent-lit)}
.c-q .hint{font-size:.78rem;color:var(--muted-2);margin:-4px 0 8px}
.c-q input[type=text],.c-q input[type=number],.c-q input[type=date],.c-q textarea,.c-q select{background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-size:.94rem;width:100%;font-family:inherit}
.c-q textarea{min-height:96px;resize:vertical}
.c-q input:focus,.c-q textarea:focus,.c-q select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.c-q .topics{margin:0}
.c-more{margin-top:10px}
.c-wiz-a{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:6px}
.c-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.c-files span{font-size:.78rem;border:1px solid var(--line);border-radius:99px;padding:4px 10px;color:var(--muted)}
.c-drop{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;border:1px dashed var(--line);border-radius:12px;padding:16px;color:var(--accent-lit);font-size:.88rem;cursor:pointer}
.c-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.c-review{display:grid;grid-template-columns:minmax(140px,34%) 1fr;gap:8px 18px;font-size:.9rem}
.c-review dt{color:var(--muted-2);font-size:.82rem}
.c-review dd{margin:0}
.c-next{border-left:3px solid var(--accent-lit);background:rgba(163,200,100,.05);border-radius:0 12px 12px 0;padding:14px 18px;font-size:.9rem;color:var(--muted);margin:16px 0}
.c-next b{color:var(--bone)}
.c-next ol{margin:8px 0 0;padding-left:18px}
.c-next li{margin-bottom:4px}

/* requests */
.c-req{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));padding:22px;margin-bottom:14px}
.c-req-h{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.c-req-h h3{font-size:1.15rem;margin-top:4px}
.c-track{display:flex;list-style:none;margin:18px 0 6px;padding:0;gap:4px}
.c-track li{flex:1;font-size:.68rem;color:var(--muted-2);text-align:center;position:relative;padding-top:16px}
.c-track li::before{content:"";position:absolute;top:4px;left:0;right:0;height:4px;border-radius:4px;background:var(--line)}
.c-track li.done::before{background:var(--accent-dim)}
.c-track li.on::before{background:var(--accent-lit)}
.c-track li.on{color:var(--bone);font-weight:600}
@media(max-width:620px){.c-track li{font-size:0}.c-track li.on{font-size:.68rem}}
.c-prop{border:1px solid var(--accent-dim);background:rgba(163,200,100,.06);border-radius:14px;padding:16px 18px;margin:14px 0}
.c-prop b.amt{font-family:Archivo,sans-serif;font-size:1.3rem;display:block;margin:4px 0}
.c-thread{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.c-thread li{font-size:.86rem;padding:10px 14px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--line-soft);max-width:85%}
.c-thread li.me{margin-left:auto;background:rgba(163,200,100,.07);border-color:var(--accent-dim)}
.c-thread time{display:block;font-family:"IBM Plex Mono",monospace;font-size:.64rem;color:var(--muted-2);margin-bottom:3px}

/* documents */
.c-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.c-filters input,.c-filters select{background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:99px;padding:9px 14px;font-size:.88rem}
.c-filters input{flex:1;min-width:180px}
.c-docs{display:grid;gap:8px}
.c-doc{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.c-doc .ico{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.04);color:var(--muted)}
.c-doc b{display:block;font-size:.95rem}
.c-doc .meta{font-size:.78rem;color:var(--muted-2);display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:2px}
.c-doc .acts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.exp-ok{color:var(--accent-lit)} .exp-soon{color:var(--amber)} .exp-bad{color:#F0A08A}
@media(max-width:620px){.c-doc{grid-template-columns:auto 1fr}.c-doc .acts{grid-column:1/-1;justify-content:flex-start}}

/* visits */
.c-tl{list-style:none;margin:0;padding:0 0 0 22px;border-left:1px solid var(--line)}
.c-tl>li{position:relative;padding:0 0 26px 18px}
.c-tl>li::before{content:"";position:absolute;left:-28px;top:4px;width:11px;height:11px;border-radius:50%;background:var(--ink);border:2px solid var(--accent-lit)}
.c-tl time{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.08em;color:var(--muted-2);text-transform:uppercase}
.c-tl h3{margin:4px 0 6px}
.c-tl p{font-size:.9rem;color:#D6DACB;max-width:75ch}
.c-tl .thumbs{margin-top:12px}

.c-sites{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.c-site{border:1px solid var(--line);border-radius:16px;padding:18px;background:rgba(255,255,255,.02)}
.c-site h3{margin-bottom:4px}
.c-site p{font-size:.86rem;color:var(--muted)}
.c-site .cta-btns{margin-top:12px}

.c-empty{padding:34px 22px;text-align:center;border:1px dashed var(--line);border-radius:16px;color:var(--muted)}
.c-empty h3{color:var(--bone);margin-bottom:6px}
.c-empty .btn{margin-top:14px}
.c-help{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin-top:30px;font-size:.9rem;color:var(--muted)}
.c-help b{color:var(--bone)}
.c-loading{padding:80px 20px;text-align:center;color:var(--muted)}
