@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--bg: #0d0d15;--surface: #14141e;--surface-hover: #1a1a28;--surface-soft: #10101a;--primary: #3b82f6;--primary-hover: #2563eb;--primary-glow: rgba(59, 130, 246, .22);--secondary: #60a5fa;--text-main: #dde1ea;--text-muted: #7b8299;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--dashboard-done: #22c55e;--dashboard-pending: #3b82f6;--dashboard-overdue: #f43f5e;--dashboard-eol: #f59e0b;--danger: #f43f5e;--success: #22c55e;--warning: #f59e0b;--radius: 10px;--radius-lg: 14px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .05);--shadow-lift: 0 8px 28px rgba(0, 0, 0, .5)}:root[data-theme=light]{--bg: #f0f2f6;--surface: #ffffff;--surface-hover: #f8f9fb;--surface-soft: #f3f5f8;--primary: #2563eb;--primary-hover: #1d4ed8;--primary-glow: rgba(37, 99, 235, .15);--secondary: #3b82f6;--text-main: #111827;--text-muted: #6b7280;--border: #e5e7eb;--border-strong: #d1d5db;--dashboard-done: #16a34a;--dashboard-pending: #2563eb;--dashboard-overdue: #dc2626;--dashboard-eol: #d97706;--danger: #dc2626;--success: #16a34a;--warning: #d97706;--shadow-card: 0 1px 3px rgba(0, 0, 0, .07), 0 0 0 1px rgba(0, 0, 0, .05);--shadow-lift: 0 4px 20px rgba(0, 0, 0, .1)}*,*:before,*:after{box-sizing:border-box}*{font-family:Inter,system-ui,sans-serif;font-size:15px;line-height:1.5}html,body,#root{margin:0;min-height:100%}body{color:var(--text-main);background-color:var(--bg);transition:background-color .2s ease,color .2s ease}a{color:inherit}.app-shell{display:flex;min-height:100vh;animation:app-enter .4s ease}.sidebar{width:232px;flex-shrink:0;padding:24px 12px;border-right:1px solid var(--border);background:var(--surface)}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 20px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;font-weight:700;font-size:13px;letter-spacing:.02em;color:#fff;background:var(--primary);flex-shrink:0}.brand-eyebrow{margin:0;color:var(--text-muted);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600}.brand-title{margin:1px 0 0;font-weight:700;font-size:14px}.sidebar-nav{display:grid;gap:2px}.menu-item{display:flex;align-items:center;gap:10px;border-radius:8px;padding:10px 12px;color:var(--text-muted);text-decoration:none;font-size:14px;font-weight:500;transition:background .15s ease,color .15s ease}.menu-item:hover{color:var(--text-main);background:var(--surface-hover)}.menu-item.active{background:color-mix(in oklab,var(--primary),transparent 86%);color:var(--primary);font-weight:600}:root[data-theme=light] .menu-item.active{background:#2563eb14;color:var(--primary)}.content-wrap{display:flex;min-width:0;flex:1;flex-direction:column}.topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:20px 28px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:10}.topbar-left{display:flex;align-items:center;gap:16px;min-width:0}.property-switch{min-width:200px;max-width:300px}.topbar-actions{display:flex;align-items:center;justify-content:flex-end}.topbar-control-cluster{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:10px;padding:4px;background:var(--surface-soft)}.topbar-icon-btn{width:34px;height:34px;border-color:transparent;background:transparent}.topbar-icon-btn:hover{background:var(--surface-hover)}.topbar-icon-btn.active,.topbar-icon-btn.is-dark{background:color-mix(in oklab,var(--primary),transparent 84%);color:var(--primary)}.topbar-title{margin:0;font-size:18px;font-weight:700;color:var(--text-main);white-space:nowrap}.topbar-divider{width:1px;height:20px;background:var(--border)}.main-content{flex:1;padding:28px 28px 80px}.page-stack{display:grid;gap:24px}.eyebrow{margin:0;color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.panel-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.panel-grid-compact{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.status-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.status-grid.status-grid-quad{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.dashboard-filter-stack{display:grid;gap:14px}.dashboard-filter-toolbar{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-end}.dashboard-period-control{min-width:220px}.dashboard-period-input{min-width:180px}.month-input-shell,.date-input-shell{position:relative}.month-picker-input,.date-picker-input{padding-right:38px}input.field-input.month-picker-input[type=month],input.field-input.date-picker-input[type=date]{color-scheme:dark}input.field-input.month-picker-input[type=month]::-webkit-calendar-picker-indicator,input.field-input.date-picker-input[type=date]::-webkit-calendar-picker-indicator{position:absolute;right:0;width:40px;height:100%;opacity:0;filter:none;background:transparent;color:transparent;border:0;appearance:none;cursor:pointer}.date-input-icon,.month-input-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-input-shell{position:relative}.field-input.search-input{padding-left:44px}.field-input.search-input:focus{transform:none}.search-input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;z-index:1}.dashboard-period-caption{margin:0;color:var(--text-muted);font-size:13px}.dashboard-overview-shell{display:grid;gap:20px;grid-template-columns:minmax(0,320px) minmax(0,1fr);align-items:center}.dashboard-chart-panel{display:grid;place-items:center;min-height:300px;border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;background:var(--surface)}.dashboard-chart-frame{position:relative;width:min(100%,280px);aspect-ratio:1}.dashboard-chart-center{position:absolute;inset:0;display:grid;place-content:center;gap:4px;padding:80px;text-align:center;pointer-events:none}.dashboard-chart-kicker{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.dashboard-chart-value{font-size:clamp(1rem,2vw,1.3rem);font-weight:700;line-height:1.2;text-transform:capitalize}.dashboard-chart-note{color:var(--text-muted);font-size:12px}.dashboard-metric-list{display:grid;gap:10px}.dashboard-metric-button{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;text-align:left;color:var(--text-main);background:var(--surface);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.dashboard-metric-button:hover{transform:translateY(-1px);box-shadow:var(--shadow-lift)}.dashboard-metric-swatch{width:10px;height:10px;border-radius:999px;box-shadow:0 0 0 5px color-mix(in oklab,currentColor 16%,transparent)}.dashboard-metric-copy{min-width:0;display:grid;gap:3px}.dashboard-metric-label{font-size:14px;font-weight:600}.dashboard-metric-description{color:var(--text-muted);font-size:12px}.dashboard-metric-value{font-size:1.6rem;font-weight:800;letter-spacing:-.03em}.dashboard-metric-button.is-done{border-color:color-mix(in oklab,var(--dashboard-done) 30%,var(--border))}.dashboard-metric-button.is-pending{border-color:color-mix(in oklab,var(--dashboard-pending) 30%,var(--border))}.dashboard-metric-button.is-overdue{border-color:color-mix(in oklab,var(--dashboard-overdue) 30%,var(--border))}.dashboard-metric-button.is-eol{border-color:color-mix(in oklab,var(--dashboard-eol) 30%,var(--border))}.dashboard-period-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.dashboard-node-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.dashboard-node-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.dashboard-node-row{display:flex;justify-content:space-between;gap:16px;border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;background:var(--surface)}.dashboard-node-row.is-overdue{border-color:color-mix(in oklab,var(--danger) 30%,var(--border))}.dashboard-node-main{min-width:0;display:grid;gap:6px}.dashboard-node-side{display:grid;justify-items:end;gap:8px;align-content:start}.dashboard-node-tags{display:flex;flex-wrap:wrap;gap:6px}.dashboard-node-link{width:fit-content;border:0;padding:0;color:var(--primary);font-weight:600;font-size:14px;background:transparent;cursor:pointer}.dashboard-node-link:hover{text-decoration:underline}.dashboard-overdue-chip{border-radius:999px;border:1px solid color-mix(in oklab,var(--danger) 35%,transparent);background:color-mix(in oklab,var(--danger) 12%,transparent);color:color-mix(in oklab,var(--danger),#fff 20%);font-size:12px;font-weight:600;padding:4px 10px}:root[data-theme=light] .dashboard-overdue-chip{color:color-mix(in oklab,var(--danger),#000 10%)}.dashboard-overdue-chip-button{cursor:pointer}.dashboard-list-action:disabled{opacity:.5;cursor:not-allowed}.panel-card{border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;background:var(--surface);box-shadow:var(--shadow-card);transition:border-color .15s ease,box-shadow .15s ease}.panel-card:hover{border-color:var(--border-strong)}.card-header{margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-title{margin:0;color:var(--text-main);font-size:13px;letter-spacing:.04em;font-weight:700;text-transform:uppercase;opacity:.7}.status-badge{width:100%;border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;text-align:left;color:var(--text-main);font:inherit;background:var(--surface)}.status-badge-clickable{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.status-badge-clickable:hover{border-color:var(--border-strong);box-shadow:0 4px 12px #0003}.status-badge-clickable:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-glow)}.status-badge-hint{margin-top:8px;font-size:12px;color:var(--text-muted)}.status-badge-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:600;opacity:.8}.status-badge-value{margin-top:8px;font-size:1.85rem;line-height:1;font-weight:700}.status-badge-done{border-color:color-mix(in oklab,var(--dashboard-done) 28%,var(--border));background:color-mix(in oklab,var(--dashboard-done) 8%,var(--surface))}.status-badge-pending{border-color:color-mix(in oklab,var(--dashboard-pending) 28%,var(--border));background:color-mix(in oklab,var(--dashboard-pending) 8%,var(--surface))}.status-badge-overdue{border-color:color-mix(in oklab,var(--dashboard-overdue) 32%,var(--border));background:color-mix(in oklab,var(--dashboard-overdue) 8%,var(--surface));color:color-mix(in oklab,var(--dashboard-overdue),#fff 22%)}.status-badge-eol{border-color:color-mix(in oklab,var(--dashboard-eol) 32%,var(--border));background:color-mix(in oklab,var(--dashboard-eol) 8%,var(--surface));color:color-mix(in oklab,var(--dashboard-eol),#fff 22%)}:root[data-theme=light] .status-badge-done{color:color-mix(in oklab,var(--dashboard-done),#000 20%)}:root[data-theme=light] .status-badge-pending{color:color-mix(in oklab,var(--dashboard-pending),#000 20%)}:root[data-theme=light] .status-badge-overdue{color:color-mix(in oklab,var(--dashboard-overdue),#000 15%)}:root[data-theme=light] .status-badge-eol{color:color-mix(in oklab,var(--dashboard-eol),#000 20%)}.chart-shell{height:280px}.list-stack{margin:0;padding:0;list-style:none;display:grid;gap:10px}.list-stack.compact-list{gap:7px}.metrics-list{display:grid;gap:8px}.metric-item{margin:0;display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:14px}.metric-value{color:var(--text-main)}.task-title{margin:0;font-size:15px;font-weight:600}.task-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.task-date{font-size:13px;color:var(--text-muted)}.login-screen{min-height:100vh;display:grid;place-items:center;padding:18px}.login-panel{width:min(480px,100%);border-radius:var(--radius-lg);border:1px solid var(--border);padding:32px;background:var(--surface);box-shadow:var(--shadow-lift)}.login-title{margin:8px 0 10px;font-size:clamp(1.6rem,3vw,1.9rem);line-height:1.2;font-weight:700}.login-form{margin-top:28px}.login-actions{display:grid;gap:10px}.login-demo-btn{width:100%;justify-content:center}.form-stack{display:grid;gap:14px}.form-row{display:grid;gap:12px}.form-row.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.contractor-form,.node-form{display:grid;gap:14px}.toggle-row{display:grid;gap:8px}.toggle-item{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;color:var(--text-main);background:var(--surface-soft)}.toggle-item input{accent-color:var(--primary)}.feature-stack{display:grid;gap:10px}.feature-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.feature-toggle{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-main);font-weight:600}.feature-checkbox{position:absolute;opacity:0;pointer-events:none}.feature-checkmark{width:18px;height:18px;display:inline-grid;place-items:center;border-radius:5px;border:1px solid var(--border-strong);background:var(--surface);color:var(--primary);font-size:13px;line-height:1;font-weight:800}.feature-content{padding:0 12px 12px;border-top:1px solid var(--border)}.rules-stack{display:grid;gap:10px}.rule-card{border:1px solid var(--border);border-radius:var(--radius);padding:12px;background:var(--surface-soft);display:grid;gap:10px}.rule-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.rule-title{margin:0;font-weight:600;color:var(--text-main)}.btn-secondary{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);border-radius:var(--radius);background:transparent;color:var(--text-main);font:inherit;font-size:14px;font-weight:500;padding:7px 12px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.btn-secondary:hover{background:var(--surface-hover);border-color:var(--border-strong)}.btn-link-danger{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;color:var(--danger);cursor:pointer;padding:0;font-size:13px;font-weight:600}.field-label{display:grid;gap:6px;color:var(--text-muted);font-size:13px;font-weight:600}.field-input{width:100%;border-radius:var(--radius);border:1px solid var(--border-strong);padding:9px 12px;outline:none;color:var(--text-main);font:inherit;font-size:14px;background:var(--surface-soft);transition:border-color .15s ease,box-shadow .15s ease}.field-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);background:var(--surface)}.field-input.is-invalid{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in oklab,var(--danger) 20%,transparent)}.feature-block.is-invalid{border-color:color-mix(in oklab,var(--danger) 50%,transparent)}select.field-input{color-scheme:dark;appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 10px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat}select.field-input::-ms-expand{display:none}select.field-input option{background-color:var(--surface);color:var(--text-main)}:root[data-theme=light] select.field-input{color-scheme:light}:root[data-theme=light] select.field-input option{background-color:#fff;color:#111827}:root[data-theme=light] input.field-input.date-picker-input[type=date]{color-scheme:light}:root[data-theme=light] input.field-input.month-picker-input[type=month]{color-scheme:light}.textarea{min-height:90px;resize:vertical}.btn-primary{display:inline-flex;width:100%;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--radius);padding:10px 16px;color:#fff;font:inherit;font-size:14px;font-weight:600;background:var(--primary);cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .15s ease}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-primary:not(:disabled):hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px var(--primary-glow)}.btn-danger{display:inline-flex;width:100%;align-items:center;justify-content:center;gap:8px;border:1px solid color-mix(in oklab,var(--danger) 40%,transparent);border-radius:var(--radius);padding:10px 16px;color:color-mix(in oklab,var(--danger),#fff 18%);font:inherit;font-size:14px;font-weight:600;background:color-mix(in oklab,var(--danger) 14%,var(--surface));cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.btn-danger:disabled{opacity:.55;cursor:not-allowed}.btn-danger:not(:disabled):hover{background:color-mix(in oklab,var(--danger) 22%,var(--surface));box-shadow:0 4px 12px color-mix(in oklab,var(--danger) 20%,transparent)}.btn-inline{width:auto;padding-inline:16px}.rooms-inline-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:14px}.property-row{display:grid;gap:8px;grid-template-columns:1fr auto}.property-select{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text-main);padding:10px 12px;transition:border-color .15s ease}.property-select span{display:grid;gap:3px}.property-select small{color:var(--text-muted)}.property-select.active{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.properties-page-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:20px}.properties-page-toolbar{display:flex;justify-content:flex-end}.properties-page-copy{max-width:680px;display:grid;gap:6px}.properties-page-title{margin:0;font-size:1rem;font-weight:700}.properties-page-summary{display:flex;flex-wrap:wrap;gap:8px}.property-hub-list{display:grid;gap:16px}.property-hub-card{display:grid;gap:18px;padding:20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-card);transition:border-color .15s ease,box-shadow .15s ease}.property-hub-card.is-active{border-color:color-mix(in oklab,var(--primary) 40%,var(--border));box-shadow:0 0 0 3px var(--primary-glow),var(--shadow-card)}.property-hub-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.property-hub-heading{min-width:0;display:grid;gap:6px}.property-hub-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.property-hub-title{font-size:1.2rem;font-weight:700;line-height:1.2}.property-hub-address{margin:0;color:var(--text-muted);font-size:14px}.property-hub-actions{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:flex-end;gap:8px}.property-hub-stats{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.property-stat-card{display:grid;gap:6px;min-height:96px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.property-stat-card strong{font-size:1.05rem;line-height:1.2}.property-stat-card small{color:var(--text-muted)}.property-stat-label{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.property-hub-grid{display:grid;gap:16px;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start}.property-hub-column{display:grid;gap:16px}.property-surface{display:grid;gap:14px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-soft)}.property-expense-surface{align-content:start}.property-expense-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.property-expense-toolbar-main{display:grid;gap:10px}.property-expense-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.property-expense-toolbar-side{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-end;gap:12px}.property-expense-periods{display:flex;flex-wrap:wrap;gap:8px}.property-expense-picker{min-width:180px;max-width:220px}.property-section-head{gap:14px;align-items:flex-start}.property-section-kicker{margin:0 0 4px;color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.property-section-title{margin:0;font-size:15px;font-weight:700}.property-tab-bar{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}.property-tab-btn{border:0;border-radius:8px;padding:7px 14px;color:var(--text-muted);font:inherit;font-size:14px;font-weight:500;background:transparent;cursor:pointer;transition:background .15s ease,color .15s ease}.property-tab-btn:hover{color:var(--text-main);background:var(--surface-hover)}.property-tab-btn.active{color:var(--text-main);background:var(--surface);box-shadow:0 1px 3px #00000026;font-weight:600}:root[data-theme=light] .property-tab-btn.active{box-shadow:0 1px 4px #0000001a}.property-room-pills{display:flex;flex-wrap:wrap;gap:6px}.property-room-pill{border-radius:999px;border:1px solid var(--border);padding:5px 12px;font-size:13px;color:var(--text-main);background:var(--surface-soft)}.property-room-pill-muted{color:var(--text-muted)}.property-room-manager{display:grid;gap:12px}.property-room-admin-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.property-room-admin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.property-room-admin-edit{width:100%;display:grid;gap:10px}.property-document-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.property-document-control{min-width:200px;max-width:260px}.property-upload-btn{position:relative;overflow:hidden}.property-upload-input{position:absolute;inset:0;opacity:0;cursor:pointer}.property-document-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.property-document-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft);transition:border-color .15s ease}.property-document-row:hover{border-color:var(--border-strong)}.property-document-link{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;text-decoration:none}.property-document-link:hover .property-document-title{color:var(--primary)}.property-document-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--radius);color:var(--primary);background:color-mix(in oklab,var(--primary) 12%,transparent)}.property-document-copy{min-width:0;display:grid;gap:3px}.property-document-title{font-weight:600;font-size:14px;transition:color .15s ease}.property-document-meta{color:var(--text-muted);font-size:12px}.property-expense-summary{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.property-expense-tile{display:grid;gap:6px;padding:13px 15px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.property-expense-tile svg{color:var(--primary)}.property-expense-tile span{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.property-expense-tile strong{font-size:1rem}.property-expense-chart-card{padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.property-expense-breakdown{display:grid;gap:14px}.property-expense-breakdown-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.property-expense-breakdown-total{font-size:1rem;font-weight:600;line-height:1.2;white-space:nowrap}.property-expense-breakdown-list{margin:0;padding:0;list-style:none;display:grid;gap:12px}.property-expense-breakdown-row{display:grid;gap:7px}.property-expense-breakdown-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.property-expense-breakdown-label{min-width:0;display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px}.property-expense-breakdown-dot{width:8px;height:8px;flex-shrink:0;border-radius:999px}.property-expense-breakdown-values{display:inline-flex;align-items:baseline;gap:8px;white-space:nowrap}.property-expense-breakdown-values span{color:var(--text-muted);font-size:13px;font-weight:500}.property-expense-breakdown-track{position:relative;height:6px;overflow:hidden;border-radius:999px;background:var(--border)}.property-expense-breakdown-fill{display:block;height:100%;border-radius:inherit}.property-expense-form{display:grid;gap:14px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.property-expense-form-head{gap:12px}.property-expense-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.property-expense-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.property-expense-copy{min-width:0;display:grid;gap:4px}.property-expense-side{display:grid;gap:6px;justify-items:end}.property-expense-amount{font-size:15px;font-weight:600;white-space:nowrap}.property-notes-surface{align-content:start}.property-note-form{display:grid;gap:14px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.property-note-textarea{min-height:130px}.property-note-pin-toggle{width:fit-content;display:inline-flex;align-items:center;gap:8px}.property-note-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.property-note-card{display:grid;gap:12px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .15s ease}.property-note-card:hover{border-color:var(--border-strong)}.property-note-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.property-note-heading{min-width:0;display:grid;gap:4px}.property-note-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.property-note-title{margin:0;font-size:15px;font-weight:600}.property-note-pin-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 8px;color:var(--text-muted);font-size:11px;font-weight:600;background:var(--surface-soft);border:1px solid var(--border)}.property-note-content{margin:0;color:var(--text-muted);line-height:1.6;white-space:pre-line;font-size:14px}.icon-btn{width:34px;height:34px;display:inline-grid;place-items:center;border-radius:8px;border:1px solid var(--border);color:var(--text-muted);background:transparent;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.icon-btn:hover{background:var(--surface-hover);color:var(--text-main);border-color:var(--border-strong)}.icon-btn.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow);color:var(--primary)}.icon-btn.danger{color:var(--danger)}.icon-btn.danger:hover{background:color-mix(in oklab,var(--danger) 10%,transparent);border-color:color-mix(in oklab,var(--danger) 40%,transparent)}.icon-btn.success{color:var(--success)}.icon-btn.warning{color:var(--warning)}.room-grid{margin:0;padding:0;list-style:none;display:grid;gap:10px;justify-content:start;align-content:start;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),220px))}.contractor-grid,.nodes-grid{margin:0;padding:0;list-style:none;display:grid;gap:12px;justify-content:start;align-content:start}.contractor-grid,.nodes-grid{width:100%;justify-content:stretch;grid-template-columns:minmax(0,1fr)}.nodes-grid .node-accordion-card{width:100%}.room-tile,.panel-subcard{border-radius:var(--radius);border:1px solid var(--border);padding:13px;background:var(--surface-soft)}.room-tile{min-height:96px}.room-tile-spaced{display:grid;gap:8px}.contractor-card{display:grid;align-content:start;gap:14px;padding:14px;min-height:0}.contractor-accordion-list,.contractor-accordion-card{width:100%}.contractor-accordion-card.is-open{border-color:color-mix(in oklab,var(--primary) 35%,var(--border));box-shadow:0 0 0 3px var(--primary-glow),var(--shadow-card)}.contractor-accordion-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.contractor-accordion-trigger{flex:1 1 auto;min-width:0;display:flex;align-items:center;border:0;padding:0;color:inherit;text-align:left;background:transparent;cursor:pointer}.contractor-accordion-trigger:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.contractor-accordion-copy{display:grid;gap:6px;min-width:0;flex:1 1 auto}.contractor-accordion-title-row{display:flex;align-items:center;gap:10px;min-width:0;width:100%}.contractor-accordion-chevron{margin-left:auto;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--border);color:var(--text-muted);background:transparent;transition:transform .18s ease,background .15s ease,border-color .15s ease}.contractor-accordion-trigger.is-open .contractor-accordion-chevron{transform:rotate(180deg);border-color:color-mix(in oklab,var(--primary) 40%,var(--border));background:color-mix(in oklab,var(--primary) 10%,transparent);color:var(--primary)}.contractor-card-title{margin:0;color:var(--text-main);font-size:15px;font-weight:700;line-height:1.3;text-wrap:balance}.contractor-card-actions{display:inline-flex;gap:6px;flex-shrink:0;align-items:center}.contractor-card-tags{display:flex;flex-wrap:wrap;gap:6px}.contractor-card-tags-inline{padding-right:2px}.contractor-card-body{display:grid;align-content:start;gap:14px}.contractor-accordion-body{padding-top:4px}.contractor-card-section{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.contractor-card-section-title{margin:0;color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.contractor-card-meta-list{display:grid;gap:9px}.contractor-card-meta{display:grid;grid-template-columns:20px minmax(90px,110px) minmax(0,1fr);gap:10px;align-items:start;margin:0}.contractor-card-meta-multiline{align-items:start}.contractor-card-meta-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;color:var(--text-muted)}.contractor-card-meta-label{color:var(--text-muted);font-size:13px;font-weight:500}.contractor-card-meta-value,.contractor-card-meta-link{min-width:0;color:var(--text-main);font-size:14px;line-height:1.45;overflow-wrap:anywhere}.contractor-card-note{margin:0;color:var(--text-main);font-size:14px;line-height:1.55}.node-card{display:grid;align-content:start;gap:16px;padding:16px}.node-accordion-card{gap:14px;padding:14px}.node-accordion-card.is-open{border-color:color-mix(in oklab,var(--primary) 35%,var(--border));box-shadow:0 0 0 3px var(--primary-glow),var(--shadow-card)}.node-accordion-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.node-accordion-trigger{flex:1 1 auto;min-width:0;display:flex;align-items:center;border:0;padding:0;color:inherit;text-align:left;background:transparent;cursor:pointer}.node-accordion-trigger:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.node-card-copy{display:grid;gap:6px;min-width:0}.node-accordion-title-row{display:flex;align-items:center;gap:10px;min-width:0;width:100%}.node-accordion-chevron{margin-left:auto;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--border);color:var(--text-muted);background:transparent;transition:transform .18s ease,background .15s ease,border-color .15s ease}.node-accordion-trigger.is-open .node-accordion-chevron{transform:rotate(180deg);border-color:color-mix(in oklab,var(--primary) 40%,var(--border));background:color-mix(in oklab,var(--primary) 10%,transparent);color:var(--primary)}.node-card-title{margin:0;font-size:15px;font-weight:700;line-height:1.2}.node-card-description{margin:0;max-width:62ch;color:var(--text-muted);font-size:14px;line-height:1.5}.node-card-actions{display:inline-flex;gap:6px;flex-shrink:0;align-items:center}.node-inline-action{justify-content:center}.node-card-stats{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.node-stat{display:grid;gap:6px;min-height:68px;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.node-stat-wide{grid-column:1 / -1}.node-stat-button{width:100%;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}.node-stat-button:hover{border-color:color-mix(in oklab,var(--primary) 40%,var(--border));background:color-mix(in oklab,var(--primary) 6%,var(--surface-soft))}.node-stat-button:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.node-stat-label{color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:600}.node-stat-value{color:var(--text-main);font-size:1rem;font-weight:700;line-height:1.2}.node-stat-alert{border-color:color-mix(in oklab,var(--warning) 30%,var(--border));background:color-mix(in oklab,var(--warning) 7%,var(--surface-soft))}.node-card-section{display:grid;gap:10px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.node-card-section-title{margin:0;color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.node-rule-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.node-rule-item{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.node-rule-main{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px}.node-rule-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;border:1px solid color-mix(in oklab,var(--primary) 35%,transparent);background:color-mix(in oklab,var(--primary) 10%,transparent);color:var(--text-main);padding:4px 10px;font-size:12px;font-weight:600}.node-rule-badge-muted{border-color:var(--border);background:var(--surface-soft);color:var(--text-muted)}.node-rule-title{font-size:14px;font-weight:600;line-height:1.35}.node-rule-meta{display:flex;flex-wrap:wrap;gap:6px}.node-rule-meta-chip{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;border:1px solid var(--border);background:var(--surface-soft);color:var(--text-muted);padding:4px 10px;font-size:12px}.node-card-footer{display:grid;gap:12px;padding-top:2px}.node-card-details{display:grid;gap:14px;padding-top:2px}.node-insight-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.node-insight-card{display:grid;gap:6px;min-height:68px;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.node-insight-card-action{width:100%;color:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}.node-insight-card-action:hover{border-color:color-mix(in oklab,var(--primary) 40%,var(--border));background:color-mix(in oklab,var(--primary) 6%,var(--surface-soft))}.node-insight-card-action:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.node-insight-card-alert{border-color:color-mix(in oklab,var(--warning) 30%,var(--border));background:color-mix(in oklab,var(--warning) 7%,var(--surface-soft))}.node-insight-value{font-size:1rem;font-weight:700;line-height:1.2}.node-link-list{display:flex;flex-wrap:wrap;gap:6px}.node-link-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;border:1px solid color-mix(in oklab,var(--primary) 35%,transparent);background:color-mix(in oklab,var(--primary) 8%,transparent);color:var(--primary);padding:5px 10px;text-decoration:none;font-size:13px;transition:background .15s ease}.node-link-chip:hover{background:color-mix(in oklab,var(--primary) 16%,transparent)}.node-link-chip-quiet{color:var(--text-main);background:var(--surface-soft);border-color:var(--border)}.node-card-assets{display:flex;flex-wrap:wrap;gap:8px}.row-between{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.entity-actions{display:inline-flex;align-items:center;gap:6px}.room-edit-stack{display:grid;gap:8px}.meta-grid{display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr));color:var(--text-muted);font-size:13px}.chip{border-radius:999px;border:1px solid color-mix(in oklab,var(--primary) 30%,transparent);background:color-mix(in oklab,var(--primary) 10%,transparent);color:color-mix(in oklab,var(--primary),#fff 10%);font-size:12px;font-weight:600;padding:3px 9px}:root[data-theme=light] .chip{color:var(--primary)}.chip-button{display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in oklab,var(--primary) 30%,transparent);border-radius:999px;background:color-mix(in oklab,var(--primary) 10%,transparent);color:var(--text-main);font-size:12px;font-weight:600;padding:3px 10px;cursor:pointer;transition:background .15s ease}.chip-button:hover{background:color-mix(in oklab,var(--primary) 18%,transparent)}.tag-editor{display:flex;flex-wrap:wrap;gap:6px;width:100%;border:1px solid var(--border-strong);border-radius:var(--radius);padding:8px 10px;background:var(--surface-soft);transition:border-color .15s ease,box-shadow .15s ease}.tag-editor:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.tag-editor-chip{display:inline-flex;align-items:center;gap:6px;min-height:26px;border-radius:999px;border:1px solid color-mix(in oklab,var(--primary) 30%,transparent);background:color-mix(in oklab,var(--primary) 10%,transparent);color:var(--text-main);padding:3px 8px 3px 10px;font-size:13px;font-weight:500}.tag-editor-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:0;border-radius:999px;padding:0;background:var(--border-strong);color:var(--text-muted);cursor:pointer;transition:background .15s ease}.tag-editor-chip-remove:hover{background:color-mix(in oklab,var(--danger) 20%,var(--surface-hover));color:var(--danger)}.tag-editor-input{flex:1 1 140px;min-width:100px;border:0;padding:4px 2px;outline:none;color:var(--text-main);font:inherit;font-size:14px;background:transparent}.tag-editor-input::placeholder{color:var(--text-muted)}.chip-muted{border-radius:999px;border:1px solid var(--border);padding:3px 10px;color:var(--text-muted);font-size:12px}.chips-wrap{display:flex;flex-wrap:wrap;gap:6px}.chip-checkbox{position:relative;border:1px solid var(--border);border-radius:999px;padding:5px 10px;font-size:13px;cursor:pointer;color:var(--text-muted);transition:border-color .15s ease,background .15s ease,color .15s ease}.chip-checkbox input{position:absolute;inset:0;opacity:0;cursor:pointer}.chip-checkbox:has(input:checked){border-color:var(--primary);background:color-mix(in oklab,var(--primary) 12%,transparent);color:var(--text-main)}.details-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.details-panel>summary{cursor:pointer;list-style:none;padding:10px 12px;font-size:13px;font-weight:600;color:var(--text-muted)}.details-panel>summary::-webkit-details-marker{display:none}.details-panel[open]>summary{border-bottom:1px solid var(--border);color:var(--text-main)}.details-grid{display:grid;gap:12px;padding:12px}.interval-row{max-width:360px}.interval-controls{display:grid;grid-template-columns:120px 1fr;gap:8px}.inline-meta{display:inline-flex;align-items:center;gap:5px}.primary-link{color:var(--primary);text-decoration:none;font-weight:500}.primary-link:hover{text-decoration:underline}.filter-row{display:flex;flex-wrap:wrap;gap:6px}.filter-stack{display:grid;gap:14px}.filter-block{display:grid;gap:8px}.contractor-search-block{margin-bottom:16px}.contractor-search-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}.contractor-search-label{max-width:none}.filter-label{margin:0;color:var(--text-muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.07em}.period-picker-control{max-width:240px}.period-picker-input{min-width:180px}.task-node-filter{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;background:var(--surface-soft)}.task-node-filter-select{flex:1 1 260px;min-width:min(100%,280px)}.task-node-filter .btn-secondary{align-self:flex-end}.task-node-filter-copy{flex:1 1 220px;min-width:0;display:grid;gap:4px}.task-node-filter-title{margin:0;font-weight:600}.task-node-filter-meta{margin:0}.chip-toggle{border:1px solid var(--border-strong);border-radius:999px;padding:6px 13px;background:transparent;color:var(--text-muted);font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.chip-toggle:hover{color:var(--text-main);background:var(--surface-hover)}.chip-toggle.active{color:var(--primary);border-color:var(--primary);background:color-mix(in oklab,var(--primary) 10%,transparent);font-weight:600}.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}.task-calendar-card{background:var(--surface)}.task-calendar-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.task-calendar-toggle.active{border-color:color-mix(in oklab,var(--primary) 50%,transparent);color:var(--primary);background:color-mix(in oklab,var(--primary) 8%,transparent)}.task-calendar-collapsed{display:grid;gap:4px;border:1px dashed var(--border-strong);border-radius:var(--radius);padding:16px;background:var(--surface-soft)}.task-calendar-picker{min-width:170px}.task-calendar-nav{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border-strong);border-radius:8px;background:transparent;color:var(--text-main);cursor:pointer;transition:background .15s ease}.task-calendar-nav:hover{background:var(--surface-hover)}.task-calendar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.task-calendar-title{margin:0 0 4px;font-size:1.1rem;font-weight:700}.task-calendar-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.task-calendar-legend-item{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--border);padding:5px 10px;font-size:12px;font-weight:600;color:var(--text-muted);background:var(--surface-soft)}.task-calendar-legend-item.tone-open{border-color:color-mix(in oklab,var(--primary) 30%,transparent);color:var(--primary);background:color-mix(in oklab,var(--primary) 8%,transparent)}.task-calendar-legend-item.tone-done{border-color:color-mix(in oklab,var(--success) 30%,transparent);color:var(--success);background:color-mix(in oklab,var(--success) 8%,transparent)}:root[data-theme=light] .task-calendar-legend-item.tone-done{color:color-mix(in oklab,var(--success),#000 15%)}.task-calendar-legend-item.tone-overdue{border-color:color-mix(in oklab,var(--danger) 30%,transparent);color:var(--danger);background:color-mix(in oklab,var(--danger) 8%,transparent)}.task-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:8px}.task-calendar-weekday{padding:0 4px;color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.task-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.task-calendar-day{min-height:140px;display:grid;align-content:start;gap:6px;border-radius:var(--radius);border:1px solid var(--border);padding:10px;background:var(--surface-soft);transition:border-color .15s ease}.task-calendar-day.outside-month{opacity:.35}.task-calendar-day.today{border-color:color-mix(in oklab,var(--primary) 50%,transparent);background:color-mix(in oklab,var(--primary) 5%,var(--surface-soft))}.task-calendar-day-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.task-calendar-day-number{font-size:13px;font-weight:700;color:var(--text-main)}.task-calendar-day.today .task-calendar-day-number{color:var(--primary)}.task-calendar-day-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:999px;background:color-mix(in oklab,var(--primary) 20%,transparent);color:var(--primary);font-size:11px;font-weight:700}.task-calendar-events{display:grid;gap:5px}.task-calendar-empty,.task-calendar-more{color:var(--text-muted);font-size:11px}.task-calendar-event{display:grid;gap:1px;border-radius:6px;border:1px solid var(--border);padding:6px 8px;background:var(--surface)}.task-calendar-event strong{font-size:12px;line-height:1.3;font-weight:600}.task-calendar-event span{color:var(--text-muted);font-size:11px;line-height:1.2}.task-calendar-event.tone-warning{border-color:color-mix(in oklab,var(--danger) 30%,var(--border));background:color-mix(in oklab,var(--danger) 6%,var(--surface))}.task-calendar-event.tone-success{border-color:color-mix(in oklab,var(--success) 30%,var(--border));background:color-mix(in oklab,var(--success) 6%,var(--surface))}.task-calendar-event.tone-muted{opacity:.6}.task-card{display:grid;gap:14px;border-radius:var(--radius);border:1px solid var(--border);padding:14px 16px;background:var(--surface);transition:border-color .15s ease}.task-card.tone-warning{border-color:color-mix(in oklab,var(--danger) 35%,var(--border));background:color-mix(in oklab,var(--danger) 3%,var(--surface))}.task-card.tone-success{border-color:color-mix(in oklab,var(--success) 35%,var(--border));background:color-mix(in oklab,var(--success) 3%,var(--surface))}.task-card.tone-muted{opacity:.65}.task-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;justify-content:flex-end}.task-card-main{display:grid;gap:12px}.task-card-head{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.task-meta-row{display:flex;flex-wrap:wrap;gap:6px}.task-note{margin:0;padding:10px 13px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-soft);color:var(--text-muted);font-size:14px;line-height:1.6}.task-editor{display:grid;gap:14px;border-radius:var(--radius);border:1px solid color-mix(in oklab,var(--primary) 30%,var(--border));padding:14px;background:color-mix(in oklab,var(--primary) 4%,var(--surface-soft))}.task-editor-grid{display:grid;gap:14px;grid-template-columns:minmax(200px,260px) minmax(0,1fr)}.task-editor-field{min-width:0}.task-editor-textarea{min-height:100px;resize:vertical}.task-editor-actions{display:flex;flex-wrap:wrap;gap:8px}.task-action-btn{border:1px solid var(--border-strong);border-radius:7px;background:transparent;color:var(--text-muted);font:inherit;font-size:13px;font-weight:500;line-height:1;padding:7px 11px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.task-action-btn:hover{background:var(--surface-hover);color:var(--text-main);border-color:var(--border-strong)}.task-action-btn.success{border-color:color-mix(in oklab,var(--success) 40%,transparent);color:var(--success);font-weight:600}.task-action-btn.success:hover{background:color-mix(in oklab,var(--success) 8%,transparent)}.task-action-btn.warning{border-color:color-mix(in oklab,var(--warning) 40%,transparent);color:var(--warning)}.task-action-btn.warning:hover{background:color-mix(in oklab,var(--warning) 8%,transparent)}.muted-text{margin:0;color:var(--text-muted);font-size:14px}.success-text{margin:0;color:var(--success);font-size:14px}.tiny-muted{margin:0;color:var(--text-muted);font-size:13px;text-transform:none}.error-text{margin:0;color:color-mix(in oklab,var(--danger),#fff 20%);font-size:14px}.field-error-text{margin:0;color:color-mix(in oklab,var(--danger),#fff 20%);font-size:13px;font-weight:500;text-transform:none}:root[data-theme=light] .error-text,:root[data-theme=light] .field-error-text{color:var(--danger)}.profile-summary{display:grid;gap:10px}.profile-email{margin:0;font-size:1rem;font-weight:700}.profile-actions{display:grid;gap:14px}.profile-action-btn{width:100%;justify-content:center;padding:10px 12px}.danger-zone{display:grid;gap:12px;border:1px solid color-mix(in oklab,var(--danger) 30%,transparent);border-radius:var(--radius);padding:16px;background:color-mix(in oklab,var(--danger) 5%,var(--surface))}.danger-title{margin:0;display:inline-flex;align-items:center;gap:6px;color:var(--danger);font-weight:700}.mobile-bar{display:none}@media(max-width:1200px){.form-row.two-columns,.details-grid{grid-template-columns:1fr}}@media(max-width:1024px){.sidebar{display:none}.topbar{padding:14px 16px;position:sticky;top:0}.topbar-left{gap:10px}.property-switch{min-width:180px;max-width:240px}.main-content{padding:20px 16px 96px}.topbar-title{font-size:17px}.panel-card{padding:16px}.property-hub-grid{grid-template-columns:1fr}.mobile-bar{position:fixed;left:8px;right:8px;bottom:8px;z-index:30;display:grid;gap:4px;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:6px;background:var(--surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow-lift)}.mobile-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:8px;padding:8px 2px;color:var(--text-muted);text-decoration:none;font-size:11px;text-align:center;transition:background .15s ease,color .15s ease}.mobile-item.active{color:var(--primary);background:color-mix(in oklab,var(--primary) 10%,transparent)}}@media(max-width:640px){.topbar{gap:8px}.topbar-title{font-size:16px}.property-switch{min-width:140px;max-width:200px}.rooms-inline-form{grid-template-columns:1fr}.properties-page-head,.property-hub-header,.property-section-head,.property-expense-row,.property-document-row{flex-direction:column;align-items:stretch}.property-hub-card{padding:16px}.property-hub-stats,.property-expense-summary{grid-template-columns:1fr 1fr}.property-expense-toolbar,.property-expense-toolbar-side,.property-expense-heading,.property-expense-breakdown-head,.property-expense-breakdown-meta{flex-direction:column;align-items:stretch}.property-expense-picker{min-width:0;max-width:none}.property-tab-bar{display:grid;grid-template-columns:1fr;border-radius:var(--radius)}.property-tab-btn{width:100%}.property-document-toolbar{align-items:stretch}.property-document-control{min-width:0;max-width:none}.room-grid,.contractor-grid,.nodes-grid{grid-template-columns:1fr}.dashboard-filter-toolbar{align-items:stretch}.dashboard-overview-shell{grid-template-columns:1fr}.dashboard-chart-panel{min-height:260px}.dashboard-chart-center{padding:60px}.property-note-head,.property-hub-actions{flex-direction:column;align-items:stretch}.dashboard-period-control,.dashboard-period-input,.period-picker-control,.period-picker-input{min-width:0;max-width:none;width:100%}.btn-inline{width:100%}.task-card{padding:12px}.task-editor-grid{grid-template-columns:1fr}.task-card-head{flex-direction:column;align-items:stretch}.node-accordion-header,.node-card-header{flex-direction:column}.contractor-accordion-header,.contractor-card-actions{flex-direction:column;align-items:stretch}.node-card-actions{width:100%;justify-content:flex-end}.contractor-card-actions .icon-btn{width:100%}.node-card-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.contractor-card-meta{grid-template-columns:20px 1fr}.contractor-card-meta-label,.contractor-card-meta-value,.contractor-card-meta-link{grid-column:2}.dashboard-node-row{flex-direction:column}.dashboard-node-side,.property-expense-side{justify-items:start}.task-node-filter{flex-direction:column;align-items:stretch}.task-node-filter-select{min-width:0}.task-node-filter .btn-secondary{width:100%;justify-content:center}.task-calendar-head,.task-calendar-toolbar{flex-direction:column;align-items:stretch}.task-calendar-picker{min-width:0}.task-calendar-legend{justify-content:flex-start}.task-calendar-weekdays{display:none}.task-calendar-grid{grid-template-columns:1fr}.task-calendar-day{min-height:0}.task-actions{justify-content:flex-start}.task-actions .task-action-btn,.task-editor-actions .task-action-btn{flex:1 1 160px}.entity-actions{flex-wrap:wrap;justify-content:flex-end}.meta-grid{grid-template-columns:1fr}}.empty-state{display:grid;place-items:center;gap:8px;padding:40px 20px;text-align:center;color:var(--text-muted)}.empty-state-icon{font-size:2rem;opacity:.4}.empty-state p{margin:0;font-size:14px}.home-page{display:grid;gap:28px}.home-section{display:grid;gap:12px}.home-section-header{display:flex;align-items:center;gap:10px}.home-section-title{margin:0;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.home-section-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:999px;font-size:11px;font-weight:700;padding:0 6px}.home-section-badge-danger{background:color-mix(in oklab,var(--danger) 18%,transparent);color:var(--danger)}.home-section-badge-warning{background:color-mix(in oklab,var(--warning) 18%,transparent);color:var(--warning)}.home-section-badge-neutral{background:var(--surface-soft);color:var(--text-muted)}.attn-card{display:grid;gap:12px;border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;background:var(--surface);transition:border-color .15s ease}.attn-card-overdue{border-color:color-mix(in oklab,var(--danger) 35%,var(--border));background:color-mix(in oklab,var(--danger) 3%,var(--surface))}.attn-card-soon{border-color:color-mix(in oklab,var(--warning) 30%,var(--border))}.attn-card-upcoming{border-color:var(--border)}.attn-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.attn-title{margin:0;font-size:15px;font-weight:600;line-height:1.3}.attn-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}.attn-meta-item{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--text-muted)}.attn-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;white-space:nowrap}.attn-badge-overdue{background:color-mix(in oklab,var(--danger) 14%,transparent);color:var(--danger);border:1px solid color-mix(in oklab,var(--danger) 30%,transparent)}:root[data-theme=light] .attn-badge-overdue{color:color-mix(in oklab,var(--danger),#000 10%)}.attn-badge-soon{background:color-mix(in oklab,var(--warning) 12%,transparent);color:var(--warning);border:1px solid color-mix(in oklab,var(--warning) 28%,transparent)}:root[data-theme=light] .attn-badge-soon{color:color-mix(in oklab,var(--warning),#000 20%)}.attn-badge-neutral{background:var(--surface-soft);color:var(--text-muted);border:1px solid var(--border)}.attn-actions{display:flex;flex-wrap:wrap;gap:8px}.complete-form{display:grid;gap:12px;padding:14px;border-radius:var(--radius);border:1px solid color-mix(in oklab,var(--primary) 25%,var(--border));background:color-mix(in oklab,var(--primary) 4%,var(--surface-soft))}.complete-form-grid{display:grid;gap:12px;grid-template-columns:minmax(160px,220px) minmax(0,1fr)}.complete-form-actions{display:flex;flex-wrap:wrap;gap:8px}.prop-health-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.prop-health-card{display:grid;gap:10px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-decoration:none;color:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.prop-health-card:hover{border-color:var(--border-strong);box-shadow:0 2px 10px #00000026}.prop-health-name{margin:0;font-size:15px;font-weight:700;line-height:1.2}.prop-health-address{margin:0;font-size:12px;color:var(--text-muted)}.prop-health-stats{display:flex;flex-wrap:wrap;gap:8px}.prop-health-stat{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.prop-health-stat-ok{background:color-mix(in oklab,var(--success) 10%,transparent);color:var(--success)}:root[data-theme=light] .prop-health-stat-ok{color:color-mix(in oklab,var(--success),#000 15%)}.prop-health-stat-warn{background:color-mix(in oklab,var(--danger) 12%,transparent);color:var(--danger)}:root[data-theme=light] .prop-health-stat-warn{color:color-mix(in oklab,var(--danger),#000 10%)}.prop-health-stat-muted{background:var(--surface-soft);color:var(--text-muted)}.props-tab-bar{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.props-tab-bar::-webkit-scrollbar{display:none}.props-tab-btn{flex-shrink:0;border:0;border-bottom:2px solid transparent;border-radius:0;padding:10px 16px;color:var(--text-muted);font:inherit;font-size:14px;font-weight:500;background:transparent;cursor:pointer;transition:color .15s ease,border-color .15s ease;margin-bottom:-1px}.props-tab-btn:hover{color:var(--text-main)}.props-tab-btn.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.equipment-layout{display:grid;gap:20px}.equipment-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.room-group{display:grid;gap:10px}.room-group-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.room-group-title{margin:0;font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em}.node-mini-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}.node-mini-card{display:grid;gap:8px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;text-align:left;color:inherit}.node-mini-card:hover{border-color:var(--border-strong);box-shadow:0 2px 10px #00000026;transform:translateY(-1px)}.node-mini-card.has-overdue{border-color:color-mix(in oklab,var(--danger) 30%,var(--border));background:color-mix(in oklab,var(--danger) 3%,var(--surface))}.node-mini-card.is-active{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.node-mini-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.node-mini-name{margin:0;font-size:14px;font-weight:600;line-height:1.3}.node-mini-location{margin:0;font-size:12px;color:var(--text-muted)}.node-mini-status{font-size:12px}.node-panel-backdrop{position:fixed;inset:0;z-index:40;background:#00000073;opacity:0;pointer-events:none;transition:opacity .25s ease}.node-panel-backdrop.is-open{opacity:1;pointer-events:auto}.node-panel{position:fixed;top:0;right:0;bottom:0;z-index:41;width:min(480px,100vw);display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lift);transform:translate(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);overflow:hidden}.node-panel.is-open{transform:translate(0)}.node-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.node-panel-title-block{min-width:0}.node-panel-title{margin:0 0 4px;font-size:17px;font-weight:700;line-height:1.2}.node-panel-location{margin:0;font-size:13px;color:var(--text-muted)}.node-panel-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px 24px;display:grid;align-content:start;gap:20px}.np-section{display:grid;gap:10px}.np-section-title{margin:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text-muted)}.np-task-list{display:grid;gap:8px}.np-task-row{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.np-task-row.is-overdue{border-color:color-mix(in oklab,var(--danger) 30%,var(--border));background:color-mix(in oklab,var(--danger) 4%,var(--surface-soft))}.np-task-row.is-done{opacity:.6}.np-task-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.np-task-title{margin:0;font-size:14px;font-weight:600}.np-task-meta{font-size:12px;color:var(--text-muted);margin:0}.np-task-actions{display:flex;flex-wrap:wrap;gap:6px}.np-rule-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft);font-size:14px}.np-rule-dot{width:8px;height:8px;border-radius:999px;background:var(--primary);flex-shrink:0;margin-top:5px}.np-contractor-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft)}.np-contractor-name{font-size:14px;font-weight:600}.np-contractor-phone{font-size:13px;color:var(--text-muted)}.np-eol-card{padding:12px 14px;border:1px solid color-mix(in oklab,var(--warning) 30%,var(--border));border-radius:var(--radius);background:color-mix(in oklab,var(--warning) 6%,var(--surface-soft));display:grid;gap:4px}.np-eol-card.is-expired{border-color:color-mix(in oklab,var(--danger) 30%,var(--border));background:color-mix(in oklab,var(--danger) 6%,var(--surface-soft))}.np-eol-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.np-eol-value{font-size:15px;font-weight:600}.np-actions-bar{display:flex;flex-wrap:wrap;gap:8px;padding:14px 20px;border-top:1px solid var(--border);flex-shrink:0;background:var(--surface)}@media(max-width:640px){.node-panel{inset:auto 0 0;width:100%;height:90vh;border-left:0;border-top:1px solid var(--border);border-radius:16px 16px 0 0;transform:translateY(100%)}.node-panel.is-open{transform:translateY(0)}}.schedule-page{display:grid;gap:24px}.schedule-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.schedule-group{display:grid;gap:8px}.schedule-group-header{display:flex;align-items:center;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}.schedule-group-label{margin:0;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.schedule-group-label-danger{color:var(--danger)}.schedule-group-count{font-size:12px;font-weight:600;color:var(--text-muted);border-radius:999px;background:var(--surface-soft);padding:2px 8px}.sched-item{display:grid;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .15s ease}.sched-item.is-overdue{border-color:color-mix(in oklab,var(--danger) 30%,var(--border));background:color-mix(in oklab,var(--danger) 3%,var(--surface))}.sched-item.is-done{opacity:.55}.sched-item.is-skipped{opacity:.45}.sched-item-main{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}.sched-item-body{min-width:0;display:grid;gap:4px}.sched-item-title{margin:0;font-size:15px;font-weight:600}.sched-item-meta{display:flex;flex-wrap:wrap;gap:8px}.sched-item-meta-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted)}.sched-item-actions{display:flex;gap:6px;flex-shrink:0;align-items:flex-start}.sched-complete-form{display:grid;gap:12px;padding:14px;border-radius:var(--radius);border:1px solid color-mix(in oklab,var(--primary) 25%,var(--border));background:color-mix(in oklab,var(--primary) 4%,var(--surface-soft))}.sched-complete-grid{display:grid;gap:12px;grid-template-columns:minmax(160px,220px) minmax(0,1fr)}.sched-complete-actions{display:flex;flex-wrap:wrap;gap:8px}@media(max-width:640px){.complete-form-grid,.sched-complete-grid{grid-template-columns:1fr}.sched-item-main{flex-direction:column}.sched-item-actions{width:100%}.prop-health-grid{grid-template-columns:1fr 1fr}}@keyframes app-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
