:root { color-scheme: light; --green:#0b6b47; --green-soft:#e8f6ef; --red:#c3423f; --red-soft:#fff0ee; --amber:#995e00; --amber-soft:#fff6e5; --ink:#17211d; --muted:#65716a; --line:#e4e9e6; --paper:#f5f7f5; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
button,input { font:inherit; }
button { cursor:pointer; }
.app-shell { width:min(100%,700px); min-height:100vh; margin:0 auto; padding:0 16px max(22px,env(safe-area-inset-bottom)); }
.hero { margin:0 -16px; padding:calc(24px + env(safe-area-inset-top)) 20px 24px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:0 0 28px 28px; box-shadow:0 8px 22px #17211d0d; }
.hero-heading { display:flex; align-items:center; justify-content:space-between; gap:13px; margin-bottom:11px; }.brand { order:2; flex:0 0 132px; width:132px; }.brand img { display:block; width:100%; height:auto; }.hero-heading h1 { margin:0; font-size:clamp(23px,7.2vw,32px); }
.eyebrow { margin:0 0 5px; font-size:11px; font-weight:800; letter-spacing:.11em; color:inherit; opacity:.72; }
.hero h1 { letter-spacing:-.04em; }
.subtitle { margin:0; color:#303b35; font-size:15px; opacity:1; }
.search-box { display:flex; align-items:center; gap:10px; min-height:54px; padding:0 14px; color:#52605a; background:#fff; border-radius:16px; box-shadow:0 6px 18px #003a2829; }
.search-box > span { font-size:27px; line-height:1; transform:rotate(-20deg); }
.search-box input { flex:1; min-width:0; padding:14px 0; border:0; outline:0; color:var(--ink); font-size:17px; font-weight:650; }
.search-box input::placeholder { color:#829088; font-weight:450; }
.search-box button { width:28px; height:28px; border:0; border-radius:50%; color:#fff; background:#819087; font-size:22px; line-height:1; }
.search-box .search-action { width:auto; height:34px; padding:0 12px; border-radius:9px; background:var(--green); font-size:13px; font-weight:800; }
.suggestions { display:grid; gap:7px; margin-top:9px; }
.suggestion { width:100%; padding:10px 12px; text-align:left; color:#173126; background:#ffffffee; border:0; border-radius:10px; font-size:13px; }
.suggestion strong { display:block; font-size:14px; }
.notice,.empty-state { margin:28px 0; padding:24px; text-align:center; color:var(--muted); background:#fff; border:1px solid var(--line); border-radius:18px; }
.filters { margin-top:18px; padding:17px; background:#fff; border:1px solid var(--line); border-radius:18px; }.filters-head { margin-bottom:13px; }.filters .eyebrow { color:var(--muted); }.filters h2 { margin:0; font-size:19px; letter-spacing:-.02em; }.filter-grid { display:grid; gap:11px; }.filter-grid label,.status-filter { display:grid; gap:5px; min-width:0; margin:0; padding:0; color:var(--muted); border:0; font-size:12px; font-weight:750; }.status-filter legend { padding:0; }.filter-grid select,.filter-grid input { width:100%; min-height:44px; padding:0 34px 0 11px; overflow:hidden; color:var(--ink); background:#f7f9f7; border:1px solid #dfe7e2; border-radius:10px; font-size:14px; }.filter-grid input { padding-right:11px; }.status-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.status-choice { display:flex !important; align-items:center; min-width:0; gap:6px; min-height:38px; padding:7px 10px; color:#52605a !important; background:#f7f9f7; border:1px solid #dfe7e2; border-radius:10px; font-size:13px !important; font-weight:750; }.status-choice input { width:16px; min-height:16px; margin:0; accent-color:var(--green); }.status-choice:has(input:checked) { color:var(--green) !important; background:var(--green-soft); border-color:#b9e4ce; }
.initial-summary { margin-top:14px; }
.portfolio-summary { margin-top:18px; }.portfolio-summary .eyebrow { color:var(--muted); }.portfolio-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; }.portfolio-card { min-height:66px; padding:8px 6px; border-radius:12px; }.portfolio-card strong,.portfolio-card span,.portfolio-card small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.portfolio-card strong { font-size:19px; line-height:1; }.portfolio-card span { margin-top:5px; font-size:9px; font-weight:800; }.portfolio-card small { display:none; }.portfolio-card.total { color:#fff; background:#315548; }.portfolio-card.covered { color:var(--green); background:var(--green-soft); }.portfolio-card.one { color:var(--amber); background:var(--amber-soft); }.portfolio-card.two,.portfolio-card.three { color:var(--red); background:var(--red-soft); }
.portfolio-card.total span { white-space:normal; overflow:visible; text-overflow:clip; line-height:1.04; }
.client-results { margin-top:22px; }.client-pv-search { margin:-2px 0 10px; }.client-pv-search label { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:750; }.client-pv-search input { width:100%; min-height:44px; padding:0 11px; color:var(--ink); background:#f7f9f7; border:1px solid #dfe7e2; border-radius:10px; font:inherit; font-size:14px; }.client-list { display:grid; gap:8px; }.client-wrap { overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:13px; }.client { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; width:100%; padding:13px 14px; text-align:left; background:#fff; border:0; }.client strong,.client small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.client strong { font-size:14px; }.client small { margin-top:3px; color:var(--muted); font-size:12px; }.client-name-line { display:flex; align-items:center; gap:7px; min-width:0; }.client-name-line strong { min-width:0; }.client-state-icon { display:grid; flex:0 0 auto; place-items:center; width:28px; height:28px; border-radius:8px; font-size:17px; font-weight:900; }.client-state-icon.conforme { color:var(--green); background:var(--green-soft); border:1px solid #b9e4ce; }.client-state-icon.resta1,.client-state-icon.resta2,.client-state-icon.resta3 { color:var(--red); background:var(--red-soft); border:1px solid #f2c8c5; }.client .client-progress { color:var(--green); font-weight:700; }.client .client-status { color:var(--red); font-weight:750; }.client .client-status.conforme { color:var(--green); }.client .client-pv { padding:5px 7px; color:var(--green); background:var(--green-soft); border-radius:7px; font-size:12px; font-weight:800; }.client-detail { padding:13px; background:#f8fbf9; border-top:1px solid var(--line); }.client-detail-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:11px; }.client-detail-head strong { font-size:14px; }.slot-counts { color:var(--muted); font-size:12px; font-weight:700; }.slot-list { display:grid; gap:6px; }.slot { display:grid; grid-template-columns:28px minmax(0,1fr); align-items:center; gap:9px; min-height:43px; padding:8px; background:#fff; border:1px solid #e4eae6; border-radius:10px; }.slot-mark { display:grid; place-items:center; width:25px; height:25px; border:1px solid #d9e1dc; border-radius:7px; color:#7c8880; font-size:15px; font-weight:900; }.slot.sold .slot-mark { color:var(--green); background:var(--green-soft); border-color:#b9e4ce; }.slot.pending .slot-mark { color:var(--red); background:var(--red-soft); border-color:#f2c8c5; }.slot-name { display:block; font-size:13px; font-weight:750; }.client-more { padding:13px; color:var(--muted); text-align:center; background:#fff; border:1px dashed #ccd6d0; border-radius:13px; font-size:13px; }
.empty-state h2 { margin:8px 0 4px; color:var(--ink); font-size:19px; }
.empty-state p { margin:0; font-size:14px; line-height:1.5; }
.empty-icon { color:var(--green); font-size:35px; }
#result { padding-top:18px; }
.pv-card { padding:18px; background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 2px 10px #17211d08; }
.pv-card-top { display:flex; justify-content:space-between; gap:10px; }
.pv-label { margin:0 0 5px; color:var(--muted); font-size:13px; }.pv-label strong { color:var(--green); font-size:15px; }
.pv-card h2 { margin:0; font-size:19px; letter-spacing:-.02em; }.muted { margin:5px 0 0; color:var(--muted); font-size:13px; }
.visit-badge { align-self:flex-start; padding:6px 9px; color:var(--green); background:var(--green-soft); border-radius:999px; font-size:12px; font-weight:800; }
.facts { display:grid; grid-template-columns:1fr 1.5fr; gap:13px; margin:18px 0 0; padding-top:15px; border-top:1px solid var(--line); }.facts div { min-width:0; }.facts dt { color:var(--muted); font-size:11px; }.facts dd { margin:3px 0 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; font-weight:650; }
.summary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:14px 0 24px; }.summary { min-height:78px; padding:10px 5px; border:1px solid transparent; border-radius:14px; }.summary span,.summary small { display:block; }.summary span { font-size:25px; font-weight:850; }.summary small { margin-top:2px; font-size:11px; font-weight:700; }.summary.sold { color:var(--green); background:var(--green-soft); }.summary.pending { color:var(--red); background:var(--red-soft); }.summary.neutral { color:#65716a; background:#eef1ef; }.summary.active { border-color:currentColor; box-shadow:inset 0 0 0 1px currentColor; }
.section-head { display:flex; align-items:end; justify-content:space-between; margin-bottom:10px; }.section-head .eyebrow { color:var(--muted); }.section-head h2 { margin:0; font-size:19px; letter-spacing:-.02em; }.text-button { padding:4px 0; border:0; color:var(--green); background:transparent; font-size:13px; font-weight:800; }
.group-list { display:grid; gap:9px; }.group { display:grid; grid-template-columns:32px minmax(0,1fr) auto; align-items:center; gap:10px; padding:13px; background:#fff; border:1px solid var(--line); border-radius:14px; }.marker { display:grid; width:28px; height:28px; place-items:center; border-radius:50%; font-size:16px; font-weight:900; }.group.sold .marker { color:var(--green); background:var(--green-soft); }.group.pending .marker { color:var(--red); background:var(--red-soft); }.group.na .marker { color:#7a857e; background:#eef1ef; }.group h3 { margin:0; font-size:14px; line-height:1.25; }.group p { margin:3px 0 0; color:var(--muted); font-size:12px; }.volume { color:var(--muted); font-size:12px; font-weight:700; white-space:nowrap; }.empty-list { padding:22px; text-align:center; color:var(--muted); background:#fff; border:1px dashed #ccd6d0; border-radius:14px; font-size:14px; }
footer { padding:28px 4px 10px; color:#849087; text-align:center; font-size:11px; }
@media (min-width:701px) { .app-shell { padding-left:24px; padding-right:24px; }.hero { margin-left:-24px; margin-right:-24px; padding-left:28px; padding-right:28px; } }
