:root{--bg: #eef1f6;--bg-accent: #e4e8ef;--surface: #ffffff;--ink: #1b2434;--muted: #6b7280;--line: rgba(27, 36, 52, .1);--brand: #1b2434;--brand-strong: #111827;--accent: #c9a227;--danger: #dc2626;--ok: #1f8a4c;--warn: #d97706;--info: #2563eb;--shadow: 0 10px 28px rgba(27, 36, 52, .07);--radius: 14px;--font: "DM Sans", "Segoe UI", sans-serif;--display: "DM Sans", "Segoe UI", sans-serif;--sidebar: #1b2434;color:var(--ink);background:var(--bg);font-family:var(--font);line-height:1.45;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{height:100%;max-width:100%}html,body{overflow-x:clip}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}h1,h2,.brand,.brand-mark{font-family:var(--display);letter-spacing:-.02em}h1{margin:.2rem 0 .35rem;font-size:clamp(1.7rem,4vw,2.2rem);line-height:1.15}h2{margin:0;font-size:1.15rem}.app-shell{height:100dvh;display:grid;grid-template-columns:248px minmax(0,1fr);background:var(--bg)}.sidebar{grid-column:1;height:100dvh;display:flex;flex-direction:column;gap:1rem;padding:1.15rem .85rem .9rem;background:var(--sidebar);color:#d7dde6;overflow:auto}.brand-link{display:block;padding:.15rem .35rem .85rem}.sidebar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.sidebar-close,.nav-scrim,.mobile-bar{display:none}.brand-lockup{display:flex;align-items:center;gap:.7rem}.brand-building{width:2.1rem;height:2.1rem;flex-shrink:0;color:var(--accent)}.brand{display:block;font-weight:700;color:#fff;font-size:.98rem;letter-spacing:.06em;text-transform:uppercase;line-height:1.1}.brand-sub{display:block;margin-top:.12rem;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#9aa6b6}.side-nav,.sidebar-footer{display:flex;flex-direction:column;gap:.2rem}.side-nav{flex:1}.side-link{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.68rem .8rem;border-radius:10px;font-weight:600;color:#b8c2d0}.side-link:hover{background:#ffffff0f;color:#fff}.side-link.active{background:var(--accent);color:#1b2434}.side-link .notif-badge{position:static;background:#dc2626}.side-link.active .notif-badge{background:#1b2434;color:#fff}.sidebar-footer{margin-top:auto;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.08)}.sidebar-user{display:grid;grid-template-columns:auto 1fr;gap:.35rem .65rem;padding:.45rem .35rem .1rem;align-items:center}.user-avatar{width:2rem;height:2rem;display:grid;place-items:center;border-radius:999px;background:#c9a22733;color:var(--accent);font-size:.75rem;font-weight:700}.user-meta{min-width:0}.user-name{color:#fff;font-weight:650;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{color:#9aa6b6;font-size:.75rem}.sidebar-logout{grid-column:1 / -1;justify-self:start;color:#9aa6b6}.app-version{margin-top:.45rem;padding:0 .35rem;color:#7a8796;font-size:.7rem;letter-spacing:.02em}.app-main{grid-column:2;min-width:0;height:100dvh;overflow:auto;background:var(--bg);display:flex;flex-direction:column}.content-top{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 1.5rem;background:#f7f8fb;border-bottom:1px solid var(--line)}.content-top-title{margin:0;font-size:clamp(1.35rem,2.4vw,1.75rem);font-weight:700;letter-spacing:-.03em}.content-top-sub{margin:.25rem 0 0;color:var(--muted);font-size:.95rem}.content-top-actions{display:flex;align-items:center;gap:.55rem;flex-shrink:0}.icon-btn{position:relative;width:2.4rem;height:2.4rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink)}.icon-btn:hover{border-color:#1b243438}.icon-bell,.icon-cal{width:1.05rem;height:1.05rem;display:block;border:1.8px solid currentColor}.icon-bell{border-radius:50%/42% 42% 58% 58%;position:relative}.icon-bell:after{content:"";position:absolute;top:-.28rem;left:50%;width:.28rem;height:.28rem;border:1.8px solid currentColor;border-radius:50%;transform:translate(-50%)}.icon-cal{border-radius:3px;position:relative}.icon-cal:before{content:"";position:absolute;top:.22rem;left:.12rem;right:.12rem;height:1.6px;background:currentColor}.btn-accent{background:var(--accent);color:#fff;border-radius:10px;padding:.65rem 1rem;white-space:nowrap}.btn-accent:hover{background:#b38e1c}.brand-mark{font-weight:700;color:var(--brand);font-size:1.05rem}.user-chip{color:var(--muted);font-size:.85rem}.page{width:min(1180px,100%);margin:0 auto;padding:1.4rem 1.35rem 2rem;overflow-x:clip}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.lede,.muted,.hint,.empty-hint,.list-meta{color:var(--muted)}.lede{margin:0}.hint{margin-top:1.25rem;font-size:.85rem}.filter-bar{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;justify-content:space-between;margin-bottom:1rem;padding:.9rem 1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.filter-bar label,.report-filters label{display:grid;gap:.35rem;font-weight:600;flex:1;min-width:180px}.filter-bar select,.filter-bar input,.report-filters select,.report-filters input{border:1px solid var(--line);border-radius:12px;padding:.7rem .85rem;background:#fff}.filter-total{display:grid;gap:.15rem}.report-filters{display:grid;gap:.9rem;padding:1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.preset-row{display:flex;flex-wrap:wrap;gap:.45rem}.report-summary .fact-value{display:block}.profit-ok{color:var(--ok)}.profit-bad{color:var(--danger)}.month-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.btn{border:0;border-radius:12px;padding:.7rem 1rem;cursor:pointer;font-weight:600;transition:transform .15s ease,background .15s ease,opacity .15s ease}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-strong)}.btn-secondary{background:#1b243414;color:var(--brand)}.btn-ghost{background:transparent;color:var(--muted);padding:.45rem .65rem}.btn-ghost.danger,.danger{color:var(--danger)}.card-list,.list{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}.entity-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.entity-link{display:block;padding:1rem 1.1rem .75rem}.entity-link h2{margin:.35rem 0;font-size:1.25rem}.entity-top{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.code{font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.row-actions{display:flex;gap:.25rem;padding:0 .6rem .6rem;justify-content:flex-end}.list-row{display:flex;align-items:stretch;gap:.35rem;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.35rem}.list-main{flex:1;text-align:left;border:0;background:transparent;padding:.7rem .75rem;border-radius:12px;cursor:pointer;display:grid;gap:.2rem;color:inherit}.list-title{font-weight:600;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.list-meta{font-size:.9rem}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.18rem .55rem;font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.tone-muted{background:#5d6f6624;color:var(--muted)}.tone-ok{background:#1f6b4a24;color:var(--ok)}.tone-warn{background:#9a6b1229;color:var(--warn)}.tone-info{background:#245a7824;color:var(--info)}.tone-danger{background:#9b2c2c1f;color:var(--danger)}.tabs{display:flex;gap:.4rem;margin-bottom:1rem;overflow-x:auto}.tabs button{border:1px solid var(--line);background:#ffffff8c;border-radius:999px;padding:.55rem .95rem;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap}.tabs button.active{background:var(--brand);border-color:var(--brand);color:#fff}.section{margin-bottom:1.5rem}.section-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem}.fact-label{display:block;color:var(--muted);font-size:.8rem}.fact-value{font-weight:650}.notes{white-space:pre-wrap;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.9rem 1rem}.empty{padding:1.4rem 1rem;border:1px dashed var(--line);border-radius:var(--radius);text-align:center;background:#ffffff59}.empty-title{margin:0;font-weight:650}.empty-hint{margin:.35rem 0 0}.banner{border-radius:12px;padding:.85rem 1rem;margin-bottom:1rem}.banner-error{background:#9b2c2c1a;color:var(--danger);border:1px solid rgba(155,44,44,.2)}.banner ul{margin:.4rem 0 0;padding-left:1.1rem}.back-link{display:inline-block;margin-bottom:.75rem;color:var(--brand);font-weight:600}.login-page{min-height:100dvh;display:grid;place-items:center;padding:max(1.25rem,env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) max(1.25rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));background:var(--sidebar)}.login-panel{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:0 1.4rem 1.4rem;animation:rise .45s ease both;overflow:hidden}.login-brand{width:calc(100% + 2.8rem);margin:0 -1.4rem 1rem;background:var(--sidebar);padding:1.1rem 1.4rem}.login-panel h1{margin-top:.15rem}.form{display:grid;gap:.85rem;margin-top:1rem}.form label{display:grid;gap:.35rem;font-weight:600;font-size:.92rem}.form input,.form select,.form textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:.75rem .85rem;background:#fff;color:var(--ink);font-size:16px}.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid rgba(201,162,39,.35);border-color:var(--accent)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#121c1873;display:flex;align-items:flex-end;justify-content:center;z-index:40;animation:fade .2s ease both}.sheet{width:min(640px,100%);max-height:min(92dvh,860px);overflow:auto;background:#fbfcfb;border-radius:22px 22px 0 0;box-shadow:var(--shadow);animation:slide-up .28s ease both}.sheet-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fbfcfb}.sheet-body{padding:1rem 1.1rem 1.4rem}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(24px)}to{transform:none}}@media(min-width:760px){.sheet-backdrop{align-items:center;padding:1.5rem}.sheet{border-radius:22px}.page{padding-bottom:2rem}}@media(max-width:759px){.app-shell{display:block;height:100dvh}.nav-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;border:0;padding:0;margin:0;background:#12182075;opacity:0;pointer-events:none;transition:opacity .2s ease}.app-shell.nav-open .nav-scrim{opacity:1;pointer-events:auto}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(18.5rem,86vw);z-index:50;transform:translate(-105%);transition:transform .22s ease;padding:.9rem .75rem max(.9rem,env(safe-area-inset-bottom));padding-left:max(.75rem,env(safe-area-inset-left))}.app-shell.nav-open .sidebar{transform:none}.sidebar-close{display:inline-flex;flex-shrink:0;background:transparent;border-color:#ffffff38;color:#fff;width:2.2rem;height:2.2rem}.brand-link{padding:.15rem .15rem .5rem}.app-main{width:100%;height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.app-shell.nav-open .app-main{overflow:hidden}.mobile-bar{display:flex;align-items:center;gap:.55rem;flex-shrink:0;padding:max(.55rem,env(safe-area-inset-top)) .75rem .55rem;background:#f7f8fb;border-bottom:1px solid var(--line)}.mobile-bar-brand{flex:1;min-width:0}.mobile-bar .brand{color:var(--ink);font-size:.9rem}.mobile-bar .brand-sub{color:var(--muted);letter-spacing:.12em}.mobile-bar .brand-building{width:1.7rem;height:1.7rem}.menu-icon{width:1.05rem;height:.78rem;display:block;background:linear-gradient(currentColor,currentColor) 0 0 / 100% 2px no-repeat,linear-gradient(currentColor,currentColor) 0 50% / 100% 2px no-repeat,linear-gradient(currentColor,currentColor) 0 100% / 100% 2px no-repeat}.content-top{flex-wrap:wrap;padding:.8rem .9rem;gap:.45rem}.content-top-sub,.content-top-actions{display:none}.content-top-title{font-size:1.2rem}.page{padding:1rem .85rem max(1.5rem,env(safe-area-inset-bottom))}.page-head{flex-direction:column;align-items:stretch}.apt-head{flex-wrap:wrap;align-items:flex-start}.apt-head-actions{width:100%;justify-content:flex-end}.proj-stages li{grid-template-columns:5.4rem minmax(0,1fr) 2.3rem;gap:.4rem;font-size:.82rem}.proj-overall{flex-wrap:wrap}.proj-facts{grid-template-columns:1fr}.progress-row{flex-wrap:wrap}.progress-meter{width:100%;justify-content:flex-end}.progress-bar{flex:1;width:auto}.cost-overview{justify-content:center}.table-wrap,.tabs,.apt-tabs{-webkit-overflow-scrolling:touch}}.section-sub{margin:.25rem 0 0;font-size:.9rem}.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.85rem}.menu-card-wrap{display:flex;flex-direction:column;gap:.25rem}.menu-card{display:grid;gap:.25rem;padding:1.15rem 1rem;min-height:140px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);transition:transform .15s ease,border-color .15s ease}.menu-card:hover{transform:translateY(-2px);border-color:#1f4d3a59}.menu-card-label{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.menu-card-title{font-family:var(--display);font-size:2rem;font-weight:700;line-height:1;color:var(--brand)}.menu-card-name{font-weight:600}.menu-card-meta{color:var(--muted);font-size:.9rem;margin-top:auto}.menu-card-actions{display:flex;justify-content:flex-end}.floor-block.flat{background:transparent;border:0;padding:0}.form-hint{margin:-.35rem 0 0}.floor-board{display:grid;gap:1.25rem}.floor-legend{display:flex;flex-wrap:wrap;gap:.45rem}.legend-item{font-size:.75rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;padding:.28rem .55rem;border-radius:999px;border:1px solid var(--line)}.floor-block{background:#ffffff73;border:1px solid var(--line);border-radius:var(--radius);padding:.9rem}.floor-title{margin:0 0 .75rem;font-family:var(--display);font-size:1.05rem}.apt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.7rem}.apt-tile{border-radius:14px;border:1px solid var(--line);background:#fff;overflow:hidden;display:flex;flex-direction:column;min-height:148px;transition:transform .15s ease,box-shadow .15s ease}.apt-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.apt-link{display:grid;gap:.35rem;padding:.8rem .75rem .55rem;flex:1}.apt-code{font-family:var(--display);font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.apt-meta{display:grid;gap:.1rem;color:var(--muted);font-size:.82rem}.apt-actions{display:flex;justify-content:flex-end;gap:.1rem;padding:0 .25rem .35rem;border-top:1px solid var(--line)}.apt-available{background:#1f6b4a1a}.apt-reserved{background:#9a6b121f}.apt-sold{background:#245a781f}.apt-building{background:#5d6f661a}.apt-other{background:#ffffffe6}.legend-item.apt-available{background:#1f6b4a1f;color:var(--ok)}.legend-item.apt-reserved{background:#9a6b1224;color:var(--warn)}.legend-item.apt-sold{background:#245a781f;color:var(--info)}.legend-item.apt-building{background:#5d6f661f;color:var(--muted)}.inline-field{display:grid;gap:.35rem;font-weight:600;max-width:280px}.inline-field select{border:1px solid var(--line);border-radius:12px;padding:.7rem .85rem;background:#fff}.sale-summary{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.95rem 1rem;display:grid;gap:.45rem}.pay-chip{display:inline-flex;align-items:center;border-radius:999px;padding:.18rem .55rem;font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.pay-cash{background:#1f6b4a24;color:var(--ok)}.pay-installments{background:#c45c2624;color:var(--accent)}.breadcrumbs{margin-bottom:.85rem}.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.35rem .5rem;list-style:none;margin:0;padding:0;font-size:.88rem;color:var(--muted)}.breadcrumbs li:not(:last-child):after{content:"/";margin-left:.5rem;opacity:.55}.breadcrumbs a{color:var(--brand);font-weight:600}.breadcrumbs a:hover{text-decoration:underline}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-bottom:1.25rem}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.05rem;box-shadow:var(--shadow);display:grid;gap:.2rem}.stat-card .fact-value{font-size:1.55rem;font-weight:700;font-family:var(--display);color:var(--ink)}.dash-board{display:grid;grid-template-columns:1fr;gap:1rem}.dash-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.05rem 1.1rem 1.15rem}.progress-list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.progress-row{display:flex;align-items:center;gap:.75rem;padding:.55rem .35rem;border-radius:10px}.progress-row:hover{background:#1b24340a}.progress-mark{width:2.4rem;height:2.4rem;display:grid;place-items:center;border-radius:8px;background:#c9a22729;color:var(--accent);font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}.progress-copy{flex:1;min-width:0;display:grid}.progress-meter{display:flex;align-items:center;gap:.65rem;flex-shrink:0}.progress-bar{width:5.5rem;height:.45rem;border-radius:999px;background:#eceff4;overflow:hidden}.progress-bar span{display:block;height:100%;background:var(--accent)}.progress-pct{flex-shrink:0;font-weight:700;font-size:.9rem;color:var(--ink);min-width:2.4rem;text-align:right}.cost-overview{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.cost-ring{width:8.5rem;height:8.5rem;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.cost-ring-inner{width:5.9rem;height:5.9rem;border-radius:50%;background:var(--surface);display:grid;place-items:center;text-align:center}.cost-ring-inner strong{font-size:.95rem}.cost-legend{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.cost-legend li{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.9rem}.swatch{width:.7rem;height:.7rem;border-radius:999px}.swatch-spent{background:var(--accent)}.swatch-ok{background:var(--ok)}.swatch-muted{background:#cbd5e1}.compact-list{gap:.55rem}.notif-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:12px;background:#1b243414;color:var(--brand)}.notif-icon{width:.95rem;height:.95rem;border:2px solid currentColor;border-radius:50%/40% 40% 60% 60%;position:relative}.notif-icon:after{content:"";position:absolute;top:-.28rem;left:50%;width:.28rem;height:.28rem;border:2px solid currentColor;border-radius:50%;transform:translate(-50%)}.notif-badge{position:absolute;top:-.25rem;right:-.25rem;min-width:1.15rem;height:1.15rem;padding:0 .28rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.68rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1}.gallery-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.gallery-thumb{display:grid;gap:.4rem;width:100%;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;cursor:pointer;text-align:left;color:var(--muted);font-size:.78rem;font-weight:600}.gallery-thumb img{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block;background:var(--bg-accent)}.gallery-thumb span{padding:0 .65rem .55rem}.summary-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}.summary-chip{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:999px;background:#1f4d3a14;color:var(--brand);font-size:.8rem;font-weight:650}.summary-chip.chip-ok{background:#1f6b4a24;color:var(--ok)}.summary-chip.chip-warn{background:#9a6b1224;color:var(--warn)}.summary-chip.chip-info{background:#245a7824;color:var(--info)}.page-head-actions{display:flex;flex-wrap:wrap;gap:.5rem}.empty-actions{margin-top:.85rem}.alert-type{display:inline-flex;margin-right:.45rem;padding:.12rem .45rem;border-radius:999px;background:#c45c261f;color:var(--accent);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.plan-form{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.checkbox-row{display:flex!important;align-items:center;gap:.55rem;font-weight:600}.checkbox-row input{width:auto}@media(max-width:520px){.page-head{flex-direction:column}.form-row,.facts{grid-template-columns:1fr}.apt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.month-grid,.dashboard-grid{grid-template-columns:1fr}}@media(min-width:760px){.dashboard-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.dash-board{grid-template-columns:1.15fr .85fr}}.apt-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.85rem}.apt-head-left{display:flex;align-items:center;gap:.7rem;min-width:0}.apt-back{font-size:1.1rem}.apt-title{margin:0;font-size:clamp(1.35rem,2.4vw,1.8rem);text-transform:uppercase;letter-spacing:.02em}.apt-head-actions{display:flex;align-items:center;gap:.45rem}.apt-more{position:relative}.apt-more-menu{position:absolute;right:0;top:calc(100% + .4rem);min-width:12rem;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:.45rem;display:grid;gap:.25rem;z-index:12}.apt-more-menu a,.apt-more-menu button{text-align:left;background:none;border:0;padding:.55rem .65rem;border-radius:8px;cursor:pointer;font-weight:600}.apt-more-menu a:hover,.apt-more-menu button:hover{background:#1b24340d}.apt-more-menu label{display:grid;gap:.3rem;padding:.35rem .65rem;font-size:.85rem}.apt-tabs{display:flex;gap:.35rem;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:1.15rem}.apt-tabs button{border:0;background:none;padding:.7rem .85rem;color:var(--muted);font-weight:650;white-space:nowrap;cursor:pointer;border-bottom:2px solid transparent}.apt-tabs button.active{color:var(--ink);border-bottom-color:var(--accent)}.apt-overview{display:grid;grid-template-columns:1fr;gap:1rem}.apt-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem}.apt-card h2{margin-bottom:.9rem}.plan-card{padding:.75rem;display:flex;flex-direction:column;min-height:320px}.plan-stage{flex:1;min-height:240px;display:grid;place-items:center;background:#f6f7fa;border-radius:10px;overflow:hidden}.plan-image{width:100%;height:280px;object-fit:contain;background:#fff}.plan-svg{width:min(100%,320px);height:auto}.plan-hint{margin:.4rem 0 0;text-align:center;color:var(--muted);font-size:.8rem}.plan-toolbar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .35rem .2rem}.plan-floor{border:1px solid var(--line);border-radius:8px;padding:.4rem .7rem;font-weight:650;background:#fff}.detail-list{margin:0;display:grid;gap:.7rem}.detail-list div{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.detail-list dt{color:var(--muted);font-size:.88rem}.detail-list dd{margin:0;font-weight:650;text-align:right}.pay-card{display:grid;justify-items:center}.pay-card h2,.pay-card .detail-list,.pay-card .btn{width:100%}.pay-ring{width:8.6rem;height:8.6rem;border-radius:50%;display:grid;place-items:center;margin:.25rem 0 1rem}.pay-ring-inner{width:6.2rem;height:6.2rem;border-radius:50%;background:#fff;display:grid;place-content:center;text-align:center}.pay-ring-inner strong{font-size:1.35rem;line-height:1}.pay-ring-inner span{color:var(--muted);font-size:.78rem}.btn-outline-accent{background:#fff;color:var(--accent);border:1.5px solid var(--accent);margin-top:1rem}.btn-outline-accent:hover{background:#c9a22714}@media(min-width:980px){.apt-overview{grid-template-columns:1.2fr .9fr .85fr;align-items:start}}.proj-overview{display:grid;grid-template-columns:1fr;gap:1rem}.proj-summary{padding:.75rem}.proj-hero{border-radius:12px;overflow:hidden;height:220px;background:#dfe3ea;margin-bottom:1rem}.proj-hero img{width:100%;height:100%;object-fit:cover}.proj-hero-fallback{height:100%;display:grid;place-items:center;color:var(--accent);background:linear-gradient(160deg,#1b2434,#3d4a63)}.proj-hero-fallback svg{width:4.5rem;height:4.5rem}.proj-facts{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem;padding:0 .35rem}.proj-facts dt{color:var(--muted);font-size:.8rem}.proj-facts dd{margin:.15rem 0 0;font-weight:700}.proj-manager{display:flex;align-items:center;gap:.7rem;margin-top:1.1rem;padding:.85rem .35rem .25rem;border-top:1px solid var(--line)}.proj-manager .user-avatar{background:#c9a2272e}.proj-overall{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.1rem}.proj-overall-control{flex:1;min-width:0}.proj-overall-pct{font-size:2.2rem;font-weight:800;line-height:1}.proj-overall-bar,.proj-slider-wrap{display:block;margin-top:.7rem;max-width:18rem}.proj-bar-hit{position:relative;display:flex;align-items:center;height:1.25rem}.proj-bar-fill{display:block;width:100%;height:.55rem;border-radius:999px;background:#eceff4;overflow:hidden}.proj-bar-fill span{display:block;height:100%;background:var(--accent)}.proj-bar-fill-ok span{background:var(--ok)}.proj-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;background:transparent;outline:none;cursor:pointer;touch-action:none}.proj-slider:disabled{cursor:default}.proj-slider::-webkit-slider-runnable-track{background:transparent;height:.55rem}.proj-slider::-moz-range-track{background:transparent;height:.55rem;border:none}.proj-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1.2rem;height:1.2rem;margin-top:-.325rem;border-radius:999px;background:var(--accent);border:2px solid #fff;box-shadow:0 0 0 1px #1b24342e;cursor:grab}.proj-slider::-moz-range-thumb{width:1.2rem;height:1.2rem;border-radius:999px;background:var(--accent);border:2px solid #fff;box-shadow:0 0 0 1px #1b24342e;cursor:grab}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.proj-bar,.proj-stage-bar{height:.55rem;border-radius:999px;background:#eceff4;overflow:hidden}.proj-bar{width:12rem;max-width:100%;margin-top:.55rem}.proj-bar span{display:block;height:100%;background:var(--accent)}.proj-stage-bar{flex:1}.proj-stage-bar span{display:block;height:100%;background:var(--ok)}.proj-stages{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}.proj-stages li{display:grid;grid-template-columns:7.5rem 1fr 2.6rem;gap:.65rem;align-items:center;font-size:.9rem}.proj-stages .proj-slider-wrap{margin-top:0;max-width:none}.proj-stages strong{text-align:right}@media(min-width:900px){.proj-overview{grid-template-columns:1.05fr .95fr;align-items:start}.proj-hero{height:260px}}
