.quick-safety-bar{background:linear-gradient(135deg,var(--background-elevated) 0%,var(--background-base) 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-md)}.safety-bar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.safety-bar-title{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:600;font-size:.9rem;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.safety-bar-title i{color:var(--accent-blue);font-size:1.1rem}.safety-bar-alert-badge{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--accent-red);color:#fff;border-radius:var(--radius-full);font-size:.75rem;font-weight:600;animation:pulse-alert 2s infinite}@keyframes pulse-alert{0%,to{opacity:1}50%{opacity:.7}}.safety-bar-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.safety-action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-lg);min-width:100px;background:var(--background-base);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;flex:1;min-height:80px}.safety-action-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.safety-action-btn:active:not(:disabled){transform:translateY(0)}.safety-action-icon{font-size:1.5rem;transition:transform .2s ease}.safety-action-btn:hover:not(:disabled) .safety-action-icon{transform:scale(1.1)}.safety-action-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.safety-action-btn--lockdown{border-color:var(--accent-red);background:#ef444414}.safety-action-btn--lockdown .safety-action-icon,.safety-action-btn--lockdown .safety-action-label{color:var(--accent-red)}.safety-action-btn--lockdown:hover:not(:disabled){background:var(--accent-red);border-color:var(--accent-red)}.safety-action-btn--lockdown:hover:not(:disabled) .safety-action-icon,.safety-action-btn--lockdown:hover:not(:disabled) .safety-action-label{color:#fff}.safety-action-btn--evacuation{border-color:var(--accent-orange);background:#f9731614}.safety-action-btn--evacuation .safety-action-icon,.safety-action-btn--evacuation .safety-action-label{color:var(--accent-orange)}.safety-action-btn--evacuation:hover:not(:disabled){background:var(--accent-orange);border-color:var(--accent-orange)}.safety-action-btn--evacuation:hover:not(:disabled) .safety-action-icon,.safety-action-btn--evacuation:hover:not(:disabled) .safety-action-label{color:#fff}.safety-action-btn--allclear{border-color:var(--accent-green);background:#22c55e14}.safety-action-btn--allclear .safety-action-icon,.safety-action-btn--allclear .safety-action-label{color:var(--accent-green)}.safety-action-btn--allclear:hover:not(:disabled){background:var(--accent-green);border-color:var(--accent-green)}.safety-action-btn--allclear:hover:not(:disabled) .safety-action-icon,.safety-action-btn--allclear:hover:not(:disabled) .safety-action-label{color:#fff}.safety-action-btn--shelter{border-color:var(--accent-purple);background:#8b5cf614}.safety-action-btn--shelter .safety-action-icon,.safety-action-btn--shelter .safety-action-label{color:var(--accent-purple)}.safety-action-btn--shelter:hover:not(:disabled){background:var(--accent-purple);border-color:var(--accent-purple)}.safety-action-btn--shelter:hover:not(:disabled) .safety-action-icon,.safety-action-btn--shelter:hover:not(:disabled) .safety-action-label{color:#fff}.safety-action-btn--more{border-color:var(--border-color-strong);background:var(--background-subtle)}.safety-action-btn--more .safety-action-icon,.safety-action-btn--more .safety-action-label{color:var(--text-secondary)}.safety-action-btn--more:hover:not(:disabled){background:var(--accent-blue);border-color:var(--accent-blue)}.safety-action-btn--more:hover:not(:disabled) .safety-action-icon,.safety-action-btn--more:hover:not(:disabled) .safety-action-label{color:#fff}.safety-action-btn--disabled,.safety-action-btn:disabled{opacity:.4;cursor:not-allowed}.safety-action-btn--disabled:hover,.safety-action-btn:disabled:hover{transform:none;box-shadow:none}.safety-bar-expanded{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color);animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.safety-expanded-title{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-sm)}.safety-expanded-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.safety-expanded-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--background-base);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.85rem;color:var(--text-primary);cursor:pointer;transition:all .2s ease}.safety-expanded-btn:hover:not(:disabled){background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.safety-expanded-btn:disabled{opacity:.5;cursor:not-allowed}.safety-expanded-empty{font-size:.85rem;color:var(--text-tertiary);font-style:italic}@media (max-width: 768px){.safety-bar-actions{flex-wrap:wrap}.safety-action-btn{flex:1 1 calc(33% - var(--spacing-sm));min-width:80px;padding:var(--spacing-sm);min-height:70px}.safety-action-icon{font-size:1.2rem}.safety-action-label{font-size:.7rem}}/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-50:oklch(97% .014 254.604);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--spacing:.25rem;--container-lg:32rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-4xl:2.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-xs:.125rem;--radius-sm:var(--radius-sm,8px);--radius-md:var(--radius-md,12px);--radius-lg:var(--radius-lg,16px);--radius-xl:var(--radius-xl,20px);--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary:var(--primary-blue,#06c);--color-secondary:var(--background-secondary,#f5f7fa);--color-border:var(--border-color,#e5e7eb)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.right-4{right:calc(var(--spacing)*4)}.left-\[50\%\]{left:50%}.isolate{isolation:isolate}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mt-1{margin-top:calc(var(--spacing)*1)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.w-full{width:100%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.flex-1{flex:1}.flex-2{flex:2}.flex-shrink{flex-shrink:1}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-end{justify-content:flex-end}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg,16px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-blue-500{border-color:var(--color-blue-500)}.border-gray-200{border-color:var(--color-gray-200)}.bg-background{background-color:var(--background-primary,#fff)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.pt-4{padding-top:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-blue-700{color:var(--color-blue-700)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-900{color:var(--color-gray-900)}.text-muted{color:var(--background-tertiary,#e8ecf1)}.text-muted-foreground{color:var(--text-secondary,#6b7280)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--background-primary,#fff)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\:opacity-100:hover{opacity:1}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--primary-blue,#06c)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.disabled\:pointer-events-none:disabled{pointer-events:none}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent-blue,#06c)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--text-secondary,#6b7280)}@media (min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}}@media (prefers-color-scheme:dark){.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:bg-blue-900\/20{background-color:#1c398e33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/20{background-color:color-mix(in oklab,var(--color-blue-900)20%,transparent)}}.dark\:text-blue-300{color:var(--color-blue-300)}.dark\:text-gray-100{color:var(--color-gray-100)}.dark\:text-gray-400{color:var(--color-gray-400)}@media (hover:hover){.dark\:hover\:border-gray-600:hover{border-color:var(--color-gray-600)}}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}}.dark{--color-background:#0a0a0b;--color-foreground:#fafafa;--color-card:#1c1c1e;--color-card-foreground:#fafafa;--color-popover:#1c1c1e;--color-popover-foreground:#fafafa;--color-primary:#3b82f6;--color-primary-foreground:#fff;--color-secondary:#27272a;--color-secondary-foreground:#fafafa;--color-muted:#27272a;--color-muted-foreground:#a1a1aa;--color-accent:#27272a;--color-accent-foreground:#fafafa;--color-destructive:#ef4444;--color-destructive-foreground:#fff;--color-border:#27272a;--color-input:#27272a;--color-ring:#3b82f6}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}:root{--primary-blue: #0066CC;--primary-blue-hover: #0052A3;--primary-blue-light: #E6F2FF;--background-primary: #FFFFFF;--background-secondary: #F5F7FA;--background-tertiary: #E8ECF1;--background-elevated: rgba(255, 255, 255, .98);--background-subtle: #FAFBFC;--text-primary: #1A1A1A;--text-secondary: #6B7280;--text-tertiary: #9CA3AF;--text-disabled: #D1D5DB;--border-color: #E5E7EB;--border-color-secondary: #D1D5DB;--border-color-focus: #0066CC;--success-green: #10B981;--success-green-light: #D1FAE5;--warning-orange: #F59E0B;--warning-orange-light: #FEF3C7;--error-red: #EF4444;--error-red-light: #FEE2E2;--info-blue: #3B82F6;--info-blue-light: #DBEAFE;--accent-blue: #0066CC;--accent-green: #10B981;--accent-purple: #8B5CF6;--accent-red: #EF4444;--accent-orange: #F59E0B;--accent-yellow: #FBBF24;--accent-teal: #14B8A6;--accent-blue-hover: #0052A3;--accent-green-hover: #059669;--accent-purple-hover: #7C3AED;--accent-red-hover: #DC2626;--accent-orange-hover: #D97706;--accent-blue-light: #EFF6FF;--accent-green-light: #D1FAE5;--accent-purple-light: #EDE9FE;--accent-red-light: #FEE2E2;--accent-orange-light: #FEF3C7;--ink: #1C1C1E;--ink-muted: #6E6E73;--line: #E5E5EA;--accent: #007AFF;--danger: #FF3B30;--bg: #FFFFFF;--surface: #ffffff;--surface-2: #fafbfe;--bg-page: radial-gradient(1200px 600px at 70% -10%, #fff 0%, #fafbfe 60%, #f5f7fb 100%);--text-1: #1f2937;--text-2: #6b7280;--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", "Helvetica Neue", sans-serif;--font-family-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--font-size-display: 32px;--font-size-title: 24px;--font-size-subtitle: 20px;--font-size-body: 16px;--font-size-caption: 14px;--font-size-label: 12px;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 20px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--spacing-xs: 8px;--spacing-sm: 12px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--space-16: 16px;--space-20: 20px;--space-24: 24px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 50%;--card-radius: 16px;--modal-radius: 20px;--btn-radius: 12px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .24);--shadow-md: 0 3px 6px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .19), 0 6px 6px rgba(0, 0, 0, .23);--shadow-xl: 0 14px 28px rgba(0, 0, 0, .25), 0 10px 10px rgba(0, 0, 0, .22);--shadow-soft: 0 2px 8px rgba(0, 0, 0, .06);--shadow-1: 0 1px 2px rgba(0, 0, 0, .06);--shadow-2: 0 6px 16px rgba(0, 0, 0, .1);--border: 1px solid rgba(0, 0, 0, .06);--separator: rgba(0, 0, 0, .08);--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--dur-fast: .15s;--dur-std: .2s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-spring: cubic-bezier(.2, .8, .2, 1);--z-dropdown: 1000;--z-header: 1000;--z-rail: 1010;--z-sticky: 1020;--z-drawer: 1020;--z-overlay: 1030;--z-fixed: 1030;--z-backdrop: 1040;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-toast: 1060;--z-tooltip: 1070;--app-header-h: 52px;--drawer-width: 350px}@media (min-width: 1024px){:root{--app-header-h: 56px}}@media (max-width: 768px){:root{--font-size-display: 28px;--font-size-title: 20px;--font-size-subtitle: 18px;--font-size-body: 14px;--font-size-caption: 12px;--font-size-label: 10px}}@media (prefers-contrast: high){:root{--border-color: #000000;--text-secondary: #000000}}@media (prefers-reduced-motion: reduce){:root{--transition-fast: .01ms;--transition-normal: .01ms;--transition-slow: .01ms;--dur-fast: .01ms;--dur-std: .01ms}}.dark,[data-theme=dark]{--primary-blue: #60A5FA;--primary-blue-hover: #3B82F6;--primary-blue-light: #1E3A5F;--background-primary: #0A0A0B;--background-secondary: #18181B;--background-tertiary: #27272A;--background-elevated: rgba(39, 39, 42, .98);--background-subtle: #1C1C1F;--text-primary: #FFFFFF;--text-secondary: #A1A1AA;--text-tertiary: #71717A;--text-disabled: #52525B;--border-color: #27272A;--border-color-secondary: #3F3F46;--border-color-focus: #60A5FA;--success-green: #4ADE80;--success-green-light: #1A3A29;--warning-orange: #FBBF24;--warning-orange-light: #3A2E1A;--error-red: #F87171;--error-red-light: #3A1F1F;--info-blue: #60A5FA;--info-blue-light: #1E3A5F;--accent-blue: #60A5FA;--accent-green: #4ADE80;--accent-purple: #C084FC;--accent-red: #F87171;--accent-orange: #FBBF24;--accent-yellow: #FCD34D;--accent-teal: #2DD4BF;--accent-blue-hover: #3B82F6;--accent-green-hover: #22C55E;--accent-purple-hover: #A855F7;--accent-red-hover: #EF4444;--accent-orange-hover: #F59E0B;--accent-blue-light: rgba(96, 165, 250, .15);--accent-green-light: rgba(74, 222, 128, .15);--accent-purple-light: rgba(192, 132, 252, .15);--accent-red-light: rgba(248, 113, 113, .15);--accent-orange-light: rgba(251, 191, 36, .15);--ink: #FFFFFF;--ink-muted: #A1A1AA;--line: #27272A;--accent: #60A5FA;--danger: #F87171;--bg: #0A0A0B;--surface: #0A0A0B;--surface-2: #18181B;--bg-page: radial-gradient(1200px 600px at 70% -10%, #18181B 0%, #0A0A0B 60%, #000000 100%);--text-1: #FFFFFF;--text-2: #A1A1AA}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--btn-radius);font-family:var(--font-family);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);text-decoration:none;cursor:pointer;transition:all var(--transition-fast);user-select:none;white-space:nowrap}.btn-primary,.modern-btn--primary{background-color:var(--primary-blue);color:#fff}.btn-primary:hover,.modern-btn--primary:hover{background-color:var(--primary-blue-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary,.modern-btn--secondary{background-color:var(--background-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover,.modern-btn--secondary:hover{background-color:var(--background-tertiary);border-color:var(--border-color-secondary)}.btn-danger,.modern-btn--danger{background-color:var(--error-red);color:#fff}.btn-danger:hover,.modern-btn--danger:hover{background-color:#d70015;transform:translateY(-1px);box-shadow:var(--shadow-md)}.modern-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--btn-radius);font-family:var(--font-family);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);text-decoration:none;cursor:pointer;transition:all var(--transition-fast);user-select:none;white-space:nowrap;border:none}.modern-btn--xs{padding:4px 8px;font-size:var(--font-size-caption)}.modern-btn--sm{padding:6px 12px;font-size:var(--font-size-caption)}.modern-btn--md{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-body)}.modern-btn--lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-subtitle)}.modern-btn--icon{padding:var(--spacing-sm);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center}.modern-btn--ghost{background:transparent;color:var(--text-primary);border:none}.modern-btn--ghost:hover{background:var(--background-secondary)}.modern-btn--outline{background:transparent;color:var(--accent-blue);border:1px solid var(--accent-blue)}.modern-btn--outline:hover{background:var(--accent-blue-light)}.modern-btn--link{background:transparent;color:var(--accent-blue);border:none;text-decoration:underline;padding:0}.modern-btn--link:hover{color:var(--accent-blue-hover)}.btn-block{width:100%;display:flex}.btn-icon{display:inline-flex;align-items:center;justify-content:center}.btn-icon--left{margin-right:var(--spacing-xs)}.btn-icon--right{margin-left:var(--spacing-xs)}.btn-content{display:inline-flex;align-items:center}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:var(--radius-full);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);line-height:1;background:var(--background-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.dark .badge{background:#27272a;border-color:#3f3f46;color:#e5e7eb}.badge--sm{padding:2px 6px;font-size:var(--font-size-label)}.badge--lg{padding:6px 12px;font-size:var(--font-size-body)}.badge--success{background:var(--accent-green-light);color:var(--accent-green);border-color:var(--accent-green)}.dark .badge--success{background:#4ade8026;color:#4ade80;border-color:#4ade80}.badge--warning{background:var(--accent-orange-light);color:var(--accent-orange);border-color:var(--accent-orange)}.dark .badge--warning{background:#fbbf2426;color:#fbbf24;border-color:#fbbf24}.badge--error{background:var(--accent-red-light);color:var(--accent-red);border-color:var(--accent-red)}.dark .badge--error{background:#f8717126;color:#f87171;border-color:#f87171}.badge--info{background:var(--accent-blue-light);color:var(--accent-blue);border-color:var(--accent-blue)}.dark .badge--info{background:#60a5fa26;color:#60a5fa;border-color:#60a5fa}.badge--dot{padding-left:6px;gap:6px}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge-text{display:inline-flex;align-items:center}.card,.p-card,.content-surface{background:var(--surface);border:var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-1);transition:all var(--transition-normal);overflow:hidden}.dark .card,.dark .p-card,.dark .content-surface{background:#18181b;border:1px solid #3F3F46;box-shadow:0 2px 8px #0000004d}.card-header{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);background:var(--background-secondary);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.dark .card-header{background:#27272a80;border-bottom-color:#3f3f46;color:#fff}.card-body{padding:var(--spacing-md)}.card-footer{padding:var(--spacing-md);border-top:1px solid var(--border-color);background:var(--background-secondary)}.dark .card-footer{background:#27272a80;border-top-color:#3f3f46}.card:hover,.hover-card:hover{box-shadow:var(--shadow-2);transform:translateY(-1px);transition:.18s ease}.card-clickable{cursor:pointer}.card-clickable:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-clickable:focus{outline:2px solid var(--accent-blue);outline-offset:2px}.widget{background:var(--background-primary);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:all var(--transition-normal);overflow:hidden;display:flex;flex-direction:column;height:100%}.dark .widget{background:var(--background-secondary);border:1px solid #3F3F46;box-shadow:0 2px 8px #0000004d}.widget:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.dark .widget:hover{box-shadow:0 4px 16px #00000080;border-color:#52525b}.widget-header{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color);background:var(--background-secondary);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.dark .widget-header{background:#27272a80;border-bottom-color:#3f3f46}.widget-body{padding:var(--spacing-md);flex:1;overflow-y:auto;overflow-x:hidden}.widget-footer{padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--border-color);background:var(--background-secondary);flex-shrink:0}.dark .widget-footer{background:#27272a80;border-top-color:#3f3f46}.widget-header-left,.widget-header-right{display:flex;align-items:center;gap:var(--spacing-sm)}.widget-icon{display:flex;align-items:center;justify-content:center;font-size:20px}.widget-collapse-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.widget-collapse-btn:hover{background:var(--background-tertiary);color:var(--text-primary)}.settings-tile{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--background-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-fast)}.settings-tile--clickable{cursor:pointer}.settings-tile--clickable:hover{background:var(--background-secondary);border-color:var(--border-color-secondary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.settings-tile--clickable:active{transform:translateY(0)}.settings-tile--clickable:focus{outline:2px solid var(--accent-blue);outline-offset:2px}.settings-tile--disabled{opacity:.5;cursor:not-allowed}.settings-tile-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-md);color:#fff;font-size:20px;flex-shrink:0}.settings-tile-content{flex:1;min-width:0}.settings-tile-title{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:4px}.settings-tile-description{font-size:var(--font-size-caption);color:var(--text-secondary);line-height:1.4}.settings-tile-action{flex-shrink:0}.settings-tile-chevron{display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:14px;flex-shrink:0;transition:transform var(--transition-fast)}.settings-tile--clickable:hover .settings-tile-chevron{transform:translate(2px);color:var(--text-primary)}.qi-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--card-radius);box-shadow:var(--shadow-soft)}.modern-table{width:100%;border-collapse:collapse;font-size:var(--font-size-body)}.modern-table th,.modern-table td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color)}.modern-table th{background:var(--background-secondary);font-weight:var(--font-weight-semibold);color:var(--text-primary);font-size:var(--font-size-caption);text-transform:uppercase;letter-spacing:.5px}.dark .modern-table th{background:#27272a;color:#d4d4d8;border-bottom-color:#3f3f46}.modern-table tbody tr{transition:all var(--transition-fast)}.dark .modern-table tbody tr{color:#e5e7eb}.modern-table tbody tr:hover{background:var(--background-secondary);cursor:pointer}.dark .modern-table tbody tr:hover{background:#27272acc}.modern-table tbody td{color:var(--text-primary)}.dark .modern-table tbody td{color:#e5e7eb;border-bottom-color:#3f3f46}.sort-button{background:none;border:none;color:var(--text-primary);font-weight:var(--font-weight-semibold);cursor:pointer;display:flex;align-items:center;gap:var(--spacing-xs);padding:4px 0;font-size:var(--font-size-caption);width:100%;text-align:left;transition:color var(--transition-fast)}.sort-button:hover{color:var(--accent-blue)}.sort-icon{font-size:var(--font-size-label);opacity:.5;margin-left:auto}.modern-table-container{overflow-x:auto;background:var(--background-primary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.input-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs)}.input-wrapper--full-width{width:100%}.input-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--text-primary);display:inline-flex;align-items:center;gap:4px}.input-label--required{color:var(--error-red);font-weight:var(--font-weight-semibold)}.input-label--error{color:var(--error-red)}.input-container{position:relative;display:flex;align-items:center}.modern-input,:where(.p-inputtext,.p-dropdown){border-radius:10px;border:var(--border);padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family);font-size:var(--font-size-body);transition:all var(--transition-fast);width:100%;background:var(--background-primary);color:var(--text-primary)}.dark .modern-input,.dark :where(.p-inputtext,.p-dropdown){background:#27272a;border-color:#3f3f46;color:#fff}.modern-input:focus{outline:2px solid var(--accent-blue);outline-offset:2px;border-color:var(--accent-blue)}.dark .modern-input:focus{outline-color:#60a5fa;border-color:#60a5fa}.modern-input::placeholder{color:var(--text-tertiary)}.dark .modern-input::placeholder{color:#71717a}.modern-input--sm{padding:6px 10px;font-size:var(--font-size-caption)}.modern-input--lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-subtitle)}.modern-input--error{border-color:var(--error-red)}.modern-input--error:focus{outline-color:var(--error-red)}.modern-input--with-left-addon{padding-left:40px}.modern-input--with-right-addon{padding-right:40px}.input-addon{position:absolute;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);pointer-events:none}.input-addon--left{left:var(--spacing-sm)}.input-addon--right{right:var(--spacing-sm)}.input-clear-button{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s ease;display:flex;align-items:center;justify-content:center;pointer-events:auto}.input-clear-button:hover{color:var(--text-primary);background:var(--background-tertiary)}.dark .input-clear-button{color:#71717a}.dark .input-clear-button:hover{color:#fff;background:#3f3f46}.input-error{font-size:var(--font-size-caption);color:var(--error-red);margin-top:-4px}.input-helper{font-size:var(--font-size-caption);color:var(--text-secondary);margin-top:-4px}.label-wrapper{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--spacing-xs)}.label-helper{font-size:var(--font-size-label);color:var(--text-secondary)}.label-helper--error{color:var(--error-red)}.w-full{width:100%}.checkbox-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs)}.checkbox-container{display:flex;align-items:center;gap:var(--spacing-sm)}.checkbox-input{width:18px;height:18px;border-radius:var(--radius-sm);border:2px solid var(--border-color-secondary);cursor:pointer;transition:all var(--transition-fast);appearance:none;background:var(--background-primary);position:relative}.checkbox-input:checked{background:var(--accent-blue);border-color:var(--accent-blue)}.checkbox-input:checked:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox-input:indeterminate{background:var(--accent-blue);border-color:var(--accent-blue)}.checkbox-input:indeterminate:after{content:"";position:absolute;left:3px;top:7px;width:10px;height:2px;background:#fff;border-radius:1px}.checkbox-input:focus{outline:2px solid var(--accent-blue);outline-offset:2px}.checkbox-input:disabled{opacity:.5;cursor:not-allowed}.checkbox-input--error{border-color:var(--error-red)}.checkbox-label{font-size:var(--font-size-body);color:var(--text-primary);cursor:pointer;user-select:none}.checkbox-label--disabled{opacity:.5;cursor:not-allowed}.checkbox-error{font-size:var(--font-size-caption);color:var(--error-red)}.checkbox-helper{font-size:var(--font-size-caption);color:var(--text-secondary)}.radio-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.radio-wrapper{display:flex;flex-direction:column}.radio-container{display:flex;align-items:center;gap:var(--spacing-sm)}.radio-input{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-color-secondary);cursor:pointer;transition:all var(--transition-fast);appearance:none;background:var(--background-primary);position:relative}.radio-input:checked{border-color:var(--accent-blue)}.radio-input:checked:after{content:"";position:absolute;left:3px;top:3px;width:8px;height:8px;border-radius:50%;background:var(--accent-blue)}.radio-input:focus{outline:2px solid var(--accent-blue);outline-offset:2px}.radio-input:disabled{opacity:.5;cursor:not-allowed}.radio-label{font-size:var(--font-size-body);color:var(--text-primary);cursor:pointer;user-select:none}.radio-label--disabled{opacity:.5;cursor:not-allowed}.textarea-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs)}.textarea-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--text-primary);display:inline-flex;align-items:center;gap:4px}.modern-textarea{border-radius:10px;border:var(--border);padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family);font-size:var(--font-size-body);transition:all var(--transition-fast);width:100%;background:var(--background-primary);color:var(--text-primary);resize:vertical;min-height:100px}.dark .modern-textarea{background:#27272a;border-color:#3f3f46;color:#fff}.modern-textarea:focus{outline:2px solid var(--accent-blue);outline-offset:2px;border-color:var(--accent-blue)}.dark .modern-textarea:focus{outline-color:#60a5fa;border-color:#60a5fa}.modern-textarea::placeholder{color:var(--text-tertiary)}.dark .modern-textarea::placeholder{color:#71717a}.modern-textarea--sm{padding:6px 10px;font-size:var(--font-size-caption);min-height:80px}.modern-textarea--lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-subtitle);min-height:120px}.modern-textarea--error{border-color:var(--error-red)}.modern-textarea--error:focus{outline-color:var(--error-red)}.modern-textarea--auto-resize{resize:none;overflow:hidden}.textarea-count{font-size:var(--font-size-caption);color:var(--text-secondary);text-align:right;margin-top:-4px}.textarea-error{font-size:var(--font-size-caption);color:var(--error-red)}.textarea-helper{font-size:var(--font-size-caption);color:var(--text-secondary)}.switch-wrapper{display:flex;flex-direction:column;gap:4px}.switch-container{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;user-select:none}.switch-container--disabled{opacity:.5;cursor:not-allowed}.switch-input{position:absolute;opacity:0;pointer-events:none}.switch{position:relative;display:inline-block;width:44px;height:24px;background:var(--background-tertiary);border-radius:12px;transition:all var(--transition-normal);border:2px solid var(--border-color)}.switch--sm{width:36px;height:20px;border-radius:10px}.switch--lg{width:52px;height:28px;border-radius:14px}.switch-thumb{position:absolute;left:2px;top:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform var(--transition-normal);box-shadow:0 2px 4px #0003}.switch--sm .switch-thumb{width:12px;height:12px}.switch--lg .switch-thumb{width:20px;height:20px}.switch-input:checked+.switch{background:var(--accent-blue);border-color:var(--accent-blue)}.switch-input:checked+.switch .switch-thumb{transform:translate(20px)}.switch-input:checked+.switch--sm .switch-thumb{transform:translate(16px)}.switch-input:checked+.switch--lg .switch-thumb{transform:translate(24px)}.switch-input:focus+.switch{outline:2px solid var(--accent-blue);outline-offset:2px}.switch-input:disabled+.switch{opacity:.5;cursor:not-allowed}.switch-label{font-size:var(--font-size-body);color:var(--text-primary)}.switch-helper{font-size:var(--font-size-caption);color:var(--text-secondary);margin-left:56px}.select-wrapper{display:flex;flex-direction:column;gap:var(--spacing-xs)}.select-wrapper--full-width{width:100%}.select-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--text-primary);display:inline-flex;align-items:center;gap:4px}.select-container{position:relative;display:flex;align-items:center}.modern-select{border-radius:10px;border:var(--border);padding:var(--spacing-sm) var(--spacing-md);padding-right:40px;font-family:var(--font-family);font-size:var(--font-size-body);transition:all var(--transition-fast);width:100%;background:var(--background-primary);color:var(--text-primary);appearance:none;cursor:pointer}.modern-select:focus{outline:2px solid var(--accent-blue);outline-offset:2px;border-color:var(--accent-blue)}.modern-select--sm{padding:6px 32px 6px 10px;font-size:var(--font-size-caption)}.modern-select--lg{padding:var(--spacing-md) var(--spacing-lg);padding-right:48px;font-size:var(--font-size-subtitle)}.modern-select--error{border-color:var(--error-red)}.modern-select--error:focus{outline-color:var(--error-red)}.select-arrow{position:absolute;right:var(--spacing-sm);color:var(--text-secondary);pointer-events:none;display:flex;align-items:center;justify-content:center}.select-error{font-size:var(--font-size-caption);color:var(--error-red)}.select-helper{font-size:var(--font-size-caption);color:var(--text-secondary)}.modal-backdrop{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);z-index:var(--z-backdrop);display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);animation:fadeIn .2s ease-out}.modal-content{background:var(--background-primary);border-radius:var(--modal-radius);box-shadow:var(--shadow-xl);max-width:90vw;max-height:90vh;overflow:auto;animation:modalSlideIn .3s ease-out;z-index:var(--z-modal);display:flex;flex-direction:column;width:500px}.modal-content--sm{width:400px}.modal-content--lg{width:700px}.modal-content--xl{width:900px}.modal-content--full{width:95vw;max-width:1200px;height:90vh}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);flex-shrink:0}.modal-title{font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.modal-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.modal-close:hover{background:var(--background-secondary);color:var(--text-primary)}.modal-body{padding:var(--spacing-lg);overflow-y:auto;flex:1}.modal-footer{padding:var(--spacing-lg);border-top:1px solid var(--border-color);background:var(--background-secondary);display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm);flex-shrink:0}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.drawer-backdrop{position:fixed;top:var(--app-header-h);left:0;right:0;bottom:0;background:#0000004d;backdrop-filter:blur(2px);z-index:var(--z-backdrop);animation:fadeIn .2s ease-out}.drawer-content{position:sticky;top:var(--app-header-h, 52px);height:calc(100vh - var(--app-header-h, 52px));width:var(--drawer-width, 350px);min-width:var(--drawer-width, 350px);flex-shrink:0;background:var(--background-elevated);box-shadow:-8px 0 32px #0000001f;z-index:var(--z-drawer);display:flex;flex-direction:column;animation:slideInRight .3s var(--ease-standard);border-left:1px solid var(--border-color);align-self:flex-start;overflow-y:auto}.dark .drawer-content{background:var(--background-elevated);box-shadow:-8px 0 32px #000000b3;border-left:1px solid #3F3F46}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:2px solid var(--border-color);flex-shrink:0;background:var(--background-primary)}.dark .drawer-header{background:var(--background-secondary);border-bottom-color:#3f3f46}.drawer-title{font-size:20px;font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0;letter-spacing:-.3px}.drawer-close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:none;background:var(--background-secondary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.drawer-close:hover{background:var(--background-tertiary);color:var(--text-primary);transform:scale(1.05)}.drawer-close:active{transform:scale(.95)}.dark .drawer-close{background:#27272a;color:#a1a1aa}.dark .drawer-close:hover{background:#3f3f46;color:#fff}.drawer-body{padding:16px;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent}.drawer-body::-webkit-scrollbar{width:6px}.drawer-body::-webkit-scrollbar-track{background:transparent}.drawer-body::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.drawer-body::-webkit-scrollbar-thumb:hover{background:#0000004d}.dark .drawer-body{scrollbar-color:rgba(255,255,255,.2) transparent}.dark .drawer-body::-webkit-scrollbar-thumb{background:#fff3}.dark .drawer-body::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.cp-sidebar{width:220px;min-width:220px;max-width:240px;height:calc(100vh - var(--app-header-h, 52px));position:sticky;top:var(--app-header-h, 52px);background:#fffffffa;border-right:1px solid rgba(0,0,0,.1);display:flex;flex-direction:column;flex-shrink:0;padding:var(--spacing-md) var(--spacing-md);backdrop-filter:blur(20px) saturate(180%);box-shadow:0 2px 8px #0000000a,0 8px 24px #0000000f;transition:all .3s cubic-bezier(.4,0,.2,1);align-self:flex-start;overflow-y:auto;z-index:10;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent}.cp-sidebar::-webkit-scrollbar{width:6px}.cp-sidebar::-webkit-scrollbar-track{background:transparent}.cp-sidebar::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.cp-sidebar::-webkit-scrollbar-thumb:hover{background:#00000040}.dark .cp-sidebar{background:#18181bfa;border-right:1px solid rgba(255,255,255,.1);box-shadow:0 2px 8px #0006,0 8px 24px #0009;scrollbar-color:rgba(255,255,255,.2) transparent}.dark .cp-sidebar::-webkit-scrollbar-thumb{background:#fff3}.dark .cp-sidebar::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.cp-sidebar-header{display:flex;align-items:center;justify-content:flex-end;padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-shrink:0}.cp-name{font-weight:var(--font-weight-bold);color:var(--text-primary);font-size:var(--font-size-body)}.dark .cp-name{color:#fff}.cp-sub{font-size:var(--font-size-label);color:#6b7280;font-weight:var(--font-weight-medium)}.dark .cp-sub{color:#9ca3af}.cp-nav{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.1) transparent}.cp-nav::-webkit-scrollbar{width:4px}.cp-nav::-webkit-scrollbar-track{background:transparent}.cp-nav::-webkit-scrollbar-thumb{background:#0000001a;border-radius:2px}.cp-nav::-webkit-scrollbar-thumb:hover{background:#00000026}.cp-nav-li{display:grid;grid-template-columns:1fr auto;align-items:center;cursor:move;transition:all .2s cubic-bezier(.4,0,.2,1);border-radius:12px;position:relative}.cp-nav-li.active{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 2px 8px #3b82f64d,0 4px 16px #3b82f633,inset 0 1px #ffffff1a;transform:scale(1.02)}.dark .cp-nav-li.active{background:linear-gradient(135deg,#60a5fa,#3b82f6);box-shadow:0 2px 8px #60a5fa66,0 4px 16px #60a5fa40,inset 0 1px #ffffff26}.cp-nav-li.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:60%;background:linear-gradient(180deg,#60a5fa,#3b82f6);border-radius:0 2px 2px 0;box-shadow:0 0 8px #3b82f680}.cp-nav-li.dragging{opacity:.6;transform:scale(.98);box-shadow:0 8px 24px #00000026}.cp-nav-item{display:flex;gap:10px;align-items:center;width:100%;text-align:left;background:transparent;border:none;padding:12px;border-radius:12px;color:#1f2937;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.dark .cp-nav-item{color:#e5e7eb}.cp-nav-item:before{content:"";position:absolute;inset:0;background:#0000000a;opacity:0;transition:opacity .2s ease;border-radius:inherit}.cp-nav-item:hover{background:#0000000f;transform:scale(1.02) translate(2px)}.dark .cp-nav-item:hover{background:#ffffff14}.cp-nav-item:hover:before{opacity:1}.cp-nav-item:active{transform:scale(.98) translate(1px)}.cp-nav-item:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;box-shadow:0 0 0 4px #3b82f61a}.dark .cp-nav-item:focus-visible{outline-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa26}.cp-nav-item i{width:24px;height:24px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:18px;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;z-index:1;flex-shrink:0}.cp-nav-item span{position:relative;z-index:1;transition:all .2s ease;line-height:1.4}.cp-nav-item:hover i{transform:scale(1.1);filter:brightness(1.15)}.cp-nav-item:hover span{font-weight:600;letter-spacing:-.01em}.cp-nav-li.active .cp-nav-item{color:#fff}.cp-nav-li.active .cp-nav-item i{color:#fff;transform:scale(1.08);filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.cp-nav-li.active .cp-nav-item span{color:#fff;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.1)}.cp-item-more{background:transparent;border:none;color:#0000004d;padding:6px;border-radius:6px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);opacity:0;transform:scale(.9)}.cp-nav-li:hover .cp-item-more{opacity:1;transform:scale(1)}.cp-item-more:hover{background:#00000014;color:var(--text-primary);transform:scale(1.05)}.cp-item-more:active{transform:scale(.95)}.cp-item-more i{font-size:12px}.dark .cp-item-more{color:#ffffff4d}.dark .cp-item-more:hover{background:#ffffff26;color:#fff}.cp-footer{margin-top:auto;padding-top:12px;border-top:1px solid rgba(0,0,0,.1);display:flex;flex-direction:column;gap:8px;color:#6b7280;font-size:12px;flex-shrink:0;transition:border-color .2s ease}.dark .cp-footer{border-top-color:#ffffff1a;color:#9ca3af}.cp-status{display:flex;align-items:center;gap:6px}.dot{width:8px;height:8px;border-radius:9999px;display:inline-block;box-shadow:0 0 0 2px #10b98133}.dot.ok{background:var(--success-green)}.dark .dot.ok{background:#4ade80;box-shadow:0 0 0 2px #4ade804d}.dot.error{background:var(--error-red);box-shadow:0 0 0 2px #ef444433}.dark .dot.error{background:#f87171;box-shadow:0 0 0 2px #f871714d}@media (max-width: 768px){.cp-sidebar{width:100%;min-width:0;max-width:none}}.cp-sidebar--collapsed{width:72px;min-width:72px;padding:var(--spacing-md) var(--spacing-sm);transition:width .3s ease,min-width .3s ease,padding .3s ease;height:calc(100vh - var(--app-header-h, 52px));position:sticky;top:var(--app-header-h, 52px);flex-shrink:0}.cp-sidebar--hidden{display:none}.cp-sidebar--collapsed .cp-sidebar-header{justify-content:center}.cp-sidebar--collapsed .cp-nav-item span,.cp-sidebar--collapsed .cp-item-more{display:none}.cp-sidebar--collapsed .cp-footer{font-size:0}.cp-sidebar--collapsed .cp-footer .cp-status{justify-content:center}.cp-sidebar--collapsed .cp-footer i{font-size:var(--font-size-body)}.cp-sidebar--collapsed .cp-nav-item{justify-content:center;padding:12px}.cp-sidebar--collapsed .cp-nav-item i{margin:0}.cp-sidebar--collapsed .cp-reset-btn{font-size:0;width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center}.cp-sidebar--collapsed .cp-reset-btn i{font-size:var(--font-size-body)}.cp-collapse-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:8px;border-radius:8px;transition:all .2s cubic-bezier(.4,0,.2,1);margin-left:auto;display:flex;align-items:center;justify-content:center}.cp-collapse-btn:hover{background:#0000000d;color:var(--text-primary);transform:scale(1.05)}.cp-collapse-btn:active{transform:scale(.95)}.cp-sidebar--collapsed .cp-collapse-btn{margin:8px auto 0}.system-health-widget{font-size:var(--font-size-caption)}.status-summary{padding:var(--spacing-sm);border-radius:var(--radius-sm);text-align:center;margin-bottom:var(--spacing-sm)}.status-indicator{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);font-weight:var(--font-weight-semibold);padding:var(--spacing-xs);border-radius:var(--radius-sm)}.status-indicator.healthy{background:var(--accent-green-light);color:var(--success-green)}.status-indicator.warning{background:var(--accent-orange-light);color:var(--warning-orange)}.service-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);background:var(--background-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-color);transition:background-color var(--transition-fast)}.service-item:hover{background:var(--background-tertiary)}.service-info{display:flex;flex-direction:column;gap:2px}.service-name{font-weight:var(--font-weight-medium);color:var(--text-primary);font-size:var(--font-size-caption)}.service-status{font-size:var(--font-size-label);display:flex;align-items:center;gap:4px}.service-status.online{color:var(--success-green)}.service-actions{display:flex;gap:4px}.show-more{text-align:center;padding-top:var(--spacing-xs);border-top:1px solid var(--border-color);margin-top:var(--spacing-xs)}.maps-widget{font-size:var(--font-size-caption)}.maps-overview{display:flex;flex-direction:column;gap:var(--spacing-sm)}.maps-count{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--text-secondary);font-size:var(--font-size-caption)}.maps-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.map-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent}.map-item:hover{background:var(--background-secondary);border-color:var(--accent-purple);transform:translateY(-1px)}.map-preview{width:40px;height:40px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0}.map-preview img{width:100%;height:100%;object-fit:cover}.map-placeholder{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--background-secondary);border-radius:var(--radius-sm);color:var(--text-tertiary);flex-shrink:0}.map-info{flex:1;min-width:0}.map-name{font-weight:var(--font-weight-medium);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--font-size-caption)}.map-meta{font-size:var(--font-size-label);color:var(--text-tertiary)}.maps-more{margin-top:var(--spacing-xs);text-align:center}.maps-empty{text-align:center;padding:var(--spacing-lg) var(--spacing-md);color:var(--text-secondary)}.maps-empty i{font-size:48px;color:var(--text-tertiary);margin-bottom:var(--spacing-md)}.maps-empty p{margin:0;font-size:var(--font-size-caption)}.zones-devices-widget{font-size:var(--font-size-caption)}.device-stats-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm);padding:var(--spacing-xs);background:var(--background-secondary);border-radius:var(--radius-sm)}.device-stats-header .stat-item{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-caption)}.device-stats-header .stat-label{color:var(--text-secondary);font-weight:var(--font-weight-medium)}.device-list-compact{max-height:35vh;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-sm)}.device-list-compact .modern-table{font-size:var(--font-size-caption)}.device-list-compact .modern-table th,.device-list-compact .modern-table td{padding:var(--spacing-xs) var(--spacing-sm)}.status-online{color:var(--success-green);margin-right:var(--spacing-xs)}.dark .status-online{color:#4ade80}.status-offline{color:var(--error-red);margin-right:var(--spacing-xs)}.dark .status-offline{color:#f87171}.registered{color:var(--success-green);font-weight:var(--font-weight-semibold);display:inline-flex;align-items:center;gap:4px}.dark .registered{color:#4ade80}.not-registered{color:var(--error-red);font-weight:var(--font-weight-semibold);display:inline-flex;align-items:center;gap:4px}.dark .not-registered{color:#f87171}.status-indicator-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px}.status-indicator-dot--online{background:var(--success-green);box-shadow:0 0 0 2px #10b98133}.dark .status-indicator-dot--online{background:#4ade80;box-shadow:0 0 0 2px #4ade804d}.status-indicator-dot--offline{background:var(--error-red);box-shadow:0 0 0 2px #ef444433}.dark .status-indicator-dot--offline{background:#f87171;box-shadow:0 0 0 2px #f871714d}.status-indicator-dot--warning{background:var(--warning-orange);box-shadow:0 0 0 2px #f59e0b33}.dark .status-indicator-dot--warning{background:#fbbf24;box-shadow:0 0 0 2px #fbbf244d}.device-name{font-weight:var(--font-weight-medium)}.unregistered{background-color:#dc35450d}.schedules-bells-widget{font-size:var(--font-size-caption)}.schedule-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.time-display .current-time{font-size:var(--font-size-subtitle);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.next-bell-info .next-bell-text{font-size:var(--font-size-body);color:var(--text-primary);margin:0}.next-bell-text strong{color:var(--accent-purple)}.schedule-timeline{border:1px solid var(--border-color);border-radius:var(--radius-sm);max-height:30vh;overflow-y:auto;padding:var(--spacing-xs);background:var(--background-secondary)}.schedule-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs);margin-bottom:var(--spacing-xs);background:var(--background-primary);border-radius:var(--radius-sm);border:1px solid var(--border-color);transition:all var(--transition-fast)}.schedule-item:last-child{margin-bottom:0}.schedule-item.active{border-color:var(--accent-purple);background:var(--accent-purple-light)}.schedule-item:hover{transform:translate(2px)}.schedule-time{font-weight:var(--font-weight-semibold);color:var(--text-primary);min-width:70px;font-size:var(--font-size-caption)}.schedule-details{flex:1;display:flex;align-items:center;gap:var(--spacing-xs)}.schedule-name{font-weight:var(--font-weight-medium);color:var(--text-primary);font-size:var(--font-size-caption)}.alerts-widget{font-size:var(--font-size-caption)}.alerts-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.alerts-table-container{border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden}.announcements-widget{font-size:var(--font-size-caption)}.announcement-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);background:var(--background-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-color);transition:all var(--transition-fast)}.announcement-info{flex:1;min-width:0}.announcement-name{font-weight:var(--font-weight-medium);color:var(--text-primary);font-size:var(--font-size-caption);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.announcement-meta{font-size:var(--font-size-label);color:var(--text-secondary);display:flex;align-items:center;gap:4px;margin-top:2px}.app-header,.qi-header{height:var(--app-header-h);width:100%;border-bottom:1px solid var(--border-color);background:#fffc;backdrop-filter:blur(10px);position:sticky;top:0;z-index:var(--z-sticky, 1020)}.toolbar{background:var(--surface);border-bottom:1px solid var(--separator)}.segmented-control{display:inline-flex;background:var(--background-secondary);padding:4px;border-radius:12px}.segment-button{padding:6px 12px;font-size:14px;border-radius:8px;transition:all .15s ease;color:var(--text-secondary);text-decoration:none;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center}.segment-button:hover{background:var(--background-primary);color:var(--text-primary)}.segment-button.active{background:#fff;color:var(--text-primary);box-shadow:0 1px 3px #0000001a}.status-pill{display:inline-flex;align-items:center;padding:2px 10px;border-radius:9999px;border:1px solid var(--border-color);background:var(--background-primary);font-size:14px;line-height:1}.status-dot{width:6px;height:6px;border-radius:50%;background:#10b981;margin-right:6px}.action-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;position:relative}.action-button:hover{background:var(--background-secondary);color:var(--text-primary)}.alert-badge{position:absolute;top:6px;right:6px;width:6px;height:6px;background:#dc2626;border-radius:50%}:where(.p-button){border-radius:12px;box-shadow:none}:where(.p-dialog){border-radius:var(--radius-lg);box-shadow:var(--shadow-2);border:var(--border)}:where(.p-dialog .p-dialog-header){border-bottom:1px solid var(--separator);background:var(--surface)}:where(.p-dialog .p-dialog-content){background:var(--surface)}:where(.p-dialog .p-dialog-footer){border-top:1px solid var(--separator);background:var(--surface-2)}:where(.p-datatable .p-datatable-thead>tr>th){background:var(--surface-2);border-bottom:1px solid var(--separator);font-weight:600}:where(.p-datatable .p-datatable-tbody>tr){border-bottom:1px solid var(--separator)}:where(.p-datatable .p-datatable-tbody>tr:hover){background:var(--surface-2)}.pv-mask{position:fixed;left:0;right:0;bottom:0;top:var(--app-header-h);background:transparent!important;z-index:998}.pv-content{position:fixed!important;right:0;top:var(--app-header-h)!important;height:calc(100vh - var(--app-header-h))!important;width:min(420px,92vw);background:var(--surface);border-left:var(--border);border-top-left-radius:var(--radius-lg);box-shadow:var(--shadow-2);overflow:auto}.pv-content{transition:transform .18s ease,opacity .18s ease;transform:translate(8px);opacity:.98}.p-sidebar.p-component.p-sidebar-active .pv-content{transform:translate(0);opacity:1}@media (max-width: 768px){.modern-table th,.modern-table td{padding:var(--spacing-sm)}.modern-table{font-size:var(--font-size-caption)}.action-button{width:32px;height:32px}.emergency-text{display:none}}.settings-widget{display:flex;flex-direction:column;height:100%}.settings-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);background:var(--background-primary);position:sticky;top:0;z-index:10}.settings-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.settings-title{font-size:var(--font-size-h3);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.settings-controls{display:flex;align-items:center;gap:var(--spacing-md)}.compact-toggle{display:flex;align-items:center;gap:6px;font-size:var(--font-size-caption);color:var(--text-secondary);cursor:pointer;user-select:none}.compact-toggle input[type=checkbox]{cursor:pointer}.settings-search{position:relative}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:12px;color:var(--text-tertiary);font-size:14px;pointer-events:none}.search-input{width:100%;padding:8px 36px;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-body);color:var(--text-primary);background:var(--background-secondary);transition:all var(--transition-fast)}.search-input:focus{outline:none;border-color:var(--primary-blue);background:var(--background-primary);box-shadow:0 0 0 3px #3b82f61a}.search-clear{position:absolute;right:8px;padding:4px 8px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.search-clear:hover{color:var(--text-primary);background:var(--background-tertiary)}.settings-content{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.settings-sections{display:flex;flex-direction:column;gap:var(--spacing-xl)}.settings-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.section-title{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md)}.setting-tile{position:relative;display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--background-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:left}.setting-tile:hover:not(.setting-tile--disabled){background:var(--background-tertiary);border-color:var(--primary-blue);transform:translateY(-2px);box-shadow:var(--shadow-md)}.setting-tile:active:not(.setting-tile--disabled){transform:translateY(0)}.setting-tile--compact{padding:var(--spacing-sm)}.setting-tile--compact .tile-description{display:none}.setting-tile--disabled{opacity:.5;cursor:not-allowed;background:var(--background-secondary)}.tile-icon-container{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--primary-blue);color:#fff;border-radius:var(--radius-md);font-size:18px}.setting-tile--disabled .tile-icon-container{background:var(--background-tertiary);color:var(--text-tertiary)}.tile-content{flex:1;min-width:0}.tile-title{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 4px}.tile-description{font-size:var(--font-size-caption);color:var(--text-secondary);margin:0;line-height:1.4}.tile-disabled-badge{position:absolute;top:8px;right:8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--background-tertiary);color:var(--text-tertiary);border-radius:50%;font-size:12px}.settings-empty{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xxl)}.empty-state{text-align:center;max-width:400px}.empty-state i{display:block;margin-bottom:var(--spacing-md);color:var(--text-tertiary)}.empty-state h3{font-size:var(--font-size-h4);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.empty-state p{font-size:var(--font-size-body);color:var(--text-secondary);margin:0 0 var(--spacing-md) 0}.settings-form{padding:var(--spacing-lg)}.form-grid{display:grid;gap:var(--spacing-lg)}.form-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-lg);border-top:1px solid var(--border-color);background:var(--background-secondary);margin:var(--spacing-lg) calc(var(--spacing-lg) * -1) calc(var(--spacing-lg) * -1)}.alert{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-caption)}.alert-info{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:var(--primary-blue)}.alert-warning{background:#fbbf241a;border:1px solid rgba(251,191,36,.3);color:var(--accent-yellow)}.alert-danger{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--accent-red)}.settings-content-wrapper{display:flex;flex-direction:column;min-height:400px}.settings-content-wrapper>div:first-child{flex:1;overflow-y:auto}@media (max-width: 768px){.settings-grid{grid-template-columns:1fr}.setting-tile{padding:var(--spacing-sm)}.tile-icon-container{width:36px;height:36px;font-size:16px}}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color);background:var(--background-secondary)}.drawer-title{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.drawer-content-body{flex:1;overflow-y:auto}.qi-notice-banner{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;background:var(--info-blue-light);border:1px solid var(--info-blue);border-radius:8px;font-size:13px;line-height:1.5}.qi-notice-banner i{color:var(--info-blue);margin-top:2px;flex-shrink:0}.qi-notice-banner strong{font-weight:600}.map-page-fullscreen{display:flex;flex-direction:column;height:calc(100vh - 64px);background:var(--background-secondary);overflow:hidden}.map-editor-canvas-wrapper{flex:1;position:relative;overflow:hidden;background:#fff}.map-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:40px;text-align:center;color:var(--text-secondary)}.map-empty-state h3{margin:16px 0 8px;color:var(--text-primary);font-size:20px}.map-empty-state p{margin:0 0 24px;font-size:14px}.dark .modern-select:focus{border-color:#60a5fa;outline-color:#60a5fa}.dark .select-arrow{color:#a1a1aa}.dark .select-label{color:#fff}.dark .select-helper{color:#a1a1aa}.dark .select-error{color:#f87171}.dark .map-editor-canvas-wrapper{background:#0a0a0b}.add-bell-layout{display:grid;grid-template-columns:1fr 320px;gap:var(--spacing-lg);align-items:start}.add-bell-form-column{min-width:0}.add-bell-form-column .modern-form-card{padding:var(--spacing-lg)}.add-bell-form-column .form-grid{display:grid;gap:var(--spacing-lg)}.add-bell-sidebar{display:flex;flex-direction:column;gap:var(--spacing-md);position:sticky;top:calc(var(--app-header-h, 52px) + var(--spacing-lg));max-height:calc(100vh - var(--app-header-h, 52px) - var(--spacing-xl));overflow-y:auto}.timeline-card-content{padding:var(--spacing-md)}.timeline-header{display:flex;align-items:center;gap:8px;margin-bottom:var(--spacing-md)}.timeline-header i{color:var(--accent-blue)}.timeline-header h3{font-size:15px;font-weight:600;margin:0;color:var(--text-primary)}.timeline-subtitle{font-size:12px;color:var(--text-secondary);margin:0 0 var(--spacing-md) 0}.timeline-empty{padding:var(--spacing-lg);text-align:center;color:var(--text-tertiary);background:var(--background-secondary);border-radius:8px}.timeline-empty i{font-size:24px;margin-bottom:8px;display:block}.timeline-empty p{margin:0;font-size:13px;color:var(--text-secondary)}.timeline-empty span{display:block;margin-top:4px;font-size:11px}.timeline-list{display:flex;flex-direction:column;gap:2px;max-height:350px;overflow-y:auto}.timeline-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--background-secondary);border-radius:6px;font-size:13px}.timeline-time{min-width:70px;font-weight:600;color:var(--accent-blue);font-family:SF Mono,Monaco,Menlo,monospace;font-size:12px}.timeline-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-blue);flex-shrink:0;position:relative}.timeline-connector{position:absolute;left:50%;top:100%;width:2px;height:18px;background:var(--border-color);transform:translate(-50%)}.timeline-description{display:flex;align-items:center;gap:8px;flex:1;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tips-card-content{padding:var(--spacing-md)}.tips-header{display:flex;align-items:center;gap:8px;margin-bottom:var(--spacing-sm)}.tips-header i{color:var(--accent-yellow)}.tips-header h4{font-size:14px;font-weight:600;margin:0;color:var(--text-primary)}.tips-list{margin:0;padding-left:20px;font-size:12px;color:var(--text-secondary);line-height:1.6}.tips-list li{margin-bottom:4px}.tips-list li:last-child{margin-bottom:0}.zones-selection{border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-md);background:var(--background-secondary)}.zones-grid{display:flex;flex-direction:column;gap:var(--spacing-xs)}.zones-grid--2col{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.zone-checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--background-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.zone-checkbox-label:hover{border-color:var(--accent-blue);background:var(--background-tertiary)}.zone-checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-blue);cursor:pointer;flex-shrink:0}.zone-checkbox-label input[type=checkbox]:checked+.zone-info .zone-name{color:var(--accent-blue);font-weight:500}.zone-info{flex:1;min-width:0}.zone-name{font-size:var(--font-size-body);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dark .zones-selection{background:#18181b;border-color:#3f3f46}.dark .zone-checkbox-label{background:#27272a;border-color:#3f3f46}.dark .zone-checkbox-label:hover{background:#3f3f46;border-color:#60a5fa}.dark .zone-name{color:#e5e7eb}@media (max-width: 900px){.add-bell-layout{grid-template-columns:1fr}.add-bell-sidebar{position:static;max-height:none;order:-1}.zones-grid--2col{grid-template-columns:1fr}}@media (min-width: 1200px){.add-bell-layout{grid-template-columns:1fr 360px}}.timeline-item--current{background:#3b82f626;border:1px solid var(--accent-blue)}.timeline-item--current .timeline-time{color:var(--accent-blue)}.timeline-item--current .timeline-description{display:flex;align-items:center;gap:8px;color:var(--text-primary);font-weight:500}.timeline-current-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;background:var(--accent-blue);color:#fff;border-radius:4px;flex-shrink:0}.hr,.separator{height:1px;background:var(--separator);border:none}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.qi-p-16{padding:var(--space-16)}.qi-p-20{padding:var(--space-20)}.qi-gap-20{gap:var(--space-20)}.qi-focus:focus{outline:2px solid var(--accent);outline-offset:2px}.qi-clickable{cursor:pointer}.qi-clickable:focus{outline:2px solid var(--accent);outline-offset:2px}.h-title{font-weight:600;letter-spacing:.1px}.subtle{color:var(--text-2)}.text-muted{color:var(--text-secondary);font-style:italic}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.link-button{color:#2563eb;text-decoration:none;font-weight:500;cursor:pointer;transition:color var(--transition-fast)}.link-button:hover{text-decoration:underline}@media (max-width: 768px){.hidden-mobile{display:none!important}}@media (min-width: 769px){.hidden-desktop{display:none!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.skip-to-main{position:absolute;left:-9999px;z-index:999;padding:1em;background-color:var(--background-primary);color:var(--text-primary);text-decoration:none;border:2px solid var(--accent)}.skip-to-main:focus{left:50%;transform:translate(-50%);top:1em}.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.loading{opacity:.6;cursor:wait}.custom-scrollbar::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar::-webkit-scrollbar-track{background:var(--background-secondary);border-radius:var(--radius-sm)}.custom-scrollbar::-webkit-scrollbar-thumb{background:var(--border-color-secondary);border-radius:var(--radius-sm)}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-slide-up{animation:slideUp .6s ease-out}.animate-slide-down{animation:slideDown .3s ease-out}.animate-slide-in-right{animation:slideInRight .3s ease-out}.animate-slide-in-left{animation:slideInLeft .3s ease-out}.animate-scale-in{animation:scaleIn .2s ease-out}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce 1s ease-in-out infinite}.hover-lift{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.hover-scale{transition:transform var(--transition-fast)}.hover-scale:hover{transform:scale(1.05)}.hover-brightness{transition:filter var(--transition-fast)}.hover-brightness:hover{filter:brightness(1.1)}.loading-skeleton{background:linear-gradient(90deg,var(--background-secondary) 0%,var(--background-tertiary) 50%,var(--background-secondary) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.loading-spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(0,0,0,.1);border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.loading-dots{display:inline-flex;gap:4px}.loading-dots span{width:6px;height:6px;background:var(--accent-blue);border-radius:50%;animation:pulse 1.4s ease-in-out infinite}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}.focus-ring{transition:outline var(--transition-fast),outline-offset var(--transition-fast)}.focus-ring:focus{outline:2px solid var(--accent-blue);outline-offset:2px}.focus-ring:focus:not(:focus-visible){outline:none}.stagger-item{opacity:0;animation:fadeIn .3s ease-out forwards}.stagger-item:nth-child(1){animation-delay:.05s}.stagger-item:nth-child(2){animation-delay:.1s}.stagger-item:nth-child(3){animation-delay:.15s}.stagger-item:nth-child(4){animation-delay:.2s}.stagger-item:nth-child(5){animation-delay:.25s}.stagger-item:nth-child(6){animation-delay:.3s}.stagger-item:nth-child(7){animation-delay:.35s}.stagger-item:nth-child(8){animation-delay:.4s}.page-enter{opacity:0;transform:translateY(20px)}.page-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s ease-out,transform .3s ease-out}.page-exit{opacity:1}.page-exit-active{opacity:0;transition:opacity .2s ease-in}.drawer-enter{transform:translate(100%);opacity:0}.drawer-enter-active{transform:translate(0);opacity:1;transition:transform .3s var(--ease-standard),opacity .3s ease-out}.drawer-exit{transform:translate(0);opacity:1}.drawer-exit-active{transform:translate(100%);opacity:0;transition:transform .2s var(--ease-standard),opacity .2s ease-in}.modal-enter{transform:scale(.9) translateY(-20px);opacity:0}.modal-enter-active{transform:scale(1) translateY(0);opacity:1;transition:transform .3s var(--ease-spring),opacity .3s ease-out}.modal-exit{transform:scale(1) translateY(0);opacity:1}.modal-exit-active{transform:scale(.9) translateY(-20px);opacity:0;transition:transform .2s ease-in,opacity .2s ease-in}.backdrop-enter{opacity:0}.backdrop-enter-active{opacity:1;transition:opacity .2s ease-out}.backdrop-exit{opacity:1}.backdrop-exit-active{opacity:0;transition:opacity .2s ease-in}.notification-enter{transform:translateY(-100%);opacity:0}.notification-enter-active{transform:translateY(0);opacity:1;transition:transform .3s var(--ease-spring),opacity .3s ease-out}.notification-exit{transform:translateY(0);opacity:1}.notification-exit-active{transform:translateY(-100%);opacity:0;transition:transform .2s ease-in,opacity .2s ease-in}.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff80;transform:translate(-50%,-50%);transition:width .6s,height .6s}.ripple-effect:active:after{width:300px;height:300px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.qi-header{position:sticky;top:0;z-index:1000;height:64px;background:#ffffffe6;backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.06);box-shadow:0 2px 8px #0000000f;transition:background-color .2s ease,border-color .2s ease}.dark .qi-header{background:#0a0a0be6;border-bottom-color:#ffffff1a;box-shadow:0 2px 8px #0006}.qi-header__inner{height:100%;max-width:1440px;margin:0 auto;padding:0 16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.header-left-zone,.header-right-zone{display:flex;align-items:center;gap:12px}.header-center-zone{display:flex;align-items:center;justify-content:center}.logo-img{height:20px}.segmented-control{display:inline-flex;background:#f1f5f9;padding:4px;border-radius:12px;transition:background-color .2s ease}.dark .segmented-control{background:#27272a}.segment-button{padding:6px 12px;font-size:14px;border-radius:8px;transition:all .15s ease;color:#475569;text-decoration:none;border:none;background:transparent;cursor:pointer}.dark .segment-button{color:#a1a1aa}.segment-button:hover{background:#fff;color:#1f2937}.dark .segment-button:hover{background:#3f3f46;color:#fff}.segment-button.active{background:#fff;color:#1f2937;box-shadow:0 1px 3px #0f172a1a}.dark .segment-button.active{background:#3f3f46;color:#fff;box-shadow:0 1px 3px #0006}.site-switcher{position:relative;margin-left:16px}.site-switcher__trigger{display:inline-flex;align-items:center;padding:6px 12px;background:#f1f5f9;border:1px solid transparent;border-radius:10px;font-size:14px;font-weight:500;color:#374151;cursor:pointer;transition:all .15s ease;min-width:160px}.dark .site-switcher__trigger{background:#27272a;color:#d4d4d8}.site-switcher__trigger:hover{background:#e2e8f0;border-color:#0000001a}.dark .site-switcher__trigger:hover{background:#3f3f46;border-color:#ffffff1a}.site-switcher__trigger[aria-expanded=true]{background:#e2e8f0;border-color:var(--color-primary)}.dark .site-switcher__trigger[aria-expanded=true]{background:#3f3f46;border-color:var(--color-primary)}.site-switcher__name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.site-switcher__dropdown{position:absolute;top:calc(100% + 8px);left:0;min-width:280px;background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;border:1px solid rgba(0,0,0,.08);z-index:1050;animation:siteDropdownSlide .15s ease;overflow:hidden}.dark .site-switcher__dropdown{background:#18181b;border-color:#27272a;box-shadow:0 10px 40px #00000080}@keyframes siteDropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.site-switcher__header{padding:12px 16px 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#6b7280;border-bottom:1px solid rgba(0,0,0,.06)}.dark .site-switcher__header{color:#71717a;border-bottom-color:#27272a}.site-switcher__option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 16px;border:none;background:transparent;font-size:14px;color:#374151;cursor:pointer;transition:background-color .1s ease;text-align:left}.dark .site-switcher__option{color:#d4d4d8}.site-switcher__option:hover{background:#f3f4f6}.dark .site-switcher__option:hover{background:#27272a}.site-switcher__option.active{background:#3b82f614}.dark .site-switcher__option.active{background:#3b82f626}.site-switcher__option-content{display:flex;align-items:center}.site-switcher__option-name{font-weight:500}.site-switcher__status{width:8px;height:8px;border-radius:50%;margin-left:8px}.site-switcher__status--online{background:#10b981;box-shadow:0 0 6px #10b98180}.site-switcher__status--offline{background:#ef4444}.site-switcher__status--unknown{background:#9ca3af}.action-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:12px;border:none;background:transparent;color:#64748b;cursor:pointer;transition:all .15s ease;position:relative}.dark .action-button{color:#a1a1aa}.action-button:hover{background:#e2e8f0;color:#1f2937}.dark .action-button:hover{background:#27272a;color:#fff}.action-button.has-alerts{color:#dc2626}.dark .action-button.has-alerts{color:#f87171}.alert-badge{position:absolute;top:2px;right:2px;width:6px;height:6px;background:#ef4444;border-radius:50%}.emergency-button{display:inline-flex;align-items:center;padding:6px 12px;border-radius:12px;border:none;background:#dc2626;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;gap:6px}.emergency-button:hover{background:#b91c1c;transform:translateY(-1px)}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100}.dark .modal-backdrop{background:#000c}.modal-content{background:#fff;border-radius:16px;padding:24px;max-width:420px;width:100%;box-shadow:0 20px 60px #0f172a2e}.dark .modal-content{background:#18181b;border:1px solid #27272A;box-shadow:0 20px 60px #0009}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.dark .modal-header h3{color:#fff}.modal-footer{display:flex;justify-content:flex-end;gap:12px}.emergency-modal{background:#fff;border-radius:24px;padding:48px 40px 40px;max-width:440px;width:90%;text-align:center;box-shadow:0 24px 64px #00000026;animation:emergencyModalSlide .3s cubic-bezier(.4,0,.2,1);position:relative}.dark .emergency-modal{background:#18181b;border:1px solid #27272A;box-shadow:0 24px 64px #000000b3}@keyframes emergencyModalSlide{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.emergency-modal-icon{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#fee2e2,#fecaca);display:flex;align-items:center;justify-content:center;margin:0 auto 24px;position:relative}.dark .emergency-modal-icon{background:linear-gradient(135deg,#ef444426,#dc262626)}.emergency-modal-icon:before{content:"";position:absolute;inset:-8px;border-radius:50%;background:linear-gradient(135deg,#fee2e2,#fecaca);opacity:.3;animation:emergencyPulse 2s ease-in-out infinite}.dark .emergency-modal-icon:before{background:linear-gradient(135deg,#ef444433,#dc262633)}@keyframes emergencyPulse{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.1);opacity:.1}}.emergency-modal-icon i{font-size:36px;color:#dc2626}.dark .emergency-modal-icon i{color:#f87171}.emergency-modal-title{margin:0 0 16px;font-size:28px;font-weight:700;color:#111827;letter-spacing:-.5px}.dark .emergency-modal-title{color:#fff}.emergency-modal-message{margin:0 0 12px;font-size:16px;line-height:1.6;color:#6b7280}.dark .emergency-modal-message{color:#a1a1aa}.emergency-modal-warning{margin:0 0 32px;font-size:14px;font-weight:600;color:#dc2626;padding:12px 16px;background:#ef444414;border-radius:12px;border:1px solid rgba(239,68,68,.2)}.dark .emergency-modal-warning{color:#f87171;background:#ef44441a;border-color:#ef44444d}.emergency-modal-actions{display:flex;gap:12px;margin-top:32px}.emergency-modal-btn{flex:1;padding:14px 24px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:none;outline:none}.emergency-modal-btn:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.emergency-modal-btn--cancel{background:#f3f4f6;color:#374151}.emergency-modal-btn--cancel:hover{background:#e5e7eb;transform:translateY(-1px)}.dark .emergency-modal-btn--cancel{background:#27272a;color:#d4d4d8}.dark .emergency-modal-btn--cancel:hover{background:#3f3f46}.emergency-modal-btn--danger{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;box-shadow:0 4px 12px #dc26264d}.emergency-modal-btn--danger:hover{transform:translateY(-2px);box-shadow:0 8px 20px #dc262666}.dark .emergency-modal-btn--danger{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 12px #ef444466}.dark .emergency-modal-btn--danger:hover{box-shadow:0 8px 20px #ef444480}@media (max-width: 480px){.emergency-modal{padding:36px 24px 24px}.emergency-modal-icon{width:64px;height:64px}.emergency-modal-icon i{font-size:28px}.emergency-modal-title{font-size:24px}.emergency-modal-actions{flex-direction:column}.emergency-modal-btn{width:100%}}.right-drawer{position:fixed;inset:0;pointer-events:none}.right-drawer__backdrop{position:absolute;inset:0;background:#0f172a73;opacity:0;transition:opacity .2s ease}.right-drawer__panel{position:absolute;top:0;bottom:0;right:0;width:clamp(320px,30vw,420px);background:#fff;box-shadow:-8px 0 24px #0f172a2e;transform:translate(100%);transition:transform .3s ease;display:flex;flex-direction:column}.dark .right-drawer__panel{background:#18181b;border-left:1px solid #27272A;box-shadow:-8px 0 24px #0009}.right-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #e2e8f0}.dark .right-drawer__header{border-bottom-color:#27272a}.dark .right-drawer__header h3,.dark .right-drawer__header h4{color:#fff}.right-drawer__content{flex:1;overflow-y:auto;padding:16px}.right-drawer__close{border:none;background:transparent;cursor:pointer;color:#475569}.dark .right-drawer__close{color:#a1a1aa}.dark .right-drawer__close:hover{color:#fff}.right-drawer--open{pointer-events:auto}.right-drawer--open .right-drawer__backdrop{opacity:1}.right-drawer--open .right-drawer__panel{transform:translate(0)}.map-panel{height:100%;display:flex;flex-direction:column;background:#fff;overflow:hidden;transition:background .2s ease}.dark .map-panel{background:#18181b}.map-toolbar{background:var(--background-secondary);border-bottom:2px solid var(--border-color);padding:var(--spacing-md);flex-shrink:0;position:relative;z-index:10;pointer-events:auto;transition:background .2s ease,border-color .2s ease}.dark .map-toolbar{background:#27272a;border-bottom-color:#3f3f46}.map-toolbar__content{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);position:relative;z-index:10}.map-toolbar__left,.map-toolbar__right{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.map-panel__body{flex:1;position:relative;overflow:hidden;background:var(--background-subtle);min-height:600px;height:auto;max-height:800px;display:flex;flex-direction:column;transition:background .2s ease}.dark .map-panel__body{background:#0a0a0b}.map-preview-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--background-secondary);transition:background .2s ease}.dark .map-preview-container{background:#18181b}.map-content{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.map-image{max-width:100%;max-height:100%;object-fit:contain}.map-placeholder{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;justify-content:center}.map-placeholder i{display:block;margin-bottom:var(--spacing-md);font-size:48px;opacity:.3;color:var(--text-tertiary)}.map-placeholder p{margin:0;font-size:var(--font-size-body);color:var(--text-secondary)}.map-empty-state{display:flex;align-items:center;justify-content:center;height:100%;padding:var(--spacing-xl)}.map-empty-state__content{text-align:center;max-width:500px}.map-empty-state__icon{font-size:80px;color:var(--accent-purple);margin-bottom:var(--spacing-lg);opacity:.8}.map-empty-state__title{font-size:var(--font-size-title);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-md) 0}.map-empty-state__description{font-size:var(--font-size-body);color:var(--text-secondary);margin:0 0 var(--spacing-lg) 0;line-height:1.6}.map-empty-state__help{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.map-empty-state__help p{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);font-size:var(--font-size-caption);color:var(--text-secondary);margin:0}.zoom-controls{position:absolute;bottom:20px;right:20px;display:flex;flex-direction:column;gap:4px;background:#fff;padding:8px;border-radius:12px;box-shadow:0 4px 12px #00000026;z-index:15;pointer-events:auto}.dark .zoom-controls{background:#18181b;border:1px solid #27272A;box-shadow:0 4px 12px #0006}.zoom-controls__button{min-width:36px;justify-content:center}.zoom-controls__level{padding:6px 8px;text-align:center;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--text-secondary);border-radius:6px;background:var(--background-secondary)}.zoom-controls__divider{height:1px;background:var(--border-color);margin:4px 0}.map-upload-dialog{display:flex;flex-direction:column;gap:var(--spacing-lg)}.upload-dropzone{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center;background:var(--background-subtle);transition:all .3s ease;cursor:pointer}.dark .upload-dropzone{border-color:#3f3f46;background:#18181b}.upload-dropzone:hover{border-color:var(--accent-blue);background:var(--accent-blue-light)}.dark .upload-dropzone:hover{border-color:#60a5fa;background:#60a5fa1a}.upload-dropzone--dragging{border-color:var(--accent-blue);background:var(--accent-blue-light);transform:scale(1.02)}.dark .upload-dropzone--dragging{border-color:#60a5fa;background:#60a5fa26}.upload-dropzone__icon{font-size:64px;color:var(--accent-blue);margin-bottom:var(--spacing-md);opacity:.8}.upload-dropzone__title{font-size:var(--font-size-subtitle);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.upload-dropzone__subtitle{font-size:var(--font-size-body);color:var(--text-secondary);margin:0 0 var(--spacing-md) 0}.upload-dropzone__hint{font-size:var(--font-size-caption);color:var(--text-secondary);margin:var(--spacing-md) 0 0 0}.upload-preview{display:flex;flex-direction:column;gap:var(--spacing-md)}.upload-preview__image-container{border-radius:var(--radius-md);overflow:hidden;background:var(--background-secondary);border:2px solid var(--border-color);transition:background .2s ease,border-color .2s ease}.dark .upload-preview__image-container{background:#27272a;border-color:#3f3f46}.upload-preview__image{width:100%;height:auto;max-height:300px;object-fit:contain;display:block}.upload-preview__info{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm);background:var(--background-secondary);border-radius:var(--radius-sm);transition:background .2s ease}.dark .upload-preview__info{background:#27272a}.upload-preview__filename{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);color:var(--text-primary);margin:0}.upload-preview__size{font-size:var(--font-size-caption);color:var(--text-secondary);margin:0}.upload-error{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--error-red-light);border:1px solid var(--error-red);border-radius:var(--radius-sm);color:var(--error-red);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);transition:background .2s ease,border-color .2s ease}.dark .upload-error{background:#f8717126;border-color:#f87171;color:#f87171}.modal-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.map-polygons-overlay{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);display:flex;flex-direction:column;gap:var(--spacing-xs);z-index:5}.polygon-indicator{background:var(--accent-purple-light);color:var(--accent-purple);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);border:1px solid var(--accent-purple);box-shadow:0 2px 4px #0000001a}.zone-filter-dialog{display:flex;flex-direction:column;gap:var(--spacing-md);max-height:60vh}.zone-filter-actions{display:flex;gap:var(--spacing-sm);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.zone-filter-list{display:flex;flex-direction:column;gap:var(--spacing-xs);overflow-y:auto;max-height:400px;padding:var(--spacing-xs)}.zone-filter-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;transition:background-color .2s ease}.zone-filter-item:hover{background:var(--background-secondary)}.zone-filter-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-blue)}.zone-filter-name{font-size:var(--font-size-body);color:var(--text-primary);font-weight:var(--font-weight-medium)}.zone-filter-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--text-secondary);text-align:center}.zone-filter-empty i{font-size:48px;margin-bottom:var(--spacing-md);opacity:.5}.zone-filter-empty p{margin:0;font-size:var(--font-size-body)}.layer-controls{position:absolute;top:24px;right:24px;background:#fff;border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-md);min-width:200px;z-index:25;overflow:hidden;transition:all .2s ease;pointer-events:auto}.dark .layer-controls{background:#18181b;border-color:#27272a;box-shadow:0 4px 12px #0006}.layer-controls-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--background-secondary);border-bottom:1px solid var(--border-color)}.dark .layer-controls-header{background:#27272a;border-bottom-color:#3f3f46}.layer-controls-title{margin:0;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.layer-controls-toggle{width:24px;height:24px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.layer-controls-toggle:hover{background:var(--background-tertiary);color:var(--text-primary)}.dark .layer-controls-toggle:hover{background:#3f3f46;color:#fff}.layer-controls-body{padding:var(--spacing-xs)}.layer-control-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;border-radius:var(--radius-sm);transition:all .2s ease;font-size:var(--font-size-body);color:var(--text-primary);user-select:none}.dark .layer-control-item:hover{background:#27272a}.layer-control-item input[type=checkbox]{width:18px;height:18px;cursor:pointer}.layer-control-item i{color:var(--text-secondary);width:16px;text-align:center}.dark .layer-controls-divider{background:#27272a}.map-panel{display:flex;flex-direction:column;height:100%;width:100%}.pa-command-center{display:flex;flex-direction:column;height:100%;width:100%;position:relative;overflow:hidden}.map-toolbar{flex-shrink:0;position:relative;z-index:20}.map-panel__body{flex:1;min-height:0;position:relative;overflow:hidden}.map-editor-page{display:flex;flex-direction:column;height:calc(100vh - 64px);background:#f9fafb}.dark .map-editor-page{background:#0a0a0b}.map-editor-nav{height:64px;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;padding:0 24px;gap:24px;flex-shrink:0;transition:background-color .2s ease,border-color .2s ease}.dark .map-editor-nav{background:#18181b;border-bottom-color:#27272a}.map-editor-tabs{display:flex;gap:32px}.map-editor-tab{padding:20px 0;font-size:15px;font-weight:500;color:#6b7280;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease;background:none;border-top:none;border-left:none;border-right:none}.dark .map-editor-tab{color:#a1a1aa}.map-editor-tab.active{color:#3b82f6;border-bottom-color:#3b82f6}.dark .map-editor-tab.active{color:#60a5fa;border-bottom-color:#60a5fa}.map-editor-tab:hover{color:#1f2937}.dark .map-editor-tab:hover{color:#fff}.map-editor-filter-text{font-size:14px;color:#6b7280;margin-left:auto;padding:8px 16px;background:var(--background-secondary);border-radius:var(--radius-md);font-weight:500}.dark .map-editor-filter-text{color:#a1a1aa;background:#27272a}.map-editor-actions{display:flex;gap:8px;margin-left:auto}.action-btn{width:40px;height:40px;border-radius:12px;border:1px solid var(--border-color);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:var(--text-secondary);font-size:16px}.dark .action-btn{background:#27272a;border-color:#3f3f46;color:#a1a1aa}.action-btn:hover:not(:disabled){background:var(--background-secondary);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;color:var(--accent-blue);border-color:var(--accent-blue)}.dark .action-btn:hover:not(:disabled){background:#3f3f46;color:#60a5fa;border-color:#60a5fa;box-shadow:0 4px 12px #60a5fa33}.action-btn.primary{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue);font-weight:600}.dark .action-btn.primary{background:#60a5fa;border-color:#60a5fa}.action-btn.primary:hover{background:var(--accent-blue-hover);transform:translateY(-2px);box-shadow:0 6px 16px #3b82f666}.dark .action-btn.primary:hover{background:#3b82f6;box-shadow:0 6px 16px #60a5fa66}.action-btn.danger{color:var(--error-red)}.dark .action-btn.danger{color:#f87171}.action-btn.danger:hover{background:var(--error-red-light);color:var(--error-red);border-color:var(--error-red)}.dark .action-btn.danger:hover{background:#f8717126;color:#f87171;border-color:#f87171}.action-btn:disabled{opacity:.5;cursor:not-allowed}.map-toolbar{width:100%;background:#fff;border-bottom:1px solid #e5e7eb;padding:12px 24px;transition:background-color .2s ease,border-color .2s ease}.dark .map-toolbar{background:#18181b;border-bottom-color:#27272a}.map-toolbar__content{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%}.map-toolbar__left{display:flex;align-items:center;gap:12px}.map-toolbar__right{display:flex;align-items:center;gap:8px;margin-left:auto}.map-editor-canvas-container{flex:1;position:relative;background:#f9fafb;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:0;width:100%;height:100%}.dark .map-editor-canvas-container{background:#0a0a0b}.map-editor-canvas-wrapper{width:100%;height:100%;position:absolute;inset:0}.map-editor-canvas{display:block;position:absolute;top:0;left:0;image-rendering:auto;image-rendering:-webkit-optimize-contrast;-ms-interpolation-mode:bicubic;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.map-editor-status{height:52px;background:#fff;border-top:1px solid var(--border-color);display:flex;align-items:center;padding:0 24px;gap:32px;font-size:14px;color:var(--text-secondary);flex-shrink:0;transition:background-color .2s ease,border-color .2s ease;box-shadow:0 -2px 8px #0000000a}.dark .map-editor-status{background:#18181b;border-top-color:#27272a;color:#a1a1aa;box-shadow:0 -2px 8px #0006}.status-item{display:flex;align-items:center;gap:8px;font-weight:500}.status-item i{font-size:16px;color:var(--accent-blue)}.dark .status-item i{color:#60a5fa}.map-editor-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#6b7280}.map-editor-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.map-editor-empty,.map-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:60px 40px;text-align:center;width:100%;max-width:520px;margin:0 auto;color:var(--text-secondary);transition:all .3s cubic-bezier(.4,0,.2,1)}.dark .map-editor-empty,.dark .map-empty-state{color:#a1a1aa}.map-empty-state--dragging{transform:scale(1.02);background:#3b82f608;border-radius:24px;box-shadow:0 0 0 3px #3b82f633,0 20px 40px #3b82f61a}.dark .map-empty-state--dragging{background:#60a5fa0d;box-shadow:0 0 0 3px #60a5fa4d,0 20px 40px #60a5fa26}.map-empty-icon{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#3b82f6);display:flex;align-items:center;justify-content:center;font-size:64px;color:#fff;margin-bottom:12px;box-shadow:0 12px 32px #8b5cf640;animation:floatIcon 3s ease-in-out infinite;position:relative}.dark .map-empty-icon{background:linear-gradient(135deg,#c084fc,#60a5fa);box-shadow:0 12px 32px #c084fc4d}@keyframes floatIcon{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@media (prefers-reduced-motion: reduce){.map-empty-icon{animation:none}.map-empty-state,.map-empty-state--dragging,.map-empty-cta,.map-empty-drop-zone{transition:none}}.map-empty-state h3{margin:0;font-size:32px;font-weight:700;color:var(--text-primary);letter-spacing:-.5px;line-height:1.2}.dark .map-empty-state h3{color:#fff}.map-empty-state p{margin:8px 0 32px;font-size:16px;color:var(--text-secondary);max-width:440px;line-height:1.6}.dark .map-empty-state p{color:#a1a1aa}.map-empty-cta{padding:14px 32px!important;font-size:16px!important;font-weight:600!important;box-shadow:0 4px 14px #3b82f64d!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;gap:10px}.map-empty-cta:hover{transform:translateY(-2px)!important;box-shadow:0 8px 24px #3b82f666!important}.dark .map-empty-cta{box-shadow:0 4px 14px #60a5fa59!important}.dark .map-empty-cta:hover{box-shadow:0 8px 24px #60a5fa73!important}.map-empty-divider{display:flex;align-items:center;width:100%;margin:16px 0;color:var(--text-tertiary);font-size:14px;font-weight:500}.map-empty-divider:before,.map-empty-divider:after{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,var(--border-color) 50%,transparent)}.map-empty-divider span{padding:0 16px;text-transform:uppercase;letter-spacing:.5px;font-size:12px}.dark .map-empty-divider{color:#71717a}.map-empty-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%;padding:32px 24px;border:2px dashed var(--border-color);border-radius:16px;background:var(--background-secondary);color:var(--text-tertiary);font-size:15px;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.map-empty-drop-zone i{font-size:32px;opacity:.6}.map-empty-drop-zone:hover{border-color:var(--accent-blue);background:#3b82f608;color:var(--accent-blue)}.map-empty-drop-zone:hover i{opacity:1;transform:translateY(-2px)}.dark .map-empty-drop-zone{background:#18181b;border-color:#3f3f46;color:#71717a}.dark .map-empty-drop-zone:hover{border-color:#60a5fa;background:#60a5fa0d;color:#60a5fa}.map-empty-state--dragging .map-empty-drop-zone{border-color:var(--accent-blue);background:#3b82f614;color:var(--accent-blue);border-style:solid;box-shadow:0 4px 20px #3b82f626}.dark .map-empty-state--dragging .map-empty-drop-zone{border-color:#60a5fa;background:#60a5fa1a;color:#60a5fa;box-shadow:0 4px 20px #60a5fa33}.map-filter-view{padding:24px;background:#fff;height:100%;overflow-y:auto}.dark .map-filter-view{background:#18181b}.map-filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.map-filter-header h3{margin:0;font-size:18px;color:#111827}.dark .map-filter-header h3{color:#fff}.map-filter-actions{display:flex;gap:8px}.map-filter-list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.map-filter-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s ease}.dark .map-filter-item{border-color:#27272a;background:#0a0a0b}.map-filter-item:hover{background:#f9fafb;border-color:#d1d5db}.dark .map-filter-item:hover{background:#27272a;border-color:#3f3f46}.map-filter-item input[type=checkbox]{width:18px;height:18px;cursor:pointer}.map-filter-item-info{flex:1;display:flex;align-items:center;gap:12px}.map-filter-color{width:24px;height:24px;border-radius:4px;border:1px solid #e5e7eb}.dark .map-filter-color{border-color:#3f3f46}.map-filter-name{font-size:14px;color:#111827;font-weight:500}.dark .map-filter-name{color:#fff}.map-filter-count{font-size:12px;color:#6b7280;background:#f3f4f6;padding:2px 8px;border-radius:12px;margin-left:auto}.dark .map-filter-count{color:#a1a1aa;background:#27272a}.device-assignment-panel{position:absolute;right:0;top:0;bottom:0;width:320px;background:#fff;border-left:1px solid #e5e7eb;box-shadow:-4px 0 12px #0000001a;z-index:30;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s ease}.dark .device-assignment-panel{background:#18181b;border-left-color:#27272a;box-shadow:-4px 0 12px #0006}.device-assignment-panel.open{transform:translate(0)}.device-assignment-panel.open~* .quick-action-fab,body:has(.device-assignment-panel.open) .quick-action-fab{right:352px;transition:right .3s ease}.device-panel-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e5e7eb}.dark .device-panel-header{border-bottom-color:#27272a}.device-panel-header h3{margin:0;font-size:16px;color:#111827}.dark .device-panel-header h3{color:#fff}.device-panel-close{width:32px;height:32px;border-radius:50%;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:all .2s ease}.dark .device-panel-close{color:#a1a1aa}.device-panel-close:hover{background:#f3f4f6}.dark .device-panel-close:hover{background:#27272a;color:#fff}.device-panel-content{flex:1;padding:20px;overflow-y:auto}.device-panel-section{margin-bottom:24px}.device-panel-label{display:block;font-size:12px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.dark .device-panel-label{color:#a1a1aa}.device-panel-value{font-size:14px;color:#111827;padding:8px 0}.dark .device-panel-value{color:#fff}@media (max-width: 1024px){.map-editor-nav{padding:0 16px}.map-editor-actions{gap:8px}.action-btn{width:36px;height:36px}.device-assignment-panel{width:280px}}@media (max-width: 768px){.map-editor-tabs{gap:16px}.map-editor-tab{font-size:14px;padding:16px 0}.map-zoom-controls{left:12px;top:12px}.zoom-button{width:40px;height:40px}.map-editor-status{flex-wrap:wrap;height:auto;padding:12px 16px;gap:16px}.map-editor-canvas-container{margin:8px}.device-assignment-panel{width:100%}}.drawing-mode{cursor:crosshair!important}.select-mode{cursor:default!important}.pan-mode{cursor:grab!important}.pan-mode:active{cursor:grabbing!important}.map-page-fullscreen{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--background-secondary);overflow:hidden;position:relative}.dark .map-page-fullscreen{background:#0a0a0b}.map-zoom-controls{position:absolute;left:24px;top:24px;display:flex;flex-direction:column;gap:8px;z-index:100;pointer-events:auto}.zoom-button{width:56px;height:56px;border-radius:50%;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(0,0,0,.06);box-shadow:0 2px 8px #00000014,0 1px 2px #0000000a,inset 0 1px #fffc;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;color:#1f2937;font-size:18px;position:relative;overflow:hidden}.zoom-button:before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at center,transparent 0%,rgba(0,0,0,.02) 100%);opacity:0;transition:opacity .25s ease}.dark .zoom-button{background:#27272af2;border-color:#ffffff1a;color:#e5e7eb;box-shadow:0 2px 8px #0006,0 1px 2px #0003,inset 0 1px #ffffff0d}.zoom-button:hover:not(:disabled){transform:scale(1.08);background:#fff;border-color:#3b82f64d;color:#3b82f6;box-shadow:0 4px 16px #3b82f633,0 2px 4px #00000014,inset 0 1px #fff}.zoom-button:hover:not(:disabled):before{opacity:1}.dark .zoom-button:hover:not(:disabled){background:#3f3f46;border-color:#60a5fa66;color:#60a5fa;box-shadow:0 4px 16px #60a5fa4d,0 2px 4px #0006,inset 0 1px #ffffff1a}.zoom-button:active:not(:disabled){transform:scale(1.02);transition-duration:.1s}.zoom-button:disabled{opacity:.4;cursor:not-allowed;background:#fff9;color:#9ca3af;box-shadow:0 1px 4px #0000000d,inset 0 1px #fff6}.dark .zoom-button:disabled{background:#27272a99;color:#52525b;box-shadow:0 1px 4px #0000004d,inset 0 1px #ffffff05}.zoom-level{padding:10px 18px;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(0,0,0,.06);border-radius:28px;font-size:13px;font-weight:600;color:#1f2937;text-align:center;box-shadow:0 2px 8px #00000014,0 1px 2px #0000000a,inset 0 1px #fffc;user-select:none;transition:all .25s cubic-bezier(.4,0,.2,1);letter-spacing:.02em;font-variant-numeric:tabular-nums;min-width:56px}.zoom-level:hover{background:#fff;transform:scale(1.05);box-shadow:0 4px 12px #0000001f,0 2px 4px #0000000f,inset 0 1px #fff}.dark .zoom-level{background:#27272af2;border-color:#ffffff1a;color:#e5e7eb;box-shadow:0 2px 8px #0006,0 1px 2px #0003,inset 0 1px #ffffff0d}.dark .zoom-level:hover{background:#3f3f46;box-shadow:0 4px 12px #0009,0 2px 4px #0000004d,inset 0 1px #ffffff1a}.dashboard-layout{display:flex;flex-direction:row;height:calc(100vh - 64px);background:linear-gradient(135deg,#f5f7fa,#e8eef5);overflow:hidden;gap:0;transition:background .2s ease}.dark .dashboard-layout{background:linear-gradient(135deg,#0a0a0b,#18181b)}.dashboard-content{flex:1;display:flex;flex-direction:column;padding:var(--spacing-lg);overflow-y:auto;overflow-x:hidden;min-height:0;background:transparent}.dashboard-content>*+*{margin-top:var(--spacing-xl)}.dashboard-map-section{position:relative;background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000a,0 8px 24px #0000000f;overflow:hidden;transition:box-shadow .3s ease,background .2s ease,border .2s ease;height:85vh;min-height:700px;max-height:1000px;flex-shrink:0;margin-bottom:var(--spacing-xl)}.dark .dashboard-map-section{background:#18181b;border:1px solid #27272A;box-shadow:0 8px 24px #0006}.dashboard-map-section:hover{box-shadow:0 4px 12px #0000000f,0 12px 32px #00000014}.dark .dashboard-map-section:hover{box-shadow:0 12px 32px #0009}.dashboard-widgets-section{flex:1 1 auto;min-height:0;padding-bottom:var(--spacing-lg);overflow-y:auto}.widget-grid{display:grid;gap:var(--spacing-md)}.widget-grid--3col{grid-template-columns:repeat(3,1fr)}.widget-shell{background:#fff;border-radius:12px;box-shadow:0 1px 4px #0000000a,0 4px 12px #0000000f;padding:var(--spacing-md);display:flex;flex-direction:column;height:100%;transition:all .3s ease}.dark .widget-shell{background:#18181b;border:1px solid #27272A;box-shadow:0 4px 12px #0006}.widget-shell:hover{box-shadow:0 2px 8px #0000000f,0 8px 20px #00000014;transform:translateY(-2px)}.dark .widget-shell:hover{box-shadow:0 8px 20px #0009}.widget-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--border-color)}.dark .widget-header{border-bottom-color:#27272a}.widget-title-section{display:flex;align-items:center;gap:var(--spacing-sm)}.widget-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#0000000a}.dark .widget-icon{background:#27272a}.widget-title{font-size:var(--font-size-subtitle);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.dark .widget-title{color:#fff}.widget-body{flex:1;overflow:auto}.modern-table{width:100%;border-collapse:collapse;font-size:var(--font-size-caption)}.modern-table thead{background:var(--background-secondary);border-radius:8px}.modern-table thead th{padding:var(--spacing-sm);text-align:left;font-weight:var(--font-weight-semibold);color:var(--text-secondary);text-transform:uppercase;font-size:var(--font-size-label);letter-spacing:.5px;border-bottom:2px solid var(--border-color)}.modern-table tbody tr{transition:background .2s ease;border-bottom:1px solid var(--border-color)}.modern-table tbody tr:hover{background:var(--background-secondary)}.modern-table tbody tr:last-child{border-bottom:none}.modern-table tbody td{padding:var(--spacing-sm);text-align:center;color:var(--text-primary)}.alerts-widget,.announcements-widget,.schedules-bells-widget,.system-health-widget,.zones-devices-widget,.maps-widget{display:flex;flex-direction:column;gap:var(--spacing-sm);height:100%}.alerts-actions{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.alerts-table-container{overflow:auto;flex:1}.status-summary{background:linear-gradient(135deg,#f0fdf4,#dcfce7);padding:var(--spacing-md);border-radius:8px;margin-bottom:var(--spacing-sm)}.status-indicator{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:var(--font-weight-medium)}.status-indicator.healthy{color:var(--accent-green)}.status-indicator.warning{color:var(--accent-orange)}.services-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.service-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm);background:var(--background-secondary);border-radius:6px;transition:all .2s ease}.service-item:hover{background:var(--background-tertiary);transform:translate(2px)}.service-info{display:flex;align-items:center;justify-content:space-between;flex:1}.service-name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.service-status{display:flex;align-items:center;gap:4px;font-size:var(--font-size-caption);font-weight:var(--font-weight-medium)}.service-status.online{color:var(--accent-green)}.service-status.offline{color:var(--error-red)}.schedule-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.time-display{flex:1}.current-time{font-size:var(--font-size-title);font-weight:var(--font-weight-bold);color:var(--text-primary);font-variant-numeric:tabular-nums}.next-bell-info{flex:1;padding:var(--spacing-sm);background:var(--accent-purple-light);border-radius:6px}.next-bell-text{font-size:var(--font-size-caption);color:var(--text-primary)}.schedule-timeline{display:flex;flex-direction:column;gap:var(--spacing-xs)}.schedule-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--background-secondary);border-radius:6px;transition:all .2s ease}.schedule-item:hover{background:var(--background-tertiary);transform:translate(2px)}.schedule-item.active{background:var(--accent-blue-light);border-left:3px solid var(--accent-blue)}.schedule-time{font-weight:var(--font-weight-semibold);color:var(--text-secondary);min-width:70px;font-variant-numeric:tabular-nums}.schedule-details{display:flex;align-items:center;gap:var(--spacing-xs);flex:1}.announcements-actions{margin-bottom:var(--spacing-sm)}.announcements-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.announcement-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm);background:var(--background-secondary);border-radius:6px;transition:all .2s ease}.announcement-item:hover{background:var(--background-tertiary);transform:translate(2px)}.announcement-info{flex:1}.announcement-name{font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:4px}.announcement-meta{display:flex;align-items:center;gap:6px;font-size:var(--font-size-label);color:var(--text-secondary)}.device-stats-header{display:flex;gap:var(--spacing-md);padding:var(--spacing-sm);background:var(--background-secondary);border-radius:6px;margin-bottom:var(--spacing-sm)}.stat-item{display:flex;align-items:center;gap:var(--spacing-xs)}.stat-label{font-size:var(--font-size-caption);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.device-list-compact{overflow:auto;flex:1}.device-name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.registered{display:inline-flex;align-items:center;gap:4px;color:var(--accent-green);font-weight:var(--font-weight-medium)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center;color:var(--text-secondary)}.empty-state-icon{font-size:48px;opacity:.3;margin-bottom:var(--spacing-md)}.empty-state-text{font-size:var(--font-size-body);margin:0}.loading-spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 1600px){.widget-grid--3col{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1200px){.widget-grid--3col{grid-template-columns:1fr}.dashboard-map-section{height:calc(45vh - 64px);min-height:350px;max-height:500px}.dashboard-widgets-section{min-height:300px}}@media (max-width: 768px){.dashboard-layout{padding:var(--spacing-sm);padding-bottom:0}.dashboard-content{gap:var(--spacing-sm)}.dashboard-map-section{height:calc(35vh - 64px);min-height:250px;max-height:400px}.dashboard-widgets-section{flex:1 1 auto;overflow-y:auto}.widget-grid{gap:var(--spacing-sm);grid-template-columns:1fr}}.control-sidebar{position:sticky;top:0;height:calc(100vh - 64px);overflow-y:auto;flex-shrink:0;background:#fff;box-shadow:2px 0 8px #0000000a,4px 0 16px #0000000f;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent}.control-sidebar::-webkit-scrollbar{width:6px}.control-sidebar::-webkit-scrollbar-track{background:transparent}.control-sidebar::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.control-sidebar::-webkit-scrollbar-thumb:hover{background:#00000040}.dashboard-content{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent}.dashboard-content::-webkit-scrollbar{width:8px}.dashboard-content::-webkit-scrollbar-track{background:transparent}.dashboard-content::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}.dashboard-content::-webkit-scrollbar-thumb:hover{background:#0000004d}.control-sidebar-item{transition:all .2s ease;border-radius:8px;margin:4px}.control-sidebar-item:hover{background:var(--background-secondary);transform:translate(4px)}.control-sidebar-item.active{background:var(--accent-blue-light);border-left:3px solid var(--accent-blue)}.dark .cp-sidebar{background:#18181bf2;border-right:1px solid rgba(255,255,255,.1);box-shadow:0 2px 8px #0006,0 8px 24px #0009}.dark .cp-sidebar-header{border-bottom-color:#ffffff1a}.dark .cp-title .cp-name{color:#fff}.dark .cp-title .cp-sub{color:#a1a1aa}.dark .cp-nav-item{color:#d4d4d8}.dark .cp-nav-item:before{background:#ffffff14}.dark .cp-nav-item:hover{background:#ffffff1a;color:#fff}.dark .cp-nav-li.active{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 2px 8px #3b82f666,0 4px 16px #3b82f64d,inset 0 1px #ffffff26}.dark .cp-nav-li.active .cp-nav-item,.dark .cp-nav-li.active .cp-nav-item i,.dark .cp-nav-li.active .cp-nav-item span{color:#fff}.dark .cp-nav::-webkit-scrollbar-thumb{background:#ffffff26}.dark .cp-nav::-webkit-scrollbar-thumb:hover{background:#ffffff40}.dark .cp-footer{border-top-color:#ffffff1a;color:#a1a1aa}.dark .cp-status,.dark .cp-collapse-btn{color:#a1a1aa}.dark .cp-collapse-btn:hover{background:#ffffff1a;color:#fff}.drawer-content{background:#fff;box-shadow:-4px 0 12px #0000000f,-8px 0 24px #00000014}.dark .drawer-content{background:#18181b;box-shadow:-4px 0 12px #0006,-8px 0 24px #0009}.drawer-header{background:var(--background-secondary);border-bottom:2px solid var(--border-color)}.dark .drawer-header{background:#27272a;border-bottom-color:#3f3f46}.drawer-title{font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.drawer-widget-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.drawer-widget-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--background-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);transition:all .2s ease;cursor:pointer}.drawer-widget-item:hover{background:var(--background-tertiary);border-color:var(--border-color-secondary);transform:translate(2px)}.dark .drawer-widget-item{background:#27272a;border-color:#3f3f46}.dark .drawer-widget-item:hover{background:#3f3f46;border-color:#52525b}.drawer-widget-item-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border-color);flex-shrink:0}.dark .drawer-widget-item-icon{background:#18181b;border-color:#3f3f46}.drawer-widget-item-content{flex:1;min-width:0}.drawer-widget-item-title{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:2px}.drawer-widget-item-meta{font-size:var(--font-size-caption);color:var(--text-secondary)}.drawer-widget-item-action{flex-shrink:0;color:var(--text-tertiary);transition:color .2s ease}.drawer-widget-item:hover .drawer-widget-item-action{color:var(--accent-blue)}.drawer-stats{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--background-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.dark .drawer-stats{background:#27272a}.drawer-stat-item{flex:1;text-align:center}.drawer-stat-value{font-size:var(--font-size-title);font-weight:var(--font-weight-bold);color:var(--text-primary);display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs)}.drawer-stat-label{font-size:var(--font-size-caption);color:var(--text-secondary);margin-top:4px}.drawer-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);text-align:center;color:var(--text-secondary)}.drawer-empty-state-icon{font-size:48px;opacity:.3;margin-bottom:var(--spacing-md)}.drawer-empty-state-text{font-size:var(--font-size-body);margin:0}.dashboard-map-section-fullscreen{flex:1;min-height:0;height:100%;background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000a,0 8px 24px #0000000f;overflow:hidden;transition:box-shadow .3s ease;display:flex;flex-direction:column}.dashboard-map-section-fullscreen:hover{box-shadow:0 4px 12px #0000000f,0 12px 32px #00000014}.dashboard-map-section-fullscreen>*{flex:1;min-height:0}.skeleton{background:linear-gradient(90deg,var(--background-secondary) 0%,var(--background-tertiary) 50%,var(--background-secondary) 100%);background-size:200% 100%;border-radius:var(--radius-sm);display:inline-block}.skeleton--text{height:16px;border-radius:4px}.skeleton--circular{border-radius:50%}.skeleton--rectangular{width:100%;height:100%}.skeleton--pulse{animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton--wave{animation:skeleton-wave 1.5s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes skeleton-wave{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{display:flex;flex-direction:column;gap:var(--spacing-xs)}.skeleton-text-line{margin-bottom:var(--spacing-xs)}.skeleton-table{width:100%;display:flex;flex-direction:column;gap:var(--spacing-xs)}.skeleton-table-header,.skeleton-table-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--spacing-sm)}.skeleton-table-header{padding:var(--spacing-sm);background:var(--background-secondary);border-radius:var(--radius-sm)}.skeleton-table-row{padding:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.skeleton-card{background:#fff;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.skeleton-card-image{width:100%}.skeleton-card-content{padding:var(--spacing-md)}.skeleton-card-title{margin-bottom:var(--spacing-sm)}.widget-skeleton{padding:var(--spacing-md);background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.widget-skeleton-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--border-color)}.widget-skeleton-icon{width:32px;height:32px;border-radius:var(--radius-sm)}.widget-skeleton-title{height:20px;width:120px}.widget-skeleton-body{display:flex;flex-direction:column;gap:var(--spacing-sm)}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:400px;padding:var(--spacing-xl);background:linear-gradient(135deg,#fff5f5,#ffe5e5)}.error-boundary-content{max-width:500px;text-align:center;background:#fff;padding:var(--spacing-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.error-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fee2e2,#fecaca);border-radius:50%;color:var(--error-red);font-size:36px}.error-title{font-size:var(--font-size-title);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-md) 0}.error-message{font-size:var(--font-size-body);color:var(--text-secondary);margin:0 0 var(--spacing-lg) 0;line-height:1.6}.error-actions{display:flex;gap:var(--spacing-sm);justify-content:center}.error-display{padding:var(--spacing-md);background:#fee2e2;border:1px solid #fca5a5;border-radius:var(--radius-md);color:#991b1b;display:flex;align-items:flex-start;gap:var(--spacing-sm)}.error-display-icon{color:var(--error-red);flex-shrink:0;margin-top:2px}.error-display-content{flex:1}.error-display-title{font-weight:var(--font-weight-semibold);margin-bottom:4px}.error-display-message{font-size:var(--font-size-caption);opacity:.9}.toast-container{position:fixed;top:80px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;min-width:320px;max-width:480px;padding:16px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #0000001a,0 8px 24px #00000026;pointer-events:auto;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast__icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:20px}.toast__message{flex:1;font-size:14px;color:#1f2937;line-height:1.5}.toast__close{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:4px;cursor:pointer;color:#6b7280;transition:all .2s ease}.toast__close:hover{background:#f3f4f6;color:#1f2937}.toast--success{border-left:4px solid #10b981}.toast--success .toast__icon{color:#10b981}.toast--error{border-left:4px solid #ef4444}.toast--error .toast__icon{color:#ef4444}.toast--warning{border-left:4px solid #f59e0b}.toast--warning .toast__icon{color:#f59e0b}.toast--info{border-left:4px solid #3b82f6}.toast--info .toast__icon{color:#3b82f6}@media (max-width: 768px){.toast-container{top:70px;right:16px;left:16px}.toast{min-width:auto;max-width:none}}.event-timeline{display:flex;flex-direction:column;height:100%;background:var(--surface-primary);border-radius:var(--radius-lg);overflow:hidden}.event-timeline-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--border-color);gap:var(--spacing-md);flex-wrap:wrap}.timeline-title{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:600;color:var(--text-primary)}.timeline-title i{color:var(--accent-blue);font-size:20px}.timeline-title h3{margin:0;font-size:var(--font-size-lg)}.timeline-period-selector{display:flex;gap:var(--spacing-xs);background:var(--surface-secondary);padding:4px;border-radius:var(--radius-md)}.period-btn{padding:6px 12px;border:none;background:transparent;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.period-btn:hover{background:var(--surface-primary);color:var(--text-primary)}.period-btn--active{background:var(--accent-blue);color:#fff}.timeline-controls{display:flex;gap:var(--spacing-xs)}.control-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color);background:var(--surface-primary);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.control-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary);border-color:var(--accent-blue)}.control-btn:disabled{opacity:.4;cursor:not-allowed}.control-btn--play{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.control-btn--play:hover{background:var(--accent-blue-hover)}.timeline-progress{height:4px;background:var(--surface-secondary);position:relative}.timeline-progress-bar{height:100%;background:linear-gradient(90deg,var(--accent-blue),var(--accent-purple));transition:width .1s linear}.timeline-events{flex:1;overflow-y:auto;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.timeline-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);text-align:center}.timeline-event{display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--surface-secondary);border-radius:var(--radius-md);border-left:3px solid var(--accent-blue);transition:all .2s ease;cursor:pointer}.timeline-event:hover{background:var(--surface-hover);transform:translate(2px)}.timeline-event-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--surface-primary);border-radius:var(--radius-md);flex-shrink:0}.timeline-event-content{flex:1;min-width:0}.timeline-event-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-bottom:4px}.timeline-event-name{font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-event-time{font-size:var(--font-size-sm);color:var(--text-secondary);flex-shrink:0}.timeline-event-description{margin:4px 0 0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.4}.timeline-events::-webkit-scrollbar{width:6px}.timeline-events::-webkit-scrollbar-track{background:var(--surface-secondary);border-radius:3px}.timeline-events::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.timeline-events::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}*{box-sizing:border-box}html{font-size:16px;line-height:1.5}body{margin:0;padding:0;font-family:var(--font-family);font-size:var(--font-size-body);font-weight:var(--font-weight-regular);color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .2s ease,color .2s ease}.dark body{background:#0a0a0b}#root{position:relative;z-index:0}h1,h2,h3,h4,h5,h6{margin:0 0 var(--spacing-md) 0;font-weight:var(--font-weight-semibold);line-height:1.2}h1{font-size:var(--font-size-display)}h2{font-size:var(--font-size-title)}h3{font-size:var(--font-size-subtitle)}h4{font-size:var(--font-size-body);font-weight:var(--font-weight-medium)}h5{font-size:var(--font-size-caption);font-weight:var(--font-weight-medium)}h6{font-size:var(--font-size-label);font-weight:var(--font-weight-medium)}p{margin:0 0 var(--spacing-md) 0;line-height:1.6;color:var(--text-primary)}a{color:var(--primary-blue);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-blue-hover)}*:focus{outline:2px solid var(--primary-blue);outline-offset:2px}*:focus:not(:focus-visible){outline:none}*:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--background-primary)}.app-shell__content{display:flex;flex:1;min-height:0;overflow:visible;position:relative}.app-shell__main{flex:1;padding:var(--spacing-lg);overflow-y:auto;min-height:0;min-width:0;transition:width .3s cubic-bezier(.4,0,.2,1)}.dashboard-page{padding:var(--spacing-lg);min-height:100%}.dashboard-page__grid{display:grid;gap:var(--spacing-lg)}.widget-grid--2col{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.widget-grid--3col{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);height:100%;grid-auto-rows:1fr}@media (max-width: 1400px){.widget-grid--3col{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1200px){.widget-grid--2col{grid-template-columns:1fr}}@media (max-width: 900px){.widget-grid--3col{grid-template-columns:1fr}}@media (max-width: 768px){.dashboard-layout{grid-template-columns:1fr}.dashboard-content{padding:var(--spacing-md)}}.map-panel{background:#ffffffe6;backdrop-filter:blur(10px);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:0 2px 8px #0000000f;overflow:hidden;transition:all .3s ease;animation:slideUp .6s ease-out;display:flex;flex-direction:column;height:100%}.map-panel:hover{box-shadow:0 4px 16px #0000001a}.map-toolbar{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color);background:var(--background-secondary);display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.map-panel__body{flex:1;display:flex;align-items:center;justify-content:center;position:relative;min-height:0;overflow:hidden}.map-panel__placeholder{color:#94a3b8;font-size:var(--font-size-caption);text-transform:uppercase;letter-spacing:.1em}.widget-grid{display:grid;gap:var(--spacing-lg)}.widget-grid--large{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.widget-grid--small{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.modern-alerts-page{padding:var(--spacing-lg);max-width:1400px;margin:0 auto}.alerts-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.alerts-content{background:var(--background-primary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden;box-shadow:var(--shadow-sm)}.alert-name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.device-link{color:var(--accent-blue);text-decoration:none;font-weight:var(--font-weight-medium)}.device-link:hover{text-decoration:underline}.extension-number{font-weight:var(--font-weight-semibold);color:var(--text-primary);background:var(--background-secondary);padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--font-size-caption)}.step-summary{display:flex;gap:var(--spacing-xs);align-items:center}.step-indicator{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-caption);color:var(--text-secondary);background:var(--background-secondary);padding:2px 6px;border-radius:var(--radius-sm)}.action-buttons{display:flex;gap:4px;align-items:center}.alert-dashboard-page{padding:var(--spacing-lg);max-width:1400px;margin:0 auto}.alert-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg)}.modern-announcements-page{padding:var(--spacing-lg);max-width:1400px;margin:0 auto}.announcements-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.announcements-content{background:var(--background-primary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden;box-shadow:var(--shadow-sm)}.announcements-table-container{overflow-x:auto}.announcement-name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.modern-zones-page{padding:var(--spacing-lg);max-width:1400px;margin:0 auto}.zones-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.zones-tabs{display:inline-flex;background:var(--background-secondary);padding:4px;border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.tab-button{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);border-radius:var(--radius-sm);transition:all var(--transition-fast);color:var(--text-secondary);text-decoration:none;border:none;background:transparent;cursor:pointer}.tab-button:hover{background:var(--background-primary);color:var(--text-primary)}.tab-button.active{background:var(--background-primary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.zones-content{background:var(--background-primary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden;box-shadow:var(--shadow-sm)}.zones-table-container{overflow-x:auto}.zone-name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.zone-stat{color:var(--text-secondary);font-size:var(--font-size-caption)}.zones-footer{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.zone-stats{display:flex;gap:var(--spacing-lg);align-items:center}.zone-stats .stat-item{display:flex;gap:var(--spacing-xs);align-items:center;font-size:var(--font-size-caption)}.zone-stats .stat-label{color:var(--text-secondary);font-weight:var(--font-weight-medium)}.modern-scheduler-page{padding:var(--spacing-lg);max-width:1400px;margin:0 auto}.scheduler-layout{display:flex;flex-direction:column;height:100%}.scheduler-nav{padding:var(--spacing-lg);padding-bottom:0;max-width:1400px;margin:0 auto;width:100%}.scheduler-content-wrapper{flex:1;overflow-y:auto}.scheduler-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.scheduler-content{background:var(--background-primary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden;box-shadow:var(--shadow-sm)}.scheduler-table-container{overflow-x:auto}.schedule-name{font-weight:var(--font-weight-medium);color:var(--text-primary)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent-blue) 0%,var(--accent-purple) 100%);padding:var(--spacing-lg)}.login-brand{text-align:center;margin-bottom:var(--spacing-xl)}.login-logo{margin-bottom:var(--spacing-md)}.login-title{font-size:var(--font-size-display);font-weight:var(--font-weight-bold);color:#fff;margin:0 0 var(--spacing-xs) 0;text-shadow:0 2px 4px rgba(0,0,0,.1)}.login-subtitle{font-size:var(--font-size-body);color:#ffffffe6;margin:0}.login-card{animation:slideUp .6s ease-out}.login-error{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--accent-red-light);border:1px solid var(--error-red);border-radius:var(--radius-md);color:var(--error-red);font-size:var(--font-size-caption);margin-bottom:var(--spacing-md)}.login-footer{text-align:center;margin-top:var(--spacing-lg);color:#fffc}.admin-dashboard-page{padding:var(--spacing-lg);max-width:1400px;margin:0 auto}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.system-status-overview{text-align:center;padding:var(--spacing-xl)}.status-indicator-large{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.status-indicator-large h2{font-size:var(--font-size-title);margin:0;color:var(--text-primary)}.status-indicator-large p{font-size:var(--font-size-body);color:var(--text-secondary);margin:0}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg)}.service-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.service-card-title{display:flex;align-items:center;gap:var(--spacing-sm)}.service-card-title h4{margin:0;font-size:var(--font-size-subtitle)}.service-card-body{padding:var(--spacing-sm) 0}.service-metric{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) 0}.metric-label{font-size:var(--font-size-caption);color:var(--text-secondary)}.metric-value{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.service-card-footer{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg)}.metrics-list{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.metric-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs);background:var(--background-secondary);border-radius:var(--radius-sm)}.visual-display{position:fixed;inset:0;width:100vw;height:100vh;overflow:hidden;z-index:9999;display:flex;align-items:center;justify-content:center}.visual-display--waiting{background:#1a1a1a;color:#fff}.visual-display--active{animation:fadeIn .5s ease-out}.visual-display--end{background:#fff}.visual-waiting-content,.visual-end-content{text-align:center;padding:var(--spacing-xl)}.visual-waiting-content h2,.visual-end-content h1{margin:0 0 var(--spacing-md) 0}.visual-waiting-content p,.visual-end-content p{margin:0;opacity:.7}.visual-html-content,.visual-text-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);font-size:3vw;text-align:center}.modern-admin-page{padding:var(--spacing-lg);max-width:1400px;margin:0 auto}.admin-page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.admin-content{background:var(--background-primary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden;box-shadow:var(--shadow-sm)}.network-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md);margin-top:var(--spacing-md)}.status-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm);background:var(--background-secondary);border-radius:var(--radius-sm)}.status-label{font-size:var(--font-size-caption);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.modern-devices-page{padding:var(--spacing-lg);max-width:1600px;margin:0 auto}.devices-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.page-title{font-size:var(--font-size-display);font-weight:var(--font-weight-bold);background:linear-gradient(135deg,var(--accent-green),var(--accent-purple));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:0}.page-subtitle{font-size:var(--font-size-body);color:var(--text-secondary);margin:var(--spacing-xs) 0 0 0}.page-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.devices-filters{background:var(--background-secondary);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);border:1px solid var(--border-color)}.devices-content{background:var(--background-primary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden;box-shadow:var(--shadow-sm)}.devices-table-container{overflow-x:auto}@media (max-width: 768px){.app-shell__main,.dashboard-page{padding:var(--spacing-md)}.dashboard-page__grid{gap:var(--spacing-md)}.modern-devices-page{padding:var(--spacing-md)}.devices-header{flex-direction:column;gap:var(--spacing-md)}.page-actions{align-self:stretch}}@media (min-width: 768px){.hidden-mobile{display:table-cell}}@media (min-width: 1200px){.widget-grid--large{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}}.landing-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.landing-main{flex:1;display:grid;place-items:center;padding:var(--spacing-xl)}.landing-card{width:100%;max-width:500px;padding:0}.landing-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl)}.landing-logo{height:28px;margin-bottom:var(--spacing-sm)}.landing-info{display:inline-flex;gap:var(--spacing-sm);margin-top:10px}.info-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border-color);border-radius:var(--radius-full);background:#fff;box-shadow:var(--shadow-sm);font-size:var(--text-xs)}.info-label{color:var(--text-secondary)}.info-value{font-weight:600;color:var(--text-color)}.landing-title{padding:0 var(--spacing-xl);font-size:var(--text-lg);font-weight:600;color:var(--text-color);margin-bottom:var(--spacing-md)}.landing-content{padding:var(--spacing-xl)}.landing-login-btn{display:inline-flex;width:100%;align-items:center;justify-content:center;border-radius:var(--radius-lg);background:var(--color-primary);color:#fff;font-weight:600;padding:10px 12px;transition:all var(--transition-fast);text-decoration:none}.landing-login-btn:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-md)}.landing-footer{padding:var(--spacing-lg) var(--spacing-xl);text-align:center;color:var(--text-secondary);font-size:var(--text-sm);border-top:1px solid var(--border-color)}.landing-link{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px;margin:0 4px}.landing-link:hover{color:var(--color-primary-dark)}.license-page{min-height:100vh;background:var(--bg-secondary);padding:var(--spacing-xl)}.license-container{max-width:800px;margin:0 auto}.license-header{margin-bottom:var(--spacing-lg)}.license-title{font-size:var(--text-2xl);font-weight:600;color:var(--text-color);margin-bottom:var(--spacing-xs)}.license-subtitle{margin-top:var(--spacing-xs);font-size:var(--text-sm);color:var(--text-secondary)}.license-content{padding:var(--spacing-xl)}.license-list{list-style:decimal;padding-left:var(--spacing-lg);color:var(--text-color)}.license-list li{margin-bottom:var(--spacing-lg);line-height:1.6}.license-term{font-weight:500;display:block;margin-bottom:var(--spacing-xs)}.license-acknowledgment{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);font-size:var(--text-sm);color:var(--text-secondary)}.license-footer{margin-top:var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.license-back-link,.license-login-link{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;text-decoration:none;transition:all var(--transition-fast)}.license-back-link{color:var(--text-secondary);background:var(--bg-color);border:1px solid var(--border-color)}.license-back-link:hover{background:var(--bg-hover);border-color:var(--color-primary)}.license-login-link{color:#fff;background:var(--color-primary)}.license-login-link:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-md)}.scheduler-calendar-wrapper{width:100%}.fc{font-family:var(--font-family)}.fc .fc-button-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.fc .fc-button-primary:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.fc .fc-button-primary:disabled{opacity:.5;cursor:not-allowed}.fc-event{border-radius:var(--radius-sm);padding:2px 4px}.fc-event-title{font-size:var(--text-sm);font-weight:500}.calendar-card{padding:var(--spacing-lg)}.date-info-card{padding:var(--spacing-md)}.date-info-card h3{margin:0 0 var(--spacing-sm) 0;font-size:var(--text-base);font-weight:600;color:var(--text-color)}.date-info-card p{margin:0;color:var(--text-secondary)}.visual-display{position:fixed;top:0;left:0;width:100vw;height:100vh;overflow:hidden;z-index:9999}.visual-display--waiting{background:#1a1a1a;display:flex;align-items:center;justify-content:center;color:#fff}.visual-waiting-content{text-align:center;max-width:600px;padding:var(--spacing-xl)}.visual-waiting-content h2{font-size:var(--text-3xl);font-weight:600;margin-bottom:var(--spacing-md);color:#fff}.visual-waiting-content p{font-size:var(--text-lg);color:#ffffffb3;margin-bottom:var(--spacing-xl)}.status-indicator{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:#ffffff1a;border-radius:var(--radius-full);font-size:var(--text-sm)}.status-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s infinite}.status-dot--ready{background:var(--color-success)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.visual-display--active{font-size:3vw}.visual-template{width:100%;height:100%;display:flex;flex-direction:column}.template-row{display:flex;width:100%}.template-row-25{height:25%}.template-row-50{height:50%}.template-row-75{height:75%}.template-row-100{height:100%}.template-col{display:flex;align-items:center;justify-content:center;padding:var(--spacing-md)}.template-col-1{width:8.33%}.template-col-6{width:50%}.template-col-10{width:83.33%}.template-col-12{width:100%}.visual-section{overflow:hidden}.visual-html-content,.visual-simple-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl)}.visual-image-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.visual-image-content img{max-width:100%;max-height:100%;object-fit:contain}.visual-video-content{width:100%;height:100%}.visual-video-content video{width:100%;height:100%;object-fit:cover}.visual-text-content,.visual-simple-text{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:4vw;font-weight:700;color:#fff;padding:var(--spacing-xl)}.visual-display .text-left{text-align:left}.visual-display .text-center{text-align:center}.visual-display .text-right{text-align:right}.dark .card,.dark .apple-card{background:#18181b;border-color:#27272a}.dark .apple-card-header,.dark .apple-card-footer{background:#27272a;border-color:#3f3f46}.dark .apple-input,.dark input:not([type=checkbox]):not([type=radio]),.dark select,.dark textarea{background:#27272a;border-color:#3f3f46;color:#fff}.dark .apple-input::placeholder,.dark input::placeholder,.dark textarea::placeholder{color:#71717a}.dark .apple-input:focus,.dark input:focus,.dark select:focus,.dark textarea:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa1a}.dark input:disabled,.dark select:disabled,.dark textarea:disabled{background:#18181b;color:#52525b;cursor:not-allowed}.form-label{display:block;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-xs);text-transform:uppercase;letter-spacing:.5px}.form-label-required:after{content:" *";color:var(--error-red)}.form-help-text{font-size:var(--font-size-caption);color:var(--text-secondary);margin-top:var(--spacing-xs);line-height:1.4}input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=url],input[type=search],input[type=date],input[type=time],input[type=datetime-local],select,textarea{width:100%;padding:12px 16px;font-size:var(--font-size-body);font-family:var(--font-family);color:var(--text-primary);background:#fff;border:1.5px solid var(--border-color);border-radius:var(--radius-md);transition:all .2s ease;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px #3b82f61a}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236B7280' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:40px;cursor:pointer}.dark select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23A1A1AA' d='M6 9L1 4h10z'/%3E%3C/svg%3E")}textarea{min-height:120px;resize:vertical;line-height:1.5}.input-with-icon{position:relative}.input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.input-with-icon input{padding-left:44px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xxl) var(--spacing-lg);text-align:center;min-height:400px}.empty-state-icon{width:80px;height:80px;border-radius:50%;background:var(--background-secondary);display:flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-lg)}.dark .empty-state-icon{background:#27272a}.empty-state-icon i{font-size:36px;color:var(--text-tertiary)}.empty-state-title{font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.empty-state-description{font-size:var(--font-size-body);color:var(--text-secondary);margin:0 0 var(--spacing-lg) 0;max-width:400px;line-height:1.6}.empty-state-action{margin-top:var(--spacing-sm)}.modern-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.modern-list-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all .2s ease;cursor:pointer}.dark .modern-list-item{background:#18181b;border-color:#27272a}.modern-list-item:hover{background:var(--background-secondary);border-color:var(--border-color-secondary);transform:translate(2px)}.dark .modern-list-item:hover{background:#27272a;border-color:#3f3f46}.modern-list-item-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:var(--background-secondary);flex-shrink:0}.dark .modern-list-item-icon{background:#27272a}.modern-list-item-content{flex:1;min-width:0}.modern-list-item-title{font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:2px}.modern-list-item-subtitle{font-size:var(--font-size-caption);color:var(--text-secondary)}.visual-end-page{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;z-index:9999}.visual-end-content{text-align:center;max-width:600px;padding:var(--spacing-xl)}.end-icon{font-size:96px;margin-bottom:var(--spacing-xl);animation:scaleIn .5s ease-out}.end-title{font-size:var(--text-4xl);font-weight:700;margin-bottom:var(--spacing-md);color:#fff}.end-message{font-size:var(--text-xl);opacity:.9;margin-bottom:var(--spacing-xl)}.end-progress{margin-top:var(--spacing-xl)}.progress-bar{width:100%;height:4px;background:#ffffff4d;border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--spacing-sm)}.progress-fill{width:100%;height:100%;background:#fff;animation:progressFill 5s linear;transform-origin:left}.progress-text{font-size:var(--text-sm);opacity:.7;margin:0}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes progressFill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.softphone-card{width:100%;max-width:400px;padding:var(--spacing-xl)}.softphone-status{text-align:center;margin-bottom:var(--spacing-lg)}.softphone-display{background:var(--bg-secondary);padding:var(--spacing-lg);border-radius:var(--radius-lg);text-align:center;margin-bottom:var(--spacing-lg);min-height:80px;display:flex;align-items:center;justify-content:center}.dial-display{font-size:var(--text-2xl);font-weight:600;color:var(--text-color);font-family:Monaco,Menlo,monospace}.call-info{text-align:center}.calling-number{font-size:var(--text-xl);font-weight:600;color:var(--text-color);margin-bottom:var(--spacing-xs)}.call-duration{font-size:var(--text-lg);color:var(--text-secondary);font-family:Monaco,Menlo,monospace}.dialpad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.dial-button{aspect-ratio:1;font-size:var(--text-xl);font-weight:600;border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-color);color:var(--text-color);cursor:pointer;transition:all var(--transition-fast)}.dial-button:hover{background:var(--bg-hover);border-color:var(--color-primary)}.dial-button:active{transform:scale(.95)}.softphone-controls{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.call-button,.hangup-button{flex:1;padding:var(--spacing-lg);font-size:var(--text-lg)}.quick-dial{border-top:1px solid var(--border-color);padding-top:var(--spacing-lg)}.quick-dial h4{margin:0 0 var(--spacing-md) 0;font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase}.quick-dial-list{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.quick-dial-button{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-color);color:var(--text-color);font-family:Monaco,Menlo,monospace;cursor:pointer;transition:all var(--transition-fast)}.quick-dial-button:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}:root{--apple-font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Arial, sans-serif;--apple-font-mono: "SF Mono", Monaco, "Cascadia Code", "Courier New", monospace;--apple-space-1: 4px;--apple-space-2: 8px;--apple-space-3: 12px;--apple-space-4: 16px;--apple-space-5: 20px;--apple-space-6: 24px;--apple-space-8: 32px;--apple-space-10: 40px;--apple-space-12: 48px;--apple-space-16: 64px;--apple-blue: #007AFF;--apple-blue-hover: #0051D5;--apple-green: #34C759;--apple-orange: #FF9500;--apple-red: #FF3B30;--apple-purple: #AF52DE;--apple-pink: #FF2D55;--apple-gray: #8E8E93;--apple-gray-1: #FFFFFF;--apple-gray-2: #F2F2F7;--apple-gray-3: #E5E5EA;--apple-gray-4: #D1D1D6;--apple-gray-5: #C7C7CC;--apple-gray-6: #AEAEB2;--apple-gray-7: #8E8E93;--apple-gray-8: #636366;--apple-gray-9: #48484A;--apple-gray-10: #3A3A3C;--apple-gray-11: #2C2C2E;--apple-gray-12: #1C1C1E;--apple-shadow-sm: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--apple-shadow-md: 0 4px 6px rgba(0, 0, 0, .07), 0 2px 4px rgba(0, 0, 0, .05);--apple-shadow-lg: 0 10px 15px rgba(0, 0, 0, .1), 0 4px 6px rgba(0, 0, 0, .05);--apple-shadow-xl: 0 20px 25px rgba(0, 0, 0, .1), 0 10px 10px rgba(0, 0, 0, .04);--apple-blur-light: blur(20px);--apple-blur-medium: blur(40px);--apple-blur-strong: blur(60px);--apple-radius-xs: 4px;--apple-radius-sm: 6px;--apple-radius-md: 10px;--apple-radius-lg: 14px;--apple-radius-xl: 18px;--apple-radius-2xl: 24px;--apple-radius-full: 9999px;--apple-transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--apple-transition-base: .25s cubic-bezier(.4, 0, .2, 1);--apple-transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--apple-transition-spring: .4s cubic-bezier(.175, .885, .32, 1.275)}.apple-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--apple-space-2);padding:var(--apple-space-2) var(--apple-space-4);border:none;border-radius:var(--apple-radius-md);font-family:var(--apple-font-family);font-size:15px;font-weight:500;line-height:1.4;text-decoration:none;cursor:pointer;transition:all var(--apple-transition-base);user-select:none;-webkit-font-smoothing:antialiased}.apple-btn:focus-visible{outline:3px solid rgba(0,122,255,.3);outline-offset:2px}.apple-btn-primary{background:var(--apple-blue);color:#fff}.apple-btn-primary:hover{background:var(--apple-blue-hover);transform:translateY(-1px);box-shadow:var(--apple-shadow-md)}.apple-btn-primary:active{transform:scale(.98)}.apple-btn-secondary{background:var(--apple-gray-2);color:var(--apple-gray-12)}.apple-btn-secondary:hover{background:var(--apple-gray-3)}.apple-btn-tertiary{background:transparent;color:var(--apple-blue)}.apple-btn-tertiary:hover{background:var(--apple-gray-2)}.apple-btn-destructive{background:var(--apple-red);color:#fff}.apple-btn-destructive:hover{background:#e8190b;transform:translateY(-1px);box-shadow:var(--apple-shadow-md)}.apple-btn-sm{padding:6px 12px;font-size:13px;border-radius:var(--apple-radius-sm)}.apple-btn-md{padding:8px 16px;font-size:15px}.apple-btn-lg{padding:12px 24px;font-size:17px;border-radius:var(--apple-radius-lg)}.apple-card{background:var(--apple-gray-1);border-radius:var(--apple-radius-xl);border:1px solid var(--apple-gray-3);box-shadow:var(--apple-shadow-sm);overflow:hidden;transition:all var(--apple-transition-base)}.apple-card:hover{box-shadow:var(--apple-shadow-md);transform:translateY(-2px)}.apple-card-header{padding:var(--apple-space-6);border-bottom:1px solid var(--apple-gray-3);background:var(--apple-gray-2)}.apple-card-title{margin:0;font-size:20px;font-weight:600;color:var(--apple-gray-12);letter-spacing:-.5px}.apple-card-subtitle{margin:var(--apple-space-1) 0 0 0;font-size:14px;color:var(--apple-gray-7);line-height:1.5}.apple-card-body{padding:var(--apple-space-6)}.apple-card-footer{padding:var(--apple-space-6);border-top:1px solid var(--apple-gray-3);background:var(--apple-gray-2)}.apple-card-glass{background:#ffffffb3;backdrop-filter:var(--apple-blur-light);-webkit-backdrop-filter:var(--apple-blur-light);border:1px solid rgba(255,255,255,.8);box-shadow:var(--apple-shadow-lg)}.apple-input{width:100%;padding:10px 14px;border:1px solid var(--apple-gray-4);border-radius:var(--apple-radius-md);font-family:var(--apple-font-family);font-size:15px;color:var(--apple-gray-12);background:var(--apple-gray-1);transition:all var(--apple-transition-fast);-webkit-font-smoothing:antialiased}.apple-input::placeholder{color:var(--apple-gray-6)}.apple-input:focus{outline:none;border-color:var(--apple-blue);box-shadow:0 0 0 4px #007aff1a}.apple-input:disabled{background:var(--apple-gray-2);color:var(--apple-gray-6);cursor:not-allowed}.apple-input-group{position:relative}.apple-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--apple-gray-6);pointer-events:none}.apple-input-group .apple-input{padding-left:40px}.apple-page{min-height:100vh;background:var(--apple-gray-2);font-family:var(--apple-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.apple-page-header{background:var(--apple-gray-1);border-bottom:1px solid var(--apple-gray-3);padding:var(--apple-space-6) var(--apple-space-8);margin-bottom:var(--apple-space-6)}.apple-page-title{margin:0;font-size:32px;font-weight:700;color:var(--apple-gray-12);letter-spacing:-1px}.apple-page-subtitle{margin:var(--apple-space-2) 0 0 0;font-size:15px;color:var(--apple-gray-7);line-height:1.5}.apple-page-content{max-width:1200px;margin:0 auto;padding:0 var(--apple-space-8) var(--apple-space-8)}.apple-list{background:var(--apple-gray-1);border-radius:var(--apple-radius-xl);border:1px solid var(--apple-gray-3);overflow:hidden}.apple-list-item{padding:var(--apple-space-4) var(--apple-space-5);border-bottom:1px solid var(--apple-gray-3);transition:background var(--apple-transition-fast);cursor:pointer}.apple-list-item:last-child{border-bottom:none}.apple-list-item:hover{background:var(--apple-gray-2)}.apple-list-item:active{background:var(--apple-gray-3)}@keyframes apple-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes apple-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes apple-slide-in{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}.apple-animate-in{animation:apple-fade-in var(--apple-transition-base) ease-out}.apple-animate-scale{animation:apple-scale-in var(--apple-transition-base) ease-out}.apple-animate-slide{animation:apple-slide-in var(--apple-transition-base) ease-out}.apple-table{width:100%;background:var(--apple-gray-1);border-radius:var(--apple-radius-xl);overflow:hidden;border:1px solid var(--apple-gray-3)}.apple-table thead{background:var(--apple-gray-2);border-bottom:1px solid var(--apple-gray-3)}.apple-table th{padding:var(--apple-space-3) var(--apple-space-4);text-align:left;font-size:13px;font-weight:600;color:var(--apple-gray-7);text-transform:uppercase;letter-spacing:.5px}.apple-table td{padding:var(--apple-space-4);border-top:1px solid var(--apple-gray-3);font-size:15px;color:var(--apple-gray-12)}.apple-table tr:hover{background:var(--apple-gray-2)}.apple-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--apple-radius-full);font-size:12px;font-weight:600;letter-spacing:.3px}.apple-badge-blue{background:#007aff1a;color:var(--apple-blue)}.apple-badge-green{background:#34c7591a;color:var(--apple-green)}.apple-badge-red{background:#ff3b301a;color:var(--apple-red)}.apple-badge-gray{background:var(--apple-gray-3);color:var(--apple-gray-8)}.apple-text-primary{color:var(--apple-gray-12)}.apple-text-secondary{color:var(--apple-gray-7)}.apple-text-tertiary{color:var(--apple-gray-6)}.apple-text-link{color:var(--apple-blue);text-decoration:none;transition:color var(--apple-transition-fast)}.apple-text-link:hover{color:var(--apple-blue-hover);text-decoration:underline}.apple-divider{height:1px;background:var(--apple-gray-3);border:none;margin:var(--apple-space-6) 0}.apple-loading-spinner{width:20px;height:20px;border:2px solid var(--apple-gray-4);border-top-color:var(--apple-blue);border-radius:50%;animation:spin .8s linear infinite}.dark{--apple-gray-1: #0A0A0B;--apple-gray-2: #18181B;--apple-gray-3: #27272A;--apple-gray-4: #3F3F46;--apple-gray-5: #52525B;--apple-gray-6: #71717A;--apple-gray-7: #A1A1AA;--apple-gray-8: #D4D4D8;--apple-gray-9: #E4E4E7;--apple-gray-10: #F4F4F5;--apple-gray-11: #FAFAFA;--apple-gray-12: #FFFFFF;--apple-blue: #60A5FA;--apple-blue-hover: #3B82F6;--apple-green: #4ADE80;--apple-orange: #FBBF24;--apple-red: #F87171;--apple-purple: #C084FC;--apple-pink: #F472B6;--apple-gray: #A1A1AA;--apple-shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .6);--apple-shadow-md: 0 4px 6px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .4);--apple-shadow-lg: 0 10px 15px rgba(0, 0, 0, .6), 0 4px 6px rgba(0, 0, 0, .4);--apple-shadow-xl: 0 20px 25px rgba(0, 0, 0, .7), 0 10px 10px rgba(0, 0, 0, .5)}.modern-admin-page,.modern-zones-page,.modern-devices-page,.modern-scheduler-page{min-height:calc(100vh - 64px);background:var(--apple-gray-2);font-family:var(--apple-font-family);padding:var(--apple-space-8);animation:apple-fade-in .3s ease-out}.dark .modern-admin-page,.dark .modern-zones-page,.dark .modern-devices-page,.dark .modern-scheduler-page{background:#0a0a0b}.page-header,.admin-page-header,.zones-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--apple-space-8);padding-bottom:var(--apple-space-6);border-bottom:1px solid var(--apple-gray-3)}.page-title-section{flex:1}.page-title{margin:0;font-size:36px;font-weight:700;color:var(--apple-gray-12);letter-spacing:-1.2px;line-height:1.2;font-family:var(--apple-font-family)}.page-subtitle{margin:var(--apple-space-2) 0 0 0;font-size:17px;color:var(--apple-gray-7);line-height:1.4;font-weight:400}.page-actions{display:flex;gap:var(--apple-space-3);align-items:center}.devices-filters,.devices-table-card,.zones-content,.admin-content{background:var(--apple-gray-1);border-radius:var(--apple-radius-xl);border:1px solid var(--apple-gray-3);box-shadow:var(--apple-shadow-sm);overflow:hidden;margin-bottom:var(--apple-space-6)}.devices-filters{padding:var(--apple-space-5);background:var(--apple-gray-1)}.filters-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--apple-space-4)}@media (max-width: 768px){.filters-row{grid-template-columns:1fr}}.filter-group{display:flex;flex-direction:column}.filter-select{padding:10px 14px;border:1px solid var(--apple-gray-4);border-radius:var(--apple-radius-md);font-family:var(--apple-font-family);font-size:15px;color:var(--apple-gray-12);background:var(--apple-gray-1);cursor:pointer;transition:all var(--apple-transition-fast)}.dark .filter-select{background:#27272a;border-color:#3f3f46;color:#fff}.filter-select:focus{outline:none;border-color:var(--apple-blue);box-shadow:0 0 0 4px #007aff1a}.dark .filter-select:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa26}.filter-select option{background:var(--background-primary);color:var(--text-primary)}.dark .filter-select option{background:#27272a;color:#fff}.modern-table{width:100%;border-collapse:separate;border-spacing:0}.modern-table thead{background:var(--apple-gray-2)}.modern-table th{padding:var(--apple-space-3) var(--apple-space-5);text-align:center;font-size:13px;font-weight:600;color:var(--apple-gray-7);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--apple-gray-3)}.modern-table th:first-child{text-align:left}.modern-table td{padding:var(--apple-space-4) var(--apple-space-5);text-align:center;font-size:15px;color:var(--apple-gray-12);border-bottom:1px solid var(--apple-gray-3);transition:background var(--apple-transition-fast)}.modern-table td:first-child{text-align:left;font-weight:500}.modern-table tbody tr:last-child td{border-bottom:none}.modern-table tbody tr:hover{background:var(--apple-gray-2)}.zones-tabs{display:flex;gap:var(--apple-space-2);margin-bottom:var(--apple-space-6);padding:4px;background:var(--apple-gray-2);border-radius:var(--apple-radius-lg);width:fit-content}.tab-button{padding:var(--apple-space-2) var(--apple-space-5);border:none;background:transparent;color:var(--apple-gray-8);font-family:var(--apple-font-family);font-size:15px;font-weight:500;border-radius:var(--apple-radius-md);cursor:pointer;transition:all var(--apple-transition-fast)}.tab-button:hover{background:var(--apple-gray-3);color:var(--apple-gray-12)}.tab-button.active{background:var(--apple-gray-1);color:var(--apple-gray-12);box-shadow:var(--apple-shadow-sm)}.action-buttons{display:flex;gap:var(--apple-space-2);justify-content:center;align-items:center}.device-stats-footer,.zones-footer{margin-top:var(--apple-space-6)}.stats-card{background:var(--apple-gray-1);border-radius:var(--apple-radius-xl);border:1px solid var(--apple-gray-3);padding:var(--apple-space-6)}.stats-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--apple-space-6)}.stat{display:flex;flex-direction:column;align-items:center;gap:var(--apple-space-2)}.stat-number{font-size:42px;font-weight:700;color:var(--apple-blue);line-height:1;letter-spacing:-1px}.stat-label{font-size:13px;color:var(--apple-gray-7);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.zone-stats{display:flex;gap:var(--apple-space-6);padding:var(--apple-space-5);background:var(--apple-gray-1);border-radius:var(--apple-radius-xl);border:1px solid var(--apple-gray-3);align-items:center}.stat-item{display:flex;align-items:center;gap:var(--apple-space-2)}.stat-item .stat-label{font-size:15px;color:var(--apple-gray-8);text-transform:none;letter-spacing:0}.empty-state{text-align:center;padding:var(--apple-space-12) var(--apple-space-6)}.empty-state i{font-size:64px;color:var(--apple-gray-5);margin-bottom:var(--apple-space-4);display:block}.empty-state h3{margin:0 0 var(--apple-space-2) 0;font-size:22px;font-weight:600;color:var(--apple-gray-12);letter-spacing:-.5px}.empty-state p{margin:0;font-size:15px;color:var(--apple-gray-7);line-height:1.5}.modern-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--apple-space-2);padding:var(--apple-space-2) var(--apple-space-4);border:none;border-radius:var(--apple-radius-md);font-family:var(--apple-font-family);font-size:15px;font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--apple-transition-base);-webkit-font-smoothing:antialiased}.modern-btn--primary{background:var(--apple-blue);color:#fff}.modern-btn--primary:hover{background:var(--apple-blue-hover);transform:translateY(-1px);box-shadow:0 4px 12px #007aff4d}.modern-btn--secondary{background:var(--apple-gray-2);color:var(--apple-gray-12);border:1px solid var(--apple-gray-4)}.modern-btn--secondary:hover{background:var(--apple-gray-3);border-color:var(--apple-gray-5)}.modern-btn--destructive{background:var(--apple-red);color:#fff}.modern-btn--destructive:hover{background:#e8190b;transform:translateY(-1px);box-shadow:0 4px 12px #ff3b304d}.modern-btn--xs{padding:6px 10px;font-size:13px;border-radius:var(--apple-radius-sm)}.modern-btn--sm{padding:8px 14px;font-size:14px;border-radius:var(--apple-radius-sm)}.modern-btn--lg{padding:14px 28px;font-size:17px;border-radius:var(--apple-radius-lg);font-weight:600}.modern-btn:active{transform:scale(.98)}.modern-btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}code{font-family:var(--apple-font-mono);font-size:14px;padding:2px 6px;background:var(--apple-gray-2);border-radius:4px;color:var(--apple-pink)}.zone-name{font-weight:500;color:var(--apple-gray-12)}.zone-stat{font-size:14px;color:var(--apple-gray-7)}@media (max-width: 768px){.hidden-mobile{display:none!important}.page-header,.admin-page-header,.zones-header{flex-direction:column;gap:var(--apple-space-4)}.page-title{font-size:28px}.page-subtitle{font-size:15px}.stats-content{grid-template-columns:repeat(2,1fr)}}.loading-spinner{width:24px;height:24px;border:3px solid var(--apple-gray-3);border-top-color:var(--apple-blue);border-radius:50%;animation:spin .8s linear infinite}.devices-table-wrapper,.zones-table-container{overflow-x:auto}.scheduler-header{margin-bottom:var(--apple-space-6);padding-bottom:var(--apple-space-4)}.scheduler-nav{background:transparent;border-bottom:1px solid var(--apple-gray-3);margin-bottom:var(--apple-space-6)}.dark .scheduler-nav{border-bottom-color:#27272a}.scheduler-content{background:var(--apple-gray-1);border-radius:var(--apple-radius-xl);overflow:hidden;box-shadow:var(--apple-shadow-sm)}.dark .scheduler-content{background:#18181b;border:1px solid #27272A}.dark .modern-table{color:#fff}.dark .modern-table thead{background:#27272a;border-bottom-color:#3f3f46}.dark .modern-table th{color:#a1a1aa}.dark .modern-table td{color:#fff;border-bottom-color:#27272a}.dark .modern-table tbody tr:hover{background:#27272a}.scheduler-calendar-grid{border-radius:var(--apple-radius-lg);overflow:hidden;border:1px solid var(--border-color)}.dark .scheduler-calendar-grid{border-color:#3f3f46}.calendar-day-header{padding:16px 12px;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.5px;background:var(--background-secondary);color:var(--text-secondary)}.dark .calendar-day-header{background:#27272a;color:#d4d4d8}.calendar-day-cell{min-height:100px;padding:12px;border:1px solid var(--border-color);background:var(--background-primary);transition:all .15s ease;cursor:pointer}.dark .calendar-day-cell{background:#18181b;border-color:#3f3f46}.calendar-day-cell:hover{background:var(--background-secondary);border-color:var(--accent-blue)}.dark .calendar-day-cell:hover{background:#27272a;border-color:#60a5fa}.calendar-day-number{font-weight:600;font-size:15px;margin-bottom:8px;color:var(--text-primary)}.dark .calendar-day-number{color:#fff}.calendar-nav-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--border-color);background:var(--background-primary);color:var(--text-primary);cursor:pointer;transition:all .15s ease}.calendar-nav-button:hover{background:var(--background-secondary);border-color:var(--accent-blue);transform:scale(1.05)}.dark .calendar-nav-button{background:#27272a;border-color:#3f3f46;color:#fff}.dark .calendar-nav-button:hover{background:#3f3f46;border-color:#60a5fa}.calendar-day-cell.today{border-color:var(--accent-blue);background:var(--accent-blue-light)}.dark .calendar-day-cell.today{border-color:#60a5fa;background:#60a5fa26}.calendar-day-cell.selected{background:var(--accent-blue);color:#fff}.calendar-day-cell.selected .calendar-day-number{color:#fff}.dark .calendar-day-cell.selected{background:#3b82f6}.dark .devices-filters,.dark .devices-table-card,.dark .zones-content,.dark .admin-content{background:#18181b;border-color:#3f3f46;box-shadow:0 2px 8px #0000004d,0 4px 12px #0006}.dark .page-title{color:#fff}.dark .page-subtitle{color:#a1a1aa}.dark .modern-btn--secondary,.dark .apple-btn-secondary{background:#27272a;color:#fff;border-color:#3f3f46}.dark .modern-btn--secondary:hover,.dark .apple-btn-secondary:hover{background:#3f3f46}.dark .apple-badge-gray,.dark .badge-secondary{background:#27272a;color:#a1a1aa}.dark .apple-badge-blue{background:#60a5fa26;color:#60a5fa}.dark .apple-badge-green{background:#4ade8026;color:#4ade80}.dark .apple-badge-red{background:#f8717126;color:#f87171}.form-page{max-width:800px;margin:0 auto}.form-section{background:#fff;border-radius:var(--apple-radius-xl);border:1px solid var(--apple-gray-3);padding:var(--apple-space-6);margin-bottom:var(--apple-space-6);box-shadow:var(--apple-shadow-sm)}.dark .form-section{background:#18181b;border-color:#27272a}.form-section-title{font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--apple-space-2) 0}.form-section-subtitle{font-size:var(--font-size-caption);color:var(--text-secondary);margin:0 0 var(--apple-space-6) 0}.form-actions{display:flex;gap:var(--apple-space-3);justify-content:flex-end;padding-top:var(--apple-space-4);border-top:1px solid var(--apple-gray-3);margin-top:var(--apple-space-6)}.dark .form-actions{border-top-color:#27272a}.color-preview{width:120px;height:48px;border-radius:var(--radius-md);border:2px solid var(--border-color);transition:all .2s ease}.dark .color-preview{border-color:#3f3f46}.form-info-callout{display:flex;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--info-blue-light);border-left:3px solid var(--info-blue);border-radius:var(--radius-md);margin-top:var(--spacing-md)}.dark .form-info-callout{background:#60a5fa1a;border-left-color:#60a5fa}.form-info-callout-icon{flex-shrink:0;color:var(--info-blue)}.dark .form-info-callout-icon{color:#60a5fa}.form-info-callout-text{font-size:var(--font-size-caption);color:var(--text-primary);margin:0;line-height:1.5}.info-card{background:#fff;border-radius:var(--apple-radius-xl);border:1px solid var(--apple-gray-3);padding:var(--apple-space-5);box-shadow:var(--apple-shadow-sm);transition:all .2s ease}.dark .info-card{background:#18181b;border-color:#27272a}.info-card:hover{box-shadow:var(--apple-shadow-md);transform:translateY(-2px)}.info-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--apple-space-4)}.info-card-title{font-size:var(--font-size-subtitle);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.info-card-badge{padding:4px 12px;border-radius:var(--apple-radius-full);font-size:var(--font-size-label);font-weight:var(--font-weight-medium)}.info-card-badge.active{background:var(--success-green-light);color:var(--success-green)}.dark .info-card-badge.active{background:#4ade8026;color:#4ade80}.info-card-content{display:flex;flex-direction:column;gap:var(--apple-space-2)}.info-card-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-caption)}.info-card-label{color:var(--text-secondary);font-weight:var(--font-weight-medium)}.info-card-value{color:var(--text-primary);font-weight:var(--font-weight-semibold)}.info-card-actions{display:flex;gap:var(--apple-space-2);margin-top:var(--apple-space-4);padding-top:var(--apple-space-4);border-top:1px solid var(--apple-gray-3)}.dark .info-card-actions{border-top-color:#27272a}.map-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--apple-space-6);margin-top:var(--apple-space-6)}.map-card{background:#fff;border-radius:var(--apple-radius-xl);border:1px solid var(--apple-gray-3);padding:var(--apple-space-5);box-shadow:var(--apple-shadow-sm);transition:all .2s ease}.dark .map-card{background:#18181b;border-color:#27272a}.map-card:hover{box-shadow:var(--apple-shadow-md);transform:translateY(-2px)}.page-tabs{display:inline-flex;background:var(--background-secondary);padding:4px;border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);border:1px solid var(--border-color)}.dark .page-tabs{background:#27272a;border-color:#3f3f46}.page-tab{padding:10px 20px;font-size:var(--font-size-body);font-weight:var(--font-weight-medium);color:var(--text-secondary);border-radius:var(--radius-md);border:none;background:transparent;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-block}.page-tab:hover{color:var(--text-primary);background:#0000000a}.dark .page-tab:hover{background:#3f3f46;color:#fff}.page-tab.active{color:var(--text-primary);background:#fff;box-shadow:var(--shadow-sm)}.dark .page-tab.active{background:#18181b;color:#fff}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*:focus-visible{outline:3px solid rgba(0,122,255,.3);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(0,122,255,.3);outline-offset:2px}.dashboard-widget-card,.apple-card,.widget-shell,.modern-card{box-shadow:0 1px 3px #0000000a,0 1px 2px #0000000f,0 0 0 1px #00000005}.dashboard-widget-card:hover,.apple-card:hover{box-shadow:0 4px 6px #00000012,0 2px 4px #0000000d,0 0 0 1px #00000005;transform:translateY(-1px)}button,.btn,.modern-btn,.apple-btn{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.transition-all,button,a,input,select,textarea,.card,.widget-card{transition:all .25s cubic-bezier(.4,0,.2,1)}.dashboard-widget-card,.apple-card,.modern-card,.login-card,.settings-tile{border:.5px solid rgba(0,0,0,.06)}.dashboard-layout,.apple-page{background:linear-gradient(135deg,#f5f7fa,#eef2f7)}.layer-controls,.map-zoom-controls{background:#ffffffd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:.5px solid rgba(0,0,0,.06)}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;font-weight:600}.page-title,.apple-page-title{font-weight:700;letter-spacing:-.035em}.cp-nav-item:hover,.apple-list-item:hover,.modern-table tbody tr:hover{background:#00000005}input,select,textarea{border:1px solid rgba(0,0,0,.1);transition:all .2s cubic-bezier(.4,0,.2,1)}input:focus,select:focus,textarea:focus{border-color:#007aff;box-shadow:0 0 0 4px #007aff1a}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0003;border-radius:4px;transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:#0000004d}.dark ::-webkit-scrollbar-thumb{background:#fff3}.dark ::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.badge,.apple-badge{font-weight:600;letter-spacing:.3px;padding:4px 10px;border-radius:12px}hr,.divider,.apple-divider{border:none;height:.5px;background:#0000000f}.empty-state,.widget-card-empty{opacity:.8}.empty-state i,.widget-card-empty i{opacity:.3}@keyframes apple-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner,.apple-loading-spinner{animation:apple-spin .8s cubic-bezier(.4,0,.2,1) infinite}.modern-table td code{background:#0000000a;padding:3px 8px;border-radius:6px;font-size:13px;font-family:SF Mono,Monaco,Cascadia Code,Courier New,monospace;color:#af52de;font-weight:500}.section-title,.settings-category-header{font-weight:700;letter-spacing:.5px;font-size:13px}.widget-card-header,.apple-card-header,.card-header{background:#00000005}.active,.cp-nav-li.active{background:#007aff14}.dashboard-map-section:hover,.dashboard-widget-card:hover{box-shadow:0 8px 16px #00000014,0 4px 8px #0000000f,0 0 0 1px #00000005}.dot{width:8px;height:8px;box-shadow:0 0 0 2px #fffc}.dashboard-widget-card,.apple-card,.settings-tile,.cp-nav-item{will-change:transform}.form-input,.modern-input,.apple-input{font-size:15px;font-weight:400}.form-label,label{font-size:13px;font-weight:600;letter-spacing:.3px;color:#0009}.modern-btn:active,.apple-btn:active{transform:scale(.98);transition-duration:.1s}::selection{background:#007aff33;color:inherit}.dashboard-section+.dashboard-section{margin-top:var(--apple-space-10)}[title]{position:relative}.apple-animate-in,.dashboard-widget-card,.section-grid>*{animation:apple-fade-in .4s cubic-bezier(.4,0,.2,1)}.section-grid>*:nth-child(1){animation-delay:.05s}.section-grid>*:nth-child(2){animation-delay:.1s}.section-grid>*:nth-child(3){animation-delay:.15s}.section-grid>*:nth-child(4){animation-delay:.2s}.section-grid>*:nth-child(5){animation-delay:.25s}.section-grid>*:nth-child(6){animation-delay:.3s}button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.4;cursor:not-allowed}a:hover,.apple-text-link:hover{opacity:.8}.dashboard-content--scrollable{overflow-y:auto;overflow-x:hidden}.dashboard-map-section{display:flex;flex-direction:column;height:85vh;min-height:700px;max-height:1000px;margin-bottom:var(--spacing-xl);overflow:hidden;position:relative}.pa-command-center-header{padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,#007aff,#5856d6);color:#fff;border-radius:18px 18px 0 0;box-shadow:0 2px 8px #007aff26}.pa-command-center-title{margin:0;font-size:28px;font-weight:700;letter-spacing:-.8px;-webkit-font-smoothing:antialiased}.dashboard-section{margin-bottom:var(--spacing-2xl)}.section-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--border-color)}.dark .section-header{border-bottom-color:#3f3f46}.section-title{font-size:15px;font-weight:700;color:#6b7280;text-transform:uppercase;letter-spacing:1px;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif}.dark .section-title{color:#9ca3af}.section-grid{display:grid;gap:var(--spacing-lg)}.section-grid--1col{grid-template-columns:1fr}.section-grid--2col{grid-template-columns:repeat(2,1fr)}.section-grid--3col{grid-template-columns:repeat(3,1fr)}@media (max-width: 1200px){.section-grid--3col{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.section-grid--2col,.section-grid--3col{grid-template-columns:1fr}}.dashboard-widget-card{background:#fff;border-radius:18px;border:.5px solid rgba(0,0,0,.06);box-shadow:0 1px 3px #0000000a,0 1px 2px #0000000f;overflow:hidden;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;max-height:350px}.dark .dashboard-widget-card{background:#18181b;border:1px solid #3F3F46;box-shadow:0 2px 8px #0000004d,0 4px 12px #0006}.dashboard-widget-card:hover{box-shadow:0 4px 12px #00000014,0 12px 32px #0000001a}.dark .dashboard-widget-card:hover{box-shadow:0 4px 16px #00000080,0 12px 32px #0009;border-color:#52525b}.widget-card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--background-secondary);border-bottom:1px solid var(--border-color)}.dark .widget-card-header{background:#27272a80;border-bottom-color:#3f3f46}.widget-card-header-title{font-size:var(--font-size-subtitle);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.widget-card-icon-wrapper{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);background:#ffffff80}.widget-card-actions{display:flex;gap:var(--spacing-xs)}.widget-card-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:all .2s ease}.widget-card-btn:hover{background:#0000000d;color:var(--text-primary)}.dark .widget-card-btn{color:#a1a1aa}.dark .widget-card-btn:hover{background:#ffffff1a;color:#fff}.widget-card-body{padding:var(--spacing-lg);flex:1;overflow-y:auto}.widget-card-title-row{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.widget-card-main-icon{font-size:24px;color:var(--accent-blue)}.widget-card-title{font-size:var(--font-size-subtitle);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0;flex:1}.widget-card-add-btn{background:var(--primary-blue);color:#fff;border:none;width:28px;height:28px;border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.widget-card-add-btn:hover{background:var(--primary-blue-hover);transform:scale(1.05)}.widget-card-loading{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary)}.widget-card-empty{text-align:center;padding:var(--spacing-lg);color:var(--text-secondary)}.widget-card-empty p{margin:0;font-size:var(--font-size-body)}.widget-card-stat{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-lg) 0}.stat-number{font-size:48px;font-weight:var(--font-weight-bold);color:var(--primary-blue);line-height:1}.stat-label{font-size:var(--font-size-caption);color:var(--text-secondary);margin-top:var(--spacing-xs)}.time-sync-display{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-lg) 0}.time-sync-clock{font-size:42px;font-weight:var(--font-weight-bold);color:var(--accent-green);line-height:1;font-family:Courier New,monospace}.time-sync-date{font-size:var(--font-size-body);color:var(--text-secondary);margin-top:var(--spacing-sm)}.paging-controls{display:flex;flex-direction:column;gap:var(--spacing-md)}.modern-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-body);color:var(--text-primary);background:#fff;cursor:pointer}.dark .modern-select{background:#27272a;border-color:#3f3f46;color:#fff}.dark .modern-select:focus{border-color:#60a5fa}.gain-slider{width:100%;height:8px;border-radius:4px;background:linear-gradient(to right,var(--accent-red),var(--accent-green));outline:none;cursor:pointer}.dark .gain-slider{background:linear-gradient(to right,#f87171,#4ade80)}.gain-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--accent-blue);cursor:pointer;box-shadow:0 2px 4px #0003;transition:transform .15s ease}.gain-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.dark .gain-slider::-webkit-slider-thumb{border-color:#60a5fa;box-shadow:0 2px 8px #00000080}.gain-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--accent-blue);cursor:pointer;box-shadow:0 2px 4px #0003;transition:transform .15s ease}.gain-slider::-moz-range-thumb:hover{transform:scale(1.1)}.dark .gain-slider::-moz-range-thumb{border-color:#60a5fa;box-shadow:0 2px 8px #00000080}.schedules-list{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.schedule-item{padding:var(--spacing-sm) var(--spacing-md);background:var(--surface-secondary);border-radius:var(--radius-md);transition:all .2s ease;cursor:pointer;border:1px solid transparent}.schedule-item:hover{background:var(--surface-tertiary);transform:translate(4px);border-color:var(--accent-blue)}.schedule-item-name{font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs);color:var(--text-primary);font-size:var(--font-size-body)}.schedule-item-meta{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.schedule-item-bells{display:flex;align-items:center;gap:var(--spacing-xs)}.emergency-procedures{padding:var(--spacing-md) 0}.emergency-procedures-title{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--text-secondary);margin:0 0 var(--spacing-md) 0}.emergency-buttons{display:flex;flex-direction:column;gap:var(--spacing-md)}.emergency-btn{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;text-align:left;font-family:var(--font-family)}.emergency-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.emergency-btn:disabled{opacity:.6;cursor:not-allowed}.emergency-btn--lockdown{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.emergency-btn--evacuation{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff}.emergency-btn-icon{font-size:32px;display:flex;align-items:center;justify-content:center}.emergency-btn-content{flex:1}.emergency-btn-title{font-size:var(--font-size-subtitle);font-weight:var(--font-weight-bold);margin-bottom:2px}.emergency-btn-subtitle{font-size:var(--font-size-caption);opacity:.9}.school-alerts{padding:var(--spacing-sm) 0}.school-alerts-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.school-alerts-title{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0;flex:1}.school-alerts-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.school-alert-card{padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--background-secondary);transition:all .2s ease}.dark .school-alert-card{background:#27272a;border-color:#3f3f46}.school-alert-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.dark .school-alert-card:hover{box-shadow:0 4px 12px #00000080}.school-alert-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs)}.alert-dismiss-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:24px;height:24px}.alert-dismiss-btn:hover{background:var(--surface-tertiary);color:var(--text-primary)}.dark .alert-dismiss-btn:hover{background:#27272a;color:#fff}.school-alert-message{font-size:var(--font-size-body);color:var(--text-primary);margin:0 0 var(--spacing-sm) 0;line-height:1.5}.dark .school-alert-message{color:#fff}.school-alert-meta{display:flex;gap:var(--spacing-md);font-size:var(--font-size-caption);color:var(--text-secondary)}.dark .school-alert-meta{color:#9ca3af}.school-alert-time,.school-alert-areas{display:flex;align-items:center;gap:4px}.calendar-widget{padding:var(--spacing-sm) 0}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap;gap:var(--spacing-sm)}.calendar-nav{display:flex;align-items:center;gap:var(--spacing-sm)}.calendar-nav-btn{background:var(--background-secondary);border:1px solid var(--border-color);width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-primary);transition:all .2s ease}.calendar-nav-btn:hover{background:var(--background-tertiary);border-color:var(--primary-blue);transform:scale(1.05)}.dark .calendar-nav-btn{background:#27272a;border-color:#3f3f46;color:#fff}.dark .calendar-nav-btn:hover{background:#3f3f46;border-color:#60a5fa}.calendar-today-btn{background:#fff;border:1px solid var(--border-color);padding:6px 12px;border-radius:var(--radius-md);display:flex;align-items:center;gap:var(--spacing-xs);cursor:pointer;color:var(--text-primary);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);transition:all .2s ease}.calendar-today-btn:hover{background:var(--background-secondary);border-color:var(--primary-blue);transform:translateY(-1px)}.dark .calendar-today-btn{background:#27272a;border-color:#3f3f46;color:#fff}.dark .calendar-today-btn:hover{background:#3f3f46;border-color:#60a5fa}.calendar-year-select{padding:6px 12px;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);background:#fff;cursor:pointer}.calendar-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}@media (max-width: 1200px){.calendar-grid{grid-template-columns:1fr}}.calendar-month{border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.dark .calendar-month{border-color:#3f3f46}.calendar-month-header{padding:var(--spacing-sm);background:var(--background-secondary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-caption);text-align:center;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.dark .calendar-month-header{background:#27272a;border-bottom-color:#3f3f46;color:#fff}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border-color)}.dark .calendar-month-grid{background:#3f3f46}.calendar-day-header{padding:4px;text-align:center;font-size:10px;font-weight:var(--font-weight-semibold);color:var(--text-secondary);background:#fff}.dark .calendar-day-header{background:#27272a;color:#9ca3af}.calendar-day{background:#fff;min-height:32px;display:flex;align-items:center;justify-content:center}.dark .calendar-day{background:#18181b}.calendar-day-bar{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--text-secondary);position:relative;border:none;background:transparent;cursor:pointer;transition:all .2s ease;border-radius:4px}.dark .calendar-day-bar{color:#9ca3af}.calendar-day-bar:hover{background:var(--background-secondary);color:var(--text-primary);transform:scale(1.1);font-weight:var(--font-weight-medium)}.dark .calendar-day-bar:hover{background:#27272a;color:#fff}.calendar-day-bar[data-has-schedule=true]{background:linear-gradient(to bottom,transparent 0%,transparent 70%,var(--accent-blue) 70%,var(--accent-blue) 100%);color:var(--text-primary);font-weight:var(--font-weight-medium)}.dark .calendar-day-bar[data-has-schedule=true]{background:linear-gradient(to bottom,transparent 0%,transparent 70%,#60a5fa 70%,#60a5fa 100%);color:#fff}.calendar-day-bar[data-has-schedule=true]:hover{background:linear-gradient(to bottom,var(--background-secondary) 0%,var(--background-secondary) 70%,var(--accent-blue) 70%,var(--accent-blue) 100%);transform:scale(1.15)}.dark .calendar-day-bar[data-has-schedule=true]:hover{background:linear-gradient(to bottom,#27272a 0% 70%,#60a5fa 70% 100%)}.layer-controls{position:absolute;top:80px;right:20px;background:#fff;border-radius:var(--radius-lg);box-shadow:0 2px 12px #00000026;min-width:180px;z-index:10}.layer-controls-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color)}.layer-controls-title{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.layer-controls-toggle{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.layer-controls-body{padding:var(--spacing-sm)}.layer-control-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);cursor:pointer;border-radius:var(--radius-sm);transition:background .2s ease}.layer-control-item:hover{background:var(--background-secondary)}.layer-control-item input[type=checkbox]{cursor:pointer}.layer-control-item i{color:var(--accent-blue);width:16px}.layer-control-item span{font-size:var(--font-size-caption);color:var(--text-primary);flex:1}.layer-controls-divider{height:1px;background:var(--border-color);margin:var(--spacing-xs) 0}.room-device-panel-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.room-device-panel{background:var(--surface);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;width:90%;max-width:400px;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.room-device-panel__header{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.room-device-panel__title{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.room-device-panel__subtitle{font-size:var(--font-size-body);color:var(--text-secondary);margin:var(--spacing-xs) 0 0 0}.room-device-panel__close{background:transparent;border:none;color:var(--text-secondary);font-size:20px;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all .2s ease;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.room-device-panel__close:hover{background:var(--surface-hover);color:var(--text-primary)}.room-device-panel__body{padding:var(--spacing-lg)}.room-device-panel__status{margin-bottom:var(--spacing-md)}.status-indicator{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-full);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium)}.status-indicator--online{background:#22c55e1a;color:var(--accent-green)}.status-indicator--offline{background:#ef44441a;color:var(--accent-red)}.status-indicator i{font-size:8px}.room-device-panel__device-info{background:var(--surface-secondary);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.device-info-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) 0;color:var(--text-primary)}.device-info-row:not(:last-child){border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.device-info-row i{color:var(--accent-blue);width:20px;text-align:center}.device-info-label{font-size:var(--font-size-caption);color:var(--text-secondary);min-width:80px}.device-info-value{font-weight:var(--font-weight-medium);flex:1}.room-device-panel__call-btn{width:100%;padding:var(--spacing-md);background:var(--accent-green);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);transition:all .2s ease}.room-device-panel__call-btn:hover:not(:disabled){background:var(--accent-green-hover);transform:translateY(-2px);box-shadow:0 4px 12px #22c55e4d}.room-device-panel__call-btn:disabled{background:var(--surface-secondary);color:var(--text-secondary);cursor:not-allowed}.room-device-panel__empty{text-align:center;padding:var(--spacing-xl) var(--spacing-lg);color:var(--text-secondary)}.room-device-panel__empty i{font-size:48px;opacity:.3;margin-bottom:var(--spacing-md)}.room-device-panel__empty p{margin:0;font-size:var(--font-size-body)}.login-container{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-family);overflow:auto}.login-background{position:fixed;inset:0;background:radial-gradient(1200px 600px at 70% -10%,#fff,#fafbfe 60%,#f5f7fb);z-index:0}.login-content{position:relative;z-index:1;width:100%;display:flex;align-items:center;justify-content:center}.login-main{width:100%;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);animation:fadeIn .6s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-card{width:100%;max-width:420px;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:12px;box-shadow:0 8px 32px #0003;overflow:hidden;animation:slideUp .6s ease-out}.card-header{padding:var(--spacing-xl);text-align:center;border-bottom:1px solid var(--border-color);background:var(--background-secondary)}.logo-container{margin-bottom:var(--spacing-md)}.card-logo{height:64px;width:auto;transition:transform .3s ease}.card-logo:hover{transform:scale(1.05)}.login-title{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:var(--text-primary)}.login-subtitle{margin:0;font-size:var(--font-size-body);color:var(--text-secondary);line-height:1.5}.login-form{padding:var(--spacing-xl)}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;margin-bottom:var(--spacing-xs);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.input-container{position:relative}.form-input{width:100%;padding:12px 16px;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-body);font-family:var(--font-family);color:var(--text-primary);background:#fff;transition:all .2s ease}.form-input::placeholder{color:var(--text-secondary);opacity:.6}.form-input:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #3b82f61a}.form-input:disabled{background:var(--background-secondary);cursor:not-allowed;opacity:.6}.login-btn{width:100%;padding:14px 24px;margin-top:var(--spacing-md);background:var(--primary-blue);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);font-family:var(--font-family);cursor:pointer;transition:all .2s ease}.login-btn:hover:not(:disabled){background:var(--primary-blue-hover);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{background:var(--text-secondary);cursor:not-allowed;opacity:.6}.card-footer{padding:var(--spacing-md) var(--spacing-xl);background:var(--background-secondary);border-top:1px solid var(--border-color)}.footer-links{text-align:center;font-size:var(--font-size-caption);color:var(--text-secondary)}.footer-link{color:var(--primary-blue);text-decoration:none;transition:color .2s ease}.footer-link:hover{color:var(--primary-blue-hover);text-decoration:underline}@media (max-width: 480px){.login-main{padding:var(--spacing-md)}.login-card{max-width:100%}.card-header,.login-form,.card-footer{padding:var(--spacing-lg)}.login-title{font-size:var(--font-size-h3)}}.login-btn:disabled:after{content:"";display:inline-block;width:14px;height:14px;margin-left:8px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.school-branding{display:flex;align-items:center;gap:var(--spacing-md)}.school-branding--dashboard{justify-content:center;padding:var(--spacing-md) var(--spacing-lg)}.school-branding--header{gap:var(--spacing-sm)}.school-branding-logo{height:48px;width:auto;object-fit:contain}.school-branding-logo--dashboard{height:40px}.school-branding-logo--header{height:32px}.school-branding-text{display:flex;flex-direction:column}.school-branding-name{margin:0;color:#fff;font-weight:var(--font-weight-bold)}.school-branding-name--dashboard{font-size:var(--font-size-h2);text-align:center}.school-branding-name--header{font-size:var(--font-size-subtitle)}.school-branding-subtitle{font-size:var(--font-size-caption);color:#fffc}.school-branding-subtitle--header{margin-top:2px}.school-branding-settings{display:flex;flex-direction:column;height:100%}.settings-drawer-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.settings-drawer-title{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.settings-drawer-subtitle{font-size:var(--font-size-body);color:var(--text-secondary);margin:0;line-height:1.5}.settings-drawer-body{flex:1;padding:var(--spacing-lg);overflow-y:auto}.settings-drawer-footer{padding:var(--spacing-lg);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:var(--spacing-sm);background:var(--background-secondary)}.form-section{margin-bottom:var(--spacing-xl)}.form-section-title{font-size:var(--font-size-subtitle);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.form-section-description{font-size:var(--font-size-caption);color:var(--text-secondary);margin:0 0 var(--spacing-md) 0;line-height:1.5}.logo-upload-container{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);background:var(--background-secondary)}.logo-preview-wrapper{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.logo-preview{max-width:200px;max-height:200px;object-fit:contain;border-radius:var(--radius-md);border:1px solid var(--border-color);background:#fff;padding:var(--spacing-sm)}.logo-actions{display:flex;gap:var(--spacing-sm)}.logo-upload-empty{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl);text-align:center;color:var(--text-secondary)}.logo-upload-empty p{margin:0;font-size:var(--font-size-body)}.modern-input{width:100%;padding:10px 14px;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-size-body);font-family:var(--font-family);color:var(--text-primary);background:#fff;transition:all .2s ease}.modern-input:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #3b82f61a}.modern-input::placeholder{color:var(--text-secondary);opacity:.6}.branding-preview-card{border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);background:linear-gradient(135deg,var(--primary-blue),var(--accent-purple))}.branding-preview-header{display:flex;align-items:center;gap:var(--spacing-md)}.branding-preview-logo{height:48px;width:auto;object-fit:contain;background:#fff;padding:var(--spacing-xs);border-radius:var(--radius-md)}.branding-preview-text{display:flex;flex-direction:column}.branding-preview-name{margin:0;font-size:var(--font-size-h2);font-weight:var(--font-weight-bold);color:#fff}.branding-preview-subtitle{margin-top:4px;font-size:var(--font-size-caption);color:#ffffffe6}.tooltip{pointer-events:none;animation:tooltipFadeIn .15s ease-out}@keyframes tooltipFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.tooltip-content{background:#000000e6;color:#fff;padding:8px 12px;border-radius:8px;font-size:13px;font-weight:500;line-height:1.4;max-width:250px;box-shadow:0 2px 8px #0000004d;backdrop-filter:blur(8px)}.dark .tooltip-content{background:#fffffff2;color:#1f2937;box-shadow:0 2px 8px #00000080}.tooltip-arrow{position:absolute;width:8px;height:8px;background:#000000e6;transform:rotate(45deg)}.dark .tooltip-arrow{background:#fffffff2}.tooltip--top .tooltip-arrow{bottom:-4px;left:50%;margin-left:-4px}.tooltip--bottom .tooltip-arrow{top:-4px;left:50%;margin-left:-4px}.tooltip--left .tooltip-arrow{right:-4px;top:50%;margin-top:-4px}.tooltip--right .tooltip-arrow{left:-4px;top:50%;margin-top:-4px}.widget-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-lg);padding:var(--spacing-lg);width:100%}.widget-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000f,0 4px 8px #0000000a;transition:all .2s ease;overflow:hidden;display:flex;flex-direction:column;min-height:180px}.dark .widget-card{background:#18181b;border:1px solid #27272A;box-shadow:0 4px 12px #0000004d}.widget-card:hover{box-shadow:0 4px 8px #00000014,0 8px 16px #0000000f;transform:translateY(-1px)}.dark .widget-card:hover{box-shadow:0 8px 20px #00000080}.widget-card--dragging{opacity:.5;cursor:grabbing}.widget-card--sm{grid-column:span 1}.widget-card--md{grid-column:span 2}.widget-card--lg{grid-column:span 3}@media (max-width: 1400px){.widget-card--lg{grid-column:span 2}}@media (max-width: 900px){.widget-card--md,.widget-card--lg{grid-column:span 1}}.widget-card__header{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background:linear-gradient(to bottom,rgba(0,0,0,.01),transparent)}.dark .widget-card__header{border-bottom-color:#27272a}.widget-card__title-row{display:flex;align-items:center;gap:var(--spacing-sm)}.widget-card__title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.widget-card__actions{display:flex;gap:4px}.widget-card__action-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:6px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;font-size:12px}.widget-card__action-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.widget-card__drag-handle{cursor:grab}.widget-card__drag-handle:active{cursor:grabbing}.widget-card__body{flex:1;padding:var(--spacing-md);display:flex;flex-direction:column;overflow:auto}.widget-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.widget-loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--text-secondary);font-size:24px}.widget-empty{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);color:var(--text-secondary)}.widget-empty p{margin:0;font-size:13px}.widget-empty-btn{margin-top:var(--spacing-sm);padding:6px 12px;background:var(--primary-blue);color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.widget-empty-btn:hover{background:var(--primary-blue-hover);transform:translateY(-1px)}.widget-stat{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md)}.widget-stat-number{font-size:48px;font-weight:700;color:var(--text-primary);line-height:1}.widget-stat-label{font-size:13px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.widget-list{display:flex;flex-direction:column;gap:6px;width:100%}.widget-list-item{padding:8px 12px;background:var(--surface-hover);border-radius:6px;font-size:13px;color:var(--text-primary);transition:all .2s ease;cursor:pointer}.widget-list-item:hover{background:var(--border-color);transform:translate(2px)}.widget-list-item--alert{background:#ff3b301a;color:var(--error-red);border-left:3px solid var(--error-red)}.widget-select{width:100%;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:#fff;color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .2s ease}.dark .widget-select{background:#18181b;border-color:#27272a}.widget-select:hover{border-color:var(--primary-blue)}.widget-select:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #007aff1a}.widget-btn{width:100%;padding:10px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.widget-btn--primary{background:var(--primary-blue);color:#fff}.widget-btn--primary:hover:not(:disabled){background:var(--primary-blue-hover);transform:translateY(-1px);box-shadow:0 4px 8px #007aff33}.widget-btn--primary:disabled{opacity:.5;cursor:not-allowed}.widget-btn--secondary{background:var(--background-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.widget-btn--secondary:hover{background:var(--surface-hover);border-color:var(--primary-blue)}
