@font-face{font-family:Material Icons;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/material-icons.woff2) format("woff2")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.material-icons.bw-icon-svg .bw-icon{width:1.5rem;height:1.5rem;fill:currentColor;display:block}:root{--primary-color: #3b82f6;--primary-dark: #2563eb;--primary-light: #60a5fa;--secondary-color: #64748b;--background: #ffffff;--surface: #f9fafb;--surface-secondary: #f3f4f6;--text-primary: #111827;--text-secondary: #4b5563;--text-muted: #6b7280;--border-color: #d1d5db;--border-light: #e5e7eb;--nav-sidebar-bg: #1f2937;--nav-sidebar-text: #f9fafb;--nav-sidebar-hover: #374151;--input-bg: #ffffff;--input-border: #9ca3af;--input-text: #111827;--button-bg: #ffffff;--button-border: #9ca3af;--button-text: #374151;--button-hover: #f3f4f6;--error-color: #ef4444;--success-color: #10b981;--warning-color: #f59e0b;--info-color: #3b82f6;--primary: var(--primary-color);--card: #ffffff;--card-bg: var(--card);--border: var(--border-color);--radius: 8px;--surface-hover: #e5e7eb;--background-hover: #f3f4f6;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--nav-sidebar-width: 200px;--nav-sidebar-collapsed-width: clamp(32px, 1.75vw + 26px, 48px);--nav-sidebar-transition: .3s ease}*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0;padding:0;width:100%;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.6;color:var(--text-primary);background:var(--surface);overflow-x:hidden;position:relative}html.modal-open,body.modal-open{overflow:hidden;overscroll-behavior:none}.modal{display:flex;align-items:center;justify-content:center;position:fixed;inset:0;background:#00000080;z-index:1000;box-sizing:border-box;min-height:100dvh;padding:max(var(--spacing-md),env(safe-area-inset-top)) max(var(--spacing-md),env(safe-area-inset-right)) max(var(--spacing-md),env(safe-area-inset-bottom)) max(var(--spacing-md),env(safe-area-inset-left));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal-content{background:var(--background);padding:var(--spacing-xl);border-radius:8px;width:min(400px,100%);max-width:400px;box-shadow:0 10px 25px #0003;flex-shrink:0;max-height:min(90dvh,90vh);overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-content h2{margin-bottom:var(--spacing-lg);color:var(--text-primary)}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--text-primary)}.form-group input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:4px;font-size:14px;transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--primary-color)}.error-message{color:var(--error-color);margin-bottom:var(--spacing-md);font-size:13px;background-color:#fee2e2;border:1px solid #fca5a5;padding:.75rem;border-radius:4px}.error-message.warning{background-color:#fef3c7;border-color:#fcd34d;color:#92400e}.btn{padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--secondary-color);color:#fff}.btn-secondary:hover{background:#475569}.btn-danger{background:var(--error-color);color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{padding:.375rem .75rem;font-size:13px;min-height:32px}.text-muted{color:var(--text-muted)}.btn-outline-primary{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding:.375rem .75rem;font-size:13px;font-weight:500;line-height:1.25;border-radius:4px;border:1px solid var(--primary-color);background:transparent;color:var(--primary-color);cursor:pointer;transition:background .2s,color .2s,border-color .2s}.btn-outline-primary:hover{background:color-mix(in srgb,var(--primary-color) 14%,transparent)}.btn-outline-primary:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}select.status-dropdown,select.detail-status-select{background-color:var(--input-bg);color:var(--input-text);border:1px solid var(--input-border);border-radius:4px;padding:.2rem .45rem;font-size:.8125rem;line-height:1.4;max-width:100%;min-width:0;box-sizing:border-box}select.status-dropdown:focus,select.detail-status-select:focus{outline:2px solid var(--primary-color);outline-offset:1px}#app{display:flex;min-height:100vh;position:relative;width:100%;overflow-x:hidden;align-items:flex-start}.nav-sidebar{width:var(--nav-sidebar-width);background:var(--nav-sidebar-bg);color:var(--nav-sidebar-text);transition:width var(--nav-sidebar-transition);position:relative;z-index:100;display:flex;flex-direction:column;box-shadow:2px 0 10px #0000001a;overflow:hidden;flex-shrink:0;min-height:100vh}.nav-sidebar-header{border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:center;min-height:50px}.logo-container{display:flex;align-items:center;gap:var(--spacing-sm);white-space:nowrap;overflow:hidden}.logo-icon-img{width:32px;height:32px;object-fit:contain;flex-shrink:0;display:none}.logo-icon{font-size:24px;color:var(--primary-light);flex-shrink:0;user-select:none;display:flex;align-items:center;justify-content:center}.logo-img{height:24px;object-fit:contain;flex-shrink:0;display:none}.logo-text{font-size:18px;font-weight:600;transition:opacity var(--nav-sidebar-transition)}.nav-sidebar-toggle-header{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:var(--spacing-xs);font-size:24px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s;flex-shrink:0}.nav-sidebar-toggle-header .material-icons{font-size:24px}.nav-sidebar-toggle-header:hover{opacity:1}.nav-sidebar-nav{flex:1;overflow-y:auto;padding:var(--spacing-sm) 0}.nav-item{margin-bottom:var(--spacing-sm)}.nav-link{display:flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);color:var(--nav-sidebar-text);background:transparent;text-decoration:none;transition:background .2s,color .2s;gap:var(--spacing-sm);border-radius:4px;margin:0 var(--spacing-xs)}.nav-link:hover,.nav-link.active{background:var(--nav-sidebar-hover);color:var(--nav-sidebar-text)}.nav-link .nav-icon{width:20px;height:20px;font-size:18px}.nav-icon{width:20px;height:20px;text-align:center;flex-shrink:0;font-size:18px;display:flex;align-items:center;justify-content:center;user-select:none}.nav-label{flex:1;transition:opacity var(--nav-sidebar-transition);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-arrow{margin-left:auto;font-size:20px;width:20px;height:20px;transition:transform .2s;flex-shrink:0;display:flex;align-items:center;justify-content:center;user-select:none}.nav-sidebar-nav .nav-children{margin-top:2px;margin-left:.35rem;margin-right:var(--spacing-xs);padding:2px 0 2px .5rem;border-left:1px solid color-mix(in srgb,var(--nav-sidebar-text) 18%,transparent);border-radius:0 4px 4px 0}.nav-sidebar-nav .nav-children .nav-item{margin-bottom:0}.nav-sidebar-nav .nav-children .nav-link{padding-left:var(--spacing-sm);border-radius:4px;font-size:13px}.nav-sidebar-nav .nav-children .nav-icon{width:16px;height:16px;font-size:14px}.nav-loading,.nav-error,.nav-empty{padding:var(--spacing-md);text-align:center;color:var(--text-secondary);font-size:13px}body.nav-sidebar-collapsed .nav-sidebar{width:var(--nav-sidebar-collapsed-width);flex-shrink:0;display:flex!important;visibility:visible!important}body:not(.nav-sidebar-collapsed) .logo-img{display:block!important}body:not(.nav-sidebar-collapsed) .logo-icon-img,body:not(.nav-sidebar-collapsed) .logo-icon{display:none!important}body.nav-sidebar-collapsed .logo-icon-img{display:block!important;width:24px;height:24px}body.nav-sidebar-collapsed .logo-icon{display:flex!important}body.nav-sidebar-collapsed .logo-img,.hidden{display:none!important}.data-table thead .data-table-th{vertical-align:bottom;white-space:nowrap}.data-table-th-inner{display:flex;align-items:center;justify-content:space-between;gap:.35rem;min-width:0}.data-table-th-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.data-table-th-controls{display:inline-flex;align-items:center;gap:0;flex-shrink:0}.data-table-th .th-sort,.data-table-th .th-filter{display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:transparent;color:var(--text-secondary, #888);cursor:pointer;border-radius:var(--radius, 4px);line-height:1}.data-table-th .th-sort:hover,.data-table-th .th-filter:hover{color:var(--text-primary, #333);background:color-mix(in srgb,var(--text-primary, #333) 6%,transparent)}.data-table-th .th-sort .material-icons,.data-table-th .th-filter .material-icons{font-size:16px;width:16px;height:16px}.data-table-th .th-sort.th-sort--asc .material-icons,.data-table-th .th-sort.th-sort--desc .material-icons,.data-table-th .th-filter.is-active .material-icons{color:var(--primary, #1976d2)}.data-table-filter-popover{position:fixed;min-width:220px;max-width:min(320px,calc(100vw - 16px));padding:.75rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius, 6px);box-shadow:0 8px 24px #0000001f;z-index:10050}.th-filter-popover-inner label{display:block;font-size:.75rem;font-weight:600;margin:.5rem 0 .25rem;color:var(--text-secondary, #666)}.th-filter-popover-inner label:first-child{margin-top:0}.th-filter-popover-inner .form-control{width:100%;margin-bottom:.5rem}.th-filter-status-list{max-height:220px;overflow-y:auto;margin-bottom:.5rem}.th-filter-status-row{display:flex;align-items:center;gap:.35rem;font-size:.8125rem;margin:.25rem 0;cursor:pointer}@media (max-width: 768px){.nav-sidebar-toggle-header{min-width:44px;min-height:44px;width:auto;height:auto}}.bulk-actions-bar{margin-bottom:.75rem;padding:.5rem .75rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius, 4px);display:flex;align-items:center;justify-content:space-between;gap:1rem}.bulk-actions-bar .bulk-actions-left{font-size:.875rem;color:var(--text-secondary)}.bulk-actions-bar .bulk-action{padding:.4rem .5rem;border:1px solid var(--border);border-radius:var(--radius, 4px);font-size:.875rem;background:var(--input-bg);color:var(--text-primary)}.form-field.ai-field .form-field-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.ai-describe-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);border-radius:6px;background:var(--input-bg);color:var(--text-secondary);cursor:pointer}.ai-describe-btn .material-icons{font-size:18px}.ai-describe-btn:hover{color:var(--text-primary);border-color:var(--primary-color)}.ai-describe-btn.loading{opacity:.6;cursor:wait}.data-table .select-column{width:36px}body.nav-sidebar-collapsed .nav-label{opacity:0;width:0;overflow:hidden;position:absolute}body.nav-sidebar-collapsed .nav-link{justify-content:center;padding:var(--spacing-xs);position:relative;margin:0}body.nav-sidebar-collapsed .nav-link.nav-link--expandable{padding-right:18px}body.nav-sidebar-collapsed .nav-children .nav-link{justify-content:center;padding:var(--spacing-xs);padding-left:var(--spacing-xs);margin:0}body.nav-sidebar-collapsed .nav-children .nav-link.nav-link--expandable{padding-right:18px}body.nav-sidebar-collapsed .nav-arrow{display:flex!important;margin-left:0;position:absolute;right:0;font-size:16px;width:16px;height:16px}body.nav-sidebar-collapsed .nav-children{margin-left:0;margin-right:0;padding-left:0}.main-content{flex:1;display:flex;flex-direction:column;min-height:100vh;position:relative;overflow-x:hidden;box-sizing:border-box;width:0;min-width:0}.top-header{background:var(--background);border-bottom:1px solid var(--border-color);padding:var(--spacing-xs) var(--spacing-md);display:flex;align-items:center;justify-content:space-between;min-height:48px;position:sticky;top:0;z-index:10}.header-left{display:flex;align-items:center;gap:var(--spacing-sm)}.top-header h1{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.header-right{display:flex;align-items:center;gap:var(--spacing-md)}.user-menu{position:relative}.user-profile{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);border-radius:4px;transition:background .2s;position:relative}.user-profile:hover{background:var(--surface)}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid var(--border-color)}.user-avatar-fallback{width:32px;height:32px;border-radius:50%;background:var(--surface-secondary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;font-size:20px;border:2px solid var(--border-color)}.user-name{color:var(--text-primary);font-weight:500;font-size:14px}.user-dropdown-icon{font-size:20px;color:var(--text-secondary);transition:transform .2s}.user-profile.active .user-dropdown-icon{transform:rotate(180deg)}.user-dropdown{position:absolute;top:calc(100% + var(--spacing-xs));right:0;background:var(--background);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:240px;z-index:1000;overflow:hidden}.dropdown-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--surface);border-bottom:1px solid var(--border-color);position:relative}.dropdown-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid var(--border-color)}.dropdown-user-info{flex:1;min-width:0}.dropdown-user-name{font-weight:600;color:var(--text-primary);font-size:14px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-user-email{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-divider{height:1px;background:var(--border-color);margin:var(--spacing-xs) 0}.dropdown-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);color:var(--text-primary);text-decoration:none;cursor:pointer;transition:background .2s;font-size:14px}.dropdown-item:hover{background:var(--surface)}.dropdown-item i{font-size:20px;width:20px;color:var(--text-secondary)}.dropdown-item span{flex:1}.dropdown-item-danger{color:var(--error-color)}.dropdown-item-danger:hover{background:#fee2e2}.dropdown-item-danger i{color:var(--error-color)}.dropdown-toggle{cursor:default}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;margin-left:auto}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.3s;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background-color:var(--primary-color)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.dropdown-theme{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md)}.theme-select{margin-left:auto;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:4px;background:var(--background);color:var(--text-primary);font-size:13px;cursor:pointer}.content-area{flex:1;padding:var(--spacing-sm) var(--spacing-md);overflow-y:auto}.content-area:focus{outline:none}.content-area:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.dropdown-avatar-fallback{width:48px;height:48px;border-radius:50%;background:var(--surface-secondary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;font-size:28px;border:2px solid var(--border-color)}.welcome-message{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary)}.welcome-message h2{margin-bottom:var(--spacing-md);color:var(--text-primary)}.dev-mode-banner{position:fixed;top:0;left:0;right:0;background:var(--warning-color);color:#fff;display:flex;align-items:center;justify-content:center;padding:0;font-size:10px;font-weight:500;z-index:1001;opacity:.75;line-height:1.2;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;user-select:none;-webkit-user-select:none}.dev-mode-banner:hover{opacity:.95}.dev-mode-banner:focus-visible{outline:2px solid #fff;outline-offset:-2px}.bw-dev-log-panel{position:fixed;bottom:0;right:0;width:min(100vw,480px);max-height:min(70vh,520px);z-index:10050;display:flex;flex-direction:column;background:var(--background, #fff);border:1px solid var(--border-color, #d1d5db);border-radius:8px 0 0;box-shadow:0 -4px 24px #00000026;font-size:12px}.bw-dev-log-panel__header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--surface-secondary, #f3f4f6);border-bottom:1px solid var(--border-light, #e5e7eb)}.bw-dev-log-panel__title{font-weight:600;color:var(--text-primary, #111)}.bw-dev-log-panel__actions{display:flex;gap:6px}.bw-dev-log-panel__actions .btn-sm{padding:2px 8px;font-size:11px}.bw-dev-log-panel__body{flex:1;overflow:auto;padding:8px;background:#1e293b;color:#e2e8f0}.bw-dev-log-panel__list{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:1.35;white-space:pre-wrap;word-break:break-word}.bw-dev-log-line{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #334155}.bw-dev-log-line:last-child{border-bottom:none}.bw-dev-log-line__head{color:#94a3b8;margin-bottom:4px}.bw-dev-log-line--api .bw-dev-log-line__head{color:#7dd3fc}.bw-dev-log-line--ok .bw-dev-log-line__head{color:#86efac}.bw-dev-log-line--err .bw-dev-log-line__head{color:#fca5a5}.bw-dev-log-line--warn .bw-dev-log-line__head{color:#fde047}.bw-dev-log-line--ui .bw-dev-log-line__head{color:#c4b5fd}.bw-dev-log-line__detail{margin:0;color:#e2e8f0;font-size:10px}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;vertical-align:middle}@media (max-width: 1023px){body:not(.nav-sidebar-collapsed) .nav-sidebar{transform:translate(0)}.main-content{margin-left:0!important;flex:1!important;width:100%!important}.content-area{padding:var(--spacing-xs)}}@media (min-width: 1024px){.nav-sidebar{position:relative!important;transform:translate(0)!important;display:flex!important;visibility:visible!important}body.nav-sidebar-collapsed .nav-sidebar{transform:translate(0)!important;width:var(--nav-sidebar-collapsed-width)!important;display:flex!important;visibility:visible!important}}.nav-sidebar-nav::-webkit-scrollbar,.content-area::-webkit-scrollbar{width:6px}.nav-sidebar-nav::-webkit-scrollbar-track,.content-area::-webkit-scrollbar-track{background:transparent}.nav-sidebar-nav::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.nav-sidebar-nav::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.bw-alerts{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.bw-alert{min-width:220px;max-width:420px;background:var(--surface);color:var(--text-primary);border:1px solid var(--border-color);border-left-width:4px;border-radius:6px;padding:.75rem .9rem;box-shadow:0 8px 20px #0000001f;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;opacity:0;transform:translateY(-6px);transition:opacity .2s ease,transform .2s ease;pointer-events:auto}.bw-alert.is-visible{opacity:1;transform:translateY(0)}.bw-alert__message{flex:1;font-size:.95rem;line-height:1.35}.bw-alert__close{background:transparent;border:none;color:inherit;font-size:1.1rem;cursor:pointer;padding:0;line-height:1}.bw-alert--success{border-left-color:var(--success-color)}.bw-alert--error{border-left-color:var(--error-color)}.bw-alert--warning{border-left-color:var(--warning-color)}.bw-alert--info{border-left-color:var(--info-color)}.sched-cal-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;margin-bottom:1rem}.sched-cal-nav{display:flex;align-items:center;gap:.5rem}.sched-cal-heading{margin:0 0 0 .5rem;font-size:1.1rem}.sched-cal-views{display:flex;flex-wrap:wrap;gap:.35rem}.sched-cal-views .btn.is-active{background:var(--primary-color, #1565c0);color:#fff}.sched-cal-strip{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem;padding:.75rem;background:linear-gradient(135deg,#1565c014,#00000005);border-radius:8px}.sched-cal-strip-float{background:linear-gradient(135deg,#ff98001a,#00000005)}.sched-cal-strip-items{display:flex;flex-wrap:wrap;gap:.4rem}.sched-cal-chip,.sched-cal-item{text-align:left;border:1px solid rgba(0,0,0,.08);background:var(--card-bg, #fff);border-radius:8px;padding:.55rem .75rem;cursor:pointer}.sched-cal-chip{display:inline-flex;flex-direction:column;min-width:140px}.sched-cal-chip-title,.sched-cal-item-title{font-weight:600}.sched-cal-chip-meta,.sched-cal-item-meta,.muted{color:var(--text-muted);font-size:.85rem}.sched-cal-item{display:grid;grid-template-columns:4.5rem 1fr;gap:.75rem;margin-bottom:.4rem;width:100%}.sched-cal-day-block{margin-bottom:1.25rem}.sched-cal-day-block h3,.sched-cal-week-day h3{margin:0 0 .5rem;font-size:.95rem}.sched-cal-week{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.sched-cal-week-day{padding:.5rem;background:var(--surface-secondary);border-radius:8px;min-height:120px}.sched-cal-list-fallback{margin-top:1.5rem}.header-actions{display:flex;align-items:center;gap:.15rem}.header-action-wrap{position:relative}.header-action-btn,.notif-inbox-btn{position:relative;border:none;background:transparent;cursor:pointer;padding:.4rem;border-radius:8px;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.header-action-btn:hover,.notif-inbox-btn:hover,.header-action-btn[aria-expanded=true],.notif-inbox-btn[aria-expanded=true]{background:var(--surface);color:var(--text-primary)}.header-action-btn .material-icons,.notif-inbox-btn .material-icons{font-size:22px}.header-action-badge,.notif-inbox-badge{position:absolute;top:0;right:0;min-width:1.1rem;height:1.1rem;padding:0 .25rem;border-radius:999px;background:var(--error-color);color:#fff;font-size:.65rem;line-height:1.1rem;text-align:center;font-weight:600}.header-panel,.notif-inbox-dropdown{position:absolute;right:0;top:calc(100% + .4rem);width:min(380px,92vw);max-height:min(72vh,560px);display:flex;flex-direction:column;overflow:hidden;background:var(--background);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 8px 28px color-mix(in srgb,var(--text-primary) 18%,transparent);z-index:1300;color:var(--text-primary)}.header-panel[hidden],.notif-inbox-dropdown[hidden]{display:none!important}.header-panel-header,.notif-inbox-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .9rem;background:var(--surface);border-bottom:1px solid var(--border-color);flex-shrink:0}.header-panel-header strong,.notif-inbox-header strong{color:var(--text-primary);font-size:.95rem}.btn-link{border:none;background:transparent;color:var(--primary-color);cursor:pointer;font-size:.8rem;font-weight:500;padding:0;text-decoration:none}.btn-link:hover{color:var(--primary-dark);text-decoration:underline}.header-panel-body,.notif-inbox-list{display:flex;flex-direction:column;overflow:auto;flex:1;min-height:0;background:var(--background)}.header-panel-section{padding:.55rem .9rem .35rem;border-bottom:1px solid var(--border-light)}.header-panel-section:last-child{border-bottom:none}.header-panel-section-title{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .4rem}.header-panel-item,.notif-inbox-item{border:none;border-bottom:1px solid var(--border-light);background:transparent;color:var(--text-primary);text-align:left;padding:.7rem .9rem;cursor:pointer;width:100%;transition:background .12s ease}.header-panel-item:last-child,.notif-inbox-item:last-child{border-bottom:none}.header-panel-item:hover,.notif-inbox-item:hover{background:var(--surface)}.notif-inbox-item.is-unread,.header-panel-item.is-unread{background:color-mix(in srgb,var(--primary-color) 10%,transparent)}.notif-inbox-item.is-unread:hover,.header-panel-item.is-unread:hover{background:color-mix(in srgb,var(--primary-color) 16%,transparent)}.header-panel-item-title,.notif-inbox-item-title{font-weight:600;font-size:.9rem;color:var(--text-primary)}.header-panel-item-meta,.header-panel-item-body,.notif-inbox-item-body{font-size:.8rem;color:var(--text-muted);margin-top:.15rem}.header-panel-empty{padding:.85rem .9rem;color:var(--text-muted);font-size:.85rem}.header-panel-footer{display:flex;justify-content:space-between;gap:.75rem;padding:.65rem .9rem;border-top:1px solid var(--border-color);background:var(--surface);flex-shrink:0}.header-time-form{display:flex;flex-direction:column;gap:.55rem;padding:.75rem .9rem .9rem}.header-time-form .ht-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.header-time-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;font-weight:600;color:var(--text-secondary)}.header-time-form label.ht-full{grid-column:1 / -1}.header-time-form input,.header-time-form select,.header-time-form textarea{border:1px solid var(--border-color);background:var(--background);color:var(--text-primary);border-radius:6px;padding:.45rem .55rem;font-size:.9rem;font-family:inherit}.header-time-form input:focus,.header-time-form select:focus,.header-time-form textarea:focus{outline:2px solid color-mix(in srgb,var(--primary-color) 45%,transparent);border-color:var(--primary-color)}.header-time-form textarea{resize:vertical;min-height:2.4rem}.header-time-form .ht-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.15rem}.header-time-form .ht-status{font-size:.8rem;color:var(--text-muted);min-height:1.1rem}.header-time-form .ht-status.is-ok{color:var(--success-color, #16a34a)}.header-time-form .ht-status.is-err{color:var(--error-color)}.notif-inbox-wrap{position:relative}.page-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm)}.page-header-back{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:.35rem}.page-header .page-actions{margin-left:auto}.bc-page-header.page-header{justify-content:flex-end}.bc-page-intro{margin:0 0 var(--spacing-md);color:var(--text-secondary);line-height:1.5}.picture-manager-modal{position:fixed;inset:0;background:#00000080;z-index:12000;display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:100dvh;padding:max(var(--spacing-md),env(safe-area-inset-top)) max(var(--spacing-md),env(safe-area-inset-right)) max(var(--spacing-md),env(safe-area-inset-bottom)) max(var(--spacing-md),env(safe-area-inset-left));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.picture-manager-dialog{background:var(--background);border-radius:12px;width:min(960px,100%);max-height:min(90dvh,90vh);display:flex;flex-direction:column;box-shadow:0 16px 40px #0003;overflow:hidden;min-height:0;flex-shrink:0}.picture-manager-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--border-color)}.picture-manager-header h2{margin:0;font-size:18px}.picture-manager-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);padding:0 var(--spacing-md) var(--spacing-md)}.picture-manager-body{flex:1;overflow:auto;padding:0 var(--spacing-md) var(--spacing-md)}.picture-manager-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.picture-manager-row{display:flex;align-items:center;gap:var(--spacing-sm);border:1px solid var(--border-color);border-radius:10px;background:var(--background);padding:var(--spacing-xs)}.picture-manager-thumb{width:64px;height:64px;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--background-muted, #f7f7f7);flex-shrink:0}.picture-manager-thumb img{width:100%;height:100%;object-fit:cover}.picture-manager-info{flex:1;min-width:0}.picture-manager-title{font-size:14px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picture-manager-controls{display:flex;gap:var(--spacing-2xs, 4px)}.picture-move-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center}.picture-move-btn[disabled]{opacity:.4;pointer-events:none}.picture-delete-btn{color:var(--danger-color, #dc2626)}.picture-manager-empty{display:none;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs);color:var(--text-secondary);padding:var(--spacing-lg);text-align:center}.profile-avatar-row{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.profile-avatar{width:96px;height:96px;border-radius:50%;border:1px solid var(--border-color);background:var(--background-muted, #f7f7f7);display:flex;align-items:center;justify-content:center;overflow:hidden}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-avatar-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:36px}.profile-avatar-actions .btn{margin:0}.page-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.page-actions .btn{display:inline-flex;align-items:center;gap:var(--spacing-xs)}.page-header .btn .material-icons{font-size:18px;line-height:1}.page-header-btn-text{display:inline}@media (max-width: 767.98px){.page-header-btn-text{display:none}.page-header-back.btn,.page-header .page-actions .btn,.bc-header-actions .btn{min-width:2.75rem;min-height:2.5rem;justify-content:center;padding-left:.65rem;padding-right:.65rem}}.btn-page-add{position:fixed;right:max(20px,env(safe-area-inset-right,0px));bottom:max(20px,env(safe-area-inset-bottom,0px));z-index:90;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:48px;height:48px;padding:0;margin:0;border:none;border-radius:50%;cursor:pointer;color:#fff;background:var(--primary-color, #5c6bc0);box-shadow:0 2px 8px #0000001f,0 4px 16px color-mix(in srgb,var(--primary-color, #5c6bc0) 35%,transparent);transition:transform .2s cubic-bezier(.34,1.4,.64,1),box-shadow .2s ease,filter .2s ease}.btn-page-add:hover{transform:scale(1.06);filter:brightness(1.05);box-shadow:0 4px 12px #00000024,0 8px 20px color-mix(in srgb,var(--primary-color, #5c6bc0) 40%,transparent)}.btn-page-add:active{transform:scale(.96)}.btn-page-add .material-icons{font-size:26px;line-height:1}.btn-page-add:focus-visible{outline:2px solid var(--primary-color, #5c6bc0);outline-offset:3px}@media print{.btn-page-add{display:none!important}}.page-dashboard{padding:var(--spacing-md)}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.stat-card{background:var(--background);border:1px solid var(--border-color);border-radius:8px;padding:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-md);transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.stat-icon{width:48px;height:48px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:24px}.stat-card-primary .stat-icon{background:#3b82f61a;color:var(--primary-color)}.stat-card-success .stat-icon{background:#10b9811a;color:var(--success-color)}.stat-card-warning .stat-icon{background:#f59e0b1a;color:var(--warning-color)}.stat-card-info .stat-icon{background:#3b82f61a;color:var(--info-color)}.stat-content{flex:1}.stat-value{font-size:28px;font-weight:700;color:var(--text-primary);line-height:1;margin-bottom:var(--spacing-xs)}.stat-label{font-size:14px;color:var(--text-secondary)}.dashboard-content{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-lg)}.dashboard-section{background:var(--background);border:1px solid var(--border-color);border-radius:8px;padding:var(--spacing-lg)}.dashboard-section h2{font-size:18px;font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.dashboard-actions{margin-top:var(--spacing-xl)}.dashboard-section-title{font-size:20px;font-weight:600;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.dashboard-action-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg)}.action-card{background:var(--background);border:1px solid var(--border-color);border-radius:8px;padding:var(--spacing-lg);transition:transform .2s,box-shadow .2s;cursor:pointer}.action-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.action-card-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-light)}.action-card-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.action-card-warning .action-card-icon{background:#f59e0b1a;color:var(--warning-color)}.action-card-info .action-card-icon{background:#3b82f61a;color:var(--info-color)}.action-card-success .action-card-icon{background:#10b9811a;color:var(--success-color)}.action-card-primary .action-card-icon{background:#3b82f61a;color:var(--primary-color)}.action-card-title{flex:1;min-width:0}.action-card-title h3{font-size:16px;font-weight:600;margin:0 0 4px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-card-count{font-size:12px;color:var(--text-secondary);font-weight:500}.action-card-body{display:flex;flex-direction:column;gap:var(--spacing-xs)}.action-card-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-xs);border-radius:4px;transition:background .2s}.action-card-item:hover{background:var(--surface)}.action-card-item-text{flex:1;font-size:14px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-card-item .material-icons{font-size:18px;color:var(--text-muted);flex-shrink:0;margin-left:var(--spacing-xs)}.action-card-more{font-size:12px;color:var(--text-secondary);font-style:italic;padding:var(--spacing-xs);text-align:center}.action-card-empty{font-size:14px;color:var(--text-secondary);font-style:italic;padding:var(--spacing-md);text-align:center}.data-table-container{background:var(--background);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:var(--surface);border-bottom:2px solid var(--border-color)}.data-table th{padding:var(--spacing-md);text-align:left;font-weight:600;color:var(--text-primary);font-size:13px;text-transform:uppercase;letter-spacing:.5px}.data-table td{padding:var(--spacing-sm);border-bottom:1px solid var(--border-light);color:var(--text-primary)}.data-table:not(.data-table--responsive) td .table-cell-text-ellipsis,.detail-table:not(.detail-table--responsive) td .table-cell-text-ellipsis{display:inline-block;max-width:min(100%,clamp(6ch,20vw,24ch));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;cursor:help;min-width:0;box-sizing:border-box}@media (min-width: 1200px){.data-table:not(.data-table--responsive) td .table-cell-text-ellipsis,.detail-table:not(.detail-table--responsive) td .table-cell-text-ellipsis{max-width:min(100%,clamp(12ch,14vw,38ch))}}@media (max-width: 991.98px){.data-table:not(.data-table--responsive) td .table-cell-text-ellipsis,.detail-table:not(.detail-table--responsive) td .table-cell-text-ellipsis{max-width:min(100%,clamp(5ch,18vw,16ch))}}@media (max-width: 767.98px){.data-table:not(.data-table--responsive) td .table-cell-text-ellipsis,.detail-table:not(.detail-table--responsive) td .table-cell-text-ellipsis{max-width:min(100%,clamp(4ch,14vw,12ch))}}@media (max-width: 575.98px){.data-table:not(.data-table--responsive) td .table-cell-text-ellipsis,.detail-table:not(.detail-table--responsive) td .table-cell-text-ellipsis{max-width:min(100%,clamp(3.25ch,11vw,10ch))}}.data-table td .table-cell-truncated-fixed,.detail-table td .table-cell-truncated-fixed{cursor:help}.data-table tbody tr:hover{background:var(--surface)}.data-table tbody tr:last-child td{border-bottom:none}.loading-state{padding:var(--spacing-xl);text-align:center;color:var(--text-secondary)}.loading-state .spinner{width:40px;height:40px;border:3px solid var(--border-light);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto var(--spacing-md)}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{padding:var(--spacing-xl);text-align:center;color:var(--text-secondary)}.empty-state i{font-size:48px;color:var(--text-muted);margin-bottom:var(--spacing-md)}.empty-state-with-action{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.empty-state-with-action .empty-state-message{margin:0}.data-table-empty-cell{padding:0!important;border-bottom:none}.data-table-empty-cell .empty-state{padding:var(--spacing-xl)}.content-area.route-loading{opacity:.9;transition:opacity .12s ease-out;pointer-events:none}.error-state{padding:var(--spacing-xl);text-align:center;color:var(--error-color)}.error-state i{font-size:48px;margin-bottom:var(--spacing-md)}.page-coming-soon{display:flex;align-items:center;justify-content:center;min-height:400px}.coming-soon-content{text-align:center;max-width:400px}.coming-soon-icon{font-size:64px;color:var(--text-muted);margin-bottom:var(--spacing-lg)}.coming-soon-content h1{font-size:24px;margin-bottom:var(--spacing-md);color:var(--text-primary)}.coming-soon-content p{color:var(--text-secondary)}.coming-soon-actions{margin-top:var(--spacing-lg);display:flex;justify-content:center;gap:var(--spacing-sm)}.page-error{display:flex;align-items:center;justify-content:center;min-height:400px}.error-content{text-align:center;max-width:400px}.error-icon{font-size:64px;color:var(--error-color);margin-bottom:var(--spacing-lg)}.error-content h1{font-size:24px;margin-bottom:var(--spacing-md);color:var(--text-primary)}.error-content p{color:var(--text-secondary);margin-bottom:var(--spacing-lg)}.data-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;container-type:inline-size;container-name:datatable}.data-table.data-table--responsive,.detail-table.detail-table--responsive{width:100%;table-layout:auto}.data-table.data-table--responsive th,.data-table.data-table--responsive td,.detail-table.detail-table--responsive th,.detail-table.detail-table--responsive td{min-width:0;vertical-align:middle;padding:.3rem 4px;box-sizing:border-box}.data-table.data-table--responsive thead .data-table-th{white-space:normal;font-size:11px;letter-spacing:.04em;padding:.28rem 3px}.data-table.data-table--responsive .data-table-th-inner{justify-content:flex-start;flex-wrap:wrap;row-gap:0;column-gap:.125rem}.data-table.data-table--responsive .data-table-th-label{flex:0 1 auto}.data-table.data-table--responsive .data-table-th .th-sort .material-icons,.data-table.data-table--responsive .data-table-th .th-filter .material-icons{font-size:16px;width:15px;height:15px}.detail-table.detail-table--responsive thead th{white-space:normal}@media (max-width: 575.98px){.data-table.data-table--responsive th,.data-table.data-table--responsive td,.detail-table.detail-table--responsive th,.detail-table.detail-table--responsive td{padding:.26rem 4px}.data-table.data-table--responsive thead .data-table-th .data-table-th-label{font-size:10px;letter-spacing:.2px}}.data-table.data-table--responsive th.col-tier-primary,.data-table.data-table--responsive td.col-tier-primary,.detail-table.detail-table--responsive th.col-tier-primary,.detail-table.detail-table--responsive td.col-tier-primary,.data-table.data-table--responsive th.col-tier-secondary,.data-table.data-table--responsive td.col-tier-secondary,.detail-table.detail-table--responsive th.col-tier-secondary,.detail-table.detail-table--responsive td.col-tier-secondary,.data-table.data-table--responsive th.col-tier-tertiary,.data-table.data-table--responsive td.col-tier-tertiary,.detail-table.detail-table--responsive th.col-tier-tertiary,.detail-table.detail-table--responsive td.col-tier-tertiary{min-width:0}.data-table.data-table--responsive th.select-column,.data-table.data-table--responsive td.select-column{width:36px!important;min-width:36px!important;max-width:36px!important;padding-left:2px!important;padding-right:2px!important;box-sizing:border-box;white-space:nowrap}.data-table.data-table--responsive th.col-tier-control:not(.select-column):not(.actions-column),.data-table.data-table--responsive td.col-tier-control:not(.select-column):not(.actions-column),.detail-table.detail-table--responsive th.col-tier-control:not(.select-column):not(.actions-column),.detail-table.detail-table--responsive td.col-tier-control:not(.select-column):not(.actions-column){width:2.25rem;min-width:2.25rem;max-width:2.25rem}@media (max-width: 575.98px){.data-table.data-table--responsive th.select-column,.data-table.data-table--responsive td.select-column{width:32px!important;min-width:32px!important;max-width:32px!important;padding-left:2px!important;padding-right:2px!important}}.data-table.data-table--responsive th.actions-column,.data-table.data-table--responsive td.actions-column{width:min(4.25rem,20vw);min-width:2.75rem;max-width:4.75rem;padding-left:3px!important;padding-right:3px!important;box-sizing:border-box}.data-table-wrapper.dt-below-xl .data-table.data-table--responsive .col-hide-below-xl,.data-table-wrapper.dt-below-xl .detail-table.detail-table--responsive .col-hide-below-xl,.data-table-wrapper.dt-below-lg .data-table.data-table--responsive .col-hide-below-lg,.data-table-wrapper.dt-below-lg .detail-table.detail-table--responsive .col-hide-below-lg,.data-table-wrapper.dt-below-md .data-table.data-table--responsive .col-hide-below-md,.data-table-wrapper.dt-below-md .detail-table.detail-table--responsive .col-hide-below-md,.data-table-wrapper.dt-below-sm .data-table.data-table--responsive .col-hide-below-sm,.data-table-wrapper.dt-below-sm .detail-table.detail-table--responsive .col-hide-below-sm{display:none!important}@container (max-width: 1400px){.data-table.data-table--responsive .col-hide-below-xl,.detail-table.detail-table--responsive .col-hide-below-xl{display:none!important}}@container (max-width: 992px){.data-table.data-table--responsive .col-hide-below-lg,.detail-table.detail-table--responsive .col-hide-below-lg{display:none!important}}@container (max-width: 360px){.data-table.data-table--responsive .col-hide-below-md,.detail-table.detail-table--responsive .col-hide-below-md{display:none!important}}@container (max-width: 280px){.data-table.data-table--responsive .col-hide-below-sm,.detail-table.detail-table--responsive .col-hide-below-sm{display:none!important}}@supports not (container-type: inline-size){@media (max-width: 992px){.data-table.data-table--responsive .col-hide-below-lg,.detail-table.detail-table--responsive .col-hide-below-lg{display:none!important}}@media (max-width: 680px){.data-table.data-table--responsive .col-hide-below-md,.detail-table.detail-table--responsive .col-hide-below-md{display:none!important}}@media (max-width: 520px){.data-table.data-table--responsive .col-hide-below-sm,.detail-table.detail-table--responsive .col-hide-below-sm{display:none!important}}@media (max-width: 1400px){.data-table.data-table--responsive .col-hide-below-xl,.detail-table.detail-table--responsive .col-hide-below-xl{display:none!important}}}.data-table.data-table--responsive thead .data-table-th,.data-table.data-table--responsive td,.detail-table.detail-table--responsive th,.detail-table.detail-table--responsive td{overflow:hidden}.data-table.data-table--responsive td .table-cell-text-ellipsis,.detail-table.detail-table--responsive td .table-cell-text-ellipsis{display:block;width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:help;min-width:0;box-sizing:border-box}@supports (width: 1cqi){.data-table-wrapper .data-table.data-table--responsive thead th.col-tier-primary,.data-table-wrapper .data-table.data-table--responsive tbody td.col-tier-primary{max-width:max(3rem,calc(100cqi - 20rem))}}.data-table.data-table--responsive td .status-edit-container,.detail-table.detail-table--responsive td .status-edit-container{max-width:100%;min-width:0;overflow:hidden}.data-table.data-table--responsive td .status-edit-container .status-dropdown,.detail-table.detail-table--responsive td .status-edit-container .status-dropdown{max-width:100%;min-width:0}.actions-column{width:120px;text-align:right;white-space:nowrap}.actions-column .btn-icon{padding:4px;margin:0 2px;display:inline-flex;align-items:center;justify-content:center}.actions-column .btn-icon .material-icons{font-size:18px}.actions-column .btn-icon:hover{background:var(--surface-secondary)}.btn-icon{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--spacing-xs);margin:0 var(--spacing-xs);border-radius:4px;transition:background .2s,color .2s;display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--surface);color:var(--primary-color)}.btn-icon-danger:hover{color:var(--error-color)}.btn-icon .material-icons{font-size:18px}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-md);border-top:1px solid var(--border-color)}.pagination-btn{background:var(--background);border:1px solid var(--border-color);color:var(--text-primary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:4px;cursor:pointer;transition:all .2s;min-width:32px;height:32px;display:flex;align-items:center;justify-content:center}.pagination-btn:hover{background:var(--surface);border-color:var(--primary-color)}.pagination-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.pagination-ellipsis{padding:var(--spacing-xs);color:var(--text-muted)}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-success{background:#10b9811a;color:var(--success-color)}@media (max-width: 768px){.dashboard-stats,.dashboard-content{grid-template-columns:1fr}.data-table{font-size:13px}.data-table:not(.data-table--responsive) th,.data-table:not(.data-table--responsive) td{padding:var(--spacing-sm)}}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg);margin-top:var(--spacing-lg)}.settings-card{background:var(--background);border:1px solid var(--border-color);border-radius:8px;padding:var(--spacing-lg);transition:transform .2s,box-shadow .2s}.settings-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.settings-card h3{margin:0 0 var(--spacing-sm) 0;color:var(--text-primary);font-size:18px}.settings-card p{margin:0 0 var(--spacing-md) 0;color:var(--text-secondary);font-size:14px}.nav-preferences{border:1px solid var(--border-color);border-radius:6px;padding:var(--spacing-sm);max-height:320px;overflow:auto;background:var(--surface);margin-bottom:var(--spacing-sm)}.nav-pref-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .25rem;font-size:.9rem}.nav-pref-children{margin-left:1.25rem}.nav-pref-child{opacity:.9}.info-card{background:var(--background);border:1px solid var(--border-color);border-radius:8px;padding:var(--spacing-lg);text-align:center}.info-card p{color:var(--text-secondary);font-size:16px;margin:0}.detail-modal{display:none;position:fixed;inset:0;z-index:2000;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;box-sizing:border-box;min-height:100dvh;padding:max(var(--spacing-md),env(safe-area-inset-top)) max(var(--spacing-md),env(safe-area-inset-right)) max(var(--spacing-md),env(safe-area-inset-bottom)) max(var(--spacing-md),env(safe-area-inset-left));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.detail-modal.active{display:flex;opacity:1}.detail-modal-overlay{position:absolute;inset:0;background:#00000080}.detail-modal-content{position:relative;background:var(--background);border-radius:8px;box-shadow:0 10px 40px #0003;max-width:min(700px,100%);width:min(700px,100%);max-height:min(90dvh,90vh);display:flex;flex-direction:column;min-height:0;overflow:hidden;z-index:2001}@media (min-width: 768px){.detail-modal-content{max-width:min(960px,calc(100vw - 2rem));width:min(960px,calc(100vw - 2rem))}}.detail-modal-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:2;flex-shrink:0;background:var(--background)}.detail-modal-header h2{margin:0;font-size:20px;color:var(--text-primary)}.detail-modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--spacing-xs);border-radius:4px;transition:background .2s}.detail-modal-close:hover{background:var(--surface)}.detail-modal-body{padding:var(--spacing-lg);flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.detail-field{margin-bottom:var(--spacing-xs);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--border-color)}.detail-value.clickable{cursor:pointer;color:var(--primary-color);text-decoration:underline}.detail-value.clickable:hover{opacity:.8}.detail-field:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.detail-field label{display:block;font-weight:500;color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.detail-value{color:var(--text-primary);font-size:14px;word-break:break-word}.form-modal{display:none;position:fixed;inset:0;z-index:2000;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;box-sizing:border-box;min-height:100dvh;padding:max(var(--spacing-md),env(safe-area-inset-top)) max(var(--spacing-md),env(safe-area-inset-right)) max(var(--spacing-md),env(safe-area-inset-bottom)) max(var(--spacing-md),env(safe-area-inset-left));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.form-modal.active{opacity:1}.form-modal-overlay{position:absolute;inset:0;background:#00000080}.form-modal-content{position:relative;background:var(--background);border-radius:8px;box-shadow:0 10px 40px #0003;max-width:min(600px,100%);width:min(600px,100%);max-height:min(90dvh,90vh);display:flex;flex-direction:column;min-height:0;overflow:hidden;z-index:2001}@media (min-width: 768px){.form-modal-content{max-width:min(920px,calc(100vw - 2rem));width:min(920px,calc(100vw - 2rem))}}@media (min-width: 1200px){.form-modal-content{max-width:min(1040px,calc(100vw - 3rem));width:min(1040px,calc(100vw - 3rem))}}.form-modal-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:2;flex-shrink:0;background:var(--background)}.form-modal-header h2,.form-modal-header h3{margin:0;font-size:20px;color:var(--text-primary)}.form-modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--spacing-xs);border-radius:4px;transition:background .2s}.form-modal-close:hover{background:var(--surface)}.form-modal-body{padding:var(--spacing-lg);flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}@media (max-width: 480px){.detail-modal-header,.form-modal-header,.detail-modal-body,.form-modal-body{padding:var(--spacing-md)}}.data-form{display:flex;flex-direction:column;gap:var(--spacing-md)}@media (min-width: 768px){.form-modal .data-form,.detail-page .data-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-md) var(--spacing-lg);align-items:start}.form-modal .data-form>.form-field--full,.detail-page .data-form>.form-field--full,.form-modal .data-form>.form-actions,.detail-page .data-form>.form-actions,.form-modal .data-form>.error-message,.detail-page .data-form>.error-message{grid-column:1 / -1}}@media (min-width: 1100px){.detail-page .data-form{grid-template-columns:repeat(3,minmax(0,1fr))}}.form-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-field label{font-weight:500;color:var(--text-primary);font-size:14px}.form-field .required{color:var(--error-color)}.form-field input,.form-field select,.form-field textarea{padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:4px;font-size:14px;color:var(--text-primary);background:var(--input-bg);transition:border-color .2s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--primary-color)}.form-field textarea{min-height:100px;resize:vertical}.form-help{color:var(--text-muted);font-size:12px}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.detail-page{padding:var(--spacing-xs)}.detail-page>.page-header{margin-bottom:var(--spacing-sm)}.detail-page-content{display:flex;flex-direction:column;gap:var(--spacing-sm)}.detail-section{background:var(--card);border:1px solid var(--border-color);border-radius:var(--radius, 8px);padding:var(--spacing-lg)}.api-settings-accordion{display:flex;flex-direction:column;gap:.5rem}.api-settings-accordion .accordion-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius, 6px);background:var(--card);font-size:.875rem;cursor:pointer}.api-settings-accordion .accordion-toggle .material-icons{font-size:20px;transition:transform .2s ease}.api-settings-accordion .accordion-toggle.open .material-icons{transform:rotate(180deg)}.api-settings-accordion .accordion-panel{display:none;padding:.5rem .75rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius, 6px);background:var(--card)}.api-settings-accordion .accordion-panel.open{display:block}.integration-output{background:var(--surface-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;padding:12px;font-size:.85rem;min-height:56px;white-space:pre-wrap}.integration-output.success{border-color:var(--success-color)}.integration-output.error{border-color:var(--error-color)}.integration-output.info{border-color:var(--info-color)}.detail-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.detail-section-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--primary-color);padding-bottom:var(--spacing-xs);flex:1}.detail-section-actions{display:flex;gap:var(--spacing-xs);align-items:center}.detail-section-actions .btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:.875rem}.detail-section-actions .btn-sm{padding:4px 8px;font-size:.75rem}.detail-section-actions .material-icons{font-size:18px}.detail-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md)}.detail-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.detail-field label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.detail-value{font-size:14px;color:var(--text-primary);padding:var(--spacing-xs) 0}a.contact-link{color:var(--primary-color, #1565c0);text-decoration:underline;text-underline-offset:2px}a.contact-link:hover{text-decoration-thickness:2px}.detail-table-wrapper{overflow-x:auto;container-type:inline-size;container-name:datatable}.detail-table{width:100%;border-collapse:collapse;margin-top:var(--spacing-md)}.detail-table thead{background:var(--surface-secondary)}.detail-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;color:var(--text-secondary);border-bottom:2px solid var(--border-color)}.detail-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color)}.detail-table tbody tr{transition:background-color .2s}.detail-table tbody tr[data-clickable=true]{cursor:pointer}.detail-table tbody tr[data-clickable=true]:hover{background:var(--surface-secondary)}.detail-table tbody tr.detail-table-row-archived td:not(:has(.status-edit-container)){text-decoration:line-through;color:var(--text-secondary, inherit);opacity:.92}.data-table tbody tr.data-table-row-archived td:not(:has(.status-edit-container)){text-decoration:line-through;color:var(--text-secondary, inherit);opacity:.92}.detail-related{padding:var(--spacing-md);background:var(--surface-secondary);border-radius:var(--radius, 4px)}.detail-related[data-clickable=true]{cursor:pointer;transition:background-color .2s,transform .2s}.detail-related[data-clickable=true]:hover{background:var(--surface-hover, var(--surface-secondary));transform:translate(4px)}.data-table tbody tr[data-clickable=true]{cursor:pointer;transition:background-color .2s}.data-table tbody tr[data-clickable=true]:hover{background:var(--surface-secondary)}.detail-section .empty-state{text-align:center;padding:var(--spacing-sm);color:var(--text-secondary);font-style:italic}.timeline-container{min-width:200px;padding:var(--spacing-xs) 0}.timeline-bar{position:relative;height:24px;background:var(--surface-secondary);border-radius:12px;overflow:hidden;margin-bottom:var(--spacing-xs)}.timeline-gradient{position:absolute;inset:0;border-radius:12px}.timeline-marker{position:absolute;top:0;bottom:0;width:3px;background:var(--text-primary);transform:translate(-50%);z-index:2;box-shadow:0 0 2px #0000004d}.timeline-marker:before{content:"";position:absolute;top:-4px;left:50%;transform:translate(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid var(--text-primary)}.timeline-today{position:absolute;top:0;bottom:0;width:2px;background:var(--text-primary);transform:translate(-50%);z-index:3;box-shadow:0 0 3px color-mix(in srgb,var(--text-primary) 45%,transparent)}.timeline-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-secondary);margin-top:2px}.timeline-label-start,.timeline-label-end{font-size:.7rem;color:var(--text-secondary)}.detail-timeline-wrapper{padding:var(--spacing-md);background:var(--background);border-radius:8px;border:1px solid var(--border-color)}.upcoming-events{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--background);border-radius:8px;border:1px solid var(--border-color)}.upcoming-event-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm)}.upcoming-event-label{min-width:120px;font-weight:500;color:var(--text-primary);font-size:.9rem}.upcoming-event-timeline{flex:1;min-width:200px}.upcoming-event-dates{min-width:150px;font-size:.85rem;color:var(--text-secondary);text-align:right}.compact-timeline-bar{position:relative;height:16px;background:var(--surface-secondary);border-radius:8px;overflow:hidden}.compact-timeline-gradient{position:absolute;inset:0;border-radius:8px}.compact-timeline-marker{position:absolute;top:0;bottom:0;width:2px;background:var(--text-primary);transform:translate(-50%);z-index:2}.compact-timeline-marker:before{content:"";position:absolute;top:-3px;left:50%;transform:translate(-50%);width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid var(--text-primary)}.compact-timeline-today{position:absolute;top:0;bottom:0;width:2px;background:var(--text-primary);transform:translate(-50%);z-index:3;box-shadow:0 0 2px color-mix(in srgb,var(--text-primary) 45%,transparent)}.upcoming-event-item.missing-heats{flex-direction:column;align-items:flex-start;padding:var(--spacing-md);background:color-mix(in srgb,var(--warning-color) 16%,var(--background));border:1px solid color-mix(in srgb,var(--warning-color) 50%,var(--border-color));border-radius:6px}.missing-heats-list{width:100%;display:flex;flex-direction:column;gap:var(--spacing-xs)}.missing-heat-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs);background:var(--background);border:1px solid var(--border-color);border-radius:4px;font-size:.85rem}.missing-heat-date{font-weight:500;min-width:120px;color:var(--text-primary)}.missing-heat-reason{flex:1;color:var(--text-secondary);font-style:italic}.missing-heats-more{padding:var(--spacing-xs);color:var(--text-secondary);font-size:.85rem;font-style:italic}.page-communications{display:flex;flex-direction:column;height:calc(100vh - 120px);padding:var(--spacing-md)}.communications-container{display:flex;gap:var(--spacing-md);flex:1;min-height:0;margin-top:var(--spacing-md)}.communications-sidebar{width:350px;display:flex;flex-direction:column;background:var(--background);border:1px solid var(--border-color);border-radius:8px;overflow:hidden;transition:transform .3s ease}@media (max-width: 767px){.communications-sidebar{width:100%}.communications-sidebar.hidden-mobile,.communications-main{display:none}.communications-main.visible-mobile{display:flex;width:100%}.communications-container{flex-direction:column}}.communications-filters{padding:var(--spacing-sm);border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:var(--spacing-xs)}.communications-filters .form-control{width:100%}.conversations-list{flex:1;overflow-y:auto;display:flex;flex-direction:column}.conversation-item{padding:var(--spacing-sm);border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s}.conversation-item:hover{background-color:var(--background-hover)}.conversation-item.selected{background-color:var(--primary-light);border-left:3px solid var(--primary)}.conversation-header{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.conversation-header .material-icons{font-size:20px;color:var(--text-secondary)}.conversation-info{flex:1;min-width:0}.conversation-name{font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-meta{font-size:.85rem;color:var(--text-secondary)}.unread-badge{background:var(--primary);color:#fff;border-radius:12px;padding:2px 8px;font-size:.75rem;font-weight:600}.conversation-preview{font-size:.9rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.communications-main{flex:1;display:flex;flex-direction:column;background:var(--background);border:1px solid var(--border-color);border-radius:8px;overflow:hidden;min-width:0}.communications-thread{display:flex;flex-direction:column;height:100%}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--text-secondary);padding:var(--spacing-xl)}.empty-state .material-icons{font-size:64px;margin-bottom:var(--spacing-md);opacity:.5}.thread-header{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.thread-header-left{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;min-width:0}.thread-contact-link{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--info-light);border:1px solid var(--info);border-radius:6px}.contact-match-info{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.9rem;color:var(--text-primary)}.contact-match-info .material-icons{font-size:18px;color:var(--info)}.link-contact-btn{display:flex;align-items:center;gap:var(--spacing-xs);white-space:nowrap}.btn-back-mobile{display:none;align-items:center;justify-content:center;padding:var(--spacing-xs);background:transparent;border:none;cursor:pointer;color:var(--text-primary);border-radius:4px;transition:background-color .2s}.btn-back-mobile:hover{background:var(--background-hover)}.btn-back-mobile .material-icons{font-size:24px}@media (max-width: 767px){.thread-header{flex-wrap:wrap;gap:var(--spacing-sm)}.thread-header-left{width:100%}.btn-back-mobile{display:flex}}.thread-contact-info h3{margin:0 0 var(--spacing-xs) 0;font-size:1.2rem}.thread-contact-details{display:flex;gap:var(--spacing-md);font-size:.9rem;color:var(--text-secondary)}.thread-contact-details span{display:flex;align-items:center;gap:var(--spacing-xs)}.thread-actions{display:flex;gap:var(--spacing-xs)}.thread-messages{flex:1;overflow-y:auto;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.message{max-width:70%;padding:var(--spacing-sm);border-radius:8px;display:flex;flex-direction:column;gap:var(--spacing-xs)}.thread-messages .message.inbound{align-self:flex-start!important;background:var(--background-hover);border:1px solid var(--border-color)}.thread-messages .message.outbound{align-self:flex-end!important;background:var(--primary-light);border:1px solid var(--primary)}.message-header{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.message-meta{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--text-secondary)}.message-from{font-weight:600;color:var(--text-primary)}.message-time{color:var(--text-secondary)}.status-badge{padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:600}.status-sent{background:var(--success-light);color:var(--success)}.status-delivered{background:var(--info-light);color:var(--info)}.status-read{background:var(--primary-light);color:var(--primary)}.status-pending{background:var(--warning-light);color:var(--warning)}.status-failed{background:var(--danger-light);color:var(--danger)}.message-body{line-height:1.5;color:var(--text-primary)}.message-media{margin-top:var(--spacing-xs)}.message-media a{color:var(--primary);text-decoration:none}.message-media a:hover{text-decoration:underline}.thread-compose{padding:var(--spacing-md);border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:var(--spacing-xs)}.thread-compose textarea{min-height:80px;resize:vertical}.compose-actions{display:flex;gap:var(--spacing-xs);align-items:center}.compose-actions select{width:150px}.compose-recipient-field{position:relative}.compose-recipient-results{position:absolute;left:0;right:0;top:100%;margin-top:2px;z-index:20;max-height:240px;overflow-y:auto;background:var(--surface, #fff);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 8px 24px #0000001f}.compose-recipient-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:.65rem .85rem;border:0;border-bottom:1px solid var(--border-color);background:transparent;text-align:left;cursor:pointer}.compose-recipient-option:last-child{border-bottom:0}.compose-recipient-option:hover,.compose-recipient-option:focus{background:var(--hover-bg, rgba(0, 0, 0, .04))}.compose-recipient-name{font-weight:600;color:var(--text-color)}.compose-recipient-detail,.compose-recipient-empty{font-size:.85rem;color:var(--text-muted, #666)}.compose-recipient-empty{padding:.75rem .85rem}.compose-from-note{margin:0;font-size:.85rem;color:var(--text-muted, #666)}.compose-from-note--missing{color:var(--warning-text, #8a6d3b)}.compose-actions .btn{margin-left:auto}.loading,.error{padding:var(--spacing-lg);text-align:center;color:var(--text-secondary)}.error{color:var(--danger)}.page-media{padding:var(--spacing-md)}.media-filters{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md);padding:var(--spacing-md);background:var(--surface);border-radius:8px;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs);min-width:150px}.filter-group label{font-size:12px;font-weight:500;color:var(--text-secondary)}.media-layout{display:flex;gap:var(--spacing-md);height:calc(100vh - 300px)}.media-sidebar{width:250px;background:var(--surface);border-radius:8px;padding:var(--spacing-md);overflow-y:auto}.media-folders h3{font-size:14px;font-weight:600;margin-bottom:var(--spacing-md);color:var(--text-primary)}.folders-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.folder-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:6px;cursor:pointer;transition:background .2s;color:var(--text-primary)}.folder-item:hover{background:var(--surface-secondary)}.folder-item.active{background:var(--primary);color:#fff}.folder-item .material-icons{font-size:20px}.folder-count{margin-left:auto;font-size:12px;opacity:.7}.media-main{flex:1;display:flex;flex-direction:column;gap:var(--spacing-md)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md);overflow-y:auto;padding:var(--spacing-sm)}.media-item{background:var(--surface);border-radius:8px;overflow:hidden;transition:transform .2s,box-shadow .2s;cursor:pointer}.media-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.media-thumbnail{position:relative;width:100%;padding-top:100%;background:var(--surface-secondary);overflow:hidden}.media-thumbnail img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.media-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--surface-secondary);color:var(--text-secondary)}.media-placeholder .material-icons{font-size:48px}.media-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);opacity:0;transition:opacity .2s}.media-item:hover .media-overlay{opacity:1}.media-action-btn{background:#ffffffe6;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.media-action-btn:hover{background:#fff}.media-action-btn .material-icons{font-size:20px;color:var(--text-primary)}.media-info{padding:var(--spacing-sm)}.media-title{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.media-meta{font-size:11px;color:var(--text-secondary)}.media-assigned{color:var(--success)}.media-unassigned{color:var(--text-secondary)}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--text-secondary)}.loading-spinner .material-icons{font-size:48px;animation:spin 1s linear infinite;margin-bottom:var(--spacing-md)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--text-secondary);text-align:center}.empty-state .material-icons,.error-state .material-icons{font-size:64px;margin-bottom:var(--spacing-md);opacity:.5}.error-state{color:var(--danger)}.pagination{display:flex;gap:var(--spacing-xs);justify-content:center;padding:var(--spacing-md)}.pagination-btn{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);background:var(--surface);border-radius:4px;cursor:pointer;transition:all .2s;color:var(--text-primary)}.pagination-btn:hover{background:var(--surface-secondary)}.pagination-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}@media (max-width: 768px){.media-layout{flex-direction:column;height:auto}.media-sidebar{width:100%;max-height:200px}.media-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.media-filters{flex-direction:column}.filter-group{width:100%}}.page-den-control{padding:var(--spacing-md)}.den-control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-md);margin-top:var(--spacing-md)}.den-control-section{background:var(--background);border:1px solid var(--border-color);border-radius:8px;padding:var(--spacing-md)}.den-control-section h2{margin:0 0 var(--spacing-md) 0;font-size:18px;font-weight:600;color:var(--text-primary)}.status-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-sm)}.status-card{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:6px;padding:var(--spacing-sm);text-align:center}.status-label{font-size:12px;color:var(--text-secondary);margin-bottom:var(--spacing-xs);text-transform:uppercase;letter-spacing:.5px}.status-value{font-size:24px;font-weight:600;color:var(--text-primary)}.control-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-sm)}.control-button-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.control-button-group label{font-size:14px;color:var(--text-secondary);font-weight:500}.control-button-group .btn{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:16px;font-weight:600;border-radius:6px;transition:all .2s}.control-button-group .btn.btn-primary{background:var(--primary);color:#fff}.control-button-group .btn.btn-secondary{background:var(--background-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.control-button-group .btn:hover{opacity:.9;transform:translateY(-1px)}.events-list{max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-xs)}.event-item{padding:var(--spacing-sm);border-left:3px solid var(--border-color);border-radius:4px;background:var(--background-secondary);display:flex;flex-direction:column;gap:var(--spacing-xs)}.event-item.event-info{border-left-color:var(--info)}.event-item.event-warning{border-left-color:var(--warning);background:#ffc1071a}.event-item.event-critical{border-left-color:var(--danger);background:#dc35451a}.event-time{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.event-message{font-size:14px;color:var(--text-primary)}#denSelect{min-width:200px;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:4px;background:var(--background);color:var(--text-primary);font-size:14px}#denSelect:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px rgba(var(--primary-rgb),.2)}.alert-banner{padding:var(--spacing-md);margin-bottom:var(--spacing-md);border-radius:8px;display:flex;align-items:center;gap:var(--spacing-sm);font-weight:600;box-shadow:0 2px 4px #0000001a}.alert-banner.alert-critical{background:var(--danger);color:#fff;border:2px solid var(--danger)}.alert-banner.alert-critical i{font-size:24px}.alert-banner.alert-blink{animation:alertBlink .5s infinite}@keyframes alertBlink{0%,to{opacity:1}50%{opacity:.3}}.status-card.status-alert{border:2px solid var(--danger);background:#dc35451a}.status-card.status-alert .status-value{color:var(--danger);font-weight:700}.animals-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:300px;overflow-y:auto}.animal-item{padding:var(--spacing-sm);background:var(--background-secondary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s}.animal-item:hover{background:var(--background);border-color:var(--primary);transform:translate(4px)}.animal-name{font-weight:600;font-size:14px;color:var(--text-primary);margin-bottom:var(--spacing-xs)}.animal-breed{font-size:12px;color:var(--text-secondary);margin-bottom:2px}.animal-status{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.den-control-section-wide{grid-column:1 / -1}.cameras-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--spacing-md)}.camera-item{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.camera-header{padding:var(--spacing-sm) var(--spacing-md);background:var(--background);border-bottom:1px solid var(--border-color)}.camera-header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.camera-stream-container{position:relative;width:100%;padding-top:56.25%;background:#000}.camera-stream,.camera-stream-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}.camera-stream-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-secondary);background:var(--background-secondary)}.camera-stream-placeholder i{font-size:48px;margin-bottom:var(--spacing-sm);opacity:.5}.camera-stream-placeholder p{margin:var(--spacing-xs) 0;font-weight:600}.camera-stream-placeholder small{font-size:11px;color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.camera-stream-placeholder .btn{margin-top:var(--spacing-xs)}@media (max-width: 768px){.den-control-grid{grid-template-columns:1fr}.den-control-section-wide{grid-column:1}.status-cards{grid-template-columns:repeat(2,1fr)}.control-buttons,.cameras-grid{grid-template-columns:1fr}}.dashboard-capability-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin:var(--spacing-lg) 0;padding:var(--spacing-lg);background:linear-gradient(135deg,var(--surface-secondary, #f0f4f8) 0%,var(--background-primary, #fff) 100%);border-radius:12px;border:1px solid var(--border-color, #e0e0e0);box-shadow:0 2px 8px #0000000a}.dashboard-capability-copy{flex:1 1 280px;min-width:0}.dashboard-capability-title{margin:0 0 .35rem;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.dashboard-capability-lead{margin:0;font-size:.9375rem;line-height:1.5;color:var(--text-secondary);max-width:40rem}.dashboard-capability-btn{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0}.page-breeding-capabilities .page-description{max-width:52rem;line-height:1.55}.bc-page-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md)}.bc-header-actions{flex-shrink:0;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:flex-end}.bc-stats{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);align-items:stretch}.bc-catalog-note{margin:-.5rem 0 var(--spacing-lg);font-size:.9rem;color:var(--text-secondary, #555);line-height:1.45}.bc-stat-chip{border:1px solid var(--border-color, #e0e0e0);border-radius:10px;padding:.5rem .85rem;display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.1rem;background:var(--background-primary, #fff);cursor:pointer;min-width:6.5rem;transition:box-shadow .15s,transform .1s,border-color .15s;text-align:left}.bc-stat-chip:hover{box-shadow:0 2px 8px #00000014;transform:translateY(-1px)}.bc-stat-chip:focus-visible{outline:2px solid var(--primary-color, #1976d2);outline-offset:2px}.bc-stat-chip.is-active{box-shadow:0 0 0 2px var(--primary-color, #1976d2)}.bc-stat-implemented{border-left:4px solid #2e7d32}.bc-stat-partial{border-left:4px solid #f9a825}.bc-stat-planned{border-left:4px solid #78909c}.bc-stat-num{font-size:1.35rem;font-weight:700;line-height:1.1;color:var(--text-primary)}.bc-stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.bc-help-panel{position:relative;margin-bottom:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);padding-right:2.75rem;background:#e3f2fd;border:1px solid #90caf9;border-radius:10px}.bc-help-panel[hidden]{display:none!important}.bc-help-title{margin:0 0 .5rem;font-size:1rem;font-weight:600}.bc-help-list{margin:0;padding-left:1.25rem;line-height:1.55;font-size:.875rem;color:var(--text-primary)}.bc-help-list kbd{display:inline-block;padding:.1rem .35rem;font-size:.75rem;font-family:ui-monospace,monospace;border:1px solid #90caf9;border-radius:4px;background:#fff}.bc-help-close{position:absolute;top:.35rem;right:.35rem;border:none;background:transparent;cursor:pointer;padding:.25rem;line-height:0;border-radius:4px;color:var(--text-secondary);opacity:.65}.bc-help-close:hover{opacity:1}.bc-toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:10050;padding:.65rem 1.25rem;background:#323232;color:#fff;border-radius:8px;font-size:.875rem;box-shadow:0 4px 12px #0003;max-width:min(90vw,28rem);text-align:center}.bc-toast[hidden]{display:none!important}.bc-section-title{margin:0 0 .25rem;font-size:1.125rem;font-weight:600}.bc-section-hint{margin:0 0 var(--spacing-md);font-size:.875rem;color:var(--text-secondary);max-width:48rem;line-height:1.45}.bc-workflows{margin-bottom:var(--spacing-xl)}.bc-workflow-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--spacing-md)}.bc-workflow-card{border:1px solid var(--border-color, #e0e0e0);border-radius:10px;padding:var(--spacing-md);background:var(--background-primary, #fff);box-shadow:0 1px 3px #0000000f}.bc-workflow-head{display:flex;align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.bc-workflow-icon{font-size:28px;color:var(--primary-color, #1976d2);opacity:.9}.bc-workflow-title{margin:0;font-size:1rem;font-weight:600}.bc-workflow-blurb{margin:.2rem 0 0;font-size:.8125rem;color:var(--text-secondary);line-height:1.35}.bc-workflow-track{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem .25rem}.bc-flow-step{border:none;background:var(--surface-secondary, #eef2f6);color:var(--text-primary);font-size:.8125rem;font-weight:500;padding:.35rem .65rem;border-radius:999px;cursor:pointer;transition:background .15s ease,transform .1s ease}.bc-flow-step:hover{background:#e3eaf2;transform:translateY(-1px)}.bc-flow-step:focus-visible{outline:2px solid var(--primary-color, #1976d2);outline-offset:2px}.bc-flow-step-disabled{font-size:.8125rem;padding:.35rem .65rem;color:var(--text-secondary);opacity:.65}.bc-flow-arrow{display:inline-flex;color:var(--text-secondary);opacity:.7}.bc-flow-arrow .material-icons{font-size:18px}.bc-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.bc-result-count{margin:0;flex:1 1 auto;font-size:.875rem;color:var(--text-secondary)}.bc-view-toggle{display:inline-flex;border:1px solid var(--border-color, #ddd);border-radius:8px;overflow:hidden}.bc-view-btn{border:none;background:var(--background-primary, #fff);padding:.35rem .5rem;cursor:pointer;color:var(--text-secondary);line-height:0}.bc-view-btn:hover{background:var(--surface-secondary, #f5f5f5)}.bc-view-btn.is-active{background:var(--surface-secondary, #e8eaf0);color:var(--text-primary)}.bc-view-btn .material-icons{font-size:22px}.bc-category-bar{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:var(--spacing-md);align-items:center}.bc-pill{border:1px solid var(--border-color, #ccc);background:var(--background-primary, #fff);color:var(--text-secondary);font-size:.8125rem;padding:.35rem .75rem;border-radius:999px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.bc-pill:hover{border-color:#b0bec5;color:var(--text-primary)}.bc-pill.is-active{background:#e3f2fd;border-color:#90caf9;color:#0d47a1;font-weight:500}.bc-pill-all.is-active{background:#e8f5e9;border-color:#81c784;color:#1b5e20}.bc-empty-msg{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary);font-size:.9375rem}.bc-legend{display:flex;flex-wrap:wrap;gap:var(--spacing-lg);margin-bottom:var(--spacing-md);font-size:.875rem;color:var(--text-secondary)}.bc-legend-item{display:inline-flex;align-items:center;gap:.35rem}.bc-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.bc-status-implemented{background:#2e7d32}.bc-status-partial{background:#f9a825}.bc-status-planned{background:#78909c}.bc-filters{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);align-items:flex-end}.bc-filter{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem}.bc-filter-grow{flex:1 1 220px;min-width:180px}.bc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-md)}.bc-grid[data-bc-view=list]{grid-template-columns:1fr;gap:var(--spacing-sm)}.bc-grid[data-bc-view=list] .bc-card{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.bc-grid[data-bc-view=list] .bc-card-title{font-size:.9375rem}.bc-grid[data-bc-view=list] .bc-card-summary{font-size:.8125rem;margin-top:.35rem}.bc-card{border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:var(--spacing-md);background:var(--background-primary, #fff);box-shadow:0 1px 2px #0000000a}.bc-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm)}.bc-card-title{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.bc-card-meta{margin:.25rem 0;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}.bc-card-summary{margin:var(--spacing-sm) 0 0;font-size:.875rem;line-height:1.45;color:var(--text-secondary)}.bc-badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .45rem;border-radius:4px;white-space:nowrap}.bc-badge-implemented{background:#e8f5e9;color:#1b5e20}.bc-badge-partial{background:#fff8e1;color:#f57f17}.bc-badge-planned{background:#eceff1;color:#455a64}.bc-card-maps{margin-top:var(--spacing-sm);display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.bc-map-btn{display:inline-flex;align-items:center;gap:.25rem;border:1px solid #c8e6c9;background:#f1f8f4;color:#1b5e20;font-size:.75rem;font-weight:500;padding:.25rem .5rem;border-radius:6px;cursor:pointer;transition:background .15s,box-shadow .15s}.bc-map-btn:hover{background:#e8f5e9;box-shadow:0 1px 2px #0000000f}.bc-map-btn .material-icons{font-size:16px}.bc-map-api{font-size:.65rem;padding:.2rem .45rem;border-radius:4px;background:#eceff1;color:#455a64;word-break:break-all}.bc-map-fallback,.bc-map-note,.bc-map-tag{font-size:.7rem;padding:.15rem .4rem;border-radius:4px;background:var(--surface-secondary, #f0f0f0);color:var(--text-secondary)}.bc-card.bc-status-implemented{border-left:3px solid #2e7d32}.bc-card.bc-status-partial{border-left:3px solid #f9a825}.bc-card.bc-status-planned{border-left:3px solid #78909c}.page-facility-cameras .facility-cameras-hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.facility-cameras-title{margin:0 0 .35rem;font-size:1.35rem;font-weight:600;letter-spacing:-.02em}.facility-cameras-lead{margin:0;max-width:52rem}.page-facility-cameras .page-description code{font-size:.85em}.facility-cameras-badge{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:.35rem .65rem;border-radius:999px;border:1px solid var(--border-color, #ddd);background:var(--surface-secondary, #f0f0f0);color:var(--text-secondary, #555);white-space:nowrap}.facility-cameras-badge[data-state=ok]{background:#e8f5e9;border-color:#a5d6a7;color:#1b5e20}.facility-cameras-badge[data-state=loading]{background:#e3f2fd;border-color:#90caf9;color:#0d47a1}.facility-cameras-badge[data-state=warn]{background:#fff8e1;border-color:#ffe082;color:#f57f17}.facility-cameras-badge[data-state=error]{background:#ffebee;border-color:#ef9a9a;color:#b71c1c}.facility-cameras-status{padding:.6rem .85rem;border-radius:8px;background:var(--surface-secondary, #f5f5f5);font-size:.875rem;margin-bottom:1rem;line-height:1.45;border:1px solid transparent}.facility-cameras-status.is-loading{border-color:#90caf9;background:#f5f9ff}.facility-cameras-status.is-ok{border-color:#c8e6c9;background:#f4fbf4}.facility-cameras-status.is-warn{border-color:#ffe082;background:#fffdf5;color:#6d4c41}.facility-cameras-status.is-error{background:#ffebee;color:#b71c1c;border-color:#ffcdd2}.facility-cameras-toolbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin-bottom:1rem}.facility-cameras-select-wrap{display:flex;flex-direction:column;gap:.25rem;min-width:220px;flex:1 1 220px}.facility-cameras-select-wrap span{font-size:.75rem;color:var(--text-secondary, #666)}.facility-cameras-live{display:grid;gap:1rem}@media (min-width: 960px){.facility-cameras-live{grid-template-columns:1fr 320px;align-items:start}}.facility-cameras-video-shell{border-radius:12px;border:1px solid var(--border-color, rgba(0, 0, 0, .08));overflow:hidden;background:linear-gradient(180deg,#1a1a1a,#0a0a0a);box-shadow:0 8px 32px #0000001f}.facility-cameras-video-wrap{position:relative;background:#111;overflow:hidden;max-height:min(70vh,560px)}.facility-cameras-video-wrap.is-rail-mode{cursor:ew-resize;touch-action:none}.facility-cameras-video-wrap.at-limit-left{box-shadow:inset 4px 0 #ff98008c}.facility-cameras-video-wrap.at-limit-right{box-shadow:inset -4px 0 #ff98008c}.facility-cameras-video{width:100%;vertical-align:middle;display:block;max-height:min(70vh,560px);background:#000}.facility-cameras-drag-hint{position:absolute;bottom:0;left:0;right:0;padding:.35rem .5rem;font-size:.7rem;color:#ffffffbf;background:linear-gradient(transparent,#000000a6);pointer-events:none}.facility-cameras-rail-panel{padding:1rem 1.1rem;border:1px solid var(--border-color, #ddd);border-radius:12px;background:var(--card-bg);box-shadow:0 2px 8px #0000000a}.facility-cameras-rail-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.facility-cameras-rail-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.facility-cameras-rail-pct{font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary, #111)}.facility-cameras-rail-limits{display:flex;justify-content:space-between;font-size:.65rem;color:var(--text-secondary);margin-bottom:.2rem}.facility-cameras-rail-track-wrap{margin-bottom:.5rem}.facility-cameras-rail-track{position:relative;height:12px;border-radius:6px;background:linear-gradient(90deg,#cfd8dc,#eceff1,#cfd8dc);border:1px solid #b0bec5}.facility-cameras-rail-marker{position:absolute;top:50%;width:20px;height:20px;margin-left:-10px;margin-top:-10px;border-radius:50%;background:#0d47a1;border:2px solid #fff;box-shadow:0 2px 6px #00000040;left:50%;transition:left .08s linear}.facility-cameras-rail-hint{font-size:.75rem;color:var(--text-secondary);margin:0 0 .75rem;min-height:1.25rem}.facility-cameras-rail-actions{display:flex;flex-wrap:wrap;gap:.5rem}
