.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:40px;padding:0 1rem;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .05s ease}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[disabled],.btn[aria-disabled=true]{background:var(--surface-2)!important;border-color:var(--border)!important;color:var(--text-faint)!important;cursor:not-allowed;box-shadow:none!important;transform:none!important;pointer-events:none}.btn--primary{background:var(--accent);color:var(--accent-contrast)}.btn--primary:hover:not(:disabled){background:var(--accent-strong)}.btn--stroked{border-color:var(--border-strong)}.btn--stroked:hover:not(:disabled){background:var(--surface-hover)}.btn--ghost{color:var(--text-muted)}.btn--ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn--danger{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.btn--danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 22%,transparent)}.btn--sm{height:32px;padding:0 .7rem;font-size:.8rem}.btn--block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;transition:background-color .15s ease,color .15s ease}.icon-btn:hover{background:var(--surface-hover);color:var(--text)}.icon-btn--active{color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1)}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:var(--radius-pill);font-size:var(--fs-label);font-weight:var(--fw-semibold);letter-spacing:.02em;background:var(--surface-2);color:var(--text-muted)}.badge--success{background:color-mix(in srgb,var(--success) 16%,transparent);color:var(--success)}.badge--error{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}.badge--status[data-status=Open]{background:color-mix(in srgb,var(--state-open) 16%,transparent);color:var(--state-open)}.badge--status[data-status=Scheduled]{background:color-mix(in srgb,var(--state-scheduled) 16%,transparent);color:var(--state-scheduled)}.badge--status[data-status=Closed]{background:color-mix(in srgb,var(--state-closed) 16%,transparent);color:var(--state-closed)}.badge--status[data-status=Suspended]{background:color-mix(in srgb,var(--state-suspended) 16%,transparent);color:var(--state-suspended)}.badge--status[data-status=Unknown]{background:color-mix(in srgb,var(--state-unknown) 16%,transparent);color:var(--state-unknown)}.badge--category[data-category=Residential]{background:color-mix(in srgb,var(--cat-residential) 15%,transparent);color:var(--cat-residential)}.cat-dot[data-category=Residential],.cat-bar[data-category=Residential]{background:var(--cat-residential)}.badge--category[data-category=Commercial]{background:color-mix(in srgb,var(--cat-commercial) 15%,transparent);color:var(--cat-commercial)}.cat-dot[data-category=Commercial],.cat-bar[data-category=Commercial]{background:var(--cat-commercial)}.badge--category[data-category=Office]{background:color-mix(in srgb,var(--cat-office) 15%,transparent);color:var(--cat-office)}.cat-dot[data-category=Office],.cat-bar[data-category=Office]{background:var(--cat-office)}.badge--category[data-category=Industrial]{background:color-mix(in srgb,var(--cat-industrial) 15%,transparent);color:var(--cat-industrial)}.cat-dot[data-category=Industrial],.cat-bar[data-category=Industrial]{background:var(--cat-industrial)}.badge--category[data-category=Land]{background:color-mix(in srgb,var(--cat-land) 15%,transparent);color:var(--cat-land)}.cat-dot[data-category=Land],.cat-bar[data-category=Land]{background:var(--cat-land)}.badge--category[data-category=Garage]{background:color-mix(in srgb,var(--cat-garage) 15%,transparent);color:var(--cat-garage)}.cat-dot[data-category=Garage],.cat-bar[data-category=Garage]{background:var(--cat-garage)}.badge--category[data-category=Movable]{background:color-mix(in srgb,var(--cat-movable) 15%,transparent);color:var(--cat-movable)}.cat-dot[data-category=Movable],.cat-bar[data-category=Movable]{background:var(--cat-movable)}.badge--category[data-category=Vehicle]{background:color-mix(in srgb,var(--cat-vehicle) 15%,transparent);color:var(--cat-vehicle)}.cat-dot[data-category=Vehicle],.cat-bar[data-category=Vehicle]{background:var(--cat-vehicle)}.badge--category[data-category=Securities]{background:color-mix(in srgb,var(--cat-securities) 15%,transparent);color:var(--cat-securities)}.cat-dot[data-category=Securities],.cat-bar[data-category=Securities]{background:var(--cat-securities)}.badge--category[data-category=Business]{background:color-mix(in srgb,var(--cat-business) 15%,transparent);color:var(--cat-business)}.cat-dot[data-category=Business],.cat-bar[data-category=Business]{background:var(--cat-business)}.badge--category[data-category=Other]{background:color-mix(in srgb,var(--cat-other) 15%,transparent);color:var(--cat-other)}.cat-dot[data-category=Other],.cat-bar[data-category=Other]{background:var(--cat-other)}.badge--category[data-category=Unknown]{background:color-mix(in srgb,var(--cat-unknown) 15%,transparent);color:var(--cat-unknown)}.cat-dot[data-category=Unknown],.cat-bar[data-category=Unknown]{background:var(--cat-unknown)}.cat-dot{width:.6rem;height:.6rem;border-radius:50%;flex:none}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .65rem;border-radius:var(--radius-pill);border:1px solid transparent;font-size:.75rem;font-weight:var(--fw-semibold);background:var(--surface-2);color:var(--text-muted)}.chip--soft{font-weight:var(--fw-medium)}.chip--active{background:var(--accent-soft);color:var(--accent)}.chip--button{cursor:pointer;transition:border-color .12s ease,background-color .12s ease}.chip--button:hover{border-color:var(--border-strong)}.field{display:flex;flex-direction:column;gap:.35rem}.field__label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted)}.field__error{font-size:var(--fs-sm);color:var(--danger)}.control{width:100%;height:42px;padding:0 .8rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-body);transition:border-color .15s ease,box-shadow .15s ease}.control::placeholder{color:var(--text-faint)}.control:hover{border-color:var(--text-faint)}.control:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.control--invalid{border-color:var(--danger)}textarea.control{height:auto;min-height:92px;padding:.6rem .8rem;resize:vertical}select.control{appearance:none;padding-right:2rem;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238a94a3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right .7rem center}.input-with-icon{position:relative;display:flex;align-items:center}.input-with-icon .control{padding-left:2.3rem}.input-with-icon app-icon{position:absolute;left:.7rem;color:var(--text-faint);pointer-events:none}.switch{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs-sm);color:var(--text);appearance:none;background:none;border:0;padding:0}.switch__track{flex:none;width:40px;height:22px;border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border-strong);position:relative;transition:background-color .15s ease,border-color .15s ease}.switch__thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--text-faint);transition:transform .15s ease,background-color .15s ease}.switch--on .switch__track{background:var(--accent-soft);border-color:var(--accent)}.switch--on .switch__thumb{transform:translate(18px);background:var(--accent)}.spinner{width:1.1rem;height:1.1rem;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress{position:relative;height:3px;width:100%;background:var(--surface-2);border-radius:var(--radius-pill);overflow:hidden}.progress:after{content:"";position:absolute;left:-40%;width:40%;height:100%;background:var(--accent);border-radius:var(--radius-pill);animation:indeterminate 1.1s ease-in-out infinite}@keyframes indeterminate{0%{left:-40%}to{left:100%}}.empty{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1rem;text-align:center;color:var(--text-muted)}.empty app-icon{color:var(--text-faint)}.menu{min-width:190px;padding:.35rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-2)}.menu__head{padding:.4rem .6rem;font-size:var(--fs-label);font-weight:var(--fw-semibold);letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);border-bottom:1px solid var(--border);margin-bottom:.25rem}.menu__item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .6rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}.menu__item:hover{background:var(--surface-hover)}.menu__item--active{color:var(--accent)}.modal__backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#080c128c;animation:fade .12s ease}.modal__panel{width:100%;max-width:480px;max-height:90vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);animation:pop .14s ease}.modal__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal__body{display:flex;flex-direction:column;gap:.85rem;padding:1.25rem}.modal__footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;border-top:1px solid var(--border)}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.table thead th{text-align:left;padding:.7rem .9rem;font-size:var(--fs-label);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);border-bottom:1px solid var(--border);white-space:nowrap}.table tbody td{padding:.65rem .9rem;border-bottom:1px solid var(--border);color:var(--text);white-space:nowrap}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--surface-hover)}.toasts{position:fixed;left:50%;bottom:1.25rem;transform:translate(-50%);z-index:2000;display:flex;flex-direction:column;gap:.5rem;width:min(92vw,420px)}.toast{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-2);animation:pop .14s ease}.toast__msg{flex:1;font-size:var(--fs-sm)}.toast__action{border:none;background:none;color:var(--accent);font:inherit;font-weight:var(--fw-semibold);cursor:pointer}:root{--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--radius-sm: .5rem;--radius: .75rem;--radius-lg: 1rem;--radius-pill: 999px;--sidebar-width: 248px;--sidebar-rail: 68px;--topbar-height: 60px;--content-max: 1400px;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fs-display: 2rem;--fs-h1: 1.6rem;--fs-h2: 1.25rem;--fs-h3: 1.05rem;--fs-body: .95rem;--fs-sm: .85rem;--fs-label: .72rem;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-extra: 800;--lh-tight: 1.2;--lh-normal: 1.5;--cat-residential: #4f6df5;--cat-commercial: #e08a1e;--cat-office: #0d9488;--cat-industrial: #64748b;--cat-land: #3f9142;--cat-garage: #8b5cf6;--cat-movable: #d6418f;--cat-vehicle: #2b86d4;--cat-securities: #b8860b;--cat-business: #d2553b;--cat-other: #6b7280;--cat-unknown: #6b7280;--state-open: #2e9e54;--state-scheduled: #d98324;--state-closed: #6b7280;--state-suspended: #c0392b;--state-unknown: #6b7280;color-scheme:light;--bg: #f6f1e9;--surface: #fffdf8;--surface-2: #f0e8da;--surface-hover: #ebe1d0;--on-surface: #2a241d;--text: #2a241d;--text-muted: #6e6353;--text-faint: #9c8f7c;--border: rgba(70, 52, 28, .12);--border-strong: rgba(70, 52, 28, .2);--accent: #bb6a2a;--accent-strong: #a0561f;--accent-soft: rgba(187, 106, 42, .1);--accent-contrast: #fffdf8;--gold: #b8860b;--success: #4f8a3d;--danger: #c5402c;--warn: #c9821a;--shadow-1: 0 1px 2px rgba(60, 40, 16, .07), 0 1px 3px rgba(60, 40, 16, .1);--shadow-2: 0 8px 24px rgba(60, 40, 16, .14)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #15110d;--surface: #201a14;--surface-2: #2a221a;--surface-hover: #342a20;--on-surface: #f1e9dc;--text: #f1e9dc;--text-muted: #b4a591;--text-faint: #80715f;--border: rgba(255, 238, 214, .09);--border-strong: rgba(255, 238, 214, .18);--accent: #e0a35a;--accent-strong: #cf9347;--accent-soft: rgba(224, 163, 90, .14);--accent-contrast: #1b130b;--gold: #d8b24a;--success: #6cb85c;--danger: #ef6a59;--warn: #e6b53f;--shadow-1: 0 1px 2px rgba(0, 0, 0, .45);--shadow-2: 0 12px 30px rgba(0, 0, 0, .6)}}:root[data-theme=dark]{color-scheme:dark;--bg: #15110d;--surface: #201a14;--surface-2: #2a221a;--surface-hover: #342a20;--on-surface: #f1e9dc;--text: #f1e9dc;--text-muted: #b4a591;--text-faint: #80715f;--border: rgba(255, 238, 214, .09);--border-strong: rgba(255, 238, 214, .18);--accent: #e0a35a;--accent-strong: #cf9347;--accent-soft: rgba(224, 163, 90, .14);--accent-contrast: #1b130b;--gold: #d8b24a;--success: #6cb85c;--danger: #ef6a59;--warn: #e6b53f;--shadow-1: 0 1px 2px rgba(0, 0, 0, .45);--shadow-2: 0 12px 30px rgba(0, 0, 0, .6)}:root[data-theme=light]{color-scheme:light;--bg: #f6f1e9;--surface: #fffdf8;--surface-2: #f0e8da;--surface-hover: #ebe1d0;--on-surface: #2a241d;--text: #2a241d;--text-muted: #6e6353;--text-faint: #9c8f7c;--border: rgba(70, 52, 28, .12);--border-strong: rgba(70, 52, 28, .2);--accent: #bb6a2a;--accent-strong: #a0561f;--accent-soft: rgba(187, 106, 42, .1);--accent-contrast: #fffdf8;--gold: #b8860b;--success: #4f8a3d;--danger: #c5402c;--warn: #c9821a;--shadow-1: 0 1px 2px rgba(60, 40, 16, .07), 0 1px 3px rgba(60, 40, 16, .1);--shadow-2: 0 8px 24px rgba(60, 40, 16, .14)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-normal);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .2s ease,color .2s ease}h1,h2,h3,h4{margin:0;color:var(--text);line-height:var(--lh-tight);letter-spacing:-.02em}h1{font-size:var(--fs-h1);font-weight:var(--fw-bold)}h2{font-size:var(--fs-h2);font-weight:var(--fw-semibold)}h3{font-size:var(--fs-h3);font-weight:var(--fw-semibold)}p{margin:0}.t-display{font-size:var(--fs-display);font-weight:var(--fw-extra);letter-spacing:-.03em;line-height:var(--lh-tight)}.t-label{font-size:var(--fs-label);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}.t-muted{color:var(--text-muted)}.t-sm{font-size:var(--fs-sm)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,a{touch-action:manipulation}button:disabled,button[disabled],[aria-disabled=true]{cursor:not-allowed;opacity:.5}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-pill);border:3px solid transparent;background-clip:content-box}.cdk-virtual-scroll-content-wrapper{width:100%}.surface{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1)}
