*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root,:root[data-theme=dark]{--bg-primary:#000;--bg-secondary:#000;--bg-tertiary:#2a2a2a;--bg-hover:#383838;--border:#3a3a3a;--text-primary:#fff;--text-secondary:#b0b8c0;--text-muted:#707880;--accent:#2196f3;--accent-hover:#42a5f5;--danger:#e53935;--danger-hover:#ef5350;--positive:#4caf50;--select-arrow:"%23b0b8c0";--sidebar-width:200px}:root[data-theme=light]{--bg-primary:#e8e9ed;--bg-secondary:#f3f4f7;--bg-tertiary:#dde0e6;--bg-hover:#d0d3db;--border:#b8bcc6;--text-primary:#1c1e26;--text-secondary:#4a5060;--text-muted:#7a8090;--accent:#2196f3;--accent-hover:#42a5f5;--danger:#b91c1c;--danger-hover:#dc2626;--positive:#15803d;--select-arrow:"%237a8090";--sidebar-width:200px}:root{color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;font-family:-apple-system,SF Pro Text,Helvetica Neue,system-ui,sans-serif;font-size:13px;line-height:1.45}body{min-height:100vh;overflow:hidden}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236b7280'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding-right:24px!important}:root[data-theme=light] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%239a9aa8'/%3E%3C/svg%3E")}select option{background:var(--bg-secondary);color:var(--text-primary)}#root{height:100vh}.custom-select{width:100%;position:relative}.custom-select-trigger{border:1px solid var(--border);background:var(--bg-primary);width:100%;color:var(--text-primary);cursor:pointer;border-radius:3px;outline:none;justify-content:space-between;align-items:center;padding:6px 10px;font-family:inherit;font-size:12px;transition:border-color .1s;display:flex}.custom-select-trigger:hover,.custom-select-trigger.open{border-color:var(--accent)}.custom-select-trigger .placeholder{color:var(--text-muted)}.custom-select-arrow{color:var(--text-muted);margin-left:8px;font-size:10px}.custom-select-menu{background:var(--bg-secondary);border:1px solid var(--border);z-index:50;border-radius:3px;flex-direction:column;max-height:240px;padding:2px;display:flex;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 16px #00000080}.custom-select-option{color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:2px;padding:6px 10px;font-family:inherit;font-size:12px;transition:background .1s}.custom-select-option:hover{background:var(--bg-hover);color:var(--text-primary)}.custom-select-option.selected{background:var(--accent);color:#fff}.custom-select-dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.customers-module{flex-direction:column;gap:10px;height:100%;display:flex}.customers-toolbar{gap:6px;display:flex}.customers-search{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:5px;outline:none;flex:1;padding:6px 10px;font-size:12px}.customers-search:focus{border-color:var(--accent)}.customers-search::placeholder{color:var(--text-muted)}.customers-type-filter{flex-shrink:0;gap:2px;display:flex}.customers-filter-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:3px;padding:5px 10px;font-size:11px;transition:all .1s}.customers-filter-btn:hover{border-color:var(--accent);color:var(--accent)}.customers-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.customers-add-btn{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:5px;padding:6px 12px;font-size:12px;font-weight:500;transition:background .15s}.customers-add-btn:hover{background:var(--accent-hover)}.customers-list{flex-direction:column;flex:1;gap:8px;padding:8px 0;display:flex;overflow-y:auto}.customers-empty{color:var(--text-muted);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.customer-row{background:var(--bg-tertiary);border:1px solid var(--border);cursor:pointer;border-radius:3px;align-items:center;gap:10px;padding:8px 16px;transition:background .1s;display:flex}.customer-row:hover{background:var(--bg-hover);background:var(--bg-hover)}.customer-status-toggle{cursor:pointer;text-align:center;flex-shrink:0;width:16px;font-size:10px;transition:all .1s}.customer-status-toggle.status-setup{color:#22c55e}.customer-status-toggle.status-notsetup{color:#ef4444}.customer-status-toggle:hover{transform:scale(1.3)}.customer-row-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;font-weight:500;overflow:hidden}.customer-row:hover .customer-row-name{color:var(--text-primary)}.customer-row-phone,.customer-row-email{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;overflow:hidden}.customer-row-phone{flex-shrink:0;width:90px}.customer-row-email{flex-shrink:0;width:140px}.customer-type-badge{text-transform:uppercase;letter-spacing:.5px;border:1px solid;border-radius:3px;flex-shrink:0;padding:4px 8px;font-size:10px;font-weight:500}.customer-type-badge.privat,.customer-type-badge.erhverv{color:var(--text-primary);border-color:var(--text-muted);text-align:center;background:0 0;width:60px}.customer-form{flex-direction:column;gap:10px;height:100%;display:flex}.customer-form-header{justify-content:space-between;align-items:center;display:flex}.customer-form-title{color:var(--text-primary);font-size:13px;font-weight:600}.customer-form-back{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:5px;padding:4px 10px;font-size:11px;transition:all .15s}.customer-form-back:hover{border-color:var(--text-secondary);color:var(--text-primary)}.customer-form-fields{flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.customer-form-row{gap:8px;display:flex}.customer-form-row>.customer-field{flex:1}.customer-field{flex-direction:column;gap:3px;display:flex}.customer-field label{text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);font-size:10px;font-weight:600}.customer-field input,.customer-field select,.customer-field textarea{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:5px;outline:none;padding:6px 10px;font-family:inherit;font-size:12px;transition:border-color .15s}.customer-field input:focus,.customer-field select:focus,.customer-field textarea:focus{border-color:var(--accent)}.customer-field textarea{resize:vertical;min-height:50px}.customer-field select{cursor:pointer}.customer-form-actions{justify-content:flex-end;gap:6px;display:flex}.customer-save-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:5px;padding:6px 16px;font-size:12px;font-weight:500;transition:background .15s}.customer-save-btn:hover{background:var(--accent-hover)}.customer-form-header-actions{align-items:center;gap:6px;display:flex}.customer-delete-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:3px;padding:4px 8px;font-size:10px;transition:all .15s}.customer-delete-btn:hover{border-color:var(--danger);color:var(--danger)}.customer-status-bar{border:1px solid var(--border);border-radius:4px;align-items:center;gap:0;margin-bottom:6px;padding:0;font-size:10px;display:flex;position:relative}.customer-status-indicator{border-right:1px solid var(--border);padding:5px 10px;font-weight:600}.customer-status-indicator.active{color:#22c55e}.customer-status-indicator.paused{color:#f59e0b}.customer-status-indicator.inactive{color:var(--text-muted)}.customer-status-detail{border-right:1px solid var(--border);padding:5px 10px}.customer-status-detail.ok{color:#22c55e}.customer-status-detail.warning{color:var(--danger)}.customer-status-detail.paused{color:#f59e0b}.customer-status-bar .custom-select{width:100px;margin-left:auto}.customer-status-bar .custom-select-trigger{border:none;border-radius:0;padding:5px 10px;font-size:10px}.customer-delete-section{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.customer-section-divider{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-top:1px solid var(--border);margin-top:4px;padding:8px 0 4px;font-size:10px;font-weight:600}.customer-row-team{text-transform:uppercase;letter-spacing:.5px;text-align:center;background:0 0;border:1px solid;border-radius:3px;flex-shrink:0;width:65px;padding:4px 8px;font-size:10px;font-weight:500}.customer-row-team.inactive{color:var(--text-muted);border-color:var(--border);opacity:.4}.customer-row-freq{text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;color:var(--text-primary);border:1px solid var(--text-muted);text-align:center;background:0 0;border-radius:3px;flex-shrink:0;padding:4px 8px;font-size:10px;font-weight:500}.customer-row-freq.inactive{color:var(--text-muted);border-color:var(--border);opacity:.4}.dinero-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border-radius:3px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .1s}.dinero-btn:hover{background:var(--accent);color:#fff}.dinero-sync-section{border-top:1px solid var(--border);padding-top:12px}.dinero-sync-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:3px;width:100%;padding:10px;font-size:13px;font-weight:600;transition:background .1s}.dinero-sync-btn:hover{background:var(--accent-hover)}.dinero-sync-btn:disabled{opacity:.6;cursor:not-allowed}.dinero-sync-message{color:var(--accent);background:#2196f31a;border:1px solid #2196f34d;border-radius:3px;padding:8px 12px;font-size:12px}.dinero-info{border-top:1px solid var(--border);padding:8px 0}.dinero-info-row{color:var(--text-secondary);justify-content:space-between;font-size:11px;display:flex}.dinero-settings-toggle{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;padding:6px 0;font-size:11px}.dinero-settings-toggle:hover{color:var(--accent)}.dinero-not-configured{color:var(--text-muted);padding:8px 0;font-size:11px}.dinero-sync-message.error{color:var(--danger);background:#e539351a;border-color:#e539354d}.customer-row-arrow{color:var(--text-muted);flex-shrink:0;margin-left:4px;font-size:18px;line-height:1;transition:color .1s,transform .1s}.customer-row:hover .customer-row-arrow{color:var(--accent);transform:translate(2px)}.calendar-module{flex-direction:column;gap:8px;height:100%;display:flex;position:relative}.cal-toolbar{flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex}.cal-toolbar-left,.cal-toolbar-right{align-items:center;gap:4px;display:flex}.cal-nav-btn{border:1px solid var(--border);width:26px;height:26px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;font-size:18px;transition:all .15s;display:flex}.cal-nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.cal-week-label{color:var(--text-primary);text-align:center;min-width:50px;font-size:12px;font-weight:600}.cal-date-range-btn{color:var(--text-primary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:3px;padding:4px 12px;font-size:12px;font-weight:700;transition:all .1s}.cal-date-range-btn:hover{border-color:var(--accent);color:var(--accent)}.cal-today-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:4px 8px;font-size:11px;transition:all .15s}.cal-today-btn:hover{background:var(--accent);color:#fff}.cal-print-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;padding:4px 8px;font-size:11px;transition:all .15s}.cal-print-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.cal-grid-wrapper{border:1px solid var(--border);border-radius:2px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.cal-day-headers{border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.cal-slot-label-header{border-right:1px solid var(--border);flex-shrink:0;width:90px}.cal-day-header{text-align:center;background:var(--bg-secondary);border-left:1px solid var(--border);flex-direction:column;flex:1;gap:1px;padding:5px 4px;display:flex}.cal-day-header:first-of-type{border-left:none}.cal-day-header.today{background:#3b82f60f}.cal-day-name{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-size:10px;font-weight:700}.cal-day-date{color:var(--text-primary);font-size:12px;font-weight:700}.cal-day-header.today .cal-day-name,.cal-day-header.today .cal-day-date{color:#60a5fa}.cal-slots-scroll{scrollbar-width:thin;scrollbar-color:#555 transparent;flex:1;overflow:hidden auto}.cal-slots-scroll::-webkit-scrollbar{width:6px}.cal-slots-scroll::-webkit-scrollbar-track{background:0 0}.cal-slots-scroll::-webkit-scrollbar-thumb{background:#555;border-radius:3px}.cal-slot-band{border-bottom:1px solid var(--border);min-height:80px;display:flex}.cal-slot-band.unassigned{background:#2196f30a}.cal-slot-label{width:90px;color:var(--text-muted);border-right:1px solid var(--border);text-align:right;flex-shrink:0;padding:8px 6px;font-size:10px;font-weight:600}.cal-slot-cell{border-left:1px solid var(--border);flex-direction:column;flex:1;gap:3px;min-height:60px;padding:3px 4px;display:flex;overflow:hidden}.cal-slot-cell:first-of-type{border-left:none}.cal-slot-cell.today{background:#3b82f608}.cal-slot-cell.drag-hover{box-shadow:inset 0 0 0 2px var(--accent);background:#2196f31f}.cal-entry{cursor:grab;border-bottom:1px solid #0000001a;border-radius:4px;align-items:center;gap:4px;min-width:0;max-width:100%;padding:2px 6px;transition:all .15s;display:flex;overflow:hidden;box-shadow:0 1px 3px #00000026}.cal-entry:hover{transform:scale(1.02);box-shadow:0 2px 8px #00000040}.cal-entry:active{cursor:grabbing;transform:scale(.98)}.cal-entry.dragging{opacity:.35}.cal-entry.drag-over{box-shadow:0 0 0 2px var(--accent)}.cal-entry-number{color:#fff;background:#00000040;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:flex}.cal-entry-inner{flex:1;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.cal-entry-customer{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;overflow:hidden}.cal-entry-hours{color:#ffffffbf;flex-shrink:0;margin-left:auto;font-size:10px}.cal-incomplete-section{border-top:1px solid var(--border);padding:6px 8px}.cal-incomplete-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:4px;font-size:10px;font-weight:600}.cal-incomplete-grid{flex-wrap:wrap;gap:4px;display:flex}.cal-incomplete-chip{cursor:pointer;white-space:nowrap;color:#ef4444;background:#ef444414;border:1px solid #ef44444d;border-radius:4px;padding:3px 8px;font-size:10px;font-weight:500;transition:all .1s}.cal-incomplete-chip:hover{background:#ef44442e;border-color:#ef444480}.cal-incomplete-more{color:var(--text-muted);padding:4px 8px;font-size:10px;font-style:italic}.cal-move-backdrop{z-index:999;position:fixed;inset:0}.cal-move-menu{z-index:1000;background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;min-width:160px;padding:4px;position:fixed;box-shadow:0 4px 12px #0003}.cal-move-header{color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;margin-bottom:2px;padding:4px 8px;font-size:10px}.cal-move-option{cursor:pointer;width:100%;color:var(--text-primary);text-align:left;background:0 0;border:none;border-radius:3px;padding:5px 8px;font-size:11px;transition:background .1s;display:block}.cal-move-option:hover{background:var(--bg-hover)}.cal-move-option.muted{color:var(--text-muted)}.cal-team-dropdown{position:relative}.cal-team-btn{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;display:inline-flex}.cal-team-btn-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.cal-team-btn:hover{border-color:var(--accent)}.cal-team-menu{background:var(--bg-secondary);border:1px solid var(--border);z-index:20;border-radius:4px;flex-direction:column;gap:1px;min-width:160px;margin-top:4px;padding:4px;display:flex;position:absolute;top:100%;right:0}.cal-team-option{color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:5px 8px;font-size:11px}.cal-team-option:hover{background:var(--bg-hover);color:var(--text-primary)}.cal-team-option.active{color:var(--accent)}.cal-team-option-row{border-radius:3px;flex-direction:row-reverse;align-items:center;gap:6px;padding:2px 4px;display:flex;position:relative}.cal-team-option-row:hover{background:var(--bg-hover)}.cal-team-color{cursor:pointer;border:1.5px solid #0000;border-radius:50%;flex-shrink:0;width:12px;height:12px;transition:transform .1s}.cal-team-color:hover,.cal-team-color.picking{border-color:var(--text-primary);transform:scale(1.2)}.cal-team-color-picker{background:var(--bg-tertiary);border:1px solid var(--border);z-index:25;border-radius:4px;gap:3px;padding:4px 6px;display:flex;position:absolute;top:-2px;left:0}.cal-color-dot{cursor:pointer;border:1.5px solid #0000;border-radius:50%;width:10px;height:10px;padding:0;transition:transform .1s}.cal-color-dot:hover{transform:scale(1.2)}.cal-color-dot.selected{border-color:var(--text-primary)}.cal-team-name{color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:3px;flex:1;padding:3px 4px;font-size:11px}.cal-team-name:hover{color:var(--text-primary)}.cal-team-name.active{color:var(--accent)}.cal-team-backdrop{z-index:19;position:fixed;inset:0}.cal-cleaner-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.cal-popup-overlay{z-index:10;background:#0006;border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cal-popup{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;min-width:220px;max-width:300px;padding:14px;display:flex}.cal-popup-header{justify-content:space-between;align-items:center;display:flex}.cal-popup-title{color:var(--text-primary);font-size:13px;font-weight:600}.cal-popup-close{width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:16px;display:flex}.cal-popup-close:hover{background:var(--bg-hover);color:var(--text-primary)}.cal-popup-row{color:var(--text-secondary);gap:8px;font-size:11px;display:flex}.cal-popup-label{color:var(--text-muted);min-width:50px;font-weight:600}.cal-popup-field{flex-direction:column;gap:3px;display:flex}.cal-popup-field label{text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);font-size:10px;font-weight:600}.cal-popup-field input,.cal-popup-field select{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:3px;outline:none;padding:5px 8px;font-family:inherit;font-size:12px}.cal-popup-field input:focus,.cal-popup-field select:focus{border-color:var(--accent)}.cal-popup-save-actions{border-top:1px solid var(--border);flex-direction:column;gap:4px;margin-top:4px;padding-top:8px;display:flex}.cal-dialog-btn{border:1px solid var(--border);color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border-radius:5px;padding:7px 12px;font-size:12px;transition:all .15s}.cal-dialog-btn:hover{background:var(--bg-hover)}.cal-dialog-btn.once{border-color:var(--accent);color:var(--accent)}.cal-dialog-btn.once:hover{background:var(--accent);color:#fff}.cal-dialog-btn.permanent{color:#f59e0b;border-color:#f59e0b}.cal-dialog-btn.permanent:hover{color:#fff;background:#f59e0b}.mini-cal{flex-direction:column;gap:4px;display:flex}.mini-cal-nav{justify-content:space-between;align-items:center;display:flex}.mini-cal-nav button{width:22px;height:22px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;font-size:14px;display:flex}.mini-cal-nav button:hover{background:var(--bg-hover);color:var(--text-primary)}.mini-cal-nav span{color:var(--text-primary);font-size:11px;font-weight:600}.mini-cal-header{text-align:center;grid-template-columns:repeat(7,1fr);display:grid}.mini-cal-header span{color:var(--text-muted);text-transform:uppercase;padding:2px 0;font-size:10px;font-weight:600}.mini-cal-grid{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.mini-cal-day{aspect-ratio:1;width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;font-size:10px;transition:all .1s;display:flex}.mini-cal-day:hover{background:var(--bg-hover);color:var(--text-primary)}.mini-cal-day.today{color:var(--accent);font-weight:600}.mini-cal-day.selected{background:var(--accent);color:#fff;font-weight:600}.cal-settings{flex-direction:column;gap:10px;height:100%;display:flex}.cal-form-header{justify-content:space-between;align-items:center;display:flex}.cal-form-title{color:var(--text-primary);font-size:13px;font-weight:600}.cal-form-back{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:5px;padding:4px 10px;font-size:11px;transition:all .15s}.cal-form-back:hover{border-color:var(--text-secondary);color:var(--text-primary)}.cal-save-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:5px;padding:6px 16px;font-size:12px;font-weight:500;transition:background .15s}.cal-save-btn:hover{background:var(--accent-hover)}.cal-cleaner-add{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding-bottom:10px;display:flex}.cal-cleaner-add-input{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:5px;outline:none;padding:6px 10px;font-size:12px}.cal-cleaner-add-input:focus{border-color:var(--accent)}.cal-cleaner-add-input::placeholder{color:var(--text-muted)}.cal-cleaner-list{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.cal-cleaner-row{border-radius:5px;align-items:center;gap:8px;padding:8px 6px;transition:background .15s;display:flex}.cal-cleaner-row:hover{background:var(--bg-hover)}.cal-cleaner-name{color:var(--text-primary);flex:1;font-size:12px}.cal-cleaner-delete{width:20px;height:20px;color:var(--text-muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.cal-cleaner-row:hover .cal-cleaner-delete{opacity:1}.cal-cleaner-delete:hover{background:var(--danger);color:#fff}.leads-module{flex-direction:column;gap:8px;height:100%;display:flex}.leads-toolbar{flex-shrink:0;gap:6px;display:flex}.leads-search{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:3px;outline:none;flex:1;padding:6px 10px;font-size:12px}.leads-search:focus{border-color:var(--accent)}.leads-search::placeholder{color:var(--text-muted)}.leads-add-btn{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:3px;padding:6px 12px;font-size:12px;font-weight:500;transition:background .1s}.leads-add-btn:hover{background:var(--accent-hover)}.leads-import-btn{border:1px solid var(--positive);color:var(--positive);cursor:pointer;white-space:nowrap;background:0 0;border-radius:3px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .1s}.leads-import-btn:hover{background:var(--positive);color:#fff}.leads-import-btn:disabled{opacity:.6;cursor:not-allowed}.leads-import-msg{color:var(--positive);padding:4px 0;font-size:11px}.leads-pipeline{flex:1;gap:6px;min-height:0;display:flex;overflow-x:auto}.leads-column{background:var(--bg-tertiary);border-radius:3px;flex-direction:column;flex:1;min-width:160px;min-height:0;display:flex}.leads-column.drop-target{outline:1px dashed var(--accent);outline-offset:-1px}.leads-column-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:6px;padding:8px 10px;display:flex}.leads-column-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.leads-column-title{text-transform:uppercase;letter-spacing:.3px;color:var(--text-secondary);flex:1;font-size:10px;font-weight:600}.leads-column-count{color:var(--text-muted);background:var(--bg-primary);border-radius:8px;padding:1px 6px;font-size:10px}.leads-column-list{flex-direction:column;flex:1;gap:4px;padding:6px;display:flex;overflow-y:auto}.lead-card{background:var(--bg-secondary);cursor:grab;border:1px solid #555;border-radius:3px;padding:8px 12px;transition:all .1s}.lead-card:hover{border-color:var(--accent)}.lead-card.dragging{opacity:.35}.lead-card-top{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.lead-card-name{color:var(--text-primary);font-size:12px;font-weight:600}.lead-card-date{color:var(--text-muted);font-size:10px}.lead-card-bottom{align-items:center;gap:8px;display:flex}.lead-card-service{text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;background:0 0;border:1px solid;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:500}.lead-card-sqm{color:var(--text-muted);font-size:10px}.lead-card-price{color:var(--positive);margin-left:auto;font-size:10px;font-weight:600}.lead-form,.lead-detail{flex-direction:column;gap:10px;height:100%;display:flex}.lead-form-header{flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.lead-form-title{color:var(--text-primary);font-size:13px;font-weight:600}.lead-form-back{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:3px;padding:4px 10px;font-size:11px}.lead-form-back:hover{border-color:var(--text-secondary);color:var(--text-primary)}.lead-form-fields{flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.lead-form-row{gap:8px;display:flex}.lead-form-row>.lead-field{flex:1}.lead-field{flex-direction:column;gap:3px;display:flex}.lead-field label{text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);font-size:10px;font-weight:600}.lead-field input,.lead-field textarea{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:3px;outline:none;padding:6px 10px;font-family:inherit;font-size:12px}.lead-field input:focus,.lead-field textarea:focus{border-color:var(--accent)}.lead-field textarea{resize:vertical;min-height:50px}.lead-form-actions{flex-shrink:0;justify-content:flex-end;gap:6px;display:flex}.lead-save-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:3px;padding:6px 16px;font-size:12px;font-weight:500}.lead-save-btn:hover{background:var(--accent-hover)}.lead-detail-status{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding-bottom:8px;display:flex}.lead-status-badge{color:#fff;text-transform:uppercase;border-radius:3px;padding:3px 8px;font-size:10px;font-weight:600}.lead-detail-service{color:var(--text-secondary);font-size:12px}.lead-detail-date{color:var(--text-muted);margin-left:auto;font-size:11px}.lead-detail-grid{flex-direction:column;gap:0;display:flex}.lead-detail-row{border-bottom:1px solid var(--border);color:var(--text-primary);justify-content:space-between;padding:8px 0;font-size:12px;display:flex}.lead-detail-label{color:var(--text-muted);font-weight:500}.lead-detail-message{flex-direction:column;gap:4px}.lead-detail-actions{gap:6px;padding-top:8px;display:flex}.lead-action-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:3px;padding:8px 14px;font-size:12px;transition:all .1s}.lead-action-btn.price{border-color:var(--accent);color:var(--accent)}.lead-action-btn.price:hover{background:var(--accent);color:#fff}.lead-action-btn.convert{border-color:var(--positive);color:var(--positive)}.lead-action-btn.convert:hover{background:var(--positive);color:#fff}.lead-action-btn.delete{color:var(--text-muted);border-color:#0000;margin-left:auto}.lead-action-btn.delete:hover{color:var(--danger)}.lead-price-box{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:3px;padding:12px}.lead-price-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;font-size:10px;font-weight:600}.lead-price-row{color:var(--text-secondary);justify-content:space-between;padding:4px 0;font-size:12px;display:flex}.lead-price-value{color:var(--text-primary);font-weight:600}.lead-price-amount{color:var(--positive);font-size:14px}.lead-quote-box{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:3px;padding:12px}.lead-quote-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.lead-quote-header span{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:10px;font-weight:600}.lead-copy-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:3px;padding:3px 8px;font-size:10px}.lead-copy-btn:hover{background:var(--accent);color:#fff}.lead-quote-text{color:var(--text-secondary);white-space:pre-wrap;margin:0;font-family:inherit;font-size:11px;line-height:1.5}.quote-calc{flex-direction:column;height:100%;display:flex}.quote-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.quote-header-left{align-items:center;gap:10px;display:flex}.quote-customer-name{color:var(--text-primary);font-size:15px;font-weight:700}.quote-service-badge{text-transform:uppercase;letter-spacing:.3px;background:0 0;border:1px solid;border-radius:3px;padding:2px 8px;font-size:9px;font-weight:500}.quote-status-badge{color:#fff;text-transform:uppercase;border-radius:3px;padding:2px 8px;font-size:9px;font-weight:600}.quote-date{color:var(--text-muted);font-size:11px}.quote-body{flex:1;gap:0;display:flex;overflow:hidden}.quote-left{border-right:1px solid var(--border);flex-direction:column;flex:1;gap:16px;padding:14px;display:flex;overflow-y:auto}.quote-right{flex-direction:column;flex:1;gap:16px;padding:14px;display:flex;overflow-y:auto}.quote-section{flex-direction:column;gap:8px;display:flex}.quote-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:4px;font-size:10px;font-weight:600;display:flex}.quote-fields{flex-direction:column;gap:6px;display:flex}.quote-field-row{gap:8px;display:flex}.quote-field-row>.quote-field{flex:1}.quote-field{flex-direction:column;gap:2px;display:flex}.quote-field label{text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);font-size:9px;font-weight:600}.quote-field input{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:3px;outline:none;padding:5px 8px;font-family:inherit;font-size:12px}.quote-field input:focus{border-color:var(--accent)}.quote-message{color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border);border-radius:3px;padding:8px;font-size:11px;line-height:1.5}.quote-calc-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:3px;align-self:flex-start;padding:8px 16px;font-size:12px;font-weight:600;transition:background .1s}.quote-calc-btn:hover{background:var(--accent-hover)}.quote-price-result{background:var(--bg-primary);border:1px solid var(--border);border-radius:3px;padding:10px}.quote-price-row{color:var(--text-secondary);justify-content:space-between;padding:4px 0;font-size:12px;display:flex}.quote-price-val{color:var(--text-primary);font-weight:600}.quote-price-total{border-top:1px solid var(--border);margin-top:4px;padding-top:8px}.quote-price-total .quote-price-val{color:var(--positive);font-size:16px}.quote-draft-section{flex:1}.quote-copy-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:3px;padding:2px 8px;font-size:10px}.quote-copy-btn:hover{background:var(--accent);color:#fff}.quote-draft-text{color:var(--text-secondary);white-space:pre-wrap;background:var(--bg-primary);border:1px solid var(--border);border-radius:3px;max-height:200px;margin:0;padding:12px;font-family:inherit;font-size:11px;line-height:1.6;overflow-y:auto}.quote-draft-empty{color:var(--text-muted);text-align:center;padding:30px;font-size:11px}.quote-status-buttons{flex-wrap:wrap;gap:4px;display:flex}.quote-status-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:3px;padding:4px 10px;font-size:10px;transition:all .1s}.quote-status-btn:hover{border-color:var(--text-secondary);color:var(--text-primary)}.quote-status-btn.active{color:#fff;border-color:#0000}.quote-actions{flex-direction:column;gap:6px;display:flex}.quote-action-btn{cursor:pointer;text-align:center;border:none;border-radius:3px;padding:10px 16px;font-size:12px;font-weight:600;transition:background .1s}.quote-action-btn.convert{background:var(--positive);color:#fff}.quote-action-btn.convert:hover{opacity:.9}.quote-action-btn.setup{background:var(--accent);color:#fff;border:none}.quote-action-btn.setup:hover{background:var(--accent-hover)}.quote-calendar-setup{background:var(--bg-primary);border:1px solid var(--border);border-radius:3px;flex-direction:column;gap:8px;padding:10px;display:flex}.quote-action-done{color:var(--positive);text-align:center;background:#4caf501a;border:1px solid #4caf504d;border-radius:3px;padding:10px;font-size:12px}.cej-module{background:var(--bg-primary);height:100%;color:var(--text-primary);flex-direction:column;font-size:12px;display:flex;overflow:hidden}.cej-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:8px;display:flex}.cej-fetch-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:11px;font-weight:500;transition:opacity .1s}.cej-fetch-btn:hover{opacity:.9}.cej-fetch-btn:disabled{opacity:.5;cursor:wait}.cej-filter-tabs{border:1px solid var(--border);border-radius:4px;gap:2px;padding:2px;display:flex}.cej-filter-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:4px 10px;font-size:11px;transition:all .1s}.cej-filter-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.cej-filter-tab.active{background:var(--accent);color:#fff}.cej-property-filter{min-width:180px;margin-left:auto}.cej-fetch-msg{color:#22c55e;border-bottom:1px solid var(--border);background:#22c55e1a;padding:6px 12px;font-size:11px}.cej-fetch-msg.error{color:#ef4444;background:#ef44441a}.cej-list{flex:1;overflow-y:auto}.cej-empty{text-align:center;color:var(--text-muted);padding:32px;font-size:12px}.cej-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:10px;padding:10px 12px;transition:background .1s;display:flex}.cej-row:hover{background:var(--bg-hover)}.cej-row.status-accepteret{background:#22c55e0a}.cej-row.status-afvist{background:#ef44440a}.cej-row.status-sendt{background:#3b82f60a}.cej-row.status-accepteret:hover{background:#22c55e1f}.cej-row.status-afvist:hover{background:#ef44441f}.cej-row.status-sendt:hover{background:#3b82f61a}.cej-row.status-ny,.cej-row.status-beregnet{font-weight:600}.cej-row-status{border-radius:50%;flex-shrink:0;width:8px;height:8px}.cej-row-status-pill{text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;text-align:center;box-sizing:border-box;border:1px solid;border-radius:3px;flex-shrink:0;width:110px;padding:3px 6px;font-size:10px;font-weight:600}.cej-row.status-ny .cej-row-status-pill{font-weight:800}.cej-row-awaiting{color:#f59e0b;white-space:nowrap;flex-shrink:0;font-size:10px;font-style:italic;font-weight:600}.cej-detail-awaiting{color:var(--text-muted);margin-left:4px;font-size:11px;font-style:italic}.cej-row-updated{color:var(--text-muted);white-space:nowrap;margin-left:auto;padding-right:6px;font-size:10px}.cej-row-property{text-transform:uppercase;letter-spacing:.5px;border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;text-align:center;box-sizing:border-box;border-radius:3px;flex-shrink:0;width:90px;padding:3px 6px;font-size:10px;font-weight:600}.cej-row-lejemaal{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;flex-shrink:0;width:130px;font-family:Menlo,monospace;font-size:11px;overflow:hidden}.cej-row-subject{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);flex:1;overflow:hidden}.cej-row-pdf{color:var(--text-muted);flex-shrink:0;font-size:11px}.cej-row-mails{color:var(--accent);background:#2196f31a;border-radius:3px;flex-shrink:0;padding:2px 6px;font-size:11px}.cej-related-mails{flex-direction:column;gap:4px;display:flex}.cej-related-mail{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px}.cej-related-mail summary{cursor:pointer;align-items:center;gap:8px;padding:6px 10px;font-size:11px;list-style:none;display:flex}.cej-related-mail summary::-webkit-details-marker{display:none}.cej-related-mail summary:before{content:"▸";color:var(--text-muted);font-size:10px;transition:transform .1s}.cej-related-mail[open] summary:before{transform:rotate(90deg)}.cej-related-date{color:var(--text-muted);flex-shrink:0;font-family:Menlo,monospace;font-size:10px}.cej-related-subject{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);flex:1;overflow:hidden}.cej-related-pdf{color:var(--text-muted);flex-shrink:0;font-size:10px}.cej-related-body{border-top:1px solid var(--border);color:var(--text-muted);white-space:pre-wrap;max-height:200px;padding:8px 10px;font-family:Menlo,monospace;font-size:10px;line-height:1.5;overflow-y:auto}.cej-row-pris{color:#22c55e;flex-shrink:0;font-size:11px;font-weight:600}.cej-row-arrow{color:var(--text-muted);flex-shrink:0;font-size:14px}.cej-row-open-btn{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:4px;flex-shrink:0;margin-left:auto;padding:6px 14px;font-size:11px;font-weight:600;transition:all .1s;box-shadow:0 1px 3px #2196f34d}.cej-row-open-btn:hover{background:var(--accent-hover,#42a5f5);transform:translateY(-1px);box-shadow:0 2px 6px #2196f380}.cej-row-isyn-btn{color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #2196f373;border-radius:4px;flex-shrink:0;margin-left:auto;padding:6px 10px;font-size:11px;font-weight:500;text-decoration:none;transition:all .1s}.cej-row-isyn-btn:hover{border-color:var(--accent);background:#2196f31a}.cej-row-isyn-btn+.cej-row-open-btn{margin-left:0}.cej-row-pdf-btn{color:#a855f7;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #a855f780;border-radius:4px;flex-shrink:0;padding:6px 10px;font-size:11px;font-weight:500;text-decoration:none;transition:all .1s}.cej-row-pdf-btn:hover{background:#a855f71a;border-color:#a855f7}.cej-row-isyn-btn+.cej-row-pdf-btn,.cej-row-pdf-btn+.cej-row-open-btn{margin-left:0}.cej-row-delete-btn{width:24px;height:24px;color:var(--text-muted);cursor:pointer;opacity:.4;background:0 0;border:1px solid #0000;border-radius:3px;flex-shrink:0;margin-left:4px;padding:0;font-size:16px;line-height:1;transition:all .1s}.cej-row:hover .cej-row-delete-btn{opacity:1}.cej-row-delete-btn:hover{color:#ef4444;background:#ef44441a;border-color:#ef444480}.cej-detail{flex-direction:column;height:100%;display:flex;overflow:hidden}.cej-detail-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:10px 12px;display:flex}.cej-back-btn{border:1px solid var(--border);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:11px}.cej-back-btn:hover{border-color:var(--accent)}.cej-detail-title{flex:1;font-size:13px;font-weight:600}.cej-status-badge{text-transform:uppercase;letter-spacing:.5px;border:1px solid;border-radius:3px;padding:4px 8px;font-size:10px;font-weight:600}.cej-detail-fields{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.cej-property-banner{background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;flex-wrap:wrap;align-items:stretch;gap:16px;padding:12px 14px;display:flex}.cej-property-banner-info,.cej-property-banner-pdf{flex-direction:column;gap:4px;display:flex}.cej-property-banner-info{flex:1;min-width:180px}.cej-property-banner-pdf{border-left:1px solid var(--border);min-width:180px;padding-left:16px}.cej-banner-label{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-size:9px;font-weight:600}.cej-property-name{font-size:13px;font-weight:600}.cej-lejemaal{color:var(--text-muted);font-family:Menlo,monospace;font-size:11px}.cej-pdf-actions{flex-wrap:wrap;gap:16px;margin-top:6px;display:flex}.cej-pdf-action{color:#a855f7;cursor:pointer;background:0 0;border:1px solid #a855f780;border-radius:4px;align-items:center;gap:5px;padding:5px 10px;font-family:inherit;font-size:11px;font-weight:500;text-decoration:none;transition:all .1s;display:inline-flex}.cej-pdf-action:hover{background:#a855f71a;border-color:#a855f7}.cej-field-row{gap:12px;display:flex}.cej-field{flex-direction:column;flex:1;gap:4px;display:flex}.cej-field label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:10px;font-weight:600}.cej-field-status{background:color-mix(in srgb, var(--status-color,var(--accent)) 8%, transparent);border-left:3px solid var(--status-color,var(--accent));border-radius:4px;gap:6px;padding:10px 12px 12px}.cej-field-status>label{color:var(--status-color,var(--text-primary));letter-spacing:.8px;font-size:11px}.cej-field-status .custom-select-trigger{font-size:13px;font-weight:600}.cej-field input,.cej-field textarea{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);border-radius:4px;outline:none;padding:6px 10px;font-family:inherit;font-size:12px;transition:border-color .1s}.cej-field input:focus,.cej-field textarea:focus{border-color:var(--accent)}.cej-readonly{background:var(--bg-tertiary);color:var(--text-muted);border-radius:4px;padding:6px 10px;font-size:11px}.cej-body{white-space:pre-wrap;max-height:200px;font-family:Menlo,monospace;font-size:10px;line-height:1.5;overflow-y:auto}.cej-pdf-list{flex-direction:column;gap:4px;display:flex}.cej-pdf-link{background:var(--bg-tertiary);color:var(--accent);border-radius:4px;padding:6px 10px;font-size:11px;text-decoration:none}.cej-pdf-link:hover{background:var(--bg-hover)}.cej-actions{gap:8px;margin-top:8px;display:flex}.cej-action-btn{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;text-align:center;border-radius:4px;flex:1;padding:8px 12px;font-size:12px;font-weight:500;text-decoration:none;transition:all .1s}.cej-action-btn:hover{border-color:var(--accent)}.cej-action-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.cej-action-btn.primary:hover{opacity:.9}.cej-delete-section{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.cej-delete-btn{color:#ef4444;cursor:pointer;background:0 0;border:1px solid #ef444466;border-radius:4px;padding:6px 12px;font-size:11px}.cej-delete-btn:hover{background:#ef44441a}.cej-historik-module{background:var(--bg-primary);height:100%;color:var(--text-primary);flex-direction:column;font-size:12px;display:flex;overflow:hidden}.cejh-stats{border-bottom:1px solid var(--border);background:var(--border);flex-shrink:0;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;padding:10px;display:grid}.cejh-stat{background:var(--bg-secondary);flex-direction:column;gap:4px;padding:10px 14px;display:flex}.cejh-stat-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:10px;font-weight:500}.cejh-stat-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:20px;font-weight:600}.cejh-stat-value.win{color:#22c55e}.cejh-stat-value.over{color:#ef4444}.cejh-stat-value.under{color:#22c55e}.cejh-stat-sub{color:var(--text-muted);font-size:10px}.cejh-property-stats{border-bottom:1px solid var(--border);flex-shrink:0;padding:10px}.cejh-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px;font-size:10px;font-weight:600}.cejh-property-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;display:grid}.cejh-property-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.cejh-property-name{color:var(--text-primary);margin-bottom:2px;font-size:12px;font-weight:600}.cejh-property-row{justify-content:space-between;font-size:11px;display:flex}.cejh-property-row.sub{color:var(--text-muted);font-size:10px}.cejh-property-row .win{color:#22c55e;font-weight:600}.cejh-toolbar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:8px 10px;display:flex}.cejh-search{background:var(--bg-secondary);border:1px solid var(--border);min-width:200px;color:var(--text-primary);border-radius:4px;outline:none;flex:1;padding:6px 10px;font-family:inherit;font-size:11px}.cejh-search:focus{border-color:var(--accent)}.cejh-toolbar .custom-select{min-width:140px}.cejh-table-wrap{flex:1;overflow:auto}.cejh-empty{text-align:center;color:var(--text-muted);padding:40px;font-size:12px}.cejh-table{border-collapse:collapse;width:100%;font-size:11px}.cejh-table th{background:var(--bg-secondary);text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border);z-index:1;white-space:nowrap;padding:8px 10px;font-size:10px;font-weight:600;position:sticky;top:0}.cejh-table td{border-bottom:1px solid var(--border);color:var(--text-primary);white-space:nowrap;font-variant-numeric:tabular-nums;padding:6px 10px}.cejh-table td.mono{color:var(--text-muted);font-family:Menlo,monospace;font-size:10px}.cejh-table td.wrap{white-space:normal;max-width:200px}.cejh-table td.strong{font-weight:600}.cejh-table td.over{color:#ef4444;font-weight:500}.cejh-table td.under,.cejh-table td.profit{color:#22c55e;font-weight:500}.cejh-table td.cost{color:#f59e0b;font-weight:500}.cejh-table tbody tr:hover{background:var(--bg-hover)}.cejh-status-select{appearance:none;background-color:var(--bg-tertiary);border:1px solid var(--border);letter-spacing:.3px;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'><path fill='%23888' d='M0 0l5 6 5-6z'/></svg>");background-position:right 7px center;background-repeat:no-repeat;background-size:8px;border-left:3px solid;border-radius:3px;outline:none;padding:4px 22px 4px 10px;font-family:inherit;font-size:10px;font-weight:600;transition:background-color .12s,border-color .12s}.cejh-status-select:hover{background-color:var(--bg-hover)}.cejh-status-select:focus{border-color:var(--accent)}.cejh-status-select option{background:var(--bg-secondary);color:var(--text-primary);font-weight:500}.cejh-competitor-input{background:var(--bg-tertiary);border:1px solid var(--border);width:90px;color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:right;border-radius:3px;outline:none;padding:3px 6px;font-size:11px}.cejh-competitor-input:focus{border-color:var(--accent)}.cejh-actions-cell{align-items:center;gap:4px;display:flex}.cejh-open{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:3px;padding:4px 10px;font-size:10px;font-weight:600;transition:opacity .1s}.cejh-open:hover{opacity:.85}.cejh-delete{color:#fff;cursor:pointer;white-space:nowrap;background:#ef4444;border:1px solid #ef4444;border-radius:3px;align-items:center;gap:5px;padding:4px 10px;font-size:10px;font-weight:600;line-height:1;transition:all .1s;display:inline-flex;box-shadow:0 1px 3px #ef44444d}.cejh-delete svg{flex-shrink:0}.cejh-delete:hover{background:#dc2626;border-color:#dc2626;box-shadow:0 2px 6px #ef444480}.dashboard-module{background:var(--bg-primary);height:100%;color:var(--text-primary);flex-direction:column;gap:20px;padding:20px 24px;display:flex;overflow:auto}.dashboard-header{justify-content:space-between;align-items:flex-start;display:flex}.dashboard-welcome{color:var(--text-primary);margin-bottom:4px;font-size:22px;font-weight:600}.dashboard-date{color:var(--text-muted);text-transform:capitalize;font-size:12px}.dashboard-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.dashboard-card{text-align:left;background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;color:var(--text-primary);border-left:3px solid #0000;border-radius:6px;flex-direction:column;gap:4px;padding:16px;font-family:inherit;transition:transform .12s,border-color .12s;display:flex}.dashboard-card:hover{border-right-color:var(--accent);transform:translateY(-1px)}.dashboard-card-label{text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;font-size:11px;font-weight:600}.dashboard-card-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:32px;font-weight:700;line-height:1}.dashboard-card-sub{color:var(--text-muted);margin-bottom:10px;font-size:11px}.dashboard-card-row{border-top:1px solid #ffffff0a;justify-content:space-between;padding:3px 0;font-size:11px;display:flex}.dashboard-card-row:first-of-type{border-top:none}.dashboard-card-row span{color:var(--text-muted)}.dashboard-card-row strong{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:500}.dashboard-card-row strong.win{color:#22c55e}.dashboard-card-row strong.lose{color:#ef4444}.dashboard-activity{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:14px 18px}.dashboard-activity-head{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:10px;font-size:11px;font-weight:600}.dashboard-activity-empty{color:var(--text-muted);text-align:center;padding:20px 0;font-size:12px}.dashboard-activity-list{margin:0;padding:0;list-style:none}.dashboard-activity-item{border-bottom:1px solid #ffffff0a;grid-template-columns:90px 1fr auto auto;align-items:center;gap:12px;padding:8px 0;font-size:12px;display:grid}.dashboard-activity-item:last-child{border-bottom:none}.dashboard-activity-time{color:var(--text-muted);font-size:10px}.dashboard-activity-label{color:var(--text-primary)}.dashboard-activity-sub,.dashboard-activity-status{color:var(--text-muted);white-space:nowrap;background:#ffffff0a;border-radius:3px;padding:2px 8px;font-size:10px}.dashboard-activity-item.kind-cej .dashboard-activity-label{color:#a855f7}.dashboard-activity-item.kind-lead .dashboard-activity-label{color:#22c55e}.pdf-viewer-module{background:var(--bg-primary);flex-direction:column;height:100%;display:flex}.pdf-viewer-toolbar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:6px 10px;display:flex}.pdf-viewer-filename{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}.pdf-viewer-action{color:var(--text-primary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:3px;flex-shrink:0;padding:4px 10px;font-size:11px;text-decoration:none;transition:all .1s}.pdf-viewer-action:hover{border-color:var(--accent);color:var(--accent)}.pdf-viewer-iframe{background:#525659;border:none;flex:1;width:100%}.pdf-viewer-empty{text-align:center;height:100%;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.pdf-viewer-empty-icon{opacity:.5;font-size:36px}.pdf-viewer-empty-title{color:var(--text-primary);font-size:13px;font-weight:600}.pdf-viewer-empty-hint{max-width:320px;font-size:11px;line-height:1.5}.pdf-viewer-url-input{background:var(--bg-secondary);border:1px solid var(--border);width:min(360px,80%);color:var(--text-primary);border-radius:4px;outline:none;margin-top:12px;padding:7px 10px;font-family:inherit;font-size:11px}.pdf-viewer-url-input:focus{border-color:var(--accent)}.auth-gate{background:var(--bg-primary);z-index:10000;justify-content:center;align-items:center;font-family:inherit;display:flex;position:fixed;inset:0}.auth-form{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;min-width:320px;max-width:360px;padding:32px;display:flex;box-shadow:0 8px 32px #0006}.auth-logo{color:var(--text-primary);letter-spacing:.5px;font-size:18px;font-weight:700}.auth-sub{color:var(--text-muted);margin-bottom:16px;font-size:12px}.auth-form label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:8px;font-size:11px;font-weight:600}.auth-form input{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-radius:5px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .12s}.auth-form input:focus{border-color:var(--accent)}.auth-error{color:#ef4444;margin-top:4px;font-size:12px}.auth-form button[type=submit]{background:var(--accent,#2196f3);color:#fff;cursor:pointer;border:none;border-radius:5px;margin-top:16px;padding:10px;font-family:inherit;font-size:13px;font-weight:500;transition:opacity .12s}.auth-form button[type=submit]:hover:not(:disabled){opacity:.9}.auth-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.auth-spinner{border:2px solid var(--border);border-top-color:var(--accent,#2196f3);border-radius:50%;width:32px;height:32px;animation:.6s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-badge-wrap{display:inline-block;position:relative}.auth-badge{background:var(--accent,#2196f3);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:600;transition:transform .12s;display:flex;box-shadow:0 2px 6px #0000004d}.auth-badge:hover{transform:scale(1.05)}.auth-menu{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:8px;min-width:180px;padding:10px;display:flex;position:absolute;bottom:36px;right:-4px;box-shadow:0 4px 16px #0000004d}.auth-menu-email{color:var(--text-muted);border-bottom:1px solid var(--border);word-break:break-all;padding-bottom:8px;font-size:11px}.auth-menu-logout{border:1px solid var(--border);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:4px;padding:6px 10px;font-family:inherit;font-size:12px;transition:background .12s}.auth-menu-logout:hover{background:var(--bg-hover)}.auth-local-badge{color:#f59e0b;text-transform:uppercase;letter-spacing:.5px;z-index:9999;pointer-events:none;background:#f59e0b26;border:1px solid #f59e0b66;border-radius:4px;padding:3px 8px;font-size:10px;font-weight:600;position:fixed;bottom:8px;left:8px}.react-grid-layout{transition:height .2s;position:relative}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{z-index:1;will-change:width, height;transition:none}.react-grid-item.react-draggable-dragging{z-index:3;will-change:transform;transition:none}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{opacity:.2;z-index:2;-webkit-user-select:none;user-select:none;background:red;transition-duration:.1s}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{opacity:0;width:20px;height:20px;position:absolute}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";border-bottom:2px solid #0006;border-right:2px solid #0006;width:5px;height:5px;position:absolute;bottom:3px;right:3px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.app{height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;display:flex;overflow-y:auto}.sidebar-nav{flex:1}.sidebar-home-btn{border:1px solid var(--border);width:calc(100% - 28px);color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border-radius:4px;align-items:center;gap:8px;margin:12px 14px 8px;padding:8px 12px;font-family:inherit;font-size:12px;font-weight:500;transition:all .1s;display:flex}.sidebar-home-btn:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--accent)}.sidebar-home-icon{font-size:14px}.sidebar-footer{border-top:1px solid var(--border);align-items:center;gap:8px;padding:10px 14px;display:flex}.sidebar-theme-toggle{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border-radius:3px;flex:1;padding:6px 10px;font-size:11px;transition:all .1s}.sidebar-theme-toggle:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent)}.sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:12px 26px;display:flex}.sidebar-logo{color:var(--text-primary);letter-spacing:1px;text-transform:uppercase;font-size:14px;font-weight:600}.sidebar-logo-img{border-radius:0;height:36px}.sidebar-menu-text-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:3px;padding:4px 12px;font-size:11px;font-weight:500;transition:all .1s}.sidebar-menu-text-btn:hover{border-color:var(--accent);color:var(--accent)}.sidebar-sections{flex-direction:column;padding-top:10px;display:flex}.sidebar-section-group{flex-direction:column;display:flex}.sidebar-section-btn{border:1px solid var(--border);width:calc(100% - 20px);color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border-radius:3px;justify-content:space-between;align-items:center;margin:0 10px 8px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .1s;display:flex}.sidebar-section-btn:hover{color:var(--text-primary)}.sidebar-section-btn.active{border-color:#ffffff4d}.sidebar-section-btn.active .sidebar-planning-arrow{color:#fff}.sidebar-planning-arrow{color:var(--text-muted);font-size:12px;transition:transform .15s}.sidebar-planning-arrow.expanded{transform:rotate(90deg)}.sidebar-section-content{background:0 0;flex-direction:column;gap:1px;margin-bottom:12px;padding:6px 10px 14px;display:flex}.sidebar-action-btn{border:1px solid var(--text-muted);width:100%;color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border-radius:3px;justify-content:space-between;align-items:center;margin-bottom:3px;padding:5px 10px;font-size:11px;transition:all .1s;display:flex}.sidebar-action-arrow{color:var(--text-muted);font-size:12px}.sidebar-action-btn:hover{color:var(--text-primary)}.sidebar-action-btn.selected{font-weight:600}.sidebar-action-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.sidebar-action-btn.layout{border-color:var(--border);color:var(--text-muted);font-size:10px}.sidebar-action-btn.layout:hover{border-color:var(--accent);color:var(--accent)}.sidebar-action-btn.layout.active{background:var(--accent);color:#fff;border-color:var(--accent)}.sidebar-section-divider{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-top:1px solid var(--border);margin-top:4px;padding:8px 0 4px;font-size:10px}.sidebar-tools{border-top:1px solid var(--border);flex-direction:column;gap:4px;margin:12px -16px 0;padding:12px 26px 0;display:flex}.sidebar-window-layouts{border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:8px}.sidebar-window-layouts-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px;font-size:10px;font-weight:500}.sidebar-window-layouts-grid{grid-template-columns:repeat(6,1fr);gap:3px;display:grid}.sidebar-window-layout-btn{border:1px solid var(--border);background:var(--bg-secondary);height:28px;color:var(--text-muted);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:14px;transition:all .1s;display:flex}.sidebar-window-layout-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-hover)}.sidebar-window-layout-btn.active{border-color:var(--accent);color:#fff;background:var(--accent)}.sidebar-window-layout-btn.active:hover{background:var(--accent);color:#fff}.sidebar-window-layout-icon{line-height:1;display:inline-block}.sidebar-tool-btn{cursor:pointer;text-align:left;border-radius:3px;width:100%;padding:6px 12px;font-size:11px;transition:all .1s}.sidebar-tool-btn.clear{border:1px dashed var(--text-muted);color:var(--text-muted);background:0 0;margin-top:14px}.sidebar-tool-btn.clear:hover{border-color:var(--danger);color:var(--danger)}.sidebar-tool-btn.add{border:1px solid var(--accent);color:var(--accent);background:0 0}.sidebar-tool-btn.add:hover{background:var(--accent);color:#fff}.sidebar-module-picker{flex-direction:column;gap:2px;padding:4px 0;display:flex}.sidebar-module-pick-btn{border:1px solid var(--border);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:3px;justify-content:space-between;align-items:center;padding:5px 10px;font-size:11px;transition:all .1s;display:flex}.sidebar-module-pick-btn:hover{border-color:var(--accent);color:var(--accent)}.sidebar-module-pick-btn.active{border-color:var(--accent);color:var(--accent);background:#2196f314}.sidebar-type-presets{flex-direction:column;gap:1px;padding:4px 0 8px 28px;display:flex}.sidebar-type-preset-btn{width:100%;color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:5px 10px;font-size:11px;transition:all .1s}.sidebar-type-preset-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-type-preset-btn.active{color:var(--accent);font-weight:600}.sidebar-type-preset-custom{gap:2px;display:flex}.sidebar-type-preset-custom .sidebar-type-preset-btn{flex:1}.sidebar-type-preset-delete{width:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:0;font-size:13px}.sidebar-type-preset-delete:hover{color:var(--danger)}.sidebar-type-save-btn{border:1px dashed var(--border);width:100%;color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border-radius:3px;margin-top:4px;padding:6px 12px;font-size:11px}.sidebar-type-save-btn:hover{border-color:var(--accent);color:var(--accent)}.floating-module{box-shadow:0 0 0 3px var(--bg-primary), 0 0 0 4px var(--border), 0 10px 40px #0009}.floating-module .module-header{cursor:move}.floating-resize-handle{cursor:nwse-resize;background:linear-gradient(135deg, transparent 0 50%, var(--text-muted) 50% 60%, transparent 60% 70%, var(--text-muted) 70% 80%, transparent 80%);width:14px;height:14px;position:absolute;bottom:0;right:0}.menu-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.menu-panel{background:var(--bg-secondary);border:1px solid var(--border);box-shadow:0 0 0 1px var(--accent), 0 20px 60px #00000080;border-radius:3px;flex-direction:column;width:780px;max-width:90vw;max-height:85vh;display:flex;overflow:hidden}.menu-header{background:var(--bg-tertiary);border-bottom:2px solid var(--border);justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.menu-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-primary);font-size:12px;font-weight:600}.menu-close{width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;font-size:20px;display:flex}.menu-close:hover{background:var(--danger);color:#fff}.menu-sections{flex-direction:column;flex:1;gap:24px;padding:24px;display:flex;overflow-y:auto}.menu-section-title{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:6px;font-size:10px;font-weight:600}.menu-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.menu-item{background:var(--bg-tertiary);border:1px solid var(--accent);cursor:pointer;color:var(--text-secondary);border-radius:2px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:18px 10px;transition:all .1s;display:flex}.menu-item:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--text-primary)}.menu-item.active{border-color:var(--accent);color:var(--accent)}.menu-item-icon{justify-content:center;align-items:center;display:flex}.menu-item-label{text-align:center;font-size:11px;font-weight:500}.sidebar-nav{padding:16px}.sidebar-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;font-size:11px;font-weight:600}.sidebar-module-list{list-style:none}.sidebar-module-item{border-radius:3px;justify-content:space-between;align-items:center;margin-bottom:1px;padding:6px 8px;transition:background .1s;display:flex}.sidebar-module-item:hover{background:var(--bg-hover)}.sidebar-module-name{color:var(--text-secondary);font-size:12px}.sidebar-module-toggle{background:var(--bg-tertiary);width:20px;height:20px;color:var(--text-muted);cursor:pointer;border:none;border-radius:3px;justify-content:center;align-items:center;font-size:13px;transition:all .15s;display:flex}.sidebar-module-toggle:hover{background:var(--accent);color:#fff}.sidebar-module-toggle.active{background:var(--danger);color:#fff}.sidebar-module-toggle.active:hover{background:var(--danger-hover)}.workspace{flex:1;padding:0;overflow-y:auto}.grid-layout{min-height:100%}.react-grid-item{transition:all .2s}.react-grid-item.react-grid-placeholder{background:var(--accent);opacity:.08;border-radius:4px}.module-wrapper{background:var(--bg-secondary);border:1px solid var(--border);border-radius:2px;flex-direction:column;height:100%;transition:border-color .1s,box-shadow .1s;display:flex;overflow:hidden}.module-wrapper:hover{border-color:var(--accent);box-shadow:0 0 20px #2196f333}.react-grid-item.react-draggable-dragging .module-wrapper,.react-grid-item.resizing .module-wrapper{border-color:var(--accent);box-shadow:0 0 30px #2196f366}.module-wrapper:hover .module-title{color:var(--accent)}.module-header{background:var(--bg-tertiary);cursor:grab;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.module-header:active{cursor:grabbing}.module-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-primary);font-size:11px;font-weight:600}.module-header-actions{align-items:center;gap:2px;display:flex}.module-pin{width:22px;height:22px;color:var(--text-secondary);cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.module-header:hover .module-pin{opacity:1}.module-pin.active{opacity:1;color:var(--accent);background:#2196f326;box-shadow:0 0 8px #2196f366}.module-pin:hover{background:var(--bg-hover);color:var(--text-primary)}.module-wrapper.pinned{border-color:#3b82f626}.module-wrapper.pinned .module-header{cursor:default}.module-maximize{width:22px;height:22px;color:var(--text-secondary);cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.module-header:hover .module-maximize{opacity:1}.module-maximize:hover{background:var(--bg-hover);color:var(--text-primary)}.module-maximize.active{opacity:1;color:var(--accent);background:#2196f326}.module-remove{width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:16px;transition:all .15s;display:flex}.module-remove:hover{background:var(--danger);color:#fff}.module-content{flex:1;padding:16px;overflow:auto}.module-placeholder{flex-direction:column;justify-content:center;align-items:center;gap:6px;height:100%;display:flex}.module-placeholder-text{color:var(--text-secondary);font-size:15px;font-weight:500}.module-placeholder-sub{color:var(--text-muted);font-size:12px}.react-resizable-handle{background:0 0}.react-resizable-handle:after{border-color:var(--text-muted)!important;width:8px!important;height:8px!important}.sidebar-section-presets{margin-top:16px}.sidebar-preset-list{flex-direction:column;gap:2px;list-style:none;display:flex}.sidebar-preset-item{display:block}.sidebar-preset-btn{border:1px solid var(--border);width:100%;color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border-radius:3px;padding:5px 8px;font-size:11px;transition:all .1s}.sidebar-preset-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent)}.sidebar-preset-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 12px #2196f366}.sidebar-preset-custom{gap:2px;display:flex}.sidebar-preset-custom .sidebar-preset-btn{flex:1}.sidebar-preset-delete{border:1px solid var(--border);width:22px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:3px;padding:0;font-size:14px;transition:all .1s}.sidebar-preset-delete:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.sidebar-save-btn{border:1px dashed var(--border);width:100%;color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border-radius:3px;margin-top:6px;padding:6px 8px;font-size:11px;transition:all .1s}.sidebar-save-btn:hover{border-color:var(--accent);color:var(--accent)}.sidebar-save-form{flex-direction:column;gap:4px;margin-top:6px;display:flex}.sidebar-save-input{border:1px solid var(--accent);background:var(--bg-primary);color:var(--text-primary);border-radius:3px;outline:none;padding:6px 8px;font-size:11px}.sidebar-save-actions{gap:4px;display:flex}.sidebar-save-confirm,.sidebar-save-cancel{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:3px;flex:1;padding:5px;font-size:10px}.sidebar-save-confirm{background:var(--accent);color:#fff;border-color:var(--accent)}.sidebar-save-confirm:hover{background:var(--accent-hover)}.sidebar-save-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}
