:root{--theme-accent-hue: 270;--theme-widget-opacity: .85;--theme-widget-blur: 16px;--theme-bg-overlay-opacity: .7;--color-bg-primary: oklch(8% .02 var(--theme-accent-hue));--color-bg-secondary: oklch(12% .02 var(--theme-accent-hue));--color-bg-tertiary: oklch(18% .02 var(--theme-accent-hue));--color-bg-elevated: oklch(22% .02 var(--theme-accent-hue));--color-bg-widget: oklch(14% .03 var(--theme-accent-hue) / var(--theme-widget-opacity));--glass-bg: linear-gradient( 135deg, oklch(100% 0 0 / calc(.08 * var(--theme-widget-opacity))) 0%, oklch(100% 0 0 / calc(.02 * var(--theme-widget-opacity))) 100% );--glass-border: oklch(100% 0 0 / .1);--glass-border-hover: oklch(100% 0 0 / .18);--glass-blur: var(--theme-widget-blur);--glass-blur-strong: calc(var(--theme-widget-blur) + 8px);--color-text-primary: oklch(98% 0 0);--color-text-secondary: oklch(70% .02 var(--theme-accent-hue));--color-text-tertiary: oklch(50% .02 var(--theme-accent-hue));--color-text-muted: oklch(40% .02 var(--theme-accent-hue));--color-border: oklch(100% 0 0 / .08);--color-border-hover: oklch(100% 0 0 / .15);--color-border-active: var(--color-accent);--subtle-overlay-3: oklch(100% 0 0 / .03);--subtle-overlay-4: oklch(100% 0 0 / .04);--subtle-overlay-6: oklch(100% 0 0 / .06);--subtle-overlay-8: oklch(100% 0 0 / .08);--subtle-overlay-10: oklch(100% 0 0 / .1);--subtle-overlay-12: oklch(100% 0 0 / .12);--subtle-shine: oklch(100% 0 0 / .15);--color-accent: oklch(65% .22 var(--theme-accent-hue));--color-accent-hover: oklch(60% .24 var(--theme-accent-hue));--color-accent-muted: oklch(65% .22 var(--theme-accent-hue) / .4);--color-accent-subtle: oklch(65% .22 var(--theme-accent-hue) / .15);--color-accent-glow: oklch(65% .22 var(--theme-accent-hue) / .5);--color-success: oklch(70% .18 145);--color-success-bg: oklch(70% .18 145 / .15);--color-warning: oklch(80% .15 75);--color-warning-bg: oklch(80% .15 75 / .15);--color-error: oklch(65% .22 25);--color-error-bg: oklch(65% .22 25 / .15);--spacing-3xs: .125rem;--spacing-2xs: .25rem;--spacing-xs: .375rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.25rem;--spacing-2xl: 1.5rem;--spacing-3xl: 2rem;--radius-xs: .25rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.25rem;--radius-full: 9999px;--font-family-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-family-mono: "JetBrains Mono", ui-monospace, "SF Mono", Monaco, monospace;--font-family-display: "Inter", system-ui, -apple-system, sans-serif;--text-2xs: clamp(.625rem, .6rem + .1vw, .7rem);--text-xs: clamp(.7rem, .65rem + .15vw, .8rem);--text-sm: clamp(.8rem, .75rem + .15vw, .875rem);--text-base: clamp(.875rem, .82rem + .18vw, 1rem);--text-lg: clamp(1rem, .92rem + .2vw, 1.125rem);--text-xl: clamp(1.125rem, 1.02rem + .25vw, 1.25rem);--text-2xl: clamp(1.25rem, 1.12rem + .3vw, 1.5rem);--text-3xl: clamp(1.5rem, 1.35rem + .4vw, 1.875rem);--text-4xl: clamp(1.875rem, 1.65rem + .5vw, 2.25rem);--text-5xl: clamp(2.25rem, 1.9rem + .8vw, 3rem);--text-6xl: clamp(2.75rem, 2.3rem + 1vw, 3.75rem);--text-7xl: clamp(3.5rem, 2.8rem + 1.5vw, 4.5rem);--touch-target-min: 44px;--touch-target-compact: 36px;--spring-snappy: cubic-bezier(.34, 1.56, .64, 1);--spring-smooth: cubic-bezier(.16, 1, .3, 1);--spring-gentle: cubic-bezier(.25, 1, .5, 1);--spring-bouncy: cubic-bezier(.68, -.55, .265, 1.55);--ease-out-expo: cubic-bezier(.19, 1, .22, 1);--duration-instant: .1s;--duration-fast: .15s;--duration-base: .25s;--duration-slow: .4s;--duration-slower: .6s;--stagger-delay: 40ms;--shadow-xs: 0 1px 2px oklch(0% 0 0 / .3);--shadow-sm: 0 2px 4px oklch(0% 0 0 / .3), 0 1px 2px oklch(0% 0 0 / .2);--shadow-md: 0 4px 8px oklch(0% 0 0 / .3), 0 2px 4px oklch(65% .22 270 / .08);--shadow-lg: 0 8px 16px oklch(0% 0 0 / .35), 0 4px 8px oklch(65% .22 270 / .1);--shadow-xl: 0 16px 32px oklch(0% 0 0 / .4), 0 8px 16px oklch(65% .22 270 / .12);--shadow-glow: 0 0 20px var(--color-accent-glow), 0 0 40px oklch(65% .22 270 / .2);--shadow-widget: 0 4px 16px oklch(0% 0 0 / .35), 0 0 0 1px var(--glass-border), inset 0 1px 0 oklch(100% 0 0 / .06);--shadow-widget-hover: 0 8px 24px oklch(0% 0 0 / .4), 0 0 0 1px var(--glass-border-hover), 0 0 24px oklch(65% .22 270 / .1), inset 0 1px 0 oklch(100% 0 0 / .1);--shadow-widget-active: 0 12px 32px oklch(0% 0 0 / .45), 0 0 0 2px var(--color-accent), 0 0 32px var(--color-accent-glow), inset 0 1px 0 oklch(100% 0 0 / .12);--grid-gap: .75rem;--grid-gap-compact: .5rem;--grid-columns: 12;--z-widget: 10;--z-widget-hover: 20;--z-widget-dragging: 50;--z-header: 100;--z-modal-backdrop: 900;--z-modal: 1000;--z-toast: 1100}@supports not (color: oklch(50% .2 270)){:root{--color-bg-primary: #0a0a0c;--color-bg-secondary: #131316;--color-bg-tertiary: #1d1d22;--color-bg-elevated: #252529;--color-bg-widget: rgba(19, 19, 22, .85);--glass-bg: linear-gradient(135deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.02) 100%);--glass-border: rgba(255, 255, 255, .1);--glass-border-hover: rgba(255, 255, 255, .18);--color-text-primary: #fafafa;--color-text-secondary: #9ca3af;--color-text-tertiary: #6b7280;--color-text-muted: #4b5563;--color-border: rgba(255, 255, 255, .08);--color-border-hover: rgba(255, 255, 255, .15);--color-accent: #6366f1;--color-accent-hover: #4f46e5;--color-accent-muted: rgba(99, 102, 241, .4);--color-accent-subtle: rgba(99, 102, 241, .15);--color-accent-glow: rgba(99, 102, 241, .5);--color-success: #10b981;--color-success-bg: rgba(16, 185, 129, .15);--color-warning: #f59e0b;--color-warning-bg: rgba(245, 158, 11, .15);--color-error: #ef4444;--color-error-bg: rgba(239, 68, 68, .15)}}@supports (color: color(display-p3 1 1 1)){:root{--color-accent: color(display-p3 .4 .42 .95);--color-success: color(display-p3 .1 .72 .5);--color-warning: color(display-p3 .96 .62 .04);--color-error: color(display-p3 .94 .27 .27)}}[data-theme=light]{--color-bg-primary: oklch(98% .01 var(--theme-accent-hue));--color-bg-secondary: oklch(95% .015 var(--theme-accent-hue));--color-bg-tertiary: oklch(92% .02 var(--theme-accent-hue));--color-bg-elevated: oklch(100% 0 0);--color-bg-widget: oklch(100% 0 0 / var(--theme-widget-opacity));--glass-bg: linear-gradient( 135deg, oklch(100% 0 0 / calc(.7 * var(--theme-widget-opacity))) 0%, oklch(100% 0 0 / calc(.5 * var(--theme-widget-opacity))) 100% );--glass-border: oklch(0% 0 0 / .08);--glass-border-hover: oklch(0% 0 0 / .15);--color-text-primary: oklch(15% .02 var(--theme-accent-hue));--color-text-secondary: oklch(40% .02 var(--theme-accent-hue));--color-text-tertiary: oklch(55% .02 var(--theme-accent-hue));--color-text-muted: oklch(65% .02 var(--theme-accent-hue));--color-border: oklch(0% 0 0 / .08);--color-border-hover: oklch(0% 0 0 / .15);--subtle-overlay-3: oklch(0% 0 0 / .03);--subtle-overlay-4: oklch(0% 0 0 / .04);--subtle-overlay-6: oklch(0% 0 0 / .06);--subtle-overlay-8: oklch(0% 0 0 / .08);--subtle-overlay-10: oklch(0% 0 0 / .1);--subtle-overlay-12: oklch(0% 0 0 / .12);--subtle-shine: oklch(0% 0 0 / .08);--color-accent: oklch(55% .22 var(--theme-accent-hue));--color-accent-hover: oklch(50% .24 var(--theme-accent-hue));--color-accent-muted: oklch(55% .22 var(--theme-accent-hue) / .3);--color-accent-subtle: oklch(55% .22 var(--theme-accent-hue) / .1);--color-accent-glow: oklch(55% .22 var(--theme-accent-hue) / .3);--shadow-xs: 0 1px 2px oklch(0% 0 0 / .08);--shadow-sm: 0 2px 4px oklch(0% 0 0 / .1), 0 1px 2px oklch(0% 0 0 / .06);--shadow-md: 0 4px 8px oklch(0% 0 0 / .1), 0 2px 4px oklch(55% .22 var(--theme-accent-hue) / .05);--shadow-lg: 0 8px 16px oklch(0% 0 0 / .12), 0 4px 8px oklch(55% .22 var(--theme-accent-hue) / .06);--shadow-xl: 0 16px 32px oklch(0% 0 0 / .15), 0 8px 16px oklch(55% .22 var(--theme-accent-hue) / .08);--shadow-glow: 0 0 20px oklch(55% .22 var(--theme-accent-hue) / .2), 0 0 40px oklch(55% .22 var(--theme-accent-hue) / .1);--shadow-widget: 0 4px 16px oklch(0% 0 0 / .08), 0 0 0 1px var(--glass-border), inset 0 1px 0 oklch(100% 0 0 / .5);--shadow-widget-hover: 0 8px 24px oklch(0% 0 0 / .12), 0 0 0 1px var(--glass-border-hover), 0 0 24px oklch(55% .22 var(--theme-accent-hue) / .06), inset 0 1px 0 oklch(100% 0 0 / .6);--shadow-widget-active: 0 12px 32px oklch(0% 0 0 / .15), 0 0 0 2px var(--color-accent), 0 0 32px var(--color-accent-glow), inset 0 1px 0 oklch(100% 0 0 / .7)}[data-theme=light] body:not(.has-background-image):before{background:radial-gradient(ellipse 80% 50% at 20% 30%,var(--color-accent-subtle) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 80% 70%,oklch(75% .12 calc(var(--theme-accent-hue) + 30) / .08) 0%,transparent 50%),radial-gradient(ellipse 50% 50% at 50% 100%,oklch(80% .1 calc(var(--theme-accent-hue) - 70) / .06) 0%,transparent 50%)}html{color-scheme:dark light}html,body,.dashboard,.widget-wrapper,.account-settings-panel,.widget-picker-panel{transition:background-color var(--duration-slow) var(--spring-smooth),color var(--duration-slow) var(--spring-smooth),border-color var(--duration-slow) var(--spring-smooth),box-shadow var(--duration-slow) var(--spring-smooth)}.theme-changing *{transition-duration:0ms!important}body.has-background-image{position:relative;background-color:transparent!important}body.has-background-image:after{content:"";position:fixed;inset:0;background-image:var(--theme-background-image);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed;filter:blur(var(--theme-background-blur, 0px));z-index:-2}body.has-background-image:before{content:"";position:fixed;inset:0;background:linear-gradient(180deg,oklch(var(--theme-overlay-lightness, 8%) .02 var(--theme-accent-hue) / var(--theme-bg-overlay-opacity)),oklch(var(--theme-overlay-lightness, 8%) .02 var(--theme-accent-hue) / calc(var(--theme-bg-overlay-opacity) * .8)));pointer-events:none;z-index:-1}[data-theme=light] body.has-background-image:before{--theme-overlay-lightness: 95%}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-optical-sizing:auto;scroll-behavior:smooth}body{font-family:var(--font-family-sans);font-size:var(--text-base);line-height:1.5;background-color:var(--color-bg-primary);color:var(--color-text-primary);min-height:100vh;overflow-x:hidden;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}body:not(.has-background-image):before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 80% 50% at 20% 30%,oklch(65% .22 var(--theme-accent-hue) / .15) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 80% 70%,oklch(75% .15 300 / .1) 0%,transparent 50%),radial-gradient(ellipse 50% 50% at 50% 100%,oklch(60% .18 200 / .08) 0%,transparent 50%);pointer-events:none;z-index:-1}input,textarea,[contenteditable]{-webkit-user-select:text;user-select:text}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm);box-shadow:0 0 0 4px var(--color-accent-subtle),0 0 16px var(--color-accent-muted)}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-display);font-weight:600;line-height:1.2;letter-spacing:-.02em;color:var(--color-text-primary)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{line-height:1.6;color:var(--color-text-secondary)}a{color:var(--color-accent);text-decoration:none;transition:color var(--duration-fast) var(--spring-smooth)}a:hover{color:var(--color-accent-hover)}button{min-height:var(--touch-target-compact);padding:var(--spacing-xs) var(--spacing-md);font-family:inherit;font-size:var(--text-sm);font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-secondary);color:var(--color-text-primary);cursor:pointer;transition:transform var(--duration-instant) var(--spring-snappy),background-color var(--duration-fast) var(--spring-smooth),border-color var(--duration-fast) var(--spring-smooth),box-shadow var(--duration-fast) var(--spring-smooth);-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}button:hover{background-color:var(--color-bg-tertiary);border-color:var(--color-border-hover)}button:active{transform:scale(.96)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button.primary{background:linear-gradient(135deg,var(--color-accent) 0%,oklch(60% .24 290) 100%);border-color:transparent;color:#fff;box-shadow:var(--shadow-sm),0 0 16px var(--color-accent-muted)}button.primary:hover{background:linear-gradient(135deg,var(--color-accent-hover) 0%,oklch(65% .24 290) 100%);color:#fff;border-color:transparent;box-shadow:var(--shadow-md),0 0 24px var(--color-accent-muted)}button.primary:active{box-shadow:var(--shadow-xs)}button:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--ripple-x, 50%) var(--ripple-y, 50%),oklch(100% 0 0 / .2) 0%,transparent 70%);opacity:0;transform:scale(0);transition:transform .5s var(--spring-smooth),opacity .3s ease}button:active:after{opacity:1;transform:scale(2);transition:transform 0s,opacity 0s}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-bg-tertiary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}*{scrollbar-width:thin;scrollbar-color:var(--color-bg-tertiary) transparent}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);border:1px solid var(--glass-border);box-shadow:var(--shadow-widget)}.glass-subtle{background:#ffffff08;backdrop-filter:blur(8px) saturate(150%);-webkit-backdrop-filter:blur(8px) saturate(150%);border:1px solid oklch(100% 0 0 / .05)}.glass-strong{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-strong)) saturate(200%);-webkit-backdrop-filter:blur(var(--glass-blur-strong)) saturate(200%);border:1px solid var(--glass-border-hover);box-shadow:var(--shadow-widget-hover)}.gradient-text{background:linear-gradient(180deg,var(--color-text-primary) 0%,var(--color-text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-accent{background:linear-gradient(135deg,var(--color-accent) 0%,oklch(70% .2 300) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-border{position:relative;background:var(--color-bg-secondary);border-radius:var(--radius-lg)}.gradient-border:before{content:"";position:absolute;inset:-1px;border-radius:inherit;background:linear-gradient(135deg,var(--color-accent) 0%,oklch(70% .2 300) 50%,var(--color-accent) 100%);background-size:200% 200%;animation:gradient-shift 4s ease infinite;z-index:-1;opacity:.6}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.glow{box-shadow:var(--shadow-glow)}.glow-text{text-shadow:0 0 16px var(--color-accent-glow)}.glow-subtle{box-shadow:0 0 24px var(--color-accent-subtle)}.hover-lift{transition:transform var(--duration-base) var(--spring-smooth),box-shadow var(--duration-base) var(--spring-smooth)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.hover-glow:hover{box-shadow:var(--shadow-widget-hover)}.hover-scale{transition:transform var(--duration-fast) var(--spring-snappy)}.hover-scale:hover{transform:scale(1.02)}.hover-scale:active{transform:scale(.98)}.skeleton{background:linear-gradient(90deg,var(--color-bg-tertiary) 0%,var(--color-bg-elevated) 50%,var(--color-bg-tertiary) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.fade-in{animation:fadeIn var(--duration-base) var(--spring-smooth) both}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.scale-in{animation:scaleIn var(--duration-base) var(--spring-smooth) both}@keyframes scaleIn{0%{opacity:0;transform:scale(.92);filter:blur(4px)}to{opacity:1;transform:scale(1);filter:blur(0)}}.slide-up{animation:slideUp var(--duration-base) var(--spring-smooth) both}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.stagger-item{animation:fadeIn var(--duration-base) var(--spring-smooth) both}.stagger-item:nth-child(1){animation-delay:calc(1 * var(--stagger-delay))}.stagger-item:nth-child(2){animation-delay:calc(2 * var(--stagger-delay))}.stagger-item:nth-child(3){animation-delay:calc(3 * var(--stagger-delay))}.stagger-item:nth-child(4){animation-delay:calc(4 * var(--stagger-delay))}.stagger-item:nth-child(5){animation-delay:calc(5 * var(--stagger-delay))}.stagger-item:nth-child(6){animation-delay:calc(6 * var(--stagger-delay))}.stagger-item:nth-child(7){animation-delay:calc(7 * var(--stagger-delay))}.stagger-item:nth-child(8){animation-delay:calc(8 * var(--stagger-delay))}.stagger-item:nth-child(9){animation-delay:calc(9 * var(--stagger-delay))}.stagger-item:nth-child(10){animation-delay:calc(10 * var(--stagger-delay))}.stagger-item:nth-child(11){animation-delay:calc(11 * var(--stagger-delay))}.stagger-item:nth-child(12){animation-delay:calc(12 * var(--stagger-delay))}.loading-dots{display:inline-flex;gap:4px}.loading-dot{width:6px;height:6px;border-radius:50%;background:var(--color-accent);animation:loadingBounce 1.2s infinite ease-in-out both}.loading-dot:nth-child(1){animation-delay:-.32s}.loading-dot:nth-child(2){animation-delay:-.16s}.loading-dot:nth-child(3){animation-delay:0s}@keyframes loadingBounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.container{width:100%;max-width:1920px;margin:0 auto;padding:0 var(--spacing-lg)}.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}.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}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--duration-base);animation-timing-function:var(--spring-smooth)}::view-transition-old(modal){animation:modalExit var(--duration-fast) var(--ease-out-expo) both}::view-transition-new(modal){animation:modalEnter var(--duration-base) var(--spring-smooth) both}@keyframes modalEnter{0%{opacity:0;transform:scale(.95) translateY(8px);filter:blur(4px)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}@keyframes modalExit{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.98) translateY(-4px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.skeleton{animation:none;background:var(--color-bg-tertiary)}}@container (max-width: 300px){.responsive-text{font-size:var(--text-sm)}}@container (min-width: 300px){.responsive-text{font-size:var(--text-base)}}@container (min-width: 500px){.responsive-text{font-size:var(--text-lg)}}.widget-wrapper{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);border:1px solid transparent;border-radius:var(--radius-lg);-webkit-mask-image:linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0);padding:var(--spacing-sm);height:100%;display:flex;flex-direction:column;position:relative;overflow:hidden;box-shadow:0 4px 20px #0006,inset 0 1px 0 var(--subtle-overlay-8);transition:transform var(--duration-base) var(--spring-smooth),box-shadow var(--duration-base) var(--spring-smooth),border-color var(--duration-fast) var(--spring-smooth),backdrop-filter var(--duration-base) var(--spring-smooth);container-type:inline-size;container-name:widget;z-index:var(--z-widget)}.widget-wrapper.has-border{border-color:var(--glass-border)}.widget-wrapper.has-border:hover{border-color:var(--glass-border-hover)}.widget-wrapper.no-border{border-color:transparent;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.widget-wrapper.no-border:before,.widget-wrapper.no-border:after{display:none}.widget-wrapper.edit-mode{border-color:var(--subtle-shine)}.widget-wrapper.edit-mode.no-border{border-color:var(--color-border-hover);border-style:dashed;background:var(--color-bg-tertiary)}.widget-wrapper.edit-mode:hover{border-color:var(--glass-border-hover)}.widget-wrapper:before{content:"";position:absolute;top:0;left:var(--radius-lg);right:var(--radius-lg);height:1px;background:linear-gradient(90deg,transparent 0%,var(--subtle-shine) 10%,var(--color-border-hover) 50%,var(--subtle-shine) 90%,transparent 100%);opacity:.8}.widget-wrapper:after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.02;pointer-events:none;border-radius:inherit;mix-blend-mode:overlay}.widget-wrapper:hover{box-shadow:0 8px 24px #0006,0 0 24px #6483ff1a,inset 0 1px #ffffff1a;box-shadow:0 8px 24px #0006,0 0 24px oklch(65% .22 270 / .1),inset 0 1px #ffffff1a;backdrop-filter:blur(var(--glass-blur-strong)) saturate(200%);-webkit-backdrop-filter:blur(var(--glass-blur-strong)) saturate(200%);z-index:var(--z-widget-hover)}.widget-wrapper.is-dragging{box-shadow:var(--shadow-widget-active);transform:scale(1.02) rotate(.5deg);z-index:var(--z-widget-dragging);cursor:grabbing}.widget-wrapper:focus-within{border-color:var(--color-accent);box-shadow:var(--shadow-widget-active)}.widget-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);padding-bottom:var(--spacing-2xs);border-bottom:1px solid var(--subtle-overlay-4);flex-shrink:0}.widget-header.centered{justify-content:center;text-align:center}.widget-title{font-size:var(--text-sm);font-weight:600;margin:0;letter-spacing:-.01em;line-height:1.2;background:linear-gradient(180deg,var(--color-text-primary) 0%,oklch(85% .02 270) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.widget-header-actions{display:flex;gap:var(--spacing-2xs)}.widget-header-btn{width:24px;height:24px;min-width:24px;min-height:24px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--duration-fast) var(--spring-snappy)}.widget-header-btn:hover{background:var(--subtle-overlay-8);color:var(--color-text-primary)}.widget-header-btn:active{transform:scale(.9)}.widget-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.widget-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--spacing-sm);color:var(--color-text-secondary)}.loading-spinner{display:flex;gap:6px}.loading-spinner:before,.loading-spinner:after,.loading-spinner span{content:"";width:8px;height:8px;border-radius:50%;background:var(--color-accent);animation:loadingBounce 1.2s infinite ease-in-out}.loading-spinner:before{animation-delay:-.32s}.loading-spinner span{animation-delay:-.16s}.loading-spinner.legacy{display:block;width:28px;height:28px;border:2px solid var(--subtle-overlay-10);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s cubic-bezier(.5,0,.5,1) infinite;box-shadow:0 0 12px var(--color-accent-muted)}.loading-spinner.legacy:before,.loading-spinner.legacy:after,.loading-spinner.legacy span{display:none}.widget-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--spacing-sm);padding:var(--spacing-md);text-align:center}.error-icon{font-size:var(--text-3xl);color:var(--color-error);opacity:.8}.error-message{color:var(--color-text-secondary);font-size:var(--text-xs);max-width:200px;line-height:1.4}.error-retry-btn{margin-top:var(--spacing-xs);padding:var(--spacing-2xs) var(--spacing-sm);font-size:var(--text-xs);background:var(--color-error-bg);border:1px solid var(--color-error);color:var(--color-error);border-radius:var(--radius-sm)}.error-retry-btn:hover{background:var(--color-error);color:#fff}@container widget (max-width: 150px){.widget-wrapper{padding:var(--spacing-xs)}.widget-header{display:none}}@container widget (min-width: 151px) and (max-width: 200px){.widget-wrapper{padding:var(--spacing-xs)}.widget-header{margin-bottom:var(--spacing-2xs);padding-bottom:0;border-bottom:none}.widget-title{font-size:var(--text-2xs);font-weight:500;opacity:.7}}@container widget (min-width: 201px) and (max-width: 350px){.widget-wrapper{padding:var(--spacing-sm)}.widget-header{margin-bottom:var(--spacing-xs);padding-bottom:var(--spacing-2xs)}.widget-title{font-size:var(--text-xs)}}@container widget (min-width: 351px){.widget-wrapper{padding:var(--spacing-md)}.widget-title{font-size:var(--text-base)}}.widget-wrapper{animation:widgetEnter var(--duration-base) var(--spring-smooth) both}@keyframes widgetEnter{0%{opacity:0;transform:scale(.95) translateY(8px);filter:blur(4px)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}.react-grid-item:nth-child(1) .widget-wrapper{animation-delay:calc(1 * var(--stagger-delay))}.react-grid-item:nth-child(2) .widget-wrapper{animation-delay:calc(2 * var(--stagger-delay))}.react-grid-item:nth-child(3) .widget-wrapper{animation-delay:calc(3 * var(--stagger-delay))}.react-grid-item:nth-child(4) .widget-wrapper{animation-delay:calc(4 * var(--stagger-delay))}.react-grid-item:nth-child(5) .widget-wrapper{animation-delay:calc(5 * var(--stagger-delay))}.react-grid-item:nth-child(6) .widget-wrapper{animation-delay:calc(6 * var(--stagger-delay))}.react-grid-item:nth-child(7) .widget-wrapper{animation-delay:calc(7 * var(--stagger-delay))}.react-grid-item:nth-child(8) .widget-wrapper{animation-delay:calc(8 * var(--stagger-delay))}.react-grid-item:nth-child(9) .widget-wrapper{animation-delay:calc(9 * var(--stagger-delay))}.react-grid-item:nth-child(10) .widget-wrapper{animation-delay:calc(10 * var(--stagger-delay))}.react-grid-item:nth-child(11) .widget-wrapper{animation-delay:calc(11 * var(--stagger-delay))}.react-grid-item:nth-child(12) .widget-wrapper{animation-delay:calc(12 * var(--stagger-delay))}.clock-widget{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;gap:var(--spacing-2xs);padding:var(--spacing-xs);container-type:size;container-name:clock;overflow:hidden}.clock-time{font-size:clamp(1.75rem,15cqw,7rem);font-weight:700;color:var(--color-text-primary);font-variant-numeric:tabular-nums;line-height:.85;letter-spacing:-.05em;text-rendering:optimizeLegibility;text-shadow:0 0 40px var(--color-accent-subtle)}.clock-seconds{font-size:.5em;color:var(--color-text-tertiary);font-weight:500;vertical-align:super;margin-left:2px}.clock-date{font-size:clamp(.875rem,3.5cqw + .3rem,1.5rem);color:var(--color-text-secondary);text-align:center;text-transform:capitalize;font-weight:500;letter-spacing:.01em;margin-top:var(--spacing-2xs)}.clock-timezone{font-size:var(--text-2xs);color:var(--color-text-muted);text-align:center;padding:var(--spacing-2xs) var(--spacing-xs);background:#ffffff0a;border-radius:var(--radius-full);margin-top:var(--spacing-2xs)}@container clock (max-height: 40px){.clock-date,.clock-timezone,.clock-seconds{display:none}.clock-widget{gap:0;padding:var(--spacing-xs)}}@container clock (max-height: 120px){.clock-timezone{display:none}}@container clock (max-width: 150px){.clock-time{font-size:clamp(1.2rem,6cqw + .4rem,2rem)}.clock-date{font-size:var(--text-xs)}.clock-seconds{display:none}}@container clock (min-width: 200px) and (min-height: 150px){.clock-widget{gap:var(--spacing-sm)}}@container clock (min-width: 350px) and (min-height: 200px){.clock-widget{gap:var(--spacing-md);padding:var(--spacing-md)}.clock-time{letter-spacing:-.04em}}.clock-time{animation:clockPulse 1s ease-in-out infinite}@keyframes clockPulse{0%,to{opacity:1}50%{opacity:.95}}@media(prefers-reduced-motion:reduce){.clock-time{animation:none}}.clock-analog{position:relative;width:min(80cqw,80cqh,200px);height:min(80cqw,80cqh,200px);aspect-ratio:1;border-radius:50%;background:var(--subtle-overlay-6);border:2px solid var(--subtle-overlay-12)}.clock-analog-face{position:absolute;inset:0}.clock-analog-mark{position:absolute;top:8%;left:50%;width:2px;height:8%;background:var(--color-text-tertiary);transform-origin:50% 525%;border-radius:1px}.clock-analog-mark.major{width:3px;height:10%;background:var(--color-text-secondary);transform-origin:50% 450%}.clock-analog-hand{position:absolute;bottom:50%;left:50%;transform-origin:50% 100%;border-radius:2px}.clock-analog-hand.hour{width:4px;height:25%;margin-left:-2px;background:var(--color-text-primary)}.clock-analog-hand.minute{width:3px;height:35%;margin-left:-1.5px;background:var(--color-text-primary)}.clock-analog-hand.second{width:1px;height:40%;margin-left:-.5px;background:var(--color-accent)}.clock-analog-center{position:absolute;top:50%;left:50%;width:10px;height:10px;margin:-5px 0 0 -5px;background:var(--color-accent);border-radius:50%}@container clock (max-width: 150px){.clock-analog{width:min(70cqw,70cqh,100px);height:min(70cqw,70cqh,100px)}.clock-analog-mark{display:none}.clock-analog-mark.major{display:block}}.calendar-widget{display:flex;flex-direction:column;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-bg-tertiary) transparent;container-type:size;container-name:calendar}.calendar-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-tertiary);font-size:var(--text-sm)}.calendar-event-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.calendar-event{display:flex;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--subtle-overlay-3);border-radius:var(--radius-sm);border-left:2px solid var(--color-accent);transition:all var(--duration-fast) var(--spring-smooth);min-height:36px;align-items:center}.calendar-event:hover{background:var(--subtle-overlay-6)}.calendar-event:active{background:var(--subtle-overlay-8);transform:scale(.99)}.event-time{flex-shrink:0;font-size:var(--text-2xs);font-weight:600;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;min-width:65px}.event-details{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.event-title{font-size:var(--text-xs);font-weight:500;color:var(--color-text-primary);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-location{display:flex;align-items:center;gap:var(--spacing-2xs);font-size:var(--text-2xs);color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-icon{font-size:.6rem;flex-shrink:0}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-2xs) 0;margin-bottom:var(--spacing-xs);border-bottom:1px solid var(--subtle-overlay-4);flex-shrink:0}.calendar-connected-badge{display:flex;align-items:center;gap:var(--spacing-2xs);font-size:var(--text-2xs);color:var(--color-success);font-weight:500}.calendar-connected-badge:before{content:"";width:6px;height:6px;background:var(--color-success);border-radius:50%;animation:pulse 2s ease-in-out infinite}.calendar-signout-btn{font-size:var(--text-2xs);padding:var(--spacing-2xs) var(--spacing-xs);background:transparent;border:1px solid var(--color-border);color:var(--color-text-tertiary);border-radius:var(--radius-xs);cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);min-height:24px;min-width:auto}.calendar-signout-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.calendar-auth-prompt{text-align:center;padding:var(--spacing-sm);margin-top:var(--spacing-sm);background:var(--subtle-overlay-3);border-radius:var(--radius-md)}.calendar-auth-prompt p{margin:0 0 var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--text-xs)}.calendar-auth-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);min-height:32px}.calendar-auth-btn:hover{filter:brightness(1.1);box-shadow:0 2px 8px var(--color-accent-muted)}.calendar-demo-hint,.calendar-setup-hint,.calendar-privacy-hint{font-size:var(--text-2xs);color:var(--color-text-muted);margin-top:var(--spacing-xs)}.calendar-privacy-hint{font-style:italic}.calendar-loading{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-md);color:var(--color-text-secondary)}.calendar-spinner{width:14px;height:14px;border:2px solid var(--color-bg-tertiary);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}.calendar-error{text-align:center;padding:var(--spacing-sm);background:var(--color-error-bg);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--text-xs)}.calendar-error button{margin-top:var(--spacing-xs);padding:var(--spacing-2xs) var(--spacing-sm);background:var(--color-error);color:#fff;border:none;border-radius:var(--radius-xs);cursor:pointer;font-size:var(--text-2xs);min-height:28px}@container calendar (max-height: 60px){.calendar-header,.event-location{display:none}.calendar-event-list{gap:var(--spacing-2xs)}.calendar-event{padding:var(--spacing-2xs) var(--spacing-xs);min-height:28px}}@container calendar (max-width: 180px){.event-time,.event-location{display:none}}@container calendar (min-width: 280px) and (min-height: 200px){.calendar-event{padding:var(--spacing-sm);gap:var(--spacing-md)}.event-title{font-size:var(--text-sm)}.event-time{font-size:var(--text-xs);min-width:75px}}.dynamic-clock-widget{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;padding:8px;box-sizing:border-box;position:relative;font-family:SF Pro Display,-apple-system,BlinkMacSystemFont,sans-serif}.dynamic-clock-size-indicator{position:absolute;top:4px;right:4px;font-size:10px;color:var(--text-secondary, #888);opacity:.5;text-transform:uppercase}.dynamic-clock-tiny{display:flex;align-items:center;justify-content:center}.dynamic-clock-time-tiny{font-size:1.2rem;font-weight:600;color:var(--text-primary, #fff)}.dynamic-clock-small{display:flex;align-items:center;justify-content:center}.dynamic-clock-time-small{font-size:1.5rem;font-weight:600;color:var(--text-primary, #fff)}.dynamic-clock-medium{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.dynamic-clock-time-medium{font-size:2rem;font-weight:600;color:var(--text-primary, #fff)}.dynamic-clock-date-short{font-size:.9rem;color:var(--text-secondary, #aaa)}.dynamic-clock-large{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.dynamic-clock-time-large{font-size:2.5rem;font-weight:700;color:var(--text-primary, #fff)}.dynamic-clock-date-medium{font-size:1rem;color:var(--text-secondary, #aaa)}.dynamic-clock-timezone{font-size:.75rem;color:var(--text-tertiary, #666);opacity:.7}.dynamic-clock-xlarge{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:24px;width:100%;height:100%}.dynamic-clock-analog{flex-shrink:0}.dynamic-clock-digital{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.dynamic-clock-time-xlarge{font-size:3rem;font-weight:700;color:var(--text-primary, #fff)}.dynamic-clock-date-long{font-size:1.1rem;color:var(--text-secondary, #aaa)}.dynamic-clock-timezone-full{font-size:.85rem;color:var(--text-tertiary, #666);opacity:.7}.analog-clock{position:relative;width:120px;height:120px;border-radius:50%;background:var(--widget-bg-secondary, #2a2a2a);border:3px solid var(--border-color, #444)}.analog-clock-face{position:absolute;width:100%;height:100%}.analog-clock-mark{position:absolute;left:50%;top:4px;width:2px;height:8px;background:var(--text-secondary, #888);transform-origin:50% 56px;margin-left:-1px}.analog-clock-mark:nth-child(3n){height:12px;width:3px;background:var(--text-primary, #fff);margin-left:-1.5px}.analog-clock-hand{position:absolute;left:50%;bottom:50%;transform-origin:50% 100%;border-radius:2px}.analog-clock-hand.hour{width:4px;height:30px;background:var(--text-primary, #fff);margin-left:-2px}.analog-clock-hand.minute{width:3px;height:42px;background:var(--text-primary, #fff);margin-left:-1.5px}.analog-clock-hand.second{width:1px;height:48px;background:var(--accent-color, #3b82f6);margin-left:-.5px}.analog-clock-center{position:absolute;left:50%;top:50%;width:10px;height:10px;background:var(--accent-color, #3b82f6);border-radius:50%;transform:translate(-50%,-50%)}.size-tiny .analog-clock{width:60px;height:60px}.size-small .analog-clock{width:80px;height:80px}.size-medium .analog-clock{width:100px;height:100px}.size-large .analog-clock{width:110px;height:110px}.photo-slideshow-widget{position:relative;width:100%;height:100%;overflow:hidden;background:var(--color-bg-tertiary);border-radius:var(--radius-md);container-type:size;container-name:photo}.photo-container{position:relative;width:100%;height:100%}.photo-image{width:100%;height:100%;object-fit:cover}.photo-image.fit-cover{object-fit:cover}.photo-image.fit-contain{object-fit:contain}.photo-container.transition-fade .photo-image{animation:photoFadeIn var(--duration-slow) var(--spring-smooth)}@keyframes photoFadeIn{0%{opacity:0;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.photo-container.transition-slide .photo-image{animation:photoSlideIn var(--duration-slow) var(--spring-smooth)}@keyframes photoSlideIn{0%{opacity:0;transform:translate(10%)}to{opacity:1;transform:translate(0)}}.photo-container.transition-none .photo-image{animation:none}.photo-counter{position:absolute;top:var(--spacing-xs);left:var(--spacing-xs);padding:var(--spacing-2xs) var(--spacing-xs);background:#0009;color:#fff;font-size:var(--text-2xs);font-variant-numeric:tabular-nums;border-radius:var(--radius-xs);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.photo-title-overlay{position:absolute;bottom:32px;left:0;right:0;padding:var(--spacing-xs) var(--spacing-md);background:linear-gradient(transparent,#000000b3);color:#fff;font-size:var(--text-xs);text-align:center;pointer-events:none}.photo-nav{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center;padding:0 var(--spacing-xs);opacity:0;transition:opacity var(--duration-fast) var(--spring-smooth);pointer-events:none}.photo-slideshow-widget:hover .photo-nav{opacity:1;pointer-events:auto}.photo-nav-btn{width:28px;height:28px;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center;background:#00000080;color:#fff;border:none;border-radius:50%;font-size:16px;cursor:pointer;transition:all var(--duration-fast) var(--spring-snappy);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:0}.photo-nav-btn:hover{background:#000c;transform:scale(1.1)}.photo-nav-btn:active{transform:scale(.95)}.photo-indicators{position:absolute;bottom:var(--spacing-xs);left:50%;transform:translate(-50%);display:flex;gap:var(--spacing-2xs)}.photo-indicator{width:6px;height:6px;background:#fff6;border:none;border-radius:50%;cursor:pointer;padding:0;transition:all var(--duration-fast) var(--spring-snappy);min-width:auto;min-height:auto}.photo-indicator.active{background:#fff;transform:scale(1.3)}.photo-indicator:hover{background:#ffffffb3}.photo-auth-prompt{position:absolute;bottom:var(--spacing-sm);left:50%;transform:translate(-50%);text-align:center;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:var(--spacing-sm);border-radius:var(--radius-md);z-index:10}.photo-auth-prompt p{margin:0 0 var(--spacing-xs);color:#fff;font-size:var(--text-xs)}.photo-auth-btn{padding:var(--spacing-xs) var(--spacing-md);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);min-height:32px}.photo-auth-btn:hover{filter:brightness(1.1);box-shadow:0 2px 8px var(--color-accent-muted)}.photo-demo-hint,.photo-setup-hint,.photo-privacy-hint{font-size:var(--text-2xs);color:#fff9;margin-top:var(--spacing-xs)}.photo-privacy-hint{font-style:italic}.photo-signout-btn{position:absolute;top:var(--spacing-2xs);right:var(--spacing-2xs);font-size:var(--text-2xs);padding:var(--spacing-2xs) var(--spacing-xs);background:#00000080;color:#fff;border:none;border-radius:var(--radius-xs);cursor:pointer;opacity:0;transition:all var(--duration-fast) var(--spring-smooth);z-index:10;min-height:auto;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.photo-slideshow-widget:hover .photo-signout-btn{opacity:1}.photo-signout-btn:hover{background:#000c}.photo-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center}.photo-spinner{width:24px;height:24px;border:2px solid var(--color-bg-tertiary);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.photo-error-notice{position:absolute;top:var(--spacing-xs);left:50%;transform:translate(-50%);padding:var(--spacing-2xs) var(--spacing-sm);background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fffc;font-size:var(--text-2xs);border-radius:var(--radius-sm);z-index:15;max-width:90%;text-align:center;display:flex;align-items:center;gap:var(--spacing-xs)}.photo-error-link{color:var(--color-accent);text-decoration:underline;cursor:pointer}.photo-error-link:hover{color:#fff}.photo-controls{position:absolute;top:var(--spacing-2xs);right:var(--spacing-2xs);display:flex;gap:var(--spacing-2xs);opacity:0;transition:opacity var(--duration-fast) var(--spring-smooth);z-index:10}.photo-slideshow-widget:hover .photo-controls{opacity:1}.photo-control-btn{font-size:var(--text-2xs);padding:var(--spacing-2xs) var(--spacing-xs);background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;border:none;border-radius:var(--radius-xs);cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);min-height:auto}.photo-control-btn:hover{background:#000c}.photo-control-btn.danger:hover{background:var(--color-error)}.photo-picking-hint{font-size:var(--text-xs);color:#fff;margin-top:var(--spacing-xs)}@container photo (max-height: 60px){.photo-title-overlay{display:none}.photo-indicators{bottom:var(--spacing-2xs)}.photo-indicator{width:4px;height:4px}}@container photo (max-width: 150px){.photo-nav,.photo-indicators{display:none}}.weather-widget{display:flex;flex-direction:column;height:100%;padding:var(--spacing-xs);gap:var(--spacing-xs);container-type:size;container-name:weather}.weather-loading{display:flex;align-items:center;justify-content:center;height:100%}.weather-loading-text{color:var(--color-text-tertiary);font-size:var(--text-xs)}.weather-header{display:flex;justify-content:space-between;align-items:flex-start;flex-shrink:0;gap:var(--spacing-sm)}.weather-current{display:flex;flex-direction:column;gap:1px}.weather-temp-current{font-size:clamp(1.25rem,5cqw + .5rem,2.5rem);font-weight:600;color:var(--color-text-primary);line-height:1;letter-spacing:-.02em}.weather-feels-like{font-size:var(--text-2xs);color:var(--color-text-tertiary)}.weather-location{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--text-xs);color:var(--color-text-secondary)}.weather-demo-badge{font-size:.6rem;padding:1px 4px;background:#f5ae3933;color:var(--color-warning);border-radius:var(--radius-xs);text-transform:uppercase;font-weight:600}.weather-icon-current{font-size:clamp(1rem,3cqw + .5rem,1.5rem)}.weather-graph{flex:1;min-height:40px;position:relative}.weather-temp-graph{width:100%;height:100%}.weather-graph-label{font-size:9px;font-weight:600;fill:var(--color-text-primary)}.weather-graph-label.max{fill:var(--color-error)}.weather-graph-label.min{fill:#009cce;fill:oklch(65% .18 230)}.weather-timeline{display:flex;flex-direction:column;gap:2px;flex-shrink:0}.weather-time-labels{display:flex;justify-content:space-between;padding:0 2px}.weather-time-label{font-size:.6rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.weather-icons-row{display:flex;justify-content:space-between;padding:0 2px}.weather-icon-small{font-size:.8rem}.weather-widget.size-compact{padding:var(--spacing-2xs);gap:var(--spacing-2xs)}.weather-widget.size-compact .weather-temp-current{font-size:1.25rem}.weather-widget.size-compact .weather-location{font-size:.65rem}.weather-widget.size-compact .weather-icon-current{font-size:1rem}.weather-widget.size-compact .weather-graph{min-height:30px}.weather-widget.size-compact .weather-feels-like{display:none}.weather-widget.size-medium{padding:var(--spacing-sm);gap:var(--spacing-xs)}.weather-widget.size-medium .weather-temp-current{font-size:1.5rem}.weather-widget.size-large{padding:var(--spacing-md);gap:var(--spacing-sm)}.weather-widget.size-large .weather-temp-current{font-size:2rem}.weather-widget.size-large .weather-feels-like{font-size:var(--text-xs)}.weather-widget.size-large .weather-location{font-size:var(--text-sm)}.weather-widget.size-large .weather-icon-current{font-size:1.5rem}.weather-widget.size-large .weather-time-label{font-size:.7rem}.weather-widget.size-large .weather-icon-small{font-size:1rem}.weather-widget.size-large .weather-graph-label{font-size:11px}@container weather (max-height: 50px){.weather-timeline,.weather-graph,.weather-feels-like{display:none}.weather-widget{justify-content:center}}@container weather (max-width: 150px){.weather-location,.weather-timeline{display:none}}@container weather (min-width: 300px) and (min-height: 180px){.weather-widget{padding:var(--spacing-md);gap:var(--spacing-sm)}}.analog-clock-widget{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm);container-type:size;container-name:analog-clock}.analog-clock-face{position:relative;width:min(90%,90cqmin);aspect-ratio:1;border-radius:50%;background:#ffffff08;border:2px solid oklch(100% 0 0 / .1);box-shadow:0 4px 16px #0000004d,inset 0 2px 8px #0003}.clock-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:10px;height:10px;background:var(--color-warning);border-radius:50%;z-index:10;box-shadow:0 0 8px #f5ae3980}.clock-hand{position:absolute;bottom:50%;left:50%;transform-origin:bottom center;background:linear-gradient(to top,#f8f8f8e6,#f8f8f8b3);border-radius:2px;box-shadow:0 2px 6px #0000004d}.hour-hand{width:5px;height:22%;margin-left:-2.5px;z-index:3}.minute-hand{width:3px;height:32%;margin-left:-1.5px;z-index:4}.second-hand{width:1.5px;height:38%;margin-left:-.75px;background:var(--color-error);z-index:5;box-shadow:0 2px 6px #f9414466}.variant-minimalist .clock-mark{position:absolute;top:6%;left:50%;width:1.5px;height:6px;background:#ffffff4d;transform-origin:50% calc(50cqmin - 6%);margin-left:-.75px}.variant-minimalist .hour-hand,.variant-minimalist .minute-hand{width:2px;margin-left:-1px}.variant-minimalist .clock-center{width:6px;height:6px;background:#f8f8f8cc}.variant-classic{background:linear-gradient(135deg,#ffffff0d,#ffffff05);border:2px solid oklch(75% .1 85 / .3);box-shadow:0 4px 20px #0006,inset 0 2px 10px #cba9601a}.classic-marks .clock-numeral{position:absolute;transform:translate(-50%,-50%);font-family:Georgia,serif;color:#cba960e6;font-weight:300;text-shadow:0 2px 4px oklch(0% 0 0 / .5);font-size:clamp(.6rem,3cqmin,1rem)}.variant-classic .hour-hand,.variant-classic .minute-hand{background:linear-gradient(to top,#cba960e6,#cba960b3);box-shadow:0 2px 6px #cba96066}.variant-classic .clock-center{background:#cba960;box-shadow:0 0 8px #cba96099}.variant-modern{background:#0000004d;border:3px solid oklch(65% .2 250 / .4);box-shadow:0 4px 20px #0092f94d,inset 0 2px 10px #0000004d;box-shadow:0 4px 20px oklch(65% .2 250 / .3),inset 0 2px 10px #0000004d}.modern-marks .clock-numeral{position:absolute;transform:translate(-50%,-50%);font-family:var(--font-family-sans);color:var(--color-text-primary);font-weight:700;font-size:clamp(.7rem,3.5cqmin,1.2rem);text-shadow:0 2px 6px oklch(65% .2 250 / .5)}.variant-modern .hour-hand,.variant-modern .minute-hand{width:6px;margin-left:-3px;background:linear-gradient(to top,#0092f9,#3fa3ff);background:linear-gradient(to top,color(xyz 0.279 0.273 1.011),color(xyz 0.336 0.343 1.076));box-shadow:0 2px 8px #0092f999;box-shadow:0 2px 8px oklch(65% .2 250 / .6)}.variant-modern .minute-hand{width:4px;margin-left:-2px}.variant-modern .clock-center{width:12px;height:12px;background:#0092f9;background:oklch(65% .2 250);box-shadow:0 0 12px #0092f9cc;box-shadow:0 0 12px oklch(65% .2 250 / .8)}.variant-nordic{background:linear-gradient(135deg,#ffffff05,#ffffff03);border:1px solid oklch(100% 0 0 / .12);box-shadow:0 4px 16px #0003,inset 0 1px 4px #ffffff0d}.nordic-marks .clock-mark{position:absolute;top:8%;left:50%;width:1.5px;height:8px;background:#fff6;transform-origin:50% calc(50cqmin - 8%);margin-left:-.75px}.nordic-marks .clock-mark.main-hour{width:3px;height:14px;margin-left:-1.5px;background:#ffffffb3}.variant-nordic .hour-hand,.variant-nordic .minute-hand{background:linear-gradient(to top,#f8f8f8e6,#f8f8f8b3);border-radius:3px}.variant-nordic .clock-center{width:8px;height:8px;background:#f8f8f8e6;box-shadow:0 0 6px #ffffff4d}@container analog-clock (max-width: 120px){.clock-center{width:6px;height:6px}.hour-hand{width:3px;margin-left:-1.5px}.minute-hand{width:2px;margin-left:-1px}.second-hand{width:1px;margin-left:-.5px}.classic-marks .clock-numeral,.modern-marks .clock-numeral{display:none}}@container analog-clock (min-width: 200px){.analog-clock-widget{padding:var(--spacing-md)}}.quote-widget{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--spacing-md);position:relative;background:linear-gradient(135deg,oklch(var(--quote-bg-lightness, 65%) .18 var(--theme-accent-hue, 230) / .08),oklch(var(--quote-bg-lightness, 65%) .18 calc(var(--theme-accent-hue, 230) + 60) / .06));border-radius:var(--radius-md);container-type:size;container-name:quote}[data-theme=light] .quote-widget{--quote-bg-lightness: 50%;background:linear-gradient(135deg,oklch(50% .12 var(--theme-accent-hue, 230) / .06),oklch(50% .12 calc(var(--theme-accent-hue, 230) + 60) / .04))}.quote-content{position:relative;text-align:center;max-width:100%;z-index:1}.quote-mark{font-family:Georgia,serif;font-size:clamp(1.5rem,4cqw + .5rem,3rem);color:var(--color-accent-muted);line-height:0;-webkit-user-select:none;user-select:none;opacity:.5}.quote-mark.opening{position:absolute;top:-.5rem;left:-.5rem}.quote-mark.closing{position:absolute;bottom:-1rem;right:-.5rem}.quote-text{font-family:Georgia,serif;font-size:clamp(.85rem,2.5cqw + .4rem,1.35rem);line-height:1.6;color:var(--color-text-primary);font-weight:400;font-style:italic;margin:0;padding:0 var(--spacing-md);text-shadow:0 1px 4px oklch(0% 0 0 / .2);text-wrap:balance}.quote-widget.font-size-small .quote-text{font-size:clamp(.7rem,1.8cqw + .3rem,1rem)}.quote-widget.font-size-small .quote-author{font-size:clamp(.6rem,1.2cqw + .25rem,.8rem)}.quote-widget.font-size-small .quote-mark{font-size:clamp(1rem,3cqw + .3rem,2rem)}.quote-widget.font-size-large .quote-text{font-size:clamp(1rem,3.5cqw + .5rem,1.75rem)}.quote-widget.font-size-large .quote-author{font-size:clamp(.8rem,1.8cqw + .35rem,1.1rem)}.quote-widget.font-size-large .quote-mark{font-size:clamp(2rem,5cqw + .7rem,4rem)}.quote-author{margin-top:var(--spacing-sm);font-size:clamp(.7rem,1.5cqw + .3rem,.95rem);color:var(--color-text-secondary);font-weight:500;letter-spacing:.03em}.quote-author:before{content:"— ";color:var(--color-text-tertiary)}.quote-refresh-btn{position:absolute;bottom:var(--spacing-xs);right:var(--spacing-xs);background:var(--subtle-overlay-6);border:1px solid var(--subtle-overlay-10);border-radius:50%;width:28px;height:28px;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--duration-fast) var(--spring-snappy);padding:0;opacity:.5}.quote-widget:hover .quote-refresh-btn{opacity:1}.quote-refresh-btn:hover{background:var(--subtle-overlay-12);border-color:var(--color-accent-muted);transform:rotate(90deg)}.quote-refresh-btn:active{transform:rotate(180deg) scale(.95)}.quote-refresh-icon{width:14px;height:14px;color:var(--color-text-secondary)}.quote-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);color:var(--color-text-tertiary);height:100%}.quote-loading-spinner{width:24px;height:24px;border:2px solid var(--subtle-overlay-10);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.quote-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);height:100%}.quote-error-text{color:var(--color-error);font-size:var(--text-xs)}.quote-retry-btn{background:var(--subtle-overlay-6);border:1px solid var(--subtle-overlay-10);color:var(--color-text-primary);padding:var(--spacing-2xs) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);font-size:var(--text-xs);min-height:28px}.quote-retry-btn:hover{background:var(--subtle-overlay-12);border-color:var(--color-accent-muted)}@container quote (max-height: 50px){.quote-mark,.quote-author,.quote-refresh-btn{display:none}.quote-text{padding:0;font-size:clamp(.75rem,2cqw + .3rem,1rem);line-height:1.4}.quote-widget{padding:var(--spacing-xs)}}@container quote (max-width: 200px){.quote-mark{display:none}.quote-text{padding:0}.quote-author{font-size:var(--text-2xs);margin-top:var(--spacing-xs)}}@container quote (min-width: 350px) and (min-height: 200px){.quote-widget{padding:var(--spacing-xl)}.quote-text{padding:0 var(--spacing-xl)}.quote-refresh-btn{bottom:var(--spacing-sm);right:var(--spacing-sm);width:32px;height:32px}}.simple-weather-widget{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:linear-gradient(135deg,#009fc11a,#00aca817,#5bb66114);background:linear-gradient(135deg,color(xyz 0.209 0.292 0.707 / 0.102),color(xyz 0.207 0.325 0.437 / 0.09),#5bb66114);border-radius:var(--radius-md);container-type:size;container-name:simple-weather}.simple-weather-icon{font-size:clamp(2rem,8cqw + 1rem,4rem);line-height:1;filter:drop-shadow(0 4px 12px oklch(0% 0 0 / .3));animation:weatherFloat 4s ease-in-out infinite}@keyframes weatherFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.simple-weather-temp{font-size:clamp(1.5rem,6cqw + .5rem,3.5rem);font-weight:700;color:var(--color-text-primary);text-shadow:0 2px 8px oklch(0% 0 0 / .3);letter-spacing:-.03em;line-height:1}.simple-weather-location{font-size:clamp(.7rem,2cqw + .3rem,1rem);color:var(--color-text-secondary);font-weight:500;text-align:center;display:flex;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;justify-content:center}.simple-weather-tomorrow-badge{display:inline-block;background:#009fc133;background:oklch(65% .18 220 / .2);border:1px solid oklch(65% .18 220 / .3);padding:var(--spacing-2xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--text-2xs);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.simple-weather-loading{display:flex;align-items:center;justify-content:center;height:100%}.simple-weather-spinner{width:32px;height:32px;border:3px solid oklch(100% 0 0 / .1);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.simple-weather-error{display:flex;align-items:center;justify-content:center;color:var(--color-error);font-size:var(--text-xs);text-align:center;height:100%}@container simple-weather (max-height: 50px){.simple-weather-widget{gap:var(--spacing-xs);padding:var(--spacing-xs);flex-direction:row}.simple-weather-location,.simple-weather-tomorrow-badge{display:none}}@container simple-weather (max-width: 150px){.simple-weather-location{display:none}}@container simple-weather (min-width: 250px) and (min-height: 180px){.simple-weather-widget{gap:var(--spacing-md);padding:var(--spacing-lg)}}@media(prefers-reduced-motion:reduce){.simple-weather-icon{animation:none}}.weather-alert-widget{width:100%;height:100%;display:flex;flex-direction:column;padding:1rem;overflow-y:auto}.weather-alert-list{display:flex;flex-direction:column;gap:1rem}.weather-alert-item{background:#ffffff08;border-left:4px solid;border-radius:8px;padding:1rem;transition:all .2s ease}.weather-alert-item:hover{background:#ffffff0d;transform:translate(4px)}.weather-alert-item.severity-yellow{border-left-color:#fbbf24;background:linear-gradient(to right,#fbbf241a,#ffffff08)}.weather-alert-item.severity-orange{border-left-color:#fb923c;background:linear-gradient(to right,#fb923c26,#ffffff08)}.weather-alert-item.severity-red{border-left-color:#ef4444;background:linear-gradient(to right,#ef444433,#ffffff08)}.weather-alert-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.weather-alert-severity-badge{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#ffffffe6}.weather-alert-event{font-size:1.1rem;font-weight:600;color:#fffffff2;margin:0 0 .5rem}.weather-alert-description{font-size:.95rem;line-height:1.5;color:#ffffffb3;margin:0 0 .75rem}.weather-alert-validity{font-size:.85rem;color:#ffffff80;font-style:italic}.weather-alert-none{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:center}.weather-alert-icon-safe{width:80px;height:80px;background:linear-gradient(135deg,#10b98133,#0596691a);border:3px solid rgba(16,185,129,.4);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3rem;color:#10b981e6;font-weight:700}.weather-alert-safe-title{font-size:1.5rem;font-weight:600;color:#10b981e6;margin:0}.weather-alert-safe-text{font-size:1rem;color:#fff9;margin:0}.weather-alert-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:#fff9}.weather-alert-spinner{width:40px;height:40px;border:3px solid rgba(239,68,68,.2);border-top-color:#ef4444cc;border-radius:50%;animation:spin 1s linear infinite}@media(max-width:768px){.weather-alert-widget,.weather-alert-item{padding:.75rem}.weather-alert-event{font-size:1rem}.weather-alert-description{font-size:.9rem}}@media(max-width:480px){.weather-alert-widget{padding:.5rem}.weather-alert-list{gap:.75rem}.weather-alert-item{padding:.5rem;border-left-width:3px}.weather-alert-event{font-size:.95rem}.weather-alert-description{font-size:.85rem}.weather-alert-severity-badge{font-size:.75rem}.weather-alert-icon-safe{width:60px;height:60px;font-size:2rem}.weather-alert-safe-title{font-size:1.2rem}}.world-clocks-widget{display:flex;flex-direction:column;gap:.5rem;height:100%;padding:.5rem}.world-clock-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--widget-item-bg, rgba(255, 255, 255, .03));border-radius:8px;transition:background .2s ease}.world-clock-item:hover{background:var(--widget-item-hover-bg, rgba(255, 255, 255, .06))}.world-clock-item.bg-day{background:#fbbf241a;border-left:3px solid rgba(251,191,36,.5)}.world-clock-item.bg-night{background:#6366f11a;border-left:3px solid rgba(99,102,241,.5)}.clock-indicator{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px}.day-night-emoji{font-size:1.1rem;line-height:1}.day-night-dot{width:10px;height:10px;border-radius:50%;transition:background .3s ease}.day-night-dot.day{background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 0 8px #fbbf2480}.day-night-dot.night{background:linear-gradient(135deg,#6366f1,#4f46e5);box-shadow:0 0 8px #6366f166}.clock-info{flex:1;display:flex;flex-direction:column;min-width:0;gap:.125rem}.clock-label{font-weight:500;font-size:.9rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clock-meta{display:flex;gap:.5rem;font-size:.7rem;color:var(--text-secondary, rgba(255, 255, 255, .5))}.clock-offset{color:var(--text-secondary, rgba(255, 255, 255, .5))}.clock-date-diff{color:var(--color-warning, #f59e0b);font-weight:500}.clock-time{font-family:var(--font-mono, "SF Mono", "Monaco", monospace);font-size:1.1rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.world-clocks-widget.layout-compact{padding:.25rem;gap:.25rem}.layout-compact .world-clock-item{padding:.25rem .5rem;gap:.5rem}.layout-compact .clock-indicator{width:16px}.layout-compact .day-night-dot{width:8px;height:8px}.layout-compact .clock-label{font-size:.8rem}.layout-compact .clock-meta{display:none}.layout-compact .clock-time{font-size:.9rem}.world-clocks-widget.layout-list{padding:.5rem}.world-clocks-widget.layout-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;padding:.5rem}.layout-grid .world-clock-item{flex-direction:column;align-items:center;text-align:center;padding:.75rem}.layout-grid .clock-indicator{order:1;width:auto;margin-bottom:.25rem}.layout-grid .day-night-dot{width:12px;height:12px}.layout-grid .clock-info{order:2;align-items:center}.layout-grid .clock-meta{justify-content:center}.layout-grid .clock-time{order:3;font-size:1.25rem;margin-top:.25rem}.month-calendar-widget{display:flex;flex-direction:column;height:100%;padding:.5rem;gap:.5rem}.calendar-header{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:0 .25rem}.nav-btn{background:#3b82f61a;border:none;color:#3b82f6;font-size:1.5rem;padding:.5rem .75rem;cursor:pointer;border-radius:6px;transition:all .2s ease;line-height:1;font-weight:600}.nav-btn:hover{background:#3b82f633;color:#2563eb;transform:scale(1.05)}.month-title{background:none;border:none;color:var(--color-text-primary, #1e293b);font-size:1.1rem;font-weight:700;cursor:pointer;padding:.5rem 1rem;border-radius:6px;transition:all .2s ease}.month-title:hover{background:#3b82f61a;color:#3b82f6}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;flex:1}.calendar-grid.with-week-numbers{grid-template-columns:auto repeat(7,1fr)}.weekday-header{text-align:center;font-size:.7rem;font-weight:600;color:var(--color-text-secondary, #64748b);padding:.25rem;text-transform:uppercase;letter-spacing:.05em}.weekday-header.weekend{color:var(--color-warning, #f59e0b)}.weekday-header.week-number{color:var(--color-text-secondary, #64748b);font-size:.75rem;font-weight:700}.week-number{display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:var(--color-accent, #3b82f6);padding:.25rem;min-width:1.8rem}.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;border-radius:4px;cursor:default;transition:background .2s ease;padding:2px;min-height:0;overflow:hidden}.calendar-day.with-namedays{aspect-ratio:auto;min-height:2.5rem}.calendar-day:hover{background:var(--widget-item-hover-bg, rgba(255, 255, 255, .05))}.day-number{font-size:.85rem;font-weight:500;color:var(--color-text-primary, #1e293b);line-height:1}.name-day{font-size:.55rem;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.2;margin-top:2px}.calendar-day.today .name-day{font-size:.65rem;color:#fff;font-weight:600}.calendar-day.prev .name-day,.calendar-day.next .name-day{color:#64748b;opacity:.5}.name-day.highlighted{color:#10b981;font-weight:600}.calendar-day.has-highlight{background:#10b98133}.calendar-day.has-highlight:hover{background:#10b9814d}.calendar-day.today .name-day.highlighted{color:#a7f3d0}.calendar-day.today.has-highlight{background:linear-gradient(135deg,#3b82f6,#10b981)}.calendar-day.prev .day-number,.calendar-day.next .day-number{color:var(--color-text-tertiary, #cbd5e1);opacity:.5}.calendar-day.weekend .day-number{color:var(--color-warning, #f59e0b)}.calendar-day.prev.weekend .day-number,.calendar-day.next.weekend .day-number{color:#f59e0b4d}.calendar-day.today{background:var(--color-primary, #3b82f6)}.calendar-day.today .day-number{color:#fff;font-weight:700}.calendar-day.red-day .day-number{color:#ef4444}.calendar-day.today.red-day{background:#ef4444}.calendar-day.today.red-day .day-number{color:#fff}.calendar-day.school-holiday{background:#a855f726}.calendar-day.school-holiday:hover{background:#a855f740}.school-holiday-indicator{font-size:.45rem;color:#a855f7;text-transform:uppercase;font-weight:600;letter-spacing:.02em}.calendar-day.today.school-holiday{background:linear-gradient(135deg,#3b82f6,#a855f7)}.calendar-day.today .school-holiday-indicator{color:#ffffffe6}@media(max-width:300px){.weekday-header{font-size:.6rem}.day-number{font-size:.75rem}.month-title{font-size:.9rem}}.notes-widget{display:flex;flex-direction:column;height:100%;padding:.5rem;gap:.5rem}.notes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem;flex:1;overflow-y:auto}.notes-grid:has(.note-card:only-child){grid-template-columns:1fr}.note-card{position:relative;display:flex;flex-direction:column;min-height:100px;border-radius:8px;padding:.5rem;box-shadow:0 2px 4px #0000001a;transition:box-shadow .2s ease,transform .2s ease}.note-card:hover{box-shadow:0 4px 8px #00000026}.note-card:focus-within{box-shadow:0 4px 12px #0003;transform:scale(1.02)}.note-actions{position:absolute;top:.25rem;right:.25rem;display:flex;gap:.25rem;opacity:0;transition:opacity .2s ease}.note-card:hover .note-actions,.note-card:focus-within .note-actions{opacity:1}.note-action-btn{background:#0000001a;border:none;border-radius:4px;width:24px;height:24px;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.note-action-btn:hover{background:#0003}.note-action-btn.delete{font-size:1.1rem;font-weight:700;color:#00000080}.note-action-btn.delete:hover{background:#ef44444d;color:#dc2626}.note-content{flex:1;width:100%;min-height:60px;border:none;background:transparent;resize:none;font-family:inherit;font-size:.85rem;line-height:1.4;color:#1f2937;padding:.25rem;outline:none}.note-content::placeholder{color:#00000059}.add-note-btn{background:var(--widget-item-bg, rgba(255, 255, 255, .05));border:2px dashed var(--border-color, rgba(255, 255, 255, .1));border-radius:8px;padding:.75rem;color:var(--text-secondary, rgba(255, 255, 255, .5));font-size:.85rem;cursor:pointer;transition:all .2s ease}.add-note-btn:hover{background:var(--widget-item-hover-bg, rgba(255, 255, 255, .1));border-color:var(--text-secondary, rgba(255, 255, 255, .3));color:var(--text-primary)}@media(max-width:250px){.notes-grid{grid-template-columns:1fr}.note-card{min-height:80px}}.google-tasks-widget{display:flex;flex-direction:column;height:100%;padding:.5rem;gap:.5rem}.tasks-header{display:flex;justify-content:space-between;align-items:center;padding:0 .25rem;margin-bottom:.25rem}.tasks-connected-badge{font-size:.7rem;color:var(--color-success, #10b981);background:#10b9811a;padding:.25rem .5rem;border-radius:4px}.tasks-signout-btn{background:none;border:none;color:var(--text-secondary, rgba(255, 255, 255, .5));font-size:.7rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:all .2s ease}.tasks-signout-btn:hover{background:var(--widget-item-hover-bg, rgba(255, 255, 255, .1));color:var(--text-primary)}.tasks-list{display:flex;flex-direction:column;gap:.25rem;flex:1;overflow-y:auto}.task-item{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem;background:var(--widget-item-bg, rgba(255, 255, 255, .03));border-radius:6px;transition:background .2s ease}.task-item:hover{background:var(--widget-item-hover-bg, rgba(255, 255, 255, .06))}.task-checkbox{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:.9rem;color:var(--text-secondary, rgba(255, 255, 255, .5));border:1.5px solid var(--border-color, rgba(255, 255, 255, .2));border-radius:50%}.task-item.completed .task-checkbox{background:var(--color-success, #10b981);border-color:var(--color-success, #10b981);color:#fff;font-size:.7rem}.task-content{flex:1;display:flex;flex-direction:column;gap:.125rem;min-width:0}.task-title{font-size:.85rem;color:var(--text-primary);line-height:1.3}.task-item.completed .task-title{color:var(--text-secondary, rgba(255, 255, 255, .5));text-decoration:line-through}.task-due{font-size:.7rem;color:var(--text-secondary, rgba(255, 255, 255, .5))}.task-due.today{color:var(--color-primary, #3b82f6)}.task-due.overdue{color:var(--color-error, #ef4444)}.tasks-separator{font-size:.7rem;color:var(--text-tertiary, rgba(255, 255, 255, .3));text-transform:uppercase;letter-spacing:.05em;padding:.5rem 0 .25rem;margin-top:.25rem;border-top:1px solid var(--border-color, rgba(255, 255, 255, .1))}.tasks-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;color:var(--text-secondary);font-size:.85rem}.tasks-spinner{width:16px;height:16px;border:2px solid var(--border-color, rgba(255, 255, 255, .2));border-top-color:var(--color-primary, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}.tasks-error{padding:1rem;text-align:center;color:var(--color-error, #ef4444);font-size:.85rem}.tasks-error button{margin-top:.5rem;background:var(--color-error, #ef4444);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.8rem}.tasks-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:.9rem}.tasks-auth-prompt{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;margin-top:auto;border-top:1px solid var(--border-color, rgba(255, 255, 255, .1))}.tasks-auth-btn{background:var(--color-primary, #3b82f6);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem;transition:background .2s ease}.tasks-auth-btn:hover{background:var(--color-primary-hover, #2563eb)}.tasks-demo-hint{font-size:.75rem;color:var(--text-tertiary, rgba(255, 255, 255, .3));margin:0}.tasks-setup-hint{font-size:.7rem;color:var(--text-tertiary, rgba(255, 255, 255, .25));margin:0;text-align:center}.sun-widget{display:flex;align-items:center;justify-content:center;height:100%;padding:.75rem}.sun-widget.sun-empty{color:var(--text-secondary, rgba(255, 255, 255, .5));font-size:.85rem;text-align:center}.sun-table{width:100%;border-collapse:collapse;text-align:center}.sun-table thead tr{border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .1))}.sun-header-label{width:80px}.sun-header-col{font-size:.8rem;font-weight:600;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.05em;padding:.5rem .25rem}.sun-label{text-align:left;padding:.5rem .25rem;white-space:nowrap}.sun-icon{display:inline-block;font-size:1rem;font-weight:700;width:1.25rem;margin-right:.375rem}.sunrise-icon{color:#f97316}.sunset-icon{color:#ef4444}.sun-text{font-size:.85rem;color:var(--text-secondary, #666)}.sun-time{font-family:var(--font-mono, "SF Mono", "Monaco", monospace);font-size:1.1rem;font-weight:600;color:var(--text-primary);padding:.5rem .25rem}.sun-duration{font-size:.9rem;color:var(--text-primary);padding:.5rem .25rem}.sun-row.daylight td{padding-top:.75rem;border-top:1px solid var(--border-color, rgba(255, 255, 255, .1))}.diff{display:inline-block;font-size:.65rem;margin-left:.25rem;padding:.1rem .3rem;border-radius:4px;font-weight:500;vertical-align:middle}.diff.positive{background:#22c55e26;color:#22c55e}.diff.negative{background:#ef444426;color:#ef4444}@container (max-width: 280px){.sun-header-col{font-size:.65rem;padding:.375rem .125rem}.sun-label{padding:.375rem .125rem}.sun-header-label{width:60px}.sun-icon{font-size:.85rem;width:1rem;margin-right:.25rem}.sun-text{font-size:.75rem}.sun-time{font-size:.9rem;padding:.375rem .125rem}.sun-duration{font-size:.75rem;padding:.375rem .125rem}.diff{font-size:.55rem;padding:.05rem .2rem}}@container (max-width: 180px){.sun-text{display:none}.sun-header-label{width:30px}.sun-icon{margin-right:0}}.clock-settings-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.widget-settings-tabs{display:flex;gap:var(--spacing-xs);padding:var(--spacing-2xs);background:var(--color-bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm)}.widget-settings-tab{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth)}.widget-settings-tab:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.widget-settings-tab.active{background:var(--color-accent);color:#fff}.settings-section-title{font-size:var(--text-xs);font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--spacing-md) 0}.appearance-settings{display:flex;flex-direction:column;gap:var(--spacing-lg)}.settings-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.settings-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary)}.settings-input,.settings-select{min-height:48px;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-base);color:var(--color-text-primary);background-color:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-md);transition:all .2s ease}.settings-input:focus,.settings-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #3b82f61a}.settings-checkbox-label{display:flex;align-items:center;gap:var(--spacing-md);font-size:var(--text-base);color:var(--color-text-primary);cursor:pointer;padding:var(--spacing-sm) 0}.settings-checkbox{min-width:24px;min-height:24px;width:24px;height:24px;cursor:pointer;accent-color:var(--color-accent)}.settings-hint{font-size:var(--text-xs);color:var(--color-text-secondary);margin:4px 0 0}.settings-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.settings-btn-primary,.settings-btn-secondary{min-height:48px;flex:1;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--text-base);font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;border:2px solid}.settings-btn-primary{background-color:var(--color-accent);color:var(--color-bg-primary);border-color:var(--color-accent)}.settings-btn-primary:hover{opacity:.9;transform:translateY(-1px);box-shadow:var(--shadow-md)}.settings-btn-secondary{background-color:transparent;color:var(--color-text-primary);border-color:var(--color-border)}.settings-btn-secondary:hover{background-color:var(--color-bg-hover);border-color:var(--color-accent)}.settings-btn-primary:active,.settings-btn-secondary:active{transform:translateY(0)}.settings-actions.single-action{justify-content:center}.settings-done-btn{min-width:120px;flex:none}.settings-location-current{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-tertiary);border-radius:var(--radius-md)}.settings-location-name{font-weight:500;color:var(--color-text-primary)}.settings-location-source{font-size:var(--text-xs);color:var(--color-text-secondary)}.settings-location-search{position:relative;margin-top:var(--spacing-sm)}.settings-searching{position:absolute;right:var(--spacing-md);top:50%;transform:translateY(-50%);font-size:var(--text-xs);color:var(--color-text-secondary)}.settings-location-results{list-style:none;padding:0;margin:var(--spacing-sm) 0 0 0;border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:200px;overflow-y:auto}.settings-location-results li{border-bottom:1px solid var(--color-border)}.settings-location-results li:last-child{border-bottom:none}.settings-location-result-btn{width:100%;padding:var(--spacing-sm) var(--spacing-md);text-align:left;background:none;border:none;cursor:pointer;color:var(--color-text-primary);display:flex;flex-direction:column;gap:2px}.settings-location-result-btn:hover{background-color:var(--color-bg-hover)}.settings-location-region{font-size:var(--text-xs);color:var(--color-text-secondary)}.settings-btn-link{background:none;border:none;color:var(--color-accent);cursor:pointer;padding:var(--spacing-xs) 0;font-size:var(--text-sm);text-decoration:underline}.settings-btn-link:hover{opacity:.8}.settings-chips{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.settings-chip{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-success-bg, rgba(16, 185, 129, .15));color:var(--color-success, #10b981);border-radius:var(--radius-full, 9999px);font-size:var(--text-sm);font-weight:500}.settings-chip-remove{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:#0003;border:none;border-radius:50%;color:inherit;font-size:14px;line-height:1;cursor:pointer;transition:background .15s ease}.settings-chip-remove:hover{background:#0006}.settings-autocomplete{position:relative}.settings-suggestions{position:absolute;top:100%;left:0;right:0;list-style:none;padding:0;margin:var(--spacing-xs) 0 0 0;background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:200px;overflow-y:auto;z-index:100;box-shadow:var(--shadow-lg)}.settings-suggestions li{border-bottom:1px solid var(--color-border)}.settings-suggestions li:last-child{border-bottom:none}.settings-suggestion{width:100%;padding:var(--spacing-sm) var(--spacing-md);text-align:left;background:none;border:none;cursor:pointer;color:var(--color-text-primary);font-size:var(--text-sm);transition:background .1s ease}.settings-suggestion:hover,.settings-suggestion.selected{background-color:var(--color-bg-hover)}.settings-suggestion.selected{background-color:var(--color-accent-subtle, rgba(59, 130, 246, .1))}.settings-modal-backdrop{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:var(--spacing-xl);padding-top:10vh}.settings-modal{background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.settings-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);border-bottom:1px solid var(--color-border);flex-shrink:0}.settings-modal-title{font-size:var(--text-xl);font-weight:600;color:var(--color-text-primary);margin:0;display:flex;align-items:center;gap:var(--spacing-sm)}.settings-modal-icon{font-size:1.2em}.settings-modal-close{min-width:44px;min-height:44px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--color-text-secondary);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.settings-modal-close:hover{background-color:var(--color-bg-hover);color:var(--color-text-primary)}.settings-modal-content{padding:var(--spacing-xl);overflow-y:auto;flex:1}.settings-placeholder{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-secondary)}.widget-container{position:relative;width:100%;height:100%;transition:all .2s ease}.widget-controls{position:absolute;top:8px;right:8px;display:flex;gap:8px;z-index:100;opacity:0;transition:opacity .2s ease;pointer-events:none}.widget-container.edit-mode .widget-controls{opacity:1;pointer-events:auto}.widget-control-btn{min-width:44px;min-height:44px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;background-color:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-md)}.widget-control-btn svg{width:22px;height:22px;stroke-width:2.5;transition:transform .2s ease}.widget-control-btn:hover{transform:scale(1.05);box-shadow:var(--shadow-lg)}.widget-control-btn:hover svg{transform:scale(1.1)}.widget-control-btn:active{transform:scale(.95)}.settings-btn{color:var(--color-text-primary)}.settings-btn:hover{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg-primary)}.delete-btn{color:#ef4444}.delete-btn:hover{background-color:#ef4444;border-color:#ef4444;color:#fff}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.widget-grid-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch;background:transparent}.widget-grid{position:relative;min-height:100%;background:transparent}.widget-grid-item{display:flex;overflow:hidden}.react-grid-item{transition:left var(--duration-base) var(--spring-smooth),top var(--duration-base) var(--spring-smooth),width var(--duration-base) var(--spring-smooth),height var(--duration-base) var(--spring-smooth)}.react-grid-item.cssTransforms{transition:transform var(--duration-base) var(--spring-smooth),width var(--duration-base) var(--spring-smooth),height var(--duration-base) var(--spring-smooth)}.react-grid-item.resizing,.react-grid-item.react-draggable-dragging{transition:none;z-index:var(--z-widget-dragging)}.react-grid-placeholder{background:var(--color-accent-subtle);border:2px dashed var(--color-accent-muted);border-radius:var(--radius-lg);opacity:.6;transition:all var(--duration-fast) var(--spring-smooth)}.react-grid-item>.react-resizable-handle{position:absolute;width:16px;height:16px;bottom:4px;right:4px;cursor:se-resize;opacity:0;transition:opacity var(--duration-fast) var(--spring-smooth)}.react-grid-item:hover>.react-resizable-handle{opacity:.6}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:2px;bottom:2px;width:8px;height:8px;border-right:2px solid var(--color-text-tertiary);border-bottom:2px solid var(--color-text-tertiary);border-radius:0 0 2px}.react-grid-item>.react-resizable-handle:hover:after{border-color:var(--color-accent)}.dashboard.edit-mode .react-grid-item{cursor:grab}.dashboard.edit-mode .react-grid-item:active{cursor:grabbing}.dashboard.edit-mode .react-grid-item:hover .widget-wrapper{border-color:var(--color-accent-muted)}.dashboard.edit-mode .react-grid-item:hover>.react-resizable-handle{opacity:1}.dashboard.edit-mode .react-grid-item:hover>.react-resizable-handle:after{border-color:var(--color-accent)}.dashboard.edit-mode .react-grid-item.react-draggable-dragging .widget-wrapper{box-shadow:var(--shadow-widget-active);border-color:var(--color-accent)}.react-grid-layout{--grid-margin: 8px}@media(max-width:768px){.react-grid-layout{--grid-margin: 6px}}@media(max-width:480px){.react-grid-layout{--grid-margin: 4px}}@media(min-width:1920px){.react-grid-layout{--grid-margin: 12px}}.widget-grid-loading{display:flex;align-items:center;justify-content:center;height:100%;min-height:200px}.widget-grid-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;gap:var(--spacing-md);text-align:center;padding:var(--spacing-2xl);animation:fadeIn var(--duration-slow) var(--spring-smooth) both}.widget-grid-empty-icon{font-size:var(--text-5xl);opacity:.3}.widget-grid-empty-text{color:var(--color-text-secondary);font-size:var(--text-lg)}.widget-grid-empty-hint{color:var(--color-text-tertiary);font-size:var(--text-sm)}.widget-grid-container.show-grid .widget-grid{background-image:repeating-linear-gradient(to right,transparent 0px,transparent calc((100% - 11 * 16px - 48px) / 12 - 2px),rgba(255,0,255,.4) calc((100% - 11 * 16px - 48px) / 12 - 2px),rgba(255,0,255,.4) calc((100% - 11 * 16px - 48px) / 12),transparent calc((100% - 11 * 16px - 48px) / 12),transparent calc((100% - 11 * 16px - 48px) / 12 + 16px)),repeating-linear-gradient(to bottom,transparent 0px,transparent 38px,rgba(255,0,255,.4) 38px,rgba(255,0,255,.4) 40px,transparent 40px,transparent 56px);background-position:24px 24px;background-size:calc(100% - 48px) auto}.widget-grid-container.show-grid:before{content:"Grid: 12 cols × 40px rows (16px gap, 24px padding)";position:fixed;bottom:20px;right:20px;background:#ff00ffe6;color:#fff;padding:8px 12px;border-radius:6px;font-size:11px;font-weight:600;z-index:10000;pointer-events:none;font-family:monospace;box-shadow:0 4px 12px #0000004d}.widget-picker-backdrop{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);padding:var(--spacing-lg);animation:backdropFadeIn var(--duration-fast) var(--spring-smooth) both}@keyframes backdropFadeIn{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}.widget-picker-modal{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-strong)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur-strong)) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:700px;max-height:75vh;display:flex;flex-direction:column;overflow:hidden;animation:modalSlideIn var(--duration-base) var(--spring-smooth) both;view-transition-name:modal}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(12px);filter:blur(4px)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}.widget-picker-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--glass-border);flex-shrink:0}.widget-picker-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0;letter-spacing:-.02em}.widget-picker-close{width:32px;height:32px;min-width:32px;min-height:32px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--color-text-secondary);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--spring-snappy);padding:0}.widget-picker-close:hover{background:#ffffff14;color:var(--color-text-primary)}.widget-picker-close:active{transform:scale(.9)}.widget-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--spacing-md);padding:var(--spacing-lg);overflow-y:auto;-webkit-overflow-scrolling:touch}.widget-picker-card{min-height:140px;display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--spacing-md);background:#ffffff0a;border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);position:relative;overflow:hidden}.widget-picker-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--color-accent-subtle) 0%,transparent 50%);opacity:0;transition:opacity var(--duration-fast) var(--spring-smooth)}.widget-picker-card:hover{border-color:var(--color-accent-muted);background:#ffffff14;transform:translateY(-4px) scale(1.02);box-shadow:var(--shadow-lg)}.widget-picker-card:hover:before{opacity:1}.widget-picker-card:active{transform:translateY(-2px) scale(1);box-shadow:var(--shadow-md)}.widget-picker-card{animation:cardEnter var(--duration-base) var(--spring-smooth) both}.widget-picker-card:nth-child(1){animation-delay:30ms}.widget-picker-card:nth-child(2){animation-delay:60ms}.widget-picker-card:nth-child(3){animation-delay:90ms}.widget-picker-card:nth-child(4){animation-delay:120ms}.widget-picker-card:nth-child(5){animation-delay:150ms}.widget-picker-card:nth-child(6){animation-delay:180ms}.widget-picker-card:nth-child(7){animation-delay:210ms}.widget-picker-card:nth-child(8){animation-delay:240ms}@keyframes cardEnter{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.widget-picker-card-icon{font-size:36px;margin-bottom:var(--spacing-sm);position:relative;z-index:1;transition:transform var(--duration-fast) var(--spring-bouncy)}.widget-picker-card:hover .widget-picker-card-icon{transform:scale(1.15)}.widget-picker-card-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-2xs) 0;position:relative;z-index:1}.widget-picker-card-description{font-size:var(--text-2xs);color:var(--color-text-secondary);margin:0;line-height:1.4;position:relative;z-index:1}@media(max-width:768px){.widget-picker-modal{max-width:95vw;max-height:85vh}.widget-picker-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--spacing-sm);padding:var(--spacing-md)}.widget-picker-card{min-height:120px;padding:var(--spacing-sm)}.widget-picker-card-icon{font-size:28px;margin-bottom:var(--spacing-xs)}}@media(max-width:480px){.widget-picker-backdrop{padding:var(--spacing-sm)}.widget-picker-grid{grid-template-columns:1fr 1fr;gap:var(--spacing-xs)}.widget-picker-header{padding:var(--spacing-sm) var(--spacing-md)}.widget-picker-title{font-size:var(--text-base)}}.theme-settings{display:flex;flex-direction:column;gap:var(--spacing-xl)}.theme-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.theme-section-title{font-size:var(--text-xs);font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin:0}.theme-mode-options{display:flex;gap:var(--spacing-xs);padding:var(--spacing-2xs);background:var(--color-bg-tertiary);border-radius:var(--radius-lg)}.theme-mode-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth)}.theme-mode-btn:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.theme-mode-btn.active{background:var(--color-accent);color:#fff;box-shadow:0 2px 8px var(--color-accent-muted)}.theme-mode-icon{font-size:var(--text-lg)}.theme-presets{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.theme-preset-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--color-bg-tertiary);border:2px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);overflow:hidden}.theme-preset-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--preset-color-1),var(--preset-color-2));opacity:.8}.theme-preset-card:hover{background:var(--color-bg-elevated);transform:translateY(-2px)}.theme-preset-card.active{border-color:var(--color-accent);background:var(--color-accent-subtle)}.theme-preset-preview{width:48px;height:32px;border-radius:var(--radius-sm);background:var(--preset-bg);border:1px solid var(--preset-border);display:flex;align-items:center;justify-content:center}.theme-preset-preview-dot{width:8px;height:8px;border-radius:50%;background:var(--preset-accent)}.theme-preset-name{font-size:var(--text-xs);font-weight:500;color:var(--color-text-primary);text-align:center}.theme-slider-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.theme-slider-row{display:flex;flex-direction:column;gap:var(--spacing-xs)}.theme-slider-header{display:flex;justify-content:space-between;align-items:center}.theme-slider-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.theme-slider-value{font-size:var(--text-xs);font-weight:500;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;min-width:40px;text-align:right}.theme-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);outline:none;cursor:pointer}.theme-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;background:var(--color-accent);border-radius:50%;cursor:pointer;box-shadow:0 2px 8px var(--color-accent-muted);transition:transform var(--duration-fast) var(--spring-snappy)}.theme-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.theme-slider::-webkit-slider-thumb:active{transform:scale(.95)}.theme-slider::-moz-range-thumb{width:18px;height:18px;background:var(--color-accent);border-radius:50%;border:none;cursor:pointer;box-shadow:0 2px 8px var(--color-accent-muted)}.theme-slider.hue-slider{background:linear-gradient(to right,#f13f8a,#ee4c6a,#ec5542 8.33%,#ec5824,#e56200,#da6d00,#d07500 16.67%,#af8a00,#849c00 33.33%,#74a000,#5ba600 37.5%,#52a700,#49a910 38.54%,#37aa2b,#1bac3c 40.62%,#00ac45,#00ac4f 41.67%,#00ab5f,#00aa6b 43.75%,#01a87c 45.83%,#00a692 50%,#00a1b5,#0099e0 66.67%,#0095f0 68.75%,#0092fa 69.79%,#0490ff,#228fff 70.83%,#3a8cff,#4a8aff 72.92%,#6483ff 75%,#8976ff,#a664fe 83.33%,#cc5bc5,#f13f8a);background:linear-gradient(to right,#f13f8a,#ee4c6a,#ec5542 8.33%,#ec5824,color(xyz 0.377 0.251 0.014),color(xyz 0.372 0.252 -0.013),color(xyz 0.367 0.253 -0.037) 16.67%,color(xyz 0.279 0.271 -0.03),color(xyz 0.2 0.289 -0.024) 33.33%,color(xyz 0.187 0.292 0.004),color(xyz 0.175 0.295 0.036) 37.5%,color(xyz 0.172 0.296 0.044),#49a910 38.54%,#37aa2b,#1bac3c 40.62%,color(xyz 0.157 0.301 0.103),color(xyz 0.155 0.301 0.113) 41.67%,color(xyz 0.151 0.303 0.136),color(xyz 0.147 0.304 0.16) 43.75%,color(xyz 0.141 0.306 0.212) 45.83%,color(xyz 0.133 0.311 0.334) 50%,color(xyz 0.187 0.297 0.633),color(xyz 0.26 0.28 1.037) 66.67%,color(xyz 0.274 0.275 1.028) 68.75%,color(xyz 0.281 0.273 1.024) 69.79%,color(xyz 0.284 0.272 1.022),color(xyz 0.288 0.271 1.02) 70.83%,color(xyz 0.295 0.269 1.015),color(xyz 0.302 0.267 1.011) 72.92%,color(xyz 0.317 0.262 1.002) 75%,color(xyz 0.349 0.254 0.985),#a664fe 83.33%,#cc5bc5,#f13f8a)}.theme-background-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.theme-background-preview{position:relative;width:100%;height:120px;border-radius:var(--radius-lg);background:var(--color-bg-tertiary);overflow:hidden;border:1px dashed var(--color-border)}.theme-background-preview.has-image{border-style:solid}.theme-background-preview img{width:100%;height:100%;object-fit:cover}.theme-background-preview-overlay{position:absolute;inset:0;background:oklch(8% .02 var(--theme-accent-hue) / var(--preview-overlay-opacity, .7));display:flex;align-items:center;justify-content:center}[data-theme=light] .theme-background-preview-overlay{background:oklch(95% .01 var(--theme-accent-hue) / var(--preview-overlay-opacity, .7))}.theme-background-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--spacing-xs);color:var(--color-text-tertiary)}.theme-background-placeholder-icon{font-size:var(--text-3xl);opacity:.5}.theme-background-placeholder-text{font-size:var(--text-xs)}.theme-background-actions{display:flex;gap:var(--spacing-sm)}.theme-background-btn{flex:1;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth)}.theme-background-btn.upload{background:var(--color-accent);border:none;color:#fff}.theme-background-btn.upload:hover{box-shadow:0 4px 12px var(--color-accent-muted)}.theme-background-btn.clear{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary)}.theme-background-btn.clear:hover{border-color:var(--color-error);color:var(--color-error);background:var(--color-error-bg)}.theme-background-btn:disabled{opacity:.5;cursor:not-allowed}.theme-background-input{display:none}.theme-background-url-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-sm);transition:border-color var(--duration-fast) var(--spring-smooth)}.theme-background-url-input::placeholder{color:var(--color-text-muted)}.theme-background-url-input:focus{outline:none;border-color:var(--color-accent)}.theme-reset-btn{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth)}.theme-reset-btn:hover{border-color:var(--color-error);color:var(--color-error);background:var(--color-error-bg)}.theme-live-preview{padding:var(--spacing-md);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-widget)}.theme-live-preview-title{font-size:var(--text-xs);font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--spacing-sm) 0}.theme-live-preview-content{display:flex;flex-direction:column;gap:var(--spacing-xs)}.theme-live-preview-text{font-size:var(--text-sm);color:var(--color-text-primary)}.theme-live-preview-subtext{font-size:var(--text-xs);color:var(--color-text-secondary)}.theme-live-preview-accent{margin-top:var(--spacing-xs);padding:var(--spacing-2xs) var(--spacing-sm);background:var(--color-accent);border-radius:var(--radius-sm);color:#fff;font-size:var(--text-xs);font-weight:500;width:fit-content}@media(prefers-reduced-motion:reduce){.theme-slider::-webkit-slider-thumb{transition:none}.theme-preset-card,.theme-mode-btn,.theme-background-btn{transition:none}.theme-preset-card:hover{transform:none}}@media(max-width:400px){.theme-presets{grid-template-columns:1fr}.theme-mode-options{flex-direction:column}}.account-settings-overlay{position:fixed;inset:0;background:#0000004d;display:flex;align-items:flex-start;justify-content:center;z-index:var(--z-modal);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding-top:8vh}.account-settings-panel{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-strong)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur-strong)) saturate(180%);border-radius:var(--radius-2xl);width:90%;max-width:520px;min-height:500px;max-height:85vh;box-shadow:var(--shadow-xl);border:1px solid var(--glass-border-hover);display:flex;flex-direction:column;overflow:hidden}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--color-border)}.settings-header h2{margin:0;font-size:var(--text-xl);color:var(--color-text-primary)}.close-btn{background:none;border:none;color:var(--color-text-tertiary);font-size:1.75rem;cursor:pointer;padding:0;line-height:1;transition:color var(--duration-fast) var(--spring-smooth)}.close-btn:hover{color:var(--color-text-primary)}.settings-content{padding:var(--spacing-xl);flex:1;overflow-y:auto;min-height:0}.settings-section{margin-bottom:var(--spacing-2xl)}.settings-section:last-child{margin-bottom:0}.settings-section h3{margin:0 0 var(--spacing-md) 0;font-size:var(--text-xs);font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.section-description{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0 0 var(--spacing-md) 0;line-height:1.5}.user-info{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-tertiary);border-radius:var(--radius-lg)}.user-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-hover) 100%);display:flex;align-items:center;justify-content:center;font-size:var(--text-xl);font-weight:600;color:#fff}.user-details{flex:1}.user-name{font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-2xs)}.user-email{font-size:var(--text-sm);color:var(--color-text-secondary)}.no-user{color:var(--color-text-tertiary);font-style:italic}.connection-status{padding:var(--spacing-md);border-radius:var(--radius-lg);background:var(--color-bg-tertiary)}.status-indicator{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:600;margin-bottom:var(--spacing-sm)}.status-dot{width:10px;height:10px;border-radius:50%}.connected .status-dot{background:var(--color-success);box-shadow:0 0 8px var(--color-success-bg)}.connected .status-indicator{color:var(--color-success)}.disconnected .status-dot{background:var(--color-text-muted)}.disconnected .status-indicator{color:var(--color-text-secondary)}.status-info{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0 0 var(--spacing-md) 0;line-height:1.5}.privacy-info{color:var(--color-text-muted);font-size:var(--text-xs);font-style:italic;margin:0 0 var(--spacing-md) 0;line-height:1.4}.not-configured code{background:var(--color-bg-elevated);padding:2px 6px;border-radius:var(--radius-xs);font-family:var(--font-family-mono);font-size:.85em}.connect-btn,.disconnect-btn{width:100%;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);border:none}.connect-btn{background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-hover) 100%);color:#fff}.connect-btn:hover{background:linear-gradient(135deg,var(--color-accent-hover) 0%,oklch(65% .24 290) 100%);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px var(--color-accent-muted)}.disconnect-btn{background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error)}.disconnect-btn:hover{background:var(--color-error);color:#fff}.loading-state{color:var(--color-text-tertiary);font-style:italic;padding:var(--spacing-md);text-align:center}.settings-actions{padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.logout-btn{width:100%;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.logout-btn:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.location-current{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:var(--color-bg-tertiary);border-radius:var(--radius-lg)}.location-info{display:flex;flex-direction:column;gap:var(--spacing-2xs)}.location-name{font-weight:600;color:var(--color-text-primary)}.location-coords{font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.location-buttons{display:flex;gap:var(--spacing-sm)}.location-change-btn{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);background:var(--color-bg-elevated);color:var(--color-text-secondary);border:1px solid var(--color-border)}.location-change-btn:hover{background:var(--color-accent-subtle);color:var(--color-text-primary);border-color:var(--color-accent-muted)}.location-clear-btn{padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);background:var(--color-error-bg);color:var(--color-error);border:1px solid var(--color-error)}.location-clear-btn:hover{background:var(--color-error);color:#fff}.location-search-container{display:flex;flex-direction:column;gap:var(--spacing-md)}.location-input-wrapper{position:relative}.location-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--text-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-primary);transition:border-color var(--duration-fast) var(--spring-smooth)}.location-search-input::placeholder{color:var(--color-text-muted)}.location-search-input:focus{outline:none;border-color:var(--color-accent-muted)}.location-searching{position:absolute;right:var(--spacing-md);top:50%;transform:translateY(-50%);font-size:var(--text-xs);color:var(--color-text-tertiary)}.location-results{list-style:none;margin:0;padding:0;background:var(--color-bg-tertiary);border-radius:var(--radius-md);overflow:hidden}.location-results li{border-bottom:1px solid var(--color-border)}.location-results li:last-child{border-bottom:none}.location-result-btn{width:100%;padding:var(--spacing-sm) var(--spacing-md);text-align:left;background:none;border:none;color:var(--color-text-primary);cursor:pointer;transition:background var(--duration-fast) var(--spring-smooth);display:flex;flex-direction:column;gap:var(--spacing-2xs)}.location-result-btn:hover{background:var(--color-bg-elevated)}.location-result-name{font-weight:500}.location-result-region{font-size:var(--text-xs);color:var(--color-text-secondary)}.location-gps-btn{width:100%;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.location-gps-btn:hover:not(:disabled){background:var(--color-bg-elevated);color:var(--color-text-primary)}.location-gps-btn:disabled{cursor:not-allowed;opacity:.6}.settings-tabs{display:flex;gap:0;padding:0 var(--spacing-xl);border-bottom:1px solid var(--color-border);background:transparent}.settings-tab{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-lg);background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);position:relative;top:1px}.settings-tab:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.settings-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:600}.tab-icon{font-size:var(--text-lg);line-height:1}.settings-footer{display:flex;gap:var(--spacing-md);align-items:center;padding:var(--spacing-lg) var(--spacing-xl);border-top:1px solid var(--color-border);background:transparent;border-radius:0 0 var(--radius-2xl) var(--radius-2xl)}.settings-done-btn{margin-left:auto;padding:var(--spacing-sm) var(--spacing-xl);background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth);min-width:100px}.settings-done-btn:hover{background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px var(--color-accent-muted)}.settings-done-btn:active{transform:translateY(0)}.settings-footer .logout-btn{width:auto;padding:var(--spacing-sm) var(--spacing-lg);background:transparent;border:1px solid var(--color-error);color:var(--color-error)}.settings-footer .logout-btn:hover{background:var(--color-error);color:#fff}.settings-actions{display:none}.dashboard{width:100vw;height:100vh;background-color:var(--color-bg-primary);overflow:hidden;display:flex;flex-direction:column}body.has-background-image .dashboard{background-color:transparent}.dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-lg);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(150%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(150%);border-bottom:1px solid var(--glass-border);flex-shrink:0;z-index:var(--z-header);gap:var(--spacing-md)}.dashboard-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0;letter-spacing:-.02em;background:linear-gradient(135deg,var(--color-text-primary) 0%,var(--color-text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-actions{display:flex;gap:var(--spacing-sm);align-items:center}.add-widget-btn,.edit-mode-toggle{min-width:auto;min-height:var(--touch-target-compact);height:var(--touch-target-compact);padding:var(--spacing-xs) var(--spacing-md);font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:transform var(--duration-instant) var(--spring-snappy),background-color var(--duration-fast) var(--spring-smooth),border-color var(--duration-fast) var(--spring-smooth),box-shadow var(--duration-fast) var(--spring-smooth)}.add-widget-btn:hover,.edit-mode-toggle:hover{background:var(--color-bg-elevated);border-color:var(--color-border-hover)}.add-widget-btn:active,.edit-mode-toggle:active{transform:scale(.96)}.add-widget-btn{background:linear-gradient(135deg,var(--color-accent) 0%,oklch(60% .24 290) 100%);border-color:transparent;color:#fff;box-shadow:0 2px 8px var(--color-accent-muted)}.add-widget-btn:hover{background:linear-gradient(135deg,var(--color-accent-hover) 0%,oklch(65% .24 290) 100%);color:#fff;border-color:transparent;box-shadow:0 4px 16px var(--color-accent-muted)}.edit-mode-toggle.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff;box-shadow:0 0 16px var(--color-accent-muted)}.reset-btn{min-height:var(--touch-target-compact);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--text-xs);font-weight:500;color:var(--color-text-tertiary);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth)}.reset-btn:hover{color:var(--color-error);border-color:var(--color-error);background:var(--color-error-bg)}.reset-btn:active{transform:scale(.96)}.grid-toggle-btn{min-width:var(--touch-target-compact);min-height:var(--touch-target-compact);width:var(--touch-target-compact);height:var(--touch-target-compact);padding:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--spring-smooth)}.grid-toggle-btn svg{transition:transform .2s ease}.grid-toggle-btn:hover{background:var(--color-bg-elevated);border-color:var(--color-border-hover);color:var(--color-text-primary)}.grid-toggle-btn:hover svg{transform:scale(1.1)}.grid-toggle-btn.active{background:#ff00ff1a;border-color:#f0f6;color:#f0f}.grid-toggle-btn.active svg{animation:gridPulse 2s ease-in-out infinite}@keyframes gridPulse{0%,to{opacity:1}50%{opacity:.5}}.grid-toggle-btn:active{transform:scale(.96)}.dashboard-container{width:100%;height:100%;flex:1;overflow:auto;display:flex;flex-direction:column;padding:var(--spacing-sm);background:transparent}.dashboard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--spacing-md);text-align:center;padding:var(--spacing-2xl);animation:fadeIn var(--duration-slow) var(--spring-smooth) both}.dashboard-empty-icon{font-size:var(--text-6xl);opacity:.2;margin-bottom:var(--spacing-sm)}.dashboard-empty h2{font-size:var(--text-2xl);color:var(--color-text-primary);margin:0;font-weight:600}.dashboard-empty p{font-size:var(--text-base);color:var(--color-text-secondary);margin:0;max-width:300px}.dashboard-empty-btn{margin-top:var(--spacing-md)}.dashboard.edit-mode .widget-wrapper{cursor:grab}.dashboard.edit-mode .widget-wrapper:active{cursor:grabbing}.dashboard.edit-mode .widget-wrapper:hover{border-color:var(--color-accent-muted)}.settings-btn{width:32px;height:32px;min-width:32px;min-height:32px;padding:0;font-size:var(--text-xs);font-weight:600;color:#fff;background:linear-gradient(135deg,var(--color-accent) 0%,oklch(55% .2 220) 100%);border:2px solid transparent;border-radius:50%;cursor:pointer;transition:all var(--duration-fast) var(--spring-snappy);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px var(--color-accent-muted)}.settings-btn:hover{transform:scale(1.08);box-shadow:0 4px 16px var(--color-accent-muted)}.settings-btn:active{transform:scale(.95)}@media(max-width:768px){.dashboard-header{padding:var(--spacing-xs) var(--spacing-md)}.dashboard-title{font-size:var(--text-base)}.dashboard-container{padding:var(--spacing-xs)}}@media(max-width:480px){.dashboard-header{padding:var(--spacing-xs) var(--spacing-sm)}.add-widget-btn,.edit-mode-toggle{padding:var(--spacing-2xs) var(--spacing-sm);font-size:var(--text-xs)}.dashboard-actions{gap:var(--spacing-xs)}}.pairing-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);z-index:1000}.pairing-card{background:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:48px;text-align:center;max-width:480px;width:90%;box-shadow:0 8px 32px #0000004d;border:1px solid rgba(255,255,255,.1)}.pairing-card h1{color:#fff;font-size:2rem;margin:0 0 16px;font-weight:600}.pairing-card h2{color:#fff;font-size:1.5rem;margin:16px 0;font-weight:600}.pairing-card p{color:#ffffffb3;margin:0;line-height:1.5}.pairing-instructions{font-size:1.1rem;margin-bottom:32px!important}.qr-container{background:#fff;padding:16px;border-radius:16px;display:inline-block;margin:24px 0}.qr-code{width:256px;height:256px;display:block}.pairing-code{display:flex;flex-direction:column;gap:8px;margin:24px 0}.code-label{color:#ffffff80;font-size:.9rem}.code-value{font-family:SF Mono,Fira Code,monospace;font-size:2rem;font-weight:700;letter-spacing:.3em;color:#fff;background:#ffffff1a;padding:12px 24px;border-radius:12px;display:inline-block}.pairing-timer{margin:16px 0;font-size:.9rem;color:#ffffff80}.pairing-timer .warning{color:#f59e0b;font-weight:600}.pairing-actions{display:flex;gap:12px;justify-content:center;margin-top:24px}.pairing-btn{padding:12px 32px;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.pairing-btn.primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.pairing-btn.primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.pairing-btn.secondary{background:#ffffff1a;color:#ffffffb3}.pairing-btn.secondary:hover{background:#ffffff26;color:#fff}.pairing-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin:0 auto 24px;background:#ffffff1a;color:#ffffffb3}.pairing-icon.success{background:#10b98133;color:#10b981}.pairing-error .pairing-icon{background:#ef444433;color:#ef4444}.pairing-expired .pairing-icon{background:#f59e0b33;color:#f59e0b}.pairing-spinner{width:48px;height:48px;border:3px solid rgba(255,255,255,.1);border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 24px}@media(max-width:480px){.pairing-card{padding:32px 24px}.pairing-card h1{font-size:1.5rem}.qr-code{width:200px;height:200px}.code-value{font-size:1.5rem;letter-spacing:.2em}}.pairing-confirm{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:24px}.confirm-card{background:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:48px;text-align:center;max-width:440px;width:100%;box-shadow:0 8px 32px #0000004d;border:1px solid rgba(255,255,255,.1)}.confirm-card h2{color:#fff;font-size:1.75rem;margin:0 0 16px;font-weight:600}.confirm-card p{color:#ffffffb3;margin:0 0 24px;line-height:1.5}.confirm-form{text-align:left;margin-bottom:24px}.confirm-form label{display:block;color:#ffffffb3;font-size:.9rem;margin-bottom:8px}.confirm-form input{width:100%;padding:14px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:#fff;font-size:1rem;transition:all .2s ease}.confirm-form input:focus{outline:none;border-color:#3b82f6;background:#ffffff1a}.confirm-form input::placeholder{color:#ffffff4d}.confirm-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:12px 16px;border-radius:12px;margin-bottom:24px;font-size:.9rem}.confirm-actions{display:flex;flex-direction:column;gap:12px}.confirm-btn{padding:14px 32px;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;width:100%}.confirm-btn.primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.confirm-btn.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.confirm-btn.primary:disabled{opacity:.5;cursor:not-allowed}.confirm-btn.secondary{background:#ffffff1a;color:#ffffffb3}.confirm-btn.secondary:hover:not(:disabled){background:#ffffff26;color:#fff}.confirm-success .confirm-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin:0 auto 24px;background:#10b98133;color:#10b981}.pairing-code-display{background:#ffffff1a;padding:12px 16px;border-radius:12px;font-family:SF Mono,Fira Code,monospace}.pairing-code-display strong{color:#fff;letter-spacing:.2em}@media(max-width:480px){.confirm-card{padding:32px 24px}.confirm-card h2{font-size:1.5rem}}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:24px}.login-card{background:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:24px;padding:48px;max-width:400px;width:100%;box-shadow:0 8px 32px #0000004d;border:1px solid rgba(255,255,255,.1)}.login-header{text-align:center;margin-bottom:32px}.login-header h1{color:#fff;font-size:1.75rem;margin:0 0 8px;font-weight:600}.login-header p{color:#fff9;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{color:#ffffffb3;font-size:.9rem;font-weight:500}.form-group input{padding:14px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:#fff;font-size:1rem;transition:all .2s ease}.form-group input:focus{outline:none;border-color:#3b82f6;background:#ffffff1a}.form-group input::placeholder{color:#ffffff4d}.login-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:12px 16px;border-radius:12px;font-size:.9rem;text-align:center}.login-btn{padding:14px 32px;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;margin-top:8px}.login-btn.primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.login-btn.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.login-btn.primary:disabled{opacity:.6;cursor:not-allowed}.login-footer{margin-top:24px;text-align:center;display:flex;flex-direction:column;gap:12px}.login-link{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:.9rem;padding:8px;transition:color .2s ease}.login-link:hover{color:#60a5fa;text-decoration:underline}.login-link.pairing-link{color:#ffffff80}.login-link.pairing-link:hover{color:#fffc}.demo-credentials{margin-top:32px;padding:24px 16px 16px;border-top:1px solid rgba(255,255,255,.1);text-align:center;background:none;border-left:none;border-right:none;border-bottom:none;width:100%;cursor:pointer;border-radius:0 0 12px 12px;transition:background .2s ease}.demo-credentials:hover{background:#ffffff0d}.demo-credentials p{color:#fff6;font-size:.8rem;margin:0 0 8px}.demo-credentials code{background:#ffffff1a;padding:8px 16px;border-radius:8px;font-size:.85rem;color:#ffffffb3;display:inline-block;transition:all .2s ease}.demo-credentials:hover code{background:#3b82f633;color:#60a5fa}@media(max-width:480px){.login-card{padding:32px 24px}.login-header h1{font-size:1.5rem}}.app{width:100vw;height:100vh;overflow:hidden}#root{width:100%;height:100%;margin:0;padding:0}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);color:#ffffffb3;gap:16px}.loading-spinner{width:48px;height:48px;border:3px solid rgba(255,255,255,.1);border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.unpaired-options{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:24px;text-align:center}.unpaired-options h1{color:#fff;font-size:2rem;margin:0 0 12px;font-weight:600}.unpaired-options>p{color:#fff9;margin:0 0 48px;font-size:1.1rem}.option-buttons{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}.option-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 48px;border-radius:20px;font-size:1.25rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;min-width:240px}.option-btn span{font-size:.85rem;font-weight:400;opacity:.7}.option-btn.primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.option-btn.primary:hover{transform:translateY(-4px);box-shadow:0 8px 24px #3b82f666}.option-btn.secondary{background:#ffffff0d;color:#fff;border:1px solid rgba(255,255,255,.1)}.option-btn.secondary:hover{background:#ffffff1a;transform:translateY(-4px)}@media(max-width:600px){.option-buttons{flex-direction:column}.option-btn{min-width:200px;padding:24px 32px}.unpaired-options h1{font-size:1.5rem}}
