purity-world-ui 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "purity-world-ui",
3
- "version": "1.0.2",
3
+ "version": "2.0.0",
4
4
  "description": "Rich Adwaita glassmorphic UI components, directives, widgets, and behaviors for Purity Framework",
5
5
  "type": "module",
6
6
  "main": "./index.cjs",
package/style.css CHANGED
@@ -1 +1 @@
1
- :root{--font-mono: 'Adwaita Mono', 'Source Code Pro', monospace;--font-main: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;--font-size-xs: 12px;--font-size-sm: 13.5px;--font-size-base: 15px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-xxl: 32px;--radius-window: 16px;--radius-control: 8px;--radius-pill: 999px;--radius-card: 12px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-xxl: 32px;--header-max-width: 1366px;--transition-fast: 0.18s;--transition-normal: 0.28s;--transition-slow: 0.45s;--ease-gnome: cubic-bezier(0.25, 0.8, 0.25, 1);--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);--blur-subtle: blur(10px) saturate(150%);--blur-effect: blur(20px) saturate(175%);--blur-heavy: blur(32px) saturate(190%);--cursor-default: url('/cursors/default.svg') 4 4, default;--cursor-pointer: url('/cursors/pointer.svg') 16 4, pointer;--cursor-text: url('/cursors/text.svg') 16 15, text;--cursor-grab: url('/cursors/openhand.svg') 16 16, grab;--cursor-grabbing: url('/cursors/dnd-move.svg') 16 16, grabbing;--cursor-not-allowed: url('/cursors/not-allowed.svg') 16 15, not-allowed;--cursor-crosshair: url('/cursors/crosshair.svg') 17 17, crosshair;--cursor-help: url('/cursors/help.svg') 4 4, help;--cursor-move: url('/cursors/all-scroll.svg') 15 15, move;--cursor-col-resize: url('/cursors/col-resize.svg') 16 15, col-resize;--cursor-row-resize: url('/cursors/row-resize.svg') 16 15, row-resize;--cursor-ew-resize: url('/cursors/size_hor.svg') 16 15, ew-resize;--cursor-ns-resize: url('/cursors/size_ver.svg') 16 15, ns-resize;--cursor-nwse-resize: url('/cursors/size_bdiag.svg') 16 15, nwse-resize;--cursor-nesw-resize: url('/cursors/size_fdiag.svg') 16 15, nesw-resize;--cursor-zoom-in: url('/cursors/zoom-in.svg') 15 15, zoom-in;--cursor-zoom-out: url('/cursors/zoom-out.svg') 15 15, zoom-out;--cursor-context-menu: url('/cursors/context-menu.svg') 4 4, context-menu;--cursor-progress: url('/cursors/progress-01.svg') 4 4, progress;--cursor-wait: url('/cursors/wait-01.svg') 16 15, wait;--cursor-copy: url('/cursors/copy.svg') 16 4, copy;--cursor-alias: url('/cursors/alias.svg') 16 4, alias;--cursor-cell: url('/cursors/cell.svg') 16 16, cell;--cursor-color-picker: url('/cursors/color-picker.svg') 4 16, crosshair;--cursor-pencil: url('/cursors/pencil.svg') 4 16, crosshair;--cursor-vertical-text: url('/cursors/vertical-text.svg') 16 15, vertical-text;--cursor-dnd-no-drop: url('/cursors/dnd-no-drop.svg') 16 15, no-drop}.draggable-target{cursor:var(--cursor-grab, grab);touch-action:none}.draggable-target .drag-handle{cursor:var(--cursor-grab, grab)}.is-dragging{z-index:1000 !important;user-select:none !important;cursor:var(--cursor-grabbing, grabbing) !important;transition:none !important;will-change:transform}.is-dragging .drag-handle{cursor:var(--cursor-grabbing, grabbing) !important}.snap-hit{animation:snap-thud .16s var(--ease-spring, cubic-bezier(0.34, 1.56, 0.64, 1))}@keyframes snap-thud{0%{scale:1}45%{scale:.96}100%{scale:1}}.droppable-hover{outline:2px dashed var(--accent);outline-offset:4px;background-color:rgba(53,132,228,.1) !important;transition:all var(--transition-fast) ease}.droppable-active{border-color:rgba(255,255,255,.2)}.droppable-checking{pointer-events:none !important}.p-highlight{transition:all var(--transition-normal, 0.3s) ease;padding:8px 12px;border-radius:var(--radius-control, 6px);border:1px solid rgba(255,255,255,.2);background-color:rgba(53,132,228,.25)}.p-highlight--blue{background-color:rgba(53,132,228,.3);border-color:rgba(53,132,228,.5)}.p-highlight--green{background-color:rgba(46,194,126,.3);border-color:rgba(46,194,126,.5)}.p-highlight--gold{background-color:rgba(248,228,92,.3);border-color:rgba(248,228,92,.5)}.p-highlight--red{background-color:rgba(237,51,59,.3);border-color:rgba(237,51,59,.5)}.p-highlight--valid{border-color:var(--gnome-success, #2ec27e) !important;box-shadow:0 0 8px rgba(46,194,126,.4)}dropdown,[dropdown],.p-dropdown{position:relative;display:inline-block;max-width:100%;vertical-align:middle;font-family:var(--font-main);user-select:none;-webkit-user-select:none}dropdown .dropdown-trigger,[dropdown] .dropdown-trigger,.p-dropdown .dropdown-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:150px;padding:9px 14px;margin:0;border-radius:var(--radius-control, 8px);border:1px solid var(--gnome-border);background-color:var(--gnome-input);-webkit-backdrop-filter:var(--blur-subtle);backdrop-filter:var(--blur-subtle);color:var(--text-main);font-family:var(--font-main);font-size:var(--font-size-sm, 13.5px);font-weight:600;cursor:var(--cursor-pointer);outline:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.1),var(--shadow-control);transition:all var(--transition-fast) var(--ease-gnome);box-sizing:border-box}dropdown .dropdown-trigger .dropdown-label,[dropdown] .dropdown-trigger .dropdown-label,.p-dropdown .dropdown-trigger .dropdown-label{display:inline-flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1}dropdown .dropdown-trigger .dropdown-chevron,[dropdown] .dropdown-trigger .dropdown-chevron,.p-dropdown .dropdown-trigger .dropdown-chevron{display:inline-flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0;transition:transform var(--transition-fast) var(--ease-gnome)}dropdown .dropdown-trigger .dropdown-chevron svg,[dropdown] .dropdown-trigger .dropdown-chevron svg,.p-dropdown .dropdown-trigger .dropdown-chevron svg{display:block}dropdown .dropdown-trigger:hover:not(:disabled),[dropdown] .dropdown-trigger:hover:not(:disabled),.p-dropdown .dropdown-trigger:hover:not(:disabled){background-color:var(--gnome-input-hover);border-color:var(--gnome-border-focus);transform:translateY(-1px)}dropdown .dropdown-trigger:focus-visible,[dropdown] .dropdown-trigger:focus-visible,.p-dropdown .dropdown-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-shadow)}dropdown .dropdown-trigger:disabled,dropdown .dropdown-trigger.disabled,[dropdown] .dropdown-trigger:disabled,[dropdown] .dropdown-trigger.disabled,.p-dropdown .dropdown-trigger:disabled,.p-dropdown .dropdown-trigger.disabled{opacity:.45;cursor:var(--cursor-not-allowed) !important;pointer-events:none;transform:none !important;box-shadow:none !important}dropdown.dropdown-open .dropdown-trigger,dropdown.p-dropdown--open .dropdown-trigger,[dropdown].dropdown-open .dropdown-trigger,[dropdown].p-dropdown--open .dropdown-trigger,.p-dropdown.dropdown-open .dropdown-trigger,.p-dropdown.p-dropdown--open .dropdown-trigger{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-shadow);transform:translateY(0)}dropdown.dropdown-open .dropdown-trigger .dropdown-chevron,dropdown.p-dropdown--open .dropdown-trigger .dropdown-chevron,[dropdown].dropdown-open .dropdown-trigger .dropdown-chevron,[dropdown].p-dropdown--open .dropdown-trigger .dropdown-chevron,.p-dropdown.dropdown-open .dropdown-trigger .dropdown-chevron,.p-dropdown.p-dropdown--open .dropdown-trigger .dropdown-chevron{transform:rotate(180deg)}.p-dropdown-body,.dropdown-body{position:fixed;z-index:10000;width:max-content;max-width:min(380px,100vw - 20px);max-height:320px;overflow-y:auto;overflow-x:hidden;padding:6px;box-sizing:border-box;background:var(--dropdown-bg, rgba(30, 30, 34, 0.96));-webkit-backdrop-filter:var(--blur-heavy);backdrop-filter:var(--blur-heavy);border:1px solid var(--dropdown-border, var(--gnome-border));border-radius:var(--radius-card, 12px);box-shadow:var(--dropdown-shadow, var(--shadow-popup));color:var(--text-main);font-family:var(--font-main);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px) scale(0.98);transform-origin:top center;transition:opacity var(--transition-fast) var(--ease-gnome),transform var(--transition-fast) var(--ease-gnome),visibility var(--transition-fast)}.p-dropdown-body::-webkit-scrollbar,.dropdown-body::-webkit-scrollbar{width:5px;height:5px}.p-dropdown-body::-webkit-scrollbar-track,.dropdown-body::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.p-dropdown-body::-webkit-scrollbar-thumb,.dropdown-body::-webkit-scrollbar-thumb{background:var(--gnome-border);border-radius:999px}.p-dropdown-body::-webkit-scrollbar-thumb:hover,.dropdown-body::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.p-dropdown-body.is-open,.dropdown-body.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}.p-dropdown-body.placement-top,.dropdown-body.placement-top{transform-origin:bottom center;transform:translateY(6px) scale(0.98)}.p-dropdown-body.placement-top.is-open,.dropdown-body.placement-top.is-open{transform:translateY(0) scale(1)}.p-dropdown-body ul,.p-dropdown-body ol,.dropdown-body ul,.dropdown-body ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;width:100%;box-sizing:border-box}.p-dropdown-body li,.p-dropdown-body a,.p-dropdown-body button.dropdown-item,.p-dropdown-body .dropdown-item,.dropdown-body li,.dropdown-body a,.dropdown-body button.dropdown-item,.dropdown-body .dropdown-item{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:0;border-radius:var(--radius-control, 8px);border:1px solid rgba(0,0,0,0);background:rgba(0,0,0,0);color:var(--text-main);font-family:var(--font-main);font-size:var(--font-size-sm, 13.5px);font-weight:500;text-decoration:none;cursor:var(--cursor-pointer);transition:all var(--transition-fast) var(--ease-gnome);box-sizing:border-box;width:100%;text-align:left;user-select:none;-webkit-user-select:none}.p-dropdown-body li:hover:not(:disabled):not(.disabled),.p-dropdown-body a:hover:not(:disabled):not(.disabled),.p-dropdown-body button.dropdown-item:hover:not(:disabled):not(.disabled),.p-dropdown-body .dropdown-item:hover:not(:disabled):not(.disabled),.dropdown-body li:hover:not(:disabled):not(.disabled),.dropdown-body a:hover:not(:disabled):not(.disabled),.dropdown-body button.dropdown-item:hover:not(:disabled):not(.disabled),.dropdown-body .dropdown-item:hover:not(:disabled):not(.disabled){background:var(--gnome-hover);color:var(--text-main);transform:translateX(2px)}.p-dropdown-body li:active:not(:disabled):not(.disabled),.p-dropdown-body a:active:not(:disabled):not(.disabled),.p-dropdown-body button.dropdown-item:active:not(:disabled):not(.disabled),.p-dropdown-body .dropdown-item:active:not(:disabled):not(.disabled),.dropdown-body li:active:not(:disabled):not(.disabled),.dropdown-body a:active:not(:disabled):not(.disabled),.dropdown-body button.dropdown-item:active:not(:disabled):not(.disabled),.dropdown-body .dropdown-item:active:not(:disabled):not(.disabled){background:var(--gnome-active);transform:translateX(0)}.p-dropdown-body li.is-selected,.p-dropdown-body li.active,.p-dropdown-body a.is-selected,.p-dropdown-body a.active,.p-dropdown-body button.dropdown-item.is-selected,.p-dropdown-body button.dropdown-item.active,.p-dropdown-body .dropdown-item.is-selected,.p-dropdown-body .dropdown-item.active,.dropdown-body li.is-selected,.dropdown-body li.active,.dropdown-body a.is-selected,.dropdown-body a.active,.dropdown-body button.dropdown-item.is-selected,.dropdown-body button.dropdown-item.active,.dropdown-body .dropdown-item.is-selected,.dropdown-body .dropdown-item.active{background:var(--accent-subtle);color:var(--accent);font-weight:600;border-color:var(--accent-shadow)}.p-dropdown-body li:disabled,.p-dropdown-body li.disabled,.p-dropdown-body a:disabled,.p-dropdown-body a.disabled,.p-dropdown-body button.dropdown-item:disabled,.p-dropdown-body button.dropdown-item.disabled,.p-dropdown-body .dropdown-item:disabled,.p-dropdown-body .dropdown-item.disabled,.dropdown-body li:disabled,.dropdown-body li.disabled,.dropdown-body a:disabled,.dropdown-body a.disabled,.dropdown-body button.dropdown-item:disabled,.dropdown-body button.dropdown-item.disabled,.dropdown-body .dropdown-item:disabled,.dropdown-body .dropdown-item.disabled{opacity:.4;cursor:var(--cursor-not-allowed) !important;pointer-events:none}.p-dropdown-body li .item-icon,.p-dropdown-body a .item-icon,.p-dropdown-body button.dropdown-item .item-icon,.p-dropdown-body .dropdown-item .item-icon,.dropdown-body li .item-icon,.dropdown-body a .item-icon,.dropdown-body button.dropdown-item .item-icon,.dropdown-body .dropdown-item .item-icon{font-size:1.1em;line-height:1;flex-shrink:0}.p-dropdown-body li .item-text,.p-dropdown-body a .item-text,.p-dropdown-body button.dropdown-item .item-text,.p-dropdown-body .dropdown-item .item-text,.dropdown-body li .item-text,.dropdown-body a .item-text,.dropdown-body button.dropdown-item .item-text,.dropdown-body .dropdown-item .item-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-dropdown-body li .item-badge,.p-dropdown-body a .item-badge,.p-dropdown-body button.dropdown-item .item-badge,.p-dropdown-body .dropdown-item .item-badge,.dropdown-body li .item-badge,.dropdown-body a .item-badge,.dropdown-body button.dropdown-item .item-badge,.dropdown-body .dropdown-item .item-badge{font-size:.72rem;font-weight:700;padding:2px 7px;border-radius:var(--radius-pill, 999px);background:var(--accent-subtle);color:var(--accent)}.p-dropdown-body .dropdown-header,.p-dropdown-body h6,.dropdown-body .dropdown-header,.dropdown-body h6{padding:6px 12px 2px;margin:0;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.p-dropdown-body hr,.p-dropdown-body .dropdown-divider,.dropdown-body hr,.dropdown-body .dropdown-divider{border:none;border-top:1px solid var(--gnome-border-subtle);margin:4px 6px}[data-theme=light] dropdown .dropdown-trigger,[data-theme=light] [dropdown] .dropdown-trigger,[data-theme=light] .p-dropdown .dropdown-trigger{background-color:var(--gnome-input);border-color:var(--gnome-border);color:var(--text-main)}[data-theme=light] dropdown .dropdown-trigger:hover:not(:disabled),[data-theme=light] [dropdown] .dropdown-trigger:hover:not(:disabled),[data-theme=light] .p-dropdown .dropdown-trigger:hover:not(:disabled){background-color:var(--gnome-input-hover);border-color:var(--gnome-border-focus)}body[data-theme=light] .p-dropdown-body,[data-theme=light] .p-dropdown-body,html[data-theme=light] .p-dropdown-body{background:var(--dropdown-bg, rgba(255, 255, 255, 0.96));border-color:var(--dropdown-border, var(--gnome-border));box-shadow:var(--dropdown-shadow, var(--shadow-popup))}body[data-theme=light] .p-dropdown-body li,body[data-theme=light] .p-dropdown-body a,body[data-theme=light] .p-dropdown-body button.dropdown-item,body[data-theme=light] .p-dropdown-body .dropdown-item,[data-theme=light] .p-dropdown-body li,[data-theme=light] .p-dropdown-body a,[data-theme=light] .p-dropdown-body button.dropdown-item,[data-theme=light] .p-dropdown-body .dropdown-item,html[data-theme=light] .p-dropdown-body li,html[data-theme=light] .p-dropdown-body a,html[data-theme=light] .p-dropdown-body button.dropdown-item,html[data-theme=light] .p-dropdown-body .dropdown-item{color:var(--text-main)}body[data-theme=light] .p-dropdown-body li:hover:not(:disabled):not(.disabled),body[data-theme=light] .p-dropdown-body a:hover:not(:disabled):not(.disabled),body[data-theme=light] .p-dropdown-body button.dropdown-item:hover:not(:disabled):not(.disabled),body[data-theme=light] .p-dropdown-body .dropdown-item:hover:not(:disabled):not(.disabled),[data-theme=light] .p-dropdown-body li:hover:not(:disabled):not(.disabled),[data-theme=light] .p-dropdown-body a:hover:not(:disabled):not(.disabled),[data-theme=light] .p-dropdown-body button.dropdown-item:hover:not(:disabled):not(.disabled),[data-theme=light] .p-dropdown-body .dropdown-item:hover:not(:disabled):not(.disabled),html[data-theme=light] .p-dropdown-body li:hover:not(:disabled):not(.disabled),html[data-theme=light] .p-dropdown-body a:hover:not(:disabled):not(.disabled),html[data-theme=light] .p-dropdown-body button.dropdown-item:hover:not(:disabled):not(.disabled),html[data-theme=light] .p-dropdown-body .dropdown-item:hover:not(:disabled):not(.disabled){background:var(--gnome-hover)}body[data-theme=light] .p-dropdown-body li.is-selected,body[data-theme=light] .p-dropdown-body li.active,body[data-theme=light] .p-dropdown-body a.is-selected,body[data-theme=light] .p-dropdown-body a.active,body[data-theme=light] .p-dropdown-body button.dropdown-item.is-selected,body[data-theme=light] .p-dropdown-body button.dropdown-item.active,body[data-theme=light] .p-dropdown-body .dropdown-item.is-selected,body[data-theme=light] .p-dropdown-body .dropdown-item.active,[data-theme=light] .p-dropdown-body li.is-selected,[data-theme=light] .p-dropdown-body li.active,[data-theme=light] .p-dropdown-body a.is-selected,[data-theme=light] .p-dropdown-body a.active,[data-theme=light] .p-dropdown-body button.dropdown-item.is-selected,[data-theme=light] .p-dropdown-body button.dropdown-item.active,[data-theme=light] .p-dropdown-body .dropdown-item.is-selected,[data-theme=light] .p-dropdown-body .dropdown-item.active,html[data-theme=light] .p-dropdown-body li.is-selected,html[data-theme=light] .p-dropdown-body li.active,html[data-theme=light] .p-dropdown-body a.is-selected,html[data-theme=light] .p-dropdown-body a.active,html[data-theme=light] .p-dropdown-body button.dropdown-item.is-selected,html[data-theme=light] .p-dropdown-body button.dropdown-item.active,html[data-theme=light] .p-dropdown-body .dropdown-item.is-selected,html[data-theme=light] .p-dropdown-body .dropdown-item.active{background:var(--accent-subtle);color:var(--accent)}date-time-picker,:host{display:inline-block;position:relative;font-family:var(--font-main, "Inter", sans-serif)}.date-time-picker-container,.date-picker-container{position:relative;display:inline-block}.picker-toggle{background:var(--gnome-input);-webkit-backdrop-filter:var(--blur-subtle);backdrop-filter:var(--blur-subtle);border:1px solid var(--gnome-border);color:var(--dp-text-main, var(--text-main));padding:8px 16px;border-radius:var(--radius-control);cursor:var(--cursor-pointer);font-family:var(--font-main);font-size:var(--font-size-sm);font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:all var(--transition-fast) var(--ease-gnome);white-space:nowrap;box-shadow:var(--shadow-control);outline:none}.picker-toggle .picker-toggle-icon{font-size:14px;line-height:1}.picker-toggle:hover{background:var(--gnome-input-hover);border-color:var(--gnome-border-focus);transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-shadow)}.picker-toggle:active{transform:translateY(0);background:var(--gnome-input)}.picker-toggle:focus-visible{box-shadow:0 0 0 3px var(--accent-shadow);border-color:var(--accent)}.picker-overlay{display:none;position:fixed;z-index:9999;width:290px;background:var(--dp-surface-bg);-webkit-backdrop-filter:var(--blur-effect);backdrop-filter:var(--blur-effect);border:1px solid var(--dp-border);border-radius:var(--radius-window);padding:16px;box-shadow:var(--dp-shadow);box-sizing:border-box;font-family:var(--font-main);color:var(--dp-text-main, var(--text-main));transition:background-color var(--transition-normal) ease,border-color var(--transition-normal) ease}.picker-overlay.placement-bottom.is-open{animation:gnomeSlideDown .14s cubic-bezier(0, 0, 0.2, 1)}.picker-overlay.placement-top.is-open{animation:gnomeSlideUp .14s cubic-bezier(0, 0, 0.2, 1)}.picker-overlay.is-open{display:flex;flex-direction:column;gap:12px}.picker-overlay.is-closed{display:none}.picker-overlay.blur-enabled{background:var(--dp-surface-blur-bg) !important;-webkit-backdrop-filter:var(--blur-heavy) !important;backdrop-filter:var(--blur-heavy) !important}@keyframes gnomeSlideDown{from{opacity:0;transform:translateY(-8px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes gnomeSlideUp{from{opacity:0;transform:translateY(8px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:4px}.calendar-header .label-group{display:flex;align-items:center}.calendar-header .label-group .year-toggle-btn{background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);color:var(--dp-text-main, var(--text-main));padding:4px 8px;border-radius:var(--radius-control);cursor:var(--cursor-pointer);display:inline-flex;align-items:center;gap:6px;font-size:14.5px;font-weight:700;font-family:var(--font-main);transition:all var(--transition-fast) ease;outline:none}.calendar-header .label-group .year-toggle-btn .chevron-icon{transition:transform var(--transition-fast) var(--ease-spring)}.calendar-header .label-group .year-toggle-btn .chevron-icon.is-rotated{transform:rotate(180deg)}.calendar-header .label-group .year-toggle-btn:hover{background:var(--gnome-hover);border-color:var(--gnome-border-subtle)}.calendar-header .label-group .year-toggle-btn:active{background:var(--gnome-active)}.calendar-header .header-nav{display:flex;align-items:center;gap:4px}.calendar-header .header-nav .nav-btn{background:var(--gnome-input);border:1px solid var(--gnome-border-subtle);color:var(--dp-text-main, var(--text-main));width:28px;height:28px;border-radius:var(--radius-control);display:grid;place-items:center;cursor:var(--cursor-pointer);transition:all var(--transition-fast) ease;outline:none;padding:0}.calendar-header .header-nav .nav-btn:hover{background:var(--gnome-hover);border-color:var(--gnome-border);transform:scale(1.05)}.calendar-header .header-nav .nav-btn:active{transform:scale(0.96)}.picker-content-wrapper{position:relative;min-height:220px}.calendar-body{transition:filter var(--transition-fast) ease,opacity var(--transition-fast) ease}.calendar-body.blurred{filter:blur(6px) !important;opacity:.25 !important;pointer-events:none}.calendar-body .calendar-grid{display:grid;grid-template-columns:repeat(7, 1fr);gap:3px}.calendar-body .calendar-grid .weekday{text-align:center;font-size:11px;font-weight:700;color:var(--dp-text-secondary, var(--text-secondary));text-transform:uppercase;letter-spacing:.5px;padding:4px 0;user-select:none}.calendar-body .calendar-grid .day-cell{aspect-ratio:1/1;background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:50%;color:var(--dp-text-main, var(--text-main));font-size:12.5px;font-weight:500;font-family:var(--font-main);display:grid;place-items:center;cursor:var(--cursor-pointer);transition:all .15s cubic-bezier(0.4, 0, 0.2, 1);outline:none;padding:0;user-select:none}.calendar-body .calendar-grid .day-cell:hover:not(.disabled):not(.selected){background:var(--gnome-hover);border-color:var(--gnome-border-subtle);transform:scale(1.08)}.calendar-body .calendar-grid .day-cell.off-month{color:var(--text-off)}.calendar-body .calendar-grid .day-cell.today{border-color:var(--accent);color:var(--accent);font-weight:700}.calendar-body .calendar-grid .day-cell.selected{background:var(--accent) !important;color:#fff !important;font-weight:700;box-shadow:0 2px 8px var(--accent-shadow);transform:scale(1.04)}.calendar-body .calendar-grid .day-cell.disabled{opacity:.25;cursor:var(--cursor-not-allowed) !important;pointer-events:none;text-decoration:line-through}.year-selector-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--gnome-surface);-webkit-backdrop-filter:var(--blur-effect);backdrop-filter:var(--blur-effect);border-radius:var(--radius-control);padding:8px 4px;box-sizing:border-box;overflow-y:auto;z-index:10;transition:opacity var(--transition-fast) ease,transform var(--transition-fast) ease}.blur-enabled .year-selector-overlay{background:var(--dp-surface-blur-bg) !important;-webkit-backdrop-filter:var(--blur-heavy) !important;backdrop-filter:var(--blur-heavy) !important}.year-selector-overlay.is-hidden{opacity:0;pointer-events:none;transform:scale(0.95)}.year-selector-overlay.is-visible{opacity:1;pointer-events:auto;transform:scale(1)}.year-selector-overlay .year-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:6px}.year-selector-overlay .year-grid .year-cell{padding:8px 0;background:var(--gnome-card);border:1px solid var(--gnome-border-subtle);border-radius:var(--radius-control);color:var(--dp-text-main, var(--text-main));font-size:13px;font-weight:600;font-family:var(--font-main);cursor:var(--cursor-pointer);transition:all var(--transition-fast) ease;outline:none;text-align:center}.year-selector-overlay .year-grid .year-cell:hover:not(.selected){background:var(--gnome-hover);border-color:var(--gnome-border);transform:translateY(-1px)}.year-selector-overlay .year-grid .year-cell.selected{background:var(--accent);color:#fff;border-color:var(--accent-hover);box-shadow:0 2px 8px var(--accent-shadow)}.time-picker{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--gnome-subtle);border:1px solid var(--gnome-border-subtle);border-radius:var(--radius-control)}.time-picker .time-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--dp-text-secondary, var(--text-secondary))}.time-picker .time-label .time-icon{font-size:13px}.time-picker .time-inner-container .time-input-group{display:inline-flex;align-items:center;background:var(--gnome-input);border:1px solid var(--gnome-border-subtle);border-radius:6px;padding:2px 6px}.time-picker .time-inner-container .time-input-group input{width:24px;background:rgba(0,0,0,0);border:none;color:var(--dp-text-main, var(--text-main));font-family:var(--font-mono, monospace);font-size:13px;font-weight:700;text-align:center;outline:none;padding:2px 0}.time-picker .time-inner-container .time-input-group input:focus{color:var(--accent-hover)}.time-picker .time-inner-container .time-input-group .separator{color:var(--dp-text-secondary, var(--text-secondary));font-weight:700;padding:0 1px;user-select:none}.picker-footer{display:flex;justify-content:flex-end;padding-top:4px}.picker-footer .confirm-button{background:var(--accent);color:#fff;border:1px solid rgba(255,255,255,.15);padding:6px 18px;border-radius:var(--radius-control);font-size:12.5px;font-weight:700;cursor:var(--cursor-pointer);transition:all var(--transition-fast) ease;box-shadow:0 2px 6px var(--accent-shadow);outline:none}.picker-footer .confirm-button:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-shadow)}.picker-footer .confirm-button:active{background:var(--accent-active);transform:translateY(0)}expander,expander-component,.purity-expander,[expander]{display:block;width:100%;box-sizing:border-box;background:var(--gnome-card);backdrop-filter:var(--blur-effect);-webkit-backdrop-filter:var(--blur-effect);border:1px solid var(--gnome-border);border-radius:var(--radius-card, 12px);overflow:hidden;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);box-shadow:0 2px 8px rgba(0,0,0,.08)}expander:hover,expander-component:hover,.purity-expander:hover,[expander]:hover{border-color:rgba(255,255,255,.18)}expander .title,expander-component .title,.purity-expander .title,[expander] .title{display:flex;align-items:center;gap:var(--spacing-sm, 10px);padding:12px 16px;font-weight:600;font-size:14px;line-height:1.4;color:var(--gnome-text-primary, #ffffff);cursor:var(--cursor-pointer, pointer);user-select:none;outline:none;transition:background var(--transition-fast),color var(--transition-fast)}expander .title:hover,expander-component .title:hover,.purity-expander .title:hover,[expander] .title:hover{background:rgba(255,255,255,.05)}expander .title:focus-visible,expander-component .title:focus-visible,.purity-expander .title:focus-visible,[expander] .title:focus-visible{outline:2px solid var(--accent, #3584e4);outline-offset:-2px}expander .title:active,expander-component .title:active,.purity-expander .title:active,[expander] .title:active{background:rgba(255,255,255,.08)}expander .title img,expander .title .expand-icon,expander .title .icon-expand,expander .title .icon-collapse,expander-component .title img,expander-component .title .expand-icon,expander-component .title .icon-expand,expander-component .title .icon-collapse,.purity-expander .title img,.purity-expander .title .expand-icon,.purity-expander .title .icon-expand,.purity-expander .title .icon-collapse,[expander] .title img,[expander] .title .expand-icon,[expander] .title .icon-expand,[expander] .title .icon-collapse{width:18px;height:18px;flex-shrink:0;object-fit:contain;display:inline-flex;align-items:center;justify-content:center;transition:transform var(--transition-normal)}expander .body,expander-component .body,.purity-expander .body,[expander] .body{display:none;padding:14px 16px 16px 16px;border-top:1px solid var(--gnome-border);font-size:13.5px;line-height:1.5;color:var(--gnome-text-secondary, rgba(255, 255, 255, 0.75));cursor:var(--cursor-default, default);animation:purity-expander-fade-in .18s cubic-bezier(0.25, 1, 0.5, 1)}expander.is-expanded>.body,expander.is-expanded .body,expander[aria-expanded=true]>.body,expander[aria-expanded=true] .body,expander-component.is-expanded>.body,expander-component.is-expanded .body,expander-component[aria-expanded=true]>.body,expander-component[aria-expanded=true] .body,.purity-expander.is-expanded>.body,.purity-expander.is-expanded .body,.purity-expander[aria-expanded=true]>.body,.purity-expander[aria-expanded=true] .body,[expander].is-expanded>.body,[expander].is-expanded .body,[expander][aria-expanded=true]>.body,[expander][aria-expanded=true] .body{display:block}expander.is-collapsed>.body,expander.is-collapsed .body,expander[aria-expanded=false]>.body,expander[aria-expanded=false] .body,expander-component.is-collapsed>.body,expander-component.is-collapsed .body,expander-component[aria-expanded=false]>.body,expander-component[aria-expanded=false] .body,.purity-expander.is-collapsed>.body,.purity-expander.is-collapsed .body,.purity-expander[aria-expanded=false]>.body,.purity-expander[aria-expanded=false] .body,[expander].is-collapsed>.body,[expander].is-collapsed .body,[expander][aria-expanded=false]>.body,[expander][aria-expanded=false] .body{display:none}img.icon-expand,.title img.icon-expand{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%233584e4' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}img.icon-collapse,.title img.icon-collapse{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%233584e4' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='18 15 12 9 6 15'%3E%3C/polyline%3E%3C/svg%3E")}[data-theme=light] expander:hover,[data-theme=light] expander-component:hover,[data-theme=light] .purity-expander:hover,[data-theme=light] [expander]:hover{border-color:rgba(0,0,0,.16)}[data-theme=light] expander .title,[data-theme=light] expander-component .title,[data-theme=light] .purity-expander .title,[data-theme=light] [expander] .title{color:var(--gnome-text-primary, #1c1c1c)}[data-theme=light] expander .title:hover,[data-theme=light] expander-component .title:hover,[data-theme=light] .purity-expander .title:hover,[data-theme=light] [expander] .title:hover{background:rgba(0,0,0,.04)}[data-theme=light] expander .title:active,[data-theme=light] expander-component .title:active,[data-theme=light] .purity-expander .title:active,[data-theme=light] [expander] .title:active{background:rgba(0,0,0,.07)}[data-theme=light] expander .body,[data-theme=light] expander-component .body,[data-theme=light] .purity-expander .body,[data-theme=light] [expander] .body{color:var(--gnome-text-secondary, rgba(0, 0, 0, 0.7))}[data-theme=light] img.icon-expand,[data-theme=light] .title img.icon-expand{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231c71d8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}[data-theme=light] img.icon-collapse,[data-theme=light] .title img.icon-collapse{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231c71d8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='18 15 12 9 6 15'%3E%3C/polyline%3E%3C/svg%3E")}@keyframes purity-expander-fade-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}loader-component{display:inline-block}loader-component.is-loading,loader-component.visible{cursor:var(--cursor-progress) !important}loader-component.is-loading *,loader-component.visible *{cursor:var(--cursor-progress) !important}.loader-inline-root{display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:14px 20px;background:var(--card-bg-subtle, rgba(255, 255, 255, 0.05));border:1px solid var(--border-color, rgba(255, 255, 255, 0.1));border-radius:var(--radius-sm, 8px);color:var(--text-main, #ffffff);font-size:13px;line-height:1.2;transition:opacity .15s ease-out;cursor:var(--cursor-progress) !important}.loader-inline-root *{cursor:var(--cursor-progress) !important}.loader-inline-root.visible{display:inline-flex;animation:fadeIn .15s ease-out}.loader-inline-root .loader-spinner-box{width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.loader-inline-root .loader-spinner-box .loader-svg{width:100%;height:100%;animation:rotate 1.2s linear infinite}.loader-inline-root .loader-spinner-box .loader-svg .loader-track{stroke:var(--border-color, rgba(255, 255, 255, 0.15))}.loader-inline-root .loader-spinner-box .loader-svg .loader-head{stroke:var(--accent, #3584e4);stroke-linecap:round;stroke-dasharray:80,150;stroke-dashoffset:0;animation:dash 1.2s ease-in-out infinite}.loader-inline-root .loader-text{font-weight:500;color:var(--text-secondary, #9a9996)}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:80,150;stroke-dashoffset:-30}100%{stroke-dasharray:80,150;stroke-dashoffset:-120}}@keyframes fadeIn{from{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}modal-view{display:contents}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;background:rgba(0,0,0,.65);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;z-index:10000;pointer-events:none;box-sizing:border-box;padding:16px}.modal-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto}.modal-backdrop.is-closed{opacity:0;visibility:hidden;pointer-events:none}.modal-dialog{width:90%;max-width:560px;max-height:85vh;display:flex;flex-direction:column;padding:0;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.6);border-radius:var(--radius-window, 16px);transform:scale(0.94) translateY(12px);transition:transform .25s cubic-bezier(0.4, 0, 0.2, 1),width .3s ease,height .3s ease,max-width .3s ease,max-height .3s ease}.is-open .modal-dialog{transform:scale(1) translateY(0)}.is-maximized .modal-dialog{width:96vw;height:94vh;max-width:96vw;max-height:94vh;border-radius:var(--radius-control, 8px)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:var(--gnome-card);border-bottom:1px solid var(--gnome-border)}.modal-title-area{display:flex;align-items:center;gap:10px}.modal-title-area .modal-icon{font-size:18px}.modal-title-area .modal-title{margin:0;font-size:1.1rem;font-weight:700;color:var(--text-main)}.modal-controls{display:flex;align-items:center;gap:8px}.modal-control-btn{background:var(--gnome-input);border:1px solid var(--gnome-border);color:var(--text-main);width:32px;height:32px;border-radius:var(--radius-control);display:flex;align-items:center;justify-content:center;cursor:var(--cursor-pointer);font-size:14px;transition:all var(--transition-fast) ease}.modal-control-btn:hover{background:var(--gnome-hover);border-color:var(--gnome-border-focus)}.modal-control-btn.close-btn:hover{background:var(--gnome-error);border-color:#ed333b;color:#fff}.modal-body{padding:20px;overflow-y:auto;flex:1;font-size:14px;line-height:1.5;color:var(--text-main)}.modal-body p{margin:0 0 12px 0}.modal-body code{font-family:var(--font-mono, monospace);background:var(--accent-subtle, rgba(53, 132, 228, 0.15));border:1px solid var(--accent-shadow);border-radius:4px;padding:2px 6px;font-size:12px;color:var(--accent)}.modal-info-card{background:var(--gnome-card);border:1px solid var(--gnome-border-subtle);border-radius:var(--radius-control);padding:12px 14px;margin-top:14px;display:flex;flex-direction:column;gap:6px}.modal-info-card .status-pill{display:inline-block;padding:2px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;background:var(--gnome-success-bg, rgba(46, 194, 126, 0.2));color:var(--gnome-success);border:1px solid var(--gnome-success)}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:14px 20px;background:var(--gnome-subtle);border-top:1px solid var(--gnome-border)}navigation-menu{display:block;position:relative;z-index:9990}.nav-ball-container{position:fixed;bottom:32px;right:32px;z-index:9990;display:flex;flex-direction:column;align-items:center;gap:6px;touch-action:none;user-select:none;-webkit-user-select:none;transform:translate3d(0, 0, 0);transition:filter var(--transition-fast) var(--ease-gnome)}.nav-ball-container.is-dragging{filter:drop-shadow(0 16px 36px rgba(0, 0, 0, 0.6));z-index:9995}.nav-ball-container.is-dragging .nav-drag-handle{opacity:1 !important;transform:translateY(0) scale(1.05) !important;cursor:var(--cursor-grabbing) !important;background:var(--accent) !important;color:#fff !important;border-color:rgba(255,255,255,.3) !important}.nav-ball-container.is-dragging .nav-ball-orb{cursor:var(--cursor-grabbing) !important;transform:scale(1.04);box-shadow:0 16px 36px rgba(0,0,0,.6),0 0 24px var(--accent) !important}.nav-drag-handle{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);background:var(--gnome-surface);-webkit-backdrop-filter:var(--blur-subtle);backdrop-filter:var(--blur-subtle);border:1px solid var(--gnome-border);border-radius:var(--radius-pill, 999px);box-shadow:var(--shadow-popup);cursor:var(--cursor-grab);opacity:0;transform:translateY(4px);pointer-events:auto;transition:opacity var(--transition-fast) var(--ease-gnome),transform var(--transition-fast) var(--ease-gnome),background var(--transition-fast),color var(--transition-fast)}.nav-drag-handle .drag-grip-icon{opacity:.8}.nav-drag-handle:hover{background:var(--gnome-hover);color:var(--text-main);border-color:var(--accent)}.nav-ball-container:hover .nav-drag-handle{opacity:1;transform:translateY(0)}.nav-ball-orb{position:relative;width:62px;height:62px;padding:0;margin:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 25%, rgba(53, 132, 228, 0.42), rgba(36, 36, 36, 0.95) 75%);-webkit-backdrop-filter:var(--blur-window);backdrop-filter:var(--blur-window);border:1.5px solid rgba(255,255,255,.22);box-shadow:0 10px 28px rgba(0,0,0,.5),inset 0 2px 4px rgba(255,255,255,.3),0 0 16px var(--accent-shadow);cursor:var(--cursor-pointer);overflow:hidden;outline:none;transition:transform var(--transition-fast) var(--ease-spring),box-shadow var(--transition-fast) var(--ease-gnome),border-color var(--transition-fast)}.nav-ball-orb .orb-shine{position:absolute;top:2px;left:15%;width:70%;height:38%;border-radius:50%;background:linear-gradient(to bottom, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0.05) 80%, transparent);pointer-events:none}.nav-ball-orb .orb-glow{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 50%, var(--accent-subtle), transparent 70%);pointer-events:none;opacity:.8;transition:opacity var(--transition-fast)}.nav-ball-orb .orb-icon{font-size:1.95rem;line-height:1;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 6px var(--accent-shadow));transition:transform var(--transition-fast) var(--ease-gnome);z-index:1}.nav-ball-orb:hover{transform:scale(1.08) translateY(-2px);border-color:rgba(255,255,255,.4);box-shadow:0 14px 34px rgba(0,0,0,.6),inset 0 2px 6px rgba(255,255,255,.4),0 0 24px var(--accent)}.nav-ball-orb:hover .orb-icon{transform:rotate(20deg) scale(1.1)}.nav-ball-orb:hover .orb-glow{opacity:1}.nav-ball-orb:active{transform:scale(0.95);box-shadow:0 6px 16px rgba(0,0,0,.4)}@keyframes pNavHighlightPulse{0%{outline:3px solid var(--accent);outline-offset:4px;box-shadow:0 0 0 6px var(--accent-shadow),var(--shadow-deep)}50%{outline:3px solid var(--accent-hover);outline-offset:6px;box-shadow:0 0 0 12px var(--accent-shadow),var(--shadow-deep)}100%{outline:3px solid rgba(0,0,0,0);outline-offset:8px;box-shadow:none}}.p-nav-highlight{animation:pNavHighlightPulse 1.8s var(--ease-gnome) forwards;border-radius:var(--radius-window, 16px)}[data-theme=light] .nav-drag-handle{background:rgba(255,255,255,.9);border-color:var(--gnome-border);color:var(--text-main);box-shadow:var(--shadow-popup)}[data-theme=light] .nav-drag-handle:hover{background:#fff;border-color:var(--accent)}[data-theme=light] .nav-ball-orb{background:radial-gradient(circle at 35% 25%, rgba(28, 113, 216, 0.35), rgba(246, 246, 246, 0.95) 75%);border-color:rgba(28,113,216,.35);box-shadow:0 10px 24px rgba(0,0,0,.15),inset 0 2px 4px rgba(255,255,255,.9),0 0 12px var(--accent-shadow)}[data-theme=light] .nav-ball-orb .orb-shine{background:linear-gradient(to bottom, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.2) 80%, transparent)}[data-theme=light] .nav-ball-orb:hover{border-color:var(--accent);box-shadow:0 14px 30px rgba(0,0,0,.2),inset 0 2px 6px #fff,0 0 20px var(--accent)}notification-component,:host{display:contents !important;background:none !important;background-color:rgba(0,0,0,0) !important;box-shadow:none !important;border:none !important;margin:0 !important;padding:0 !important}.notification-container{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:10000;overflow:hidden;background:rgba(0,0,0,0) !important;box-shadow:none !important;border:none !important;margin:0 !important;padding:0 !important}.toast-stack{position:fixed;display:flex;flex-direction:column;gap:10px;padding:16px;box-sizing:border-box;max-height:100vh;overflow-y:auto;pointer-events:none;z-index:10000;background:rgba(0,0,0,0) !important;box-shadow:none !important;border:none !important}.toast-stack::-webkit-scrollbar{width:4px;height:4px}.toast-stack::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.toast-stack::-webkit-scrollbar-thumb{background:var(--gnome-border);border-radius:999px}.toast-stack::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.toast-stack.pos-top-right{top:0;right:0;align-items:flex-end}.toast-stack.pos-top-left{top:0;left:0;align-items:flex-start}.toast-stack.pos-top-center{top:0;left:50%;transform:translateX(-50%);align-items:center}.toast-stack.pos-bottom-right{bottom:0;right:0;align-items:flex-end;flex-direction:column-reverse}.toast-stack.pos-bottom-left{bottom:0;left:0;align-items:flex-start;flex-direction:column-reverse}.toast-stack.pos-bottom-center{bottom:0;left:50%;transform:translateX(-50%);align-items:center;flex-direction:column-reverse}.toast-stack.pos-center{top:50%;left:50%;transform:translate(-50%, -50%);align-items:center}.toast-card{pointer-events:auto;margin:0 !important;display:flex;align-items:flex-start;gap:12px;min-width:280px;max-width:420px;min-height:52px;max-height:200px;padding:12px 14px;background:var(--gnome-header);border:1px solid var(--gnome-border);border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.35);transition:transform var(--transition-fast) var(--ease-gnome),opacity var(--transition-fast) ease;box-sizing:border-box;overflow:hidden}.toast-card.toast-blink{animation:toastBlink 1.2s infinite alternate ease-in-out}.toast-card.toast-success{border-color:rgba(46,194,126,.35);box-shadow:inset 4px 0 0 0 var(--gnome-success),0 8px 24px rgba(0,0,0,.35)}.toast-card.toast-success .toast-icon::before{content:"✓";color:var(--gnome-success);background:var(--gnome-success-bg)}.toast-card.toast-error{border-color:rgba(237,51,59,.35);box-shadow:inset 4px 0 0 0 var(--gnome-error),0 8px 24px rgba(0,0,0,.35)}.toast-card.toast-error .toast-icon::before{content:"✕";color:var(--gnome-error);background:var(--gnome-error-bg)}.toast-card.toast-warn{border-color:rgba(248,228,92,.35);box-shadow:inset 4px 0 0 0 var(--gnome-warn),0 8px 24px rgba(0,0,0,.35)}.toast-card.toast-warn .toast-icon::before{content:"⚠";color:var(--gnome-warn);background:var(--gnome-warn-bg)}.toast-card.toast-info{border-color:rgba(53,132,228,.35);box-shadow:inset 4px 0 0 0 var(--gnome-info),0 8px 24px rgba(0,0,0,.35)}.toast-card.toast-info .toast-icon::before{content:"ℹ";color:var(--gnome-info);background:var(--gnome-info-bg)}.toast-card .toast-icon-wrapper{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.toast-card .toast-icon-wrapper .toast-icon::before{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-pill);font-size:12px;font-weight:800}.toast-card .toast-body{display:flex;flex-direction:column;gap:3px;flex:1;overflow-y:auto}.toast-card .toast-body::-webkit-scrollbar{width:3px;height:3px}.toast-card .toast-body::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.toast-card .toast-body::-webkit-scrollbar-thumb{background:var(--gnome-border);border-radius:999px}.toast-card .toast-body::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.toast-card .toast-body .toast-title{font-size:13.5px;font-weight:700;color:var(--text-main);line-height:1.3}.toast-card .toast-body .toast-subtitle{font-size:12px;color:var(--text-secondary);line-height:1.4;word-break:break-word}.toast-card .toast-close-btn{background:rgba(0,0,0,0);border:none;color:var(--text-secondary);font-size:13px;padding:3px 6px;border-radius:var(--radius-control);cursor:var(--cursor-pointer);transition:all var(--transition-fast) ease;flex-shrink:0;margin-top:-2px;margin-right:-4px;display:inline-flex;align-items:center;gap:5px}.toast-card .toast-close-btn .toast-countdown{font-family:var(--font-mono, monospace);font-size:11px;font-weight:700;color:var(--text-muted);line-height:1;padding:2px 5px;border-radius:var(--radius-pill, 999px);background:var(--gnome-input, rgba(255, 255, 255, 0.08));border:1px solid var(--gnome-border-subtle, rgba(255, 255, 255, 0.06));letter-spacing:-0.2px}.toast-card .toast-close-btn .toast-countdown:empty{display:none}.toast-card .toast-close-btn .toast-close-icon{font-size:12px;line-height:1}.toast-card .toast-close-btn:hover{background:var(--gnome-hover);color:var(--text-main)}.toast-card .toast-close-btn:hover .toast-countdown{color:var(--text-main);border-color:var(--gnome-border)}.toast-card .toast-close-btn:active{background:var(--gnome-active)}@keyframes toastSlideIn{from{opacity:0;transform:translateY(-8px) scale(0.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastBlink{0%{box-shadow:0 8px 24px rgba(0,0,0,.35);filter:brightness(1)}100%{box-shadow:0 0 24px var(--accent-shadow),0 8px 28px rgba(0,0,0,.5);filter:brightness(1.2)}}:host{display:none}.purity-popover-portal{position:fixed;z-index:1050;top:-9999px;left:-9999px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-fast, 0.18s) cubic-bezier(0.25, 0.8, 0.25, 1),transform var(--transition-fast, 0.18s) cubic-bezier(0.25, 0.8, 0.25, 1),visibility var(--transition-fast, 0.18s);transform:scale(0.96);box-sizing:border-box}.purity-popover-portal.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:scale(1)}.purity-popover-portal .popover-surface{position:relative;background:var(--popover-bg, var(--gnome-surface));border:1px solid var(--popover-border, var(--gnome-border));border-radius:var(--radius-card, 12px);-webkit-backdrop-filter:var(--blur-effect);backdrop-filter:var(--blur-effect);box-shadow:var(--popover-shadow, var(--shadow-popup));padding:14px 18px;color:var(--text-main);min-width:140px;max-width:320px;font-size:13.5px;line-height:1.45;box-sizing:border-box}.purity-popover-portal .popover-surface h1,.purity-popover-portal .popover-surface h2,.purity-popover-portal .popover-surface h3,.purity-popover-portal .popover-surface h4,.purity-popover-portal .popover-surface h5,.purity-popover-portal .popover-surface h6{margin:0 0 6px 0;color:var(--text-main);font-size:14px;font-weight:700;letter-spacing:-0.01em}.purity-popover-portal .popover-surface p,.purity-popover-portal .popover-surface div{margin:0;color:var(--text-secondary);font-size:12.5px;line-height:1.4}.purity-popover-portal .popover-arrow{position:absolute;width:12px;height:12px;background:var(--popover-bg, var(--gnome-surface));border:1px solid var(--popover-border, var(--gnome-border));transform:rotate(45deg);z-index:1;pointer-events:none;box-sizing:border-box}.purity-popover-portal.pos-top .popover-arrow{bottom:-6px;left:50%;margin-left:-6px;border-top:none;border-left:none}.purity-popover-portal.pos-bottom .popover-arrow{top:-6px;left:50%;margin-left:-6px;border-bottom:none;border-right:none}.purity-popover-portal.pos-left .popover-arrow{right:-6px;top:50%;margin-top:-6px;border-left:none;border-bottom:none}.purity-popover-portal.pos-right .popover-arrow{left:-6px;top:50%;margin-top:-6px;border-right:none;border-top:none}radial-context-menu,:host{display:none}.radial-menu{position:fixed;border-radius:50%;z-index:9999;pointer-events:none;opacity:0;transform:scale(0.8);transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1),opacity .3s ease,background-color var(--transition-normal) ease;background:var(--radial-bg, rgba(30, 30, 30, 0.92));-webkit-backdrop-filter:var(--blur-effect);backdrop-filter:var(--blur-effect);box-shadow:0 0 0 1px var(--gnome-border),var(--shadow-deep);border:1px solid var(--radial-border, var(--gnome-border));overflow:hidden;contain:paint;box-sizing:border-box}.radial-menu.active{opacity:1;transform:scale(1);pointer-events:auto}.radial-menu.blur-enabled{background:var(--radial-blur-bg, rgba(30, 30, 30, 0.75));-webkit-backdrop-filter:var(--blur-heavy);backdrop-filter:var(--blur-heavy)}.items-container{position:absolute;top:0;left:0;width:100%;height:100%;transition:all .4s cubic-bezier(0.4, 0, 0.2, 1);opacity:0}.items-container.entering{opacity:0;transform:scale(0.85)}.items-container.exiting{opacity:0;transform:scale(1.15)}.items-container.active{opacity:1;transform:scale(1)}.menu-segment{position:absolute;top:0;left:0;width:100%;height:100%;cursor:var(--cursor-pointer);display:flex;justify-content:center;align-items:center;pointer-events:auto;transform:translateZ(0);will-change:clip-path;isolation:isolate}.menu-segment .segment-glass{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.15), transparent);background-color:var(--radial-segment-bg, rgba(45, 45, 45, 0.7));transition:all var(--transition-fast) cubic-bezier(0.4, 0, 0.2, 1);z-index:1;box-shadow:inset 0 1px 1px rgba(255,255,255,.2),inset 0 -1px 1px rgba(0,0,0,.15)}.menu-segment .segment-shine{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, transparent 60%);opacity:.4;z-index:2;pointer-events:none;transition:opacity var(--transition-fast) ease}.menu-segment:hover .segment-glass{background-color:var(--accent);box-shadow:inset 0 1px 3px rgba(255,255,255,.45),0 0 18px var(--accent-shadow)}.menu-segment:hover .segment-shine{opacity:1}.menu-segment .segment-label{position:absolute;transform:translate(-50%, -50%);font-size:1.45rem;color:var(--radial-text, #ffffff);pointer-events:none;transition:all .25s cubic-bezier(0.34, 1.56, 0.64, 1);z-index:3;display:flex;align-items:center;justify-content:center;width:38px;height:38px;user-select:none;line-height:1}.menu-segment .segment-label svg{width:24px;height:24px;stroke:currentColor;color:currentColor;display:block;pointer-events:none;transition:transform var(--transition-fast) ease,stroke var(--transition-fast) ease}.menu-segment .segment-label img.segment-icon{width:24px;height:24px;filter:brightness(0) invert(1);display:block;pointer-events:none;transition:transform var(--transition-fast) ease}.menu-segment:hover .segment-label{transform:translate(-50%, -50%) scale(1.22);filter:drop-shadow(0 0 8px rgba(255, 255, 255, 0.6));color:#fff}.menu-segment:hover .segment-label svg{stroke:#fff;color:#fff}.menu-segment .submenu-indicator{position:absolute;width:5px;height:5px;background:var(--accent, #3584e4);border-radius:50%;transform:translate(-50%, -50%);opacity:.85;z-index:4;box-shadow:0 0 6px var(--accent-shadow);pointer-events:none;transition:transform var(--transition-fast) ease}.menu-segment:hover .submenu-indicator{opacity:1;background:#fff;transform:translate(-50%, -50%) scale(1.6);box-shadow:0 0 6px rgba(255,255,255,.8)}.center-button{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:88px;height:88px;background:var(--gnome-surface-solid, #2c2c2c);border:1px solid var(--gnome-border);border-radius:50%;display:grid;place-items:center;cursor:var(--cursor-pointer);z-index:10;transition:all var(--transition-fast) cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--shadow-deep),inset 0 2px 4px rgba(255,255,255,.2);pointer-events:auto;overflow:hidden;outline:none;padding:0}.center-button:hover{transform:translate(-50%, -50%) scale(1.06);border-color:var(--accent);box-shadow:0 6px 22px var(--accent-shadow),inset 0 2px 6px rgba(255,255,255,.35)}.center-button .center-icon{font-size:1.6rem;font-weight:700;color:var(--text-main, #ffffff);display:block;width:70px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all var(--transition-fast) ease;text-shadow:0 0 8px var(--accent-shadow);pointer-events:none;user-select:none;line-height:1}.menu-title-pop{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80px;text-align:center;z-index:15;pointer-events:none;opacity:0;transition:all var(--transition-fast) cubic-bezier(0.23, 1, 0.32, 1);font-size:11px;font-weight:700;color:var(--text-main, #ffffff);font-family:var(--font-main);text-transform:uppercase;letter-spacing:.8px;text-shadow:0 0 10px var(--accent-shadow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none}.menu-title-pop.visible{opacity:1;transform:translate(-50%, -50%) scale(1.05)}:host,switch-button{display:inline-flex;align-items:center;vertical-align:middle;outline:none;cursor:var(--cursor-pointer);user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border-radius:var(--radius-pill);transition:opacity var(--transition-fast) var(--ease-gnome)}:host:focus-visible,switch-button:focus-visible{box-shadow:0 0 0 2px var(--gnome-border-focus)}:host.is-disabled,:host[disabled],switch-button.is-disabled,switch-button[disabled]{cursor:var(--cursor-not-allowed);opacity:.5;pointer-events:none}.switch-container{display:inline-flex;align-items:center;gap:var(--spacing-sm);cursor:inherit}.switch-container.is-disabled{cursor:var(--cursor-not-allowed)}.switch-track{position:relative;display:inline-flex;align-items:center;width:46px;height:26px;border-radius:var(--radius-pill);background:var(--gnome-input);border:1px solid var(--gnome-border);box-sizing:border-box;cursor:inherit;transition:background-color var(--transition-normal) var(--ease-gnome),border-color var(--transition-normal) var(--ease-gnome),box-shadow var(--transition-normal) var(--ease-gnome)}.switch-track:hover{border-color:var(--gnome-border-focus);background:var(--gnome-input-hover)}.switch-thumb{position:absolute;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.28),0 1px 2px rgba(0,0,0,.16);transition:transform var(--transition-normal) var(--ease-gnome),width var(--transition-fast) var(--ease-gnome),background-color var(--transition-fast) var(--ease-gnome),box-shadow var(--transition-fast) var(--ease-gnome);transform:translateX(0)}:host(:active:not(.is-disabled)) .switch-thumb,switch-button:active:not(.is-disabled) .switch-thumb{width:21px}.switch-container.is-on .switch-track,:host(.is-on) .switch-container .switch-track{background:var(--accent);border-color:var(--accent-hover);box-shadow:0 0 10px var(--accent-shadow)}.switch-container.is-on .switch-track:hover,:host(.is-on) .switch-container .switch-track:hover{background:var(--accent-hover);border-color:var(--accent-active)}.switch-container.is-on .switch-thumb,:host(.is-on) .switch-container .switch-thumb{transform:translateX(20px);background:#fff}:host(:active:not(.is-disabled).is-on) .switch-thumb,switch-button:active:not(.is-disabled).is-on .switch-thumb{transform:translateX(17px);width:21px}.switch-label{font-family:var(--font-main);font-size:var(--font-size-base);font-weight:500;color:var(--text-main);line-height:1.4;cursor:inherit;transition:color var(--transition-fast) var(--ease-gnome)}.switch-label:empty{display:none}analogue-clock{display:block;width:100%}.analogue-clock-widget{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;border-radius:var(--radius-card);background:var(--gnome-surface);-webkit-backdrop-filter:var(--blur-window);backdrop-filter:var(--blur-window);border:1px solid var(--gnome-border);box-shadow:var(--shadow-popup);transition:all var(--transition-normal) var(--ease-gnome);overflow:hidden}.analogue-clock-widget::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 50% 0%, var(--accent-subtle), transparent 70%);pointer-events:none;opacity:.6;transition:opacity var(--transition-normal)}.analogue-clock-widget:hover::before{opacity:.9}.clock-header{width:100%;display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--gnome-border-subtle)}.clock-header .clock-title-group{display:flex;align-items:center;gap:10px}.clock-header .clock-title-group .clock-icon{font-size:1.25rem;filter:drop-shadow(0 2px 6px var(--accent-shadow))}.clock-header .clock-title-group .clock-title{font-size:1.05rem;font-weight:700;color:var(--text-main);letter-spacing:-0.01em}.clock-header .clock-title-group .clock-badge{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--accent-subtle);color:var(--accent);border:1px solid var(--accent-shadow);text-transform:uppercase;letter-spacing:.04em}.clock-header .clock-tz-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono, "Adwaita Mono", monospace);font-size:.76rem;font-weight:600;color:var(--accent);background:var(--accent-subtle);-webkit-backdrop-filter:var(--blur-subtle);backdrop-filter:var(--blur-subtle);padding:4px 12px;border-radius:var(--radius-pill, 999px);border:1px solid var(--accent-shadow);box-shadow:0 2px 8px var(--accent-shadow),inset 0 1px rgba(255,255,255,.1);letter-spacing:.02em;transition:all var(--transition-fast) var(--ease-gnome)}.clock-header .clock-tz-badge .tz-icon{font-size:.82rem;line-height:1;display:inline-flex;align-items:center}.clock-header .clock-tz-badge .tz-text{line-height:1.2}.clock-header .clock-tz-badge:hover{transform:translateY(-1px);box-shadow:0 4px 14px var(--accent-shadow),inset 0 1px rgba(255,255,255,.2)}.clock-stage{position:relative;display:flex;align-items:center;justify-content:center;padding:12px;border-radius:50%;background:radial-gradient(circle at 50% 30%, var(--gnome-subtle), transparent 70%)}.clock-stage .clock-canvas{display:block;cursor:var(--cursor-pointer);user-select:none;-webkit-user-select:none;border-radius:50%;filter:drop-shadow(0 14px 28px rgba(0, 0, 0, 0.35));transition:transform var(--transition-fast) var(--ease-gnome),filter var(--transition-fast)}.clock-stage .clock-canvas:hover{transform:scale(1.015);filter:drop-shadow(0 18px 36px rgba(0, 0, 0, 0.45))}.clock-stage .clock-canvas:active{transform:scale(0.99)}.clock-digital-readout{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:18px;padding:10px 24px;border-radius:var(--radius-control, 8px);background:var(--gnome-card);border:1px solid var(--gnome-border-subtle);box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}.clock-digital-readout .digital-time{font-family:"Adwaita Mono",monospace;font-size:1.45rem;font-weight:700;color:var(--text-main);letter-spacing:.05em;text-shadow:0 2px 8px var(--accent-shadow)}.clock-digital-readout .digital-date{font-size:.82rem;font-weight:500;color:var(--text-secondary);letter-spacing:.02em}.clock-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin-top:20px;width:100%}.clock-controls .clock-control-btn{margin:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;font-family:var(--font-main);font-size:var(--font-size-sm, 13.5px);font-weight:600;border-radius:var(--radius-control, 8px);border:1px solid var(--gnome-border);background:var(--gnome-card);color:var(--text-main);cursor:var(--cursor-pointer);box-shadow:var(--shadow-control);transition:all var(--transition-fast) var(--ease-gnome)}.clock-controls .clock-control-btn:hover:not(:disabled){background:var(--gnome-hover);border-color:var(--gnome-border-focus);color:var(--text-main);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.clock-controls .clock-control-btn:active:not(:disabled){transform:translateY(0);background:var(--gnome-active)}.clock-controls .clock-control-btn.is-active{background-color:var(--accent);background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.15), transparent);color:#fff;border-color:rgba(0,0,0,.15);box-shadow:0 2px 8px var(--accent-shadow),inset 0 1px rgba(255,255,255,.25)}.clock-controls .clock-control-btn.is-active:hover:not(:disabled){background-color:var(--accent-hover);box-shadow:0 4px 14px var(--accent-shadow),inset 0 1px rgba(255,255,255,.25)}.clock-controls .tz-dropdown .dropdown-trigger{margin:0;padding:9px 16px;font-family:var(--font-main);font-size:var(--font-size-sm, 13.5px);font-weight:600;border-radius:var(--radius-control, 8px);border:1px solid var(--gnome-border);background-color:var(--gnome-card);-webkit-backdrop-filter:var(--blur-subtle);backdrop-filter:var(--blur-subtle);color:var(--text-main);box-shadow:var(--shadow-control)}.clock-controls .tz-dropdown .dropdown-trigger:hover:not(:disabled){background-color:var(--gnome-hover);border-color:var(--gnome-border-focus)}.clock-controls .tz-dropdown .dropdown-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-shadow)}[data-theme=light] .analogue-clock-widget{box-shadow:var(--shadow-deep);background:var(--gnome-surface);border-color:var(--gnome-border)}[data-theme=light] .analogue-clock-widget::before{background:radial-gradient(circle at 50% 0%, rgba(28, 113, 216, 0.12), transparent 70%)}[data-theme=light] .clock-header .clock-tz-badge{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent-shadow);box-shadow:0 2px 6px var(--accent-shadow),inset 0 1px rgba(255,255,255,.8)}[data-theme=light] .clock-stage .clock-canvas{filter:drop-shadow(0 10px 24px rgba(0, 0, 0, 0.12))}[data-theme=light] .clock-stage .clock-canvas:hover{filter:drop-shadow(0 14px 30px rgba(0, 0, 0, 0.18))}[data-theme=light] .clock-digital-readout{background:rgba(255,255,255,.85);box-shadow:0 2px 8px rgba(0,0,0,.04),inset 0 1px rgba(255,255,255,.9);border-color:var(--gnome-border-subtle)}[data-theme=light] .clock-digital-readout .digital-time{color:var(--text-main);text-shadow:none}[data-theme=light] .clock-controls .clock-control-btn{background:var(--gnome-card);border-color:var(--gnome-border);color:var(--text-main)}[data-theme=light] .clock-controls .clock-control-btn:hover:not(:disabled){background:var(--gnome-hover);border-color:var(--gnome-border-focus)}[data-theme=light] .clock-controls .clock-control-btn.is-active{background-color:var(--accent);color:#fff;border-color:rgba(0,0,0,.15);box-shadow:0 2px 8px var(--accent-shadow)}[data-theme=light] .clock-controls .tz-dropdown .dropdown-trigger{background-color:var(--gnome-card);border-color:var(--gnome-border);color:var(--text-main)}[data-theme=light] .clock-controls .tz-dropdown .dropdown-trigger:hover:not(:disabled){background-color:var(--gnome-hover);border-color:var(--gnome-border-focus)}
1
+ :root{--font-mono: 'Adwaita Mono', 'Source Code Pro', monospace;--font-main: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;--font-size-xs: 12px;--font-size-sm: 13.5px;--font-size-base: 15px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-xxl: 32px;--radius-window: 16px;--radius-control: 8px;--radius-pill: 999px;--radius-card: 12px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-xxl: 32px;--header-max-width: 1366px;--transition-fast: 0.18s;--transition-normal: 0.28s;--transition-slow: 0.45s;--ease-gnome: cubic-bezier(0.25, 0.8, 0.25, 1);--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);--blur-subtle: blur(10px) saturate(150%);--blur-effect: blur(20px) saturate(175%);--blur-heavy: blur(32px) saturate(190%);--cursor-default: url('/cursors/default.svg') 4 4, default;--cursor-pointer: url('/cursors/pointer.svg') 16 4, pointer;--cursor-text: url('/cursors/text.svg') 16 15, text;--cursor-grab: url('/cursors/openhand.svg') 16 16, grab;--cursor-grabbing: url('/cursors/dnd-move.svg') 16 16, grabbing;--cursor-not-allowed: url('/cursors/not-allowed.svg') 16 15, not-allowed;--cursor-crosshair: url('/cursors/crosshair.svg') 17 17, crosshair;--cursor-help: url('/cursors/help.svg') 4 4, help;--cursor-move: url('/cursors/all-scroll.svg') 15 15, move;--cursor-col-resize: url('/cursors/col-resize.svg') 16 15, col-resize;--cursor-row-resize: url('/cursors/row-resize.svg') 16 15, row-resize;--cursor-ew-resize: url('/cursors/size_hor.svg') 16 15, ew-resize;--cursor-ns-resize: url('/cursors/size_ver.svg') 16 15, ns-resize;--cursor-nwse-resize: url('/cursors/size_bdiag.svg') 16 15, nwse-resize;--cursor-nesw-resize: url('/cursors/size_fdiag.svg') 16 15, nesw-resize;--cursor-zoom-in: url('/cursors/zoom-in.svg') 15 15, zoom-in;--cursor-zoom-out: url('/cursors/zoom-out.svg') 15 15, zoom-out;--cursor-context-menu: url('/cursors/context-menu.svg') 4 4, context-menu;--cursor-progress: url('/cursors/progress-01.svg') 4 4, progress;--cursor-wait: url('/cursors/wait-01.svg') 16 15, wait;--cursor-copy: url('/cursors/copy.svg') 16 4, copy;--cursor-alias: url('/cursors/alias.svg') 16 4, alias;--cursor-cell: url('/cursors/cell.svg') 16 16, cell;--cursor-color-picker: url('/cursors/color-picker.svg') 4 16, crosshair;--cursor-pencil: url('/cursors/pencil.svg') 4 16, crosshair;--cursor-vertical-text: url('/cursors/vertical-text.svg') 16 15, vertical-text;--cursor-dnd-no-drop: url('/cursors/dnd-no-drop.svg') 16 15, no-drop}.draggable-target{cursor:var(--cursor-grab, grab);touch-action:none}.draggable-target .drag-handle{cursor:var(--cursor-grab, grab)}.is-dragging{z-index:1000 !important;user-select:none !important;cursor:var(--cursor-grabbing, grabbing) !important;transition:none !important;will-change:transform}.is-dragging .drag-handle{cursor:var(--cursor-grabbing, grabbing) !important}.snap-hit{animation:snap-thud .16s var(--ease-spring, cubic-bezier(0.34, 1.56, 0.64, 1))}@keyframes snap-thud{0%{scale:1}45%{scale:.96}100%{scale:1}}.droppable-hover{outline:2px dashed var(--accent);outline-offset:4px;background-color:rgba(53,132,228,.1) !important;transition:all var(--transition-fast) ease}.droppable-active{border-color:rgba(255,255,255,.2)}.droppable-checking{pointer-events:none !important}.resizable-container{position:relative;box-sizing:border-box}.resizable-container.is-resizing{user-select:none !important;transition:none !important;will-change:width,height,transform,left,top;z-index:1000 !important}.resizable-container.is-resizing .resize-handle{opacity:1 !important}.resizable-container:hover .resize-handle{opacity:.85}.resizable-container.is-disabled .resize-handle{display:none !important;pointer-events:none !important}body.is-resizing-active{user-select:none !important}.resize-handle{position:absolute;box-sizing:border-box;z-index:100;touch-action:none;opacity:.45;transition:opacity var(--transition-fast) var(--ease-gnome),background-color var(--transition-fast) var(--ease-gnome),border-color var(--transition-fast) var(--ease-gnome),transform var(--transition-fast) var(--ease-gnome),box-shadow var(--transition-fast) var(--ease-gnome)}.resize-handle:hover,.resize-handle.is-active{opacity:1 !important}.resize-handle-corner{width:14px;height:14px;border-radius:var(--radius-control, 4px);background:var(--gnome-surface, rgba(255, 255, 255, 0.15));border:1px solid var(--gnome-border, rgba(255, 255, 255, 0.25));backdrop-filter:var(--blur-subtle, blur(8px));-webkit-backdrop-filter:var(--blur-subtle, blur(8px))}.resize-handle-corner:hover,.resize-handle-corner.is-active{background:var(--accent, #3584e4);border-color:var(--accent, #3584e4);box-shadow:0 0 8px rgba(53,132,228,.55);transform:scale(1.15)}.resize-handle-nw{top:0;left:0;border-top-left-radius:inherit;cursor:var(--cursor-nwse-resize, nwse-resize)}.resize-handle-ne{top:0;right:0;border-top-right-radius:inherit;cursor:var(--cursor-nesw-resize, nesw-resize)}.resize-handle-se{bottom:0;right:0;border-bottom-right-radius:inherit;cursor:var(--cursor-nwse-resize, nwse-resize)}.resize-handle-sw{bottom:0;left:0;border-bottom-left-radius:inherit;cursor:var(--cursor-nesw-resize, nesw-resize)}.resize-handle-edge{background:rgba(0,0,0,0)}.resize-handle-edge:hover,.resize-handle-edge.is-active{background:rgba(53,132,228,.25)}.resize-handle-n{top:0;left:14px;right:14px;height:8px;cursor:var(--cursor-ns-resize, ns-resize)}.resize-handle-s{bottom:0;left:14px;right:14px;height:8px;cursor:var(--cursor-ns-resize, ns-resize)}.resize-handle-w{top:14px;bottom:14px;left:0;width:8px;cursor:var(--cursor-ew-resize, ew-resize)}.resize-handle-e{top:14px;bottom:14px;right:0;width:8px;cursor:var(--cursor-ew-resize, ew-resize)}.resizable-theme-minimal .resize-handle-corner{opacity:0;background:rgba(0,0,0,0);border:none}.resizable-theme-minimal .resize-handle-corner:hover,.resizable-theme-minimal .resize-handle-corner.is-active{opacity:.85 !important;background:var(--accent, #3584e4);border:1px solid var(--accent, #3584e4)}.resizable-theme-invisible .resize-handle{opacity:0 !important;background:rgba(0,0,0,0) !important;border:none !important;box-shadow:none !important}.p-highlight{transition:all var(--transition-normal, 0.3s) ease;padding:8px 12px;border-radius:var(--radius-control, 6px);border:1px solid rgba(255,255,255,.2);background-color:rgba(53,132,228,.25)}.p-highlight--blue{background-color:rgba(53,132,228,.3);border-color:rgba(53,132,228,.5)}.p-highlight--green{background-color:rgba(46,194,126,.3);border-color:rgba(46,194,126,.5)}.p-highlight--gold{background-color:rgba(248,228,92,.3);border-color:rgba(248,228,92,.5)}.p-highlight--red{background-color:rgba(237,51,59,.3);border-color:rgba(237,51,59,.5)}.p-highlight--valid{border-color:var(--gnome-success, #2ec27e) !important;box-shadow:0 0 8px rgba(46,194,126,.4)}dropdown,[dropdown],.p-dropdown{position:relative;display:inline-block;max-width:100%;vertical-align:middle;font-family:var(--font-main);user-select:none;-webkit-user-select:none}dropdown .dropdown-trigger,[dropdown] .dropdown-trigger,.p-dropdown .dropdown-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-width:150px;padding:9px 14px;margin:0;border-radius:var(--radius-control, 8px);border:1px solid var(--gnome-border);background-color:var(--gnome-input);-webkit-backdrop-filter:var(--blur-subtle);backdrop-filter:var(--blur-subtle);color:var(--text-main);font-family:var(--font-main);font-size:var(--font-size-sm, 13.5px);font-weight:600;cursor:var(--cursor-pointer);outline:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.1),var(--shadow-control);transition:all var(--transition-fast) var(--ease-gnome);box-sizing:border-box}dropdown .dropdown-trigger .dropdown-label,[dropdown] .dropdown-trigger .dropdown-label,.p-dropdown .dropdown-trigger .dropdown-label{display:inline-flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1}dropdown .dropdown-trigger .dropdown-chevron,[dropdown] .dropdown-trigger .dropdown-chevron,.p-dropdown .dropdown-trigger .dropdown-chevron{display:inline-flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0;transition:transform var(--transition-fast) var(--ease-gnome)}dropdown .dropdown-trigger .dropdown-chevron svg,[dropdown] .dropdown-trigger .dropdown-chevron svg,.p-dropdown .dropdown-trigger .dropdown-chevron svg{display:block}dropdown .dropdown-trigger:hover:not(:disabled),[dropdown] .dropdown-trigger:hover:not(:disabled),.p-dropdown .dropdown-trigger:hover:not(:disabled){background-color:var(--gnome-input-hover);border-color:var(--gnome-border-focus);transform:translateY(-1px)}dropdown .dropdown-trigger:focus-visible,[dropdown] .dropdown-trigger:focus-visible,.p-dropdown .dropdown-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-shadow)}dropdown .dropdown-trigger:disabled,dropdown .dropdown-trigger.disabled,[dropdown] .dropdown-trigger:disabled,[dropdown] .dropdown-trigger.disabled,.p-dropdown .dropdown-trigger:disabled,.p-dropdown .dropdown-trigger.disabled{opacity:.45;cursor:var(--cursor-not-allowed) !important;pointer-events:none;transform:none !important;box-shadow:none !important}dropdown.dropdown-open .dropdown-trigger,dropdown.p-dropdown--open .dropdown-trigger,[dropdown].dropdown-open .dropdown-trigger,[dropdown].p-dropdown--open .dropdown-trigger,.p-dropdown.dropdown-open .dropdown-trigger,.p-dropdown.p-dropdown--open .dropdown-trigger{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-shadow);transform:translateY(0)}dropdown.dropdown-open .dropdown-trigger .dropdown-chevron,dropdown.p-dropdown--open .dropdown-trigger .dropdown-chevron,[dropdown].dropdown-open .dropdown-trigger .dropdown-chevron,[dropdown].p-dropdown--open .dropdown-trigger .dropdown-chevron,.p-dropdown.dropdown-open .dropdown-trigger .dropdown-chevron,.p-dropdown.p-dropdown--open .dropdown-trigger .dropdown-chevron{transform:rotate(180deg)}.p-dropdown-body,.dropdown-body{position:fixed;z-index:10000;width:max-content;max-width:min(380px,100vw - 20px);max-height:320px;overflow-y:auto;overflow-x:hidden;padding:6px;box-sizing:border-box;background:var(--dropdown-bg, rgba(30, 30, 34, 0.96));-webkit-backdrop-filter:var(--blur-heavy);backdrop-filter:var(--blur-heavy);border:1px solid var(--dropdown-border, var(--gnome-border));border-radius:var(--radius-card, 12px);box-shadow:var(--dropdown-shadow, var(--shadow-popup));color:var(--text-main);font-family:var(--font-main);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-6px) scale(0.98);transform-origin:top center;transition:opacity var(--transition-fast) var(--ease-gnome),transform var(--transition-fast) var(--ease-gnome),visibility var(--transition-fast)}.p-dropdown-body::-webkit-scrollbar,.dropdown-body::-webkit-scrollbar{width:5px;height:5px}.p-dropdown-body::-webkit-scrollbar-track,.dropdown-body::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.p-dropdown-body::-webkit-scrollbar-thumb,.dropdown-body::-webkit-scrollbar-thumb{background:var(--gnome-border);border-radius:999px}.p-dropdown-body::-webkit-scrollbar-thumb:hover,.dropdown-body::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.p-dropdown-body.is-open,.dropdown-body.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}.p-dropdown-body.placement-top,.dropdown-body.placement-top{transform-origin:bottom center;transform:translateY(6px) scale(0.98)}.p-dropdown-body.placement-top.is-open,.dropdown-body.placement-top.is-open{transform:translateY(0) scale(1)}.p-dropdown-body ul,.p-dropdown-body ol,.dropdown-body ul,.dropdown-body ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;width:100%;box-sizing:border-box}.p-dropdown-body li,.p-dropdown-body a,.p-dropdown-body button.dropdown-item,.p-dropdown-body .dropdown-item,.dropdown-body li,.dropdown-body a,.dropdown-body button.dropdown-item,.dropdown-body .dropdown-item{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:0;border-radius:var(--radius-control, 8px);border:1px solid rgba(0,0,0,0);background:rgba(0,0,0,0);color:var(--text-main);font-family:var(--font-main);font-size:var(--font-size-sm, 13.5px);font-weight:500;text-decoration:none;cursor:var(--cursor-pointer);transition:all var(--transition-fast) var(--ease-gnome);box-sizing:border-box;width:100%;text-align:left;user-select:none;-webkit-user-select:none}.p-dropdown-body li:hover:not(:disabled):not(.disabled),.p-dropdown-body a:hover:not(:disabled):not(.disabled),.p-dropdown-body button.dropdown-item:hover:not(:disabled):not(.disabled),.p-dropdown-body .dropdown-item:hover:not(:disabled):not(.disabled),.dropdown-body li:hover:not(:disabled):not(.disabled),.dropdown-body a:hover:not(:disabled):not(.disabled),.dropdown-body button.dropdown-item:hover:not(:disabled):not(.disabled),.dropdown-body .dropdown-item:hover:not(:disabled):not(.disabled){background:var(--gnome-hover);color:var(--text-main);transform:translateX(2px)}.p-dropdown-body li:active:not(:disabled):not(.disabled),.p-dropdown-body a:active:not(:disabled):not(.disabled),.p-dropdown-body button.dropdown-item:active:not(:disabled):not(.disabled),.p-dropdown-body .dropdown-item:active:not(:disabled):not(.disabled),.dropdown-body li:active:not(:disabled):not(.disabled),.dropdown-body a:active:not(:disabled):not(.disabled),.dropdown-body button.dropdown-item:active:not(:disabled):not(.disabled),.dropdown-body .dropdown-item:active:not(:disabled):not(.disabled){background:var(--gnome-active);transform:translateX(0)}.p-dropdown-body li.is-selected,.p-dropdown-body li.active,.p-dropdown-body a.is-selected,.p-dropdown-body a.active,.p-dropdown-body button.dropdown-item.is-selected,.p-dropdown-body button.dropdown-item.active,.p-dropdown-body .dropdown-item.is-selected,.p-dropdown-body .dropdown-item.active,.dropdown-body li.is-selected,.dropdown-body li.active,.dropdown-body a.is-selected,.dropdown-body a.active,.dropdown-body button.dropdown-item.is-selected,.dropdown-body button.dropdown-item.active,.dropdown-body .dropdown-item.is-selected,.dropdown-body .dropdown-item.active{background:var(--accent-subtle);color:var(--accent);font-weight:600;border-color:var(--accent-shadow)}.p-dropdown-body li:disabled,.p-dropdown-body li.disabled,.p-dropdown-body a:disabled,.p-dropdown-body a.disabled,.p-dropdown-body button.dropdown-item:disabled,.p-dropdown-body button.dropdown-item.disabled,.p-dropdown-body .dropdown-item:disabled,.p-dropdown-body .dropdown-item.disabled,.dropdown-body li:disabled,.dropdown-body li.disabled,.dropdown-body a:disabled,.dropdown-body a.disabled,.dropdown-body button.dropdown-item:disabled,.dropdown-body button.dropdown-item.disabled,.dropdown-body .dropdown-item:disabled,.dropdown-body .dropdown-item.disabled{opacity:.4;cursor:var(--cursor-not-allowed) !important;pointer-events:none}.p-dropdown-body li .item-icon,.p-dropdown-body a .item-icon,.p-dropdown-body button.dropdown-item .item-icon,.p-dropdown-body .dropdown-item .item-icon,.dropdown-body li .item-icon,.dropdown-body a .item-icon,.dropdown-body button.dropdown-item .item-icon,.dropdown-body .dropdown-item .item-icon{font-size:1.1em;line-height:1;flex-shrink:0}.p-dropdown-body li .item-text,.p-dropdown-body a .item-text,.p-dropdown-body button.dropdown-item .item-text,.p-dropdown-body .dropdown-item .item-text,.dropdown-body li .item-text,.dropdown-body a .item-text,.dropdown-body button.dropdown-item .item-text,.dropdown-body .dropdown-item .item-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.p-dropdown-body li .item-badge,.p-dropdown-body a .item-badge,.p-dropdown-body button.dropdown-item .item-badge,.p-dropdown-body .dropdown-item .item-badge,.dropdown-body li .item-badge,.dropdown-body a .item-badge,.dropdown-body button.dropdown-item .item-badge,.dropdown-body .dropdown-item .item-badge{font-size:.72rem;font-weight:700;padding:2px 7px;border-radius:var(--radius-pill, 999px);background:var(--accent-subtle);color:var(--accent)}.p-dropdown-body .dropdown-header,.p-dropdown-body h6,.dropdown-body .dropdown-header,.dropdown-body h6{padding:6px 12px 2px;margin:0;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.p-dropdown-body hr,.p-dropdown-body .dropdown-divider,.dropdown-body hr,.dropdown-body .dropdown-divider{border:none;border-top:1px solid var(--gnome-border-subtle);margin:4px 6px}[data-theme=light] dropdown .dropdown-trigger,[data-theme=light] [dropdown] .dropdown-trigger,[data-theme=light] .p-dropdown .dropdown-trigger{background-color:var(--gnome-input);border-color:var(--gnome-border);color:var(--text-main)}[data-theme=light] dropdown .dropdown-trigger:hover:not(:disabled),[data-theme=light] [dropdown] .dropdown-trigger:hover:not(:disabled),[data-theme=light] .p-dropdown .dropdown-trigger:hover:not(:disabled){background-color:var(--gnome-input-hover);border-color:var(--gnome-border-focus)}body[data-theme=light] .p-dropdown-body,[data-theme=light] .p-dropdown-body,html[data-theme=light] .p-dropdown-body{background:var(--dropdown-bg, rgba(255, 255, 255, 0.96));border-color:var(--dropdown-border, var(--gnome-border));box-shadow:var(--dropdown-shadow, var(--shadow-popup))}body[data-theme=light] .p-dropdown-body li,body[data-theme=light] .p-dropdown-body a,body[data-theme=light] .p-dropdown-body button.dropdown-item,body[data-theme=light] .p-dropdown-body .dropdown-item,[data-theme=light] .p-dropdown-body li,[data-theme=light] .p-dropdown-body a,[data-theme=light] .p-dropdown-body button.dropdown-item,[data-theme=light] .p-dropdown-body .dropdown-item,html[data-theme=light] .p-dropdown-body li,html[data-theme=light] .p-dropdown-body a,html[data-theme=light] .p-dropdown-body button.dropdown-item,html[data-theme=light] .p-dropdown-body .dropdown-item{color:var(--text-main)}body[data-theme=light] .p-dropdown-body li:hover:not(:disabled):not(.disabled),body[data-theme=light] .p-dropdown-body a:hover:not(:disabled):not(.disabled),body[data-theme=light] .p-dropdown-body button.dropdown-item:hover:not(:disabled):not(.disabled),body[data-theme=light] .p-dropdown-body .dropdown-item:hover:not(:disabled):not(.disabled),[data-theme=light] .p-dropdown-body li:hover:not(:disabled):not(.disabled),[data-theme=light] .p-dropdown-body a:hover:not(:disabled):not(.disabled),[data-theme=light] .p-dropdown-body button.dropdown-item:hover:not(:disabled):not(.disabled),[data-theme=light] .p-dropdown-body .dropdown-item:hover:not(:disabled):not(.disabled),html[data-theme=light] .p-dropdown-body li:hover:not(:disabled):not(.disabled),html[data-theme=light] .p-dropdown-body a:hover:not(:disabled):not(.disabled),html[data-theme=light] .p-dropdown-body button.dropdown-item:hover:not(:disabled):not(.disabled),html[data-theme=light] .p-dropdown-body .dropdown-item:hover:not(:disabled):not(.disabled){background:var(--gnome-hover)}body[data-theme=light] .p-dropdown-body li.is-selected,body[data-theme=light] .p-dropdown-body li.active,body[data-theme=light] .p-dropdown-body a.is-selected,body[data-theme=light] .p-dropdown-body a.active,body[data-theme=light] .p-dropdown-body button.dropdown-item.is-selected,body[data-theme=light] .p-dropdown-body button.dropdown-item.active,body[data-theme=light] .p-dropdown-body .dropdown-item.is-selected,body[data-theme=light] .p-dropdown-body .dropdown-item.active,[data-theme=light] .p-dropdown-body li.is-selected,[data-theme=light] .p-dropdown-body li.active,[data-theme=light] .p-dropdown-body a.is-selected,[data-theme=light] .p-dropdown-body a.active,[data-theme=light] .p-dropdown-body button.dropdown-item.is-selected,[data-theme=light] .p-dropdown-body button.dropdown-item.active,[data-theme=light] .p-dropdown-body .dropdown-item.is-selected,[data-theme=light] .p-dropdown-body .dropdown-item.active,html[data-theme=light] .p-dropdown-body li.is-selected,html[data-theme=light] .p-dropdown-body li.active,html[data-theme=light] .p-dropdown-body a.is-selected,html[data-theme=light] .p-dropdown-body a.active,html[data-theme=light] .p-dropdown-body button.dropdown-item.is-selected,html[data-theme=light] .p-dropdown-body button.dropdown-item.active,html[data-theme=light] .p-dropdown-body .dropdown-item.is-selected,html[data-theme=light] .p-dropdown-body .dropdown-item.active{background:var(--accent-subtle);color:var(--accent)}:host,profile-avatar{display:inline-block;position:absolute;top:20px;left:24px;width:140px;height:140px;z-index:1000;box-sizing:border-box}@media(max-width: 768px){:host,profile-avatar{top:16px;left:16px;width:110px;height:110px}}@media(max-width: 540px){:host,profile-avatar{top:12px;left:12px;width:76px;height:76px}}.profile-avatar-container{position:relative;width:140px;height:140px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;cursor:var(--cursor-pointer);user-select:none;-webkit-user-select:none;outline:none}@media(max-width: 768px){.profile-avatar-container{width:110px;height:110px}}@media(max-width: 540px){.profile-avatar-container{width:76px;height:76px}}.profile-avatar-container:focus-visible .profile-avatar-circle{box-shadow:0 0 0 3px rgba(53,132,228,.5),0 8px 24px rgba(0,0,0,.45),0 0 20px var(--accent-shadow)}.profile-avatar-aura{position:absolute;inset:-8px;border-radius:var(--radius-pill, 999px);background:radial-gradient(circle, var(--accent-shadow, rgba(53, 132, 228, 0.4)) 0%, rgba(53, 132, 228, 0) 70%);opacity:.5;filter:blur(10px);pointer-events:none;transition:opacity var(--transition-normal, 0.28s) var(--ease-gnome),transform var(--transition-normal, 0.28s) var(--ease-spring);z-index:0}.profile-avatar-circle{position:relative;width:100%;height:100%;border-radius:var(--radius-pill, 999px);border:3.5px solid var(--accent, #3584e4);box-sizing:border-box;overflow:hidden;background:var(--gnome-surface-solid, #242424);box-shadow:0 10px 30px rgba(0,0,0,.4),0 2px 10px rgba(0,0,0,.25),0 0 20px var(--accent-shadow, rgba(53, 132, 228, 0.35)),inset 0 1px 2px rgba(255,255,255,.25);transition:transform var(--transition-normal, 0.28s) var(--ease-spring),box-shadow var(--transition-normal, 0.28s) var(--ease-gnome),border-color var(--transition-fast, 0.18s) ease;z-index:1;display:flex;align-items:center;justify-content:center}.profile-avatar-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:var(--radius-pill, 999px);pointer-events:none;user-select:none;-webkit-user-drag:none;transition:transform var(--transition-normal, 0.28s) var(--ease-gnome)}.profile-avatar-container:hover .profile-avatar-aura{opacity:.95;transform:scale(1.15)}.profile-avatar-container:hover .profile-avatar-circle{transform:translateY(-2px) scale(1.04);border-color:var(--accent-hover, #4791eb);box-shadow:0 14px 32px rgba(0,0,0,.5),0 4px 12px rgba(0,0,0,.25),0 0 24px var(--accent-hover, #4791eb),0 0 40px var(--accent-shadow, rgba(53, 132, 228, 0.45)),inset 0 1px 2px rgba(255,255,255,.35)}.profile-avatar-container:hover .profile-avatar-img{transform:scale(1.06)}.profile-avatar-container:active .profile-avatar-circle{transform:translateY(0) scale(1.01);box-shadow:0 6px 18px rgba(0,0,0,.4),0 0 16px var(--accent-active, #1c71d8)}.profile-avatar-popover-content{display:flex;align-items:center;gap:10px;white-space:nowrap;padding:4px 6px}.profile-avatar-popover-content .popover-avatar-hand{font-size:22px;line-height:1;display:inline-block;transform-origin:70% 70%;animation:avatar-wave 1.8s infinite ease-in-out}.profile-avatar-popover-content .popover-avatar-text{font-family:var(--font-main);font-size:var(--font-size-base, 15px);font-weight:600;color:var(--text-main);letter-spacing:-0.01em}@keyframes avatar-wave{0%{transform:rotate(0deg)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}60%{transform:rotate(0deg)}100%{transform:rotate(0deg)}}date-time-picker,:host{display:inline-block;position:relative;font-family:var(--font-main, "Inter", sans-serif)}.date-time-picker-container,.date-picker-container{position:relative;display:inline-block}.picker-toggle{background:var(--gnome-input);-webkit-backdrop-filter:var(--blur-subtle);backdrop-filter:var(--blur-subtle);border:1px solid var(--gnome-border);color:var(--dp-text-main, var(--text-main));padding:8px 16px;border-radius:var(--radius-control);cursor:var(--cursor-pointer);font-family:var(--font-main);font-size:var(--font-size-sm);font-weight:600;display:inline-flex;align-items:center;gap:8px;transition:all var(--transition-fast) var(--ease-gnome);white-space:nowrap;box-shadow:var(--shadow-control);outline:none}.picker-toggle .picker-toggle-icon{font-size:14px;line-height:1}.picker-toggle:hover{background:var(--gnome-input-hover);border-color:var(--gnome-border-focus);transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-shadow)}.picker-toggle:active{transform:translateY(0);background:var(--gnome-input)}.picker-toggle:focus-visible{box-shadow:0 0 0 3px var(--accent-shadow);border-color:var(--accent)}.picker-overlay{display:none;position:fixed;z-index:9999;width:290px;background:var(--dp-surface-bg);-webkit-backdrop-filter:var(--blur-effect);backdrop-filter:var(--blur-effect);border:1px solid var(--dp-border);border-radius:var(--radius-window);padding:16px;box-shadow:var(--dp-shadow);box-sizing:border-box;font-family:var(--font-main);color:var(--dp-text-main, var(--text-main));transition:background-color var(--transition-normal) ease,border-color var(--transition-normal) ease}.picker-overlay.placement-bottom.is-open{animation:gnomeSlideDown .14s cubic-bezier(0, 0, 0.2, 1)}.picker-overlay.placement-top.is-open{animation:gnomeSlideUp .14s cubic-bezier(0, 0, 0.2, 1)}.picker-overlay.is-open{display:flex;flex-direction:column;gap:12px}.picker-overlay.is-closed{display:none}.picker-overlay.blur-enabled{background:var(--dp-surface-blur-bg) !important;-webkit-backdrop-filter:var(--blur-heavy) !important;backdrop-filter:var(--blur-heavy) !important}@keyframes gnomeSlideDown{from{opacity:0;transform:translateY(-8px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes gnomeSlideUp{from{opacity:0;transform:translateY(8px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:4px}.calendar-header .label-group{display:flex;align-items:center}.calendar-header .label-group .year-toggle-btn{background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);color:var(--dp-text-main, var(--text-main));padding:4px 8px;border-radius:var(--radius-control);cursor:var(--cursor-pointer);display:inline-flex;align-items:center;gap:6px;font-size:14.5px;font-weight:700;font-family:var(--font-main);transition:all var(--transition-fast) ease;outline:none}.calendar-header .label-group .year-toggle-btn .chevron-icon{transition:transform var(--transition-fast) var(--ease-spring)}.calendar-header .label-group .year-toggle-btn .chevron-icon.is-rotated{transform:rotate(180deg)}.calendar-header .label-group .year-toggle-btn:hover{background:var(--gnome-hover);border-color:var(--gnome-border-subtle)}.calendar-header .label-group .year-toggle-btn:active{background:var(--gnome-active)}.calendar-header .header-nav{display:flex;align-items:center;gap:4px}.calendar-header .header-nav .nav-btn{background:var(--gnome-input);border:1px solid var(--gnome-border-subtle);color:var(--dp-text-main, var(--text-main));width:28px;height:28px;border-radius:var(--radius-control);display:grid;place-items:center;cursor:var(--cursor-pointer);transition:all var(--transition-fast) ease;outline:none;padding:0}.calendar-header .header-nav .nav-btn:hover{background:var(--gnome-hover);border-color:var(--gnome-border);transform:scale(1.05)}.calendar-header .header-nav .nav-btn:active{transform:scale(0.96)}.picker-content-wrapper{position:relative;min-height:220px}.calendar-body{transition:filter var(--transition-fast) ease,opacity var(--transition-fast) ease}.calendar-body.blurred{filter:blur(6px) !important;opacity:.25 !important;pointer-events:none}.calendar-body .calendar-grid{display:grid;grid-template-columns:repeat(7, 1fr);gap:3px}.calendar-body .calendar-grid .weekday{text-align:center;font-size:11px;font-weight:700;color:var(--dp-text-secondary, var(--text-secondary));text-transform:uppercase;letter-spacing:.5px;padding:4px 0;user-select:none}.calendar-body .calendar-grid .day-cell{aspect-ratio:1/1;background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:50%;color:var(--dp-text-main, var(--text-main));font-size:12.5px;font-weight:500;font-family:var(--font-main);display:grid;place-items:center;cursor:var(--cursor-pointer);transition:all .15s cubic-bezier(0.4, 0, 0.2, 1);outline:none;padding:0;user-select:none}.calendar-body .calendar-grid .day-cell:hover:not(.disabled):not(.selected){background:var(--gnome-hover);border-color:var(--gnome-border-subtle);transform:scale(1.08)}.calendar-body .calendar-grid .day-cell.off-month{color:var(--text-off)}.calendar-body .calendar-grid .day-cell.today{border-color:var(--accent);color:var(--accent);font-weight:700}.calendar-body .calendar-grid .day-cell.selected{background:var(--accent) !important;color:#fff !important;font-weight:700;box-shadow:0 2px 8px var(--accent-shadow);transform:scale(1.04)}.calendar-body .calendar-grid .day-cell.disabled{opacity:.25;cursor:var(--cursor-not-allowed) !important;pointer-events:none;text-decoration:line-through}.year-selector-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--gnome-surface);-webkit-backdrop-filter:var(--blur-effect);backdrop-filter:var(--blur-effect);border-radius:var(--radius-control);padding:8px 4px;box-sizing:border-box;overflow-y:auto;z-index:10;transition:opacity var(--transition-fast) ease,transform var(--transition-fast) ease}.blur-enabled .year-selector-overlay{background:var(--dp-surface-blur-bg) !important;-webkit-backdrop-filter:var(--blur-heavy) !important;backdrop-filter:var(--blur-heavy) !important}.year-selector-overlay.is-hidden{opacity:0;pointer-events:none;transform:scale(0.95)}.year-selector-overlay.is-visible{opacity:1;pointer-events:auto;transform:scale(1)}.year-selector-overlay .year-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:6px}.year-selector-overlay .year-grid .year-cell{padding:8px 0;background:var(--gnome-card);border:1px solid var(--gnome-border-subtle);border-radius:var(--radius-control);color:var(--dp-text-main, var(--text-main));font-size:13px;font-weight:600;font-family:var(--font-main);cursor:var(--cursor-pointer);transition:all var(--transition-fast) ease;outline:none;text-align:center}.year-selector-overlay .year-grid .year-cell:hover:not(.selected){background:var(--gnome-hover);border-color:var(--gnome-border);transform:translateY(-1px)}.year-selector-overlay .year-grid .year-cell.selected{background:var(--accent);color:#fff;border-color:var(--accent-hover);box-shadow:0 2px 8px var(--accent-shadow)}.time-picker{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--gnome-subtle);border:1px solid var(--gnome-border-subtle);border-radius:var(--radius-control)}.time-picker .time-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--dp-text-secondary, var(--text-secondary))}.time-picker .time-label .time-icon{font-size:13px}.time-picker .time-inner-container .time-input-group{display:inline-flex;align-items:center;background:var(--gnome-input);border:1px solid var(--gnome-border-subtle);border-radius:6px;padding:2px 6px}.time-picker .time-inner-container .time-input-group input{width:24px;background:rgba(0,0,0,0);border:none;color:var(--dp-text-main, var(--text-main));font-family:var(--font-mono, monospace);font-size:13px;font-weight:700;text-align:center;outline:none;padding:2px 0}.time-picker .time-inner-container .time-input-group input:focus{color:var(--accent-hover)}.time-picker .time-inner-container .time-input-group .separator{color:var(--dp-text-secondary, var(--text-secondary));font-weight:700;padding:0 1px;user-select:none}.picker-footer{display:flex;justify-content:flex-end;padding-top:4px}.picker-footer .confirm-button{background:var(--accent);color:#fff;border:1px solid rgba(255,255,255,.15);padding:6px 18px;border-radius:var(--radius-control);font-size:12.5px;font-weight:700;cursor:var(--cursor-pointer);transition:all var(--transition-fast) ease;box-shadow:0 2px 6px var(--accent-shadow);outline:none}.picker-footer .confirm-button:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-shadow)}.picker-footer .confirm-button:active{background:var(--accent-active);transform:translateY(0)}expander,expander-component,.purity-expander,[expander]{display:block;width:100%;box-sizing:border-box;background:var(--gnome-card);backdrop-filter:var(--blur-effect);-webkit-backdrop-filter:var(--blur-effect);border:1px solid var(--gnome-border);border-radius:var(--radius-card, 12px);overflow:hidden;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);box-shadow:0 2px 8px rgba(0,0,0,.08)}expander:hover,expander-component:hover,.purity-expander:hover,[expander]:hover{border-color:rgba(255,255,255,.18)}expander .title,expander-component .title,.purity-expander .title,[expander] .title{display:flex;align-items:center;gap:var(--spacing-sm, 10px);padding:12px 16px;font-weight:600;font-size:14px;line-height:1.4;color:var(--gnome-text-primary, #ffffff);cursor:var(--cursor-pointer, pointer);user-select:none;outline:none;transition:background var(--transition-fast),color var(--transition-fast)}expander .title:hover,expander-component .title:hover,.purity-expander .title:hover,[expander] .title:hover{background:rgba(255,255,255,.05)}expander .title:focus-visible,expander-component .title:focus-visible,.purity-expander .title:focus-visible,[expander] .title:focus-visible{outline:2px solid var(--accent, #3584e4);outline-offset:-2px}expander .title:active,expander-component .title:active,.purity-expander .title:active,[expander] .title:active{background:rgba(255,255,255,.08)}expander .title img,expander .title .expand-icon,expander .title .icon-expand,expander .title .icon-collapse,expander-component .title img,expander-component .title .expand-icon,expander-component .title .icon-expand,expander-component .title .icon-collapse,.purity-expander .title img,.purity-expander .title .expand-icon,.purity-expander .title .icon-expand,.purity-expander .title .icon-collapse,[expander] .title img,[expander] .title .expand-icon,[expander] .title .icon-expand,[expander] .title .icon-collapse{width:18px;height:18px;flex-shrink:0;object-fit:contain;display:inline-flex;align-items:center;justify-content:center;transition:transform var(--transition-normal)}expander .body,expander-component .body,.purity-expander .body,[expander] .body{display:none;padding:14px 16px 16px 16px;border-top:1px solid var(--gnome-border);font-size:13.5px;line-height:1.5;color:var(--gnome-text-secondary, rgba(255, 255, 255, 0.75));cursor:var(--cursor-default, default);animation:purity-expander-fade-in .18s cubic-bezier(0.25, 1, 0.5, 1)}expander.is-expanded>.body,expander.is-expanded .body,expander[aria-expanded=true]>.body,expander[aria-expanded=true] .body,expander-component.is-expanded>.body,expander-component.is-expanded .body,expander-component[aria-expanded=true]>.body,expander-component[aria-expanded=true] .body,.purity-expander.is-expanded>.body,.purity-expander.is-expanded .body,.purity-expander[aria-expanded=true]>.body,.purity-expander[aria-expanded=true] .body,[expander].is-expanded>.body,[expander].is-expanded .body,[expander][aria-expanded=true]>.body,[expander][aria-expanded=true] .body{display:block}expander.is-collapsed>.body,expander.is-collapsed .body,expander[aria-expanded=false]>.body,expander[aria-expanded=false] .body,expander-component.is-collapsed>.body,expander-component.is-collapsed .body,expander-component[aria-expanded=false]>.body,expander-component[aria-expanded=false] .body,.purity-expander.is-collapsed>.body,.purity-expander.is-collapsed .body,.purity-expander[aria-expanded=false]>.body,.purity-expander[aria-expanded=false] .body,[expander].is-collapsed>.body,[expander].is-collapsed .body,[expander][aria-expanded=false]>.body,[expander][aria-expanded=false] .body{display:none}img.icon-expand,.title img.icon-expand{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%233584e4' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}img.icon-collapse,.title img.icon-collapse{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%233584e4' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='18 15 12 9 6 15'%3E%3C/polyline%3E%3C/svg%3E")}[data-theme=light] expander:hover,[data-theme=light] expander-component:hover,[data-theme=light] .purity-expander:hover,[data-theme=light] [expander]:hover{border-color:rgba(0,0,0,.16)}[data-theme=light] expander .title,[data-theme=light] expander-component .title,[data-theme=light] .purity-expander .title,[data-theme=light] [expander] .title{color:var(--gnome-text-primary, #1c1c1c)}[data-theme=light] expander .title:hover,[data-theme=light] expander-component .title:hover,[data-theme=light] .purity-expander .title:hover,[data-theme=light] [expander] .title:hover{background:rgba(0,0,0,.04)}[data-theme=light] expander .title:active,[data-theme=light] expander-component .title:active,[data-theme=light] .purity-expander .title:active,[data-theme=light] [expander] .title:active{background:rgba(0,0,0,.07)}[data-theme=light] expander .body,[data-theme=light] expander-component .body,[data-theme=light] .purity-expander .body,[data-theme=light] [expander] .body{color:var(--gnome-text-secondary, rgba(0, 0, 0, 0.7))}[data-theme=light] img.icon-expand,[data-theme=light] .title img.icon-expand{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231c71d8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")}[data-theme=light] img.icon-collapse,[data-theme=light] .title img.icon-collapse{content:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231c71d8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='18 15 12 9 6 15'%3E%3C/polyline%3E%3C/svg%3E")}@keyframes purity-expander-fade-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}loader-component{display:inline-block}loader-component.is-loading,loader-component.visible{cursor:var(--cursor-progress) !important}loader-component.is-loading *,loader-component.visible *{cursor:var(--cursor-progress) !important}.loader-inline-root{display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:14px 20px;background:var(--card-bg-subtle, rgba(255, 255, 255, 0.05));border:1px solid var(--border-color, rgba(255, 255, 255, 0.1));border-radius:var(--radius-sm, 8px);color:var(--text-main, #ffffff);font-size:13px;line-height:1.2;transition:opacity .15s ease-out;cursor:var(--cursor-progress) !important}.loader-inline-root *{cursor:var(--cursor-progress) !important}.loader-inline-root.visible{display:inline-flex;animation:fadeIn .15s ease-out}.loader-inline-root .loader-spinner-box{width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.loader-inline-root .loader-spinner-box .loader-svg{width:100%;height:100%;animation:rotate 1.2s linear infinite}.loader-inline-root .loader-spinner-box .loader-svg .loader-track{stroke:var(--border-color, rgba(255, 255, 255, 0.15))}.loader-inline-root .loader-spinner-box .loader-svg .loader-head{stroke:var(--accent, #3584e4);stroke-linecap:round;stroke-dasharray:80,150;stroke-dashoffset:0;animation:dash 1.2s ease-in-out infinite}.loader-inline-root .loader-text{font-weight:500;color:var(--text-secondary, #9a9996)}@keyframes rotate{100%{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:80,150;stroke-dashoffset:-30}100%{stroke-dasharray:80,150;stroke-dashoffset:-120}}@keyframes fadeIn{from{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}modal-view{display:contents}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;background:rgba(0,0,0,.65);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;z-index:10000;pointer-events:none;box-sizing:border-box;padding:16px}.modal-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto}.modal-backdrop.is-closed{opacity:0;visibility:hidden;pointer-events:none}.modal-dialog{width:90%;max-width:560px;max-height:85vh;display:flex;flex-direction:column;padding:0;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.6);border-radius:var(--radius-window, 16px);transform:scale(0.94) translateY(12px);transition:transform .25s cubic-bezier(0.4, 0, 0.2, 1),width .3s ease,height .3s ease,max-width .3s ease,max-height .3s ease}.is-open .modal-dialog{transform:scale(1) translateY(0)}.is-maximized .modal-dialog{width:96vw;height:94vh;max-width:96vw;max-height:94vh;border-radius:var(--radius-control, 8px)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:var(--gnome-card);border-bottom:1px solid var(--gnome-border)}.modal-title-area{display:flex;align-items:center;gap:10px}.modal-title-area .modal-icon{font-size:18px}.modal-title-area .modal-title{margin:0;font-size:1.1rem;font-weight:700;color:var(--text-main)}.modal-controls{display:flex;align-items:center;gap:8px}.modal-control-btn{background:var(--gnome-input);border:1px solid var(--gnome-border);color:var(--text-main);width:32px;height:32px;border-radius:var(--radius-control);display:flex;align-items:center;justify-content:center;cursor:var(--cursor-pointer);font-size:14px;transition:all var(--transition-fast) ease}.modal-control-btn:hover{background:var(--gnome-hover);border-color:var(--gnome-border-focus)}.modal-control-btn.close-btn:hover{background:var(--gnome-error);border-color:#ed333b;color:#fff}.modal-body{padding:20px;overflow-y:auto;flex:1;font-size:14px;line-height:1.5;color:var(--text-main)}.modal-body p{margin:0 0 12px 0}.modal-body code{font-family:var(--font-mono, monospace);background:var(--accent-subtle, rgba(53, 132, 228, 0.15));border:1px solid var(--accent-shadow);border-radius:4px;padding:2px 6px;font-size:12px;color:var(--accent)}.modal-info-card{background:var(--gnome-card);border:1px solid var(--gnome-border-subtle);border-radius:var(--radius-control);padding:12px 14px;margin-top:14px;display:flex;flex-direction:column;gap:6px}.modal-info-card .status-pill{display:inline-block;padding:2px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;background:var(--gnome-success-bg, rgba(46, 194, 126, 0.2));color:var(--gnome-success);border:1px solid var(--gnome-success)}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:14px 20px;background:var(--gnome-subtle);border-top:1px solid var(--gnome-border)}navigation-menu{display:block;position:relative;z-index:9990}.nav-ball-container{position:fixed;bottom:32px;right:32px;z-index:9990;display:flex;flex-direction:column;align-items:center;gap:6px;touch-action:none;user-select:none;-webkit-user-select:none;transform:translate3d(0, 0, 0);transition:filter var(--transition-fast) var(--ease-gnome)}.nav-ball-container.is-dragging{filter:drop-shadow(0 16px 36px rgba(0, 0, 0, 0.6));z-index:9995}.nav-ball-container.is-dragging .nav-drag-handle{opacity:1 !important;transform:translateY(0) scale(1.05) !important;cursor:var(--cursor-grabbing) !important;background:var(--accent) !important;color:#fff !important;border-color:rgba(255,255,255,.3) !important}.nav-ball-container.is-dragging .nav-ball-orb{cursor:var(--cursor-grabbing) !important;transform:scale(1.04);box-shadow:0 16px 36px rgba(0,0,0,.6),0 0 24px var(--accent) !important}.nav-drag-handle{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);background:var(--gnome-surface);-webkit-backdrop-filter:var(--blur-subtle);backdrop-filter:var(--blur-subtle);border:1px solid var(--gnome-border);border-radius:var(--radius-pill, 999px);box-shadow:var(--shadow-popup);cursor:var(--cursor-grab);opacity:0;transform:translateY(4px);pointer-events:auto;transition:opacity var(--transition-fast) var(--ease-gnome),transform var(--transition-fast) var(--ease-gnome),background var(--transition-fast),color var(--transition-fast)}.nav-drag-handle .drag-grip-icon{opacity:.8}.nav-drag-handle:hover{background:var(--gnome-hover);color:var(--text-main);border-color:var(--accent)}.nav-ball-container:hover .nav-drag-handle{opacity:1;transform:translateY(0)}.nav-ball-orb{position:relative;width:62px;height:62px;padding:0;margin:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 25%, rgba(53, 132, 228, 0.42), rgba(36, 36, 36, 0.95) 75%);-webkit-backdrop-filter:var(--blur-window);backdrop-filter:var(--blur-window);border:1.5px solid rgba(255,255,255,.22);box-shadow:0 10px 28px rgba(0,0,0,.5),inset 0 2px 4px rgba(255,255,255,.3),0 0 16px var(--accent-shadow);cursor:var(--cursor-pointer);overflow:hidden;outline:none;transition:transform var(--transition-fast) var(--ease-spring),box-shadow var(--transition-fast) var(--ease-gnome),border-color var(--transition-fast)}.nav-ball-orb .orb-shine{position:absolute;top:2px;left:15%;width:70%;height:38%;border-radius:50%;background:linear-gradient(to bottom, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0.05) 80%, transparent);pointer-events:none}.nav-ball-orb .orb-glow{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 50%, var(--accent-subtle), transparent 70%);pointer-events:none;opacity:.8;transition:opacity var(--transition-fast)}.nav-ball-orb .orb-icon{font-size:1.95rem;line-height:1;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 6px var(--accent-shadow));transition:transform var(--transition-fast) var(--ease-gnome);z-index:1}.nav-ball-orb:hover{transform:scale(1.08) translateY(-2px);border-color:rgba(255,255,255,.4);box-shadow:0 14px 34px rgba(0,0,0,.6),inset 0 2px 6px rgba(255,255,255,.4),0 0 24px var(--accent)}.nav-ball-orb:hover .orb-icon{transform:rotate(20deg) scale(1.1)}.nav-ball-orb:hover .orb-glow{opacity:1}.nav-ball-orb:active{transform:scale(0.95);box-shadow:0 6px 16px rgba(0,0,0,.4)}@keyframes pNavHighlightPulse{0%{outline:3px solid var(--accent);outline-offset:4px;box-shadow:0 0 0 6px var(--accent-shadow),var(--shadow-deep)}50%{outline:3px solid var(--accent-hover);outline-offset:6px;box-shadow:0 0 0 12px var(--accent-shadow),var(--shadow-deep)}100%{outline:3px solid rgba(0,0,0,0);outline-offset:8px;box-shadow:none}}.p-nav-highlight{animation:pNavHighlightPulse 1.8s var(--ease-gnome) forwards;border-radius:var(--radius-window, 16px)}[data-theme=light] .nav-drag-handle{background:rgba(255,255,255,.9);border-color:var(--gnome-border);color:var(--text-main);box-shadow:var(--shadow-popup)}[data-theme=light] .nav-drag-handle:hover{background:#fff;border-color:var(--accent)}[data-theme=light] .nav-ball-orb{background:radial-gradient(circle at 35% 25%, rgba(28, 113, 216, 0.35), rgba(246, 246, 246, 0.95) 75%);border-color:rgba(28,113,216,.35);box-shadow:0 10px 24px rgba(0,0,0,.15),inset 0 2px 4px rgba(255,255,255,.9),0 0 12px var(--accent-shadow)}[data-theme=light] .nav-ball-orb .orb-shine{background:linear-gradient(to bottom, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.2) 80%, transparent)}[data-theme=light] .nav-ball-orb:hover{border-color:var(--accent);box-shadow:0 14px 30px rgba(0,0,0,.2),inset 0 2px 6px #fff,0 0 20px var(--accent)}notification-component,:host{display:contents !important;background:none !important;background-color:rgba(0,0,0,0) !important;box-shadow:none !important;border:none !important;margin:0 !important;padding:0 !important}.notification-container{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:10000;overflow:hidden;background:rgba(0,0,0,0) !important;box-shadow:none !important;border:none !important;margin:0 !important;padding:0 !important}.toast-stack{position:fixed;display:flex;flex-direction:column;gap:10px;padding:16px;box-sizing:border-box;max-height:100vh;overflow-y:auto;pointer-events:none;z-index:10000;background:rgba(0,0,0,0) !important;box-shadow:none !important;border:none !important}.toast-stack::-webkit-scrollbar{width:4px;height:4px}.toast-stack::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.toast-stack::-webkit-scrollbar-thumb{background:var(--gnome-border);border-radius:999px}.toast-stack::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.toast-stack.pos-top-right{top:0;right:0;align-items:flex-end}.toast-stack.pos-top-left{top:0;left:0;align-items:flex-start}.toast-stack.pos-top-center{top:0;left:50%;transform:translateX(-50%);align-items:center}.toast-stack.pos-bottom-right{bottom:0;right:0;align-items:flex-end;flex-direction:column-reverse}.toast-stack.pos-bottom-left{bottom:0;left:0;align-items:flex-start;flex-direction:column-reverse}.toast-stack.pos-bottom-center{bottom:0;left:50%;transform:translateX(-50%);align-items:center;flex-direction:column-reverse}.toast-stack.pos-center{top:50%;left:50%;transform:translate(-50%, -50%);align-items:center}.toast-card{pointer-events:auto;margin:0 !important;display:flex;align-items:flex-start;gap:12px;min-width:280px;max-width:420px;min-height:52px;max-height:200px;padding:12px 14px;background:var(--gnome-header);border:1px solid var(--gnome-border);border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.35);transition:transform var(--transition-fast) var(--ease-gnome),opacity var(--transition-fast) ease;box-sizing:border-box;overflow:hidden}.toast-card.toast-blink{animation:toastBlink 1.2s infinite alternate ease-in-out}.toast-card.toast-success{border-color:rgba(46,194,126,.35);box-shadow:inset 4px 0 0 0 var(--gnome-success),0 8px 24px rgba(0,0,0,.35)}.toast-card.toast-success .toast-icon::before{content:"✓";color:var(--gnome-success);background:var(--gnome-success-bg)}.toast-card.toast-error{border-color:rgba(237,51,59,.35);box-shadow:inset 4px 0 0 0 var(--gnome-error),0 8px 24px rgba(0,0,0,.35)}.toast-card.toast-error .toast-icon::before{content:"✕";color:var(--gnome-error);background:var(--gnome-error-bg)}.toast-card.toast-warn{border-color:rgba(248,228,92,.35);box-shadow:inset 4px 0 0 0 var(--gnome-warn),0 8px 24px rgba(0,0,0,.35)}.toast-card.toast-warn .toast-icon::before{content:"⚠";color:var(--gnome-warn);background:var(--gnome-warn-bg)}.toast-card.toast-info{border-color:rgba(53,132,228,.35);box-shadow:inset 4px 0 0 0 var(--gnome-info),0 8px 24px rgba(0,0,0,.35)}.toast-card.toast-info .toast-icon::before{content:"ℹ";color:var(--gnome-info);background:var(--gnome-info-bg)}.toast-card .toast-icon-wrapper{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.toast-card .toast-icon-wrapper .toast-icon::before{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-pill);font-size:12px;font-weight:800}.toast-card .toast-body{display:flex;flex-direction:column;gap:3px;flex:1;overflow-y:auto}.toast-card .toast-body::-webkit-scrollbar{width:3px;height:3px}.toast-card .toast-body::-webkit-scrollbar-track{background:rgba(0,0,0,0)}.toast-card .toast-body::-webkit-scrollbar-thumb{background:var(--gnome-border);border-radius:999px}.toast-card .toast-body::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.toast-card .toast-body .toast-title{font-size:13.5px;font-weight:700;color:var(--text-main);line-height:1.3}.toast-card .toast-body .toast-subtitle{font-size:12px;color:var(--text-secondary);line-height:1.4;word-break:break-word}.toast-card .toast-close-btn{background:rgba(0,0,0,0);border:none;color:var(--text-secondary);font-size:13px;padding:3px 6px;border-radius:var(--radius-control);cursor:var(--cursor-pointer);transition:all var(--transition-fast) ease;flex-shrink:0;margin-top:-2px;margin-right:-4px;display:inline-flex;align-items:center;gap:5px}.toast-card .toast-close-btn .toast-countdown{font-family:var(--font-mono, monospace);font-size:11px;font-weight:700;color:var(--text-muted);line-height:1;padding:2px 5px;border-radius:var(--radius-pill, 999px);background:var(--gnome-input, rgba(255, 255, 255, 0.08));border:1px solid var(--gnome-border-subtle, rgba(255, 255, 255, 0.06));letter-spacing:-0.2px}.toast-card .toast-close-btn .toast-countdown:empty{display:none}.toast-card .toast-close-btn .toast-close-icon{font-size:12px;line-height:1}.toast-card .toast-close-btn:hover{background:var(--gnome-hover);color:var(--text-main)}.toast-card .toast-close-btn:hover .toast-countdown{color:var(--text-main);border-color:var(--gnome-border)}.toast-card .toast-close-btn:active{background:var(--gnome-active)}@keyframes toastSlideIn{from{opacity:0;transform:translateY(-8px) scale(0.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastBlink{0%{box-shadow:0 8px 24px rgba(0,0,0,.35);filter:brightness(1)}100%{box-shadow:0 0 24px var(--accent-shadow),0 8px 28px rgba(0,0,0,.5);filter:brightness(1.2)}}:host{display:none}.purity-popover-portal{position:fixed;z-index:1050;top:-9999px;left:-9999px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-fast, 0.18s) cubic-bezier(0.25, 0.8, 0.25, 1),transform var(--transition-fast, 0.18s) cubic-bezier(0.25, 0.8, 0.25, 1),visibility var(--transition-fast, 0.18s);transform:scale(0.96);box-sizing:border-box}.purity-popover-portal.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:scale(1)}.purity-popover-portal .popover-surface{position:relative;background:var(--popover-bg, var(--gnome-surface));border:1px solid var(--popover-border, var(--gnome-border));border-radius:var(--radius-card, 12px);-webkit-backdrop-filter:var(--blur-effect);backdrop-filter:var(--blur-effect);box-shadow:var(--popover-shadow, var(--shadow-popup));padding:14px 18px;color:var(--text-main);min-width:140px;max-width:320px;font-size:13.5px;line-height:1.45;box-sizing:border-box}.purity-popover-portal .popover-surface h1,.purity-popover-portal .popover-surface h2,.purity-popover-portal .popover-surface h3,.purity-popover-portal .popover-surface h4,.purity-popover-portal .popover-surface h5,.purity-popover-portal .popover-surface h6{margin:0 0 6px 0;color:var(--text-main);font-size:14px;font-weight:700;letter-spacing:-0.01em}.purity-popover-portal .popover-surface p,.purity-popover-portal .popover-surface div{margin:0;color:var(--text-secondary);font-size:12.5px;line-height:1.4}.purity-popover-portal .popover-arrow{position:absolute;width:12px;height:12px;background:var(--popover-bg, var(--gnome-surface));border:1px solid var(--popover-border, var(--gnome-border));transform:rotate(45deg);z-index:1;pointer-events:none;box-sizing:border-box}.purity-popover-portal.pos-top .popover-arrow{bottom:-6px;left:50%;margin-left:-6px;border-top:none;border-left:none}.purity-popover-portal.pos-bottom .popover-arrow{top:-6px;left:50%;margin-left:-6px;border-bottom:none;border-right:none}.purity-popover-portal.pos-left .popover-arrow{right:-6px;top:50%;margin-top:-6px;border-left:none;border-bottom:none}.purity-popover-portal.pos-right .popover-arrow{left:-6px;top:50%;margin-top:-6px;border-right:none;border-top:none}radial-context-menu,:host{display:none}.radial-menu{position:fixed;border-radius:50%;z-index:9999;pointer-events:none;opacity:0;transform:scale(0.8);transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1),opacity .3s ease,background-color var(--transition-normal) ease;background:var(--radial-bg, rgba(30, 30, 30, 0.92));-webkit-backdrop-filter:var(--blur-effect);backdrop-filter:var(--blur-effect);box-shadow:0 0 0 1px var(--gnome-border),var(--shadow-deep);border:1px solid var(--radial-border, var(--gnome-border));overflow:hidden;contain:paint;box-sizing:border-box}.radial-menu.active{opacity:1;transform:scale(1);pointer-events:auto}.radial-menu.blur-enabled{background:var(--radial-blur-bg, rgba(30, 30, 30, 0.75));-webkit-backdrop-filter:var(--blur-heavy);backdrop-filter:var(--blur-heavy)}.items-container{position:absolute;top:0;left:0;width:100%;height:100%;transition:all .4s cubic-bezier(0.4, 0, 0.2, 1);opacity:0}.items-container.entering{opacity:0;transform:scale(0.85)}.items-container.exiting{opacity:0;transform:scale(1.15)}.items-container.active{opacity:1;transform:scale(1)}.menu-segment{position:absolute;top:0;left:0;width:100%;height:100%;cursor:var(--cursor-pointer);display:flex;justify-content:center;align-items:center;pointer-events:auto;transform:translateZ(0);will-change:clip-path;isolation:isolate}.menu-segment .segment-glass{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.15), transparent);background-color:var(--radial-segment-bg, rgba(45, 45, 45, 0.7));transition:all var(--transition-fast) cubic-bezier(0.4, 0, 0.2, 1);z-index:1;box-shadow:inset 0 1px 1px rgba(255,255,255,.2),inset 0 -1px 1px rgba(0,0,0,.15)}.menu-segment .segment-shine{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, transparent 60%);opacity:.4;z-index:2;pointer-events:none;transition:opacity var(--transition-fast) ease}.menu-segment:hover .segment-glass{background-color:var(--accent);box-shadow:inset 0 1px 3px rgba(255,255,255,.45),0 0 18px var(--accent-shadow)}.menu-segment:hover .segment-shine{opacity:1}.menu-segment .segment-label{position:absolute;transform:translate(-50%, -50%);font-size:1.45rem;color:var(--radial-text, #ffffff);pointer-events:none;transition:all .25s cubic-bezier(0.34, 1.56, 0.64, 1);z-index:3;display:flex;align-items:center;justify-content:center;width:38px;height:38px;user-select:none;line-height:1}.menu-segment .segment-label svg{width:24px;height:24px;stroke:currentColor;color:currentColor;display:block;pointer-events:none;transition:transform var(--transition-fast) ease,stroke var(--transition-fast) ease}.menu-segment .segment-label img.segment-icon{width:24px;height:24px;filter:brightness(0) invert(1);display:block;pointer-events:none;transition:transform var(--transition-fast) ease}.menu-segment:hover .segment-label{transform:translate(-50%, -50%) scale(1.22);filter:drop-shadow(0 0 8px rgba(255, 255, 255, 0.6));color:#fff}.menu-segment:hover .segment-label svg{stroke:#fff;color:#fff}.menu-segment .submenu-indicator{position:absolute;width:5px;height:5px;background:var(--accent, #3584e4);border-radius:50%;transform:translate(-50%, -50%);opacity:.85;z-index:4;box-shadow:0 0 6px var(--accent-shadow);pointer-events:none;transition:transform var(--transition-fast) ease}.menu-segment:hover .submenu-indicator{opacity:1;background:#fff;transform:translate(-50%, -50%) scale(1.6);box-shadow:0 0 6px rgba(255,255,255,.8)}.center-button{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:88px;height:88px;background:var(--gnome-surface-solid, #2c2c2c);border:1px solid var(--gnome-border);border-radius:50%;display:grid;place-items:center;cursor:var(--cursor-pointer);z-index:10;transition:all var(--transition-fast) cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--shadow-deep),inset 0 2px 4px rgba(255,255,255,.2);pointer-events:auto;overflow:hidden;outline:none;padding:0}.center-button:hover{transform:translate(-50%, -50%) scale(1.06);border-color:var(--accent);box-shadow:0 6px 22px var(--accent-shadow),inset 0 2px 6px rgba(255,255,255,.35)}.center-button .center-icon{font-size:1.6rem;font-weight:700;color:var(--text-main, #ffffff);display:block;width:70px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all var(--transition-fast) ease;text-shadow:0 0 8px var(--accent-shadow);pointer-events:none;user-select:none;line-height:1}.menu-title-pop{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:80px;text-align:center;z-index:15;pointer-events:none;opacity:0;transition:all var(--transition-fast) cubic-bezier(0.23, 1, 0.32, 1);font-size:11px;font-weight:700;color:var(--text-main, #ffffff);font-family:var(--font-main);text-transform:uppercase;letter-spacing:.8px;text-shadow:0 0 10px var(--accent-shadow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:none}.menu-title-pop.visible{opacity:1;transform:translate(-50%, -50%) scale(1.05)}:host,switch-button{display:inline-flex;align-items:center;vertical-align:middle;outline:none;cursor:var(--cursor-pointer);user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);border-radius:var(--radius-pill);transition:opacity var(--transition-fast) var(--ease-gnome)}:host:focus-visible,switch-button:focus-visible{box-shadow:0 0 0 2px var(--gnome-border-focus)}:host.is-disabled,:host[disabled],switch-button.is-disabled,switch-button[disabled]{cursor:var(--cursor-not-allowed);opacity:.5;pointer-events:none}.switch-container{display:inline-flex;align-items:center;gap:var(--spacing-sm);cursor:inherit}.switch-container.is-disabled{cursor:var(--cursor-not-allowed)}.switch-track{position:relative;display:inline-flex;align-items:center;width:46px;height:26px;border-radius:var(--radius-pill);background:var(--gnome-input);border:1px solid var(--gnome-border);box-sizing:border-box;cursor:inherit;transition:background-color var(--transition-normal) var(--ease-gnome),border-color var(--transition-normal) var(--ease-gnome),box-shadow var(--transition-normal) var(--ease-gnome)}.switch-track:hover{border-color:var(--gnome-border-focus);background:var(--gnome-input-hover)}.switch-thumb{position:absolute;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.28),0 1px 2px rgba(0,0,0,.16);transition:transform var(--transition-normal) var(--ease-gnome),width var(--transition-fast) var(--ease-gnome),background-color var(--transition-fast) var(--ease-gnome),box-shadow var(--transition-fast) var(--ease-gnome);transform:translateX(0)}:host(:active:not(.is-disabled)) .switch-thumb,switch-button:active:not(.is-disabled) .switch-thumb{width:21px}.switch-container.is-on .switch-track,:host(.is-on) .switch-container .switch-track{background:var(--accent);border-color:var(--accent-hover);box-shadow:0 0 10px var(--accent-shadow)}.switch-container.is-on .switch-track:hover,:host(.is-on) .switch-container .switch-track:hover{background:var(--accent-hover);border-color:var(--accent-active)}.switch-container.is-on .switch-thumb,:host(.is-on) .switch-container .switch-thumb{transform:translateX(20px);background:#fff}:host(:active:not(.is-disabled).is-on) .switch-thumb,switch-button:active:not(.is-disabled).is-on .switch-thumb{transform:translateX(17px);width:21px}.switch-label{font-family:var(--font-main);font-size:var(--font-size-base);font-weight:500;color:var(--text-main);line-height:1.4;cursor:inherit;transition:color var(--transition-fast) var(--ease-gnome)}.switch-label:empty{display:none}analogue-clock{display:block;width:100%}.analogue-clock-widget{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;border-radius:var(--radius-card);background:var(--gnome-surface);-webkit-backdrop-filter:var(--blur-window);backdrop-filter:var(--blur-window);border:1px solid var(--gnome-border);box-shadow:var(--shadow-popup);transition:all var(--transition-normal) var(--ease-gnome);overflow:hidden}.analogue-clock-widget::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 50% 0%, var(--accent-subtle), transparent 70%);pointer-events:none;opacity:.6;transition:opacity var(--transition-normal)}.analogue-clock-widget:hover::before{opacity:.9}.clock-header{width:100%;display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid var(--gnome-border-subtle)}.clock-header .clock-title-group{display:flex;align-items:center;gap:10px}.clock-header .clock-title-group .clock-icon{font-size:1.25rem;filter:drop-shadow(0 2px 6px var(--accent-shadow))}.clock-header .clock-title-group .clock-title{font-size:1.05rem;font-weight:700;color:var(--text-main);letter-spacing:-0.01em}.clock-header .clock-title-group .clock-badge{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--accent-subtle);color:var(--accent);border:1px solid var(--accent-shadow);text-transform:uppercase;letter-spacing:.04em}.clock-header .clock-tz-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono, "Adwaita Mono", monospace);font-size:.76rem;font-weight:600;color:var(--accent);background:var(--accent-subtle);-webkit-backdrop-filter:var(--blur-subtle);backdrop-filter:var(--blur-subtle);padding:4px 12px;border-radius:var(--radius-pill, 999px);border:1px solid var(--accent-shadow);box-shadow:0 2px 8px var(--accent-shadow),inset 0 1px rgba(255,255,255,.1);letter-spacing:.02em;transition:all var(--transition-fast) var(--ease-gnome)}.clock-header .clock-tz-badge .tz-icon{font-size:.82rem;line-height:1;display:inline-flex;align-items:center}.clock-header .clock-tz-badge .tz-text{line-height:1.2}.clock-header .clock-tz-badge:hover{transform:translateY(-1px);box-shadow:0 4px 14px var(--accent-shadow),inset 0 1px rgba(255,255,255,.2)}.clock-stage{position:relative;display:flex;align-items:center;justify-content:center;padding:12px;border-radius:50%;background:radial-gradient(circle at 50% 30%, var(--gnome-subtle), transparent 70%)}.clock-stage .clock-canvas{display:block;cursor:var(--cursor-pointer);user-select:none;-webkit-user-select:none;border-radius:50%;filter:drop-shadow(0 14px 28px rgba(0, 0, 0, 0.35));transition:transform var(--transition-fast) var(--ease-gnome),filter var(--transition-fast)}.clock-stage .clock-canvas:hover{transform:scale(1.015);filter:drop-shadow(0 18px 36px rgba(0, 0, 0, 0.45))}.clock-stage .clock-canvas:active{transform:scale(0.99)}.clock-digital-readout{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:18px;padding:10px 24px;border-radius:var(--radius-control, 8px);background:var(--gnome-card);border:1px solid var(--gnome-border-subtle);box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}.clock-digital-readout .digital-time{font-family:"Adwaita Mono",monospace;font-size:1.45rem;font-weight:700;color:var(--text-main);letter-spacing:.05em;text-shadow:0 2px 8px var(--accent-shadow)}.clock-digital-readout .digital-date{font-size:.82rem;font-weight:500;color:var(--text-secondary);letter-spacing:.02em}.clock-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin-top:20px;width:100%}.clock-controls .clock-control-btn{margin:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;font-family:var(--font-main);font-size:var(--font-size-sm, 13.5px);font-weight:600;border-radius:var(--radius-control, 8px);border:1px solid var(--gnome-border);background:var(--gnome-card);color:var(--text-main);cursor:var(--cursor-pointer);box-shadow:var(--shadow-control);transition:all var(--transition-fast) var(--ease-gnome)}.clock-controls .clock-control-btn:hover:not(:disabled){background:var(--gnome-hover);border-color:var(--gnome-border-focus);color:var(--text-main);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.clock-controls .clock-control-btn:active:not(:disabled){transform:translateY(0);background:var(--gnome-active)}.clock-controls .clock-control-btn.is-active{background-color:var(--accent);background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.15), transparent);color:#fff;border-color:rgba(0,0,0,.15);box-shadow:0 2px 8px var(--accent-shadow),inset 0 1px rgba(255,255,255,.25)}.clock-controls .clock-control-btn.is-active:hover:not(:disabled){background-color:var(--accent-hover);box-shadow:0 4px 14px var(--accent-shadow),inset 0 1px rgba(255,255,255,.25)}.clock-controls .tz-dropdown .dropdown-trigger{margin:0;padding:9px 16px;font-family:var(--font-main);font-size:var(--font-size-sm, 13.5px);font-weight:600;border-radius:var(--radius-control, 8px);border:1px solid var(--gnome-border);background-color:var(--gnome-card);-webkit-backdrop-filter:var(--blur-subtle);backdrop-filter:var(--blur-subtle);color:var(--text-main);box-shadow:var(--shadow-control)}.clock-controls .tz-dropdown .dropdown-trigger:hover:not(:disabled){background-color:var(--gnome-hover);border-color:var(--gnome-border-focus)}.clock-controls .tz-dropdown .dropdown-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-shadow)}[data-theme=light] .analogue-clock-widget{box-shadow:var(--shadow-deep);background:var(--gnome-surface);border-color:var(--gnome-border)}[data-theme=light] .analogue-clock-widget::before{background:radial-gradient(circle at 50% 0%, rgba(28, 113, 216, 0.12), transparent 70%)}[data-theme=light] .clock-header .clock-tz-badge{background:var(--accent-subtle);color:var(--accent);border-color:var(--accent-shadow);box-shadow:0 2px 6px var(--accent-shadow),inset 0 1px rgba(255,255,255,.8)}[data-theme=light] .clock-stage .clock-canvas{filter:drop-shadow(0 10px 24px rgba(0, 0, 0, 0.12))}[data-theme=light] .clock-stage .clock-canvas:hover{filter:drop-shadow(0 14px 30px rgba(0, 0, 0, 0.18))}[data-theme=light] .clock-digital-readout{background:rgba(255,255,255,.85);box-shadow:0 2px 8px rgba(0,0,0,.04),inset 0 1px rgba(255,255,255,.9);border-color:var(--gnome-border-subtle)}[data-theme=light] .clock-digital-readout .digital-time{color:var(--text-main);text-shadow:none}[data-theme=light] .clock-controls .clock-control-btn{background:var(--gnome-card);border-color:var(--gnome-border);color:var(--text-main)}[data-theme=light] .clock-controls .clock-control-btn:hover:not(:disabled){background:var(--gnome-hover);border-color:var(--gnome-border-focus)}[data-theme=light] .clock-controls .clock-control-btn.is-active{background-color:var(--accent);color:#fff;border-color:rgba(0,0,0,.15);box-shadow:0 2px 8px var(--accent-shadow)}[data-theme=light] .clock-controls .tz-dropdown .dropdown-trigger{background-color:var(--gnome-card);border-color:var(--gnome-border);color:var(--text-main)}[data-theme=light] .clock-controls .tz-dropdown .dropdown-trigger:hover:not(:disabled){background-color:var(--gnome-hover);border-color:var(--gnome-border-focus)}
package/styles/_ui.scss CHANGED
@@ -8,12 +8,14 @@
8
8
  // Behaviors
9
9
  @use '../app/shared/behaviors/draggable/draggable';
10
10
  @use '../app/shared/behaviors/droppable/droppable';
11
+ @use '../app/shared/behaviors/resizable/resizable';
11
12
 
12
13
  // Directives
13
14
  @use '../app/shared/directives/highlight/highlight.directive';
14
15
  @use '../app/shared/directives/dropdown/dropdown.directive';
15
16
 
16
17
  // Components
18
+ @use '../app/shared/components/profile-avatar/profile-avatar.component';
17
19
  @use '../app/shared/components/date-time-picker/date-time-picker.component';
18
20
  @use '../app/shared/components/expander/expander.component';
19
21
  @use '../app/shared/components/loader/loader.component';
@@ -0,0 +1,93 @@
1
+ import './resizable.scss';
2
+ export type ResizeCornerHandle = 'nw' | 'ne' | 'se' | 'sw' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
3
+ export type ResizeEdgeHandle = 'n' | 's' | 'e' | 'w' | 'top' | 'bottom' | 'left' | 'right';
4
+ export type ResizeHandle = ResizeCornerHandle | ResizeEdgeHandle;
5
+ export type CanonicalCorner = 'nw' | 'ne' | 'se' | 'sw';
6
+ export type CanonicalEdge = 'n' | 's' | 'e' | 'w';
7
+ export type CanonicalHandle = CanonicalCorner | CanonicalEdge;
8
+ export interface ResizeStartData {
9
+ width: number;
10
+ height: number;
11
+ handle: CanonicalHandle;
12
+ pointerX: number;
13
+ pointerY: number;
14
+ }
15
+ export interface ResizeData {
16
+ width: number;
17
+ height: number;
18
+ handle: CanonicalHandle;
19
+ deltaX: number;
20
+ deltaY: number;
21
+ pointerX: number;
22
+ pointerY: number;
23
+ }
24
+ export interface ResizeEndData {
25
+ width: number;
26
+ height: number;
27
+ handle: CanonicalHandle;
28
+ }
29
+ export interface ResizableOptions {
30
+ /** Target container CSS selector string */
31
+ selector?: string;
32
+ /** Direct target element or CSS selector */
33
+ target?: string | HTMLElement;
34
+ /** Handles to attach. Defaults to all 4 corners: ['nw', 'ne', 'se', 'sw'] */
35
+ handles?: ResizeHandle[] | 'corners' | 'edges' | 'all';
36
+ /** Minimum width in pixels (defaults to 20 or computed CSS min-width) */
37
+ minWidth?: number;
38
+ /** Minimum height in pixels (defaults to 20 or computed CSS min-height) */
39
+ minHeight?: number;
40
+ /** Maximum width in pixels (defaults to Infinity or computed CSS max-width) */
41
+ maxWidth?: number;
42
+ /** Maximum height in pixels (defaults to Infinity or computed CSS max-height) */
43
+ maxHeight?: number;
44
+ /** Lock aspect ratio: true locks initial aspect ratio, or specify numeric ratio (width / height) */
45
+ aspectRatio?: number | boolean;
46
+ /** Grid snap in pixels: number or [snapX, snapY] */
47
+ snap?: number | [number, number];
48
+ /** Constrain resizing within a container or 'parent' or 'window' */
49
+ constrainTo?: string | HTMLElement | 'parent' | 'window';
50
+ /** Positioning mode for top/left handle changes: 'auto' (default), 'transform', or 'position' */
51
+ positionMode?: 'auto' | 'transform' | 'position';
52
+ /** Visual theme for handles: 'modern' (Adwaita pills), 'minimal', or 'invisible' */
53
+ handleTheme?: 'modern' | 'minimal' | 'invisible';
54
+ /** Custom class applied to injected handles */
55
+ handleClass?: string;
56
+ /** Callback fired when resize starts */
57
+ onResizeStart?: (el: HTMLElement, data: ResizeStartData) => void;
58
+ /** Callback fired on each resize step */
59
+ onResize?: (el: HTMLElement, data: ResizeData) => void;
60
+ /** Callback fired when resize finishes */
61
+ onResizeEnd?: (el: HTMLElement, data: ResizeEndData) => void;
62
+ }
63
+ export interface ResizableInstance {
64
+ readonly element: HTMLElement;
65
+ readonly isResizing: boolean;
66
+ readonly isEnabled: boolean;
67
+ getDimensions: () => {
68
+ width: number;
69
+ height: number;
70
+ };
71
+ setDimensions: (width: number, height: number) => void;
72
+ enable: () => void;
73
+ disable: () => void;
74
+ destroy: () => void;
75
+ }
76
+ /**
77
+ * Initializes resizable behavior on a container, equipping it with interactive corner resize handles.
78
+ *
79
+ * @param targetOrOptions Container selector string, HTMLElement, or full options configuration.
80
+ * @param extraOptions Optional additional configuration options.
81
+ */
82
+ export declare function resizable(targetOrOptions: string | HTMLElement | ResizableOptions, extraOptions?: Partial<ResizableOptions>): ResizableInstance;
83
+ /**
84
+ * Initializes resizable behavior across multiple matching container elements.
85
+ */
86
+ export declare function resizableAll(selectorOrElements: string | HTMLElement[] | NodeListOf<HTMLElement>, options?: Partial<ResizableOptions>): {
87
+ instances: ResizableInstance[];
88
+ destroy: () => void;
89
+ enable: () => void;
90
+ disable: () => void;
91
+ };
92
+ export { resizable as resize };
93
+ //# sourceMappingURL=resizable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.d.ts","sourceRoot":"","sources":["../../../../../../src/app/shared/behaviors/resizable/resizable.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAE1B,MAAM,MAAM,kBAAkB,GACxB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,CAAC;AAErB,MAAM,MAAM,gBAAgB,GACtB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AACjE,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAClD,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,aAAa,CAAC;AAE9D,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC7B,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;IACvD,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oGAAoG;IACpG,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACzD,iGAAiG;IACjG,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IACjD,oFAAoF;IACpF,WAAW,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC;IACjD,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACjE,yCAAyC;IACzC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACvD,0CAA0C;IAC1C,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AA8DD;;;;;GAKG;AACH,wBAAgB,SAAS,CACrB,eAAe,EAAE,MAAM,GAAG,WAAW,GAAG,gBAAgB,EACxD,YAAY,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACzC,iBAAiB,CA0enB;AAED;;GAEG;AACH,wBAAgB,YAAY,CACxB,kBAAkB,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,EACpE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACpC;IACC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAiBA;AAED,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-menu.component.d.ts","sourceRoot":"","sources":["../../../../../../src/app/shared/components/navigation-menu/navigation-menu.component.ts"],"names":[],"mappings":"AAEA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,+DAA+D,CAAC;AACvE,OAAO,KAAK,EAA8B,QAAQ,EAAE,MAAM,+DAA+D,CAAC;AAG1H,qBAIa,uBAAuB;IAChC,OAAO,CAAC,YAAY,CAAwB;IACrC,MAAM,yCAA0B;IAGvC,OAAO,CAAC,UAAU,CAAC,CAAoC;IAGvD,OAAO,CAAC,SAAS,CAAC,CAAqB;IAEvC,OAAO,CAAC,YAAY,CAAC,CAAiC;IACtD,OAAO,CAAC,UAAU,CAAS;IAE3B,SAAS,CAAC,MAAM,IAAI,IAAI,CAGvB;IAEM,SAAS,IAAI,IAAI,CAEvB;IAEM,oBAAoB,IAAI,IAAI,CAElC;IAED,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,QAAQ;IA8ET,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CA6BzC;IAEM,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAiD1C;CACJ"}
1
+ {"version":3,"file":"navigation-menu.component.d.ts","sourceRoot":"","sources":["../../../../../../src/app/shared/components/navigation-menu/navigation-menu.component.ts"],"names":[],"mappings":"AAEA,OAAO,kCAAkC,CAAC;AAC1C,OAAO,+DAA+D,CAAC;AACvE,OAAO,KAAK,EAA8B,QAAQ,EAAE,MAAM,+DAA+D,CAAC;AAG1H,qBAIa,uBAAuB;IAChC,OAAO,CAAC,YAAY,CAAwB;IACrC,MAAM,yCAA0B;IAGvC,OAAO,CAAC,UAAU,CAAC,CAAoC;IAGvD,OAAO,CAAC,SAAS,CAAC,CAAqB;IAEvC,OAAO,CAAC,YAAY,CAAC,CAAiC;IACtD,OAAO,CAAC,UAAU,CAAS;IAE3B,SAAS,CAAC,MAAM,IAAI,IAAI,CAGvB;IAEM,SAAS,IAAI,IAAI,CAEvB;IAEM,oBAAoB,IAAI,IAAI,CAElC;IAED,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,QAAQ;IA+ET,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CA6BzC;IAEM,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAiD1C;CACJ"}
@@ -0,0 +1,13 @@
1
+ import './profile-avatar.component.scss';
2
+ import '@components/popover/popover.component';
3
+ import type { PopoverComponent } from '@components/popover/popover.component';
4
+ export declare class ProfileAvatarComponent {
5
+ avatarUrl: import("purity-world/core").Signal<string>;
6
+ greeting: import("purity-world/core").Signal<string>;
7
+ triggerEl?: HTMLElement | null;
8
+ popoverComponent?: (PopoverComponent & HTMLElement) | null;
9
+ protected onInit(): void;
10
+ openPopover(): void;
11
+ closePopover(): void;
12
+ }
13
+ //# sourceMappingURL=profile-avatar.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-avatar.component.d.ts","sourceRoot":"","sources":["../../../../../../src/app/shared/components/profile-avatar/profile-avatar.component.ts"],"names":[],"mappings":"AACA,OAAO,iCAAiC,CAAC;AACzC,OAAO,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAG9E,qBAIa,sBAAsB;IACxB,SAAS,wCAA2C;IACpD,QAAQ,wCAAgD;IAGxD,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAG/B,gBAAgB,CAAC,EAAE,CAAC,gBAAgB,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC;IAElE,SAAS,CAAC,MAAM,IAAI,IAAI,CAWvB;IAEM,WAAW,IAAI,IAAI,CAKzB;IAEM,YAAY,IAAI,IAAI,CAE1B;CACJ"}
package/types/ui.d.ts CHANGED
@@ -7,6 +7,7 @@ export { DropdownDirective, DropdownDirective as DropdownComponent, // Alias spe
7
7
  DropdownDirective as DropDownDirective, // Ergonomics alias
8
8
  type DropdownSelectDetail, } from './app/shared/directives/dropdown/dropdown.directive';
9
9
  export { HighlightDirective, } from './app/shared/directives/highlight/highlight.directive';
10
+ export { ProfileAvatarComponent, } from './app/shared/components/profile-avatar/profile-avatar.component';
10
11
  export { SwitchButtonComponent, } from './app/shared/components/switch-button/switch-button.component';
11
12
  export { ModalViewComponent, } from './app/shared/components/modal/modal-view.component';
12
13
  export { DateTimePickerComponent, type DateRestriction, type CalendarDay, } from './app/shared/components/date-time-picker/date-time-picker.component';
@@ -19,6 +20,7 @@ export { NavigationMenuComponent, } from './app/shared/components/navigation-men
19
20
  export { AnalogueClockComponent, type ClockOptions, } from './app/shared/widgets/analogue-clock/analogue-clock.component';
20
21
  export { drag, drag as draggable, type DraggableOptions, } from './app/shared/behaviors/draggable/draggable';
21
22
  export { droppable, findDropTarget, type DroppableOptions, } from './app/shared/behaviors/droppable/droppable';
23
+ export { resizable, resizable as resize, resizableAll, type ResizableOptions, type ResizableInstance, type ResizeHandle, type ResizeCornerHandle, type ResizeEdgeHandle, type CanonicalHandle, type CanonicalCorner, type CanonicalEdge, type ResizeData, type ResizeStartData, type ResizeEndData, } from './app/shared/behaviors/resizable/resizable';
22
24
  export { AuthInterceptor, } from './app/shared/interceptors/auth.interceptor';
23
25
  export { LoggingInterceptor, } from './app/shared/interceptors/logging.interceptor';
24
26
  export { DatePipe, } from './app/shared/pipes/date.pipe';
package/types/ui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,mBAAmB,CAAC;AAG3B,OAAO,EACH,iBAAiB,EACjB,iBAAiB,IAAI,iBAAiB,EAAE,oFAAoF;AAC5H,iBAAiB,IAAI,iBAAiB,EAAE,mBAAmB;AAC3D,KAAK,oBAAoB,GAC5B,MAAM,qDAAqD,CAAC;AAE7D,OAAO,EACH,kBAAkB,GACrB,MAAM,uDAAuD,CAAC;AAG/D,OAAO,EACH,qBAAqB,GACxB,MAAM,+DAA+D,CAAC;AAEvE,OAAO,EACH,kBAAkB,GACrB,MAAM,oDAAoD,CAAC;AAE5D,OAAO,EACH,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,WAAW,GACnB,MAAM,qEAAqE,CAAC;AAE7E,OAAO,EACH,qBAAqB,EACrB,KAAK,aAAa,GACrB,MAAM,6DAA6D,CAAC;AAErE,OAAO,EACH,eAAe,GAClB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,eAAe,GACvB,MAAM,mDAAmD,CAAC;AAE3D,OAAO,EACH,0BAA0B,EAC1B,KAAK,QAAQ,GAChB,MAAM,2EAA2E,CAAC;AAEnF,OAAO,EACH,iBAAiB,GACpB,MAAM,qDAAqD,CAAC;AAE7D,OAAO,EACH,uBAAuB,GAC1B,MAAM,mEAAmE,CAAC;AAG3E,OAAO,EACH,sBAAsB,EACtB,KAAK,YAAY,GACpB,MAAM,8DAA8D,CAAC;AAGtE,OAAO,EACH,IAAI,EACJ,IAAI,IAAI,SAAS,EACjB,KAAK,gBAAgB,GACxB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACH,SAAS,EACT,cAAc,EACd,KAAK,gBAAgB,GACxB,MAAM,4CAA4C,CAAC;AAGpD,OAAO,EACH,eAAe,GAClB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACH,kBAAkB,GACrB,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EACH,QAAQ,GACX,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACH,eAAe,EACf,eAAe,IAAI,mBAAmB,GACzC,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACH,aAAa,GAChB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACH,wBAAwB,GAC3B,MAAM,oDAAoD,CAAC;AAG5D,OAAO,EACH,YAAY,EACZ,KAAK,QAAQ,GAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACxB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,mBAAmB,CAAC;AAG3B,OAAO,EACH,iBAAiB,EACjB,iBAAiB,IAAI,iBAAiB,EAAE,oFAAoF;AAC5H,iBAAiB,IAAI,iBAAiB,EAAE,mBAAmB;AAC3D,KAAK,oBAAoB,GAC5B,MAAM,qDAAqD,CAAC;AAE7D,OAAO,EACH,kBAAkB,GACrB,MAAM,uDAAuD,CAAC;AAG/D,OAAO,EACH,sBAAsB,GACzB,MAAM,iEAAiE,CAAC;AAEzE,OAAO,EACH,qBAAqB,GACxB,MAAM,+DAA+D,CAAC;AAEvE,OAAO,EACH,kBAAkB,GACrB,MAAM,oDAAoD,CAAC;AAE5D,OAAO,EACH,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,WAAW,GACnB,MAAM,qEAAqE,CAAC;AAE7E,OAAO,EACH,qBAAqB,EACrB,KAAK,aAAa,GACrB,MAAM,6DAA6D,CAAC;AAErE,OAAO,EACH,eAAe,GAClB,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,eAAe,GACvB,MAAM,mDAAmD,CAAC;AAE3D,OAAO,EACH,0BAA0B,EAC1B,KAAK,QAAQ,GAChB,MAAM,2EAA2E,CAAC;AAEnF,OAAO,EACH,iBAAiB,GACpB,MAAM,qDAAqD,CAAC;AAE7D,OAAO,EACH,uBAAuB,GAC1B,MAAM,mEAAmE,CAAC;AAG3E,OAAO,EACH,sBAAsB,EACtB,KAAK,YAAY,GACpB,MAAM,8DAA8D,CAAC;AAGtE,OAAO,EACH,IAAI,EACJ,IAAI,IAAI,SAAS,EACjB,KAAK,gBAAgB,GACxB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACH,SAAS,EACT,cAAc,EACd,KAAK,gBAAgB,GACxB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACH,SAAS,EACT,SAAS,IAAI,MAAM,EACnB,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,aAAa,GACrB,MAAM,4CAA4C,CAAC;AAGpD,OAAO,EACH,eAAe,GAClB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACH,kBAAkB,GACrB,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EACH,QAAQ,GACX,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACH,eAAe,EACf,eAAe,IAAI,mBAAmB,GACzC,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACH,aAAa,GAChB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACH,wBAAwB,GAC3B,MAAM,oDAAoD,CAAC;AAG5D,OAAO,EACH,YAAY,EACZ,KAAK,QAAQ,GAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACxB,MAAM,uBAAuB,CAAC"}