:root{--bg-app: #f8fafc;--bg-card: #ffffff;--bg-sidebar: #ffffff;--text-main: #0f172a;--text-muted: #64748b;--border-color: #e2e8f0;--primary: #2563eb;--primary-hover: #1d4ed8;--accent: #f1f5f9}body.theme-dark{--bg-app: #090d16;--bg-card: #111827;--bg-sidebar: #0f172a;--text-main: #f8fafc;--text-muted: #94a3b8;--border-color: #1e293b;--primary: #3b82f6;--primary-hover: #60a5fa;--accent: #1e293b}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--bg-app);color:var(--text-main);height:100vh;overflow:hidden}.app-layout{display:flex;flex-direction:column;height:100vh}.app-header{height:60px;background-color:var(--bg-card);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0}.brand{display:flex;align-items:center;gap:8px}.brand-icon{font-size:22px}.brand-title{font-weight:700;font-size:18px;letter-spacing:-.02em}.badge{font-size:11px;font-weight:600;background:#eff6ff;color:#2563eb;padding:2px 8px;border-radius:9999px;border:1px solid #bfdbfe}body.theme-dark .badge{background:#1e3a8a;color:#93c5fd;border-color:#1e40af}.header-actions{display:flex;align-items:center;gap:12px}.nav-btn{font-size:13px;font-weight:500;color:var(--text-main);text-decoration:none;padding:6px 14px;border-radius:6px;border:1px solid var(--border-color);transition:all .15s ease}.nav-btn:hover{background:var(--accent)}.npm-btn{background:var(--primary);color:#fff;border-color:var(--primary);font-family:ui-monospace,SFMono-Regular,monospace}.npm-btn:hover{background:var(--primary-hover)}.theme-btn{background:transparent;border:1px solid var(--border-color);font-size:16px;width:36px;height:36px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-main)}.app-main{display:flex;flex:1;overflow:hidden}.sidebar{width:320px;background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);padding:20px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;flex-shrink:0}.dropzone{border:2px dashed var(--border-color);border-radius:10px;padding:24px 16px;text-align:center;cursor:pointer;background:var(--accent);transition:all .2s ease;position:relative}.dropzone:hover,.dropzone.dragover{border-color:var(--primary);background:#eff6ff}body.theme-dark .dropzone:hover,body.theme-dark .dropzone.dragover{background:#1e293b}.file-input-hidden{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.drop-icon{font-size:32px;display:block;margin-bottom:8px}.drop-text{font-size:14px;font-weight:600;display:block;color:var(--text-main)}.drop-subtext{font-size:12px;color:var(--text-muted);display:block;margin-top:4px}.section-title{font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--text-muted)}.sample-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sample-btn{background:var(--bg-card);border:1px solid var(--border-color);padding:8px 10px;border-radius:6px;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;font-weight:500;color:var(--text-main);text-align:left;transition:all .15s ease}.sample-btn:hover{border-color:var(--primary);background:var(--accent)}.sample-btn.active{border-color:var(--primary);background:#eff6ff;color:var(--primary);font-weight:600}body.theme-dark .sample-btn.active{background:#1e293b;border-color:var(--primary);color:#60a5fa}.sample-icon{font-size:16px}.sidebar-footer{margin-top:auto;padding-top:16px}.compliance-badge{font-size:11px;color:#10b981;background:#ecfdf5;border:1px solid #a7f3d0;padding:8px 12px;border-radius:6px;text-align:center}body.theme-dark .compliance-badge{background:#064e3b;color:#6ee7b7;border-color:#047857}.content-area{flex:1;display:flex;flex-direction:column;padding:20px 24px;gap:16px;overflow:hidden;background-color:var(--bg-app)}.preview-card{flex:1;min-height:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 1px 3px #0000000d}.preview-header{height:48px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--bg-card);flex-shrink:0}.active-file-name{font-weight:600;font-size:14px}.active-file-meta{font-size:12px;color:var(--text-muted);margin-left:12px}.preview-header-actions{display:flex;align-items:center;gap:8px}.header-action-btn{display:inline-flex;align-items:center;gap:6px;background:var(--bg-card);border:1px solid var(--border-color);padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;color:var(--text-main);cursor:pointer;transition:all .15s ease}.header-action-btn:hover{background:var(--accent);border-color:var(--primary);color:var(--primary)}.header-action-btn svg{flex-shrink:0}.preview-viewport{flex:1;min-height:0;position:relative;overflow:hidden;width:100%;height:100%}.snippet-card{height:180px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.snippet-header{height:40px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 16px}.snippet-title{font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--text-muted)}.snippet-tabs{display:flex;gap:4px}.tab-btn{background:transparent;border:none;padding:4px 10px;font-size:12px;font-weight:500;color:var(--text-muted);cursor:pointer;border-radius:4px}.tab-btn.active{background:var(--accent);color:var(--primary);font-weight:600}.snippet-body{flex:1;overflow:auto;padding:12px 16px;background:var(--accent)}.snippet-body pre{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;line-height:1.5;color:var(--text-main)}body.fullscreen-mode{margin:0!important;padding:0!important;overflow:hidden!important;background:var(--bg-app)!important}body.fullscreen-mode .app-header,body.fullscreen-mode .sidebar,body.fullscreen-mode .snippet-card,body.fullscreen-mode .preview-header{display:none!important}body.fullscreen-mode .app-layout{height:100vh!important;width:100vw!important;margin:0!important;padding:0!important}body.fullscreen-mode .app-main,body.fullscreen-mode .content-area{height:100vh!important;width:100vw!important;max-width:100vw!important;margin:0!important;padding:0!important}body.fullscreen-mode .preview-card{width:100vw!important;height:100vh!important;max-width:100vw!important;margin:0!important;padding:0!important;border:none!important;border-radius:0!important;box-shadow:none!important}body.fullscreen-mode #preview-viewport{width:100vw!important;height:100vh!important;border:none!important;border-radius:0!important}:root{--fp-toolbar-bg: #ffffff;--fp-toolbar-border: #e2e8f0;--fp-btn-color: #475569;--fp-btn-hover-bg: #f1f5f9;--fp-btn-active-bg: #e2e8f0;--fp-text-color: #0f172a;--fp-bg: #f8fafc;--fp-sidebar-bg: #ffffff;--fp-sidebar-border: #e2e8f0;--fp-accent: #3b82f6}.fp-theme-dark{--fp-toolbar-bg: #1e293b;--fp-toolbar-border: #334155;--fp-btn-color: #cbd5e1;--fp-btn-hover-bg: #334155;--fp-btn-active-bg: #475569;--fp-text-color: #f8fafc;--fp-bg: #0f172a;--fp-sidebar-bg: #1e293b;--fp-sidebar-border: #334155}.fp-viewer{display:flex;flex-direction:column;width:100%;height:100%;background:var(--fp-bg);color:var(--fp-text-color);font-family:system-ui,-apple-system,sans-serif;overflow:hidden;position:relative}.fp-viewer:fullscreen,.fp-viewer:-webkit-full-screen,.fp-viewer.fp-fullscreen-active{width:100vw!important;height:100vh!important;max-width:100vw!important;max-height:100vh!important;background:var(--fp-bg)!important;position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;z-index:999999!important;margin:0!important;padding:0!important;box-sizing:border-box!important}.fp-toolbar{display:flex;align-items:center;padding:8px 12px;background:var(--fp-toolbar-bg);border-bottom:1px solid var(--fp-toolbar-border);gap:8px;flex-wrap:wrap}.fp-toolbar-group{display:flex;align-items:center;gap:4px}.fp-toolbar-separator{width:1px;height:24px;background:var(--fp-toolbar-border);margin:0 4px}.fp-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--fp-btn-color);border-radius:6px;cursor:pointer;transition:all .2s}.fp-toolbar-btn svg{width:18px;height:18px;display:block;pointer-events:none}.fp-toolbar-btn:hover{background:var(--fp-btn-hover-bg)}.fp-toolbar-btn:active,.fp-toolbar-btn.active{background:var(--fp-btn-active-bg);color:var(--fp-accent)}.fp-viewer.fp-dragover{outline:2px dashed var(--fp-accent);outline-offset:-4px}.fp-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.fp-toolbar-input{width:50px;height:30px;text-align:center;border:1px solid var(--fp-toolbar-border);border-radius:4px;background:var(--fp-toolbar-bg);color:var(--fp-text-color)}.fp-toolbar-label{font-size:14px;color:var(--fp-btn-color)}.fp-body{display:flex;flex:1;min-height:0;width:100%;overflow:hidden}.fp-thumbnail-container{height:100%;display:flex;flex-shrink:0;overflow:hidden;position:relative}.fp-thumbnail-panel{width:200px;height:100%;background:var(--fp-sidebar-bg, #0f172a);border-right:1px solid var(--fp-sidebar-border, #1e293b);display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden;transition:width .25s cubic-bezier(.4,0,.2,1),opacity .2s ease;flex-shrink:0}.fp-thumbnail-panel.hidden{width:0!important;min-width:0!important;border-right:none!important;opacity:0;pointer-events:none}.fp-thumbnail-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--fp-sidebar-border, #1e293b);font-size:13px;font-weight:600;color:var(--fp-text-color, #e2e8f0);flex-shrink:0;-webkit-user-select:none;user-select:none}.fp-thumbnail-title{display:flex;align-items:center;gap:6px}.fp-thumbnail-close-btn{background:transparent;border:none;color:var(--fp-text-color, #94a3b8);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.fp-thumbnail-close-btn svg{width:14px;height:14px}.fp-thumbnail-close-btn:hover{background:var(--fp-btn-hover-bg, rgba(255, 255, 255, .1));color:#fff}.fp-thumbnail-list{flex:1;overflow-y:auto;overflow-x:hidden;padding:12px 10px;display:flex;flex-direction:column;gap:12px;align-items:center;box-sizing:border-box}.fp-thumbnail-item{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;padding:6px;border-radius:6px;transition:background .15s ease,transform .1s ease;-webkit-user-select:none;user-select:none;width:150px;box-sizing:border-box}.fp-thumbnail-item:hover{background:var(--fp-btn-hover-bg, rgba(255, 255, 255, .08))}.fp-thumbnail-item.active{background:var(--fp-btn-active-bg, rgba(59, 130, 246, .15))}.fp-thumbnail-canvas-wrapper{background:#fff;border-radius:3px;box-shadow:0 2px 8px #00000059;padding:2px;display:flex;align-items:center;justify-content:center;border:2px solid transparent;transition:border-color .15s ease,box-shadow .15s ease;max-width:134px;overflow:hidden}.fp-thumbnail-item.active .fp-thumbnail-canvas-wrapper{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f666,0 4px 12px #0006}.fp-thumbnail-item canvas{display:block;max-width:100%;height:auto;background:#fff}.fp-thumbnail-label{font-size:11px;font-weight:500;color:var(--fp-text-color, #94a3b8)}.fp-thumbnail-item.active .fp-thumbnail-label{color:#60a5fa;font-weight:600}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:clip;opacity:1;line-height:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:transparent;z-index:2;pointer-events:auto}.textLayer span,.textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}.textLayer ::selection{background:#0066ff59}.fp-content{flex:1;position:relative;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;height:100%;min-height:0;box-sizing:border-box}.fp-loading,.fp-error{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--fp-bg);z-index:10}.fp-spinner{width:40px;height:40px;border:3px solid var(--fp-toolbar-border);border-top-color:var(--fp-accent);border-radius:50%;animation:fp-spin 1s linear infinite;margin-bottom:16px}@keyframes fp-spin{to{transform:rotate(360deg)}}.fp-error-icon{font-size:48px;margin-bottom:16px}.fp-titlebar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:var(--fp-toolbar-bg, #1e293b);border-bottom:1px solid var(--fp-toolbar-border, #334155);color:var(--fp-text-color, #f8fafc);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;font-weight:500;-webkit-user-select:none;user-select:none;box-sizing:border-box;flex-shrink:0;width:100%}.fp-titlebar-info{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.fp-titlebar-icon{font-size:15px;display:inline-flex;align-items:center;flex-shrink:0}.fp-titlebar-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:var(--fp-text-color, #f8fafc)}.fp-titlebar-badge{font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px;background:var(--fp-btn-active-bg, rgba(59, 130, 246, .2));color:var(--fp-accent, #3b82f6);text-transform:uppercase;flex-shrink:0}
