@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-v17-latin-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-v17-latin-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;}@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-v17-latin-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;}@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-v17-latin-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;}@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans-v17-latin-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}@font-face{font-family:'JetBrains Mono';src:url('../fonts/jetbrains-mono-v24-latin-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}@font-face{font-family:'JetBrains Mono';src:url('../fonts/jetbrains-mono-v24-latin-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;}@font-face{font-family:'DM Sans Fallback';src:local('Arial');ascent-override:92.37%;descent-override:24.40%;line-gap-override:0%;size-adjust:105.82%;}@font-face{font-family:'JetBrains Mono Fallback';src:local('Courier New');ascent-override:76.20%;descent-override:25.40%;line-gap-override:0%;size-adjust:128.00%;}@font-face{font-family:'DM Sans Fallback';src:local('Arial');ascent-override:92.37%;descent-override:24.40%;line-gap-override:0%;size-adjust:105.82%;}@font-face{font-family:'JetBrains Mono Fallback';src:local('Courier New');ascent-override:76.20%;descent-override:25.40%;line-gap-override:0%;size-adjust:128.00%;}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}:root{--bg-primary:#0c0e11;--bg-secondary:#141719;--bg-card:#1a1d21;--bg-card-hover:#22262b;--bg-elevated:#1e2227;--bg-input:#141719;--text-primary:#e8eaed;--text-secondary:#b0b6bf;--text-tertiary:#a0a6af;--text-inverse:#0c0e11;--accent:#d4943a;--accent-hover:#e0a54d;--accent-muted:rgba(212,148,58,0.12);--accent-border:rgba(212,148,58,0.25);--border:#2a2e33;--border-subtle:#1e2227;--border-focus:var(--accent);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 3px rgba(0,0,0,0.3);--shadow-md:0 4px 12px rgba(0,0,0,0.4);--shadow-lg:0 8px 30px rgba(0,0,0,0.5);--font-body:'DM Sans','DM Sans Fallback',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-mono:'JetBrains Mono','JetBrains Mono Fallback',ui-monospace,Consolas,Menlo,monospace;--header-height:60px;--nav-height:48px;--max-width:1240px;--gutter:20px;--transition:0.2s ease;--custom-font-size:16px;--custom-line-height:1.6;--custom-letter-spacing:0px;}html{font-size:var(--custom-font-size);scroll-behavior:smooth;-webkit-text-size-adjust:100%;}body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);line-height:var(--custom-line-height);letter-spacing:var(--custom-letter-spacing);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;isolation:isolate;}img{max-width:100%;height:auto;display:block;}a{color:var(--accent);text-decoration:none;transition:color var(--transition);}a:hover{color:var(--accent-hover);}.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;}.skip-link{position:absolute;top:-100%;left:50%;transform:translateX(-50%);background:var(--accent);color:var(--text-inverse);padding:8px 20px;border-radius:var(--radius-sm);font-weight:600;z-index:9999;transition:top 0.2s;}.skip-link:focus{top:10px;color:var(--text-inverse);}.ub-header{position:sticky;top:0;z-index:100;background:var(--bg-secondary);border-bottom:1px solid var(--border);}.ub-header__inner{max-width:var(--max-width);margin:0 auto;padding:0 var(--gutter);height:var(--header-height);display:flex;align-items:center;gap:12px;}.ub-header__logo{display:flex;align-items:center;gap:10px;color:var(--text-primary);flex-shrink:0;}.ub-header__logo:hover{color:var(--accent);}.ub-header__logo-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-sm);color:var(--accent);}.ub-header__logo-text{display:flex;align-items:baseline;gap:6px;}.ub-header__logo-name{font-weight:700;font-size:1.05rem;letter-spacing:-0.01em;}.ub-header__logo-version{font-family:var(--font-mono);font-size:0.65rem;color:var(--accent);background:var(--accent-muted);padding:1px 5px;border-radius:3px;font-weight:500;}.ub-header__search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none;z-index:1;}.ub-header__search-input{width:100%;height:38px;padding:0 120px 0 38px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:0.875rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition);}.ub-header__search-input::placeholder{color:var(--text-tertiary);}.ub-header__search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);}.ub-header__search-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);height:30px;padding:0 12px;display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#0c0e11;border:none;border-radius:calc(var(--radius-md) - 2px);font-family:var(--font-body);font-size:0.8rem;font-weight:700;cursor:pointer;transition:background var(--transition);}.ub-header__search-btn:hover{background:var(--accent-hover);}.ub-header__search-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-header__search-btn svg{flex-shrink:0;}.ub-header__actions{display:flex;align-items:center;gap:6px;flex-shrink:0;}.ub-header__action-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:transparent;border:1.5px solid var(--text-tertiary);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition);}.ub-header__action-btn:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);}.ub-header__action-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-header__menu-toggle{display:none;}.ub-category-dropdown__trigger svg{flex-shrink:0;opacity:0.8;}.ub-category-dropdown__trigger:hover{border-color:var(--accent);color:var(--accent);}.ub-category-dropdown__trigger:hover svg{opacity:1;}.ub-category-dropdown__trigger[aria-expanded="true"]{border-color:var(--accent);color:var(--accent);}.ub-category-dropdown__chevron{transition:transform 0.18s ease;width:12px;height:12px;opacity:0.7;}.ub-category-dropdown__trigger[aria-expanded="true"] .ub-category-dropdown__chevron{transform:rotate(180deg);}.ub-category-dropdown__trigger span:not(.sr-only){max-width:180px;overflow:hidden;text-overflow:ellipsis;}.ub-page{max-width:var(--max-width);margin:0 auto;padding:0 var(--gutter);}.ub-hero{padding:48px 0 40px;text-align:center;}.ub-hero__title{font-size:2.2rem;font-weight:700;letter-spacing:-0.025em;line-height:1.2;margin-bottom:10px;}.ub-hero__title-accent{color:var(--accent);}.ub-hero__sub{font-size:1.05rem;color:var(--text-secondary);max-width:520px;margin:0 auto 28px;line-height:1.5;}.ub-hero__search{position:relative;max-width:520px;margin:0 auto;}.ub-hero__search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none;}.ub-hero__search-input{width:100%;height:50px;padding:0 20px 0 46px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);font-family:var(--font-body);font-size:1rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition);}.ub-hero__search-input::placeholder{color:var(--text-tertiary);}.ub-hero__search-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-muted);}.ub-hero__badges{display:flex;justify-content:center;gap:16px;margin-top:20px;flex-wrap:wrap;}.ub-hero__badge{display:flex;align-items:center;gap:6px;font-size:0.78rem;color:var(--text-tertiary);font-weight:500;}.ub-hero__badge svg{color:var(--accent);opacity:0.7;flex-shrink:0;}.ub-cinema__track::-webkit-scrollbar{display:none;}.ub-cinema__page-inner{max-width:900px;width:100%;text-align:center;position:relative;}.ub-cinema__head{margin-bottom:14px;}.ub-cinema__index{display:inline-block;font-family:var(--font-mono);font-size:0.7rem;font-weight:600;letter-spacing:0.15em;color:var(--cat-color);opacity:0.7;margin-bottom:12px;}.ub-cinema__icon{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:color-mix(in srgb,var(--cat-color) 12%,transparent);border:1px solid color-mix(in srgb,var(--cat-color) 28%,transparent);color:var(--cat-color);margin-bottom:12px;}.ub-cinema__icon svg{width:26px;height:26px;}.ub-cinema__title{font-size:2.4rem;font-weight:700;letter-spacing:-0.025em;line-height:1.1;margin-bottom:8px;color:var(--text-primary);}.ub-cinema__desc{font-size:0.98rem;color:var(--text-secondary);max-width:560px;margin:0 auto 10px;line-height:1.5;}.ub-cinema__meta{display:inline-flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;font-size:0.85rem;color:var(--text-tertiary);}.ub-cinema__count strong{color:var(--cat-color);font-family:var(--font-mono);font-weight:700;margin-right:4px;}.ub-cinema__see-all{color:var(--cat-color);font-weight:600;text-decoration:none;border-bottom:1px solid transparent;transition:border-color var(--transition);}.ub-cinema__see-all:hover{border-bottom-color:var(--cat-color);}.ub-cinema__svg{display:block;width:100%;height:auto;max-height:min(44vh,420px);}.ub-cinema__map-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity 0.2s ease;}.ub-cinema__page[data-loading="true"] .ub-cinema__map-loading{opacity:1;}.ub-cinema__map-loading::before{content:"";width:18px;height:18px;border-radius:50%;border:2px solid color-mix(in srgb,var(--cat-color) 30%,transparent);border-top-color:var(--cat-color);animation:ub-cinema-spin 0.8s linear infinite;}.ub-cinema__star circle{transition:opacity 0.18s ease,stroke-width 0.18s ease;stroke:transparent;stroke-width:0;}.ub-cinema__star:hover circle,.ub-cinema__star:focus circle,.ub-cinema__star:focus-visible circle{opacity:1;stroke:var(--cat-color);stroke-width:2;}.ub-cinema__star:focus-visible circle{stroke:#fff;}.ub-cinema__star[data-trending="true"] circle{animation:ub-cinema-twinkle 3.6s ease-in-out infinite;}.ub-cinema__star[data-trending="true"] circle{animation:none;}.ub-cinema__arrow:hover{color:var(--accent);border-color:var(--accent);}.ub-cinema__arrow[hidden]{display:none;}.ub-cinema__arrow--prev{left:18px;}.ub-cinema__arrow--next{right:18px;}.ub-cinema__pagination-dot{position:relative;display:block;width:12px;height:12px;border-radius:50%;background:var(--cat-color);opacity:0.35;transition:opacity 0.18s ease,width 0.18s ease;}.ub-cinema__pagination-dot:hover,.ub-cinema__pagination-dot.is-active{opacity:1;width:26px;border-radius:6px;}.ub-cinema__pagination-label{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 10px;font-size:0.72rem;font-weight:600;color:var(--text-primary);white-space:nowrap;opacity:0;transition:opacity 0.18s ease,transform 0.18s ease;pointer-events:none;}.ub-cinema__pagination-dot:hover .ub-cinema__pagination-label{opacity:1;transform:translate(-50%,0);}.ub-cinema__data{display:none;}.ub-cinema__page{height:clamp(500px,75vh,680px);}.ub-cinema__title{font-size:1.8rem;}.ub-cinema__desc{font-size:0.9rem;}.ub-cinema__svg{max-height:38vh;}.ub-cinema__arrow{width:38px;height:38px;}.ub-cinema__page{height:clamp(440px,70vh,600px);padding-bottom:40px;}.ub-cinema__title{font-size:1.4rem;}.ub-cinema__icon{width:44px;height:44px;}.ub-cinema__arrow--prev{left:8px;}.ub-cinema__arrow--next{right:8px;}.ub-cinema__pagination{gap:6px;padding:8px 12px 0;}.ub-cinema__pagination-dot{width:8px;height:8px;}.ub-cinema__pagination-dot.is-active{width:18px;}.ub-cinema__track{scroll-behavior:auto;}.ub-cinema__map-loading::before{animation:none;}.ub-header__menu-toggle{display:none;}@media (max-width:900px){.ub-hero__title{font-size:1.65rem;}.ub-hero__sub{font-size:0.95rem;}.ub-category-dropdown__trigger-label{display:none;}.ub-category-dropdown__trigger{padding:0 10px;}.ub-header__search-input{padding-right:100px;}.ub-header__search-btn{padding:0 8px;}}.ub-header__search-input{padding-right:44px;}.ub-header__logo-version{display:none;}.ub-hero__badges{flex-direction:column;align-items:center;gap:8px;}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}:root{--bg-primary:#0c0e11;--bg-secondary:#141719;--bg-card:#1a1d21;--bg-card-hover:#22262b;--bg-elevated:#1e2227;--bg-input:#141719;--text-primary:#e8eaed;--text-secondary:#b0b6bf;--text-tertiary:#a0a6af;--text-inverse:#0c0e11;--accent:#d4943a;--accent-hover:#e0a54d;--accent-muted:rgba(212,148,58,0.12);--accent-border:rgba(212,148,58,0.25);--border:#2a2e33;--border-subtle:#1e2227;--border-focus:var(--accent);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 3px rgba(0,0,0,0.3);--shadow-md:0 4px 12px rgba(0,0,0,0.4);--shadow-lg:0 8px 30px rgba(0,0,0,0.5);--font-body:'DM Sans','DM Sans Fallback',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-mono:'JetBrains Mono','JetBrains Mono Fallback',ui-monospace,Consolas,Menlo,monospace;--header-height:60px;--nav-height:48px;--max-width:1240px;--gutter:20px;--transition:0.2s ease;--custom-font-size:16px;--custom-line-height:1.6;--custom-letter-spacing:0px;}[data-theme="light"]{--bg-primary:#f4f5f7;--bg-secondary:#ffffff;--bg-card:#ffffff;--bg-card-hover:#f8f9fa;--bg-elevated:#ffffff;--bg-input:#f0f1f3;--text-primary:#1a1d21;--text-secondary:#4a5058;--text-tertiary:#646b75;--text-inverse:#ffffff;--accent:#b8792a;--accent-hover:#a06820;--accent-muted:rgba(184,121,42,0.08);--accent-border:rgba(184,121,42,0.2);--border:#dfe1e5;--border-subtle:#eceef0;--shadow-sm:0 1px 3px rgba(0,0,0,0.06);--shadow-md:0 4px 12px rgba(0,0,0,0.08);--shadow-lg:0 8px 30px rgba(0,0,0,0.1);}[data-vision="high-contrast"]{--bg-primary:#000000;--bg-secondary:#0a0a0a;--bg-card:#111111;--bg-card-hover:#1a1a1a;--bg-elevated:#111111;--bg-input:#0a0a0a;--text-primary:#ffffff;--text-secondary:#d0d0d0;--text-tertiary:#a0a0a0;--accent:#ffcc00;--accent-hover:#ffdd44;--accent-muted:rgba(255,204,0,0.15);--accent-border:rgba(255,204,0,0.4);--border:#444444;--border-subtle:#333333;}[data-vision="high-contrast"][data-theme="light"]{--bg-primary:#ffffff;--bg-secondary:#ffffff;--bg-card:#f5f5f5;--bg-card-hover:#eeeeee;--text-primary:#000000;--text-secondary:#222222;--text-tertiary:#444444;--accent:#0050a0;--accent-hover:#003d7a;--accent-muted:rgba(0,80,160,0.1);--accent-border:rgba(0,80,160,0.3);--border:#999999;--border-subtle:#cccccc;}[data-vision="protanopia"]{--accent:#4a90d9;--accent-hover:#5ca0e9;--accent-muted:rgba(74,144,217,0.12);--accent-border:rgba(74,144,217,0.25);}[data-vision="deuteranopia"]{--accent:#d4a843;--accent-hover:#e0b855;--accent-muted:rgba(212,168,67,0.12);--accent-border:rgba(212,168,67,0.25);}[data-vision="tritanopia"]{--accent:#e85454;--accent-hover:#f06666;--accent-muted:rgba(232,84,84,0.12);--accent-border:rgba(232,84,84,0.25);}html{font-size:var(--custom-font-size);scroll-behavior:smooth;-webkit-text-size-adjust:100%;}body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);line-height:var(--custom-line-height);letter-spacing:var(--custom-letter-spacing);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;isolation:isolate;}.ub-ambient{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;opacity:0.85;}.ub-paste-fab{position:fixed;bottom:20px;right:20px;width:48px;height:48px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);box-shadow:0 6px 18px rgba(0,0,0,0.22);cursor:pointer;z-index:150;display:flex;align-items:center;justify-content:center;transition:transform 0.16s ease,color 0.16s ease,border-color 0.16s ease,box-shadow 0.16s ease;}.ub-paste-fab:hover{transform:translateY(-2px);color:var(--accent);border-color:var(--accent);}.ub-paste-fab.is-drop-ready{transform:scale(1.08);color:var(--accent);border-color:var(--accent);box-shadow:0 0 0 6px var(--accent-muted),0 6px 18px rgba(0,0,0,0.25);}.ub-paste-fab.is-hinted{animation:ub-paste-fab-pulse 1.6s ease-in-out infinite;color:var(--accent);border-color:var(--accent);}@keyframes ub-paste-fab-pulse{0%,100%{box-shadow:0 0 0 0 var(--accent-muted),0 6px 18px rgba(0,0,0,0.22);}50%{box-shadow:0 0 0 10px rgba(0,0,0,0),0 6px 22px rgba(0,0,0,0.3);}}.ub-paste-fab.is-active{color:var(--accent);border-color:var(--accent);}.ub-paste-fab__icon{display:block;}.ub-paste-panel{position:fixed;bottom:80px;right:20px;width:min(380px,calc(100vw - 32px));max-height:min(540px,calc(100vh - 120px));background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 12px 36px rgba(0,0,0,0.28);z-index:150;display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity 0.18s ease,transform 0.18s ease;}.ub-paste-panel.is-open{opacity:1;transform:translateY(0);pointer-events:auto;}.ub-paste-panel__head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--bg-card);}.ub-paste-panel__title{font-size:0.86rem;font-weight:700;color:var(--text-primary);}.ub-paste-panel__close{background:transparent;border:0;color:var(--text-tertiary);font-size:1.4rem;line-height:1;width:26px;height:26px;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;}.ub-paste-panel__close:hover{background:var(--bg-card-hover);color:var(--text-primary);}.ub-paste-dropzone{margin:12px;border:2px dashed var(--border);border-radius:var(--radius-sm);padding:18px 14px;text-align:center;color:var(--text-tertiary);transition:border-color 0.16s ease,background 0.16s ease,color 0.16s ease;cursor:default;}.ub-paste-dropzone svg{opacity:0.6;margin-bottom:6px;}.ub-paste-dropzone p{margin:0 0 2px;font-size:0.82rem;font-weight:600;color:var(--text-secondary);}.ub-paste-dropzone span{font-size:0.72rem;color:var(--text-tertiary);}.ub-paste-dropzone.is-drop-ready{border-color:var(--accent);background:var(--accent-muted);color:var(--accent);}.ub-paste-dropzone.is-drop-ready p{color:var(--accent);}.ub-paste-input{margin:0 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:8px 10px;font-family:var(--font-mono);font-size:0.82rem;resize:vertical;min-height:64px;max-height:140px;transition:border-color var(--transition);}.ub-paste-input:focus{outline:none;border-color:var(--accent);}.ub-paste-input::placeholder{color:var(--text-tertiary);}.ub-paste-result{padding:10px 12px 14px;overflow-y:auto;flex:1;}.ub-paste-empty{color:var(--text-tertiary);font-size:0.78rem;line-height:1.5;text-align:center;padding:14px 8px;}.ub-paste-result__head{display:flex;align-items:center;gap:8px;margin-bottom:8px;}.ub-paste-swatch{display:inline-block;width:18px;height:18px;border-radius:4px;border:1px solid var(--border);flex-shrink:0;}.ub-paste-result__type{flex:1;font-size:0.72rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--text-secondary);}.ub-paste-result__suggest-label{font-size:0.68rem;color:var(--text-tertiary);font-weight:600;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:6px;}.ub-paste-result__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;}.ub-paste-result__tool{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-primary);text-decoration:none;font-size:0.84rem;font-weight:500;transition:background 0.14s,color 0.14s;}.ub-paste-result__tool:hover,.ub-paste-result__tool:focus-visible{background:var(--accent);color:#fff;outline:none;}.ub-paste-result__arrow{opacity:0.5;transition:transform 0.14s,opacity 0.14s;}.ub-paste-result__tool:hover .ub-paste-result__arrow{opacity:1;transform:translateX(3px);}@media (max-width:520px){.ub-paste-panel{bottom:80px;right:12px;left:12px;width:auto;}}.ub-wb-dock{position:fixed;bottom:20px;left:20px;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--text-tertiary);background:var(--bg-card);color:var(--text-primary);box-shadow:0 6px 18px rgba(0,0,0,0.22);cursor:pointer;z-index:150;display:flex;align-items:center;justify-content:center;transition:transform 0.16s ease,color 0.16s ease,border-color 0.16s ease;}.ub-wb-dock:hover{transform:translateY(-2px);color:var(--accent);border-color:var(--accent);}.ub-wb-dock:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-wb-dock__icon{display:block;}.ub-wb-dock__count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--border);color:var(--text-tertiary);font-size:0.68rem;font-weight:700;line-height:18px;text-align:center;transition:background 0.16s,color 0.16s;}.ub-wb-dock.has-pins .ub-wb-dock__count{background:var(--accent);color:#fff;}.ub-wb-drawer{position:fixed;top:0;left:0;bottom:0;width:340px;max-width:90vw;background:var(--bg-secondary);border-right:1px solid var(--border);z-index:999;transform:translateX(-100%);transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);display:flex;flex-direction:column;overflow:hidden;box-shadow:4px 0 24px rgba(0,0,0,0.25);}.ub-wb-drawer.is-open{transform:translateX(0);}.ub-wb-drawer__head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border);}.ub-wb-drawer__title{margin:0;font-size:1rem;font-weight:700;color:var(--text-primary);}.ub-wb-drawer__close{background:transparent;border:0;color:var(--text-tertiary);font-size:1.6rem;line-height:1;width:28px;height:28px;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;}.ub-wb-drawer__close:hover{background:var(--bg-hover);color:var(--text-primary);}.ub-wb-drawer__body{flex:1;overflow-y:auto;padding:12px 12px;}.ub-wb-drawer__foot{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--border);background:var(--bg-primary);}.ub-wb-drawer__share,.ub-wb-drawer__clear{flex:1;padding:8px 10px;font-size:0.8rem;font-weight:600;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:background 0.14s,color 0.14s,border-color 0.14s;}.ub-wb-drawer__share:hover{background:var(--accent);color:#fff;border-color:var(--accent);}.ub-wb-drawer__clear:hover{background:#c0392b;color:#fff;border-color:#c0392b;}.ub-wb-item{display:flex;align-items:center;gap:6px;padding:6px;border-radius:var(--radius-sm);transition:background 0.14s;}.ub-wb-item:hover{background:var(--bg-hover);}.ub-wb-item__link{flex:1;display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--text-primary);padding:4px 6px;min-width:0;}.ub-wb-item__title{font-size:0.86rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.ub-wb-item__cat{font-size:0.7rem;color:var(--text-tertiary);}.ub-wb-item__unpin{background:transparent;border:0;color:var(--text-tertiary);font-size:1.3rem;line-height:1;width:26px;height:26px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}.ub-wb-item__unpin:hover{background:var(--bg-primary);color:#c0392b;}.ub-wb-empty{text-align:center;padding:32px 16px;color:var(--text-tertiary);}.ub-wb-empty__icon{font-size:2rem;margin-bottom:12px;opacity:0.6;}.ub-wb-empty__msg{margin:0 0 6px;font-weight:600;color:var(--text-secondary);}.ub-wb-empty__hint{margin:0;font-size:0.78rem;}.ub-pin-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:0.8rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.ub-pin-btn:hover{color:var(--accent);border-color:var(--accent);}.ub-pin-btn.is-pinned{background:var(--accent);color:#fff;border-color:var(--accent);}.ub-pin-btn__icon{width:14px;height:14px;}.ub-share{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;}.ub-share__btn{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:0.75rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition);line-height:1;}.ub-share__btn svg{width:13px;height:13px;flex-shrink:0;}.ub-share__btn:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-muted);}.ub-share__btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-share__btn.is-copied{color:#16a34a;border-color:#16a34a;}@media (max-width:600px){.ub-share__btn span:not(.sr-only){display:none;}.ub-share__btn{padding:7px 9px;}}.ub-wb-toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%,8px);background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);box-shadow:0 10px 30px rgba(0,0,0,0.3);padding:10px 16px;border-radius:var(--radius);z-index:1000;font-size:0.86rem;opacity:0;pointer-events:none;transition:opacity 0.18s,transform 0.18s;max-width:calc(100vw - 32px);}.ub-wb-toast.is-visible{opacity:1;transform:translate(-50%,0);pointer-events:auto;}.ub-wb-toast.is-prompt{padding:10px 14px;}.ub-wb-toast__btn{margin-left:6px;padding:4px 10px;background:var(--accent);color:#fff;border:0;border-radius:var(--radius-sm);font-size:0.76rem;font-weight:600;cursor:pointer;}.ub-wb-toast__btn--ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border);}img{max-width:100%;height:auto;display:block;}a{color:var(--accent);text-decoration:none;transition:color var(--transition);}a:hover{color:var(--accent-hover);}.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;}.skip-link{position:absolute;top:-100%;left:50%;transform:translateX(-50%);background:var(--accent);color:var(--text-inverse);padding:8px 20px;border-radius:var(--radius-sm);font-weight:600;z-index:9999;transition:top 0.2s;}.skip-link:focus{top:10px;color:var(--text-inverse);}.ub-header{position:sticky;top:0;z-index:100;background:var(--bg-secondary);border-bottom:1px solid var(--border);}.ub-header__inner{max-width:var(--max-width);margin:0 auto;padding:0 var(--gutter);height:var(--header-height);display:flex;align-items:center;gap:12px;}.ub-header__logo{display:flex;align-items:center;gap:10px;color:var(--text-primary);flex-shrink:0;}.ub-header__logo:hover{color:var(--accent);}.ub-header__logo-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-sm);color:var(--accent);}.ub-header__logo-text{display:flex;align-items:baseline;gap:6px;}.ub-header__logo-name{font-weight:700;font-size:1.05rem;letter-spacing:-0.01em;}.ub-header__logo-version{font-family:var(--font-mono);font-size:0.65rem;color:var(--accent);background:var(--accent-muted);padding:1px 5px;border-radius:3px;font-weight:500;}.ub-header__search{position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center;}.ub-header__search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none;z-index:1;}.ub-header__search-input{width:100%;height:38px;padding:0 120px 0 38px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:0.875rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition);}.ub-header__search-input::placeholder{color:var(--text-tertiary);}.ub-header__search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);}.ub-header__search-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);height:30px;padding:0 12px;display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#0c0e11;border:none;border-radius:calc(var(--radius-md) - 2px);font-family:var(--font-body);font-size:0.8rem;font-weight:700;cursor:pointer;transition:background var(--transition);}.ub-header__search-btn:hover{background:var(--accent-hover);}.ub-header__search-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-header__search-btn svg{flex-shrink:0;}.ub-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:360px;overflow-y:auto;z-index:200;}.ub-search-results[hidden]{display:none;}.ub-search-result{display:flex;align-items:center;gap:12px;padding:10px 14px;color:var(--text-primary);border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background var(--transition);}.ub-search-result:last-child{border-bottom:none;}.ub-search-result:hover,.ub-search-result[aria-selected="true"]{background:var(--accent-muted);}.ub-search-result__name{font-weight:500;font-size:0.875rem;}.ub-search-result__cat{font-size:0.75rem;color:var(--text-tertiary);margin-left:auto;flex-shrink:0;}.ub-header__actions{display:flex;align-items:center;gap:6px;flex-shrink:0;}.ub-header__action-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:transparent;border:1.5px solid var(--text-tertiary);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition);}.ub-header__action-btn:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);}.ub-header__action-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}[data-theme="dark"] .ub-icon-moon{display:none;}[data-theme="light"] .ub-icon-sun{display:none;}.ub-header__menu-toggle{display:none;}.ub-category-dropdown__trigger{display:inline-flex;align-items:center;gap:8px;padding:0 14px;height:38px;border:1.5px solid var(--text-tertiary);background:var(--bg-card);color:var(--text-primary);font-size:0.82rem;font-weight:600;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);flex-shrink:0;white-space:nowrap;}.ub-category-dropdown__trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-category-dropdown__trigger svg{flex-shrink:0;opacity:0.8;}.ub-category-dropdown__trigger:hover{border-color:var(--accent);color:var(--accent);}.ub-category-dropdown__trigger:hover svg{opacity:1;}.ub-category-dropdown__trigger[aria-expanded="true"]{border-color:var(--accent);color:var(--accent);}.ub-category-dropdown__chevron{transition:transform 0.18s ease;width:12px;height:12px;opacity:0.7;}.ub-category-dropdown__trigger[aria-expanded="true"] .ub-category-dropdown__chevron{transform:rotate(180deg);}.ub-category-dropdown__panel{position:absolute;top:var(--header-height);left:0;right:0;background:var(--bg-secondary);border-bottom:1px solid var(--border);box-shadow:0 10px 24px rgba(0,0,0,0.18);z-index:20;opacity:0;transform:translateY(-6px);transition:opacity 0.18s ease,transform 0.18s ease;pointer-events:none;}.ub-category-dropdown__panel.is-open{opacity:1;transform:translateY(0);pointer-events:auto;}.ub-category-dropdown__panel[hidden]{display:block;}.ub-category-dropdown__panel[hidden]:not(.is-open){opacity:0;transform:translateY(-6px);pointer-events:none;}.ub-category-dropdown__grid{max-width:var(--max-width);margin:0 auto;padding:14px var(--gutter);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;}.ub-category-dropdown__item{display:flex;align-items:center;gap:10px;padding:10px 12px;color:var(--text-secondary);font-size:0.85rem;font-weight:500;border-radius:var(--radius-md);transition:all var(--transition);border:1px solid transparent;}.ub-category-dropdown__item svg{flex-shrink:0;opacity:0.6;width:18px;height:18px;}.ub-category-dropdown__item:hover{color:var(--text-primary);background:var(--accent-muted);border-color:var(--accent-border);}.ub-category-dropdown__item:hover svg{opacity:1;}.ub-category-dropdown__item.is-active{color:var(--accent);background:var(--accent-muted);border-color:var(--accent);}.ub-category-dropdown__item.is-active svg{opacity:1;color:var(--accent);}@media (max-width:720px){.ub-category-dropdown__grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px var(--gutter);}}@media (max-width:420px){.ub-category-dropdown__grid{grid-template-columns:1fr;}.ub-category-dropdown__trigger span:not(.sr-only){max-width:180px;overflow:hidden;text-overflow:ellipsis;}}.ub-panel-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:998;opacity:0;transition:opacity 0.25s ease;pointer-events:none;}.ub-panel-overlay.is-visible{opacity:1;pointer-events:auto;}.ub-panel-overlay[hidden]{display:block;}.ub-panel{position:fixed;top:0;right:0;bottom:0;width:340px;max-width:90vw;background:var(--bg-secondary);border-left:1px solid var(--border);z-index:999;transform:translateX(100%);transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);display:flex;flex-direction:column;overflow:hidden;}.ub-panel.is-open{transform:translateX(0);}.ub-panel__header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border);flex-shrink:0;}.ub-panel__title{font-size:1rem;font-weight:700;}.ub-panel__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1.5px solid var(--text-tertiary);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition);}.ub-panel__close:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);}.ub-panel__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-panel__close:hover{background:var(--accent-muted);color:var(--accent);border-color:var(--accent-border);}.ub-panel__body{flex:1;overflow-y:auto;padding:20px;}.ub-panel__section{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--border-subtle);}.ub-panel__section:last-child{border-bottom:none;margin-bottom:0;}.ub-panel__label{font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-tertiary);margin-bottom:12px;}.ub-panel__options{display:flex;gap:6px;}.ub-panel__options--col{flex-direction:column;}.ub-panel__option{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;background:var(--bg-card);border:1.5px solid var(--text-tertiary);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);font-size:0.8rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.ub-panel__option:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);}.ub-panel__option:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-panel__option[aria-checked="true"]{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);font-weight:700;}.ub-panel__option--wide{justify-content:flex-start;}.ub-panel__option-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;border:2px solid var(--border);}.ub-panel__option[aria-checked="true"] .ub-panel__option-dot{border-color:var(--accent);}.ub-panel__color-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}.ub-panel__color-item label{display:block;font-size:0.75rem;color:var(--text-secondary);margin-bottom:6px;font-weight:500;}.ub-panel__color-wrap{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);}.ub-panel__color-wrap input[type="color"]{width:28px;height:28px;border:none;border-radius:4px;cursor:pointer;padding:0;background:none;-webkit-appearance:none;}.ub-panel__color-wrap input[type="color"]::-webkit-color-swatch-wrapper{padding:0;}.ub-panel__color-wrap input[type="color"]::-webkit-color-swatch{border:1px solid var(--border);border-radius:4px;}.ub-panel__color-hex{font-family:var(--font-mono);font-size:0.72rem;color:var(--text-tertiary);}.ub-panel__reset-colors{display:block;width:100%;margin-top:12px;padding:10px;background:transparent;border:1.5px solid var(--text-tertiary);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);font-size:0.82rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.ub-panel__reset-colors:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);}.ub-panel__reset-colors:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-panel__reset-colors:hover{background:var(--accent-muted);border-color:var(--accent-border);color:var(--accent);}.ub-panel__slider-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;}.ub-panel__slider-row label{font-size:0.78rem;color:var(--text-secondary);font-weight:500;flex-shrink:0;min-width:90px;}.ub-panel__slider-wrap{display:flex;align-items:center;gap:8px;flex:1;}.ub-panel__slider-wrap input[type="range"]{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--border);border-radius:2px;outline:none;}.ub-panel__slider-wrap input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--accent);border-radius:50%;cursor:pointer;border:2px solid var(--bg-secondary);}.ub-panel__slider-wrap input[type="range"]::-moz-range-thumb{width:16px;height:16px;background:var(--accent);border-radius:50%;cursor:pointer;border:2px solid var(--bg-secondary);}.ub-panel__slider-val{font-family:var(--font-mono);font-size:0.72rem;color:var(--text-tertiary);min-width:36px;text-align:right;}.ub-panel__hint{font-size:11px;color:var(--text-tertiary);margin:6px 2px 0;}.ub-page{max-width:var(--max-width);margin:0 auto;padding:0 var(--gutter);}.ub-hero{padding:48px 0 40px;text-align:center;}.ub-hero__title{font-size:2.2rem;font-weight:700;letter-spacing:-0.025em;line-height:1.2;margin-bottom:10px;}.ub-hero__title-accent{color:var(--accent);}.ub-hero__sub{font-size:1.05rem;color:var(--text-secondary);max-width:520px;margin:0 auto 28px;line-height:1.5;}.ub-hero__search{position:relative;max-width:520px;margin:0 auto;}.ub-hero__search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none;}.ub-hero__search-input{width:100%;height:50px;padding:0 20px 0 46px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);font-family:var(--font-body);font-size:1rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition);}.ub-hero__search-input::placeholder{color:var(--text-tertiary);}.ub-hero__search-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-muted);}.ub-hero__badges{display:flex;justify-content:center;gap:16px;margin-top:20px;flex-wrap:wrap;}.ub-hero__badge{display:flex;align-items:center;gap:6px;font-size:0.78rem;color:var(--text-tertiary);font-weight:500;}.ub-hero__badge svg{color:var(--accent);opacity:0.7;flex-shrink:0;}.ub-cinema{position:relative;width:100%;margin-bottom:40px;overflow:hidden;}.ub-cinema__track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;outline:none;}.ub-cinema__track::-webkit-scrollbar{display:none;}.ub-cinema__page{flex:0 0 100%;min-width:100%;height:clamp(560px,80vh,780px);scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:center;justify-content:center;padding:24px var(--gutter) 56px;background:radial-gradient(ellipse at center,var(--cat-bg) 0%,transparent 65%);position:relative;}.ub-cinema__page-inner{max-width:900px;width:100%;text-align:center;position:relative;}.ub-cinema__head{margin-bottom:14px;}.ub-cinema__index{display:inline-block;font-family:var(--font-mono);font-size:0.7rem;font-weight:600;letter-spacing:0.15em;color:var(--cat-color);opacity:0.7;margin-bottom:12px;}.ub-cinema__icon{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:14px;background:color-mix(in srgb,var(--cat-color) 12%,transparent);border:1px solid color-mix(in srgb,var(--cat-color) 28%,transparent);color:var(--cat-color);margin-bottom:12px;}.ub-cinema__icon svg{width:26px;height:26px;}.ub-cinema__title{font-size:2.4rem;font-weight:700;letter-spacing:-0.025em;line-height:1.1;margin-bottom:8px;color:var(--text-primary);}.ub-cinema__desc{font-size:0.98rem;color:var(--text-secondary);max-width:560px;margin:0 auto 10px;line-height:1.5;}.ub-cinema__meta{display:inline-flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;font-size:0.85rem;color:var(--text-tertiary);}.ub-cinema__count strong{color:var(--cat-color);font-family:var(--font-mono);font-weight:700;margin-right:4px;}.ub-cinema__see-all{color:var(--cat-color);font-weight:600;text-decoration:none;border-bottom:1px solid transparent;transition:border-color var(--transition);}.ub-cinema__see-all:hover{border-bottom-color:var(--cat-color);}.ub-cinema__map{margin:14px 0 0;position:relative;}.ub-cinema__svg{display:block;width:100%;height:auto;max-height:min(44vh,420px);}.ub-cinema__map-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity 0.2s ease;}.ub-cinema__page[data-loading="true"] .ub-cinema__map-loading{opacity:1;}.ub-cinema__map-loading::before{content:"";width:18px;height:18px;border-radius:50%;border:2px solid color-mix(in srgb,var(--cat-color) 30%,transparent);border-top-color:var(--cat-color);animation:ub-cinema-spin 0.8s linear infinite;}@keyframes ub-cinema-spin{to{transform:rotate(360deg);}}.ub-cinema__star{cursor:pointer;outline:none;}.ub-cinema__star circle{transition:opacity 0.18s ease,stroke-width 0.18s ease;stroke:transparent;stroke-width:0;}.ub-cinema__star:hover circle,.ub-cinema__star:focus circle,.ub-cinema__star:focus-visible circle{opacity:1;stroke:var(--cat-color);stroke-width:2;}.ub-cinema__star:focus-visible circle{stroke:#fff;}.ub-cinema__star[data-trending="true"] circle{animation:ub-cinema-twinkle 3.6s ease-in-out infinite;}@keyframes ub-cinema-twinkle{0%,100%{opacity:0.75;}50%{opacity:1;}}@media (prefers-reduced-motion:reduce){.ub-cinema__star[data-trending="true"] circle{animation:none;}}.ub-cinema__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:1.5px solid var(--text-tertiary);border-radius:50%;color:var(--text-primary);cursor:pointer;transition:all var(--transition);box-shadow:0 4px 12px rgba(0,0,0,0.15);}.ub-cinema__arrow:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-muted);}.ub-cinema__arrow:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-cinema__arrow[hidden]{display:none;}.ub-cinema__arrow--prev{left:18px;}.ub-cinema__arrow--next{right:18px;}.ub-cinema__pagination{display:flex;justify-content:center;align-items:center;gap:8px;padding:12px 16px 0;flex-wrap:wrap;}.ub-cinema__pagination-dot{position:relative;display:block;width:12px;height:12px;border-radius:50%;background:var(--cat-color);opacity:0.35;transition:opacity 0.18s ease,width 0.18s ease;}.ub-cinema__pagination-dot:hover,.ub-cinema__pagination-dot.is-active{opacity:1;width:26px;border-radius:6px;}.ub-cinema__pagination-label{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 10px;font-size:0.72rem;font-weight:600;color:var(--text-primary);white-space:nowrap;opacity:0;transition:opacity 0.18s ease,transform 0.18s ease;pointer-events:none;}.ub-cinema__pagination-dot:hover .ub-cinema__pagination-label{opacity:1;transform:translate(-50%,0);}.ub-cinema__data{display:none;}@media (max-width:900px){.ub-cinema__page{height:clamp(500px,75vh,680px);}.ub-cinema__title{font-size:1.8rem;}.ub-cinema__desc{font-size:0.9rem;}.ub-cinema__svg{max-height:38vh;}.ub-cinema__arrow{width:38px;height:38px;}}@media (max-width:560px){.ub-cinema__page{height:clamp(440px,70vh,600px);padding-bottom:40px;}.ub-cinema__title{font-size:1.4rem;}.ub-cinema__icon{width:44px;height:44px;}.ub-cinema__arrow--prev{left:8px;}.ub-cinema__arrow--next{right:8px;}.ub-cinema__pagination{gap:6px;padding:8px 12px 0;}.ub-cinema__pagination-dot{width:8px;height:8px;}.ub-cinema__pagination-dot.is-active{width:18px;}}@media (prefers-reduced-motion:reduce){.ub-cinema__track{scroll-behavior:auto;}.ub-cinema__map-loading::before{animation:none;}}.ub-section{padding:36px 0;}.ub-section__header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;gap:12px;}.ub-section__title{font-size:1.15rem;font-weight:700;letter-spacing:-0.01em;}.ub-section__action{font-size:0.8rem;font-weight:500;color:var(--accent);}.ub-tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;}.ub-tool-card{display:flex;flex-direction:column;padding:16px 18px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);transition:all var(--transition);cursor:pointer;color:var(--text-primary);position:relative;}.ub-tool-card:hover{background:var(--bg-card-hover);border-color:var(--accent-border);box-shadow:var(--shadow-sm);transform:translateY(-1px);}.ub-tool-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px;}.ub-tool-card__title{font-size:0.9rem;font-weight:600;line-height:1.3;}.ub-tool-card__badge{font-family:var(--font-mono);font-size:0.65rem;color:var(--accent);background:var(--accent-muted);padding:2px 7px;border-radius:4px;white-space:nowrap;flex-shrink:0;font-weight:500;}.ub-tool-card__cat{font-size:0.75rem;color:var(--text-tertiary);margin-top:auto;padding-top:8px;}.ub-tool-card__bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:8px;}.ub-tool-card__bottom .ub-tool-card__cat{padding-top:0;margin-top:0;}.ub-tool-card__views{font-family:var(--font-mono);font-size:0.62rem;font-weight:600;color:var(--text-tertiary);background:var(--bg-input);padding:2px 7px;border-radius:4px;white-space:nowrap;}.ub-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;}.ub-cat-card{display:flex;align-items:center;gap:14px;padding:18px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);transition:all var(--transition);color:var(--text-primary);}.ub-cat-card:hover{background:var(--bg-card-hover);border-color:var(--accent-border);box-shadow:var(--shadow-sm);transform:translateY(-1px);}.ub-cat-card__icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-sm);color:var(--accent);flex-shrink:0;}.ub-cat-card__text{min-width:0;}.ub-cat-card__name{font-size:0.9rem;font-weight:600;}.ub-cat-card__desc{font-size:0.75rem;color:var(--text-tertiary);line-height:1.4;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}.ub-empty{text-align:center;padding:32px 20px;background:var(--bg-card);border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--text-tertiary);font-size:0.875rem;}.ub-empty__icon{display:block;margin:0 auto 10px;opacity:0.3;}.ub-empty--spaced{margin:60px 0;}.ub-empty--results{margin:20px 0 40px;}.ub-category-search{max-width:520px;margin-bottom:16px;position:relative;}.ub-category-search__icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none;}.ub-category-search__input{width:100%;height:44px;padding:0 14px 0 40px;background:var(--bg-input);border:1.5px solid var(--text-tertiary);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:0.88rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition);}.ub-category-search__input:hover{border-color:var(--accent);}.ub-category-search__input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);}.ub-search-notice{padding:12px 16px;margin-bottom:20px;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);font-size:0.9rem;}.ub-search-notice code{color:var(--accent);font-family:var(--font-mono);}.ub-hero__search--page{max-width:600px;margin-bottom:32px;}.ub-section--no-top-pad{padding-top:0;}.ub-privacy-bar{padding:28px 0;}.ub-privacy-bar__inner{display:flex;align-items:center;gap:20px;padding:20px 24px;background:var(--bg-card);border:1px solid var(--accent-border);border-radius:var(--radius-md);}.ub-privacy-bar__icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--accent-muted);border-radius:var(--radius-sm);color:var(--accent);flex-shrink:0;}.ub-privacy-bar__text{flex:1;}.ub-privacy-bar__title{font-size:0.95rem;font-weight:600;margin-bottom:2px;}.ub-privacy-bar__desc{font-size:0.8rem;color:var(--text-secondary);line-height:1.5;}.ub-category-hero{padding:36px 0 28px;border-bottom:1px solid var(--border-subtle);margin-bottom:8px;}.ub-category-hero__top{display:flex;align-items:center;gap:16px;margin-bottom:10px;}.ub-category-hero__icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-md);color:var(--accent);flex-shrink:0;}.ub-category-hero__icon svg{width:26px;height:26px;}.ub-category-hero__title{font-size:1.6rem;font-weight:700;letter-spacing:-0.02em;}.ub-category-hero__desc{font-size:0.95rem;color:var(--text-secondary);max-width:600px;line-height:1.5;}.ub-category-hero__count{font-size:0.78rem;color:var(--text-tertiary);margin-top:8px;font-weight:500;}.ub-category-hero__count strong{color:var(--accent);font-weight:600;}.ub-featured-banner{display:flex;align-items:center;gap:16px;padding:18px 22px;margin-bottom:20px;background:var(--bg-card);border:1px solid var(--accent-border);border-radius:var(--radius-md);color:var(--text-primary);transition:all var(--transition);cursor:pointer;}.ub-featured-banner:hover{background:var(--accent-muted);border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-sm);color:var(--text-primary);}.ub-featured-banner__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-sm);color:var(--accent);flex-shrink:0;}.ub-featured-banner__text{flex:1;min-width:0;}.ub-featured-banner__title{font-size:1rem;font-weight:700;margin-bottom:3px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}.ub-featured-banner__count{font-family:var(--font-mono);font-size:0.68rem;font-weight:600;color:var(--accent);background:var(--accent-muted);padding:2px 8px;border-radius:4px;border:1px solid var(--accent-border);}.ub-featured-banner__desc{font-size:0.8rem;color:var(--text-secondary);line-height:1.4;}.ub-featured-banner__arrow{color:var(--accent);flex-shrink:0;opacity:0.5;transition:opacity var(--transition),transform var(--transition);}.ub-featured-banner:hover .ub-featured-banner__arrow{opacity:1;transform:translateX(3px);}.ub-filter-bar{display:flex;align-items:center;gap:8px;padding:16px 0;flex-wrap:wrap;}.ub-filter-bar--compact{padding-bottom:8px;padding-top:8px;margin-bottom:8px;}.ub-filter-bar__label{font-size:0.75rem;color:var(--text-tertiary);font-weight:500;margin-right:4px;}.ub-filter-chip{min-height:32px;padding:7px 16px;background:var(--bg-card);border:1.5px solid var(--text-tertiary);border-radius:20px;color:var(--text-primary);font-family:var(--font-body);font-size:0.8rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.ub-filter-chip:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);}.ub-filter-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-filter-chip.is-active{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);font-weight:700;}.ub-footer{border-top:1px solid var(--border);background:var(--bg-secondary);margin-top:40px;padding:40px 0 24px;}.ub-footer__inner{max-width:var(--max-width);margin:0 auto;padding:0 var(--gutter);}.ub-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:32px 40px;padding-bottom:28px;border-bottom:1px solid var(--border-subtle);align-items:start;}.ub-footer__brand{max-width:320px;}.ub-footer__name{font-size:1rem;font-weight:700;display:block;margin-bottom:6px;}.ub-footer__tagline{font-size:0.8rem;color:var(--text-tertiary);line-height:1.5;max-width:300px;}.ub-footer__heading{font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-tertiary);margin-bottom:12px;}.ub-footer__list{list-style:none;display:flex;flex-direction:column;gap:6px;}.ub-footer__list a{font-size:0.8rem;color:var(--text-secondary);transition:color var(--transition);}.ub-footer__list a:hover{color:var(--accent);}.ub-footer__bottom{padding-top:20px;text-align:center;}.ub-footer__bottom p{font-size:0.72rem;color:var(--text-tertiary);}@media (max-width:900px){.ub-footer__grid{grid-template-columns:repeat(2,1fr);gap:28px;}.ub-footer__brand{grid-column:1 / -1;max-width:none;}}@media (max-width:700px){.ub-header__menu-toggle{display:none;}.ub-hero{padding:32px 0 28px;}.ub-hero__title{font-size:1.65rem;}.ub-hero__sub{font-size:0.95rem;}.ub-tool-grid{grid-template-columns:1fr;}.ub-cat-grid{grid-template-columns:1fr 1fr;}.ub-footer__grid{grid-template-columns:1fr;gap:24px;}.ub-privacy-bar__inner{flex-direction:column;text-align:center;}.ub-category-hero__top{flex-direction:column;align-items:flex-start;gap:10px;}}@media (max-width:900px){.ub-header__logo-text{display:none;}.ub-category-dropdown__trigger-label{display:none;}.ub-category-dropdown__trigger{padding:0 10px;}.ub-header__search-input{padding-right:100px;}}@media (max-width:640px){.ub-header__search-btn-text{display:none;}.ub-header__search-btn{padding:0 8px;}.ub-header__search-input{padding-right:44px;}}@media (max-width:440px){.ub-header__logo-version{display:none;}.ub-cat-grid{grid-template-columns:1fr;}.ub-hero__badges{flex-direction:column;align-items:center;gap:8px;}}@media (prefers-reduced-motion:no-preference){.ub-tool-card,.ub-cat-card{animation:ub-fadeUp 0.35s ease both;}@keyframes ub-fadeUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}.ub-cat-grid .ub-cat-card:nth-child(1){animation-delay:0.02s;}.ub-cat-grid .ub-cat-card:nth-child(2){animation-delay:0.04s;}.ub-cat-grid .ub-cat-card:nth-child(3){animation-delay:0.06s;}.ub-cat-grid .ub-cat-card:nth-child(4){animation-delay:0.08s;}.ub-cat-grid .ub-cat-card:nth-child(5){animation-delay:0.10s;}.ub-cat-grid .ub-cat-card:nth-child(6){animation-delay:0.12s;}.ub-cat-grid .ub-cat-card:nth-child(7){animation-delay:0.14s;}.ub-cat-grid .ub-cat-card:nth-child(8){animation-delay:0.16s;}.ub-cat-grid .ub-cat-card:nth-child(9){animation-delay:0.18s;}.ub-cat-grid .ub-cat-card:nth-child(10){animation-delay:0.20s;}.ub-cat-grid .ub-cat-card:nth-child(11){animation-delay:0.22s;}.ub-cat-grid .ub-cat-card:nth-child(12){animation-delay:0.24s;}}.ub-page-header{padding:40px 0 32px;border-bottom:1px solid var(--border-subtle);margin-bottom:32px;}.ub-page-header__title{font-size:1.8rem;font-weight:700;letter-spacing:-0.02em;line-height:1.2;margin-bottom:8px;}.ub-page-header__sub{font-size:0.95rem;color:var(--text-secondary);line-height:1.5;max-width:600px;}.ub-prose{max-width:760px;}.ub-prose h2{font-size:1.2rem;font-weight:700;letter-spacing:-0.01em;margin:36px 0 14px;padding-top:8px;}.ub-prose h2:first-child{margin-top:0;}.ub-prose h3{font-size:1rem;font-weight:600;margin:24px 0 10px;}.ub-prose p{font-size:0.9rem;color:var(--text-secondary);line-height:1.75;margin-bottom:14px;}.ub-prose p:last-child{margin-bottom:0;}.ub-prose strong{color:var(--text-primary);font-weight:600;}.ub-prose a{color:var(--accent);}.ub-prose a:hover{text-decoration:underline;}.ub-prose ul,.ub-prose ol{margin:10px 0 16px 20px;font-size:0.9rem;color:var(--text-secondary);line-height:1.75;}.ub-prose li{margin-bottom:6px;}.ub-prose li::marker{color:var(--accent);}.ub-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:24px 0 32px;}.ub-info-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px;transition:border-color var(--transition);}.ub-info-card:hover{border-color:var(--accent-border);}.ub-info-card__icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-sm);color:var(--accent);margin-bottom:12px;}.ub-info-card__title{font-size:0.88rem;font-weight:600;margin-bottom:4px;}.ub-info-card__desc{font-size:0.8rem;color:var(--text-secondary);line-height:1.5;}.ub-stats-row{display:flex;gap:0;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;margin:24px 0 32px;}.ub-stat{flex:1;padding:20px;text-align:center;border-right:1px solid var(--border-subtle);}.ub-stat:last-child{border-right:none;}.ub-stat__value{font-family:var(--font-mono);font-size:1.6rem;font-weight:700;color:var(--accent);line-height:1.2;}.ub-stat__label{font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-tertiary);margin-top:4px;}.ub-tech-list{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 24px;}.ub-tech-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;font-family:var(--font-mono);font-size:0.78rem;font-weight:500;color:var(--text-secondary);}.ub-tech-tag__dot{width:6px;height:6px;border-radius:50%;background:var(--accent);}.ub-privacy-section{margin-bottom:32px;padding-bottom:28px;border-bottom:1px solid var(--border-subtle);}.ub-privacy-section:last-child{border-bottom:none;margin-bottom:0;}.ub-privacy-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-sm);font-size:0.82rem;font-weight:600;color:var(--accent);margin-bottom:20px;}.ub-privacy-badge svg{flex-shrink:0;}.ub-privacy-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:0.85rem;}.ub-privacy-table th,.ub-privacy-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border-subtle);}.ub-privacy-table th{font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-tertiary);background:var(--bg-card);}.ub-privacy-table td{color:var(--text-secondary);}.ub-privacy-table tr:last-child td{border-bottom:none;}.ub-changelog{position:relative;padding-left:28px;}.ub-changelog::before{content:'';position:absolute;left:7px;top:0;bottom:0;width:2px;background:var(--border);}.ub-changelog-entry{position:relative;margin-bottom:36px;padding-bottom:32px;border-bottom:1px solid var(--border-subtle);}.ub-changelog-entry:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none;}.ub-changelog-entry__dot{position:absolute;left:-24px;top:4px;width:14px;height:14px;background:var(--bg-primary);border:2px solid var(--accent);border-radius:50%;z-index:1;}.ub-changelog-entry--major .ub-changelog-entry__dot{background:var(--accent);}.ub-changelog-entry__header{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}.ub-changelog-entry__version{font-family:var(--font-mono);font-size:1.1rem;font-weight:700;color:var(--text-primary);}.ub-changelog-entry__date{font-size:0.78rem;color:var(--text-tertiary);font-weight:500;}.ub-changelog-entry__tag{font-size:0.65rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;padding:2px 8px;border-radius:3px;}.ub-changelog-entry__tag--major{background:var(--accent-muted);color:var(--accent);border:1px solid var(--accent-border);}.ub-changelog-entry__tag--minor{background:var(--bg-card);color:var(--text-tertiary);border:1px solid var(--border);}.ub-changelog-entry__tag--patch{background:var(--bg-card);color:var(--text-tertiary);border:1px solid var(--border);}.ub-changelog-entry__title{font-size:1rem;font-weight:600;margin-bottom:8px;}.ub-changelog-entry__body{font-size:0.85rem;color:var(--text-secondary);line-height:1.7;}.ub-changelog-entry__body p{margin-bottom:10px;}.ub-changelog-entry__body p:last-child{margin-bottom:0;}.ub-changelog-changes{list-style:none;margin:12px 0 0;padding:0;}.ub-changelog-changes li{position:relative;padding:4px 0 4px 20px;font-size:0.84rem;color:var(--text-secondary);line-height:1.6;}.ub-changelog-changes li::before{content:'';position:absolute;left:0;top:12px;width:8px;height:8px;border-radius:50%;}.ub-changelog-changes .cl-added::before{background:#3ddc84;}.ub-changelog-changes .cl-changed::before{background:var(--accent);}.ub-changelog-changes .cl-fixed::before{background:#4a90d9;}.ub-changelog-changes .cl-removed::before{background:#e85454;}.ub-changelog-legend{display:flex;gap:18px;margin-bottom:28px;flex-wrap:wrap;}.ub-changelog-legend__item{display:flex;align-items:center;gap:6px;font-size:0.75rem;color:var(--text-tertiary);font-weight:500;}.ub-changelog-legend__dot{width:8px;height:8px;border-radius:50%;}.ub-form-alert{border-left:3px solid var(--border);padding-left:14px;}.ub-form-alert h2{margin-top:0;}.ub-form-alert--success{border-left-color:#16a34a;}html[data-theme="dark"] .ub-form-alert--success{border-left-color:#22c55e;}.ub-form-alert--error{border-left-color:#dc2626;}html[data-theme="dark"] .ub-form-alert--error{border-left-color:#ef4444;}.ub-contact-form{display:grid;gap:14px;margin-top:16px;}.ub-contact-form__honeypot{position:absolute;left:-9999px;}.ub-contact-form__row{display:grid;gap:12px;}.ub-contact-form__row--2{grid-template-columns:1fr 1fr;}.ub-contact-form__row--1-2{grid-template-columns:1fr 2fr;}.ub-contact-form .ub-input-group{display:flex;flex-direction:column;gap:6px;margin-bottom:0;}.ub-contact-form .ub-input-group__label{display:block;margin-bottom:0;font-size:0.82rem;font-weight:600;color:var(--text-primary);}.ub-contact-form .ub-input-group input,.ub-contact-form .ub-input-group select,.ub-contact-form .ub-input-group textarea{width:100%;padding:12px 14px;background:var(--bg-input);border:1.5px solid var(--text-tertiary);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);font-size:0.95rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition);}.ub-contact-form .ub-input-group input{height:44px;}.ub-contact-form .ub-input-group textarea{min-height:180px;resize:vertical;font-family:inherit;line-height:1.5;}.ub-contact-form .ub-input-group select{height:44px;padding-right:40px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='currentColor' 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");background-repeat:no-repeat;background-position:right 14px center;}.ub-contact-form .ub-input-group input:hover,.ub-contact-form .ub-input-group textarea:hover,.ub-contact-form .ub-input-group select:hover{border-color:var(--accent);}.ub-contact-form .ub-input-group input:focus-visible,.ub-contact-form .ub-input-group textarea:focus-visible,.ub-contact-form .ub-input-group select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);}.ub-contact-form__submit{min-height:44px;min-width:180px;padding:12px 22px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--accent);color:#0c0e11;font-family:var(--font-body);font-weight:700;font-size:0.95rem;cursor:pointer;transition:background var(--transition);}.ub-contact-form__submit:hover{background:var(--accent-hover);}.ub-contact-form__submit:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}@media (max-width:700px){.ub-page-header__title{font-size:1.4rem;}.ub-info-grid{grid-template-columns:1fr;}.ub-stats-row{flex-direction:column;}.ub-stat{border-right:none;border-bottom:1px solid var(--border-subtle);}.ub-stat:last-child{border-bottom:none;}.ub-contact-form__row{grid-template-columns:1fr;}}.ub-breadcrumb{padding:16px 0 0;}.ub-breadcrumb ol{display:flex;align-items:center;gap:6px;list-style:none;font-size:0.78rem;color:var(--text-tertiary);flex-wrap:wrap;}.ub-breadcrumb a{color:var(--text-tertiary);transition:color var(--transition);}.ub-breadcrumb a:hover{color:var(--accent);}.ub-breadcrumb li:not(:last-child)::after{content:'/';margin-left:6px;color:var(--border);}.ub-breadcrumb [aria-current="page"]{color:var(--text-secondary);font-weight:500;}.ub-tool-header{padding:28px 0 24px;border-bottom:1px solid var(--border-subtle);margin-bottom:28px;}.ub-tool-header__title{font-size:1.8rem;font-weight:700;letter-spacing:-0.02em;line-height:1.2;margin-bottom:8px;}.ub-tool-header__desc{font-size:0.95rem;color:var(--text-secondary);line-height:1.5;max-width:640px;margin-bottom:14px;}.ub-tool-header__meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}.ub-tool-header__badge{font-family:var(--font-mono);font-size:0.68rem;font-weight:500;color:var(--accent);background:var(--accent-muted);padding:3px 10px;border-radius:4px;border:1px solid var(--accent-border);}.ub-tool-header__category{font-size:0.78rem;color:var(--text-tertiary);font-weight:500;}.ub-tool-header__updated{font-size:0.72rem;color:var(--text-tertiary);margin-left:auto;}.ub-tool-howto{margin-bottom:24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);}.ub-tool-howto summary{padding:14px 18px;font-size:0.85rem;font-weight:600;color:var(--text-primary);cursor:pointer;user-select:none;list-style:none;display:flex;align-items:center;gap:8px;}.ub-tool-howto summary::before{content:'▶';font-size:0.6rem;color:var(--accent);transition:transform 0.2s;}.ub-tool-howto[open] summary::before{transform:rotate(90deg);}.ub-tool-howto summary::-webkit-details-marker{display:none;}.ub-tool-howto__steps{padding:0 18px 16px 36px;font-size:0.85rem;color:var(--text-secondary);line-height:1.7;}.ub-tool-howto__steps li{margin-bottom:4px;}.ub-tool-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:36px;}.ub-tool-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;}.ub-tool-panel--full{grid-column:1/-1;}.ub-coming-soon{text-align:center;padding:48px 20px;}.ub-coming-soon__icon{color:var(--accent);margin-bottom:16px;opacity:0.5;}.ub-coming-soon__title{font-size:1.1rem;font-weight:700;margin-bottom:6px;color:var(--text-primary);}.ub-coming-soon__desc{font-size:0.85rem;color:var(--text-secondary);max-width:400px;margin:0 auto;line-height:1.5;}.ub-tool-panel__header{padding:14px 20px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:8px;}.ub-tool-panel__label{font-size:0.78rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-tertiary);}.ub-tool-panel__dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:ub-pulse 2s infinite;}@keyframes ub-pulse{0%,100%{opacity:1;}50%{opacity:0.4;}}.ub-tool-panel__body{padding:20px;}.ub-input-group{margin-bottom:18px;}.ub-input-group:last-child{margin-bottom:0;}.ub-input-group__label{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}.ub-input-group__label label{font-size:0.82rem;font-weight:600;color:var(--text-primary);}.ub-input-group__unit{font-family:var(--font-mono);font-size:0.7rem;color:var(--text-tertiary);background:var(--bg-primary);padding:2px 8px;border-radius:3px;border:1px solid var(--border-subtle);}.ub-input-group__field{position:relative;}.ub-input-group input[type="number"],.ub-input-group input[type="text"]{width:100%;height:44px;padding:0 14px;background:var(--bg-input);border:1.5px solid var(--text-tertiary);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:1rem;font-weight:500;outline:none;transition:border-color var(--transition),box-shadow var(--transition);}.ub-input-group input:hover{border-color:var(--accent);}.ub-input-group input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);}.ub-input-group input::placeholder{color:var(--text-tertiary);font-weight:400;}.ub-input-group input.is-computed{background:var(--accent-muted);border-color:var(--accent-border);color:var(--accent);}.ub-solve-bar{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap;}.ub-solve-btn{flex:1;min-width:60px;min-height:44px;padding:10px 12px;background:var(--bg-input);border:1.5px solid var(--text-tertiary);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:0.8rem;font-weight:600;cursor:pointer;transition:all var(--transition);text-align:center;}.ub-solve-btn:hover{background:var(--bg-card-hover);border-color:var(--accent);color:var(--accent);}.ub-solve-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-solve-btn.is-active{background:var(--accent);border-color:var(--accent);color:#0c0e11;font-weight:700;}.ub-tool-actions{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap;}.ub-tool-btn{flex:1;min-height:44px;padding:12px 18px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:0.9rem;font-weight:700;cursor:pointer;transition:all var(--transition);border:1px solid transparent;text-align:center;}.ub-tool-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-tool-btn--primary{background:var(--accent);color:#0c0e11;}.ub-tool-btn--primary:hover{background:var(--accent-hover);}.ub-tool-btn--secondary{background:transparent;border:1.5px solid var(--text-tertiary);color:var(--text-primary);}.ub-tool-btn--secondary:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);}.ub-tool-panel select,.ub-tool-panel__body select{width:100%;min-height:44px;padding:0 40px 0 14px;background-color:var(--bg-input);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='currentColor' 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");background-repeat:no-repeat;background-position:right 14px center;-webkit-appearance:none;appearance:none;border:1.5px solid var(--text-tertiary);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:0.9rem;font-weight:500;cursor:pointer;outline:none;transition:border-color var(--transition),box-shadow var(--transition);}.ub-tool-panel select:hover,.ub-tool-panel__body select:hover{border-color:var(--accent);}.ub-tool-panel select:focus-visible,.ub-tool-panel__body select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted);}.ub-tool-panel select:disabled,.ub-tool-panel__body select:disabled{opacity:.55;cursor:not-allowed;}.ub-tool-viz{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;flex-direction:column;}.ub-tool-viz__canvas{flex:1;display:flex;align-items:center;justify-content:center;padding:20px;min-height:280px;}.ub-tool-viz__canvas svg{width:100%;height:auto;max-height:320px;}.ub-tool-viz__readout{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border-subtle);}.ub-tool-viz__stat{padding:14px 16px;text-align:center;border-right:1px solid var(--border-subtle);}.ub-tool-viz__stat:last-child{border-right:none;}.ub-tool-viz__stat-label{font-size:0.65rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-tertiary);margin-bottom:4px;}.ub-tool-viz__stat-value{font-family:var(--font-mono);font-size:1.1rem;font-weight:600;color:var(--text-primary);}.ub-tool-viz__stat-value.is-highlight{color:var(--accent);}.ub-tool-viz__stat-unit{font-size:0.7rem;color:var(--text-tertiary);margin-left:2px;font-weight:400;}.ub-tool-section{padding:32px 0;border-bottom:1px solid var(--border-subtle);}.ub-tool-section:last-of-type{border-bottom:none;}.ub-tool-section__title{font-size:1.15rem;font-weight:700;letter-spacing:-0.01em;margin-bottom:16px;}.ub-showwork{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px 24px;font-family:var(--font-mono);font-size:0.85rem;line-height:1.8;color:var(--text-secondary);}.ub-showwork__step{margin-bottom:10px;padding-left:16px;border-left:2px solid var(--border);}.ub-showwork__step:last-child{margin-bottom:0;}.ub-showwork__step-label{font-family:var(--font-body);font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-tertiary);display:block;margin-bottom:2px;}.ub-showwork__step-expr{color:var(--text-primary);font-weight:500;}.ub-showwork__step-result{color:var(--accent);font-weight:600;}.ub-showwork__empty{color:var(--text-tertiary);font-family:var(--font-body);text-align:center;padding:20px;}.ub-formulas{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;}.ub-formula-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 20px;text-align:center;}.ub-formula-card__name{font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-tertiary);margin-bottom:10px;}.ub-formula-card__expr{font-family:var(--font-mono);font-size:1.3rem;font-weight:600;color:var(--text-primary);letter-spacing:0.02em;}.ub-formula-card__expr .ub-f-accent{color:var(--accent);}.ub-formula-card__desc{font-size:0.75rem;color:var(--text-tertiary);margin-top:8px;line-height:1.4;}.ub-tool-faq__item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:8px;}.ub-tool-faq__item:last-child{margin-bottom:0;}.ub-tool-faq__item summary{padding:14px 18px;font-size:0.88rem;font-weight:600;color:var(--text-primary);cursor:pointer;user-select:none;list-style:none;display:flex;align-items:center;gap:10px;}.ub-tool-faq__item summary::before{content:'+';font-family:var(--font-mono);font-size:1rem;color:var(--accent);font-weight:700;flex-shrink:0;width:20px;text-align:center;}.ub-tool-faq__item[open] summary::before{content:'−';}.ub-tool-faq__item summary::-webkit-details-marker{display:none;}.ub-tool-faq__item p{padding:0 18px 16px 48px;font-size:0.85rem;color:var(--text-secondary);line-height:1.6;}.ub-tool-usecases{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}.ub-tool-usecase{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 20px;}.ub-tool-usecase h3{font-size:0.88rem;font-weight:600;margin-bottom:6px;}.ub-tool-usecase p{font-size:0.8rem;color:var(--text-secondary);line-height:1.5;}.ub-tool-history{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px;}.ub-tool-history p{font-size:0.88rem;color:var(--text-secondary);line-height:1.7;margin-bottom:12px;}.ub-tool-history p:last-child{margin-bottom:0;}.ub-tool-updated{padding:20px 0;text-align:left;}.ub-tool-updated p{font-size:0.72rem;color:var(--text-tertiary);}.ub-tool-page-grid{display:grid;grid-template-columns:1fr 260px;gap:28px;align-items:start;}.ub-tool-main{min-width:0;}.ub-tool-sidebar{position:sticky;top:calc(var(--header-height) + var(--nav-height) + 20px);max-height:calc(100vh - var(--header-height) - var(--nav-height) - 40px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent;}.ub-tool-sidebar::-webkit-scrollbar{width:4px;}.ub-tool-sidebar::-webkit-scrollbar-track{background:transparent;}.ub-tool-sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}.ub-tool-sidebar__inner{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;}.ub-tool-sidebar__title{font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-tertiary);padding:16px 16px 12px;border-bottom:1px solid var(--border-subtle);}.ub-tool-sidebar__list{display:flex;flex-direction:column;}.ub-tool-sidebar__card{display:flex;flex-direction:column;gap:4px;padding:12px 16px;color:var(--text-primary);border-bottom:1px solid var(--border-subtle);transition:all var(--transition);}.ub-tool-sidebar__card:last-child{border-bottom:none;}.ub-tool-sidebar__card:hover{background:var(--accent-muted);color:var(--text-primary);}.ub-tool-sidebar__card-title{font-size:0.82rem;font-weight:600;line-height:1.3;}.ub-tool-sidebar__card-meta{display:flex;align-items:center;gap:8px;}.ub-tool-sidebar__card-badge{font-family:var(--font-mono);font-size:0.6rem;font-weight:500;color:var(--accent);background:var(--accent-muted);padding:1px 6px;border-radius:3px;}.ub-tool-sidebar__card-cat{font-size:0.68rem;color:var(--text-tertiary);}.ub-tool-sidebar__browse{display:flex;align-items:center;justify-content:center;gap:6px;padding:14px 16px;font-size:0.78rem;font-weight:600;color:var(--accent);border-top:1px solid var(--border);transition:background var(--transition);}.ub-tool-sidebar__browse:hover{background:var(--accent-muted);color:var(--accent-hover);}.ub-tool-sidebar__browse svg{flex-shrink:0;}@media (max-width:960px){.ub-tool-page-grid{grid-template-columns:1fr;}.ub-tool-sidebar{position:static;max-height:none;overflow:visible;}.ub-tool-sidebar__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0;}}@media (max-width:800px){.ub-tool-layout{grid-template-columns:1fr;}.ub-tool-viz__readout{grid-template-columns:repeat(2,1fr);}.ub-tool-viz__stat:nth-child(2){border-right:none;}.ub-tool-viz__stat:nth-child(1),.ub-tool-viz__stat:nth-child(2){border-bottom:1px solid var(--border-subtle);}.ub-tool-header__title{font-size:1.4rem;}.ub-formulas{grid-template-columns:1fr 1fr;}}@media (max-width:500px){.ub-solve-bar{flex-wrap:wrap;}.ub-solve-btn{min-width:calc(50% - 3px);}.ub-formulas{grid-template-columns:1fr;}.ub-tool-usecases{grid-template-columns:1fr;}.ub-tool-sidebar__list{grid-template-columns:1fr;}}@media (max-width:720px){.ws-grid{grid-template-columns:1fr !important;gap:14px !important;}.ws-viz-grid{grid-template-columns:1fr !important;gap:12px !important;}.ws-units{flex-wrap:wrap;}.al-corners{grid-template-columns:1fr !important;}.al-controls{flex-wrap:wrap;}.al-controls > *{min-width:0;}.ub-tool-viz [style*="grid-template-columns:1fr 1fr 1fr"],.ub-tool-viz [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important;}.ub-tool-panel__body [style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important;}}.ub-drop{position:relative;border:2px dashed var(--border);border-radius:10px;background:var(--bg-input);padding:28px 18px;text-align:center;cursor:pointer;transition:border-color 0.15s ease,background 0.15s ease;}.ub-drop:hover,.ub-drop.is-drag{border-color:var(--accent);background:rgba(212,148,58,0.06);}.ub-drop__icon{font-size:32px;line-height:1;margin-bottom:10px;opacity:0.8;}.ub-drop__text{color:var(--text-primary);font-size:14px;font-weight:600;margin-bottom:6px;}.ub-drop__browse{background:none;border:0;color:var(--accent);font-weight:700;cursor:pointer;padding:0;font:inherit;text-decoration:underline;}.ub-drop__hint{color:var(--text-tertiary);font-size:12px;}.ub-hash-list{display:flex;flex-direction:column;gap:8px;padding:0 14px 14px;}.ub-hash-row{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:10px;padding:8px 10px;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;}.ub-hash-row__name{font-family:var(--font-mono,monospace);font-size:11px;font-weight:700;color:var(--accent);letter-spacing:0.04em;}.ub-hash-row__val{font-family:var(--font-mono,monospace);font-size:11px;color:var(--text-primary);overflow-wrap:anywhere;word-break:break-all;background:none;padding:0;}.ub-hash-row__copy{background:transparent;border:1px solid var(--border);color:var(--text-tertiary);padding:4px 10px;font-size:11px;border-radius:4px;cursor:pointer;transition:all 0.15s ease;font:inherit;}.ub-hash-row__copy:hover{color:var(--accent);border-color:var(--accent);}.ub-hash-row__copy.is-ok{color:#22c55e;border-color:#22c55e;}.ub-hash-progress{height:4px;background:var(--bg-input);border-radius:2px;margin:0 14px 14px;overflow:hidden;}.ub-hash-progress__bar{height:100%;width:0%;background:var(--accent);transition:width 0.1s ease;}.ub-hex-view{font-family:var(--font-mono,monospace);font-size:11px;line-height:1.5;background:var(--bg-input);color:var(--text-primary);padding:10px;border-radius:6px;border:1px solid var(--border);overflow:auto;max-height:360px;white-space:pre;}.ub-hex-view .ub-hex-off{color:var(--text-tertiary);user-select:none;}.ub-hex-view .ub-hex-ascii{color:var(--accent);margin-left:10px;}.ub-kv-table{display:grid;grid-template-columns:minmax(120px,30%) 1fr;gap:4px 14px;font-size:12px;padding:10px 14px 14px;}.ub-kv-table dt{color:var(--text-tertiary);font-family:var(--font-mono,monospace);font-size:11px;padding-top:3px;}.ub-kv-table dd{color:var(--text-primary);margin:0;overflow-wrap:anywhere;}.ub-kv-table dd code{font-size:11px;background:var(--bg-input);padding:1px 4px;border-radius:3px;}.ub-palette{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px 14px;}.ub-palette__chip{flex:0 0 auto;min-width:80px;border-radius:6px;border:1px solid var(--border);overflow:hidden;font-family:var(--font-mono,monospace);font-size:11px;cursor:pointer;transition:transform 0.15s ease;}.ub-palette__chip:hover{transform:translateY(-1px);}.ub-palette__swatch{height:48px;}.ub-palette__meta{padding:4px 6px;background:var(--bg-input);color:var(--text-primary);text-align:center;}.ub-palette__meta-pct{color:var(--text-tertiary);font-size:10px;}.ub-textbox{width:100%;min-height:140px;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-family:var(--font-mono,monospace);font-size:12px;color:var(--text-primary);line-height:1.5;resize:vertical;box-sizing:border-box;}.ub-textbox:focus{outline:none;border-color:var(--accent);}.ub-result-pill{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;font-family:var(--font-mono,monospace);letter-spacing:0.03em;}.ub-result-pill--ok{background:rgba(34,197,94,0.15);color:#22c55e;}.ub-result-pill--warn{background:rgba(251,191,36,0.15);color:#fbbf24;}.ub-result-pill--err{background:rgba(239,68,68,0.15);color:#ef4444;}.ub-result-pill--info{background:rgba(96,165,250,0.15);color:#60a5fa;}.ub-preview{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;margin:0 14px 14px;padding:14px;display:flex;align-items:center;justify-content:center;min-height:180px;background-image:linear-gradient(45deg,#2a2e33 25%,transparent 25%),linear-gradient(-45deg,#2a2e33 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#2a2e33 75%),linear-gradient(-45deg,transparent 75%,#2a2e33 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;}.ub-preview img,.ub-preview canvas{max-width:100%;max-height:320px;display:block;}.ub-preview--empty{color:var(--text-tertiary);font-size:12px;background-image:none;background:var(--bg-input);}.ub-canvas-tools{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 14px;}.ub-canvas-tools label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-tertiary);}.ub-canvas-tools input[type="range"]{flex:1;min-width:90px;}.ub-diff{font-family:var(--font-mono,monospace);font-size:11px;line-height:1.5;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:10px 12px;max-height:420px;overflow:auto;white-space:pre-wrap;margin:0 14px 14px;}.ub-diff__add{background:rgba(34,197,94,0.15);color:#22c55e;display:block;}.ub-diff__del{background:rgba(239,68,68,0.15);color:#ef4444;display:block;}.ub-diff__ctx{color:var(--text-tertiary);display:block;}.ub-data-table-wrap{background:var(--bg-input);border:1px solid var(--border);border-radius:6px;margin:0 14px 14px;overflow:auto;max-height:420px;}.ub-data-table{width:100%;border-collapse:collapse;font-family:var(--font-mono,monospace);font-size:11px;}.ub-data-table th,.ub-data-table td{padding:5px 8px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:left;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis;}.ub-data-table th{background:rgba(212,148,58,0.08);color:var(--accent);font-weight:700;position:sticky;top:0;z-index:1;}.ub-data-table tr:nth-child(even) td{background:rgba(255,255,255,0.015);}.ub-data-table td{color:var(--text-primary);}.iv-drop{border:2px dashed var(--border);border-radius:10px;background:var(--bg-input);padding:32px 18px;text-align:center;cursor:pointer;transition:border-color 0.16s,background 0.16s,color 0.16s;color:var(--text-secondary);}.iv-drop:hover,.iv-drop.is-drag{border-color:var(--accent);background:var(--accent-muted);color:var(--accent);}.iv-tab{background:transparent;border:1px solid transparent;border-radius:6px 6px 0 0;padding:8px 14px;color:var(--text-secondary);font-family:var(--font-body);font-size:0.85rem;font-weight:600;cursor:pointer;transition:all var(--transition);position:relative;top:1px;}.iv-tab:hover{color:var(--accent);background:var(--accent-muted);}.iv-tab.is-active{color:var(--accent);background:var(--bg-input);border-color:var(--border);border-bottom-color:var(--bg-input);}.iv-panel{display:none;}.iv-panel.is-active{display:block;}.ub-status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;}.ub-status-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);text-decoration:none;color:var(--text-primary);transition:border-color var(--transition),background var(--transition);}.ub-status-card:hover{border-color:var(--accent);background:var(--bg-card-hover);}.ub-status-card.is-down{opacity:0.7;cursor:not-allowed;}.ub-status-card.is-down:hover{border-color:var(--border);background:var(--bg-card);}.ub-status-card__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:var(--text-tertiary);}.ub-status-card.is-up .ub-status-card__dot{background:#16a34a;box-shadow:0 0 6px rgba(22,163,74,0.6);}.ub-status-card.is-partial .ub-status-card__dot{background:#d97706;box-shadow:0 0 6px rgba(217,119,6,0.6);}.ub-status-card.is-down .ub-status-card__dot{background:#dc2626;box-shadow:0 0 6px rgba(220,38,38,0.6);}.ub-status-card__body{flex:1;min-width:0;}.ub-status-card__name{font-size:0.9rem;font-weight:600;}.ub-status-card__state{font-size:0.75rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:0.04em;font-weight:600;margin-top:2px;}.ub-status-card.is-up .ub-status-card__state{color:#16a34a;}.ub-status-card.is-down .ub-status-card__state{color:#dc2626;}.ub-status-card.is-partial .ub-status-card__state{color:#d97706;}.ub-status-card--overall{grid-column:1 / -1;background:var(--bg-input);border-width:2px;}.ub-games-launcher{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px;}.ub-games-launcher__bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;}.ub-games-launcher__label{font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-tertiary);}.ub-games-launcher__select{flex:1;min-width:200px;background:var(--bg-input);border:1.5px solid var(--text-tertiary);border-radius:var(--radius-md);color:var(--text-primary);padding:10px 14px;font-family:var(--font-body);font-size:0.9rem;font-weight:500;cursor:pointer;}.ub-games-launcher__select:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent);}.ub-games-launcher__stage{min-height:340px;background:var(--bg-input);border:1px dashed var(--border);border-radius:var(--radius-md);padding:18px;display:flex;align-items:center;justify-content:center;}.ub-games-launcher__placeholder{text-align:center;color:var(--text-tertiary);}.ub-games-launcher__hint{margin-top:10px;font-size:0.78rem;color:var(--text-tertiary);text-align:center;font-style:italic;}@media (max-width:600px){.ub-games-launcher__bar{flex-direction:column;align-items:stretch;}.ub-games-launcher__select{width:100%;}}.drill-chart-wrap{margin:0 0 20px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);}.drill-chart{width:100%;border-collapse:collapse;font-family:var(--font-mono,monospace);font-size:0.78rem;min-width:760px;}.drill-chart th,.drill-chart td{padding:6px 8px;text-align:center;border-bottom:1px solid var(--border);border-right:1px solid var(--border);white-space:nowrap;color:var(--text-primary);}.drill-chart thead th{background:rgba(212,148,58,0.10);color:var(--accent);font-weight:700;font-family:var(--font-body);letter-spacing:0.02em;border-bottom:1px solid var(--accent-border);position:sticky;top:0;z-index:1;font-size:0.72rem;line-height:1.3;}.drill-chart thead tr:nth-child(2) th{top:auto;}.drill-chart thead tr:nth-child(3) th{top:auto;}.drill-chart__row td{background:transparent;}.drill-chart__row--alt td{background:rgba(255,255,255,0.025);}.drill-chart__size{font-weight:700;color:var(--accent);background:rgba(212,148,58,0.06) !important;}.drill-chart__row--alt .drill-chart__size{background:rgba(212,148,58,0.10) !important;}.drill-chart tr:last-child td{border-bottom:none;}.drill-chart tr td:last-child,.drill-chart tr th:last-child{border-right:none;}@media (max-width:700px){.drill-chart{font-size:0.72rem;}.drill-chart th,.drill-chart td{padding:4px 5px;}}.ub-tree{font-family:var(--font-mono,monospace);font-size:12px;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin:0 14px 14px;max-height:440px;overflow:auto;color:var(--text-primary);line-height:1.55;}.ub-tree .k{color:#60a5fa;}.ub-tree .s{color:#22c55e;}.ub-tree .n{color:#fbbf24;}.ub-tree .b{color:#a78bfa;font-weight:600;}.ub-tree .u{color:var(--text-tertiary);font-style:italic;}.ub-tree .bracket{color:var(--text-tertiary);}.ub-tree details{margin:0 0 0 8px;}.ub-tree summary{cursor:pointer;list-style:none;}.ub-tree summary::-webkit-details-marker{display:none;}.ub-tree summary::before{content:'▸ ';color:var(--text-tertiary);}.ub-tree details[open] > summary::before{content:'▾ ';}.ub-code{font-family:var(--font-mono,monospace);font-size:12px;background:var(--bg-input);border:1px solid var(--border);border-radius:6px;padding:10px 12px;color:var(--text-primary);margin:0 14px 14px;max-height:440px;overflow:auto;white-space:pre;line-height:1.5;}.ub-code .kw{color:#60a5fa;font-weight:700;}.ub-code .str{color:#22c55e;}.ub-code .num{color:#fbbf24;}.ub-code .cmt{color:var(--text-tertiary);font-style:italic;}.ub-code .tag{color:#ef4444;}.ub-code .attr{color:#a78bfa;}.ub-consent{position:fixed;bottom:0;left:0;right:0;z-index:900;background:var(--bg-secondary);border-top:1px solid var(--border);box-shadow:0 -4px 24px rgba(0,0,0,0.3);transform:translateY(100%);transition:transform 0.4s cubic-bezier(0.4,0,0.2,1);}.ub-consent.is-visible{transform:translateY(0);}.ub-consent[aria-hidden="true"]{pointer-events:none;}.ub-consent[aria-hidden="false"]{pointer-events:auto;}[data-theme="light"] .ub-consent{box-shadow:0 -4px 24px rgba(0,0,0,0.1);}.ub-consent__inner{max-width:var(--max-width);margin:0 auto;padding:18px var(--gutter);display:flex;align-items:center;gap:20px;}.ub-consent__content{display:flex;align-items:flex-start;gap:14px;flex:1;}.ub-consent__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--accent-muted);border:1px solid var(--accent-border);border-radius:var(--radius-sm);color:var(--accent);flex-shrink:0;}.ub-consent__text{flex:1;min-width:0;}.ub-consent__title{font-size:0.88rem;font-weight:600;color:var(--text-primary);margin-bottom:3px;}.ub-consent__desc{font-size:0.78rem;color:var(--text-secondary);line-height:1.5;}.ub-consent__desc strong{color:var(--text-primary);font-weight:600;}.ub-consent__desc a{color:var(--accent);}.ub-consent__desc a:hover{text-decoration:underline;}.ub-consent__actions{display:flex;gap:8px;flex-shrink:0;}.ub-consent__btn{min-height:44px;padding:12px 20px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:0.85rem;font-weight:700;cursor:pointer;transition:all var(--transition);border:1.5px solid transparent;white-space:nowrap;}.ub-consent__btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ub-consent__btn--accept{background:var(--accent);color:#0c0e11;border-color:var(--accent);}.ub-consent__btn--accept:hover{background:var(--accent-hover);border-color:var(--accent-hover);}.ub-consent__btn--settings{background:transparent;color:var(--text-primary);border-color:var(--text-tertiary);}.ub-consent__btn--settings:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);}.ub-consent__settings{border-top:1px solid var(--border);}.ub-consent__settings[hidden]{display:none;}.ub-consent__settings-inner{max-width:var(--max-width);margin:0 auto;padding:16px var(--gutter) 18px;}.ub-consent__setting{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border-subtle);}.ub-consent__setting:last-of-type{border-bottom:none;}.ub-consent__setting-info{flex:1;min-width:0;}.ub-consent__setting-name{display:block;font-size:0.84rem;font-weight:600;color:var(--text-primary);margin-bottom:2px;}.ub-consent__setting-desc{font-size:0.75rem;color:var(--text-tertiary);line-height:1.5;}.ub-consent__toggle-wrap{flex-shrink:0;}.ub-consent__always{font-size:0.72rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:0.06em;}.ub-consent__toggle{position:relative;display:inline-block;width:44px;height:24px;cursor:pointer;}.ub-consent__toggle input{opacity:0;width:0;height:0;position:absolute;}.ub-consent__toggle-track{position:absolute;inset:0;background:var(--border);border-radius:12px;transition:background 0.25s ease;}.ub-consent__toggle-track::after{content:'';position:absolute;left:3px;top:3px;width:18px;height:18px;background:var(--text-secondary);border-radius:50%;transition:transform 0.25s ease,background 0.25s ease;}.ub-consent__toggle input:checked + .ub-consent__toggle-track{background:var(--accent);}.ub-consent__toggle input:checked + .ub-consent__toggle-track::after{transform:translateX(20px);background:var(--text-inverse);}.ub-consent__toggle input:focus-visible + .ub-consent__toggle-track{outline:2px solid var(--accent);outline-offset:2px;}.ub-consent__settings-actions{padding-top:14px;display:flex;justify-content:flex-end;}@media (max-width:700px){.ub-consent__inner{flex-direction:column;align-items:stretch;gap:14px;}.ub-consent__content{flex-direction:column;gap:10px;}.ub-consent__icon{display:none;}.ub-consent__actions{display:grid;grid-template-columns:1fr 1fr;}.ub-consent__btn{text-align:center;}}.ub-ee-matrix{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,0.85);transition:opacity 0.5s ease;pointer-events:none;}.ub-ee-matrix canvas{width:100%;height:100%;display:block;}.ub-ee-wipe{position:fixed;inset:0;z-index:99998;transform:scaleX(0);transform-origin:left center;transition:transform 0.5s cubic-bezier(0.7,0,0.3,1);pointer-events:none;}.ub-ee-bunker{position:fixed;inset:0;z-index:99999;pointer-events:none;overflow:hidden;}.ub-ee-bunker__door{position:absolute;top:0;bottom:0;width:50%;transition:transform 0.7s cubic-bezier(0.6,0,0.2,1);}.ub-ee-bunker__door--left{left:0;background:linear-gradient(90deg,#1a1d21,#2a2e33);border-right:3px solid var(--accent,#d4943a);transform:translateX(-100%);}.ub-ee-bunker__door--right{right:0;background:linear-gradient(-90deg,#1a1d21,#2a2e33);border-left:3px solid var(--accent,#d4943a);transform:translateX(100%);}.ub-ee-bunker.is-closed .ub-ee-bunker__door--left{transform:translateX(0);}.ub-ee-bunker.is-closed .ub-ee-bunker__door--right{transform:translateX(0);}.ub-ee-bunker.is-opening .ub-ee-bunker__door--left{transform:translateX(-100%);transition-duration:0.9s;}.ub-ee-bunker.is-opening .ub-ee-bunker__door--right{transform:translateX(100%);transition-duration:0.9s;}.ub-ee-bunker__text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'JetBrains Mono',monospace;font-size:2rem;font-weight:800;letter-spacing:0.15em;color:var(--accent,#d4943a);white-space:nowrap;opacity:0;transition:opacity 0.3s ease;text-shadow:0 0 30px rgba(212,148,58,0.5);}.ub-ee-bunker.is-closed .ub-ee-bunker__text{opacity:1;transition-delay:0.5s;}.ub-ee-bunker.is-opening .ub-ee-bunker__text{opacity:0;transition-delay:0s;}.ub-ee-bunker__door::before,.ub-ee-bunker__door::after{content:'';position:absolute;width:12px;height:12px;border-radius:50%;background:#3a3e43;border:1px solid #4a4e53;}.ub-ee-bunker__door--left::before{top:30%;right:24px;}.ub-ee-bunker__door--left::after{bottom:30%;right:24px;}.ub-ee-bunker__door--right::before{top:30%;left:24px;}.ub-ee-bunker__door--right::after{bottom:30%;left:24px;}.ub-ee-toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--bg-card,#1a1d21);color:var(--text-primary,#e8eaed);border:1px solid var(--accent-border,rgba(212,148,58,0.25));padding:12px 28px;border-radius:8px;z-index:99990;font-family:'JetBrains Mono',monospace;font-size:0.88rem;font-weight:600;box-shadow:0 8px 30px rgba(0,0,0,0.4);opacity:0;transition:opacity 0.3s,transform 0.3s;pointer-events:none;white-space:pre-wrap;max-width:90vw;text-align:center;}.ub-ee-toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0);}.ub-ee-terminal{position:fixed;inset:0;z-index:99999;background:#0a0a0a;color:#00ff41;font-family:'JetBrains Mono',monospace;font-size:16px;padding:40px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-start;opacity:0;transition:opacity 0.3s;}.ub-ee-terminal.is-visible{opacity:1;}.ub-ee-terminal__line{margin-bottom:4px;white-space:pre-wrap;line-height:1.6;}.ub-ee-terminal__cursor{display:inline-block;width:10px;height:18px;background:#00ff41;animation:ub-blink 0.7s step-end infinite;vertical-align:text-bottom;margin-left:2px;}@keyframes ub-blink{50%{opacity:0;}}.ub-ee-terminal__line--accent{color:#d4943a;}.ub-ee-terminal__line--dim{color:#555;}.ub-ee-terminal__scanline{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,255,65,0.03) 2px,rgba(0,255,65,0.03) 4px);}.ub-ee-pong{position:fixed;z-index:99990;pointer-events:none;font-family:'JetBrains Mono',monospace;font-size:4rem;font-weight:900;color:var(--accent,#d4943a);text-shadow:0 0 20px rgba(212,148,58,0.5);line-height:1;}.ub-ee-hello-wrap{position:fixed;inset:0;z-index:99995;pointer-events:none;overflow:hidden;}.ub-ee-hello-item{position:absolute;white-space:nowrap;font-family:'JetBrains Mono',monospace;font-size:1.1rem;font-weight:600;opacity:0;animation:ub-hello-fall linear forwards;}@keyframes ub-hello-fall{0%{opacity:0;transform:translateY(-30px);}10%{opacity:1;}90%{opacity:1;}100%{opacity:0;transform:translateY(calc(100vh + 30px));}}.ub-ee-inverted{filter:invert(1) hue-rotate(180deg);transition:filter 0.4s ease;}.ub-ee-bsod{position:fixed;inset:0;z-index:100000;background:#0078d7;color:#ffffff;font-family:'Segoe UI','DM Sans',sans-serif;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:8vh 12vw;cursor:pointer;animation:ub-bsod-in 0.1s ease;}@keyframes ub-bsod-in{0%{opacity:0;}100%{opacity:1;}}.ub-ee-bsod__face{font-size:8rem;font-weight:100;margin-bottom:20px;line-height:1;}.ub-ee-bsod__title{font-size:1.6rem;font-weight:400;margin-bottom:30px;max-width:600px;line-height:1.4;}.ub-ee-bsod__pct{font-size:1.2rem;margin-bottom:30px;font-weight:300;}.ub-ee-bsod__info{font-size:0.8rem;opacity:0.7;line-height:1.8;}.ub-ee-bsod__info p{margin:0;}.ub-ee-bsod__qr{position:absolute;bottom:8vh;left:12vw;font-family:monospace;font-size:0.6rem;line-height:1.1;opacity:0.4;letter-spacing:0.1em;}.ub-ee-bsod__dismiss{position:absolute;bottom:8vh;right:12vw;font-size:0.75rem;opacity:0.5;}.ub-ee-npm{position:fixed;bottom:32px;left:50%;transform:translateX(-50%) translateY(20px);width:440px;max-width:90vw;background:var(--bg-card,#1a1d21);border:1px solid var(--border,#2a2e33);border-radius:10px;z-index:99990;overflow:hidden;opacity:0;transition:opacity 0.3s,transform 0.3s;box-shadow:0 8px 30px rgba(0,0,0,0.4);}.ub-ee-npm.is-visible{opacity:1;transform:translateX(-50%) translateY(0);}.ub-ee-npm__header{display:flex;align-items:center;gap:10px;padding:14px 18px 8px;}.ub-ee-npm__icon{font-size:1.2rem;}.ub-ee-npm__title{font-family:'JetBrains Mono',monospace;font-size:0.8rem;font-weight:600;color:var(--text-primary,#e8eaed);}.ub-ee-npm__track{height:6px;margin:0 18px;background:var(--border,#2a2e33);border-radius:3px;overflow:hidden;}.ub-ee-npm__fill{height:100%;width:0;background:linear-gradient(90deg,#cb3837,#cc3534);border-radius:3px;transition:width 0.3s ease;}.ub-ee-npm__log{padding:8px 18px 14px;font-family:'JetBrains Mono',monospace;font-size:0.72rem;color:var(--text-tertiary,#6b727d);line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.ub-ee-buffering{opacity:0.3 !important;filter:blur(1px);transition:opacity 0.3s,filter 0.3s;}.ub-ee-spinner-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.15);border-radius:inherit;z-index:5;}.ub-ee-spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,0.15);border-top-color:var(--accent,#d4943a);border-radius:50%;animation:ub-spin 0.8s linear infinite;}@keyframes ub-spin{to{transform:rotate(360deg);}}.ub-ee-bees-wrap{position:fixed;inset:0;z-index:99994;pointer-events:none;overflow:hidden;}.ub-ee-bee{position:absolute;left:-50px;animation:ub-bee-fly linear forwards;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.3));}@keyframes ub-bee-fly{0%{left:-50px;transform:translateY(0) rotate(-10deg);}25%{transform:translateY(-30px) rotate(5deg);}50%{transform:translateY(15px) rotate(-8deg);}75%{transform:translateY(-20px) rotate(3deg);}100%{left:calc(100vw + 50px);transform:translateY(5px) rotate(-5deg);}}.ub-ee-noclip{box-shadow:0 0 0 2px var(--accent,#d4943a),0 4px 16px rgba(0,0,0,0.3) !important;user-select:none;-webkit-user-select:none;}.ub-ee-xray{background:transparent !important;border-style:dashed !important;border-color:var(--accent,#d4943a) !important;box-shadow:none !important;transition:all 0.4s ease;}.ub-ee-xray *{color:var(--accent,#d4943a) !important;background:transparent !important;box-shadow:none !important;border-color:var(--accent-border,rgba(212,148,58,0.25)) !important;}@media (max-width:600px){.ub-ee-bunker__text{font-size:1.2rem;letter-spacing:0.1em;}.ub-ee-terminal{padding:20px;font-size:13px;}.ub-ee-pong{font-size:2.5rem;}.ub-ee-hello-item{font-size:0.85rem;}.ub-ee-bsod{padding:6vh 8vw;}.ub-ee-bsod__face{font-size:5rem;}.ub-ee-bsod__title{font-size:1.1rem;}.ub-ee-bsod__pct{font-size:1rem;}.ub-ee-bsod__qr{display:none;}}.ub-tool-layout:has(.ce-shell){display:block;}.ce-shell [hidden],.ce-switcher[hidden]{display:none !important;}.ce-shell{display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);}.ce-toolbar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;position:relative;}.ce-toolbar__spacer{flex:1;}.ce-control{display:flex;align-items:center;gap:6px;}.ce-control__label{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);}.ce-control__input{padding:6px 10px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);font-size:0.84rem;cursor:pointer;transition:border-color var(--transition);min-width:130px;}.ce-control__input:hover{border-color:var(--accent-border);}.ce-control__input:focus{outline:none;border-color:var(--accent);}.ce-actions{display:flex;gap:6px;flex-wrap:wrap;}.ce-btn{padding:6px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:0.82rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.ce-btn:hover{border-color:var(--accent);color:var(--accent);}.ce-btn:active{transform:translateY(1px);}.ce-btn--ghost{background:transparent;color:var(--text-tertiary);}.ce-btn--ghost:hover{color:#f08080;border-color:#c0392b;}.ce-btn--run{background:var(--accent);color:#fff;border-color:var(--accent);}.ce-btn--run:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff;}.ce-btn--run:disabled{opacity:0.6;cursor:wait;}.ce-btn--mini{padding:4px 10px;font-size:0.74rem;}.ce-tabs{display:flex;align-items:stretch;background:var(--bg-primary);border-bottom:1px solid var(--border-subtle);min-height:34px;}.ce-tabs__list{display:flex;flex:1;min-width:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent;}.ce-tabs__list::-webkit-scrollbar{height:3px;}.ce-tabs__list::-webkit-scrollbar-thumb{background:var(--border);}.ce-tab{display:flex;align-items:center;gap:6px;padding:0 10px 0 12px;max-width:220px;min-width:120px;background:transparent;border:0;border-right:1px solid var(--border-subtle);color:var(--text-tertiary);font-size:0.78rem;font-family:var(--font-body);cursor:pointer;user-select:none;white-space:nowrap;transition:background var(--transition),color var(--transition);position:relative;}.ce-tab:hover{background:var(--bg-card);color:var(--text-primary);}.ce-tab.is-active{background:var(--bg-card);color:var(--text-primary);border-bottom:2px solid var(--accent);}.ce-tab.is-dragging{opacity:0.4;}.ce-tab.is-drop-target{box-shadow:inset 3px 0 0 var(--accent);}.ce-tab__name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 0;}.ce-tab__name[contenteditable="true"]{outline:1px solid var(--accent);outline-offset:-1px;background:var(--bg-input);padding-left:4px;padding-right:4px;}.ce-tab__lang-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-muted);flex-shrink:0;}.ce-tab.is-active .ce-tab__lang-dot{background:var(--accent);}.ce-tab__close{background:transparent;border:0;color:var(--text-tertiary);font-size:1rem;line-height:1;width:18px;height:18px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:0;transition:all var(--transition);}.ce-tab:hover .ce-tab__close,.ce-tab.is-active .ce-tab__close{opacity:1;}.ce-tab__close:hover{background:var(--bg-primary);color:#f08080;}.ce-tab.is-dirty .ce-tab__close::before{content:"\25CF";font-size:0.6rem;}.ce-tab.is-dirty:hover .ce-tab__close::before{content:"";}.ce-tabs__add{background:transparent;border:0;color:var(--text-tertiary);padding:0 14px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:color var(--transition),background var(--transition);border-left:1px solid var(--border-subtle);flex-shrink:0;}.ce-tabs__add:hover{color:var(--accent);background:var(--bg-card);}.ce-diff-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--bg-primary);border-bottom:1px solid var(--border-subtle);font-size:0.78rem;color:var(--text-tertiary);flex-wrap:wrap;}.ce-diff-bar__label{font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-secondary);font-size:0.7rem;}.ce-diff-bar__sep{color:var(--accent);font-size:1.1rem;}.ce-diff-bar__inline{display:inline-flex;align-items:center;gap:4px;font-size:0.76rem;cursor:pointer;}.ce-diff-bar__inline input[type="checkbox"]{accent-color:var(--accent);}.ce-diff-bar__stats{font-family:var(--font-mono);font-size:0.74rem;}.ce-diff-bar__stats .ce-add{color:#7be0a5;}.ce-diff-bar__stats .ce-del{color:#f08080;}.ce-btn[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent);}.ce-editor{width:100%;height:clamp(420px,70vh,760px);background:var(--bg-primary);position:relative;}.ce-editor--diff{border-top:0;}.ce-editor:empty::before{content:'Loading...';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-family:var(--font-mono);font-size:0.86rem;}.ce-output{display:flex;flex-direction:column;border-top:1px solid var(--border-subtle);background:var(--bg-primary);max-height:50vh;overflow:hidden;}.ce-output__head{display:flex;align-items:center;gap:10px;padding:6px 14px;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);font-size:0.74rem;flex-wrap:wrap;}.ce-output__label{font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-secondary);}.ce-output__status{font-family:var(--font-mono);color:var(--text-tertiary);font-size:0.72rem;}.ce-output__spacer{flex:1;}.ce-output-text{margin:0;padding:14px 16px;max-height:44vh;overflow:auto;font-family:var(--font-mono);font-size:0.82rem;line-height:1.55;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;background:transparent;}.ce-output-text .ce-log--err{color:#f08080;}.ce-output-text .ce-log--warn{color:#e4b060;}.ce-output-text .ce-log--info{color:#7bb4e4;}.ce-output-text .ce-log--ok{color:#7be0a5;}.ce-output-preview{width:100%;min-height:280px;height:44vh;border:0;background:#fff;}.ce-output-table{padding:10px 14px;max-height:44vh;overflow:auto;}.ce-output-table table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:0.78rem;}.ce-output-table th,.ce-output-table td{padding:6px 10px;text-align:left;border-bottom:1px solid var(--border-subtle);}.ce-output-table th{color:var(--text-tertiary);font-weight:600;text-transform:uppercase;letter-spacing:0.06em;font-size:0.68rem;background:var(--bg-secondary);position:sticky;top:0;}.ce-output-table tr:hover td{background:var(--bg-card-hover);}.ce-output-table + .ce-output-table__empty{padding:14px 16px;color:var(--text-tertiary);font-family:var(--font-mono);font-size:0.8rem;}.ce-statusbar{display:flex;align-items:center;gap:16px;padding:6px 14px;background:var(--bg-secondary);border-top:1px solid var(--border-subtle);font-size:0.74rem;color:var(--text-tertiary);flex-wrap:wrap;}.ce-status{font-family:var(--font-mono);}.ce-status--right{margin-left:auto;}.ce-toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%,8px);background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);box-shadow:var(--shadow-md);padding:10px 16px;border-radius:var(--radius-md);z-index:1000;font-size:0.86rem;opacity:0;pointer-events:none;transition:opacity 0.18s,transform 0.18s;}.ce-toast.is-visible{opacity:1;transform:translate(-50%,0);pointer-events:auto;}.ce-view-menu{position:absolute;top:calc(100% - 4px);right:14px;z-index:40;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px;min-width:240px;display:flex;flex-direction:column;gap:2px;}.ce-view-item{background:transparent;border:0;padding:7px 10px;text-align:left;cursor:pointer;color:var(--text-primary);font-size:0.84rem;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:space-between;gap:10px;}.ce-view-item:hover{background:var(--bg-card-hover);}.ce-view-item[aria-checked="true"]::after{content:"\2713";color:var(--accent);font-weight:700;}.ce-view-sep{height:1px;background:var(--border-subtle);margin:4px 0;}.ce-view-fontrow{display:flex;align-items:center;gap:6px;padding:6px 10px;font-size:0.8rem;color:var(--text-secondary);}.ce-view-fontrow__label{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);flex:1;}.ce-view-fontrow__size{font-family:var(--font-mono);font-size:0.78rem;color:var(--text-secondary);min-width:42px;text-align:center;}.ce-view-font{padding:4px 10px;background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;font-size:0.78rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.ce-view-font:hover{border-color:var(--accent);color:var(--accent);}.ce-view-font--reset{font-size:0.72rem;padding:4px 8px;}.ce-switcher{position:fixed;inset:0;z-index:2000;background:color-mix(in srgb,var(--bg-primary) 80%,transparent);display:flex;align-items:flex-start;justify-content:center;padding-top:14vh;}.ce-switcher__box{width:min(540px,92vw);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;}.ce-switcher__input{width:100%;padding:14px 18px;background:transparent;border:0;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-size:0.95rem;font-family:var(--font-body);outline:0;}.ce-switcher__input::placeholder{color:var(--text-tertiary);font-size:0.82rem;}.ce-switcher__list{list-style:none;margin:0;padding:6px;max-height:360px;overflow-y:auto;}.ce-switcher__list li{padding:8px 12px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;gap:10px;font-size:0.86rem;color:var(--text-secondary);}.ce-switcher__list li:hover,.ce-switcher__list li.is-active{background:var(--accent-muted);color:var(--accent);}.ce-switcher__list li .ce-switcher__lang{font-family:var(--font-mono);font-size:0.7rem;color:var(--text-tertiary);padding:2px 6px;background:var(--bg-primary);border:1px solid var(--border);border-radius:3px;margin-left:auto;}.ce-switcher__list li.is-active .ce-switcher__lang{border-color:var(--accent);color:var(--accent);}.ce-switcher__empty{padding:20px;text-align:center;color:var(--text-tertiary);font-size:0.82rem;}.ce-shell.is-fullscreen{position:fixed;inset:0;z-index:1500;border:0;border-radius:0;background:var(--bg-primary);}.ce-shell.is-fullscreen .ce-editor{height:calc(100vh - 130px);}.ce-shell.is-drop-target{box-shadow:inset 0 0 0 3px var(--accent);}.ce-kbd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px;margin-top:12px;}.ce-kbd-row{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:0.82rem;color:var(--text-secondary);}.ce-kbd-row kbd{display:inline-block;min-width:22px;padding:2px 8px;background:var(--bg-primary);border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;font-family:var(--font-mono);font-size:0.74rem;font-weight:600;color:var(--text-primary);margin:0 2px;}.ce-kbd-row span{flex:1;color:var(--text-primary);}.ce-kbd{font-family:var(--font-mono);font-size:0.7rem;color:var(--text-tertiary);background:var(--bg-primary);border:1px solid var(--border);padding:1px 6px;border-radius:3px;margin-left:auto;}@media (max-width:720px){.ce-toolbar{gap:8px;}.ce-control__input{min-width:110px;}.ce-editor{height:clamp(380px,65vh,600px);}.ce-kbd-grid{grid-template-columns:1fr;}}.cc{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px 22px;}.ub-tool-layout:has(.cc){display:block;}.cc__top{display:flex;align-items:stretch;gap:16px;flex-wrap:wrap;}.cc__swatch{width:96px;min-height:96px;flex-shrink:0;border-radius:var(--radius-md);border:1px solid var(--border);background:linear-gradient(45deg,var(--bg-card-hover) 25%,transparent 25%) 0 0 / 16px 16px,linear-gradient(45deg,transparent 75%,var(--bg-card-hover) 75%) 8px 8px / 16px 16px,linear-gradient(-45deg,var(--bg-card-hover) 25%,transparent 25%) 0 0 / 16px 16px,linear-gradient(-45deg,transparent 75%,var(--bg-card-hover) 75%) 8px 8px / 16px 16px,var(--bg-primary);position:relative;transition:box-shadow var(--transition);}.cc__swatch:hover{box-shadow:0 0 0 3px var(--accent-muted);}.cc__swatch[data-ok="1"]{background-image:none;}.cc__swatch::after{content:"";position:absolute;inset:8px;pointer-events:none;border-radius:6px;}.cc__cols{flex:1;min-width:280px;display:flex;flex-direction:column;gap:12px;}.cc__col{display:flex;flex-direction:column;gap:6px;}.cc__label{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);}.cc__input{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:12px 14px;font-family:var(--font-mono);font-size:1rem;font-weight:600;transition:border-color var(--transition);}.cc__input:focus{outline:none;border-color:var(--accent);}.cc__input--out{color:var(--accent);}.cc__copy{background:transparent;border:1.5px solid var(--text-tertiary);border-radius:var(--radius-sm);color:var(--text-primary);padding:8px 14px;font-size:0.8rem;font-weight:600;cursor:pointer;transition:all var(--transition);align-self:flex-start;min-height:32px;}.cc__copy:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted);}.cc__copy:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.cc__copy.is-copied{color:#128a4c;border-color:#128a4c;background:rgba(18,138,76,0.08);}html[data-theme="dark"] .cc__copy.is-copied{color:#7be0a5;border-color:#7be0a5;background:rgba(123,224,165,0.1);}.cc__quick{margin-top:18px;display:flex;align-items:center;flex-wrap:wrap;gap:6px;}.cc__quick-label{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);margin-right:4px;}.cc__quick-swatch{width:26px;height:26px;border-radius:6px;border:1px solid var(--border);cursor:pointer;transition:transform var(--transition);padding:0;}.cc__quick-swatch:hover{transform:scale(1.12);border-color:var(--accent);}.cc__related{margin-top:18px;display:flex;flex-wrap:wrap;gap:6px;}.cc__related-label{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);align-self:center;margin-right:4px;}.cc__related-link{padding:5px 12px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:0.76rem;text-decoration:none;transition:all var(--transition);}.cc__related-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted);}.ub-tool-layout:has(> .fi-root){display:block;}.ub-tool-layout > .fi-root{display:block;}.fi-root .it-drop{border:2px dashed var(--border);border-radius:var(--radius-md);padding:36px 20px;text-align:center;background:var(--bg-primary);cursor:pointer;transition:border-color 0.18s ease,background 0.18s ease;}.fi-root .it-drop.drag,.fi-root .it-drop:hover{border-color:var(--accent);background:var(--bg-card);}.fi-root .it-drop input[type=file]{display:none;}.fi-root .fi-tabs{display:flex;gap:6px;margin:14px 0 10px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;padding-bottom:6px;scrollbar-width:thin;scrollbar-color:var(--border) transparent;-webkit-overflow-scrolling:touch;}.fi-root .fi-tabs::-webkit-scrollbar{height:6px;}.fi-root .fi-tabs::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}.fi-root .fi-tab{flex-shrink:0;padding:6px 14px;border-radius:20px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-family:var(--font-body);font-size:0.78rem;font-weight:500;cursor:pointer;transition:all var(--transition);white-space:nowrap;line-height:1.4;}.fi-root .fi-tab:hover{background:var(--bg-card-hover);border-color:var(--accent-border);color:var(--text-primary);}.fi-root .fi-tab.active{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);font-weight:600;}.fi-root .fi-kpis{gap:10px;margin-top:14px;}.fi-root .fi-kpi{flex:1 1 140px;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);}.fi-root .fi-kpi .fi-label{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;color:var(--text-tertiary);text-transform:uppercase;}.fi-root .fi-kpi .fi-value{font-family:var(--font-mono);font-size:0.95rem;font-weight:600;color:var(--text-primary);margin-top:4px;}.fi-root .fi-hex{font-family:var(--font-mono);font-size:12px;line-height:1.65;padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);max-height:540px;}.fi-root .fi-hex .offset{color:var(--text-tertiary);}.fi-root .fi-hex .magic{color:var(--accent);font-weight:600;}.fi-root .fi-hex .ascii{color:var(--text-tertiary);margin-left:10px;}.fi-root .fi-hex .hb{padding:1px 3px;border-radius:3px;}.fi-root .fi-hex .hb:hover{background:var(--accent-muted);color:var(--accent);}.fi-root .fi-hex .hb.sel{background:rgba(96,140,200,0.22);color:#8fb4e8;}.fi-root .fi-hex .hb.region-header{color:var(--accent);}.fi-root .fi-hex .hb.region-meta{color:#b896d8;}.fi-root .fi-hex .hb-editing{outline:2px solid var(--accent);background:var(--accent-muted) !important;}.fi-root .fi-hash-val{font-family:var(--font-mono);font-size:0.78rem;background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;}.fi-root .fi-hash-val:hover{border-color:var(--accent);color:var(--text-primary);}.fi-root .fi-hash-label{font-size:0.68rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);min-width:62px;}.fi-root .fi-badge{padding:4px 12px;border-radius:999px;font-weight:600;font-size:0.72rem;letter-spacing:0.02em;}.fi-root input[type="text"],.fi-root input[type="number"],.fi-root input[type="search"],.fi-root select,.fi-root textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:7px 10px;font-family:inherit;font-size:0.86rem;transition:border-color var(--transition);}.fi-root input[type="text"]:focus,.fi-root input[type="number"]:focus,.fi-root input[type="search"]:focus,.fi-root select:focus,.fi-root textarea:focus{outline:none;border-color:var(--accent);}.fi-root input[type="range"]{accent-color:var(--accent);}.fi-root details{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 14px;}.fi-root details > summary{cursor:pointer;color:var(--text-primary);font-weight:600;list-style:none;}.fi-root details > summary::-webkit-details-marker{display:none;}.fi-root details[open] > summary{margin-bottom:8px;border-bottom:1px solid var(--border-subtle);padding-bottom:6px;}.fi-root .fi-bookmark{background:var(--accent-muted);border-color:var(--accent-border);color:var(--accent);font-weight:600;font-family:var(--font-mono);}.fi-root .fi-bookmark:hover{background:var(--bg-card-hover);border-color:var(--accent);}.fi-root .fi-chunk,.fi-root .fi-timeline-item,.fi-root .fi-recent-item,.fi-root .fi-embed-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);}.fi-root .fi-chunk-type{color:var(--accent);font-weight:600;}.fi-root .fi-timeline-label{color:var(--accent);font-weight:600;}.fi-root .fi-timeline{border-left-color:var(--border);}.fi-root .fi-di{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);}.fi-root .fi-di h3{color:var(--text-primary);font-weight:600;font-size:0.9rem;}.fi-root .fi-di-row{border-bottom-color:var(--border-subtle);}.fi-root .fi-di-label{color:var(--text-tertiary);font-weight:600;font-size:0.68rem;letter-spacing:0.06em;}.fi-root .fi-di-val{color:var(--text-primary);font-family:var(--font-mono);font-size:0.82rem;}.fi-root kbd,.fi-root .fi-kb{display:inline-flex;align-items:center;justify-content:center;min-width:22px;padding:2px 7px;background:var(--bg-card);border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;font-family:var(--font-mono);font-size:0.7rem;font-weight:600;color:var(--text-secondary);}.fi-root .fi-struct-overlay{border-color:var(--accent-border);background:var(--accent-muted);}.fi-root .fi-struct-label{color:var(--accent);}.fi-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;}@media(max-width:700px){.fi-grid{grid-template-columns:1fr;}}.fi-card{padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);}.fi-card h3{margin:0 0 8px;font-size:0.9rem;font-weight:700;}.fi-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);}.fi-value{font-family:var(--font-mono);font-weight:700;font-size:0.9rem;margin-top:2px;word-break:break-all;}.fi-kpis{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}.fi-kpi{flex:1 1 120px;padding:10px 12px;border-radius:14px;border:1px solid var(--border);background:var(--bg-card);}.fi-hex-wrap{position:relative;margin-top:8px;}.fi-hex{font-family:var(--font-mono);font-size:12px;line-height:1.7;white-space:pre;overflow-x:auto;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);max-height:500px;overflow-y:auto;tab-size:4;cursor:text;user-select:none;}.fi-hex .offset{color:var(--text-tertiary);user-select:none;}.fi-hex .magic{color:var(--accent);font-weight:600;}.fi-hex .ascii{color:var(--text-tertiary);margin-left:8px;}.fi-hex .hb{padding:1px 2px;border-radius:2px;cursor:pointer;transition:background .08s;}.fi-hex .hb:hover{background:rgba(212,148,58,.15);}.fi-hex .hb.sel{background:rgba(59,130,246,.25);color:#3b82f6;}.fi-hex .hb.region-header{color:var(--accent);}.fi-hex .hb.region-meta{color:#a855f7;}.fi-hex .hb.region-data{color:var(--text-primary);}.fi-text{font-family:var(--font-mono);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-all;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);max-height:400px;overflow-y:auto;margin-top:8px;}.fi-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-weight:600;font-size:0.82rem;}.fi-badge--image{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.25);}.fi-badge--audio{background:rgba(168,85,247,.12);color:#a855f7;border:1px solid rgba(168,85,247,.25);}.fi-badge--video{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.25);}.fi-badge--document{background:rgba(34,197,94,.12);color:#22c55e;border:1px solid rgba(34,197,94,.25);}.fi-badge--code{background:rgba(249,115,22,.12);color:#f97316;border:1px solid rgba(249,115,22,.25);}.fi-badge--data,.fi-badge--archive,.fi-badge--font,.fi-badge--model3d,.fi-badge--executable,.fi-badge--database,.fi-badge--email,.fi-badge--security,.fi-badge--system,.fi-badge--virtual,.fi-badge--game,.fi-badge--unknown{background:rgba(107,114,128,.12);color:#6b7280;border:1px solid rgba(107,114,128,.25);}.fi-tabs{display:flex;gap:4px;margin-top:14px;flex-wrap:wrap;}.fi-tab{padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--bg-card);font-weight:600;font-size:0.82rem;cursor:pointer;transition:all .12s;}.fi-tab:hover{border-color:rgba(212,148,58,.4);}.fi-tab.active{background:var(--accent);color:#fff;border-color:var(--accent);}.fi-panel{display:none;margin-top:10px;}.fi-panel.active{display:block;}.fi-stats{font-size:0.72rem;color:var(--text-tertiary);margin-top:6px;}.fi-hash-row{display:flex;gap:8px;align-items:center;margin:6px 0;}.fi-hash-label{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-tertiary);min-width:60px;}.fi-hash-val{font-family:var(--font-mono);font-size:12px;word-break:break-all;cursor:pointer;padding:6px 10px;border-radius:8px;border:1px solid var(--border);flex:1;transition:border-color .15s;}.fi-hash-val:hover{border-color:rgba(212,148,58,.4);}.fi-media-preview{margin-top:8px;text-align:center;}.fi-media-preview img,.fi-media-preview video,.fi-media-preview audio{max-width:100%;max-height:300px;border-radius:var(--radius-md);border:1px solid var(--border);}.fi-warn{padding:10px 14px;border-radius:10px;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.3);color:#ef4444;font-weight:600;margin-top:10px;}.fi-chunk{padding:6px 10px;border:1px solid var(--border);border-radius:8px;margin:3px 0;font-family:var(--font-mono);font-size:12px;}.fi-chunk-type{font-weight:700;color:var(--accent);}.fi-di{margin-top:10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);}.fi-di h3{margin:0 0 8px;font-size:0.9rem;font-weight:700;}.fi-di-row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--border);}.fi-di-label{color:var(--text-tertiary);font-size:11px;font-weight:600;}.fi-di-val{font-family:var(--font-mono);font-size:12px;}.fi-sel-info{margin-top:8px;padding:10px;border:1px solid rgba(59,130,246,.3);border-radius:8px;background:rgba(59,130,246,.05);font-family:var(--font-mono);font-size:12px;}.fi-canvas-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;}.fi-canvas-row canvas{border:1px solid var(--border);border-radius:8px;}.fi-embed-item{padding:8px 12px;border:1px solid var(--border);border-radius:8px;margin:4px 0;display:flex;justify-content:space-between;align-items:center;gap:8px;}.fi-embed-item button{flex-shrink:0;}.fi-code .kw{color:var(--accent);font-weight:700;}.fi-code .str{color:#22c55e;}.fi-code .num{color:#3b82f6;}.fi-code .cmt{color:var(--text-tertiary);font-style:italic;}.fi-code .fn{color:#a855f7;}.fi-code .tag{color:#ef4444;}.fi-code .attr{color:#f97316;}.fi-bookmark{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;background:rgba(212,148,58,.1);border:1px solid rgba(212,148,58,.3);font-size:11px;font-weight:600;cursor:pointer;margin:2px;font-family:var(--font-mono);}.fi-bookmark:hover{background:rgba(212,148,58,.2);}.fi-batch-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:10px;}.fi-batch-table th{text-align:left;padding:8px 10px;border-bottom:2px solid var(--border);font-weight:700;font-size:11px;text-transform:uppercase;color:var(--text-tertiary);cursor:pointer;}.fi-batch-table th:hover{color:var(--text-primary);}.fi-batch-table td{padding:6px 10px;border-bottom:1px solid var(--border);font-family:var(--font-mono);}.fi-batch-table tr:hover{background:rgba(212,148,58,.04);}.fi-timeline{position:relative;padding:10px 0 10px 20px;border-left:2px solid var(--border);margin:10px 0 10px 10px;}.fi-timeline-item{position:relative;padding:6px 12px;margin:8px 0;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);font-size:12px;}.fi-timeline-item::before{content:"";position:absolute;left:-26px;top:12px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-primary);}.fi-timeline-label{font-weight:700;color:var(--accent);}.fi-timeline-date{font-family:var(--font-mono);margin-top:2px;}.fi-kb{display:inline-flex;align-items:center;justify-content:center;min-width:22px;padding:2px 6px;border-radius:4px;background:var(--bg-card);border:1px solid var(--border);font-family:var(--font-mono);font-size:11px;font-weight:600;}.fi-shortcuts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:12px;margin-top:8px;}.fi-edit-byte{background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.3);}.fi-tab .fi-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:rgba(212,148,58,.2);color:var(--accent);font-size:10px;font-weight:700;margin-left:4px;}.fi-search-results{max-height:200px;overflow:auto;margin-top:6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);}.fi-search-result{padding:4px 10px;font-family:var(--font-mono);font-size:11px;cursor:pointer;border-bottom:1px solid var(--border);}.fi-search-result:hover{background:rgba(212,148,58,.08);}.fi-struct-overlay{position:absolute;pointer-events:none;border:2px solid rgba(212,148,58,.4);border-radius:3px;background:rgba(212,148,58,.06);}.fi-struct-label{position:absolute;top:-16px;left:0;font-size:9px;font-weight:600;color:var(--accent);white-space:nowrap;font-family:var(--font-mono);}.fi-string-url{color:#3b82f6;text-decoration:underline;cursor:pointer;}.fi-string-email{color:#a855f7;}.fi-string-ip{color:#f97316;}.fi-string-path{color:#22c55e;}.fi-waveform{margin-top:8px;}.fi-progress{height:4px;border-radius:2px;background:var(--border);margin-top:6px;overflow:hidden;}.fi-progress-bar{height:100%;background:var(--accent);border-radius:2px;transition:width .3s;width:0%;}.fi-minimap{width:100%;height:20px;border:1px solid var(--border);border-radius:4px;margin-top:4px;cursor:pointer;overflow:hidden;}@media(max-width:600px){.fi-hex{font-size:10px;}.fi-hex .hb{padding:0 1px;}}.fi-template-select{font-size:12px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);color:var(--text-primary);}.fi-hex-ruler{font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary);padding:0 12px 4px;user-select:none;white-space:pre;}.fi-hex .hb-row:nth-child(even){background:rgba(128,128,128,.03);}.fi-hex .hb-editing{outline:2px solid var(--accent);background:rgba(212,148,58,.12)!important;border-radius:2px;}.fi-hex .hb[title]:hover::after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);padding:4px 8px;border-radius:4px;background:var(--bg-card);border:1px solid var(--border);font-size:10px;white-space:nowrap;z-index:10;pointer-events:none;}.fi-hex .hb{position:relative;}.fi-collapsible summary{cursor:pointer;font-weight:700;padding:8px 0;list-style:none;}.fi-collapsible summary::before{content:"▶ ";font-size:10px;transition:transform .15s;}.fi-collapsible[open] summary::before{content:"▼ ";}.fi-corruption{padding:8px 12px;border-radius:8px;margin:4px 0;font-size:12px;}.fi-corruption--ok{background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.3);color:#22c55e;}.fi-corruption--warn{background:rgba(234,179,8,.08);border:1px solid rgba(234,179,8,.3);color:#eab308;}.fi-corruption--fail{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.3);color:#ef4444;}.fi-steg-score{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-weight:600;font-size:0.9rem;}.fi-sync-hex{display:grid;grid-template-columns:1fr 1fr;gap:6px;}.fi-sync-hex .fi-hex{max-height:350px;font-size:11px;}@media(max-width:700px){.fi-sync-hex{grid-template-columns:1fr;}}.fi-eof-warn{padding:12px;border-radius:10px;background:rgba(234,179,8,.08);border:1px solid rgba(234,179,8,.3);margin-top:10px;}.fi-pie{display:inline-block;border-radius:50%;width:120px;height:120px;}.fi-recent{margin-top:8px;}.fi-recent-item{padding:4px 10px;border:1px solid var(--border);border-radius:6px;margin:2px;font-size:11px;cursor:pointer;display:inline-block;font-family:var(--font-mono);}.fi-recent-item:hover{border-color:rgba(212,148,58,.4);}.fi-fill-input{display:flex;gap:6px;align-items:center;margin-top:6px;}.fi-annotation{position:relative;display:inline-block;}.fi-annotation-mark{background:rgba(234,179,8,.2);border-bottom:2px solid #eab308;cursor:help;}.fi-annotation-note{position:absolute;bottom:100%;left:0;padding:6px 10px;border-radius:6px;background:var(--bg-card);border:1px solid #eab308;font-size:10px;white-space:nowrap;z-index:20;display:none;}.fi-annotation-mark:hover .fi-annotation-note{display:block;}.fi-color-swatch{display:inline-block;width:24px;height:24px;border-radius:4px;border:1px solid var(--border);vertical-align:middle;}.fi-histogram canvas{border:1px solid var(--border);border-radius:8px;}.fi-spectrogram canvas{border:1px solid var(--border);border-radius:8px;}.fi-risk-meter{height:8px;border-radius:4px;background:var(--border);overflow:hidden;margin-top:4px;}.fi-risk-fill{height:100%;border-radius:4px;transition:width .3s;}.fi-treemap{position:relative;border:1px solid var(--border);border-radius:8px;overflow:hidden;height:120px;margin-top:8px;}.fi-treemap-block{position:absolute;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:#fff;overflow:hidden;border-right:1px solid rgba(255,255,255,.2);}.fi-rainbow .hb{transition:none;}.fi-status-bar{display:flex;gap:14px;flex-wrap:wrap;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary);margin-top:8px;}.fi-status-item{display:flex;align-items:center;gap:4px;}.fi-split{display:grid;grid-template-columns:1fr 1fr;gap:10px;}@media(max-width:700px){.fi-split{grid-template-columns:1fr;}}.fi-jwt-header{color:var(--accent);}.fi-jwt-payload{color:#3b82f6;}.fi-jwt-sig{color:#a855f7;}.fi-archive-bomb{padding:12px;border-radius:10px;background:rgba(239,68,68,.08);border:2px solid rgba(239,68,68,.4);color:#ef4444;font-weight:700;margin-top:8px;}.fi-pattern-item{padding:6px 10px;border:1px solid var(--border);border-radius:6px;margin:3px 0;font-family:var(--font-mono);font-size:11px;}.fi-pattern-item.suspicious{border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.04);}.fi-lsb-plane{image-rendering:pixelated;border:1px solid var(--border);border-radius:8px;}.fi-xor-result{padding:8px;border:1px solid var(--border);border-radius:6px;margin:4px 0;font-family:var(--font-mono);font-size:11px;}.fi-ioc-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px;}.fi-ioc-table th{text-align:left;padding:6px 10px;border-bottom:2px solid var(--border);font-weight:700;font-size:11px;text-transform:uppercase;color:var(--text-tertiary);cursor:pointer;}.fi-ioc-table td{padding:5px 10px;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:11px;word-break:break-all;}.fi-ioc-table tr:hover{background:rgba(212,148,58,.04);}.fi-ioc-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:600;}.fi-ioc-ip{background:rgba(249,115,22,.12);color:#f97316;border:1px solid rgba(249,115,22,.25);}.fi-ioc-url{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.25);}.fi-ioc-domain{background:rgba(14,165,233,.12);color:#0ea5e9;border:1px solid rgba(14,165,233,.25);}.fi-ioc-email{background:rgba(168,85,247,.12);color:#a855f7;border:1px solid rgba(168,85,247,.25);}.fi-ioc-path{background:rgba(34,197,94,.12);color:#22c55e;border:1px solid rgba(34,197,94,.25);}.fi-ioc-reg{background:rgba(234,179,8,.12);color:#eab308;border:1px solid rgba(234,179,8,.25);}.fi-ioc-mutex{background:rgba(236,72,153,.12);color:#ec4899;border:1px solid rgba(236,72,153,.25);}.fi-section-bar{height:12px;border-radius:3px;margin-top:2px;display:flex;overflow:hidden;}.fi-section-fill{height:100%;}.fi-api-cat{margin:4px 0;padding:6px 10px;border-left:3px solid;border-radius:0 6px 6px 0;font-size:12px;}.fi-api-cat--network{border-color:#3b82f6;background:rgba(59,130,246,.05);}.fi-api-cat--process{border-color:#ef4444;background:rgba(239,68,68,.05);}.fi-api-cat--file{border-color:#22c55e;background:rgba(34,197,94,.05);}.fi-api-cat--registry{border-color:#eab308;background:rgba(234,179,8,.05);}.fi-api-cat--crypto{border-color:#a855f7;background:rgba(168,85,247,.05);}.fi-api-cat--antidebug{border-color:#ef4444;background:rgba(239,68,68,.08);}.fi-api-cat--persist{border-color:#f97316;background:rgba(249,115,22,.05);}.fi-pe-flag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;margin:2px;}.fi-pe-flag--on{background:rgba(34,197,94,.12);color:#22c55e;border:1px solid rgba(34,197,94,.3);}.fi-pe-flag--off{background:rgba(239,68,68,.08);color:#ef4444;border:1px solid rgba(239,68,68,.2);}.fi-pe-flag--warn{background:rgba(234,179,8,.12);color:#eab308;border:1px solid rgba(234,179,8,.3);}.fi-obf-sig{padding:6px 10px;border:1px solid var(--border);border-radius:6px;margin:3px 0;font-size:12px;display:flex;justify-content:space-between;align-items:center;}.fi-obf-sig.detected{border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.04);}.fi-pe-ver{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:12px;margin-top:6px;}.fi-pe-ver dt{font-weight:600;color:var(--text-tertiary);font-size:11px;text-transform:uppercase;}.fi-pe-ver dd{margin:0;font-family:var(--font-mono);}.fi-elf-flag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;margin:2px;}.fi-elf-flag--on{background:rgba(34,197,94,.12);color:#22c55e;border:1px solid rgba(34,197,94,.3);}.fi-elf-flag--off{background:rgba(239,68,68,.08);color:#ef4444;border:1px solid rgba(239,68,68,.2);}.fi-macro-warn{padding:14px;border-radius:10px;background:rgba(239,68,68,.08);border:2px solid rgba(239,68,68,.4);color:#ef4444;font-weight:700;}.fi-cred-item{padding:6px 10px;border:1px solid rgba(239,68,68,.3);border-radius:6px;margin:3px 0;font-family:var(--font-mono);font-size:11px;background:rgba(239,68,68,.04);}.fi-cert-field{display:grid;grid-template-columns:120px 1fr;gap:2px 10px;font-size:12px;}.fi-cert-field dt{font-weight:600;color:var(--text-tertiary);text-transform:uppercase;font-size:11px;}.fi-cert-field dd{margin:0;font-family:var(--font-mono);word-break:break-all;}.fi-font-preview{font-size:36px;line-height:1.4;padding:20px;border:1px solid var(--border);border-radius:var(--radius-md);margin-top:8px;background:var(--bg-primary);}.fi-font-chars{font-size:14px;line-height:2;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:8px;background:var(--bg-primary);font-family:var(--font-mono);}.fi-compiler-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-weight:600;font-size:0.82rem;background:rgba(99,102,241,.12);color:#6366f1;border:1px solid rgba(99,102,241,.25);}.fi-ai-response{padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);margin-top:10px;line-height:1.6;font-size:13px;white-space:pre-wrap;}.fi-ai-loading{display:inline-block;animation:fi-pulse 1.5s infinite;}@keyframes fi-pulse{0%,100%{opacity:1;}50%{opacity:.3;}}.fi-quick-palette{position:fixed;top:20%;left:50%;transform:translateX(-50%);width:min(500px,90vw);z-index:1000;background:var(--bg-card);border:2px solid var(--border);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);padding:10px;display:none;}.fi-quick-input{width:100%;padding:12px 16px;border:none;background:transparent;font-size:16px;color:var(--text-primary);outline:none;font-family:var(--font-mono);}.fi-quick-results{max-height:300px;overflow:auto;margin-top:6px;}.fi-quick-item{padding:8px 14px;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;font-size:13px;}.fi-quick-item:hover,.fi-quick-item.active{background:rgba(212,148,58,.1);}.fi-quick-item kbd{font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary);}.fi-perf{font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary);margin-top:6px;}.fi-split-view{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}@media(max-width:700px){.fi-split-view{grid-template-columns:1fr;}}.fi-recent-bar{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;}.fi-recent-chip{padding:4px 10px;border:1px solid var(--border);border-radius:999px;font-size:11px;font-family:var(--font-mono);cursor:pointer;}.fi-recent-chip:hover{border-color:rgba(212,148,58,.4);background:rgba(212,148,58,.05);}.fi-crypto-const{padding:6px 10px;border:1px solid rgba(168,85,247,.3);border-radius:6px;margin:3px 0;font-size:11px;background:rgba(168,85,247,.04);font-family:var(--font-mono);}.fi-disasm{font-family:var(--font-mono);font-size:11px;line-height:1.8;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);max-height:300px;overflow:auto;margin-top:6px;}.fi-disasm .addr{color:var(--text-tertiary);user-select:none;margin-right:8px;}.fi-disasm .bytes{color:#3b82f6;margin-right:8px;}.fi-disasm .mnem{color:var(--accent);font-weight:600;}.fi-disasm .op{color:var(--text-primary);}.fi-disasm .call{color:#a855f7;font-weight:700;}.fi-disasm .jmp{color:#22c55e;font-weight:700;}.fi-resource-icon{width:32px;height:32px;border:1px solid var(--border);border-radius:4px;image-rendering:pixelated;vertical-align:middle;margin-right:6px;}.fi-manifest{font-family:var(--font-mono);font-size:11px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);white-space:pre-wrap;word-break:break-all;max-height:200px;overflow:auto;margin-top:6px;}.fi-threat-card{padding:12px;border-radius:10px;margin:6px 0;}.fi-threat-high{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.3);}.fi-threat-med{background:rgba(234,179,8,.08);border:1px solid rgba(234,179,8,.3);}.fi-threat-low{background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.3);}.fi-threat-label{font-weight:700;font-size:13px;margin-bottom:4px;}.fi-threat-high .fi-threat-label{color:#ef4444;}.fi-threat-med .fi-threat-label{color:#eab308;}.fi-threat-low .fi-threat-label{color:#22c55e;}.fi-yara-rule{padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);font-family:var(--font-mono);font-size:11px;margin-top:6px;white-space:pre-wrap;}.fi-imphash{font-family:var(--font-mono);font-size:12px;padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);cursor:pointer;word-break:break-all;}.fi-fs-artifact{padding:8px 12px;border:1px solid rgba(14,165,233,.3);border-radius:8px;margin:4px 0;background:rgba(14,165,233,.04);font-size:12px;}.fi-rich-entry{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;padding:4px 10px;border-bottom:1px solid var(--border);font-size:11px;font-family:var(--font-mono);}.fi-intel-summary{padding:16px;border-radius:12px;border:2px solid var(--border);background:var(--bg-card);margin-top:14px;}.fi-intel-title{font-weight:700;font-size:1rem;margin-bottom:8px;}.fi-intel-row{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);}.fi-intel-icon{font-size:18px;width:28px;text-align:center;}.fi-intel-text{font-size:13px;flex:1;}.fi-intel-tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:600;margin-left:6px;}.fi-intel-tag--danger{background:rgba(239,68,68,.12);color:#ef4444;}.fi-intel-tag--warn{background:rgba(234,179,8,.12);color:#eab308;}.fi-intel-tag--safe{background:rgba(34,197,94,.12);color:#22c55e;}.fi-intel-tag--info{background:rgba(59,130,246,.12);color:#3b82f6;}.fi-verdict{padding:14px 20px;border-radius:12px;text-align:center;font-weight:700;font-size:1rem;margin-top:12px;}.fi-verdict--clean{background:rgba(34,197,94,.1);border:2px solid rgba(34,197,94,.3);color:#22c55e;}.fi-verdict--suspicious{background:rgba(234,179,8,.1);border:2px solid rgba(234,179,8,.3);color:#eab308;}.fi-verdict--malicious{background:rgba(239,68,68,.1);border:2px solid rgba(239,68,68,.3);color:#ef4444;}.fi-behavior{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}.fi-behavior-tag{padding:4px 12px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid var(--border);background:var(--bg-card);}.fi-behavior-tag--red{border-color:rgba(239,68,68,.3);color:#ef4444;background:rgba(239,68,68,.05);}.fi-behavior-tag--yellow{border-color:rgba(234,179,8,.3);color:#eab308;background:rgba(234,179,8,.05);}.fi-behavior-tag--blue{border-color:rgba(59,130,246,.3);color:#3b82f6;background:rgba(59,130,246,.05);}.fi-string-cat{display:grid;grid-template-columns:100px 1fr auto;gap:4px 10px;font-size:11px;padding:4px 10px;border-bottom:1px solid var(--border);font-family:var(--font-mono);}.fi-string-cat:hover{background:rgba(212,148,58,.04);}.fi-insight{padding:10px 14px;border-left:3px solid var(--accent);background:rgba(212,148,58,.04);border-radius:0 8px 8px 0;margin:8px 0;font-size:12px;}.fi-insight strong{color:var(--accent);}.fi-tld-warn{color:#ef4444;font-weight:600;}.fi-tor-indicator{color:#a855f7;font-weight:600;}.fi-api-key-input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-family:var(--font-mono);font-size:12px;margin-bottom:8px;background:var(--bg-primary);color:var(--text-primary);}.fi-api-key-saved{color:#22c55e;font-size:11px;font-weight:600;}.fi-ai-chat{max-height:400px;overflow-y:auto;margin-top:10px;}.fi-ai-msg{padding:10px 14px;border-radius:12px;margin:6px 0;font-size:13px;line-height:1.6;}.fi-ai-msg--user{background:rgba(212,148,58,.08);border:1px solid rgba(212,148,58,.2);text-align:right;}.fi-ai-msg--ai{background:var(--bg-card);border:1px solid var(--border);white-space:pre-wrap;}.fi-mitre{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:12px;margin-top:6px;}.fi-mitre dt{font-weight:600;font-family:var(--font-mono);color:var(--accent);}.fi-mitre dd{margin:0;}.fi-pii-item{padding:6px 10px;border:1px solid rgba(236,72,153,.3);border-radius:6px;margin:3px 0;font-size:11px;background:rgba(236,72,153,.04);}.fi-wallet{font-family:var(--font-mono);font-size:11px;padding:6px 10px;border:1px solid rgba(234,179,8,.3);border-radius:6px;margin:3px 0;background:rgba(234,179,8,.04);word-break:break-all;}.fi-license-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:600;background:rgba(34,197,94,.12);color:#22c55e;border:1px solid rgba(34,197,94,.3);}.fi-vuln{padding:8px 12px;border:1px solid rgba(239,68,68,.3);border-radius:8px;margin:4px 0;background:rgba(239,68,68,.04);}.fi-vuln-name{font-weight:700;color:#ef4444;}.fi-framework-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:11px;font-weight:600;margin:2px;background:rgba(99,102,241,.12);color:#6366f1;border:1px solid rgba(99,102,241,.25);}.fi-html-report{max-height:400px;overflow:auto;border:1px solid var(--border);border-radius:8px;padding:12px;margin-top:8px;font-size:12px;}.fi-lnk-field{display:grid;grid-template-columns:120px 1fr;gap:2px 10px;font-size:12px;padding:3px 0;border-bottom:1px solid var(--border);}.fi-decoder{display:flex;gap:4px;flex-wrap:wrap;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);margin-top:6px;}.fi-decoder-btn{padding:4px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-primary);font-size:11px;font-weight:600;cursor:pointer;}.fi-decoder-btn:hover{border-color:rgba(212,148,58,.4);background:rgba(212,148,58,.05);}.fi-decoder-output{padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-primary);font-family:var(--font-mono);font-size:11px;margin-top:6px;max-height:100px;overflow:auto;word-break:break-all;display:none;}.fi-notif-bar{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;}.fi-notif{padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:all .12s;border:1px solid;}.fi-notif--danger{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.3);color:#ef4444;}.fi-notif--warn{background:rgba(234,179,8,.08);border-color:rgba(234,179,8,.3);color:#eab308;}.fi-notif--info{background:rgba(59,130,246,.08);border-color:rgba(59,130,246,.3);color:#3b82f6;}.fi-notif:hover{transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.1);}.fi-calc{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:11px;font-family:var(--font-mono);padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);margin-top:6px;}.fi-calc dt{font-weight:600;color:var(--text-tertiary);}.fi-calc dd{margin:0;}.fi-archive-tree{font-size:12px;margin-top:8px;max-height:400px;overflow:auto;}.fi-archive-item{padding:4px 8px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;font-family:var(--font-mono);}.fi-archive-item:hover{background:rgba(212,148,58,.04);}.fi-archive-dir{font-weight:600;color:var(--accent);}.fi-exif-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:8px;}.fi-exif-table td{padding:3px 8px;border-bottom:1px solid var(--border);}.fi-exif-table td:first-child{font-weight:600;color:var(--text-tertiary);width:140px;}.fi-copy-bar{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px;}.fi-copy-btn{padding:6px 12px;border-radius:6px;border:1.5px solid var(--text-tertiary);font-size:12px;font-weight:600;cursor:pointer;background:var(--bg-card);color:var(--text-primary);transition:all var(--transition);}.fi-copy-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted);}.fi-copy-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.fi-search-global{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:var(--bg-primary);color:var(--text-primary);margin-bottom:8px;}.fi-search-results{max-height:300px;overflow:auto;font-size:12px;}.fi-search-hit{padding:6px 10px;border-bottom:1px solid var(--border);cursor:pointer;}.fi-search-hit:hover{background:rgba(212,148,58,.04);}.fi-search-tab{font-weight:600;color:var(--accent);margin-right:6px;}.fi-theme-toggle{position:absolute;top:10px;right:10px;padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--bg-card);cursor:pointer;font-size:16px;z-index:10;}.fi-hash-id{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);margin-top:8px;}.fi-hash-input{width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-family:var(--font-mono);font-size:12px;background:var(--bg-primary);color:var(--text-primary);}.fi-lsb-controls{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px;}.fi-lsb-btn{padding:4px 10px;border-radius:6px;border:1px solid var(--border);font-size:11px;font-weight:600;cursor:pointer;background:var(--bg-card);}.fi-lsb-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);}.fi-csv-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:8px;overflow-x:auto;display:block;}.fi-csv-table th{padding:4px 8px;border:1px solid var(--border);background:var(--bg-card);font-weight:600;cursor:pointer;white-space:nowrap;font-size:10px;text-transform:uppercase;}.fi-csv-table td{padding:3px 8px;border:1px solid var(--border);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.fi-csv-table tr:hover{background:rgba(212,148,58,.04);}.fi-privacy-item{padding:6px 10px;border:1px solid rgba(236,72,153,.3);border-radius:6px;margin:3px 0;font-size:11px;background:rgba(236,72,153,.04);}.fi-sigma{font-family:var(--font-mono);font-size:11px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);white-space:pre-wrap;margin-top:6px;}.fi-session{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;}.fi-session-item{padding:4px 10px;border:1px solid var(--border);border-radius:999px;font-size:11px;font-family:var(--font-mono);background:var(--bg-card);}.fi-rom-info{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:12px;margin-top:6px;}.fi-rom-info dt{font-weight:600;color:var(--text-tertiary);}.fi-rom-info dd{margin:0;font-family:var(--font-mono);}.ip-form{display:flex;flex-direction:column;gap:10px;}.ip-form__label{font-size:0.72rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);}.ip-form__row{display:flex;gap:8px;flex-wrap:wrap;}.ip-form__input{flex:1;min-width:240px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:10px 14px;font-family:var(--font-mono);font-size:0.88rem;transition:border-color var(--transition);}.ip-form__input:focus{outline:none;border-color:var(--accent);}.ip-form__input::placeholder{color:var(--text-tertiary);}.ip-form__btn{padding:10px 18px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:0.86rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.ip-form__btn:hover{border-color:var(--accent);color:var(--accent);}.ip-form__btn--primary{background:var(--accent);color:#fff;border-color:var(--accent);}.ip-form__btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff;}.ip-form__btn:disabled{opacity:0.55;cursor:wait;}.ip-form__hint{font-size:0.75rem;color:var(--text-tertiary);}.ip-form__examples{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}.ip-form__examples-label{font-size:0.74rem;color:var(--text-tertiary);margin-right:2px;}.ip-form__chip{padding:4px 10px;border-radius:999px;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-mono);font-size:0.74rem;font-weight:500;cursor:pointer;transition:all var(--transition);}.ip-form__chip:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);}.ip-form__error{padding:10px 14px;border-radius:var(--radius-sm);background:rgba(232,84,84,0.08);border:1px solid rgba(232,84,84,0.35);color:#f08080;font-size:0.86rem;}.ub-tool-panel__spacer{flex:1;}.ip-panel__copy-all{padding:5px 12px;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);font-size:0.74rem;font-weight:500;cursor:pointer;transition:all var(--transition);}.ip-panel__copy-all:hover{border-color:var(--accent);color:var(--accent);}.ip-map{width:100%;min-height:320px;height:42vh;max-height:440px;background:var(--bg-primary);border-bottom:1px solid var(--border-subtle);position:relative;}.ip-map .maplibregl-ctrl-attrib-inner a{color:var(--text-secondary);}.ip-map .maplibregl-popup-content{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:10px 14px;font-family:var(--font-body);font-size:0.82rem;}.ip-map .maplibregl-popup-tip{border-top-color:var(--border);border-bottom-color:var(--border);}.ip-map .maplibregl-ctrl-group{background:var(--bg-card);box-shadow:var(--shadow-sm);border:1px solid var(--border);border-radius:var(--radius-sm);}.ip-map .maplibregl-ctrl-group button{background:transparent;color:var(--text-primary);}.ip-map .maplibregl-ctrl-group button:hover{background:var(--bg-card-hover);}.ip-results{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;padding:16px 20px 18px;margin:0;}.ip-results dt{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);padding-top:4px;}.ip-results dd{margin:0;font-family:var(--font-mono);font-size:0.85rem;font-weight:500;color:var(--text-primary);cursor:pointer;padding:3px 8px;border-radius:4px;transition:background var(--transition),color var(--transition);word-break:break-word;display:inline-block;justify-self:start;max-width:100%;}.ip-results dd:hover{background:var(--accent-muted);color:var(--accent);}.ip-results dd.is-copied{background:rgba(61,220,132,0.15);color:#7be0a5;}.ip-results dd.is-empty{color:var(--text-tertiary);font-style:italic;cursor:default;}.ip-results dd.is-empty:hover{background:transparent;}.ip-results .ip-flag{font-size:1.05rem;margin-right:6px;vertical-align:-2px;}.ip-results .ip-flag-wrap{display:inline-flex;align-items:center;}.ip-results .ip-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:var(--accent-muted);color:var(--accent);border:1px solid var(--accent-border);font-size:0.68rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;font-family:var(--font-body);}.ip-results .ip-badge--warn{background:rgba(232,160,84,0.1);color:#e4b060;border-color:rgba(232,160,84,0.35);}.ip-empty{padding:36px 24px;text-align:center;color:var(--text-tertiary);}.ip-empty__icon{display:block;margin:0 auto 10px;opacity:0.5;}.ip-empty p{margin:0;font-size:0.88rem;max-width:420px;margin-inline:auto;}@media (max-width:720px){.ip-form__btn{flex:1;}.ip-map{min-height:260px;height:38vh;}.ip-results{grid-template-columns:1fr;gap:2px 0;padding:14px 16px;}.ip-results dt{padding-top:10px;}}.po-head-spacer{flex:1;}.po-pyodide-status{font-size:0.7rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--text-tertiary);padding:3px 8px;border-radius:4px;background:var(--bg-primary);border:1px solid var(--border);}.po-pyodide-status--ok{color:#7be0a5;border-color:rgba(61,220,132,0.35);background:rgba(61,220,132,0.08);}.po-editor{width:100%;min-height:260px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:12px 14px;font-family:var(--font-mono);font-size:0.84rem;line-height:1.55;resize:vertical;tab-size:4;-moz-tab-size:4;transition:border-color var(--transition);}.po-editor:focus{outline:none;border-color:var(--accent);}.po-editor--out{background:var(--bg-primary);min-height:320px;}.po-levels{margin-top:14px;padding:12px 14px 10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);}.po-levels__head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;}.po-levels__title{flex:1;font-size:0.72rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);}.po-preset{padding:6px 12px;border-radius:var(--radius-sm);background:var(--accent);color:#fff;border:1px solid var(--accent);font-size:0.78rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.po-preset:hover{background:var(--accent-hover);border-color:var(--accent-hover);}.po-preset--ghost{background:transparent;color:var(--text-secondary);border-color:var(--border);}.po-preset--ghost:hover{background:var(--bg-card-hover);color:var(--text-primary);}.po-levels__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px;}.po-level{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:0.82rem;transition:border-color var(--transition),background var(--transition);}.po-level:has(input:checked){border-color:var(--accent);background:var(--accent-muted);}.po-level input[type="checkbox"]{accent-color:var(--accent);flex-shrink:0;}.po-level__n{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--border);color:var(--text-primary);font-size:0.7rem;font-weight:700;flex-shrink:0;}.po-level:has(input:checked) .po-level__n{background:var(--accent);color:#fff;}.po-level__name{font-weight:600;color:var(--text-primary);}.po-level__desc{color:var(--text-tertiary);font-size:0.72rem;flex:1;}.po-depth-select{margin-left:4px;padding:2px 6px;background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-family:var(--font-mono);font-size:0.72rem;}.po-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;}.po-go{padding:10px 18px;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:0.88rem;font-weight:700;cursor:pointer;transition:all var(--transition);}.po-go:hover{background:var(--accent-hover);border-color:var(--accent-hover);}.po-go:disabled{opacity:0.55;cursor:wait;}.po-verify{padding:10px 16px;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:0.86rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.po-verify:hover:not(:disabled){border-color:var(--accent);color:var(--accent);}.po-verify:disabled{opacity:0.55;cursor:not-allowed;}.po-progress{font-family:var(--font-mono);font-size:0.76rem;color:var(--text-tertiary);}.po-error{margin-top:12px;padding:10px 14px;border-radius:var(--radius-sm);background:rgba(232,84,84,0.08);border:1px solid rgba(232,84,84,0.35);color:#f08080;font-size:0.86rem;font-family:var(--font-mono);}.po-size,.po-resistance{font-size:0.7rem;font-weight:600;letter-spacing:0.04em;padding:3px 8px;border-radius:4px;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-mono);}.po-resistance--ok{color:#7be0a5;border-color:rgba(61,220,132,0.35);background:rgba(61,220,132,0.08);}.po-resistance--warn{color:#e4b060;border-color:rgba(232,160,84,0.35);background:rgba(232,160,84,0.10);}.po-resistance--low{color:#f08080;border-color:rgba(232,84,84,0.35);background:rgba(232,84,84,0.08);}.po-out-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--border-subtle);}.po-out-btn{padding:7px 14px;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:0.82rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.po-out-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);}.po-out-btn:disabled{opacity:0.5;cursor:not-allowed;}.po-verify-out{font-family:var(--font-mono);font-size:0.76rem;}.po-verify-ok{color:#7be0a5;}.po-verify-warn{color:#e4b060;}.po-verify-err{color:#f08080;}.ub-tool-layout:has(#po-input){display:block;}.ub-tool-layout:has(#po-input) > *{margin-bottom:16px;}@media (max-width:720px){.po-levels__grid{grid-template-columns:1fr;}}.nx-form{display:flex;flex-direction:column;gap:10px;}.nx-form__label{font-size:0.72rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);}.nx-form__row{display:flex;gap:8px;flex-wrap:wrap;}.nx-form__input{flex:1;min-width:240px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:10px 14px;font-family:var(--font-mono);font-size:0.88rem;transition:border-color var(--transition);}.nx-form__input:focus{outline:none;border-color:var(--accent);}.nx-form__input::placeholder{color:var(--text-tertiary);}.nx-form__btn{padding:10px 18px;border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:#fff;font-size:0.86rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.nx-form__btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);}.nx-form__btn:disabled{opacity:0.55;cursor:wait;}.nx-form__hint{font-size:0.75rem;color:var(--text-tertiary);}.nx-form__examples{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}.nx-form__examples-label{font-size:0.74rem;color:var(--text-tertiary);margin-right:2px;}.nx-form__chip{padding:4px 10px;border-radius:999px;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-mono);font-size:0.74rem;font-weight:500;cursor:pointer;transition:all var(--transition);}.nx-form__chip:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);}.nx-form__error{padding:10px 14px;border-radius:var(--radius-sm);background:rgba(232,84,84,0.08);border:1px solid rgba(232,84,84,0.35);color:#f08080;font-size:0.86rem;}.nx-results{display:block;padding:0;margin:0;}.nx-results__head{padding:12px 16px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:0.78rem;color:var(--text-secondary);}.nx-results__head strong{color:var(--text-primary);font-family:var(--font-mono);}.nx-results__head .nx-spacer{flex:1;}.nx-results__head a{color:var(--accent);text-decoration:none;}.nx-results__head a:hover{text-decoration:underline;}.nx-table{width:100%;border-collapse:collapse;font-size:0.82rem;}.nx-table th,.nx-table td{padding:9px 14px;border-bottom:1px solid var(--border-subtle);text-align:left;vertical-align:top;}.nx-table th{font-weight:600;font-size:0.7rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);background:transparent;}.nx-table tr:last-child td{border-bottom:0;}.nx-table td{color:var(--text-primary);}.nx-table .nx-node{display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:0.82rem;}.nx-table .nx-flag{font-size:1rem;line-height:1;}.nx-table .nx-node-loc{color:var(--text-primary);font-weight:500;}.nx-table .nx-node-asn{display:block;color:var(--text-tertiary);font-family:var(--font-mono);font-size:0.7rem;margin-top:2px;}.nx-table .nx-mono{font-family:var(--font-mono);font-size:0.78rem;color:var(--text-secondary);}.nx-status{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:0.78rem;white-space:nowrap;}.nx-status::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 18%,transparent);}.nx-status--ok{color:#3ddc84;}.nx-status--warn{color:#e4b060;}.nx-status--err{color:#f08080;}.nx-status--pending{color:var(--text-tertiary);}.nx-status--pending::before{animation:nx-pending-pulse 1.2s ease-in-out infinite;}@keyframes nx-pending-pulse{0%,100%{opacity:0.35;}50%{opacity:1;}}.nx-bar{display:inline-block;vertical-align:middle;width:90px;height:6px;background:var(--border-subtle);border-radius:3px;overflow:hidden;margin-left:8px;}.nx-bar__fill{display:block;height:100%;background:var(--accent);transition:width 0.3s ease;}.nx-empty{padding:36px 24px;text-align:center;color:var(--text-tertiary);}.nx-empty__icon{display:block;margin:0 auto 10px;opacity:0.5;}.nx-empty p{margin:0;font-size:0.88rem;max-width:420px;margin-inline:auto;}.nx-trace{padding:0 16px 16px;}.nx-trace__node{margin-top:14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary);overflow:hidden;}.nx-trace__header{padding:8px 12px;background:var(--bg-card);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:8px;font-size:0.82rem;}.nx-trace__body{padding:0;}.nx-trace__hop{display:grid;grid-template-columns:36px 140px 1fr 80px;gap:10px;padding:6px 12px;border-bottom:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:0.76rem;}.nx-trace__hop:last-child{border-bottom:0;}.nx-trace__hop-n{color:var(--text-tertiary);}.nx-trace__hop-ip{color:var(--text-primary);}.nx-trace__hop-host{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.nx-trace__hop-rtt{color:var(--accent);text-align:right;}.nx-trace__hop--star .nx-trace__hop-ip{color:var(--text-tertiary);font-style:italic;}@media (max-width:720px){.nx-table th:nth-child(n+4),.nx-table td:nth-child(n+4){display:none;}.nx-trace__hop{grid-template-columns:30px 1fr 70px;}.nx-trace__hop-host{display:none;}}.ip-results{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;padding:16px 20px 18px;margin:0;}.ip-results dt{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);padding-top:4px;}.ip-results dd{margin:0;font-family:var(--font-mono);font-size:0.85rem;font-weight:500;color:var(--text-primary);cursor:pointer;padding:3px 8px;border-radius:4px;transition:background var(--transition),color var(--transition);word-break:break-word;display:inline-block;justify-self:start;max-width:100%;}.ip-results dd:hover{background:var(--accent-muted);color:var(--accent);}.ip-results dd.is-copied{background:rgba(61,220,132,0.15);color:#7be0a5;}.ip-results dd.is-empty{color:var(--text-tertiary);font-style:italic;cursor:default;}.ip-results dd.is-empty:hover{background:transparent;}.ip-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:var(--accent-muted);color:var(--accent);border:1px solid var(--accent-border);font-size:0.68rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;font-family:var(--font-body);}@media (max-width:720px){.ip-results{grid-template-columns:1fr;gap:2px 0;padding:14px 16px;}.ip-results dt{padding-top:10px;}}.ns,.cv,.tz{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:22px;}.ub-tool-layout:has(.ns),.ub-tool-layout:has(.cv),.ub-tool-layout:has(.tz){display:block;}.ns__pair,.cv__pair,.tz__pair{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:stretch;}.ns__col,.cv__col,.tz__col{display:flex;flex-direction:column;gap:6px;}.ns__label,.cv__label,.tz__label{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);}.ns__input,.cv__input,.tz__input{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:14px 16px;font-family:var(--font-mono);font-size:1.2rem;font-weight:600;transition:border-color var(--transition);}.ns__input:focus,.cv__input:focus,.tz__input:focus{outline:none;border-color:var(--accent);}.ns__arrow,.cv__arrow,.tz__arrow{align-self:center;color:var(--accent);font-size:1.6rem;user-select:none;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background var(--transition);}.ns__arrow:hover,.cv__arrow:hover,.tz__arrow:hover{background:var(--accent-muted);}.ns__copy,.cv__copy,.tz__copy{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-tertiary);padding:5px 12px;font-size:0.76rem;cursor:pointer;transition:all var(--transition);align-self:flex-start;}.ns__copy:hover,.cv__copy:hover,.tz__copy:hover{border-color:var(--accent);color:var(--accent);}.is-copied{color:#7be0a5 !important;border-color:rgba(61,220,132,0.4) !important;}.cv__rate,.tz__info{margin-top:12px;padding:10px 14px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:0.84rem;color:var(--text-secondary);text-align:center;}.cv__rate strong,.tz__info strong{color:var(--accent);}.cv__source{font-size:0.7rem;color:var(--text-tertiary);margin-left:8px;}.cv__loading{color:var(--text-tertiary);font-style:italic;}.cv__error{color:#f08080;}.ns__related,.cv__related,.tz__related{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px;}.ns__related-label,.cv__related-label,.tz__related-label{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);align-self:center;margin-right:4px;}.ns__related-link,.cv__related-link,.tz__related-link{padding:5px 12px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:0.76rem;text-decoration:none;transition:all var(--transition);}.ns__related-link:hover,.cv__related-link:hover,.tz__related-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted);}@media (max-width:600px){.ns__pair,.cv__pair,.tz__pair{grid-template-columns:1fr;}.ns__arrow,.cv__arrow,.tz__arrow{transform:rotate(90deg);margin:4px auto;}}.po-head-spacer{flex:1;}.po-pyodide-status{font-size:0.7rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--text-tertiary);padding:3px 8px;border-radius:4px;background:var(--bg-primary);border:1px solid var(--border);}.po-pyodide-status--ok{color:#7be0a5;border-color:rgba(61,220,132,0.35);background:rgba(61,220,132,0.08);}.po-editor{width:100%;min-height:260px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:12px 14px;font-family:var(--font-mono);font-size:0.84rem;line-height:1.55;resize:vertical;tab-size:4;-moz-tab-size:4;transition:border-color var(--transition);}.po-editor:focus{outline:none;border-color:var(--accent);}.po-editor--out{background:var(--bg-primary);min-height:320px;}.po-levels{margin-top:14px;padding:12px 14px 10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);}.po-levels__head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;}.po-levels__title{flex:1;font-size:0.72rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);}.po-preset{padding:6px 12px;border-radius:var(--radius-sm);background:var(--accent);color:#fff;border:1px solid var(--accent);font-size:0.78rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.po-preset:hover{background:var(--accent-hover);border-color:var(--accent-hover);}.po-preset--ghost{background:transparent;color:var(--text-secondary);border-color:var(--border);}.po-preset--ghost:hover{background:var(--bg-card-hover);color:var(--text-primary);}.po-levels__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px;}.po-level{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:0.82rem;transition:border-color var(--transition),background var(--transition);}.po-level:has(input:checked){border-color:var(--accent);background:var(--accent-muted);}.po-level input[type="checkbox"]{accent-color:var(--accent);flex-shrink:0;}.po-level__n{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--border);color:var(--text-primary);font-size:0.7rem;font-weight:700;flex-shrink:0;}.po-level:has(input:checked) .po-level__n{background:var(--accent);color:#fff;}.po-level__name{font-weight:600;color:var(--text-primary);}.po-level__desc{color:var(--text-tertiary);font-size:0.72rem;flex:1;}.po-depth-select{margin-left:4px;padding:2px 6px;background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-family:var(--font-mono);font-size:0.72rem;}.po-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;}.po-go{padding:10px 18px;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:0.88rem;font-weight:700;cursor:pointer;transition:all var(--transition);}.po-go:hover{background:var(--accent-hover);border-color:var(--accent-hover);}.po-go:disabled{opacity:0.55;cursor:wait;}.po-verify{padding:10px 16px;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:0.86rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.po-verify:hover:not(:disabled){border-color:var(--accent);color:var(--accent);}.po-verify:disabled{opacity:0.55;cursor:not-allowed;}.po-progress{font-family:var(--font-mono);font-size:0.76rem;color:var(--text-tertiary);}.po-error{margin-top:12px;padding:10px 14px;border-radius:var(--radius-sm);background:rgba(232,84,84,0.08);border:1px solid rgba(232,84,84,0.35);color:#f08080;font-size:0.86rem;font-family:var(--font-mono);}.po-size,.po-resistance{font-size:0.7rem;font-weight:600;letter-spacing:0.04em;padding:3px 8px;border-radius:4px;background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-mono);}.po-resistance--ok{color:#7be0a5;border-color:rgba(61,220,132,0.35);background:rgba(61,220,132,0.08);}.po-resistance--warn{color:#e4b060;border-color:rgba(232,160,84,0.35);background:rgba(232,160,84,0.10);}.po-resistance--low{color:#f08080;border-color:rgba(232,84,84,0.35);background:rgba(232,84,84,0.08);}.po-out-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--border-subtle);}.po-out-btn{padding:7px 14px;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:0.82rem;font-weight:600;cursor:pointer;transition:all var(--transition);}.po-out-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);}.po-out-btn:disabled{opacity:0.5;cursor:not-allowed;}.po-verify-out{font-family:var(--font-mono);font-size:0.76rem;}.po-verify-ok{color:#7be0a5;}.po-verify-warn{color:#e4b060;}.po-verify-err{color:#f08080;}.ub-tool-layout:has(#po-input){display:block;}.ub-tool-layout:has(#po-input) > *{margin-bottom:16px;}@media (max-width:720px){.po-levels__grid{grid-template-columns:1fr;}}.ec{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:22px;}.ub-tool-layout:has(.ec){display:block;}.ec__pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;}.ec__col{display:flex;flex-direction:column;gap:6px;}.ec__label{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);}.ec__textarea{width:100%;min-height:220px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:12px 14px;font-family:var(--font-mono);font-size:0.9rem;line-height:1.5;resize:vertical;transition:border-color var(--transition);}.ec__textarea:focus{outline:none;border-color:var(--accent);}.ec__textarea--out{color:var(--accent);background:var(--bg-primary);}.ec__shift{width:80px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:6px 10px;font-family:var(--font-mono);font-size:0.85rem;}.ec__row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;}.ec__row label{font-size:0.74rem;color:var(--text-tertiary);}.ec__copy{background:transparent;border:1.5px solid var(--text-tertiary);border-radius:var(--radius-sm);color:var(--text-primary);padding:8px 14px;font-size:0.8rem;font-weight:600;cursor:pointer;transition:all var(--transition);align-self:flex-start;min-height:32px;}.ec__copy:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted);}.ec__copy:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}.ec__copy.is-copied{color:#128a4c;border-color:#128a4c;background:rgba(18,138,76,0.08);}html[data-theme="dark"] .ec__copy.is-copied{color:#7be0a5;border-color:#7be0a5;background:rgba(123,224,165,0.1);}.ec__related{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px;}.ec__related-label{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);align-self:center;margin-right:4px;}.ec__related-link{padding:5px 12px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:0.76rem;text-decoration:none;transition:all var(--transition);}.ec__related-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted);}@media (max-width:720px){.ec__pair{grid-template-columns:1fr;}}.uc{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px 22px;}.uc__pair{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:stretch;margin-bottom:12px;}.uc__col{display:flex;flex-direction:column;gap:6px;}.uc__label{font-size:0.7rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-tertiary);}.uc__input{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:14px 16px;font-family:var(--font-mono);font-size:1.4rem;font-weight:600;transition:border-color var(--transition);-moz-appearance:textfield;}.uc__input::-webkit-outer-spin-button,.uc__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}.uc__input:focus{outline:none;border-color:var(--accent);}.uc__suffix{font-size:0.78rem;color:var(--text-tertiary);font-family:var(--font-mono);}.uc__arrow{align-self:center;color:var(--accent);font-size:1.6rem;user-select:none;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background var(--transition);}.uc__arrow:hover{background:var(--accent-muted);}.uc__formula{margin-top:8px;padding:10px 14px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:0.84rem;color:var(--text-secondary);text-align:center;}.uc__formula strong{color:var(--accent);}.uc__quick{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;align-items:center;}.uc__quick-label{font-size:0.72rem;color:var(--text-tertiary);margin-right:4px;}.uc__quick-btn{padding:5px 12px;background:var(--bg-card-hover);border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);font-family:var(--font-mono);font-size:0.78rem;cursor:pointer;transition:all var(--transition);}.uc__quick-btn:hover{background:var(--accent-muted);border-color:var(--accent);color:var(--accent);}.uc__related{margin-top:18px;display:flex;flex-wrap:wrap;gap:6px;}.uc__related-link{padding:5px 12px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:0.76rem;text-decoration:none;transition:all var(--transition);}.uc__related-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-muted);}.uc__related-label{font-size:0.7rem;color:var(--text-tertiary);align-self:center;margin-right:4px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;}.uc__copy{margin-left:auto;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-tertiary);padding:5px 10px;font-size:0.76rem;cursor:pointer;transition:all var(--transition);}.uc__copy:hover{border-color:var(--accent);color:var(--accent);}.uc__copy.is-copied{color:#7be0a5;border-color:rgba(61,220,132,0.4);}.ub-tool-layout:has(.uc){display:block;}@media (max-width:600px){.uc__pair{grid-template-columns:1fr;}.uc__arrow{transform:rotate(90deg);margin:4px auto;}.uc__input{font-size:1.2rem;padding:12px 14px;}}