:root{--primary: #0078d7;--primary-hover: #1a86d9;--primary-active: #005a9e;--primary-light: #e1f5fe;--dark: #1e1e1e;--darker: #141414;--light: #f0f0f0;--win-bg: rgba(255, 255, 255, .95);--shadow: 0 10px 30px rgba(0, 0, 0, .5);--text-dark: #333;--text-light: #ccc;--close-btn: #ff5f56;--close-btn-hover: #e04842;--min-btn: #ffbd2e;--max-btn: #27c93f;--taskbar-height: 45px;--icon-size: 80px;--transition-fast: .2s;--transition-normal: .3s;--color-success: #27c93f;--color-success-hover: #22a835;--color-success-light: #d1fae5;--color-warning: #ffbd2e;--color-warning-hover: #e0a828;--color-warning-light: #fef3c7;--color-danger: #ff5f56;--color-danger-hover: #e04842;--color-danger-light: #fee2e2;--color-info: #667eea;--color-info-hover: #5568d3;--color-info-light: #e0e7ff;--surface-white: #ffffff;--surface-light: #f5f5f5;--surface-medium: #e0e0e0;--surface-dark: #333333;--surface-darker: #1e1e1e;--surface-darkest: #141414;--text-primary: #333333;--text-secondary: #666666;--text-muted: #767676;--text-inverse: #ffffff;--font-family-sans: "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;--font-family-mono: "Consolas", "Courier New", monospace;--font-family-serif: "Times New Roman", Times, serif;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-base: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-xxl: 32px;--font-size-display: 48px;--space-xxs: 2px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-base: 16px;--space-lg: 20px;--space-xl: 24px;--space-xxl: 32px;--space-3xl: 40px;--border-radius-sm: 3px;--border-radius-md: 4px;--border-radius-lg: 8px;--border-radius-xl: 12px;--border-radius-pill: 50px;--border-radius-circle: 50%;--border-width-sm: 1px;--border-width-md: 2px;--border-width-lg: 4px;--border-color-light: #ddd;--border-color-medium: #ccc;--border-color-dark: #555;--border-color-darker: #444;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 8px rgba(0, 0, 0, .15);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 40px rgba(0, 0, 0, .3);--opacity-disabled: .4;--duration-fast: .1s;--duration-normal: .2s;--duration-slow: .3s;--easing-default: cubic-bezier(.4, 0, .2, 1);--z-dropdown: 100;--z-sticky: 200;--z-modal-backdrop: 999;--z-modal: 1000;--z-tooltip: 2000;--z-max: 9999;--surface: var(--surface-white);--surface-elevated: var(--surface-light);--text-color: var(--text-primary);--text-color-muted: var(--text-secondary);--border: var(--border-color-medium);--border-light: var(--border-color-light)}[data-theme=dark]{--surface: var(--surface-darker);--surface-elevated: var(--surface-dark);--text-color: var(--text-inverse);--text-color-muted: var(--text-light);--border: var(--border-color-dark);--border-light: var(--border-color-darker)}*{box-sizing:border-box;-webkit-user-select:none;user-select:none}body{margin:0;padding:0;overflow:hidden;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;height:100vh;background:url(https://images.unsplash.com/photo-1477346611705-65d1883cee1e?auto=format&fit=crop&w=1920&q=80) center/cover no-repeat;transition:background var(--transition-normal)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hidden{display:none!important}#desktop{padding:20px;display:flex;flex-direction:column;flex-wrap:wrap;height:calc(100vh - var(--taskbar-height));gap:15px;align-content:flex-start}#desktop.desktop-grid{display:grid;grid-template-rows:repeat(10,100px);grid-template-columns:repeat(8,100px);gap:10px;padding:10px;align-content:start;justify-content:start}.grid-cell{display:flex;align-items:center;justify-content:center;width:100px;height:100px;-webkit-user-select:none;user-select:none}.grid-cell.dragging{opacity:.4}.grid-cell.drag-over{background:#ffffff26;border-radius:8px}.grid-cell .icon{margin:0;width:auto}.icon{width:var(--icon-size);text-align:center;color:#fff;cursor:pointer;text-shadow:0 2px 4px rgba(0,0,0,.8);padding:10px;border-radius:5px;transition:background var(--transition-fast)}.icon:hover{background:#fff3}.icon:active{background:#ffffff4d}.icon-img{width:48px;height:48px;background:#fff;border-radius:10px;margin:0 auto 5px;display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--text-dark);box-shadow:0 4px 6px #0000004d}.icon-img .icon-image{width:100%;height:100%;object-fit:contain;border-radius:10px}.icon-label{font-size:12px;word-wrap:break-word;line-height:1.3}#taskbar{position:fixed;bottom:0;left:0;right:0;height:var(--taskbar-height);background:#141414e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;padding:0 10px;z-index:9999;border-top:1px solid #444}#start-btn{background:var(--primary);color:#fff;padding:8px 15px;border-radius:4px;font-weight:700;cursor:pointer;margin-right:15px;transition:background var(--transition-fast)}#start-btn:hover{background:var(--primary-hover)}#task-list{display:flex;flex:1;gap:5px;overflow-x:auto}.task-item{padding:5px 15px;background:#333;color:var(--text-light);border-radius:4px;font-size:12px;cursor:pointer;border-bottom:2px solid var(--primary);white-space:nowrap;transition:background var(--transition-fast)}.task-item:hover{background:#444}.task-item.active{background:#444;border-bottom-color:var(--max-btn)}.task-icon-image{width:20px;height:20px;object-fit:contain;vertical-align:middle}#system-tray{display:flex;align-items:center;gap:10px;margin-right:15px}.tray-item{padding:5px 10px;background:#333;color:var(--text-light);border-radius:4px;font-size:12px;cursor:pointer;position:relative;transition:background var(--transition-fast)}.tray-item:hover{background:#444}.language-menu{position:absolute;bottom:100%;right:0;background:#1e1e1ef2;border-radius:4px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:5px;min-width:100px}.language-menu-item{padding:8px 15px;cursor:pointer;transition:background var(--transition-fast)}.language-menu-item:hover{background:#ffffff1a}.language-menu-item.active{background:var(--primary)}#clock{color:#fff;font-size:14px;min-width:60px;text-align:right}#start-menu{position:fixed;bottom:var(--taskbar-height);left:0;width:300px;background:#1e1e1ef2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px 8px 0 0;box-shadow:var(--shadow);z-index:9998;overflow:hidden}.start-menu-header{padding:15px;background:var(--primary);color:#fff;font-weight:700;font-size:18px}.start-menu-apps{padding:10px;max-height:400px;overflow-y:auto}.start-menu-item{display:flex;align-items:center;gap:10px;padding:10px;color:#fff;cursor:pointer;border-radius:4px;transition:background var(--transition-fast)}.start-menu-item:hover{background:#ffffff1a}.start-menu-item-icon{width:32px;height:32px;background:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:18px}.start-menu-icon-image{width:24px;height:24px;object-fit:contain;vertical-align:middle}.start-menu-item-label{font-size:14px}.start-menu-folder-container{width:100%}.start-menu-folder{position:relative}.start-menu-folder-arrow{margin-left:auto;font-size:10px;color:var(--text-light);transition:transform var(--transition-fast)}.start-menu-folder.expanded .start-menu-folder-arrow{transform:rotate(180deg)}.start-menu-folder-children{background:#0000001a;border-radius:4px;margin-top:2px}.start-menu-folder-children .start-menu-item{border-bottom:1px solid rgba(255,255,255,.05)}.start-menu-folder-children .start-menu-item:last-child{border-bottom:none}.window{position:absolute;background:var(--win-bg);border-radius:8px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:300px;min-height:200px;overflow:hidden;border:1px solid #ccc;animation:popIn var(--transition-fast) ease-out}.resize-handle{position:absolute;z-index:10}.resize-handle[data-resize=n]{top:-4px;left:8px;right:8px;height:8px;cursor:ns-resize}.resize-handle[data-resize=s]{bottom:-4px;left:8px;right:8px;height:8px;cursor:ns-resize}.resize-handle[data-resize=e]{top:8px;right:-4px;bottom:8px;width:8px;cursor:ew-resize}.resize-handle[data-resize=w]{top:8px;left:-4px;bottom:8px;width:8px;cursor:ew-resize}.resize-handle[data-resize=nw]{top:-4px;left:-4px;width:14px;height:14px;cursor:nwse-resize}.resize-handle[data-resize=ne]{top:-4px;right:-4px;width:14px;height:14px;cursor:nesw-resize}.resize-handle[data-resize=sw]{bottom:-4px;left:-4px;width:14px;height:14px;cursor:nesw-resize}.resize-handle[data-resize=se]{bottom:-4px;right:-4px;width:14px;height:14px;cursor:nwse-resize}.window.maximized .resize-handle{display:none}@keyframes popIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.window.minimized{display:none}.window.maximized{width:100%!important;height:calc(100vh - var(--taskbar-height))!important;top:0!important;left:0!important;border-radius:0}.title-bar{background:#ddd;padding:8px 12px;display:flex;justify-content:space-between;align-items:center;cursor:grab;border-bottom:1px solid #ccc;flex-shrink:0}.title-bar:active{cursor:grabbing}.title-bar-title{font-size:13px;font-weight:500;color:var(--text-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.controls{display:flex;gap:8px}.controls span{display:inline-block;width:12px;height:12px;border-radius:50%;cursor:pointer;transition:opacity var(--transition-fast)}.controls span:hover{opacity:.8}.close-btn{background:var(--close-btn)}.min-btn{background:var(--min-btn)}.max-btn{background:var(--max-btn)}.content{flex:1;padding:0;overflow:auto;position:relative;color:var(--text-dark);-webkit-user-select:text;user-select:text;background:#fff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.context-menu{position:fixed;background:#1e1e1ef2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:4px;box-shadow:var(--shadow);z-index:10000;min-width:150px;overflow:hidden}.context-menu-item{padding:8px 15px;color:#fff;cursor:pointer;font-size:13px;transition:background var(--transition-fast)}.context-menu-item:hover{background:#ffffff1a}.context-menu-divider{height:1px;background:#444;margin:5px 0}.screensaver-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:10000;background:#000;cursor:none}.screensaver-app .screensaver-selector:focus{outline:2px solid var(--primary);outline-offset:1px}.screensaver-app .screensaver-start-btn:active{background:#005a9e}.tictactoe-container{display:flex;flex-direction:column;align-items:center;padding:20px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;width:100%}.game-board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:220px;margin:20px auto}.tictactoe-container h2{margin:0 0 15px;font-size:24px;color:#333;text-align:center;width:100%}.cell{width:65px;height:65px;background:linear-gradient(145deg,#fff,#f0f0f0);border:2px solid #e0e0e0;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:2px 2px 4px #0000001a,-2px -2px 4px #fffc}.cell:hover{background:linear-gradient(145deg,#f5f5f5,#e8e8e8);transform:scale(1.05);box-shadow:3px 3px 8px #00000026,-3px -3px 8px #ffffffe6}.cell.x{color:#667eea}.cell.o{color:#764ba2}.cell.winner-cell{background:linear-gradient(145deg,#4ade80,#22c55e);color:#0a2e14!important;animation:pulse .6s ease-in-out infinite alternate}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 #4ade80b3}to{transform:scale(1.08);box-shadow:0 0 0 8px #4ade8000}}.status-display{text-align:center;font-size:16px;font-weight:600;margin:15px 0;padding:12px 24px;border-radius:8px;background:linear-gradient(145deg,#f5f5f5,#e8e8e8);color:#333;min-width:150px;box-shadow:2px 2px 8px #0000001a,inset 2px 2px 4px #0000000d;transition:all .3s ease}.status-display.turn-x{border-left:8px solid #667eea;background:linear-gradient(145deg,#667eea14,#f5f5f5);box-shadow:2px 2px 8px #667eea33,inset 2px 2px 4px #0000000d}.status-display.turn-o{border-left:8px solid #764ba2;background:linear-gradient(145deg,#764ba214,#f5f5f5);box-shadow:2px 2px 8px #764ba233,inset 2px 2px 4px #0000000d}.status-display.winner{background:linear-gradient(145deg,#4ade80,#22c55e);color:#0a2e14}@keyframes winner-glow{0%{transform:scale(1);box-shadow:0 0 #4ade80b3}to{transform:scale(1.05);box-shadow:0 0 20px 5px #4ade8080}}.status-display.draw{background:linear-gradient(145deg,#fbbf24,#f59e0b);color:#3d2600}.restart-button{margin-top:15px;padding:12px 30px;font-size:14px;font-weight:600;color:#fff;background:linear-gradient(135deg,#4f46e5,#6d28d9);border:none;border-radius:8px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px #667eea4d}.restart-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #667eea66}.restart-button:active{transform:translateY(0);box-shadow:0 3px 5px #667eea4d}.tictactoe-container button,.tictactoe-container h2,.tictactoe-container .status-display{width:100%;text-align:center}.foob-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-base);font-size:var(--font-size-base);font-family:var(--font-family-sans);font-weight:500;border:none;border-radius:var(--border-radius-md);cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);-webkit-user-select:none;user-select:none;line-height:1;white-space:nowrap;text-decoration:none}.foob-btn:active:not(:disabled){transform:scale(.97)}.foob-btn:disabled{opacity:var(--opacity-disabled);cursor:not-allowed;pointer-events:none}.foob-btn:focus-visible{outline:var(--border-width-md) solid var(--primary);outline-offset:2px}.foob-btn-primary{background:var(--primary);color:var(--text-inverse)}.foob-btn-primary:hover:not(:disabled){background:var(--primary-hover)}.foob-btn-primary:active:not(:disabled){background:var(--primary-active)}.foob-btn-secondary{background:var(--surface-elevated);color:var(--text-color);border:var(--border-width-sm) solid var(--border)}.foob-btn-secondary:hover:not(:disabled){background:var(--surface-medium)}.foob-btn-success{background:var(--color-success);color:var(--text-inverse)}.foob-btn-success:hover:not(:disabled){background:var(--color-success-hover)}.foob-btn-danger{background:var(--color-danger);color:var(--text-inverse)}.foob-btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}.foob-btn-warning{background:var(--color-warning);color:var(--text-dark)}.foob-btn-warning:hover:not(:disabled){background:var(--color-warning-hover)}.foob-btn-ghost{background:transparent;color:var(--text-color)}.foob-btn-ghost:hover:not(:disabled){background:var(--surface-elevated);color:var(--primary)}.foob-btn-sm{padding:var(--space-xxs) var(--space-sm);font-size:var(--font-size-sm)}.foob-btn-lg{padding:var(--space-md) var(--space-lg);font-size:var(--font-size-md)}.foob-btn-icon{width:28px;height:28px;padding:0;border-radius:var(--border-radius-sm)}.foob-btn-circle{width:50px;height:50px;border-radius:50%;padding:0;font-size:20px}.foob-btn-pill{border-radius:var(--border-radius-pill)}.foob-btn-block{width:100%}.foob-btn-loading{position:relative;color:transparent;pointer-events:none}.foob-btn-loading:after{content:"";position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--text-inverse);border-radius:50%;animation:foob-spin .6s linear infinite}@keyframes foob-spin{to{transform:rotate(360deg)}}.foob-input{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-base);font-family:var(--font-family-sans);border:var(--border-width-sm) solid var(--border);border-radius:var(--border-radius-md);background:var(--surface);color:var(--text-color);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-sizing:border-box;width:100%}.foob-input:focus{border-color:var(--primary);box-shadow:0 0 0 var(--border-width-sm) var(--primary-light)}.foob-input:disabled{background:var(--surface-elevated);color:var(--text-color-muted);cursor:not-allowed}.foob-input:read-only{background:var(--surface-elevated);cursor:default}.foob-input::placeholder{color:var(--text-color-muted)}.foob-textarea{resize:vertical;min-height:100px;font-family:var(--font-family-mono)}.foob-select{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-base);font-family:var(--font-family-sans);border:var(--border-width-sm) solid var(--border);border-radius:var(--border-radius-md);background:var(--surface);color:var(--text-color);cursor:pointer;outline:none;transition:border-color var(--transition-fast)}.foob-select:focus{border-color:var(--primary)}.foob-select:disabled{background:var(--surface-elevated);color:var(--text-color-muted);cursor:not-allowed;opacity:var(--opacity-disabled)}.foob-range{cursor:pointer;width:100%;accent-color:var(--primary);height:var(--space-sm);border-radius:var(--border-radius-sm);background:var(--surface-medium);outline:none}.foob-range-dark{background:var(--surface-medium);accent-color:var(--primary-light)}.foob-checkbox{width:18px;height:18px;border:var(--border-width-sm) solid var(--border);border-radius:var(--border-radius-sm);background:var(--surface);cursor:pointer;appearance:none;transition:background var(--transition-fast),border-color var(--transition-fast)}.foob-checkbox:checked{background:var(--primary);border-color:var(--primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='white' d='M10.28 2.28L4 8.56l-1.68-1.68L2.28 7l3 3 6.72-6.72z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center}.foob-checkbox:focus-visible{outline:var(--border-width-sm) solid var(--primary);outline-offset:2px}.foob-checkbox:disabled{background:var(--surface-elevated);border-color:var(--border-light);cursor:not-allowed;opacity:var(--opacity-disabled)}.foob-radio{width:18px;height:18px;border:var(--border-width-sm) solid var(--border);border-radius:50%;background:var(--surface);cursor:pointer;appearance:none;transition:background var(--transition-fast),border-color var(--transition-fast)}.foob-radio:checked{background:var(--primary);border-color:var(--primary);position:relative}.foob-radio:checked:after{content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;background:var(--text-inverse);border-radius:50%;transform:translate(-50%,-50%)}.foob-radio:focus-visible{outline:var(--border-width-sm) solid var(--primary);outline-offset:2px}.foob-radio:disabled{background:var(--surface-elevated);border-color:var(--border-light);cursor:not-allowed;opacity:var(--opacity-disabled)}.foob-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--text-color);margin-bottom:var(--space-xs)}.foob-label-disabled{color:var(--text-color-muted);cursor:not-allowed}.foob-help-text{font-size:var(--font-size-xs);color:var(--text-color-muted);margin-top:var(--space-xxs)}.foob-error-message{color:var(--color-danger);font-size:var(--font-size-xs);margin-top:var(--space-xxs)}.foob-input-error{border-color:var(--color-danger)}.foob-input-error:focus{box-shadow:0 0 0 var(--border-width-sm) var(--color-danger-light)}.foob-input-success{border-color:var(--color-success)}.foob-input-success:focus{box-shadow:0 0 0 var(--border-width-sm) var(--color-success-light)}.foob-check-container{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer}.foob-center{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--space-lg);box-sizing:border-box}.foob-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);padding:var(--space-sm);background:var(--surface-elevated);border-bottom:var(--border-width-sm) solid var(--border-light)}.foob-toolbar-sep{width:var(--border-width-sm);height:24px;background:var(--border);margin:0 var(--space-xs)}.foob-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs)}.foob-card{background:var(--surface);border-radius:var(--border-radius-lg);padding:var(--space-base);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.foob-card-small{padding:var(--space-sm)}.foob-card-large{padding:var(--space-lg)}.foob-card-no-shadow{box-shadow:none;border:var(--border-width-sm) solid var(--border-light)}.foob-heading{margin:0 0 var(--space-sm) 0;font-size:var(--font-size-lg);font-weight:600;color:var(--text-color)}.foob-status{font-size:var(--font-size-sm);color:var(--text-color-muted)}.foob-divider{border:none;border-top:var(--border-width-sm) solid var(--border-light);margin:var(--space-md) 0}.foob-spinner{width:32px;height:32px;border:3px solid var(--surface-medium);border-top-color:var(--primary);border-radius:50%;animation:foob-spin .8s linear infinite}.foob-spinner-sm{width:16px;height:16px;border-width:2px}.foob-spinner-lg{width:48px;height:48px;border-width:4px}.foob-progress{width:100%;height:6px;background:var(--surface-medium);border-radius:var(--border-radius-sm);overflow:hidden}.foob-progress-bar{height:100%;background:var(--primary);border-radius:var(--border-radius-sm);transition:width var(--duration-slow) var(--easing-default)}.foob-toolbar-dark{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:#323639;border-bottom:1px solid #222}.foob-btn-dark{background:#444;color:#fff;border:1px solid #555;border-radius:var(--border-radius-sm);width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-base);cursor:pointer;transition:background var(--transition-fast)}.foob-btn-dark:hover{background:#555}.foob-btn--dark{background:#444;color:#fff;border:1px solid #555}.foob-btn--dark:hover{background:#555}.foob-btn--dark.foob-btn-primary{background:var(--color-success)}.foob-btn--dark.foob-btn-primary:hover{background:var(--color-success-hover)}.foob-select-dark{padding:3px 6px;font-size:var(--font-size-sm);border:1px solid #555;border-radius:var(--border-radius-sm);background:#444;color:#eee;cursor:pointer}.foob-input-dark{padding:3px 6px;font-size:var(--font-size-sm);border:1px solid #555;border-radius:var(--border-radius-sm);background:#444;color:#fff;text-align:center;outline:none}.foob-toolbar-primary{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--primary);color:var(--text-inverse);border-bottom:1px solid var(--primary-hover)}.foob-flex{display:flex}.foob-flex-column{flex-direction:column}.foob-flex-wrap{flex-wrap:wrap}.foob-grow{flex:1}.foob-shrink-0{flex-shrink:0}.foob-items-start{align-items:flex-start}.foob-items-center{align-items:center}.foob-items-end{align-items:flex-end}.foob-items-stretch{align-items:stretch}.foob-items-baseline{align-items:baseline}.foob-justify-start{justify-content:flex-start}.foob-justify-center{justify-content:center}.foob-justify-end{justify-content:flex-end}.foob-justify-between{justify-content:space-between}.foob-justify-around{justify-content:space-around}.foob-justify-evenly{justify-content:space-evenly}.foob-gap-xs{gap:var(--space-xs)}.foob-gap-sm{gap:var(--space-sm)}.foob-gap-md{gap:var(--space-md)}.foob-gap-base{gap:var(--space-base)}.foob-gap-lg{gap:var(--space-lg)}.foob-mt-xs{margin-top:var(--space-xs)}.foob-mt-sm{margin-top:var(--space-sm)}.foob-mt-md{margin-top:var(--space-md)}.foob-mt-base{margin-top:var(--space-base)}.foob-mb-xs{margin-bottom:var(--space-xs)}.foob-mb-sm{margin-bottom:var(--space-sm)}.foob-mb-md{margin-bottom:var(--space-md)}.foob-mb-base{margin-bottom:var(--space-base)}.foob-p-xs{padding:var(--space-xs)}.foob-p-sm{padding:var(--space-sm)}.foob-p-md{padding:var(--space-md)}.foob-p-base{padding:var(--space-base)}.foob-text-center{text-align:center}.foob-text-bold{font-weight:600}.foob-text-muted{color:var(--text-color-muted)}.foob-text-ellipsis{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.foob-hidden{display:none}.foob-spacer-xs{height:var(--space-xs)}.foob-spacer-sm{height:var(--space-sm)}.foob-spacer-md{height:var(--space-md)}.foob-spacer-base{height:var(--space-base)}.foob-spacer-lg{height:var(--space-lg)}.foob-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:9999px;font-size:var(--font-size-xs);font-weight:600;line-height:1.4}.foob-badge-default{background:var(--surface-medium);color:var(--text-color)}.foob-badge-primary{background:var(--primary-light);color:var(--primary)}.foob-badge-success{background:#e6f9e6;color:var(--color-success)}.foob-badge-warning{background:#fff8e6;color:#7a5a00}.foob-badge-danger{background:#ffe6e6;color:var(--color-danger)}.foob-badge-sm{font-size:10px;padding:1px 6px}.foob-link{color:var(--primary);text-decoration:none;cursor:pointer}.foob-link:hover{text-decoration:underline}.foob-link-external:after{content:" ↗";font-size:.8em}.foob-alert{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-base);border-radius:var(--border-radius-md);border-left:4px solid;margin-bottom:var(--space-sm);font-size:var(--font-size-sm)}.foob-alert-info{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.foob-alert-success{background:#e6f9e6;border-color:var(--color-success);color:#1a7a1a}.foob-alert-warning{background:#fff8e6;border-color:#b8860b;color:#8a6508}.foob-alert-danger{background:#ffe6e6;border-color:var(--color-danger);color:#c4332a}.foob-alert-close{background:none;border:none;font-size:var(--font-size-lg);cursor:pointer;padding:0 var(--space-xs);color:inherit;opacity:.7;line-height:1}.foob-alert-close:hover{opacity:1}.foob-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.foob-modal{background:var(--surface);border-radius:var(--border-radius-lg);padding:var(--space-lg);max-width:480px;width:90%;box-shadow:0 8px 32px #0003}.foob-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-base)}.foob-modal-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text-color)}.foob-modal-body{margin-bottom:var(--space-base);color:var(--text-color)}.foob-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm)}.foob-btn-group{display:inline-flex;gap:var(--space-xs)}.foob-btn-group .foob-btn{border-radius:0}.foob-btn-group .foob-btn:first-child{border-top-left-radius:var(--border-radius-md);border-bottom-left-radius:var(--border-radius-md)}.foob-btn-group .foob-btn:last-child{border-top-right-radius:var(--border-radius-md);border-bottom-right-radius:var(--border-radius-md)}.foob-check-group{display:flex;flex-direction:column;gap:var(--space-sm)}.foob-avatar{display:inline-flex;overflow:hidden;border-radius:50%;background:var(--surface-medium);width:40px;height:40px}.foob-avatar img{width:100%;height:100%;object-fit:cover}.foob-avatar-sm{width:24px;height:24px}.foob-avatar-lg{width:64px;height:64px}.foob-menubar{display:flex;align-items:stretch;background:var(--surface-elevated);border-bottom:var(--border-width-sm) solid var(--border-light);flex-shrink:0;position:relative;height:28px}.foob-menubar-dark{background:#323639;border-bottom:1px solid #222}.foob-menu-label{display:inline-flex;align-items:center;padding:0 10px;font-size:var(--font-size-sm);color:var(--text-color);cursor:pointer;position:relative;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background var(--transition-fast)}.foob-menu-label:hover,.foob-menu-label-active,.foob-menu-label:active{background:var(--surface-medium)}.foob-menubar-dark .foob-menu-label{color:#e0e0e0}.foob-menubar-dark .foob-menu-label:hover,.foob-menubar-dark .foob-menu-label-active{background:#ffffff1a}.foob-menu-dropdown{display:none;position:absolute;top:100%;left:0;min-width:180px;background:var(--surface-white);border:var(--border-width-sm) solid var(--border-light);border-radius:var(--border-radius-sm);box-shadow:var(--shadow);z-index:200;padding:var(--space-xs) 0}.foob-menu-dropdown-open{display:block}.foob-menu-item{display:flex;align-items:center;padding:6px 12px;font-size:var(--font-size-sm);color:var(--text-color);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast)}.foob-menu-item:hover:not(.foob-menu-item-disabled):not(.foob-menu-separator){background:var(--primary);color:#fff}.foob-menu-item-disabled{opacity:.5;cursor:default}.foob-menu-item-check{width:16px;flex-shrink:0;font-size:var(--font-size-xs)}.foob-menu-item-label{flex:1}.foob-menu-item-shortcut{margin-left:20px;color:var(--text-color-muted);font-size:var(--font-size-xs)}.foob-menu-item:hover:not(.foob-menu-item-disabled) .foob-menu-item-shortcut{color:#ffffffb3}.foob-menu-separator{height:1px;background:var(--border-light);margin:var(--space-xs) 0;padding:0;cursor:default}.dice-app{display:flex;flex-direction:column;align-items:center;height:100%;padding:16px;gap:12px;overflow-y:auto;box-sizing:border-box;position:relative}.dice-header{text-align:center;flex-shrink:0}.dice-title{margin:0;font-size:1.4rem;font-weight:700;background:linear-gradient(135deg,#60a5fa,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dice-subtitle{margin:4px 0 0;font-size:.75rem;color:var(--text-color-muted)}.dice-scene{width:160px;height:160px;perspective:800px;display:flex;justify-content:center;align-items:center;position:relative;flex-shrink:0}.dice-cube{width:80px;height:80px;position:relative;transform-style:preserve-3d;transform:rotateX(-20deg) rotateY(-20deg);transition:transform 1s cubic-bezier(.15,.9,.34,1)}.dice-face{position:absolute;width:80px;height:80px;background:linear-gradient(145deg,#fff,#e6e6e6);border-radius:12px;box-shadow:inset 0 0 8px #0000001a;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:10px;box-sizing:border-box;backface-visibility:hidden;border:1px solid #d1d5db}.dice-face-front{transform:rotateY(0) translateZ(40px)}.dice-face-back{transform:rotateY(180deg) translateZ(40px)}.dice-face-right{transform:rotateY(90deg) translateZ(40px)}.dice-face-left{transform:rotateY(-90deg) translateZ(40px)}.dice-face-top{transform:rotateX(90deg) translateZ(40px)}.dice-face-bottom{transform:rotateX(-90deg) translateZ(40px)}.dice-dot{background-color:#1f2937;border-radius:50%;width:12px;height:12px;align-self:center;justify-self:center;box-shadow:inset 1px 1px 2px #00000080}.dice-face-1 .dice-dot:nth-child(1){grid-area:2 / 2}.dice-face-2 .dice-dot:nth-child(1){grid-area:1 / 1}.dice-face-2 .dice-dot:nth-child(2){grid-area:3 / 3}.dice-face-3 .dice-dot:nth-child(1){grid-area:1 / 1}.dice-face-3 .dice-dot:nth-child(2){grid-area:2 / 2}.dice-face-3 .dice-dot:nth-child(3){grid-area:3 / 3}.dice-face-4 .dice-dot:nth-child(1){grid-area:1 / 1}.dice-face-4 .dice-dot:nth-child(2){grid-area:1 / 3}.dice-face-4 .dice-dot:nth-child(3){grid-area:3 / 1}.dice-face-4 .dice-dot:nth-child(4){grid-area:3 / 3}.dice-face-5 .dice-dot:nth-child(1){grid-area:1 / 1}.dice-face-5 .dice-dot:nth-child(2){grid-area:1 / 3}.dice-face-5 .dice-dot:nth-child(3){grid-area:2 / 2}.dice-face-5 .dice-dot:nth-child(4){grid-area:3 / 1}.dice-face-5 .dice-dot:nth-child(5){grid-area:3 / 3}.dice-face-6 .dice-dot:nth-child(1){grid-area:1 / 1}.dice-face-6 .dice-dot:nth-child(2){grid-area:1 / 3}.dice-face-6 .dice-dot:nth-child(3){grid-area:2 / 1}.dice-face-6 .dice-dot:nth-child(4){grid-area:2 / 3}.dice-face-6 .dice-dot:nth-child(5){grid-area:3 / 1}.dice-face-6 .dice-dot:nth-child(6){grid-area:3 / 3}.dice-shadow{width:80px;height:80px;background:radial-gradient(closest-side,rgba(0,0,0,.4),transparent);position:absolute;top:50%;left:50%;transform:translate(-50%,50px) rotateX(90deg);filter:blur(8px);transition:all .3s ease;z-index:-1}.dice-shadow-rolling{transform:translate(-50%,50px) rotateX(90deg) scale(.6);opacity:.3}.dice-roll-btn{box-shadow:0 0 15px #0078d766!important;font-weight:700!important;letter-spacing:.05em}.dice-roll-btn:hover:not(:disabled){box-shadow:0 0 25px #0078d799!important;transform:translateY(-1px)}.dice-roll-btn:active:not(:disabled){transform:translateY(0) scale(.97)}.dice-history-container{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0}.dice-history-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-color-muted);font-weight:600}.dice-history-list{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;max-width:280px}.dice-history-entry{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;font-size:.85rem;font-weight:700;background:var(--surface);border:1px solid var(--border);color:var(--text-color);transition:transform .2s ease,box-shadow .2s ease}.dice-history-entry.dice-history-latest{transform:scale(1.2);box-shadow:0 0 8px #0078d759;border-color:var(--primary)}.dice-history-entry.dice-history-6{background:#dcfce7;border-color:#86efac;color:#166534}.dice-history-entry.dice-history-1{background:#fee2e2;border-color:#fca5a5;color:#b91c1c}.dice-info{font-size:.65rem;color:var(--text-color-muted);text-align:center;flex-shrink:0;opacity:.7}.dice-stats-overlay{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.dice-stats-dialog{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px;min-width:280px;max-width:340px;box-shadow:0 8px 32px #0000004d;display:flex;flex-direction:column;gap:12px}.dice-stats-title{margin:0;font-size:1.1rem;text-align:center;color:var(--text-color)}.dice-stats-nodata{text-align:center;color:var(--text-color-muted);font-size:.85rem;margin:10px 0}.dice-stats-total{text-align:center;font-size:.85rem;color:var(--text-color);font-weight:600;margin-bottom:4px}.dice-stats-bars{display:flex;flex-direction:column;gap:6px}.dice-stats-row{display:flex;align-items:center;gap:8px}.dice-stats-row-label{font-weight:700;font-size:.9rem;min-width:16px;text-align:center;color:var(--text-color)}.dice-stats-bar-wrapper{flex:1;height:16px;background:var(--border);border-radius:4px;overflow:hidden}.dice-stats-bar{height:100%;border-radius:4px;transition:width .3s ease;min-width:2px}.dice-stats-bar-1{background:#ff6b6b}.dice-stats-bar-2{background:#ffa36b}.dice-stats-bar-3{background:#ffd93d}.dice-stats-bar-4{background:#6bcb77}.dice-stats-bar-5{background:#4d96ff}.dice-stats-bar-6{background:#9b59b6}.dice-stats-pct{font-size:.75rem;font-weight:600;min-width:36px;text-align:right;color:var(--text-color)}.dice-stats-count{font-size:.7rem;color:var(--text-color-muted);min-width:30px}
