:root{--ink:#12352f;--ink-soft:#1f4a42;--moss:#7fbf9a;--gold:#e8c468;--paper:#edf2ef;--paper-lift:#ffffffb8;--danger:#b55345;--text:#18332e;--muted:#5d736c;--line:#12352f24;--shadow:0 18px 44px #12352f1f;--radius:20px;--font-display:"Sora", system-ui, sans-serif;--font-body:"Source Sans 3", system-ui, sans-serif;color:var(--text);background:var(--paper);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100dvh;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0);overscroll-behavior-y:contain;background:radial-gradient(circle at 10% 12%,#7fbf9a47,#0000 32%),radial-gradient(circle at 90% 8%,#e8c46838,#0000 28%),linear-gradient(165deg,#e8efea 0%,#dce7e1 42%,#f2efe6 100%)}button,input,textarea,select,a.btn{font:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,a.btn{cursor:pointer}input,textarea,select{font-size:16px}a{color:var(--ink-soft)}.brand-mark{font-family:var(--font-display);letter-spacing:-.045em;color:var(--ink);margin:0 0 .35rem;font-size:clamp(2rem,5vw,3.25rem);font-weight:800;line-height:.95}.brand-mark-compact{letter-spacing:-.02em;margin-bottom:.2rem;font-size:.95rem}h1{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink-soft);margin:0;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:700}h2{font-family:var(--font-display);margin:0 0 .75rem;font-size:1.05rem;font-weight:700}.page-sub,.login-sub{color:var(--muted);max-width:34rem;margin:.5rem 0 0;line-height:1.5}.btn{text-align:center;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:.78rem 1.2rem;font-weight:600;text-decoration:none;transition:transform .16s,background .16s,border-color .16s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transform:scale(.98)}.btn-primary{background:var(--ink);color:#f4fff9}a.btn-primary{color:#f4fff9}.btn-primary:hover{background:var(--ink-soft)}.btn-ghost{border-color:var(--line);color:var(--ink);background:#ffffff80}.btn-danger{color:var(--danger);background:#b553451a;border-color:#b5534547}.btn-small{min-height:40px;padding:.55rem .95rem;font-size:.92rem}.app-shell{width:min(1080px,100% - 1.25rem);padding:1.35rem 0 calc(2.5rem + env(safe-area-inset-bottom,0px));margin:0 auto;animation:.48s cubic-bezier(.22,1,.36,1) both rise-in}.app-shell.narrow{width:min(760px,100% - 1.25rem)}.page-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.35rem;display:flex}.page-header.compact{margin-bottom:1.1rem}.header-actions{flex-wrap:wrap;gap:.5rem;display:flex}.stat-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.stat{background:var(--paper-lift);border:1px solid #ffffffbf;border-radius:16px;gap:.25rem;padding:1rem 1.1rem;display:grid;box-shadow:0 10px 24px #12352f0f}.stat strong{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);font-size:1.45rem}.stat-label{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:.78rem;font-weight:700}.list-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.9rem;display:flex}.list-toolbar h2{margin:0}.list-toolbar h2 span{color:var(--muted);font-family:var(--font-body);font-size:.95rem;font-weight:500}.search-input,.property-form input,.property-form textarea,.property-form select,.login-form input,.contact-editor input,.contact-editor textarea,.contact-editor select{border:1px solid var(--line);width:100%;min-height:48px;color:var(--text);background:#ffffffe6;border-radius:14px;outline:none;padding:.85rem 1rem;transition:border-color .16s,box-shadow .16s}.search-input{width:min(300px,100%);min-height:44px;padding:.65rem .9rem}.property-form input:focus,.property-form textarea:focus,.property-form select:focus,.login-form input:focus,.search-input:focus,.contact-editor input:focus,.contact-editor textarea:focus,.contact-editor select:focus{border-color:var(--moss);box-shadow:0 0 0 3px #7fbf9a47}.property-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.property-card{background:#ffffffbd;border:1px solid #ffffffd9;border-radius:18px;flex-direction:column;transition:transform .18s,box-shadow .18s;display:flex;overflow:hidden;box-shadow:0 12px 28px #12352f14}.property-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.property-card-main{text-align:left;color:inherit;background:0 0;border:0;flex:1;gap:.45rem;padding:1.15rem 1.15rem .85rem;display:grid}.building-name{font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em;font-size:1.15rem;font-weight:700}.building-address{color:var(--muted);font-size:.95rem}.card-meta{color:var(--muted);gap:.2rem;font-size:.92rem;display:grid}.card-meta em{color:var(--text);font-style:normal;font-weight:600}.price-row{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:.75rem;margin-top:.35rem;padding-top:.7rem;font-size:.9rem;display:flex}.price-row-three{flex-wrap:wrap}.price-row-three span{flex:30%;min-width:5.5rem}.price-row strong{color:var(--ink);font-family:var(--font-display);margin-top:.1rem;font-size:1.05rem;display:block}.updated{color:var(--muted);font-size:.8rem}.updated.muted{margin-top:.85rem}.card-actions{justify-content:flex-end;gap:.4rem;padding:0 1rem 1rem;display:flex}.card-actions.inline{justify-content:flex-start;padding:.65rem 0 0}.contacts-panel{gap:.9rem;margin-top:.5rem;display:grid}.contacts-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.filter-pills{flex-wrap:wrap;gap:.4rem;display:flex}.pill{border:1px solid var(--line);color:var(--ink);background:#ffffff8c;border-radius:999px;padding:.45rem .9rem;font-size:.9rem;font-weight:600}.pill.is-active{background:var(--ink);border-color:var(--ink);color:#f4fff9}.contact-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.contact-card{background:#ffffffbd;border:1px solid #ffffffd9;border-radius:16px;gap:.45rem;padding:1rem 1.05rem;display:grid;box-shadow:0 10px 24px #12352f12}.contact-card-top{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.type-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.72rem;font-weight:700;display:inline-flex}.type-badge.type-owner{color:#6d5310;background:#e8c46847}.type-badge.type-agent{color:#1f4a42;background:#7fbf9a47}.lang-badge{color:var(--ink-soft);background:#12352f14}.wa-actions-top{top:calc(.5rem + env(safe-area-inset-top,0px));z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#e8efeaf5 40%,#e8efeab3 100%);margin-bottom:1rem;padding:.35rem 0;position:sticky}.wa-list{gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.wa-card{background:#ffffffc7;border:1px solid #ffffffd9;border-radius:16px;gap:.55rem;padding:1.1rem 1.15rem;display:grid;box-shadow:0 10px 24px #12352f12}.wa-card-head{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.wa-card-head strong{font-family:var(--font-display);color:var(--ink)}.wa-phone{color:var(--muted);margin:0;font-size:.92rem}.wa-preview{white-space:pre-wrap;font-family:var(--font-body);color:var(--text);background:#12352f0d;border-radius:12px;margin:0;padding:.85rem .95rem;font-size:.95rem;line-height:1.5}.history-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.history-card{background:#ffffffc7;border:1px solid #ffffffd9;border-radius:16px;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.1rem;display:flex;box-shadow:0 10px 24px #12352f12}.history-main{gap:.35rem;min-width:0;display:grid}@media (width<=720px){.history-card{flex-direction:column}}.property-form select,.contact-editor select{border:1px solid var(--line);width:100%;color:var(--text);background:#ffffffe6;border-radius:14px;outline:none;padding:.8rem 1rem}.contact-name{font-family:var(--font-display);color:var(--ink);font-size:1.05rem}.contact-lines{color:var(--muted);gap:.15rem;font-size:.92rem;display:grid}.contact-notes{color:var(--text);margin:0;font-size:.92rem;line-height:1.4}.contact-editor{background:#fffc;border:1px solid #ffffffd9;border-radius:18px;gap:.85rem;padding:1.15rem 1.2rem;display:grid;box-shadow:0 12px 28px #12352f14}.contact-editor-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.contact-editor-head h2{margin:0}.contact-editor select{border:1px solid var(--line);width:100%;color:var(--text);background:#ffffffe6;border-radius:14px;outline:none;padding:.8rem 1rem}.building-notes{margin-bottom:.4rem}.empty-state.compact{padding:1.5rem 1rem}.detail-stats{margin-bottom:1rem}.empty-state{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius);background:#ffffff59;justify-items:center;gap:.45rem;padding:2.4rem 1.2rem;display:grid}.empty-state p{margin:0}.login-page{place-items:center;min-height:100vh;padding:2rem;display:grid;position:relative;overflow:hidden}.login-atmosphere{pointer-events:none;background:radial-gradient(circle at 28% 38%,#7fbf9a57,#0000 28%),radial-gradient(circle at 72% 58%,#e8c46842,#0000 26%);animation:14s ease-in-out infinite alternate drift;position:absolute;inset:-20%}.login-columns{pointer-events:none;background:repeating-linear-gradient(90deg,#12352f09 0 1px,#0000 1px 48px);position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000 30%,#0000 78%);mask-image:radial-gradient(circle,#000 30%,#0000 78%)}.login-panel{border-radius:calc(var(--radius) + 4px);width:min(440px,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffc2;border:1px solid #ffffffbf;padding:2.4rem 2rem 2rem;animation:.56s cubic-bezier(.22,1,.36,1) both rise-in;position:relative}.login-panel.is-shaking{animation:.42s shake}.login-panel h1{margin-top:.85rem;font-size:1.3rem;font-weight:600}.login-form{gap:.55rem;margin-top:1.55rem;display:grid}.login-form label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:700}.login-form .btn{width:100%;margin-top:.35rem}.form-error{color:var(--danger);margin:0;font-size:.92rem}.banner-error{background:#b553451a;border-radius:12px;margin:0 0 1rem;padding:.75rem 1rem}.property-form{gap:1rem;display:grid}.form-section,.contact-fieldset,.detail-block{background:#ffffffb8;border:1px solid #fffc;border-radius:18px;margin:0;padding:1.15rem 1.2rem;box-shadow:0 10px 24px #12352f0f}.contact-fieldset{border:1px solid #fffc}.contact-fieldset legend{font-family:var(--font-display);color:var(--ink);padding:0 .35rem;font-size:1.05rem;font-weight:700}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.field-grid label{color:var(--muted);letter-spacing:.02em;gap:.4rem;font-size:.84rem;font-weight:700;display:grid}.field-grid .span-2{grid-column:1/-1}.property-form textarea{resize:vertical;min-height:110px}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:.55rem;display:flex}.detail-layout{gap:.9rem;display:grid}.pricing-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.pricing-pair>div{background:#12352f0d;border-radius:14px;gap:.25rem;padding:.9rem 1rem;display:grid}.pricing-pair strong{font-family:var(--font-display);color:var(--ink);letter-spacing:-.03em;font-size:1.55rem}.detail-list{gap:.7rem;margin:0;display:grid}.detail-list>div{gap:.15rem;display:grid}.detail-list dt{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:.78rem;font-weight:700}.detail-list dd{color:var(--ink);margin:0;font-size:1.05rem;font-weight:600}.notes-body{white-space:pre-wrap;color:var(--text);margin:0;line-height:1.55}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(2%,-2%)scale(1.05)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}@media (width<=720px){.brand-mark{font-size:clamp(1.7rem,9vw,2.35rem)}.brand-mark-compact{font-size:.88rem}h1{font-size:1.28rem}.page-sub,.login-sub{font-size:.95rem}.stat-row,.field-grid,.pricing-pair,.property-grid,.contact-list{grid-template-columns:1fr}.stat-row{gap:.55rem}.stat{padding:.85rem .95rem}.stat strong{font-size:1.25rem}.page-header{flex-direction:column;align-items:stretch;gap:.85rem}.header-actions{grid-template-columns:1fr 1fr;gap:.5rem;width:100%;display:grid}.header-actions .btn{width:100%}.header-actions .btn-primary{grid-column:1/-1}.list-toolbar{flex-direction:column;align-items:stretch}.search-input{width:100%}.contacts-toolbar{flex-direction:column;align-items:stretch}.filter-pills{width:100%}.pill{flex:auto;justify-content:center;align-items:center;min-height:40px;display:inline-flex}.contacts-toolbar .header-actions{grid-template-columns:1fr 1fr}.contacts-toolbar .header-actions .btn-primary{grid-column:auto}.form-actions{flex-direction:column-reverse;align-items:stretch}.form-actions .btn{width:100%}.card-actions{justify-content:stretch;padding:0 .9rem .9rem}.card-actions .btn,.card-actions.inline .btn{flex:1}.card-actions.inline{width:100%}.property-card-main,.form-section,.contact-editor,.detail-block,.wa-card,.history-card{padding-left:.95rem;padding-right:.95rem}.login-page{align-items:center;min-height:100dvh;padding:1rem}.login-panel{width:100%;padding:1.6rem 1.2rem 1.35rem}.wa-actions-top .btn,.wa-card .btn{width:100%;min-height:48px}.wa-preview{max-height:9.5rem;font-size:.92rem;overflow:auto}.price-row,.price-row-three{flex-direction:column;align-items:stretch;gap:.45rem}.price-row-three span{flex:auto;min-width:0}.contact-editor-head{flex-direction:column;align-items:stretch}.history-card{flex-direction:column}.empty-state .btn{width:100%}}@media (width<=420px){.header-actions{grid-template-columns:1fr}.header-actions .btn-primary{grid-column:auto}.filter-pills{grid-template-columns:1fr 1fr 1fr;display:grid}.pill{padding:.45rem .35rem;font-size:.82rem}}
