:root{--bg:#f5f5f5;--white:#fff;--border:#e8e8e8;--border-light:#f0f0f0;--text:#111;--text-secondary:#666;--text-muted:#999;--primary:#f5c518;--primary-dark:#e5b516;--primary-bg:#fffbe6;--primary-border:#f5e6a3;--accent:#f5c518;--accent-dark:#e5b516;--link:#d4a817;--success:#17c964;--success-bg:#e8faf0;--success-border:#b3eccc;--warning:#f5a623;--warning-bg:#fef5e7;--warning-border:#fadea8;--danger:#f31260;--danger-bg:#fde8ef;--danger-border:#f9b0ca;--orange:#ff6a00;--orange-bg:#fff0e6;--sidebar-bg:#111;--sidebar-hover:#1a1a1a;--sidebar-active:#f5c518;--sidebar-text:#999;--sidebar-muted:#666;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 24px #00000014;--radius-sm:6px;--radius:8px;--radius-lg:12px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text);background:var(--bg);height:100vh;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:13.5px;line-height:1.5;overflow:hidden}.mono{font-family:JetBrains Mono,monospace;font-size:12px}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:inherit}.app{height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);width:230px;color:var(--sidebar-text);border-right:1px solid #222;flex-direction:column;flex-shrink:0;display:flex}.sidebar-brand{border-bottom:1px solid #222;align-items:center;gap:10px;height:52px;padding:0 16px;display:flex}.brand-icon{color:#fff;background:linear-gradient(135deg,#3e97ff,#17c964);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;font-weight:700;display:flex}.brand-logo{object-fit:contain;flex-shrink:0;width:38px;height:38px}.brand-logo-full{object-fit:contain;width:auto;height:28px}.brand-name{letter-spacing:-.3px;font-size:17px;font-weight:700}.brand-sub{color:var(--sidebar-muted);margin-top:1px;font-size:11px}.sidebar-nav{flex:1;padding:8px;overflow-y:auto}.nav-section{margin-top:16px;margin-bottom:6px;padding:0 10px}.nav-section-label{text-transform:uppercase;letter-spacing:.8px;color:var(--sidebar-muted);font-size:10px;font-weight:600}.nav-item{border-radius:var(--radius);cursor:pointer;color:var(--sidebar-text);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:8px 10px;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-item:hover{color:#e0e0e0;background:#2a2a2a;text-decoration:none}.nav-item.active{background:var(--sidebar-active);color:var(--text);font-weight:600}.nav-icon{opacity:.7;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:14px;display:flex}.nav-item.active .nav-icon{opacity:1}.sidebar-footer{cursor:pointer;border-top:1px solid #222;align-items:center;gap:10px;padding:12px 16px;display:flex}.sidebar-footer:hover{background:var(--sidebar-hover)}.avatar{background:var(--accent);width:30px;height:30px;color:var(--text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.sidebar-user{font-size:12px}.sidebar-org{color:var(--sidebar-muted);font-size:11px}.sidebar-mqtt-status{border-top:1px solid #222;align-items:center;gap:8px;padding:10px 16px;display:flex}.mqtt-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;transition:background-color .3s}.mqtt-dot--pulse{animation:2s ease-in-out infinite mqtt-pulse}@keyframes mqtt-pulse{0%,to{opacity:1}50%{opacity:.4}}.mqtt-label{color:var(--sidebar-muted);letter-spacing:.3px;font-size:11px;font-weight:500}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--white);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;height:52px;padding:0 20px;display:flex}.topbar-title{font-size:15px;font-weight:700;display:none}.topbar-search{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex:1;align-items:center;gap:8px;max-width:400px;padding:6px 10px;display:flex}.topbar-search input{width:100%;color:var(--text);background:0 0;border:0;outline:none;font-size:13px}.topbar-search svg{color:var(--text-muted);flex-shrink:0}.topbar-actions{align-items:center;gap:16px;margin-left:auto;display:flex}.org-text{color:var(--text);cursor:pointer;align-items:center;gap:4px;font-size:14.5px;font-weight:400;display:flex}.org-text:hover{opacity:.8}.tb-divider{background:var(--border);width:1px;height:20px;margin:0 4px}.tb-icon-btn{cursor:pointer;color:var(--text);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.tb-icon-btn:hover{color:var(--primary)}.tb-add-btn{color:var(--white);cursor:pointer;background:#111;border:none;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s;display:flex}.tb-add-btn:hover{background:#222}.tb-profile-icon{cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;margin-left:8px;display:flex;overflow:hidden}.tb-profile-icon .avatar{width:100%;height:100%}.content-area{flex-direction:column;flex:1;display:flex;overflow:hidden}.three-panel{flex:1;display:flex;overflow:hidden}.panel-list{background:var(--white);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:300px;display:flex}.panel-list-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.panel-list-title{cursor:pointer;font-size:13px;font-weight:700}.panel-list-count{color:var(--text-muted);font-size:11px}.add-btn{border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);width:28px;height:28px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex}.add-btn:hover{background:var(--accent-dark);color:var(--text)}.panel-list-actions{align-items:center;gap:6px;display:flex}.panel-list-icon-btn{border-radius:var(--radius-sm);border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:#f9fafb;justify-content:center;align-items:center;transition:all .15s;display:flex}.panel-list-icon-btn:hover{color:var(--text);background:#eaecef}.panel-list-search{border-bottom:1px solid var(--border-light);padding:8px 14px}.panel-list-search input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);outline:none;width:100%;padding:6px 8px;font-size:12px}.panel-list-search input:focus{border-color:var(--primary)}.panel-list-items{flex:1;overflow-y:auto}.list-item{border-bottom:1px solid var(--border-light);cursor:pointer;padding:10px 14px;transition:background .1s}.list-item:hover{background:#fafbfe}.list-item.active{border-left:3px solid var(--accent);background:#fafaf5}.list-item-name{margin-bottom:2px;font-size:13px;font-weight:600}.list-item-amount{float:right;color:var(--text);font-size:13px;font-weight:600}.list-item-sub{color:var(--text-muted);font-size:11.5px}.panel-detail{background:var(--white);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.detail-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 24px;display:flex}.detail-name{margin-bottom:2px;font-size:20px;font-weight:700}.detail-meta{color:var(--text-muted);font-size:12px}.detail-actions{flex-shrink:0;gap:8px;display:flex}.detail-tabs{border-bottom:1px solid var(--border);background:#fafbfe;gap:0;padding:0 24px;display:flex}.dtab{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:2px solid #0000;padding:10px 16px;font-size:13px;font-weight:500;transition:all .15s}.dtab:hover{color:var(--text)}.dtab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.detail-body{flex:1;gap:0;min-height:0;display:flex}.detail-left{border-right:1px solid var(--border);flex:1;min-width:0;padding:20px 24px;overflow-y:auto}.detail-right{background:#fcfcfe;flex-shrink:0;width:340px;padding:20px;overflow-y:auto}.section{margin-bottom:20px}.section-header{border-bottom:1px solid var(--border-light);cursor:pointer;justify-content:space-between;align-items:center;margin-bottom:10px;padding:8px 0;display:flex}.section-title{text-transform:uppercase;letter-spacing:.6px;color:var(--text-secondary);font-size:11px;font-weight:700}.section-toggle{color:var(--text-muted);font-size:12px}.info-row{align-items:flex-start;padding:5px 0;font-size:13px;display:flex}.info-label{width:140px;color:var(--text-muted);flex-shrink:0;font-size:12.5px}.info-value{flex:1;font-weight:500}.info-value.mono{font-family:JetBrains Mono,monospace;font-size:12px}.tag-item{border:1px solid var(--border-light);border-radius:var(--radius);background:var(--white);align-items:center;gap:10px;margin-bottom:6px;padding:8px 10px;display:flex}.tag-uid{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500}.tag-actions{gap:4px;margin-left:auto;display:flex}.contact-row{border-bottom:1px solid var(--border-light);align-items:center;gap:10px;padding:8px 0;display:flex}.contact-avatar{background:var(--bg);width:34px;height:34px;color:var(--text-muted);border:1px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:flex}.contact-name{font-size:13px;font-weight:600}.contact-sub{color:var(--text-muted);font-size:11.5px}.fin-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:14px}.fin-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;font-size:11px;font-weight:600}.fin-value{font-size:22px;font-weight:700}.fin-value.danger{color:var(--danger)}.fin-value.success{color:var(--success)}.fin-sub{color:var(--text-muted);margin-top:2px;font-size:11.5px}.receivable-table{border-collapse:collapse;width:100%;font-size:12px}.receivable-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:6px 0;font-size:10px;font-weight:600}.receivable-table td{padding:6px 0}.receivable-table .amt{text-align:right;font-weight:600}.receivable-table .amt.overdue{color:var(--danger)}.mini-chart{align-items:flex-end;gap:4px;height:60px;margin:10px 0;display:flex}.mini-bar{background:var(--primary-bg);border-radius:3px 3px 0 0;flex:1;min-height:4px;transition:height .3s;position:relative}.mini-bar:hover{background:var(--primary)}.chart-labels{gap:4px;display:flex}.chart-labels span{text-align:center;color:var(--text-muted);flex:1;font-size:9px}.timeline{padding-left:16px;position:relative}.timeline:before{content:"";background:var(--border);width:1px;position:absolute;top:0;bottom:0;left:5px}.tl-item{padding-bottom:14px;position:relative}.tl-dot{background:var(--white);border:2px solid var(--primary);border-radius:50%;width:11px;height:11px;position:absolute;top:3px;left:-16px}.tl-dot.success{border-color:var(--success)}.tl-dot.warning{border-color:var(--warning)}.tl-dot.danger{border-color:var(--danger)}.tl-date{color:var(--text-muted);margin-bottom:2px;font-size:10.5px}.tl-text{font-size:12.5px}.badge{white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-dot{border-radius:50%;width:6px;height:6px}.badge.success{background:var(--success-bg);color:#0a8043}.badge.success .badge-dot{background:var(--success)}.badge.warning{background:var(--warning-bg);color:#8b5e00}.badge.warning .badge-dot{background:var(--warning)}.badge.danger{background:var(--danger-bg);color:#9e0142}.badge.danger .badge-dot{background:var(--danger)}.badge.info{background:var(--primary-bg);color:var(--primary-dark)}.badge.info .badge-dot{background:var(--primary)}.badge.neutral{background:var(--bg);color:var(--text-secondary)}.badge.neutral .badge-dot{background:var(--text-muted)}.btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--white);color:var(--text);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:7px 14px;font-size:12.5px;font-weight:600;transition:all .15s;display:inline-flex}.btn:hover{background:var(--bg)}.btn.primary{color:#fff;background:#111;border-color:#111}.btn.primary:hover{background:#333}.btn.accent{color:#fff;background:#111;border-color:#111}.btn.accent:hover{background:#333}.btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn.danger:hover{background:#d10b52}.btn.orange{background:var(--orange);color:#fff;border-color:var(--orange)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--bg)}.btn.sm{padding:4px 8px;font-size:11.5px}.btn.xs{border-radius:4px;padding:2px 6px;font-size:11px}.custom-tooltip{position:relative}.custom-tooltip:after{content:attr(data-tooltip);color:#333;white-space:nowrap;opacity:0;visibility:hidden;z-index:10000;pointer-events:none;background:#f4f4f5;border:1px solid #e5e5e5;border-radius:6px;padding:5px 10px;font-size:13px;font-weight:500;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000014,0 1px 2px #00000008}.custom-tooltip:hover:after{opacity:1;visibility:visible}.custom-tooltip.tooltip-align-right:after{left:auto;right:0;transform:none}.custom-tooltip.tooltip-above:after{top:auto;bottom:calc(100% + 8px)}table.data{border-collapse:collapse;width:100%;font-size:13px}table.data tr{position:relative}table.data tr:hover,table.data tr:focus-within{z-index:10}:is(table.data tr:has(.row-dropdown-container:focus-within),table.data tr:has(.row-dropdown-container:focus)){z-index:100}.row-action-btn{color:#fff;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:opacity .15s,transform .15s;display:inline-flex}table.data tr:hover .row-action-btn{opacity:1;background:var(--accent)}.row-action-btn:hover{transform:scale(1.1)}.row-action-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:transform .12s,box-shadow .12s;display:flex}.row-action-btn:hover{transform:scale(1.1);box-shadow:0 2px 6px #00000026}.row-dropdown-container{outline:none;display:inline-block;position:relative}.row-dropdown-menu{z-index:1000;text-align:left;background:#fff;border:1px solid #e5e5e5;border-radius:6px;flex-direction:column;min-width:160px;padding:4px;display:none;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 12px #0000001a,0 1px 2px #0000000d}.row-dropdown-container:focus-within .row-dropdown-menu,.row-dropdown-container:focus .row-dropdown-menu{display:flex}:is(td:has(.row-dropdown-container:focus-within),td:has(.row-dropdown-container:focus)){z-index:1000;position:relative}.row-dropdown-item{color:#111;cursor:pointer;white-space:nowrap;border-radius:4px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:500;transition:background .1s;display:flex}.row-dropdown-item:hover{background:#f0f0f0}.row-dropdown-item svg{color:#111}table.data th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);border-bottom:1px solid var(--border-light);white-space:nowrap;background:#fafbfe;padding:10px 14px;font-size:11px;font-weight:700}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.sortable-th:hover{color:var(--text)}.th-content{align-items:center;gap:6px;display:flex}.th-content.justify-end{justify-content:flex-end}.th-content.justify-center{justify-content:center}.sort-icon{color:var(--text-muted);justify-content:center;align-items:center;margin-left:2px;display:flex}table.data td{border-bottom:1px solid var(--border-light);vertical-align:middle;white-space:nowrap;padding:8px 14px}table.data tbody tr:last-child td{border-bottom:none}table.data tr.clickable{cursor:pointer}table.data tr.clickable:hover td{background:#f8f9fc}.full-view{background:var(--bg);flex:1;padding:20px 24px;overflow:auto}.view-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.view-header h2{margin-bottom:2px;font-size:20px;font-weight:700}.view-header p{color:var(--text-muted);font-size:13px}.card-panel{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-panel table.data th:first-child{border-top-left-radius:calc(var(--radius-lg) - 1px)}.card-panel table.data th:last-child{border-top-right-radius:calc(var(--radius-lg) - 1px)}.stat-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:16px}.stat-label{color:var(--text-muted);font-size:11.5px;font-weight:600}.stat-value{margin-top:4px;font-size:24px;font-weight:700}.stat-sub{color:var(--text-muted);margin-top:2px;font-size:11.5px}.filter-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;display:flex}.filter-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;align-items:center;gap:8px;min-width:180px;padding:5px 8px;display:flex}.filter-input input{background:0 0;border:0;outline:none;width:100%;font-size:12.5px}.chip{border:1px solid var(--border);background:var(--white);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:99px;padding:4px 10px;font-size:11.5px;font-weight:600;transition:all .1s}.chip:hover{border-color:var(--primary-border)}.chip.active{background:var(--primary-bg);border-color:var(--primary-border);color:var(--primary-dark)}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-overlay.open{display:flex}.modal{background:var(--white);border-radius:var(--radius-lg);width:min(600px,100%);max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #0003}.modal.wide{width:min(900px,100%)}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h3{font-size:15px;font-weight:700}.modal-close{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--white);cursor:pointer;width:28px;height:28px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.modal-body{padding:20px}.modal-footer{border-top:1px solid var(--border);background:#fafbfe;justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.field{margin-bottom:14px}.field label{color:var(--text-secondary);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--white);outline:none;width:100%;padding:8px 10px;font-size:13px;transition:border-color .15s}.field input:focus,.field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3e97ff1a}.error{color:var(--danger);margin-top:4px;font-size:11px;display:none}.form-grid{flex-direction:column;gap:16px;margin-bottom:32px;display:flex}.form-grid-row{align-items:center;gap:16px;display:flex}.form-grid-label{width:160px;color:var(--text);flex-shrink:0;font-size:13px;font-weight:500}.form-grid-inputs{flex:1;align-items:center;gap:12px;display:flex}.custom-radio{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.custom-radio input[type=radio]{accent-color:var(--accent);width:14px;height:14px;margin:0}.custom-checkbox{cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.custom-checkbox input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px;margin:0}.m-tabs{border-bottom:1px solid var(--border-light);gap:24px;margin-bottom:24px;display:flex}.m-tab{color:var(--text-muted);cursor:pointer;padding:8px 0;font-size:13px;font-weight:500;transition:color .2s;position:relative}.m-tab.active{color:var(--text)}.m-tab.active:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:-1px;left:0;right:0}.m-tab-content{display:none}.m-tab-content.active{display:block}.m-section-title{margin-bottom:16px;font-size:16px;font-weight:600}.field .help{color:var(--text-muted);margin-top:3px;font-size:11px}.field .error{color:var(--danger);margin-top:3px;font-size:11px;font-weight:600;display:none}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.toast-container{z-index:2000;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--text);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:220px;padding:10px 16px;font-size:13px;font-weight:500;animation:.2s slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.empty-state{text-align:center;color:var(--text-muted);padding:40px 20px}.empty-state h3{color:var(--text-secondary);margin-bottom:6px;font-size:15px}.empty-state p{margin-bottom:14px;font-size:13px}.flex{display:flex}.flex-1{flex:1}.gap-8{gap:8px}.gap-12{gap:12px}.items-center{align-items:center}.justify-between{justify-content:space-between}.text-right{text-align:right}.mt-12{margin-top:12px}.mb-8{margin-bottom:8px}.service-pill{border-radius:99px;align-items:center;gap:4px;margin:1px 2px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.service-pill.elevator{background:var(--primary-bg);color:var(--primary-dark)}.service-pill.cleaning{color:#7c3aed;background:#f3e8ff}.service-pill.electrical{background:var(--warning-bg);color:#8b5e00}.service-pill.maintenance{background:var(--success-bg);color:#0a8043}.cf-wrapper{position:relative}.cf-trigger{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.cf-trigger:hover .cf-chevron{opacity:1}.cf-chevron{opacity:.4;margin-top:2px;transition:transform .2s,opacity .15s}.cf-wrapper:has(.cf-dropdown.open) .cf-chevron{opacity:1;transform:rotate(180deg)}.cf-dropdown{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:200px;box-shadow:var(--shadow-lg);z-index:1000;opacity:0;visibility:hidden;padding:4px 0;transition:all .15s;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;transform:translateY(-4px)}.cf-dropdown.open{opacity:1;visibility:visible;transform:translateY(0)}.cf-option{color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:9px 14px;font-size:13px;transition:background .12s;display:flex}.cf-option:hover{background:#f5f5f5}.cf-check{color:#0000;flex-shrink:0;width:16px;font-size:13px;font-weight:700}.cf-option.active .cf-check{color:var(--text)}.qa-wrapper{position:relative}.qa-dropdown{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);width:240px;box-shadow:var(--shadow-lg);z-index:1000;opacity:0;visibility:hidden;transition:all .15s;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;transform:translateY(-6px)}.qa-dropdown.open{opacity:1;visibility:visible;transform:translateY(0)}.qa-item{cursor:pointer;align-items:center;gap:12px;padding:12px 16px;transition:background .12s;display:flex}.qa-item:hover{background:var(--bg)}.qa-item:not(:last-child){border-bottom:1px solid var(--border-light)}.qa-icon{border-radius:var(--radius-sm);background:var(--bg);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;display:flex}.qa-icon:empty{display:none}.qa-label{color:var(--text);font-size:13px;font-weight:600}.qa-desc{color:var(--text-muted);margin-top:1px;font-size:11px}.ct-table{border-collapse:collapse;border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:12.5px;overflow:hidden}.ct-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);background:var(--bg);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px;font-size:10px;font-weight:600}.ct-table tbody td{border-bottom:1px solid var(--border-light);vertical-align:middle;padding:4px}.ct-row:hover{background:#fafbfe}.ct-row.ap-drop-target{cursor:grab}.ct-row.ap-dragging{opacity:.5;cursor:grabbing}.ct-row.ap-drop-target:not(.ap-dragging):hover{background:var(--primary-bg);outline:2px solid var(--primary);outline-offset:-2px}.ct-input{width:100%;color:var(--text);box-sizing:border-box;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;padding:6px 8px;font-family:inherit;font-size:12px;transition:all .15s}.ct-input:hover{background:var(--bg)}.ct-input:focus{border-color:var(--primary);background:var(--white);box-shadow:0 0 0 2px #f5c5181f}.ct-select{cursor:pointer;color:var(--text);background:0 0;border:1px solid #0000;border-radius:4px;outline:none;width:100%;padding:6px;font-family:inherit;font-size:12px;transition:all .15s}.ct-select:hover{background:var(--bg)}.ct-select:focus{border-color:var(--primary);background:var(--white)}.ct-select.ct-unselected{color:var(--text-muted)}.chip-add{border:1px dashed var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:2px 8px;font-size:11px;transition:all .15s}.ct-remove{width:24px;height:24px;color:var(--text-muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.ct-row:hover .ct-remove{opacity:1}.ct-remove:hover{background:var(--danger-bg);color:var(--danger)}.chip-add{border:1px dashed var(--border);height:22px;color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:4px;padding:0 8px;font-size:11px;font-weight:500;transition:all .15s;display:inline-flex}.chip-add:hover{border-color:var(--primary);color:var(--primary-dark);background:var(--primary-bg)}.add-user-row{border:1px dashed var(--border);border-radius:var(--radius);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;margin-top:8px;padding:10px;font-family:inherit;font-size:12px;font-weight:500;transition:all .2s;display:flex}.add-user-row:hover{border-color:var(--primary);color:var(--primary-dark);background:var(--primary-bg)}@media (max-width:1100px){.sidebar{width:60px}.sidebar .brand-name,.sidebar .brand-sub,.sidebar .nav-item span:not(.nav-icon),.sidebar .nav-section,.sidebar-user,.sidebar-org{display:none}.sidebar .nav-item{justify-content:center;padding:10px}.sidebar-brand{justify-content:center;padding:14px 10px}.panel-list{width:220px}.detail-right{width:280px}}.pg-bar{color:var(--text-muted);justify-content:space-between;align-items:center;padding:12px 16px;font-size:12px;display:flex}.pg-count{color:var(--text-muted);font-weight:500}.pg-controls{align-items:center;gap:12px;display:flex}.pg-group{border:1px solid var(--border);border-radius:8px;align-items:center;height:32px;display:inline-flex;overflow:visible}.pg-perpage{height:100%;color:var(--text-muted);border-right:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;background:#f9fafb;align-items:center;gap:6px;padding:0 12px 0 10px;transition:color .15s;display:flex;position:relative}.pg-perpage:hover{color:var(--primary)}.pg-perpage svg{flex-shrink:0}.pg-perpage-label{white-space:nowrap;font-size:12px;font-weight:500}.pp-dropdown{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:160px;box-shadow:var(--shadow-lg);z-index:1000;opacity:0;visibility:hidden;padding:4px 0;transition:all .15s;position:absolute;bottom:calc(100% + 6px);left:0;overflow:hidden;transform:translateY(4px)}.pp-dropdown.open{opacity:1;visibility:visible;transform:translateY(0)}.pp-option{color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:9px 14px;font-size:13px;transition:background .12s;display:flex}.pp-option:hover{background:#f5f5f5}.pp-check{color:#0000;flex-shrink:0;width:16px;font-size:13px;font-weight:700}.pp-option.active .pp-check{color:var(--text)}.pg-btn{cursor:pointer;width:30px;height:100%;color:var(--text-muted);background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;font-weight:700;transition:color .12s,background .12s;display:flex}.pg-btn:hover:not(:disabled){color:var(--text);background:#f0f0f0}.pg-btn:disabled{opacity:.25;cursor:default}.pg-range{color:var(--text);padding:0 2px;font-size:12px;font-weight:500;line-height:28px}table.data td input[type=checkbox],table.data th input[type=checkbox]{border:1px solid var(--border);cursor:pointer;width:14px;height:14px;accent-color:var(--accent);border-radius:4px}@media (max-width:900px){.panel-list,.detail-right{display:none}}.svc-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.login-page{background:#0a0a0a;justify-content:center;align-items:center;min-height:100vh;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;display:flex;position:relative;overflow:hidden}.login-bg{pointer-events:none;position:absolute;inset:0}.login-grid{background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0}.login-glow{filter:blur(120px);opacity:.4;border-radius:50%;position:absolute}.login-glow-1{background:radial-gradient(circle,#f5c51840,#0000 70%);width:500px;height:500px;animation:8s ease-in-out infinite login-float;top:-150px;right:-100px}.login-glow-2{background:radial-gradient(circle,#f5c51826,#0000 70%);width:400px;height:400px;animation:10s ease-in-out infinite reverse login-float;bottom:-100px;left:-80px}@keyframes login-float{0%,to{transform:translate(0)}50%{transform:translate(30px,-20px)}}.login-card{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#121212cc;border:1px solid #ffffff14;border-radius:20px;width:100%;max-width:420px;padding:40px;position:relative;box-shadow:0 24px 80px #0009}.login-logo{justify-content:center;margin-bottom:32px;display:flex}.login-logo-img{filter:brightness(0)invert();width:auto;height:36px}.login-heading{text-align:center;margin-bottom:32px}.login-heading h1{color:#fff;letter-spacing:-.3px;margin-bottom:6px;font-size:24px;font-weight:700}.login-heading p{color:#ffffff73;font-size:14px}.login-form{flex-direction:column;gap:20px;display:flex}.login-field{flex-direction:column;gap:6px;display:flex}.login-field label{color:#fff9;font-size:13px;font-weight:500}.login-field input{color:#fff;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:10px;outline:none;padding:12px 14px;font-size:14px;transition:border-color .2s,box-shadow .2s}.login-field input::placeholder{color:#ffffff40}.login-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #f5c51826}.login-error{color:#f31260;background:#f312601a;border:1px solid #f3126033;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.login-btn{background:var(--primary);color:#111;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;min-height:46px;padding:12px;font-size:15px;font-weight:600;transition:background .2s,transform .1s;display:flex}.login-btn:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px)}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-spinner{border:2px solid #1111114d;border-top-color:#111;border-radius:50%;width:20px;height:20px;animation:.6s linear infinite login-spin}@keyframes login-spin{to{transform:rotate(360deg)}}.login-footer{color:#fff3;justify-content:center;gap:8px;margin-top:28px;font-size:12px;display:flex}
