@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;700;800&family=Space+Grotesk:wght@500;700&display=swap";:root{--font-base: "Manrope", "Segoe UI", sans-serif;--font-display: "Space Grotesk", "Segoe UI", sans-serif;--bg: #edf1f5;--surface: #ffffff;--surface-2: #f6f8fb;--line: #d8e0ea;--text: #132136;--text-muted: #5f6f82;--primary: #153c63;--primary-soft: #2a567f;--ok: #0e8f68;--danger: #b23f42;--shadow: 0 12px 35px rgba(12, 24, 44, .12)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-width:320px;background:radial-gradient(circle at 85% 10%,rgba(37,95,150,.18),transparent 45%),radial-gradient(circle at 5% 80%,rgba(33,151,129,.14),transparent 40%),var(--bg);color:var(--text);font-family:var(--font-base);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button,input{font-family:inherit}.app-shell{max-width:860px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in srgb,var(--surface) 85%,transparent)}.topbar-brand{display:flex;align-items:center;gap:.65rem}.brand-dot{width:.9rem;height:.9rem;border-radius:999px;background:linear-gradient(145deg,var(--primary),var(--ok));box-shadow:0 0 0 5px #255f961f}.topbar-headings{display:flex;flex-direction:column;gap:.1rem}.topbar-eyebrow{margin:0;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:700}.topbar-title{margin:0;font-family:var(--font-display);font-size:.94rem}.topbar-logout{border:1px solid var(--line);background:var(--surface);color:var(--primary);font-weight:700;border-radius:.65rem;padding:.45rem .8rem;cursor:pointer}.page-shell{flex:1;padding:1rem 1rem 6rem}.welcome-strip{border:1px solid var(--line);background:linear-gradient(145deg,var(--surface),var(--surface-2));border-radius:1rem;box-shadow:var(--shadow);padding:.8rem .95rem;margin-bottom:1rem}.welcome-label{margin:0;color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.welcome-name{margin:.18rem 0 0;font-size:1.03rem;font-family:var(--font-display);font-weight:700}.bottom-nav{position:fixed;left:0;right:0;bottom:0;max-width:860px;margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);gap:.3rem;border-top:1px solid var(--line);padding:.45rem .6rem calc(.45rem + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav-link{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.25rem;border-radius:.75rem;min-height:3.1rem;color:var(--text-muted);font-size:.66rem;font-weight:700;letter-spacing:.02em}.nav-link.is-active{color:var(--primary);background:#153c631a}.page-grid{display:grid;gap:1rem}.hero-card{border-radius:1rem;border:1px solid var(--line);background:linear-gradient(145deg,#184873f5,#103455f5),var(--surface);box-shadow:var(--shadow);padding:1.1rem;color:#f6fbff}.hero-card h2{margin:.28rem 0 .45rem;font-family:var(--font-display);font-size:1.35rem}.hero-card p{margin:0;line-height:1.45}.hero-label{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;font-weight:700;opacity:.8}.quick-actions{display:grid;gap:.75rem}.quick-action{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.88rem .95rem;border-radius:.9rem;border:1px solid var(--line);background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 96%,#fff),var(--surface-2));box-shadow:var(--shadow);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.quick-action:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 32%,#fff);box-shadow:0 15px 28px #0c182c29}.quick-action-main{display:flex;align-items:center;gap:.68rem;min-width:0}.quick-action-icon{width:2.05rem;height:2.05rem;border-radius:.6rem;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 12%,#fff);color:var(--primary);flex-shrink:0}.quick-action-copy{min-width:0;display:grid;gap:.14rem}.quick-action-copy strong{font-family:var(--font-display);font-size:.95rem}.quick-action-copy span{color:var(--text-muted);font-size:.82rem;line-height:1.35}.quick-action-arrow{width:1.8rem;height:1.8rem;border-radius:999px;display:grid;place-items:center;color:var(--primary);background:color-mix(in srgb,var(--primary) 9%,#fff);flex-shrink:0}.flow-header-card{border:1px solid var(--line);border-radius:1rem;background:var(--surface);box-shadow:var(--shadow);padding:1rem}.flow-header-card h2{margin:.3rem 0 .35rem;font-family:var(--font-display)}.flow-header-card p{margin:0;line-height:1.45;color:var(--text-muted)}.flow-stepper{display:grid;gap:.45rem;grid-template-columns:repeat(2,minmax(0,1fr))}.flow-step{border:1px solid var(--line);border-radius:.85rem;background:var(--surface);padding:.55rem .6rem;display:flex;align-items:center;gap:.42rem;min-height:2.8rem}.flow-step-index{width:1.35rem;height:1.35rem;border-radius:999px;display:grid;place-content:center;background:var(--surface-2);color:var(--text-muted);font-size:.68rem;font-weight:800}.flow-step-label{font-size:.76rem;font-weight:700;color:var(--text-muted)}.flow-step.is-current{border-color:color-mix(in srgb,var(--primary) 42%,#fff);background:color-mix(in srgb,var(--primary) 12%,#fff)}.flow-step.is-current .flow-step-index{background:var(--primary);color:#f4f8fc}.flow-step.is-current .flow-step-label{color:var(--primary)}.flow-step.is-done{border-color:color-mix(in srgb,var(--ok) 35%,#fff)}.flow-step.is-done .flow-step-index{background:var(--ok);color:#f4f8fc}.flow-step.is-done .flow-step-label{color:var(--text)}.flow-card{border:1px solid var(--line);border-radius:1rem;background:var(--surface);box-shadow:var(--shadow);padding:1rem;display:grid;gap:.85rem}.flow-card h3{margin:0;font-family:var(--font-display);font-size:1.06rem}.flow-hint{margin:0;color:var(--text-muted);font-size:.86rem}.field-grid{display:grid;gap:.72rem}.field-grid.two-cols{grid-template-columns:repeat(1,minmax(0,1fr))}.field-block{display:grid;gap:.35rem;color:var(--text-muted);font-size:.82rem;font-weight:700}.field-block.full-row{grid-column:1 / -1}.field-block input,.field-block select,.field-block textarea{width:100%;border:1px solid var(--line);border-radius:.72rem;padding:.62rem .68rem;background:var(--surface-2);color:var(--text);font-size:.9rem;outline:none}.field-block input:focus,.field-block select:focus,.field-block textarea:focus{border-color:var(--primary-soft)}.field-block textarea{resize:vertical}.inline-actions-row{display:flex;flex-wrap:wrap;gap:.55rem;align-items:end}.grow{flex:1}.inline-form-box{border:1px solid var(--line);border-radius:.9rem;background:var(--surface-2);padding:.85rem;display:grid;gap:.72rem}.flow-total{margin:0;font-size:.92rem;font-weight:800;color:var(--primary)}.flow-actions{display:flex;flex-wrap:wrap;gap:.5rem}.flow-primary-link{border:none;border-radius:.72rem;padding:.62rem .9rem;background:linear-gradient(145deg,var(--primary),var(--primary-soft));color:#f4f8fc;font-size:.88rem;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.flow-primary-link:disabled{opacity:.65;cursor:not-allowed}.sell-cta-button{width:100%;border:none;border-radius:.9rem;padding:.9rem 1rem;background:linear-gradient(145deg,#0f8a5f,#16a16f);color:#f4f8fc;font-size:1.2rem;font-weight:900;letter-spacing:.06em;cursor:pointer;box-shadow:0 10px 22px #0c5f454d}.sell-cta-button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.flow-link-inline{color:var(--primary);font-size:.84rem;font-weight:700}.flow-nav-bar{display:flex;align-items:center;justify-content:space-between;gap:.55rem;position:sticky;bottom:calc(4.5rem + env(safe-area-inset-bottom));z-index:7;border:1px solid var(--line);border-radius:.9rem;padding:.65rem .72rem;background:color-mix(in srgb,var(--surface) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 18px #0c182c24}.flow-card-lots-step{align-content:start}.lot-list-panel{border:1px solid var(--line);border-radius:.9rem;background:color-mix(in srgb,var(--surface-2) 88%,#fff);padding:.35rem}.lot-list-scroll{max-height:clamp(220px,38dvh,380px);overflow-y:auto;padding-right:.2rem}.lot-list,.client-list,.contract-list{list-style:none;margin:0;padding:0;display:grid;gap:.54rem}.lot-item,.client-item,.contract-item{border:1px solid var(--line);border-radius:.85rem;background:var(--surface-2)}.lot-item.is-selected,.client-item.is-selected,.contract-item.is-selected{border-color:color-mix(in srgb,var(--primary) 38%,#fff);background:color-mix(in srgb,var(--primary) 10%,#fff)}.lot-toggle,.client-toggle,.contract-toggle{width:100%;border:none;background:transparent;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.72rem .78rem;cursor:pointer;color:inherit}.lot-toggle:disabled{opacity:.58;cursor:not-allowed}.lot-toggle span,.client-toggle span,.contract-toggle span{display:grid;gap:.12rem}.lot-toggle strong,.client-toggle strong,.contract-toggle strong{font-size:.88rem;color:var(--text)}.lot-toggle small,.client-toggle small,.contract-toggle small{color:var(--text-muted);font-size:.74rem}.mini-map-wrap{border:1px solid var(--line);border-radius:.9rem;background:#f7fafc;overflow:hidden;contain:layout paint}.mini-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.55rem .6rem;border-bottom:1px solid var(--line);background:#f2f7fb}.mini-map-hint{margin:0;color:var(--text-muted);font-size:.74rem;font-weight:700}.mini-map-controls{display:flex;align-items:center;gap:.35rem}.mini-map-control-button{width:2rem;min-width:2rem;padding-inline:0}.mini-map-zoom{min-width:3.1rem;text-align:center;font-size:.78rem;font-weight:800;color:var(--text-muted)}.mini-map{width:100%;height:260px;display:block;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.mini-map.is-panning{cursor:grabbing}.lot-polygon{cursor:pointer;transition:opacity .12s ease}.lot-polygon:hover{opacity:.86}.receipt-preview{border:1px solid var(--line);border-radius:.9rem;overflow:hidden;background:var(--surface-2)}.receipt-preview-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.58rem .72rem;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 88%,#fff)}.receipt-preview-head strong{font-size:.82rem;font-family:var(--font-display)}.receipt-preview-head span{font-size:.74rem;color:var(--text-muted);font-weight:700}.receipt-preview-stage{padding:.7rem;overflow:auto;background:linear-gradient(145deg,#edf3f9,#e3ebf3)}.receipt-preview-sheet{width:min(100%,980px);margin:0 auto;border-radius:.7rem;overflow:hidden;background:#fff;box-shadow:0 12px 24px #0c182c2e}.receipt-preview-canvas{display:block;width:100%;height:auto}.summary-grid{margin:0;display:grid;gap:.54rem;grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:700;margin-bottom:.14rem}.summary-grid dd{margin:0;font-size:.84rem;font-weight:800;color:var(--text)}.map-layout-grid{display:grid;gap:.8rem}.map-surface{border:1px solid var(--line);border-radius:.95rem;overflow:hidden;background:#f4f8fb;contain:layout paint}.lot-map{width:100%;height:430px;display:block;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.lot-map.is-panning{cursor:grabbing}.map-side-panel{border:1px solid var(--line);border-radius:.95rem;background:var(--surface-2);padding:.75rem;display:grid;gap:.72rem;align-content:start}.map-side-panel h3{margin:0;font-family:var(--font-display);font-size:.98rem}.secondary-button{border:1px solid color-mix(in srgb,var(--line) 80%,#fff);background:color-mix(in srgb,var(--surface) 90%,#fff);color:var(--primary);border-radius:.7rem;padding:.5rem .75rem;font-size:.82rem;font-weight:800;cursor:pointer}.secondary-button:disabled{opacity:.65;cursor:not-allowed}.dashboard-hero{display:grid;gap:1rem}.dashboard-hero-main p{max-width:62ch}.dashboard-hero-meta{display:grid;gap:.45rem;align-content:start;border:1px solid rgba(255,255,255,.24);border-radius:.9rem;padding:.8rem;background:#09172652}.dashboard-hero-meta p{font-size:.82rem;opacity:.92}.warning-banner{border-radius:.9rem;border:1px solid color-mix(in srgb,var(--danger) 32%,#fff);background:color-mix(in srgb,var(--danger) 10%,#fff);color:var(--danger);box-shadow:var(--shadow);padding:.7rem .9rem;font-size:.84rem;font-weight:700}.warning-soft{border-color:color-mix(in srgb,var(--primary) 30%,#fff);background:color-mix(in srgb,var(--primary) 8%,#fff);color:var(--primary);display:grid;gap:.3rem}.warning-soft p{margin:0}.dashboard-kpis{display:grid;gap:.7rem;grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-card{border:1px solid var(--line);background:var(--surface);border-radius:.9rem;box-shadow:var(--shadow);padding:.85rem .9rem}.kpi-label{margin:0;color:var(--text-muted);font-size:.73rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700}.kpi-card strong{display:block;margin-top:.38rem;font-family:var(--font-display);font-size:1.06rem}.dashboard-section{border:1px solid var(--line);background:var(--surface);border-radius:1rem;box-shadow:var(--shadow);padding:.95rem;display:grid;gap:.75rem}.meta-section{gap:.82rem}.meta-grid{display:grid;gap:.58rem;grid-template-columns:repeat(1,minmax(0,1fr))}.meta-stat-card{border:1px solid var(--line);border-radius:.8rem;background:var(--surface-2);padding:.62rem .68rem}.meta-label{margin:0;color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700}.meta-stat-card strong{display:block;margin-top:.26rem;font-family:var(--font-display);font-size:.98rem}.meta-progress{width:100%;height:.78rem;border-radius:999px;background:#dbe5f0;overflow:hidden}.meta-progress-fill{height:100%;border-radius:inherit;transition:width .22s ease}.meta-progress-fill.is-good{background:linear-gradient(145deg,#0a9c6d,#0f8f73)}.meta-progress-fill.is-warning{background:linear-gradient(145deg,#ca9119,#e0a433)}.meta-progress-fill.is-critical{background:linear-gradient(145deg,#cb4f58,#a82c3e)}.meta-footer{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .62rem;color:var(--text-muted);font-size:.77rem;font-weight:700}.meta-status-pill{border-radius:999px;padding:.18rem .55rem;text-transform:uppercase;letter-spacing:.06em;font-size:.66rem;font-weight:800}.meta-status-pill.is-good{color:#065f46;background:#a7f3d0}.meta-status-pill.is-warning{color:#7c2d12;background:#fdba74}.meta-status-pill.is-critical{color:#7f1d1d;background:#fecaca}.section-head h3{margin:0;font-family:var(--font-display);font-size:1.02rem}.section-head p{margin:.24rem 0 0;color:var(--text-muted);font-size:.84rem}.task-list{list-style:none;margin:0;padding:0;display:grid;gap:.68rem}.task-item{border:1px solid var(--line);border-radius:.85rem;padding:.72rem .75rem;background:var(--surface-2);display:grid;gap:.7rem}.task-copy p{margin:0}.task-title{font-weight:800;font-size:.92rem}.task-subtitle{margin-top:.18rem;color:var(--text-muted);font-size:.8rem;line-height:1.4}.task-date{margin-top:.28rem;color:var(--text-muted);font-size:.76rem}.task-meta{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.task-badge{border-radius:999px;padding:.2rem .56rem;font-size:.69rem;font-weight:800;letter-spacing:.03em}.task-badge.is-high{color:#7f1d1d;background:#fecaca}.task-badge.is-medium{color:#7c4a03;background:#fde68a}.task-badge.is-low{color:#0f4b81;background:#bfdbfe}.task-link{font-size:.75rem;font-weight:800;color:var(--primary)}.weekly-grid{display:grid;gap:.55rem;grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-grid article{border:1px solid var(--line);background:var(--surface-2);border-radius:.82rem;padding:.62rem .7rem}.weekly-grid p{margin:0;color:var(--text-muted);font-size:.75rem}.weekly-grid strong{display:block;margin-top:.24rem;font-size:.94rem}.project-list{list-style:none;margin:0;padding:0;display:grid;gap:.58rem}.project-item{border:1px solid var(--line);border-radius:.85rem;padding:.68rem .75rem;background:var(--surface-2);display:flex;align-items:center;justify-content:space-between;gap:.6rem}.project-name{margin:0;font-weight:800;font-size:.88rem}.project-meta{margin:.15rem 0 0;color:var(--text-muted);font-size:.76rem}.project-values{text-align:right}.project-values p{margin:0;font-size:.86rem;font-weight:800}.project-values span{color:var(--text-muted);font-size:.72rem}.empty-copy{margin:0;color:var(--text-muted);font-size:.85rem;line-height:1.45}.placeholder-card{border:1px solid var(--line);border-radius:1rem;background:var(--surface);box-shadow:var(--shadow);padding:1rem}.placeholder-step{margin:0;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.7rem;font-weight:700}.placeholder-card h2{margin:.35rem 0;font-family:var(--font-display)}.placeholder-card p{margin:0;color:var(--text-muted);line-height:1.45}.profile-grid{display:grid;gap:.7rem;margin:1rem 0}.profile-grid dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-weight:700;margin-bottom:.2rem}.profile-grid dd{margin:0;font-weight:700}.danger-button{border:1px solid color-mix(in srgb,var(--danger) 35%,#fff);background:color-mix(in srgb,var(--danger) 10%,#fff);color:var(--danger);border-radius:.65rem;padding:.55rem .9rem;font-weight:700;cursor:pointer}.login-page{min-height:100dvh;display:grid;place-items:center;padding:1rem}.login-card{width:min(420px,100%);border:1px solid var(--line);border-radius:1.2rem;background:var(--surface);box-shadow:var(--shadow);padding:1.2rem 1rem}.login-badge{margin:0;display:inline-flex;align-items:center;border-radius:999px;background:#153c631a;color:var(--primary);font-size:.7rem;padding:.26rem .6rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.login-card h1{margin:.55rem 0 .2rem;font-family:var(--font-display);font-size:1.55rem}.login-subtitle{margin:0;color:var(--text-muted);line-height:1.45;font-size:.92rem}.login-form{margin-top:1rem;display:grid;gap:.75rem}.login-form label{display:grid;gap:.35rem;color:var(--text-muted);font-size:.84rem;font-weight:600}.login-form input{width:100%;border:1px solid var(--line);border-radius:.7rem;background:var(--surface-2);color:var(--text);padding:.65rem .72rem;outline:none}.login-form input:focus{border-color:var(--primary-soft)}.login-form button{margin-top:.25rem;border:none;border-radius:.75rem;background:linear-gradient(145deg,var(--primary),var(--primary-soft));color:#f4f8fc;padding:.7rem .9rem;font-size:.93rem;font-weight:800;cursor:pointer}.login-form button:disabled{opacity:.65;cursor:not-allowed}.login-error{border-radius:.6rem;border:1px solid color-mix(in srgb,var(--danger) 30%,#fff);background:color-mix(in srgb,var(--danger) 11%,#fff);color:var(--danger);font-size:.82rem;font-weight:700;padding:.55rem .7rem}.guard-loading{min-height:100dvh;display:grid;place-content:center;text-align:center;gap:.5rem;padding:1rem}.guard-loading h1{margin:0;font-family:var(--font-display);font-size:1.2rem}.guard-loading p{margin:0;color:var(--text-muted)}.loading-orb{width:2.4rem;height:2.4rem;border-radius:999px;margin:0 auto;border:3px solid rgba(21,60,99,.2);border-top-color:var(--primary);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:740px){.page-shell{padding:1.2rem 1.5rem 7rem}.topbar{padding-inline:1.5rem}.quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.flow-stepper{grid-template-columns:repeat(5,minmax(0,1fr))}.field-grid.two-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.map-layout-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.dashboard-hero{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:end}.dashboard-kpis,.meta-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.task-item{grid-template-columns:minmax(0,1fr) auto;align-items:center}.weekly-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
