.rdp-root{--rdp-accent-color: blue;--rdp-accent-background-color: #f0f0ff;--rdp-day-height: 44px;--rdp-day-width: 44px;--rdp-day_button-border-radius: 100%;--rdp-day_button-border: 2px solid transparent;--rdp-day_button-height: 42px;--rdp-day_button-width: 42px;--rdp-selected-border: 2px solid var(--rdp-accent-color);--rdp-disabled-opacity: .5;--rdp-outside-opacity: .75;--rdp-today-color: var(--rdp-accent-color);--rdp-dropdown-gap: .5rem;--rdp-months-gap: 2rem;--rdp-nav_button-disabled-opacity: .5;--rdp-nav_button-height: 2.25rem;--rdp-nav_button-width: 2.25rem;--rdp-nav-height: 2.75rem;--rdp-range_middle-background-color: var(--rdp-accent-background-color);--rdp-range_middle-color: inherit;--rdp-range_start-color: white;--rdp-range_start-background: linear-gradient( var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50% );--rdp-range_start-date-background-color: var(--rdp-accent-color);--rdp-range_end-background: linear-gradient( var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50% );--rdp-range_end-color: white;--rdp-range_end-date-background-color: var(--rdp-accent-color);--rdp-week_number-border-radius: 100%;--rdp-week_number-border: 2px solid transparent;--rdp-week_number-height: var(--rdp-day-height);--rdp-week_number-opacity: .75;--rdp-week_number-width: var(--rdp-day-width);--rdp-weeknumber-text-align: center;--rdp-weekday-opacity: .75;--rdp-weekday-padding: .5rem 0rem;--rdp-weekday-text-align: center;--rdp-gradient-direction: 90deg;--rdp-animation_duration: .3s;--rdp-animation_timing: cubic-bezier(.4, 0, .2, 1)}.rdp-root[dir=rtl]{--rdp-gradient-direction: -90deg}.rdp-root[data-broadcast-calendar=true]{--rdp-outside-opacity: unset}.rdp-root{position:relative;box-sizing:border-box}.rdp-root *{box-sizing:border-box}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center}.rdp-day_button{background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;justify-content:center;align-items:center;display:flex;width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius)}.rdp-day_button:disabled{cursor:revert}.rdp-caption_label{z-index:1;position:relative;display:inline-flex;align-items:center;white-space:nowrap;border:0}.rdp-dropdown:focus-visible~.rdp-caption_label{outline:5px auto Highlight;outline:5px auto -webkit-focus-ring-color}.rdp-button_next,.rdp-button_previous{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;-moz-appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;position:relative;appearance:none;width:var(--rdp-nav_button-width);height:var(--rdp-nav_button-height)}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:revert;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{display:inline-block;fill:var(--rdp-accent-color)}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform:rotate(180deg);transform-origin:50%}.rdp-dropdowns{position:relative;display:inline-flex;align-items:center;gap:var(--rdp-dropdown-gap)}.rdp-dropdown{z-index:2;opacity:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;inset-block-start:0;inset-block-end:0;inset-inline-start:0;width:100%;margin:0;padding:0;cursor:inherit;border:none;line-height:inherit}.rdp-dropdown_root{position:relative;display:inline-flex;align-items:center}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{display:flex;align-content:center;height:var(--rdp-nav-height);font-weight:700;font-size:large}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{position:absolute;inset-inline-start:0;top:0;height:var(--rdp-nav-height);display:inline-flex}.rdp-root[data-nav-layout=around] .rdp-button_next{position:absolute;inset-inline-end:0;top:0;height:var(--rdp-nav-height);display:inline-flex;justify-content:center}.rdp-months{position:relative;display:flex;flex-wrap:wrap;gap:var(--rdp-months-gap);max-width:fit-content}.rdp-month_grid{border-collapse:collapse}.rdp-nav{position:absolute;inset-block-start:0;inset-inline-end:0;display:flex;align-items:center;height:var(--rdp-nav-height)}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);font-weight:500;font-size:smaller;text-align:var(--rdp-weekday-text-align);text-transform:var(--rdp-weekday-text-transform)}.rdp-week_number{opacity:var(--rdp-week_number-opacity);font-weight:400;font-size:small;height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:var(--rdp-weeknumber-text-align)}.rdp-today:not(.rdp-outside){color:var(--rdp-today-color)}.rdp-selected{font-weight:700;font-size:large}.rdp-selected .rdp-day_button{border:var(--rdp-selected-border)}.rdp-outside{opacity:var(--rdp-outside-opacity)}.rdp-disabled:not(.rdp-selected){opacity:var(--rdp-disabled-opacity)}.rdp-hidden{visibility:hidden;color:var(--rdp-range_start-color)}.rdp-range_start{background:var(--rdp-range_start-background)}.rdp-range_start .rdp-day_button{background-color:var(--rdp-range_start-date-background-color);color:var(--rdp-range_start-color)}.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-range_middle .rdp-day_button{border:unset;border-radius:unset;color:var(--rdp-range_middle-color)}.rdp-range_end{background:var(--rdp-range_end-background);color:var(--rdp-range_end-color)}.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:var(--rdp-range_end-date-background-color)}.rdp-range_start.rdp-range_end{background:revert}.rdp-focusable{cursor:pointer}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}:root,[data-theme=dark]{--bg-base: #0a0a0a;--bg-surface: #131313;--bg-elevated: #1a1a1a;--bg-hover: #1f1f1f;--border: #262626;--border-strong: #333333;--text-primary: #f5f5f5;--text-secondary: #a3a3a3;--text-tertiary: #737373;--text-disabled: #525252;--text-on-accent: #04130d;--accent: #10b981;--accent-hover: #059669;--accent-soft: rgba(16, 185, 129, .12);--accent-ring: rgba(16, 185, 129, .25);--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .12);--warning: #f59e0b;--warning-soft: rgba(245, 158, 11, .12);--info: #3b82f6;--info-soft: rgba(59, 130, 246, .12);--chart-grid: #262626;--chart-tick: #737373;--chart-tooltip-bg: #1a1a1a;--chart-tooltip-border: #333333;--chart-tooltip-text: #f5f5f5;--r-xs: 6px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .6);--sidebar-w: 240px;--topbar-h: 56px;--user-footer-h: 56px}[data-theme=light]{--bg-base: #f7f8fa;--bg-surface: #ffffff;--bg-elevated: #f1f3f5;--bg-hover: #e9ecef;--border: #e2e8f0;--border-strong: #cbd5e0;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #94a3b8;--text-disabled: #cbd5e0;--text-on-accent: #ffffff;--accent: #059669;--accent-hover: #047857;--accent-soft: rgba(16, 185, 129, .12);--accent-ring: rgba(16, 185, 129, .3);--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .1);--warning: #d97706;--warning-soft: rgba(217, 119, 6, .12);--info: #2563eb;--info-soft: rgba(37, 99, 235, .1);--chart-grid: #e2e8f0;--chart-tick: #64748b;--chart-tooltip-bg: #ffffff;--chart-tooltip-border: #e2e8f0;--chart-tooltip-text: #0f172a;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 16px 48px rgba(15, 23, 42, .12)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;min-height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-feature-settings:"cv11","ss01","ss03";background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:24px;letter-spacing:-.02em}h2{font-size:18px}h3{font-size:14px}p{margin:0}a{color:var(--text-primary);text-decoration:none}a:hover{color:var(--accent)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-pill);border:2px solid var(--bg-base)}*::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}button{font:inherit;font-weight:500;cursor:pointer;padding:8px 14px;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-primary);border-radius:var(--r-sm);transition:background .15s,border-color .15s,color .15s,transform .05s;display:inline-flex;align-items:center;gap:var(--s-2);white-space:nowrap}button:hover{background:var(--bg-hover);border-color:var(--border-strong)}button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);font-weight:600}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{background:transparent;border-color:var(--danger);color:var(--danger)}button.danger:hover{background:var(--danger-soft)}button.ghost{background:transparent;border-color:transparent;color:var(--text-secondary);padding:6px 10px}button.ghost:hover{background:var(--bg-hover);color:var(--text-primary)}button.icon{padding:6px 8px;background:transparent;border-color:var(--border);color:var(--text-secondary)}button.icon:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text-primary)}input[type=text],input[type=date],input[type=number],textarea,select{font:inherit;padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-elevated);color:var(--text-primary);transition:border-color .15s,box-shadow .15s}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}input::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}input::placeholder,textarea::placeholder{color:var(--text-disabled)}.app{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);width:100%;min-height:100vh;background:var(--bg-base)}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border);padding:var(--s-5) var(--s-4) calc(var(--user-footer-h) + var(--s-3));display:flex;flex-direction:column;gap:var(--s-2);position:fixed;top:0;left:0;width:var(--sidebar-w);height:100vh;overflow-y:auto}.sidebar .brand{display:flex;align-items:center;gap:var(--s-2);font-size:15px;font-weight:700;color:var(--text-primary);letter-spacing:-.01em;padding:var(--s-2) var(--s-2) var(--s-4)}.sidebar .brand .dot{width:8px;height:8px;border-radius:var(--r-pill);background:var(--accent);box-shadow:0 0 12px var(--accent-ring)}.sidebar h2{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);font-weight:600;margin:var(--s-4) var(--s-2) var(--s-1)}.sidebar a{color:var(--text-secondary);display:block;padding:8px 12px;border-radius:var(--r-sm);font-size:14px;transition:background .15s,color .15s}.sidebar a:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar a.active{background:var(--accent-soft);color:var(--accent);font-weight:500}.sidebar a{display:flex;align-items:center;gap:var(--s-2)}.sidebar a .dashboard-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar a.is-hidden .dashboard-title{color:var(--text-tertiary)}.sidebar a .sidebar-status-icon{display:inline-flex;color:var(--text-tertiary);opacity:.6;flex-shrink:0}.sidebar a:hover .sidebar-status-icon{opacity:.9}.sidebar a.active .sidebar-status-icon{color:var(--accent);opacity:.8}.tile.is-hidden{opacity:.65}.tile.is-hidden .hidden-badge{color:var(--text-tertiary);font-size:14px}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:var(--s-2);padding-top:var(--s-3)}.sidebar .new-dashboard{background:transparent;border:1px dashed var(--border-strong);color:var(--text-secondary);padding:10px;text-align:center;border-radius:var(--r-sm);font-size:13px}.sidebar .new-dashboard:hover{background:var(--bg-hover);color:var(--accent);border-color:var(--accent)}.theme-toggle{display:flex;align-items:center;justify-content:center;gap:var(--s-2);width:100%;background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:8px 12px;border-radius:var(--r-sm);font-size:12px;font-weight:500;cursor:pointer}.theme-toggle:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-strong)}.theme-toggle svg{flex-shrink:0}.tasks-badge{display:flex;align-items:center;justify-content:space-between;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary);padding:8px 12px;border-radius:var(--r-sm);cursor:pointer;font-size:13px;transition:background .15s,border-color .15s,color .15s;margin-bottom:var(--s-2)}.tasks-badge:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text-primary)}.tasks-badge .count{background:var(--accent);color:var(--text-on-accent);padding:2px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:600}.tasks-footer-btn{display:flex;align-items:center;justify-content:center;gap:var(--s-2);width:100%;background:var(--accent);border:1px solid var(--accent);color:var(--text-on-accent);padding:10px;border-radius:var(--r-sm);font-size:13px;font-weight:600;cursor:pointer}.tasks-footer-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.tasks-footer-btn .count{background:#0003;color:var(--text-on-accent);padding:2px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:600}.api-docs-btn{display:flex;align-items:center;justify-content:center;gap:var(--s-2);width:100%;background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:10px;border-radius:var(--r-sm);font-size:13px;font-weight:500;text-decoration:none;text-align:center}.api-docs-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-strong)}.sidebar-last-updated{font-size:11px;color:var(--text-tertiary);text-align:center;padding:var(--s-2) 0 0}.mobile-header,.mobile-menu-btn,.sidebar-backdrop{display:none}.main{padding:var(--s-6) 0;overflow-x:hidden;min-width:0;width:100%;box-sizing:border-box;grid-column:2}.app.app--user .main{grid-column:1}.main>div{padding-left:var(--s-5);padding-right:var(--s-5)}.header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-2);flex-wrap:wrap}.header h1{color:var(--text-primary)}.title-group{display:flex;align-items:center;gap:var(--s-2)}.edit-dashboard-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);text-decoration:none;font-size:16px;line-height:1;background:transparent;transition:color .15s,border-color .15s,background .15s}.edit-dashboard-icon:hover{color:var(--text-primary);border-color:var(--text-secondary);background:var(--bg-hover)}.publish-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);background:transparent;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.publish-toggle:hover{color:var(--text-primary);border-color:var(--text-secondary);background:var(--bg-hover)}.dashboard-status{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:var(--r-pill);margin-left:var(--s-1)}.dashboard-status.is-published{color:var(--accent);background:var(--accent-soft)}.dashboard-status.is-hidden{color:var(--text-tertiary);background:var(--bg-elevated)}.report-generated{margin:2px 0 0;color:var(--text-tertiary);font-size:12px;display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.report-generated .freshness{font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--r-pill);text-transform:uppercase;letter-spacing:.3px}.report-generated .freshness.is-fresh{background:#34c75926;color:#34c759}.report-generated .freshness.is-stale{background:#ff9f0a26;color:#ff9f0a}.header .actions{display:flex;gap:var(--s-2);align-items:center;flex-wrap:wrap}.subtitle{color:var(--text-secondary);font-size:14px;margin-bottom:var(--s-1)}.range-label{color:var(--text-tertiary);font-size:12px;margin:0}.dashboard-meta{margin-bottom:var(--s-6)}.subtitle+.grid{margin-top:var(--s-6)}.date-picker{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.date-field{position:relative}.date-field-btn{padding:7px 10px;font-size:13px;min-width:140px;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--r-sm);cursor:pointer;text-align:left;font-variant-numeric:tabular-nums}.date-field-btn:hover{border-color:var(--border-strong)}.date-field-btn.open,.date-field-btn:focus{outline:none;border-color:var(--accent)}.date-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:50;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:0 10px 30px #00000073;padding:8px;--rdp-accent-color: var(--accent);--rdp-accent-background-color: var(--accent);--rdp-background-color: var(--bg-elevated);--rdp-today-color: var(--accent);--rdp-day-height: 34px;--rdp-day-width: 34px;--rdp-day_button-height: 30px;--rdp-day_button-width: 30px;--rdp-day_button-border-radius: var(--r-sm);--rdp-selected-border: 2px solid var(--accent);color:var(--text-primary)}.date-popover .rdp-root{--rdp-font-family: inherit}.date-popover .rdp-chevron{fill:var(--text-secondary)}.date-popover .rdp-day_button{color:var(--text-primary);background:transparent;border:0}.date-popover .rdp-day_button:hover:not([disabled]){background:var(--bg-hover)}.date-popover .rdp-selected .rdp-day_button{background:var(--accent);color:var(--text-on-accent);font-weight:600}.date-popover .rdp-today:not(.rdp-selected) .rdp-day_button{color:var(--accent);font-weight:600}.date-popover .rdp-disabled{color:var(--text-disabled)}.date-popover .rdp-weekday{color:var(--text-tertiary);font-weight:500}.date-popover .rdp-caption_label,.date-popover .rdp-dropdowns select{color:var(--text-primary);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-xs)}.date-picker .arrow{color:var(--text-tertiary);font-size:14px}.date-picker .presets{display:flex;gap:var(--s-1);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);padding:3px}.date-picker .presets button{border:none;background:transparent;padding:5px 12px;font-size:12px;font-weight:500;color:var(--text-secondary);border-radius:var(--r-xs)}.date-picker .presets button:hover{background:var(--bg-hover);color:var(--text-primary)}.date-picker .presets button.active{background:var(--accent);color:var(--text-on-accent);font-weight:600}.date-picker .preset-select{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);padding:7px 28px 7px 10px;font-size:13px;border-radius:var(--r-sm);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.date-picker .preset-select:hover{border-color:var(--border-strong)}.date-picker .preset-select:focus{outline:none;border-color:var(--accent)}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--s-4)}.tile{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-5);position:relative;min-height:160px;display:flex;flex-direction:column;transition:border-color .2s,transform .2s}.tile:hover{border-color:var(--border-strong)}.tile.size-small{grid-column:span 3}.tile.size-medium{grid-column:span 6}.tile.size-large{grid-column:span 12}.tile-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-4)}.tile-header h3{margin:0;font-size:13px;font-weight:600;color:var(--text-primary);letter-spacing:0}.tile-fetched{color:var(--text-tertiary);font-size:11px;margin-top:2px}.tile-description{color:var(--text-secondary);font-size:13px;line-height:1.5;margin-top:4px;margin-bottom:var(--s-4);width:100%}.tile-range-badge{display:inline-block;margin-top:4px;padding:2px 8px;font-size:11px;font-weight:500;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-ring);border-radius:var(--r-pill)}.tile-actions{display:flex;gap:var(--s-1)}.tile-actions button{padding:4px 8px;font-size:12px;background:transparent;border-color:var(--border);color:var(--text-secondary)}.tile-actions button:hover{background:var(--bg-hover);color:var(--text-primary)}.tile-actions .drag-handle{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.tile-actions .drag-handle:active{cursor:grabbing}.tile.updating{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-ring),0 0 24px #10b98126}.tile-date-override{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-4);padding:var(--s-3);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-tertiary);font-size:12px;flex-wrap:wrap}.tile-date-override.is-override{border-color:var(--accent-ring)}.tile-date-override:has(+.table-tile-bar){margin-bottom:0;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.tile-date-override+.table-tile-bar{margin:0 0 var(--s-4);padding:var(--s-3);background:var(--bg-elevated);border:1px solid var(--border);border-top:0;border-top-left-radius:0;border-top-right-radius:0;border-radius:0 0 var(--r-sm) var(--r-sm)}.tile-date-override.is-override+.table-tile-bar{border-color:var(--accent-ring)}.tile-date-override .tile-date-label{text-transform:uppercase;letter-spacing:.04em}.tile-date-override.is-override .tile-date-label{color:var(--accent)}.tile-date-btn{padding:4px 8px;font-size:12px;min-width:100px}.tile-date-override:not(.is-override) .tile-date-btn{color:var(--text-tertiary);border-style:dashed}.tile-date-clear{padding:2px 8px;font-size:14px;line-height:1;border-radius:var(--r-pill);color:var(--text-tertiary)}.tile-date-clear:hover{color:var(--danger);border-color:var(--danger)}.tile-date-presets{display:flex;gap:2px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);padding:2px}.tile-date-preset{border:none;background:transparent;padding:3px 10px;font-size:11px;font-weight:500;color:var(--text-secondary);border-radius:var(--r-xs);line-height:1.4}.tile-date-preset:hover{background:var(--bg-hover);color:var(--text-primary);border-color:transparent}.tile-date-preset.active{background:var(--accent);color:var(--text-on-accent);font-weight:600}.tile-date-preset.active:hover{background:var(--accent-hover)}.tile-y-step{display:inline-flex;align-items:center;gap:var(--s-2);margin-left:auto;font-size:12px;color:var(--text-tertiary)}.tile-y-step-label{text-transform:uppercase;letter-spacing:.04em}.tile-y-step select{padding:4px 26px 4px 8px;font-size:12px;min-width:80px}.chart-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%}.tile-spinner{display:inline-block;width:12px;height:12px;margin-left:var(--s-2);border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;vertical-align:-2px;animation:tile-spinner-rotate .8s linear infinite}@keyframes tile-spinner-rotate{to{transform:rotate(360deg)}}.tile.error{border-color:var(--danger)}.tile.tile-hidden-admin{opacity:.55;border-style:dashed}.tile.tile-hidden-admin:hover{opacity:.85}.tile-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--text-tertiary);text-align:center;gap:var(--s-3);padding:var(--s-4) 0}.tile-empty p{margin:0;font-size:13px}.metric{display:flex;flex-direction:column;gap:var(--s-1);flex:1;justify-content:center}.metric .value{font-size:36px;font-weight:700;color:var(--text-primary);letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}.metric .label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-weight:500}.tile-error-msg{color:var(--danger);font-size:12px;background:var(--danger-soft);border:1px solid rgba(239,68,68,.3);padding:10px 12px;border-radius:var(--r-sm);margin-top:var(--s-2);word-break:break-word}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{color:var(--text-tertiary);font-weight:600;text-transform:uppercase;font-size:10px;letter-spacing:.08em;background:var(--bg-elevated)}td{color:var(--text-primary);font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg-hover)}.tile table{margin:calc(-1 * var(--s-1)) calc(-1 * var(--s-2)) 0;width:calc(100% + var(--s-4))}.tile th{background:transparent}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--text-secondary)}th.sortable.sorted{color:var(--text-primary)}th.sortable .sort-ind{display:inline-block;width:10px;margin-left:4px;font-size:9px;opacity:.8}.table-tile-bar{display:flex;align-items:center;gap:var(--s-2);margin:0 0 var(--s-2);flex-wrap:wrap}.table-tile-search{position:relative;flex:1 1 220px;max-width:320px}.table-tile-search input{width:100%;padding:6px 10px;font-size:13px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);box-sizing:border-box}.table-tile-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.table-tile-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:0 6px 20px #00000059;z-index:20;max-height:220px;overflow-y:auto;padding:4px 0}.table-tile-suggestion{padding:6px 12px;font-size:13px;color:var(--text-primary);cursor:pointer}.table-tile-suggestion.highlighted,.table-tile-suggestion:hover{background:var(--bg-hover)}.table-tile-filter-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 4px 4px 10px;background:#10b98126;border:1px solid var(--accent, #10b981);border-radius:var(--r-sm);color:var(--accent, #10b981);font-size:12px;max-width:280px}.table-tile-filter-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-tile-filter-x{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:none;color:inherit;font-size:14px;line-height:1;cursor:pointer;opacity:.7;border-radius:3px}.table-tile-filter-x:hover{opacity:1;background:#10b98133}.table-tile-save{padding:6px 14px;font-size:13px}.table-tile-scroll{overflow:auto;max-height:400px}.table-tile-summary{display:flex;flex-wrap:wrap;gap:var(--s-3);margin:0 0 var(--s-4)}.table-tile-summary-item{flex:1 1 0;min-width:140px;padding:var(--s-3) var(--s-4);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:var(--s-1)}.table-tile-summary-item .label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;font-weight:500}.table-tile-summary-item .value{font-size:22px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.tasks-panel{position:fixed;top:0;right:0;bottom:0;width:480px;max-width:100vw;background:var(--bg-surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;z-index:100;transform:translate(100%);transition:transform .25s ease}.tasks-panel.open{transform:translate(0)}.tasks-panel header{padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--bg-elevated)}.tasks-panel header strong{font-size:14px;font-weight:600}.tasks-panel .filters{display:flex;gap:var(--s-1);padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--border);flex-wrap:wrap}.tasks-panel .filters button{padding:4px 10px;font-size:11px;background:transparent;border-color:var(--border);color:var(--text-secondary)}.tasks-panel .filters button:hover{background:var(--bg-hover);color:var(--text-primary)}.tasks-panel .filters button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tasks-panel .list{flex:1;overflow-y:auto}.task-item{padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--border);font-size:13px}.task-item .args{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;color:var(--text-tertiary);margin-top:2px}.task-item .row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}.task-item strong{font-size:13px;color:var(--text-primary);font-weight:500}.status-badge{display:inline-block;padding:3px 10px;border-radius:var(--r-pill);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border:1px solid transparent}.status-pending{background:#73737326;color:var(--text-secondary);border-color:var(--border-strong)}.status-running{background:var(--info-soft);color:var(--info);border-color:#3b82f64d}.status-done{background:var(--accent-soft);color:var(--accent);border-color:#10b9814d}.status-failed{background:var(--danger-soft);color:var(--danger);border-color:#ef44444d}.status-cancelled{background:var(--warning-soft);color:var(--warning);border-color:#f59e0b4d}.task-error{color:var(--danger);font-size:11px;margin-top:var(--s-1);word-break:break-word}.builder-header .actions button{padding:9px 18px;font-size:13px;font-weight:600}.builder-header .actions button.danger{background:var(--danger-soft)}.builder-header .actions button.danger:hover{background:#ef444433}.builder{display:grid;grid-template-columns:320px minmax(0,1fr);gap:var(--s-4);align-items:flex-start}.builder-sidebar{display:flex;flex-direction:column;gap:var(--s-3)}.panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;transition:border-color .15s}.panel:hover,.panel.open{border-color:var(--border-strong)}.panel-header{width:100%;background:transparent;border:none;border-radius:0;padding:var(--s-4) var(--s-5);display:flex;align-items:center;gap:var(--s-3);color:var(--text-primary);font-weight:600;font-size:14px;cursor:pointer;transition:background .15s}.panel-header:hover{background:var(--bg-hover)}.panel-header .chevron{display:inline-block;color:var(--text-secondary);transition:transform .2s ease;flex-shrink:0}.panel.open .panel-header .chevron{transform:rotate(90deg)}.panel-header .panel-title{flex:1;text-align:left}.panel-header .panel-badge{background:var(--bg-elevated);color:var(--text-secondary);padding:2px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:600}.panel-body{padding:0 var(--s-5) var(--s-5);border-top:1px solid var(--border);padding-top:var(--s-4)}.form-stack{display:flex;flex-direction:column}.form-stack label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);margin:var(--s-4) 0 var(--s-2);font-weight:600}.form-stack label:first-child{margin-top:0}.form-stack input,.form-stack textarea,.form-stack select{width:100%}.form-stack textarea{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;min-height:80px;resize:vertical}.form-stack .form-hint{font-size:12px;color:var(--text-tertiary);margin-top:var(--s-1);line-height:1.4}.form-stack .form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);margin-top:var(--s-1)}.form-stack .form-col{display:flex;flex-direction:column}.form-stack .form-col label{margin-top:0}.form-stack .checkbox-row{display:flex;align-items:center;gap:var(--s-2);text-transform:none;letter-spacing:0;font-size:13px;color:var(--text-secondary);font-weight:500;cursor:pointer;margin-top:var(--s-4)}.form-stack .checkbox-row input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--accent)}.form-stack .column-picker{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-2) var(--s-3);background:var(--bg-subtle);border:1px solid var(--border);border-radius:6px}.form-stack .column-picker .checkbox-row{margin-top:0}.form-stack .column-picker-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 110px;align-items:center;gap:var(--s-2)}.form-stack .column-picker-row .column-label-input,.form-stack .column-picker-row .column-format-select{width:100%;padding:4px 8px;font-size:13px;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;color:var(--text-primary)}.form-stack .column-picker-row .column-label-input:disabled,.form-stack .column-picker-row .column-format-select:disabled{opacity:.4}.form-stack .column-picker-head{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:0 var(--s-1)}.form-stack .computed-columns{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-3);background:var(--bg-subtle);border:1px solid var(--border);border-radius:6px}.form-stack .computed-column-row{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3);background:var(--bg);border:1px solid var(--border);border-radius:6px}.form-stack .computed-column-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) 110px 28px;gap:var(--s-2);align-items:center}.form-stack .computed-column-row input[type=text],.form-stack .computed-column-row select{min-width:0;width:100%;padding:6px 10px;font-size:13px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);box-sizing:border-box}.form-stack .computed-column-row select{padding-right:28px;background-position:right 10px center}.form-stack .computed-column-row .computed-formula{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.form-stack .computed-remove{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-secondary);cursor:pointer}.form-stack .computed-remove:hover{color:var(--danger, #ef4444);border-color:var(--danger, #ef4444)}.form-stack .computed-add{align-self:flex-start;padding:6px 12px;font-size:13px;background:transparent;border:1px dashed var(--border);border-radius:4px;color:var(--text-secondary);cursor:pointer}.form-stack .computed-add:hover{color:var(--text-primary);border-color:var(--text-primary)}.formula-input{position:relative;width:100%;padding:5px 6px;min-height:34px;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;cursor:text;box-sizing:border-box}.formula-input:focus-within{border-color:var(--accent, #10b981)}.formula-input-row{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.formula-input-row>input{flex:1;min-width:80px;background:transparent;border:none;outline:none;color:var(--text-primary);font-family:inherit;font-size:inherit;padding:2px}.formula-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;border:1px solid;border-radius:4px;font-size:12px;line-height:1.4}.formula-chip-col{background:#10b98126;border-color:var(--accent, #10b981);color:var(--accent, #10b981)}.formula-chip-op{background:#94a3b826;border-color:var(--text-secondary, #94a3b8);color:var(--text-primary);padding:2px 4px 2px 6px}.formula-chip-op .formula-chip-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.formula-chip-name{font-weight:500}.formula-chip-x{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;padding:0;margin:0;color:inherit;font-size:14px;line-height:1;cursor:pointer;opacity:.6;border-radius:3px}.formula-chip-x:hover{opacity:1}.formula-chip-col .formula-chip-x:hover{background:#10b98133}.formula-chip-op .formula-chip-x:hover{background:#94a3b833}.formula-input-row>input:disabled{opacity:.5;cursor:not-allowed}.formula-ops{display:inline-flex;gap:2px;margin-left:auto}.formula-op-btn{width:26px;height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:1;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-primary);cursor:pointer}.formula-op-btn:hover:not(:disabled){border-color:var(--accent, #10b981);color:var(--accent, #10b981)}.formula-op-btn:disabled{opacity:.35;cursor:not-allowed}.formula-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;box-shadow:0 6px 20px #00000059;z-index:100;max-height:200px;overflow-y:auto;padding:4px 0}.formula-suggestion{padding:6px 12px;font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text-primary);cursor:pointer}.formula-suggestion.highlighted,.formula-suggestion:hover{background:var(--bg-hover)}.form-stack .color-palette{display:grid;grid-template-columns:repeat(13,1fr);gap:var(--s-2);margin-bottom:var(--s-3)}.form-stack .color-swatch{width:100%;aspect-ratio:1 / 1;padding:0;border:2px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:transform .1s ease,border-color .1s ease}.form-stack .color-swatch:hover{transform:scale(1.08)}.form-stack .color-swatch.selected{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-surface),0 0 0 4px var(--accent)}.form-stack .color-swatch.default{background:linear-gradient(45deg,transparent 46%,var(--text-tertiary) 46%,var(--text-tertiary) 54%,transparent 54%),var(--bg-hover)}@media (max-width: 600px){.form-stack .color-palette{grid-template-columns:repeat(7,1fr)}}.builder-main{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);display:flex;flex-direction:column;overflow:hidden;min-height:calc(100vh - 200px)}.builder-main-header{display:flex;justify-content:space-between;align-items:center;padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border)}.builder-main-header h3{margin:0;font-size:15px;color:var(--text-primary)}.builder-main-header button{padding:8px 14px}.builder-main-body{padding:var(--s-4) var(--s-5);flex:1;overflow-y:auto}.tile-editor-list .tile-row{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-2);display:flex;align-items:center;gap:var(--s-3);transition:border-color .15s,background .15s}.tile-editor-list .tile-row:hover{border-color:var(--border-strong);background:var(--bg-hover)}.tile-editor-list .drag-handle{cursor:grab;color:var(--text-tertiary);font-size:16px;-webkit-user-select:none;user-select:none;padding:0 var(--s-1)}.tile-editor-list .drag-handle:active{cursor:grabbing}.tile-editor-list .info{flex:1;min-width:0}.tile-editor-list .info strong{font-size:14px;color:var(--text-primary);display:block}.tile-editor-list .info .meta{font-size:11px;color:var(--text-tertiary);font-family:ui-monospace,SF Mono,Menlo,monospace;margin-top:2px}.tile-editor-list .actions{display:flex;gap:var(--s-1)}.tile-editor-list .actions button{padding:5px 10px;font-size:12px}.tile-editor-list .actions button.danger{padding:5px 10px;min-width:32px;justify-content:center}.tile-editor-list .empty{padding:var(--s-8) var(--s-4);text-align:center;color:var(--text-tertiary);font-size:13px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--s-4)}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-6);width:480px;max-width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal h2{margin-top:0;margin-bottom:var(--s-4)}.modal .footer{display:flex;gap:var(--s-2);justify-content:flex-end;margin-top:var(--s-6)}.json-preview{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;background:var(--bg-base);border:1px solid var(--border);color:var(--text-secondary);padding:var(--s-3);border-radius:var(--r-sm);overflow:auto;white-space:pre}a.tile{display:block;cursor:pointer;color:var(--text-primary)}a.tile h3{font-size:16px;margin-bottom:var(--s-2)}a.tile p{color:var(--text-secondary);font-size:13px}a.tile p.meta{color:var(--text-tertiary);font-size:11px;margin-top:var(--s-2)}a.tile:hover{border-color:var(--accent);color:var(--text-primary)}@media (max-width: 1100px){.main{padding:var(--s-5) var(--s-5)}.tile.size-small{grid-column:span 6}.tile.size-medium{grid-column:span 12}.builder{grid-template-columns:1fr}.builder-main{min-height:480px}.tasks-panel{width:420px}}@media (max-width: 720px){:root{--sidebar-w: 0px}.app{grid-template-columns:1fr;max-width:100vw;overflow-x:clip}.main{grid-column:1;min-width:0}.main>div{min-width:0;max-width:100%}.tile table{margin:0;width:100%}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;max-width:80vw;height:100vh;transform:translate(-100%);transition:transform .25s ease;z-index:90;box-shadow:var(--shadow-lg)}.sidebar.open{transform:translate(0)}.mobile-header{position:fixed;top:0;left:0;right:0;z-index:70;display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--bg-surface);border-bottom:1px solid var(--border);transform:translateY(0);transition:transform .25s ease}.mobile-header--hidden{transform:translateY(-100%)}.mobile-logo{font-size:16px;font-weight:600;color:var(--text-primary);letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);font-size:22px;line-height:1;flex:0 0 auto}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:80;opacity:0;pointer-events:none;transition:opacity .2s}.sidebar-backdrop.open{opacity:1;pointer-events:auto}.main{padding:calc(68px + var(--s-4)) 0 var(--s-4)}.header{flex-direction:column;align-items:stretch;gap:var(--s-3)}.header .actions{gap:var(--s-2)}.title-group{flex-wrap:wrap;min-width:0}.title-group h1{min-width:0;overflow-wrap:anywhere}.tile.size-small,.tile.size-medium,.tile.size-large{grid-column:span 12}.metric .value{font-size:28px}.tasks-panel{width:100vw}.date-field{flex:1}.date-field-btn{width:100%;min-width:0;font-size:16px;padding:9px 12px}.date-picker .preset-select{font-size:16px;padding:9px 32px 9px 12px}}.login-screen{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--s-4);background:var(--bg-base);overflow:hidden}.login-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;color:var(--text-primary);opacity:.12;pointer-events:none;z-index:0}.login-card{position:relative;z-index:1;width:100%;max-width:360px;display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-5);background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px #00000059}.login-card h1{margin:0;font-size:22px;text-align:center}.login-card .subtitle{margin:0 0 var(--s-2);color:var(--text-secondary);font-size:13px;text-align:center}.login-card label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-secondary)}.login-card input{padding:8px 10px;background:var(--bg-base);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:14px}.login-card input:focus{outline:none;border-color:var(--accent, #3b82f6)}.login-card button.primary{margin-top:var(--s-2);justify-content:center;width:100%}.user-box{margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}.user-info{display:flex;flex-direction:column;min-width:0;flex:1}.user-login{font-size:13px;color:var(--text-primary);font-weight:500}.user-role{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.logout-btn,.all-dashboards-btn{padding:4px 10px;font-size:12px;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;line-height:1.4}.logout-btn:hover,.all-dashboards-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.theme-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer}.theme-icon-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.app.app--user{grid-template-columns:1fr}.app.app--user .sidebar{display:none}@media (max-width: 720px){.app.app--user .sidebar{display:flex}}.user-footer{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;align-items:center;justify-content:flex-end;gap:var(--s-3);padding:10px var(--s-5);background:var(--bg-surface);border-top:1px solid var(--border);box-shadow:0 -4px 16px #0000001f}.user-footer-info{display:flex;flex-direction:column;line-height:1.2}.user-footer-actions{display:flex;align-items:center;gap:var(--s-2)}.main{padding-bottom:80px}.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-2);text-align:center;padding:120px var(--s-5)}.not-found h1{font-size:72px;margin:0;color:var(--text-tertiary)}.not-found p{margin:0;color:var(--text-secondary)}.not-found .subtitle{color:var(--text-tertiary);font-size:13px}
