:root{--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--bg-1: #f8fafc;--bg-2: #eef1f6;--surface: #ffffff;--border: #e7eaf0;--border-strong: #d6dbe4;--text: #0f172a;--text-muted: #64748b;--accent: #4f46e5;--accent-2: #6366f1;--accent-press: #4338ca;--accent-soft: rgba(79, 70, 229, .08);--accent-ring: rgba(79, 70, 229, .35);--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .08);--success: #16a34a;--r-lg: 18px;--r-md: 12px;--r-sm: 10px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 8px 24px rgba(15, 23, 42, .06), 0 2px 6px rgba(15, 23, 42, .04);--shadow-lg: 0 18px 50px rgba(15, 23, 42, .1), 0 4px 12px rgba(15, 23, 42, .05);font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;color:var(--text);background:radial-gradient(1100px 560px at 50% -12%,var(--accent-soft),transparent 60%),linear-gradient(180deg,var(--bg-1) 0%,var(--bg-2) 100%);background-attachment:fixed}.wrap{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.wrap.wide{align-items:flex-start;padding-top:clamp(32px,8vh,72px)}.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:clamp(28px,5vw,44px);box-shadow:var(--shadow-lg);max-width:440px;width:100%}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:clamp(22px,4vw,32px);box-shadow:var(--shadow-lg);max-width:700px;width:100%}.brand{display:inline-flex;align-items:center;gap:12px}.logo{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:var(--r-md);background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:700;font-size:15px;letter-spacing:.02em;box-shadow:0 6px 16px #4f46e547}.brand-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.brand-name{font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.brand-sub{margin-top:3px;overflow:hidden;text-overflow:ellipsis}h1{margin:22px 0 6px;font-size:clamp(22px,4vw,26px);font-weight:700;letter-spacing:-.02em}.muted{color:var(--text-muted);font-size:14px;line-height:1.55}.small{font-size:13px}.ok,.error{font-size:14px;line-height:1.5;border-radius:var(--r-sm);padding:10px 12px;margin:4px 0 0}.ok{color:var(--success);background:#16a34a14}.error{color:var(--danger);background:var(--danger-soft);word-break:break-word}.form{display:flex;flex-direction:column;gap:9px;margin-top:22px}.form label{font-size:13px;font-weight:500;color:var(--text-muted)}.form input{padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:15px;font-family:inherit;color:var(--text);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.form input::placeholder{color:#9aa3b2}.form input:read-only{background:#f6f7f9;color:var(--text-muted)}.form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.form button{margin-top:6px}.switch{margin-top:18px}button{cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;border-radius:var(--r-sm);border:1px solid transparent;padding:12px 18px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 2px 6px #4f46e538;transition:transform .12s ease,box-shadow .2s ease,background-color .15s ease,opacity .15s ease}button:hover{transform:translateY(-1px);box-shadow:0 8px 18px #4f46e54d}button:active{transform:translateY(0);box-shadow:0 2px 6px #4f46e538}button:disabled{opacity:.55;cursor:default;transform:none;box-shadow:none}button.ghost{background:#fff;color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}button.ghost:hover{background:#f8fafc;border-color:#c3cad6;box-shadow:var(--shadow-sm)}button.link{background:none;border:none;color:var(--accent);padding:6px 10px;font-size:14px;box-shadow:none}button.link:hover{background:var(--accent-soft);transform:none;box-shadow:none}button.link.danger{color:var(--danger)}button.link.danger:hover{background:var(--danger-soft)}:where(button,input,a):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--border)}.head-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.badge{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(79,70,229,.22);border-radius:999px;padding:5px 11px;white-space:nowrap}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:22px 0 8px}.toolbar .count{margin-left:auto;font-size:13px;color:var(--text-muted);background:#f1f3f8;border:1px solid var(--border);border-radius:999px;padding:5px 12px;white-space:nowrap}.upload{position:relative;overflow:hidden;display:inline-flex;border-radius:var(--r-sm)}.upload input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.upload span{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-radius:var(--r-sm);padding:12px 18px;font-size:15px;font-weight:600;box-shadow:0 2px 6px #4f46e538;transition:transform .12s ease,box-shadow .2s ease}.upload:hover span{transform:translateY(-1px);box-shadow:0 8px 18px #4f46e54d}.icon{width:17px;height:17px;flex-shrink:0}.files{list-style:none;padding:0;margin:10px 0 0}.files li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 12px;border-radius:var(--r-md);border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease}.files li:hover{background:#f8fafc;border-color:var(--border)}.files li+li{margin-top:2px}.file-info{display:flex;flex-direction:column;min-width:0;gap:2px}.fname{font-size:15px;font-weight:500;color:var(--text);word-break:break-all}.fmeta{color:var(--text-muted)}.actions{display:flex;gap:4px;flex-shrink:0}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:44px 20px;margin-top:10px;border:1px dashed var(--border-strong);border-radius:var(--r-md);background:#fbfcfe}.empty .empty-icon{width:38px;height:38px;color:var(--accent);margin-bottom:6px}.empty p{margin:0}.empty .empty-title{font-size:15px;font-weight:600;color:var(--text)}.panel.panel-wide{max-width:920px}.tabs{display:flex;gap:4px;margin:18px 0 4px;border-bottom:1px solid var(--border)}.tab{background:none;border:none;box-shadow:none;color:var(--text-muted);font-size:15px;font-weight:600;padding:10px 14px;border-radius:0;border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{background:none;transform:none;box-shadow:none;color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.inv-switch{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 4px}.chip{background:#fff;color:var(--text);border:1px solid var(--border-strong);box-shadow:var(--shadow-sm);font-size:14px;padding:8px 14px}.chip:hover{background:#f8fafc;transform:none;box-shadow:var(--shadow-sm)}.chip.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-ring)}.prop-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:22px}.prop-name{margin:0;font-size:clamp(19px,3vw,23px);font-weight:700;letter-spacing:-.02em}.prop-addr{margin:4px 0 0}.prop-tags{display:flex;align-items:center;gap:10px;flex-shrink:0}.small-btn{padding:8px 14px;font-size:14px}.usage{font-size:12px;font-weight:600;letter-spacing:.02em;border-radius:999px;padding:5px 11px;white-space:nowrap;border:1px solid transparent}.usage.rented{color:var(--success);background:#16a34a1a;border-color:#16a34a38}.usage.owner_occupied{color:var(--accent);background:var(--accent-soft);border-color:#4f46e538}.usage.vacant{color:var(--text-muted);background:#f1f3f8;border-color:var(--border)}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:22px 0 6px}.metric{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--border);border-radius:var(--r-md);background:#fbfcfe}.metric-strong{background:var(--accent-soft);border-color:#4f46e52e}.metric-label{font-size:12.5px;font-weight:600;color:var(--text-muted)}.metric-value{font-size:21px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.metric-sub{font-size:12px;color:var(--text-muted)}.metric-value.pos,.kv-row dd.pos,.line-amount.pos{color:var(--success)}.metric-value.neg,.kv-row dd.neg,.line-amount.neg{color:var(--danger)}.prop-section{margin-top:26px}.prop-section-title{margin:0 0 10px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.kv{margin:0}.kv-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--border)}.kv-row:last-child{border-bottom:none}.kv-row dt{margin:0;font-size:14px;color:var(--text-muted)}.kv-row dd{margin:0;font-size:15px;font-weight:600;color:var(--text);text-align:right;white-space:nowrap}.kv-row.kv-strong dt{color:var(--text);font-weight:600}.kv-row.kv-strong dd{font-weight:700}.kv-row.kv-dim dt{padding-left:14px;font-size:13px}.kv-row.kv-dim dd{font-weight:500;color:var(--text-muted)}.kv-sub{font-weight:400}.lines{list-style:none;margin:0;padding:0}.lines li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--border)}.lines li:last-child{border-bottom:none}.line-label{font-size:14px;color:var(--text)}.line-amount{font-size:15px;font-weight:600;white-space:nowrap}.timeline{list-style:none;margin:0;padding:0}.tl-item{display:flex;gap:12px;padding:4px 0;position:relative}.tl-item:not(:last-child):before{content:"";position:absolute;left:5px;top:18px;bottom:-4px;width:2px;background:var(--border)}.tl-dot{width:12px;height:12px;border-radius:50%;margin-top:4px;flex-shrink:0;background:var(--text-muted);z-index:1}.tl-dot.rented{background:var(--success)}.tl-dot.owner_occupied{background:var(--accent)}.tl-dot.vacant{background:var(--border-strong)}.tl-body{display:flex;flex-direction:column;gap:1px;padding-bottom:10px}.tl-title{font-size:15px;font-weight:600}.edit-form{margin-top:18px;padding:18px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:#fbfcfe}.edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.edit-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:var(--text-muted)}.edit-grid input{padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:15px;font-family:inherit;color:var(--text);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.edit-grid input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.edit-actions{margin-top:14px;display:flex;justify-content:flex-end}@media (prefers-reduced-motion: reduce){*{transition:none!important}button:hover,.upload:hover span{transform:none}}@media (max-width: 480px){.panel-head{align-items:flex-start}.toolbar .count{margin-left:0}.prop-head{align-items:flex-start}.metric-value{font-size:19px}}
