.browser{--browser-bg: var(--gray-1);--browser-sidebar-bg: var(--gray-1);--browser-content-bg: var(--gray-2);--browser-border: var(--gray-4);--browser-text: var(--gray-12);--browser-text-muted: var(--gray-11);--browser-accent: var(--tomato-9);--browser-hover: var(--gray-3);--browser-selected: var(--tomato-3);--browser-radius-lg: 20px;--browser-radius-md: 12px;--browser-radius-sm: 8px;width:100%;height:100vh;height:100dvh;padding:1.5rem;background:var(--gray-1);display:flex;flex-direction:column}.browser-window{flex:1;display:grid;grid-template-columns:280px 1fr;gap:0;background:var(--browser-sidebar-bg);border-radius:var(--browser-radius-md);box-shadow:0 1px 3px #0000000d,0 20px 60px #0000001a,0 0 0 1px var(--browser-border);overflow:hidden;min-height:0}@media(max-width:900px){.browser{padding:1rem}.browser-window{grid-template-columns:1fr}}.browser--mobile .browser-window{grid-template-columns:1fr}.browser--mobile .browser-sidebar{border-right:none}.browser-sidebar{background:var(--browser-sidebar-bg);border-right:1px solid var(--browser-border);display:flex;flex-direction:column;overflow:hidden;min-height:0}@media(max-width:900px){.browser-sidebar{border-right:none}}.browser-sidebar-header{padding:1rem;display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:1rem;flex-shrink:0}.browser-sidebar-title-group{display:flex;flex-direction:column;gap:.125rem}.browser-back-link{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background:var(--browser-hover);border:none;border-radius:6px;color:var(--browser-text-muted);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color .15s var(--ease-out, cubic-bezier(.25, .46, .45, .94)),color .15s var(--ease-out, cubic-bezier(.25, .46, .45, .94));flex-shrink:0}.browser-back-link:hover{background:var(--browser-selected);color:var(--browser-text)}.browser-sidebar-title{font-size:.9rem;font-weight:600;color:var(--browser-accent);letter-spacing:-.01em}.browser-sidebar-subtitle{font-size:.75rem;color:var(--browser-text-muted)}.browser-sidebar-divider{height:1px;background:var(--browser-border);margin:0 1rem;flex-shrink:0}.browser-sidebar-nav{flex:1;min-height:0;overflow-y:auto;padding:.75rem .5rem;scrollbar-width:thin;scrollbar-color:var(--browser-border) transparent}.browser-sidebar-nav::-webkit-scrollbar{width:6px}.browser-sidebar-nav::-webkit-scrollbar-track{background:transparent}.browser-sidebar-nav::-webkit-scrollbar-thumb{background:var(--browser-border);border-radius:3px}.browser-sidebar-folder{margin-bottom:.25rem}.browser-sidebar-folder-header{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;background:transparent;border:none;border-radius:var(--browser-radius-sm);cursor:pointer;transition:background-color .15s var(--ease-out, cubic-bezier(.25, .46, .45, .94));text-align:left}.browser-sidebar-folder-header:hover{background:var(--browser-hover)}.browser-folder-icon{color:var(--browser-accent);flex-shrink:0}.browser-folder-name{font-size:.875rem;font-weight:500;color:var(--browser-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.browser-sidebar-folder-header--open .browser-folder-icon{color:var(--browser-accent)}.browser-sidebar-folder-content{padding-left:.5rem;margin-top:.125rem;animation:slideDown .2s var(--ease-out, cubic-bezier(.25, .46, .45, .94))}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.browser-sidebar-item{display:flex;align-items:center;gap:.625rem;width:100%;padding:.4rem .75rem;background:transparent;border:none;border-radius:var(--browser-radius-sm);cursor:pointer;transition:background-color .15s var(--ease-out, cubic-bezier(.25, .46, .45, .94)),color .15s var(--ease-out, cubic-bezier(.25, .46, .45, .94));text-align:left}.browser-sidebar-item:hover{background:var(--browser-hover)}.browser-sidebar-header-actions{display:flex;gap:.5rem}.browser-sidebar-item--selected{background:var(--browser-selected);color:var(--browser-accent)}.browser-sidebar-item--selected .browser-sidebar-item-title{color:var(--browser-accent);font-weight:500}.browser-favicon{width:16px;height:16px;border-radius:4px;flex-shrink:0;object-fit:contain}.browser-favicon--placeholder{display:flex;align-items:center;justify-content:center;background:var(--browser-hover);color:var(--browser-text-muted)}.browser-sidebar-item-title{font-size:.8125rem;color:var(--browser-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.browser-external-icon{color:var(--browser-text-muted);flex-shrink:0;opacity:.6}.browser-content{background:var(--browser-content-bg);position:relative;display:flex;flex-direction:column;overflow:hidden}.browser-iframe{width:100%;height:100%;border:none;background:#fff}.browser-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:var(--browser-content-bg);z-index:10}.browser-loading span{font-size:.875rem;color:var(--browser-text-muted)}.browser-loading-spinner{width:32px;height:32px;border:3px solid var(--browser-border);border-top-color:var(--browser-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.browser-sidebar-folder-content,.browser-loading-spinner{animation:none}}.browser-fallback{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;text-align:center}.browser-fallback .browser-favicon{width:32px;height:32px;border-radius:8px;margin-bottom:.5rem}.browser-fallback-title{font-size:1.125rem;font-weight:600;color:var(--browser-text);margin:0}.browser-fallback-url{font-size:.8125rem;color:var(--browser-text-muted);margin:0}.browser-fallback-note{font-size:.8125rem;color:var(--browser-text-muted);margin:.5rem 0 1rem}.browser-fallback-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:var(--browser-accent);color:#fff;border-radius:8px;font-size:.875rem;font-weight:500;text-decoration:none;transition:opacity .15s ease}.browser-fallback-btn:hover{opacity:.85}.browser-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;text-align:center}.browser-empty-icon{color:var(--browser-accent);opacity:.6;margin-bottom:.5rem}.browser-empty-title{font-size:1.125rem;font-weight:600;color:var(--browser-text);margin:0}.browser-empty-subtitle{font-size:.875rem;color:var(--browser-text-muted);max-width:280px;margin:0;line-height:1.5}body{margin:0;display:block}
