:root{--bg:#0f1012;--bg-elev:#16181c;--bg-card:#1a1c21;--bg-hover:#22252b;--border:#26292f;--border-strong:#34383f;--text:#e8e6e3;--text-muted:#8b8f96;--text-dim:#5a5e66;--accent:#e2b714;--accent-soft:#e2b7141f;--accent-hover:#f0c93a;--danger:#ef4444;--success:#22c55e;--font:"JetBrains Mono", "Roboto Mono", ui-monospace, monospace;--fs-xs:.72rem;--fs-sm:.82rem;--fs-md:.95rem;--fs-lg:1.15rem;--fs-xl:1.6rem;--fs-2xl:2.2rem;--fs-3xl:3.2rem;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px #0006;--shadow-lg:0 12px 40px #00000080;--t-fast:.15s ease;--t-base:.22s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh}#root{flex-direction:column;display:flex}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-md);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}::selection{background:var(--accent);color:var(--bg)}.app-layout{flex-direction:column;min-height:100vh;display:flex}.app-main{flex-direction:column;flex:1;display:flex}.navbar{padding:var(--sp-4) var(--sp-7);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);z-index:100;background:#0f1012d9;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.navbar-logo{font-size:var(--fs-lg);color:var(--accent);transition:filter var(--t-fast);align-items:center;gap:var(--sp-2);letter-spacing:-.02em;font-weight:700;display:flex}.navbar-logo:hover{filter:brightness(1.2)}.navbar-links{gap:var(--sp-5);flex-wrap:wrap;align-items:center;display:flex}.navbar-links a{color:var(--text-muted);font-size:var(--fs-sm);transition:color var(--t-fast);padding:var(--sp-1) 0;position:relative}.navbar-links a:hover{color:var(--text)}.navbar-links a.active{color:var(--accent)}.navbar-links a.active:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:-2px;left:0;right:0}.footer{text-align:center;padding:var(--sp-6) var(--sp-5);color:var(--text-dim);font-size:var(--fs-sm);border-top:1px solid var(--border);margin-top:auto}.footer a{color:var(--accent);transition:filter var(--t-fast)}.footer a:hover{filter:brightness(1.2)}.home{width:100%;max-width:1180px;padding:var(--sp-8) var(--sp-6) var(--sp-7);margin:0 auto}.home-header{text-align:center;margin-bottom:var(--sp-8)}.home-header h1{font-size:var(--fs-3xl);color:var(--text);margin-bottom:var(--sp-3);letter-spacing:-.04em;font-weight:700;line-height:1.1}.home-header h1 .accent{color:var(--accent)}.home-header p{color:var(--text-muted);font-size:var(--fs-lg);max-width:560px;margin:0 auto;line-height:1.6}.home-controls{gap:var(--sp-4);margin-bottom:var(--sp-6);flex-direction:column;display:flex}.search-bar{width:100%;max-width:480px;margin:0 auto;position:relative}.search-bar input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--text);font-family:var(--font);font-size:var(--fs-md);padding:var(--sp-3) var(--sp-4) var(--sp-3) 42px;transition:border-color var(--t-fast), background var(--t-fast);outline:none}.search-bar input:focus{border-color:var(--accent);background:var(--bg-elev)}.search-bar input::placeholder{color:var(--text-dim)}.search-bar .search-icon{color:var(--text-dim);pointer-events:none;font-size:1rem;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.category-pills{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;display:flex}.category-pill{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);font-family:var(--font);font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-4);transition:all var(--t-fast);cursor:pointer;border-radius:999px}.category-pill:hover{border-color:var(--border-strong);color:var(--text)}.category-pill.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.tools-grid{gap:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.tool-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);transition:all var(--t-base);gap:var(--sp-3);cursor:pointer;flex-direction:column;display:flex;position:relative;overflow:hidden}.tool-card:before{content:"";background:linear-gradient(90deg, transparent, var(--card-accent,var(--accent)), transparent);opacity:0;height:2px;transition:opacity var(--t-base);position:absolute;top:0;left:0;right:0}.tool-card:hover{border-color:var(--card-accent,var(--accent));background:var(--bg-hover);box-shadow:var(--shadow-md);transform:translateY(-3px)}.tool-card:hover:before{opacity:1}.tool-card-header{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.tool-card-icon{filter:drop-shadow(0 0 12px var(--card-accent,var(--accent)));font-size:1.9rem;line-height:1}.tool-card-category{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;background:var(--bg-elev);border:1px solid var(--border);border-radius:999px;padding:3px 8px}.tool-card-name{font-size:var(--fs-lg);color:var(--text);letter-spacing:-.01em;font-weight:600}.tool-card-desc{font-size:var(--fs-sm);color:var(--text-muted);flex:1;line-height:1.55}.tool-card-footer{margin-top:var(--sp-2);justify-content:space-between;align-items:center;display:flex}.tool-card-tags{gap:var(--sp-1);flex-wrap:wrap;display:flex}.tool-card-tag{font-size:var(--fs-xs);color:var(--text-dim);background:var(--bg-elev);border-radius:var(--r-sm);border:1px solid var(--border);padding:2px 7px}.tool-card-arrow{color:var(--card-accent,var(--accent));transition:transform var(--t-base);font-size:1.2rem}.tool-card:hover .tool-card-arrow{transform:translate(6px)}.empty-state{text-align:center;padding:var(--sp-8) var(--sp-5);color:var(--text-muted)}.empty-state .empty-icon{margin-bottom:var(--sp-3);opacity:.6;font-size:2.5rem}.empty-state h3{font-size:var(--fs-lg);color:var(--text);margin-bottom:var(--sp-2);font-weight:600}.empty-state p{font-size:var(--fs-sm)}.tool-shell{flex-direction:column;flex:1;width:100%;display:flex}.tool-shell-container{width:100%;max-width:1180px;padding:var(--sp-6) var(--sp-6) var(--sp-8);flex-direction:column;flex:1;margin:0 auto;display:flex}.breadcrumbs{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-5);font-size:var(--fs-sm);color:var(--text-dim);flex-wrap:wrap;display:flex}.breadcrumbs a{color:var(--text-muted);transition:color var(--t-fast)}.breadcrumbs a:hover{color:var(--accent)}.breadcrumbs .crumb-sep{color:var(--text-dim);opacity:.5}.breadcrumbs .crumb-current{color:var(--text)}.tool-header{margin-bottom:var(--sp-6);padding-bottom:var(--sp-5);border-bottom:1px solid var(--border)}.tool-header-top{align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-3);display:flex}.tool-header-icon{font-size:2.4rem;line-height:1}.tool-header-title{font-size:var(--fs-2xl);color:var(--text);letter-spacing:-.02em;font-weight:700;line-height:1.2}.tool-header-desc{color:var(--text-muted);font-size:var(--fs-md);max-width:720px;line-height:1.6}.tool-header-category{font-size:var(--fs-xs);color:var(--accent);background:var(--accent-soft);margin-top:var(--sp-3);text-transform:uppercase;letter-spacing:.08em;border:1px solid #e2b71440;border-radius:999px;padding:3px 10px;display:inline-block}.tool-content{flex-direction:column;flex:1;display:flex}.not-found{text-align:center;padding:var(--sp-8) var(--sp-5);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.not-found h1{color:var(--accent);margin-bottom:var(--sp-3);letter-spacing:-.05em;font-size:7rem;font-weight:700;line-height:1}.not-found p{color:var(--text-muted);margin-bottom:var(--sp-6);font-size:var(--fs-lg)}.not-found .btn-home{color:var(--accent);border:1px solid var(--accent);padding:var(--sp-3) var(--sp-6);border-radius:var(--r-md);transition:all var(--t-fast);font-size:var(--fs-sm);font-weight:500;display:inline-block}.not-found .btn-home:hover{background:var(--accent);color:var(--bg)}.page-loading{padding:var(--sp-8);color:var(--text-muted);font-size:var(--fs-sm);justify-content:center;align-items:center;gap:var(--sp-3);display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-boundary{text-align:center;padding:var(--sp-8) var(--sp-5);color:var(--text-muted)}.error-boundary h2{color:var(--danger);font-size:var(--fs-xl);margin-bottom:var(--sp-3);font-weight:600}.error-boundary pre{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);text-align:left;font-size:var(--fs-xs);color:var(--text-dim);max-width:640px;margin:var(--sp-4) auto 0;overflow:auto}@media (width<=768px){.navbar{padding:var(--sp-3) var(--sp-4)}.navbar-links{gap:var(--sp-4)}.navbar-links a{font-size:var(--fs-xs)}.home{padding:var(--sp-6) var(--sp-4) var(--sp-5)}.home-header h1{font-size:var(--fs-2xl)}.home-header p{font-size:var(--fs-md)}.tool-shell-container{padding:var(--sp-4) var(--sp-4) var(--sp-6)}.tool-header-title{font-size:var(--fs-xl)}.tools-grid{grid-template-columns:1fr}.not-found h1{font-size:4.5rem}}.subtools-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.subtool-card{align-items:center;gap:var(--sp-4);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);transition:all var(--t-base);cursor:pointer;display:flex;position:relative;overflow:hidden}.subtool-card:before{content:"";background:var(--card-accent,var(--accent));opacity:0;width:3px;transition:opacity var(--t-base);position:absolute;top:0;bottom:0;left:0}.subtool-card:hover{border-color:var(--card-accent,var(--accent));background:var(--bg-hover);box-shadow:var(--shadow-md);transform:translate(4px)}.subtool-card:hover:before{opacity:1}.subtool-icon{filter:drop-shadow(0 0 10px var(--card-accent,var(--accent)));flex-shrink:0;font-size:2rem;line-height:1}.subtool-body{flex:1;min-width:0}.subtool-name{font-size:var(--fs-md);color:var(--text);letter-spacing:-.01em;margin-bottom:2px;font-weight:600}.subtool-desc{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5}.subtool-arrow{color:var(--card-accent,var(--accent));transition:transform var(--t-base);flex-shrink:0;font-size:1.2rem}.subtool-card:hover .subtool-arrow{transform:translate(4px)}@media (width<=768px){.subtools-grid{grid-template-columns:1fr}}.pdf-tool{gap:var(--sp-5);flex-direction:column;width:100%;max-width:720px;margin:0 auto;display:flex}.pdf-dropzone{border:2px dashed var(--border-strong);border-radius:var(--r-lg);padding:var(--sp-8) var(--sp-6);text-align:center;cursor:pointer;transition:all var(--t-base);background:var(--bg-card)}.pdf-dropzone:hover,.pdf-dropzone.dragging{border-color:var(--accent);background:var(--accent-soft)}.pdf-dropzone-icon{margin-bottom:var(--sp-3);font-size:3rem;line-height:1}.pdf-dropzone h3{font-size:var(--fs-lg);color:var(--text);margin-bottom:var(--sp-2);font-weight:600}.pdf-dropzone p{color:var(--text-muted);font-size:var(--fs-sm)}.pdf-file-info{padding:var(--sp-4) var(--sp-5);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.pdf-file-left{align-items:center;gap:var(--sp-4);min-width:0;display:flex}.pdf-file-icon{flex-shrink:0;font-size:2rem}.pdf-file-name{color:var(--text);font-size:var(--fs-md);text-overflow:ellipsis;white-space:nowrap;max-width:380px;font-weight:500;overflow:hidden}.pdf-file-size{color:var(--text-dim);font-size:var(--fs-xs);margin-top:2px}.pdf-file-remove{color:var(--text-dim);cursor:pointer;padding:var(--sp-2);border-radius:var(--r-sm);transition:all var(--t-fast);background:0 0;border:none;flex-shrink:0;font-size:1.2rem}.pdf-file-remove:hover{background:var(--bg-hover);color:var(--danger)}.pdf-target{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5)}.pdf-target-label{color:var(--text-muted);font-size:var(--fs-sm);margin-bottom:var(--sp-3);text-transform:uppercase;letter-spacing:.08em;display:block}.pdf-target-input-row{gap:var(--sp-3);display:flex}.pdf-target-number{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-family:var(--font);font-size:var(--fs-lg);padding:var(--sp-3) var(--sp-4);transition:border-color var(--t-fast);outline:none;flex:1}.pdf-target-number:focus{border-color:var(--accent)}.pdf-target-unit{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-family:var(--font);font-size:var(--fs-lg);padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:border-color var(--t-fast);outline:none}.pdf-target-unit:focus{border-color:var(--accent)}.pdf-target-hint{color:var(--text-dim);font-size:var(--fs-sm);margin-top:var(--sp-3)}.pdf-target-hint strong{color:var(--text-muted);font-weight:500}.pdf-target-warn{color:var(--accent);font-size:var(--fs-sm);margin-top:var(--sp-2)}.pdf-compress-btn{background:var(--accent);color:var(--bg);border-radius:var(--r-md);font-family:var(--font);font-size:var(--fs-md);padding:var(--sp-4) var(--sp-5);cursor:pointer;transition:all var(--t-fast);border:none;font-weight:600}.pdf-compress-btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.pdf-compress-btn:disabled{opacity:.5;cursor:not-allowed}.pdf-progress{align-items:center;gap:var(--sp-3);color:var(--text-muted);font-size:var(--fs-sm);padding:var(--sp-3) 0;display:flex}.pdf-error{color:#fca5a5;padding:var(--sp-4);border-radius:var(--r-md);font-size:var(--fs-sm);background:#ef44441a;border:1px solid #ef44444d}.pdf-result{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-6);gap:var(--sp-5);flex-direction:column;display:flex}.pdf-result-header{justify-content:space-between;align-items:center;gap:var(--sp-4);display:flex}.pdf-result-header h3{font-size:var(--fs-lg);color:var(--text);font-weight:600}.pdf-result-grade{color:var(--accent);background:var(--accent-soft);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);border:1px solid #e2b7144d;font-size:1.6rem;font-weight:700;line-height:1}.pdf-result-grade.grade-A{color:#22c55e;background:#22c55e1a;border-color:#22c55e4d}.pdf-result-grade.grade-B{color:#3b82f6;background:#3b82f61a;border-color:#3b82f64d}.pdf-result-grade.grade-C{color:var(--accent)}.pdf-result-grade.grade-D{color:#f97316;background:#f973161a;border-color:#f973164d}.pdf-result-grade.grade-F{color:var(--danger);background:#ef44441a;border-color:#ef44444d}.pdf-result-grid{gap:var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.pdf-stat{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);text-align:center}.pdf-stat-label{color:var(--text-dim);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-2)}.pdf-stat-value{color:var(--text);font-size:var(--fs-lg);font-weight:600}.pdf-stat-value.accent{color:var(--accent)}.pdf-stat-value.green{color:#22c55e}.pdf-score{gap:var(--sp-2);flex-direction:column;display:flex}.pdf-score-header{color:var(--text-muted);font-size:var(--fs-sm);justify-content:space-between;display:flex}.pdf-score-value{color:var(--text);font-weight:600}.pdf-score-fill{background:linear-gradient(90deg, var(--accent), #22c55e);height:100%;transition:width var(--t-base);border-radius:999px}.pdf-score-note{color:var(--text-dim);font-size:var(--fs-xs);margin-top:var(--sp-1)}.pdf-result-actions{gap:var(--sp-3);flex-wrap:wrap;display:flex}.pdf-download{color:#4ecdc4;padding:var(--sp-3) var(--sp-5);border-radius:var(--r-md);font-family:var(--font);font-size:var(--fs-sm);cursor:pointer;transition:all var(--t-fast);justify-content:center;align-items:center;gap:var(--sp-2);background:0 0;border:1px solid #4ecdc4;font-weight:600;text-decoration:none;display:inline-flex}.pdf-download:hover{color:var(--bg);background:#4ecdc4;transform:translateY(-1px);box-shadow:0 4px 12px #4ecdc44d}@media (width<=768px){.pdf-result-grid{grid-template-columns:repeat(2,1fr)}.pdf-file-name{max-width:200px}.pdf-result-header h3{font-size:var(--fs-md)}}.jpg-quality-options{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.jpg-quality-btn{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);cursor:pointer;transition:all var(--t-fast);text-align:left;gap:var(--sp-1);font-family:var(--font);flex-direction:column;display:flex}.jpg-quality-btn:hover{border-color:var(--border-strong);background:var(--bg-hover)}.jpg-quality-btn.active{background:#4ecdc414;border-color:#4ecdc4}.jpg-quality-name{font-size:var(--fs-md);color:var(--text);font-weight:600}.jpg-quality-btn.active .jpg-quality-name{color:#4ecdc4}.jpg-quality-desc{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.4}.jpg-scale-options{gap:var(--sp-2);flex-wrap:wrap;display:flex}.jpg-preview-grid{gap:var(--sp-4);margin-top:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.jpg-preview-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);transition:all var(--t-fast);flex-direction:column;display:flex;overflow:hidden}.jpg-preview-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.jpg-preview-img-wrap{aspect-ratio:1/1.2;background:#0a0b0d;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.jpg-preview-img-wrap img{object-fit:contain;max-width:100%;max-height:100%;display:block}.jpg-preview-badge{top:var(--sp-2);left:var(--sp-2);color:var(--text);font-size:var(--fs-xs);border-radius:var(--r-sm);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;padding:3px 8px;font-weight:500;position:absolute}.jpg-preview-info{padding:var(--sp-3);font-size:var(--fs-xs);color:var(--text-dim);border-bottom:1px solid var(--border);justify-content:space-between;display:flex}.jpg-preview-dim{color:var(--text-muted)}.jpg-download-btn{text-align:center;padding:var(--sp-2) var(--sp-3);color:#4ecdc4;font-size:var(--fs-sm);transition:all var(--t-fast);border-top:1px solid var(--border);font-weight:500;text-decoration:none;display:block}.jpg-download-btn:hover{color:#4ecdc4;background:#4ecdc41a}@media (width<=768px){.jpg-quality-options{grid-template-columns:1fr}.jpg-preview-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.i2p-list-header{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.i2p-clear{border:1px solid var(--border);color:var(--text-dim);font-family:var(--font);font-size:var(--fs-xs);border-radius:var(--r-sm);cursor:pointer;transition:all var(--t-fast);background:0 0;padding:4px 10px}.i2p-clear:hover{border-color:var(--danger);color:var(--danger)}.i2p-list{gap:var(--sp-2);flex-direction:column;display:flex}.i2p-item{align-items:center;gap:var(--sp-3);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);transition:border-color var(--t-fast);display:flex}.i2p-item:hover{border-color:var(--border-strong)}.i2p-index{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-sm);width:24px;height:24px;color:var(--text-dim);font-size:var(--fs-xs);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.i2p-thumb{object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--border);background:#0a0b0d;flex-shrink:0;width:44px;height:44px}.i2p-meta{flex:1;min-width:0}.i2p-name{font-size:var(--fs-sm);color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;overflow:hidden}.i2p-sub{font-size:var(--fs-xs);color:var(--text-dim)}.i2p-controls{flex-shrink:0;gap:4px;display:flex}.i2p-icon-btn{border:1px solid var(--border);border-radius:var(--r-sm);width:28px;height:28px;color:var(--text-dim);font-family:var(--font);font-size:var(--fs-sm);cursor:pointer;transition:all var(--t-fast);background:0 0;justify-content:center;align-items:center;display:flex}.i2p-icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text);border-color:var(--border-strong)}.i2p-icon-btn:disabled{opacity:.3;cursor:not-allowed}.i2p-icon-btn.i2p-remove:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}@media (width<=480px){.i2p-name{max-width:120px}.i2p-thumb{width:36px;height:36px}}.rotate-angle-row{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.rotate-angle-btn{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);cursor:pointer;transition:all var(--t-fast);align-items:center;gap:var(--sp-2);font-family:var(--font);flex-direction:column;display:flex}.rotate-angle-btn:hover{border-color:var(--border-strong);background:var(--bg-hover)}.rotate-angle-btn.active{background:#4ecdc414;border-color:#4ecdc4}.rotate-angle-arrow{color:var(--text-muted);transition:color var(--t-fast);font-size:1.8rem;line-height:1}.rotate-angle-btn.active .rotate-angle-arrow{color:#4ecdc4}.rotate-angle-label{font-size:var(--fs-md);color:var(--text);font-weight:600}.rotate-angle-btn.active .rotate-angle-label{color:#4ecdc4}.pdf-target-number code,.pdf-target-hint code{background:var(--bg-elev);border-radius:var(--r-sm);color:var(--text-muted);border:1px solid var(--border);padding:1px 6px;font-size:.9em}.merge-file-icon{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-sm);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.3rem;display:flex}.orientation-grid{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.orientation-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);cursor:pointer;transition:all var(--t-fast);align-items:center;gap:var(--sp-2);font-family:var(--font);text-align:center;flex-direction:column;display:flex}.orientation-card:hover{border-color:var(--border-strong);background:var(--bg-hover)}.orientation-card.active{background:#4ecdc414;border-color:#4ecdc4;box-shadow:inset 0 0 0 1px #4ecdc4}.orientation-preview{width:60px;height:76px;margin-bottom:var(--sp-2);justify-content:center;align-items:center;gap:4px;display:flex;position:relative}.op-a{border:1.5px solid var(--text-dim);transition:all var(--t-fast);border-radius:3px}.orientation-card.active .op-a{background:#4ecdc414;border-color:#4ecdc4}.op-portrait{width:36px;height:50px}.op-landscape{width:56px;height:38px}.op-auto-a{width:28px;height:38px}.op-auto-b{width:38px;height:28px}.orientation-name{font-size:var(--fs-sm);color:var(--text);font-weight:600}.orientation-card.active .orientation-name{color:#4ecdc4}.orientation-desc{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.3}.layout-grid{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.layout-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);cursor:pointer;transition:all var(--t-fast);align-items:center;gap:var(--sp-2);font-family:var(--font);text-align:center;flex-direction:column;display:flex}.layout-card:hover{border-color:var(--border-strong);background:var(--bg-hover)}.layout-card.active{background:#4ecdc414;border-color:#4ecdc4;box-shadow:inset 0 0 0 1px #4ecdc4}.layout-preview{width:60px;height:72px;margin-bottom:var(--sp-2);justify-content:center;align-items:center;gap:3px;display:flex}.layout-preview.lp-horizontal{flex-direction:row}.layout-preview.lp-vertical{flex-direction:column}.lp-page{background:var(--bg-card);border:1.5px solid var(--text-dim);transition:all var(--t-fast);border-radius:3px;flex-shrink:0}.layout-preview:not(.lp-horizontal):not(.lp-vertical) .lp-page{width:16px;height:22px}.layout-preview.lp-horizontal .lp-page{width:22px;height:32px}.layout-preview.lp-vertical .lp-page{width:38px;height:20px}.layout-card.active .lp-page{background:#4ecdc426;border-color:#4ecdc4}.layout-name{font-size:var(--fs-sm);color:var(--text);font-weight:600}.layout-card.active .layout-name{color:#4ecdc4}.layout-desc{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.3}@media (width<=640px){.orientation-grid,.layout-grid{grid-template-columns:1fr}.orientation-card,.layout-card{text-align:left;flex-direction:row;justify-content:flex-start}.orientation-preview,.layout-preview{margin-bottom:0;margin-right:var(--sp-3);flex-shrink:0}}.split-mode-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));display:grid}.split-mode-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);cursor:pointer;transition:all var(--t-fast);gap:var(--sp-1);font-family:var(--font);text-align:left;flex-direction:column;display:flex}.split-mode-card:hover{border-color:var(--border-strong);background:var(--bg-hover);transform:translateY(-1px)}.split-mode-card.active{background:#4ecdc414;border-color:#4ecdc4;box-shadow:inset 0 0 0 1px #4ecdc4}.split-mode-icon{margin-bottom:var(--sp-2);font-size:1.5rem;line-height:1}.split-mode-name{font-size:var(--fs-sm);color:var(--text);font-weight:600}.split-mode-card.active .split-mode-name{color:#4ecdc4}.split-mode-desc{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.4}.split-preview{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-size:var(--fs-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);display:flex}.split-preview.valid{color:#4ecdc4;background:#4ecdc40f;border-color:#4ecdc466}.split-preview.invalid{color:#fbbf24;background:#fbbf240f;border-color:#fbbf244d}.split-preview-icon{flex-shrink:0;font-size:1.1rem;line-height:1}.split-result-detail{font-size:var(--fs-sm);color:var(--text-dim);padding:var(--sp-2) 0;text-align:center;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-family:var(--font)}@media (width<=640px){.split-mode-grid{grid-template-columns:1fr 1fr}.split-mode-card{padding:var(--sp-3)}.split-mode-desc{display:none}}.wm-preview-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}.wm-preview-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-3)}.wm-preview-canvas{border-radius:var(--r-md);padding:var(--sp-4);background:#0a0b0d;justify-content:center;align-items:center;min-height:200px;display:flex}.wm-preview-page{border-radius:4px;max-width:100%;max-height:340px;position:relative;overflow:hidden;box-shadow:0 8px 32px #00000080}.wm-preview-page img{width:auto;max-width:100%;height:auto;max-height:340px;display:block}.wm-overlay{pointer-events:none;position:absolute;inset:0;overflow:hidden}.wm-type-tabs{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.wm-type-tab{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:all var(--t-fast);justify-content:center;align-items:center;gap:var(--sp-2);color:var(--text-muted);font-family:var(--font);font-size:var(--fs-sm);font-weight:500;display:flex}.wm-type-tab:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text)}.wm-type-tab.active{color:#4ecdc4;background:#4ecdc414;border-color:#4ecdc4}.wm-type-tab span{font-size:1.1rem}.wm-slider{background:var(--bg-elev);cursor:pointer;appearance:none;width:100%;height:6px;margin-top:var(--sp-2);border-radius:999px;outline:none}.wm-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;border:2px solid var(--bg);background:#4ecdc4;border-radius:50%;width:18px;height:18px;box-shadow:0 0 0 1px #4ecdc4}.wm-slider::-moz-range-thumb{cursor:pointer;border:2px solid var(--bg);background:#4ecdc4;border-radius:50%;width:18px;height:18px}.wm-color-grid{gap:var(--sp-2);margin-top:var(--sp-2);grid-template-columns:repeat(8,1fr);display:grid}.wm-color-swatch{aspect-ratio:1;border-radius:var(--r-sm);border:2px solid var(--border);cursor:pointer;width:100%;transition:all var(--t-fast);position:relative}.wm-color-swatch:hover{border-color:var(--border-strong);transform:scale(1.08)}.wm-color-swatch.active{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px #4ecdc4;border-color:#4ecdc4}.wm-image-upload{margin-top:var(--sp-2)}.wm-image-btn{background:var(--bg-elev);border:2px dashed var(--border-strong);border-radius:var(--r-md);width:100%;padding:var(--sp-5);cursor:pointer;color:var(--text-muted);font-family:var(--font);font-size:var(--fs-sm);justify-content:center;align-items:center;gap:var(--sp-3);transition:all var(--t-fast);display:flex}.wm-image-btn:hover{color:#4ecdc4;background:#4ecdc40d;border-color:#4ecdc4}.wm-image-btn span{font-size:1.4rem}.wm-image-preview{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);display:inline-block;position:relative}.wm-image-preview img{border-radius:var(--r-sm);max-width:180px;max-height:180px;display:block}.wm-image-remove{background:var(--bg-card);border:1px solid var(--border);width:26px;height:26px;color:var(--text-dim);cursor:pointer;transition:all var(--t-fast);border-radius:50%;justify-content:center;align-items:center;font-size:.8rem;display:flex;position:absolute;top:-8px;right:-8px}.wm-image-remove:hover{border-color:var(--danger);color:var(--danger);background:var(--bg-hover)}.wm-row-2col{gap:var(--sp-5);grid-template-columns:1fr 1fr;display:grid}.wm-rotation-grid{gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.wm-position-layout{gap:var(--sp-4);margin-top:var(--sp-2);grid-template-columns:auto 1fr;align-items:start;display:grid}.wm-position-grid{gap:var(--sp-2);grid-template-columns:repeat(3,1fr);display:grid}.wm-position-btn{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;width:52px;height:44px;transition:all var(--t-fast);color:var(--text-muted);justify-content:center;align-items:center;font-size:1rem;display:flex}.wm-position-btn:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-hover);color:var(--text)}.wm-position-btn.active{color:#4ecdc4;background:#4ecdc414;border-color:#4ecdc4;box-shadow:inset 0 0 0 1px #4ecdc4}.wm-position-btn:disabled{opacity:.3;cursor:not-allowed}.wm-tiled-btn{align-items:center;gap:var(--sp-3);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:all var(--t-fast);font-family:var(--font);text-align:left;color:var(--text-muted);display:flex}.wm-tiled-btn:hover{border-color:var(--border-strong);background:var(--bg-hover);color:var(--text)}.wm-tiled-btn.active{color:#4ecdc4;background:#4ecdc414;border-color:#4ecdc4;box-shadow:inset 0 0 0 1px #4ecdc4}.wm-tiled-icon{flex-shrink:0;font-size:1.6rem;line-height:1}.wm-tiled-name{font-size:var(--fs-sm);color:inherit;margin-bottom:2px;font-weight:600}.wm-tiled-desc{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.3}@media (width<=640px){.wm-row-2col,.wm-position-layout{grid-template-columns:1fr}.wm-position-grid{justify-content:center}.wm-color-grid{grid-template-columns:repeat(4,1fr)}}.pn-format-grid{gap:var(--sp-2);margin-top:var(--sp-2);grid-template-columns:repeat(3,1fr);display:grid}.pn-format-btn{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:all var(--t-fast);font-family:var(--font);color:var(--text-muted);text-align:center}.pn-format-btn:hover{border-color:var(--border-strong);background:var(--bg-hover);color:var(--text)}.pn-format-btn.active{color:#4ecdc4;background:#4ecdc414;border-color:#4ecdc4;box-shadow:inset 0 0 0 1px #4ecdc4}.pn-format-sample{font-size:var(--fs-sm);white-space:nowrap;font-weight:500}.pn-position-layout{align-items:center;gap:var(--sp-4);margin-top:var(--sp-2);display:flex}.pn-position-grid{padding:var(--sp-3);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(3,1fr);gap:6px;display:grid;position:relative}.pn-position-grid:before{content:"";inset:var(--sp-3);border:1px dashed var(--border);border-radius:var(--r-sm);pointer-events:none;position:absolute}.pn-position-btn{border-radius:var(--r-sm);cursor:pointer;width:40px;height:32px;transition:all var(--t-fast);z-index:1;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex;position:relative}.pn-position-btn:hover{border-color:var(--border-strong);background:var(--bg-hover)}.pn-position-btn.active{background:#4ecdc426;border-color:#4ecdc4}.pn-pos-dot{background:var(--text-dim);width:8px;height:8px;transition:all var(--t-fast);border-radius:50%}.pn-position-btn.active .pn-pos-dot{background:#4ecdc4;width:10px;height:10px;box-shadow:0 0 8px #4ecdc4}.pn-position-label{font-size:var(--fs-sm);color:var(--text-muted);font-weight:500}.pn-checkbox{align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);cursor:pointer;color:var(--text-muted);font-size:var(--fs-sm);-webkit-user-select:none;user-select:none;display:flex}.pn-checkbox input[type=checkbox]{appearance:none;border:1.5px solid var(--border-strong);background:var(--bg-elev);cursor:pointer;width:18px;height:18px;transition:all var(--t-fast);border-radius:4px;flex-shrink:0;position:relative}.pn-checkbox input[type=checkbox]:hover{border-color:#4ecdc4}.pn-checkbox input[type=checkbox]:checked{background:#4ecdc4;border-color:#4ecdc4}.pn-checkbox input[type=checkbox]:checked:after{content:"✓";color:var(--bg);justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;position:absolute;inset:0}.pn-checkbox:hover{color:var(--text)}@media (width<=640px){.pn-format-grid{grid-template-columns:repeat(2,1fr)}.pn-position-layout{flex-direction:column;align-items:flex-start}}.navbar-search-btn{align-items:center;gap:var(--sp-2);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;font-family:var(--font);font-size:var(--fs-xs);color:var(--text-dim);transition:all var(--t-fast);margin-left:var(--sp-2);padding:6px 10px 6px 12px;display:flex}.navbar-search-btn:hover{border-color:var(--border-strong);color:var(--text-muted);background:var(--bg-card)}.navbar-search-icon{font-size:.85rem;line-height:1}.navbar-search-text{font-size:var(--fs-xs)}.navbar-search-kbd{background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim);font-size:.65rem;font-family:var(--font);margin-left:var(--sp-1);border-radius:4px;padding:2px 5px}.home-search-trigger{align-items:center;gap:var(--sp-3);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);margin:var(--sp-6) auto 0;cursor:pointer;width:100%;max-width:480px;transition:all var(--t-fast);color:var(--text-dim);font-family:var(--font);font-size:var(--fs-md);text-align:left;display:flex}.home-search-trigger:hover{border-color:var(--border-strong);background:var(--bg-hover);color:var(--text-muted)}.home-search-trigger>span:first-child{font-size:1.1rem}.home-search-trigger>span:nth-child(2){flex:1}.home-search-trigger kbd{background:var(--bg-elev);border:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-dim);font-family:var(--font);border-radius:4px;padding:3px 7px}.gs-overlay{-webkit-backdrop-filter:blur(6px);z-index:2000;padding:12vh var(--sp-4) var(--sp-4);background:#000000b3;justify-content:center;align-items:flex-start;animation:.15s gsFadeIn;display:flex;position:fixed;inset:0}@keyframes gsFadeIn{0%{opacity:0}to{opacity:1}}.gs-modal{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--r-lg);flex-direction:column;width:100%;max-width:620px;max-height:70vh;animation:.2s cubic-bezier(.4,0,.2,1) gsSlideUp;display:flex;overflow:hidden;box-shadow:0 24px 64px #0009}@keyframes gsSlideUp{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.gs-input-wrap{align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.gs-search-icon{color:var(--text-dim);flex-shrink:0;font-size:1.1rem}.gs-input{color:var(--text);font-family:var(--font);font-size:var(--fs-md);background:0 0;border:none;outline:none;flex:1;padding:0}.gs-input::placeholder{color:var(--text-dim)}.gs-esc{background:var(--bg-elev);border:1px solid var(--border);color:var(--text-dim);font-size:.65rem;font-family:var(--font);border-radius:4px;flex-shrink:0;padding:3px 6px}.gs-results{padding:var(--sp-2);flex:1;overflow-y:auto}.gs-results::-webkit-scrollbar{width:6px}.gs-results::-webkit-scrollbar-track{background:0 0}.gs-results::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.gs-section-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;padding:var(--sp-3) var(--sp-3) var(--sp-2)}.gs-item{align-items:center;gap:var(--sp-3);border-radius:var(--r-md);width:100%;padding:var(--sp-3);cursor:pointer;transition:all var(--t-fast);font-family:var(--font);text-align:left;background:0 0;border:1px solid #0000;display:flex}.gs-item.highlighted{background:var(--bg-elev);border-color:var(--border)}.gs-item-icon{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-sm);width:36px;height:36px;filter:drop-shadow(0 0 8px var(--item-accent,var(--accent)));flex-shrink:0;justify-content:center;align-items:center;font-size:1.4rem;line-height:1;display:flex}.gs-item.highlighted .gs-item-icon{border-color:var(--item-accent,var(--accent));background:var(--bg-card)}.gs-item-body{flex:1;min-width:0}.gs-item-title{font-size:var(--fs-sm);color:var(--text);align-items:center;gap:var(--sp-2);margin-bottom:2px;font-weight:600;display:flex}.gs-item-badge{color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:1px 6px;font-size:.6rem;font-weight:500}.gs-item-sub{font-size:var(--fs-xs);color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gs-item-arrow{color:var(--text-dim);transition:color var(--t-fast);flex-shrink:0;font-size:.85rem}.gs-item.highlighted .gs-item-arrow{color:var(--item-accent,var(--accent))}.gs-empty{padding:var(--sp-8) var(--sp-4);text-align:center}.gs-empty-icon{margin-bottom:var(--sp-3);opacity:.5;font-size:2.5rem}.gs-empty-title{color:var(--text);font-size:var(--fs-md);margin-bottom:var(--sp-1);font-weight:600}.gs-empty-sub{color:var(--text-dim);font-size:var(--fs-sm)}.gs-footer{border-top:1px solid var(--border);padding:var(--sp-2) var(--sp-5);flex-shrink:0}.gs-footer-hint{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-dim);display:flex}.gs-footer-hint kbd{background:var(--bg-elev);border:1px solid var(--border);color:var(--text-muted);font-size:.65rem;font-family:var(--font);border-radius:3px;padding:1px 5px}@media (width<=768px){.navbar-search-text,.navbar-search-kbd{display:none}.navbar-search-btn{padding:8px 10px}.gs-overlay{padding:6vh var(--sp-3) var(--sp-3)}.gs-modal{max-height:80vh}.home-search-trigger{font-size:var(--fs-sm);padding:var(--sp-3) var(--sp-4)}}.png-quality-grid{gap:var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.png-quality-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);cursor:pointer;transition:all var(--t-fast);align-items:center;gap:var(--sp-1);font-family:var(--font);text-align:center;flex-direction:column;display:flex}.png-quality-card:hover{border-color:var(--border-strong);background:var(--bg-hover);transform:translateY(-1px)}.png-quality-card.active{background:#4ecdc414;border-color:#4ecdc4;box-shadow:inset 0 0 0 1px #4ecdc4}.png-quality-icon{margin-bottom:var(--sp-1);font-size:1.4rem;line-height:1}.png-quality-name{font-size:var(--fs-sm);color:var(--text);font-weight:600}.png-quality-card.active .png-quality-name{color:#4ecdc4}.png-quality-desc{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.3}.png-quality-dpi{color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border);margin-top:var(--sp-2);text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:2px 8px;font-size:.65rem}.png-quality-card.active .png-quality-dpi{color:#4ecdc4;border-color:#4ecdc466}.png-bg-row{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.png-bg-btn{align-items:center;gap:var(--sp-2);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);cursor:pointer;transition:all var(--t-fast);font-family:var(--font);font-size:var(--fs-sm);color:var(--text-muted);flex-direction:column;display:flex}.png-bg-btn:hover{border-color:var(--border-strong);background:var(--bg-hover)}.png-bg-btn.active{color:#4ecdc4;background:#4ecdc414;border-color:#4ecdc4}.png-bg-solid{border-radius:var(--r-sm);border:1px solid var(--border-strong);width:32px;height:32px}.png-bg-checker{border-radius:var(--r-sm);border:1px solid var(--border-strong);background-color:#888;background-image:linear-gradient(45deg,#444 25%,#0000 25%),linear-gradient(-45deg,#444 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#444 75%),linear-gradient(-45deg,#0000 75%,#444 75%);background-position:0 0,0 5px,5px -5px,-5px 0;background-size:10px 10px;width:32px;height:32px}.png-checker-bg{background-color:#1a1a1a;background-image:linear-gradient(45deg,#2a2a2a 25%,#0000 25%),linear-gradient(-45deg,#2a2a2a 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#2a2a2a 75%),linear-gradient(-45deg,#0000 75%,#2a2a2a 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.pdf-score-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);gap:var(--sp-4);flex-direction:column;display:flex}.pdf-score-card-header{justify-content:space-between;align-items:center;gap:var(--sp-4);display:flex}.pdf-score-card-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-1)}.pdf-score-card-value{color:#4ecdc4;letter-spacing:-.02em;align-items:baseline;gap:var(--sp-2);font-size:2.4rem;font-weight:700;line-height:1;display:flex}.pdf-score-card-max{font-size:var(--fs-md);color:var(--text-dim);font-weight:500}.pdf-score-bar{background:var(--bg-elev);border-radius:999px;height:10px;overflow:hidden}.pdf-score-fill{background:linear-gradient(90deg,#4ecdc4,#22c55e);border-radius:999px;height:100%;transition:width .6s cubic-bezier(.4,0,.2,1)}.pdf-score-note{color:var(--text-muted);font-size:var(--fs-sm);line-height:1.5}.png-score-breakdown{gap:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border);flex-direction:column;display:flex}.png-score-row{gap:var(--sp-1);flex-direction:column;display:flex}.png-score-row-header{font-size:var(--fs-xs);justify-content:space-between;align-items:baseline;display:flex}.png-score-name{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.png-score-detail{color:var(--text-dim)}.png-score-mini-bar{background:var(--bg-elev);border-radius:999px;height:4px;overflow:hidden}.png-score-mini-fill{background:#4ecdc4;border-radius:999px;height:100%;transition:width .5s}@media (width<=768px){.png-quality-grid{grid-template-columns:repeat(2,1fr)}.png-bg-row{grid-template-columns:1fr}.pdf-score-card-value{font-size:2rem}}.p2t-options{gap:var(--sp-3);margin-top:var(--sp-2);flex-direction:column;display:flex}.p2t-stats{gap:var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.p2t-stat{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);text-align:center}.p2t-stat-value{font-size:var(--fs-xl);color:#4ecdc4;letter-spacing:-.02em;margin-bottom:var(--sp-1);font-weight:700;line-height:1.1}.p2t-stat-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.p2t-tabs{gap:var(--sp-2);border-bottom:1px solid var(--border);margin-bottom:var(--sp-3);display:flex}.p2t-tab{color:var(--text-dim);font-family:var(--font);font-size:var(--fs-sm);padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:all var(--t-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px}.p2t-tab:hover{color:var(--text)}.p2t-tab.active{color:#4ecdc4;border-bottom-color:#4ecdc4}.p2t-output{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.p2t-textarea{resize:vertical;width:100%;min-height:340px;max-height:500px;color:var(--text);font-family:var(--font);font-size:var(--fs-sm);padding:var(--sp-4);background:0 0;border:none;outline:none;line-height:1.6}.p2t-textarea::-webkit-scrollbar{width:8px}.p2t-textarea::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.p2t-pages{gap:var(--sp-3);max-height:560px;padding-right:var(--sp-2);flex-direction:column;display:flex;overflow-y:auto}.p2t-pages::-webkit-scrollbar{width:8px}.p2t-pages::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.p2t-page-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.p2t-page-header{padding:var(--sp-3) var(--sp-4);background:var(--bg-card);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.p2t-page-num{font-size:var(--fs-sm);color:#4ecdc4;font-weight:600}.p2t-page-stats{font-size:var(--fs-xs);color:var(--text-dim)}.p2t-page-text{padding:var(--sp-4);font-family:var(--font);font-size:var(--fs-sm);color:var(--text-muted);white-space:pre-wrap;word-break:break-word;max-height:240px;margin:0;line-height:1.6;overflow-y:auto}.p2t-copy.copied{color:#22c55e!important;border-color:#22c55e!important}@media (width<=640px){.p2t-stats{grid-template-columns:repeat(2,1fr)}.p2t-stat-value{font-size:var(--fs-lg)}}@media (width<=640px){.seo-features{grid-template-columns:1fr}.seo-section h2{font-size:var(--fs-lg)}.seo-content{margin-top:var(--sp-6);padding-top:var(--sp-5)}}.p2w-preset-grid{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.p2w-preset-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);cursor:pointer;transition:all var(--t-fast);align-items:center;gap:var(--sp-1);font-family:var(--font);text-align:center;flex-direction:column;display:flex}.p2w-preset-card:hover{border-color:var(--border-strong);background:var(--bg-hover);transform:translateY(-1px)}.p2w-preset-card.active{background:#4ecdc414;border-color:#4ecdc4;box-shadow:inset 0 0 0 1px #4ecdc4}.p2w-preset-icon{margin-bottom:var(--sp-2);font-size:1.5rem;line-height:1}.p2w-preset-name{font-size:var(--fs-sm);color:var(--text);font-weight:600}.p2w-preset-card.active .p2w-preset-name{color:#4ecdc4}.p2w-preset-desc{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.4}.p2w-note{gap:var(--sp-3);border-radius:var(--r-md);padding:var(--sp-4);font-size:var(--fs-sm);color:var(--text-muted);background:#4ecdc40f;border:1px solid #4ecdc440;line-height:1.6;display:flex}.p2w-note-icon{flex-shrink:0;font-size:1.2rem;line-height:1}.p2w-note strong{color:var(--text);font-weight:600}@media (width<=640px){.p2w-preset-grid{grid-template-columns:1fr}}.seo-content{margin-top:var(--sp-8);padding-top:var(--sp-7);border-top:1px solid var(--border);max-width:820px;margin-left:auto;margin-right:auto}.seo-section{margin-bottom:var(--sp-7)}.seo-section h2{font-size:var(--fs-xl);color:var(--text);letter-spacing:-.02em;margin-bottom:var(--sp-4);font-weight:700;line-height:1.3}.seo-section p{color:var(--text-muted);font-size:var(--fs-md);margin-bottom:var(--sp-4);line-height:1.75}.seo-section strong{color:var(--text);font-weight:600}.seo-section code{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-sm);color:#4ecdc4;font-size:.88em;font-family:var(--font);padding:2px 6px}.seo-steps{counter-reset:step;margin:0;padding:0;list-style:none}.seo-steps li{counter-increment:step;margin-bottom:var(--sp-4);color:var(--text-muted);line-height:1.7;font-size:var(--fs-md);padding-left:52px;position:relative}.seo-steps li:before{content:counter(step);color:#4ecdc4;width:34px;height:34px;font-weight:700;font-size:var(--fs-sm);background:#4ecdc41a;border:1px solid #4ecdc44d;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}.seo-features{gap:var(--sp-4);grid-template-columns:repeat(2,1fr);display:grid}.seo-feature{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-5);transition:all var(--t-fast)}.seo-feature:hover{border-color:var(--border-strong);transform:translateY(-2px)}.seo-feature-icon{margin-bottom:var(--sp-3);font-size:1.8rem;line-height:1}.seo-feature h3{font-size:var(--fs-md);color:var(--text);margin-bottom:var(--sp-2);font-weight:600}.seo-feature p{color:var(--text-muted);font-size:var(--fs-sm);margin:0;line-height:1.6}.seo-list{padding-left:var(--sp-5);color:var(--text-muted);font-size:var(--fs-md);line-height:1.8}.seo-list li{margin-bottom:var(--sp-2);padding-left:var(--sp-2)}.seo-list strong{color:var(--text)}.seo-faq{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:var(--sp-3);transition:border-color var(--t-fast);overflow:hidden}.seo-faq[open]{border-color:#4ecdc44d}.seo-faq summary{padding:var(--sp-4) var(--sp-5);cursor:pointer;font-size:var(--fs-md);color:var(--text);justify-content:space-between;align-items:center;gap:var(--sp-3);-webkit-user-select:none;user-select:none;font-weight:600;list-style:none;display:flex}.seo-faq summary::-webkit-details-marker{display:none}.seo-faq summary:after{content:"+";color:#4ecdc4;transition:transform var(--t-fast);flex-shrink:0;font-size:1.3rem;font-weight:400;line-height:1}.seo-faq[open] summary:after{content:"−"}.seo-faq summary:hover{color:#4ecdc4}.seo-faq p{padding:0 var(--sp-5) var(--sp-5);color:var(--text-muted);font-size:var(--fs-sm);margin:0;line-height:1.7}@media (width<=640px){.seo-features{grid-template-columns:1fr}.seo-section h2{font-size:var(--fs-lg)}.seo-content{margin-top:var(--sp-6);padding-top:var(--sp-5)}}.pdf-tool.pe-fullwidth{max-width:1400px;margin:0 auto}.pe-editor{gap:var(--sp-3);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-3);grid-template-columns:90px 1fr 260px;height:calc(100vh - 260px);min-height:640px;display:grid}.pe-sidebar-left{background:var(--bg-card);border-radius:var(--r-md);border:1px solid var(--border);padding:var(--sp-2);flex-direction:column;gap:4px;display:flex;overflow-y:auto}.pe-tool-btn{padding:var(--sp-2);border-radius:var(--r-sm);color:var(--text-muted);font-family:var(--font);cursor:pointer;transition:all var(--t-fast);background:0 0;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:.65rem;display:flex}.pe-tool-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border);color:var(--text)}.pe-tool-btn.active{color:#4ecdc4;background:#4ecdc41f;border-color:#4ecdc4}.pe-tool-btn:disabled{opacity:.35;cursor:not-allowed}.pe-tool-icon{font-size:1.3rem;line-height:1}.pe-tool-label{text-transform:uppercase;letter-spacing:.05em;font-size:.62rem}.pe-sidebar-divider{background:var(--border);height:1px;margin:var(--sp-2) 0}.pe-canvas-wrap{gap:var(--sp-2);flex-direction:column;display:flex;overflow:hidden}.pe-page-nav{justify-content:center;align-items:center;gap:var(--sp-3);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2);flex-shrink:0;display:flex}.pe-page-nav button{border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-muted);font-family:var(--font);font-size:var(--fs-sm);cursor:pointer;transition:all var(--t-fast);background:0 0;padding:6px 12px}.pe-page-nav button:hover:not(:disabled){background:var(--bg-hover);color:var(--text);border-color:var(--border-strong)}.pe-page-nav button:disabled{opacity:.3;cursor:not-allowed}.pe-page-counter{font-size:var(--fs-sm);color:var(--text);text-align:center;min-width:100px;font-weight:500}.pe-canvas-scroll{border-radius:var(--r-md);padding:var(--sp-5);background:#0a0b0d;flex:1;justify-content:center;align-items:flex-start;display:flex;overflow:auto}.pe-canvas-scroll::-webkit-scrollbar{width:10px;height:10px}.pe-canvas-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px}.pe-canvas-page{-webkit-user-select:none;user-select:none;background:#fff;border-radius:2px;max-width:100%;height:fit-content;position:relative;box-shadow:0 8px 40px #00000080}.pe-canvas-page img{pointer-events:none;-webkit-user-select:none;user-select:none;max-width:100%;height:auto;display:block}.pe-annotations-layer{pointer-events:none;position:absolute;inset:0}.pe-annotations-layer>*{pointer-events:auto}.pe-ann{transition:filter var(--t-fast)}.pe-ann.selected{outline-offset:4px;outline:1.5px dashed #4ecdc4}.pe-resize-handle{z-index:10;background:#4ecdc4;border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute}.pe-handle-nw{cursor:nw-resize;top:-5px;left:-5px}.pe-handle-ne{cursor:ne-resize;top:-5px;right:-5px}.pe-handle-sw{cursor:sw-resize;bottom:-5px;left:-5px}.pe-handle-se{cursor:se-resize;bottom:-5px;right:-5px}.pe-draw-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.pe-sidebar-right{background:var(--bg-card);border-radius:var(--r-md);border:1px solid var(--border);padding:var(--sp-4);gap:var(--sp-3);flex-direction:column;display:flex;overflow-y:auto}.pe-panel-title{font-size:var(--fs-md);color:var(--text);letter-spacing:-.01em;font-weight:600}.pe-panel-hint{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.5}.pe-option-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-top:var(--sp-2);margin-bottom:var(--sp-1);display:block}.pe-text-input{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-sm);width:100%;color:var(--text);font-family:var(--font);font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-3);transition:border-color var(--t-fast);outline:none}.pe-text-input:focus{border-color:#4ecdc4}.pe-delete-btn{margin-top:var(--sp-3);border-radius:var(--r-sm);color:#fca5a5;font-family:var(--font);font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-3);cursor:pointer;transition:all var(--t-fast);background:#ef44441a;border:1px solid #ef44444d}.pe-delete-btn:hover{color:#ef4444;background:#ef444433;border-color:#ef4444}.pe-save-wrap{padding-top:var(--sp-3);border-top:1px solid var(--border);gap:var(--sp-2);flex-direction:column;margin-top:auto;display:flex}.pe-cancel-btn{border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-dim);font-family:var(--font);font-size:var(--fs-xs);padding:var(--sp-2);cursor:pointer;transition:all var(--t-fast);background:0 0}.pe-cancel-btn:hover{border-color:var(--border-strong);color:var(--text)}@media (width<=1024px){.pe-editor{grid-template-columns:70px 1fr 200px}}@media (width<=768px){.pe-editor{grid-template-rows:auto 1fr auto;grid-template-columns:1fr;height:auto;min-height:auto}.pe-sidebar-left{flex-direction:row;overflow:auto hidden}.pe-sidebar-right{max-height:400px}.pe-canvas-scroll{min-height:400px}}.qr-mode-tabs{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.qr-mode-tab{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);cursor:pointer;transition:all var(--t-fast);justify-content:center;align-items:center;gap:var(--sp-2);color:var(--text-muted);font-family:var(--font);font-size:var(--fs-sm);font-weight:500;display:flex}.qr-mode-tab:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text)}.qr-mode-tab.active{color:#4ecdc4;background:#4ecdc414;border-color:#4ecdc4}.qr-mode-tab span{font-size:1.1rem}.qr-textarea{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);width:100%;color:var(--text);font-family:var(--font);font-size:var(--fs-md);padding:var(--sp-3) var(--sp-4);resize:vertical;min-height:80px;transition:border-color var(--t-fast);outline:none;line-height:1.5}.qr-textarea:focus{border-color:#4ecdc4}.qr-image-input-row{align-items:center;gap:var(--sp-2);display:flex}.qr-or{color:var(--text-dim);font-size:var(--fs-xs);flex-shrink:0}.qr-upload-btn{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-muted);font-family:var(--font);font-size:var(--fs-sm);padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:all var(--t-fast);white-space:nowrap}.qr-upload-btn:hover{color:#4ecdc4;border-color:#4ecdc4}.qr-image-preview{align-items:center;gap:var(--sp-3);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);margin-top:var(--sp-3);display:flex}.qr-image-preview img{object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--border);background:#0a0b0d;flex-shrink:0;width:56px;height:56px}.qr-image-preview-info{flex:1;min-width:0}.qr-image-name{font-size:var(--fs-sm);color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;overflow:hidden}.qr-image-note{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.4}.qr-remove-btn{color:var(--text-dim);cursor:pointer;padding:var(--sp-2);border-radius:var(--r-sm);transition:all var(--t-fast);background:0 0;border:none;flex-shrink:0;font-size:1rem}.qr-remove-btn:hover{background:var(--bg-hover);color:var(--danger)}.qr-logo-upload-btn{justify-content:center;align-items:center;gap:var(--sp-3);background:var(--bg-elev);border:2px dashed var(--border-strong);border-radius:var(--r-md);width:100%;padding:var(--sp-4);cursor:pointer;transition:all var(--t-fast);color:var(--text-muted);font-family:var(--font);font-size:var(--fs-sm);display:flex}.qr-logo-upload-btn:hover{color:#4ecdc4;background:#4ecdc40d;border-color:#4ecdc4}.qr-logo-upload-btn span{font-size:1.3rem}.qr-preset-colors{gap:var(--sp-2);margin-top:var(--sp-2);grid-template-columns:repeat(8,1fr);display:grid}.qr-preset-swatch{aspect-ratio:1;border-radius:var(--r-sm);border:2px solid var(--border);cursor:pointer;transition:all var(--t-fast);background:0 0;padding:0;display:flex;position:relative;overflow:hidden}.qr-preset-swatch:hover{border-color:var(--border-strong);transform:scale(1.08)}.qr-preset-swatch.active{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px #4ecdc4;border-color:#4ecdc4}.qr-preset-dot,.qr-preset-bg{flex:1;display:block}.qr-color-picker-row{gap:var(--sp-2);margin-top:var(--sp-2);align-items:center;display:flex}.qr-color-input{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-elev);cursor:pointer;width:44px;height:44px;padding:4px}.qr-color-input::-webkit-color-swatch-wrapper{padding:0}.qr-color-input::-webkit-color-swatch{border:none;border-radius:4px}.qr-output-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-6);align-items:center;gap:var(--sp-5);flex-direction:column;display:flex;position:relative}.qr-canvas-wrap{justify-content:center;align-items:center;width:100%;min-height:280px;display:flex;position:relative}.qr-canvas{border-radius:var(--r-md);max-width:100%;height:auto;max-height:360px;image-rendering:pixelated;display:block;box-shadow:0 8px 32px #0006}.qr-canvas.hidden{display:none}.qr-loading{border-radius:var(--r-md);z-index:2;background:#0f101299;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.qr-empty{text-align:center;color:var(--text-dim);padding:var(--sp-8) var(--sp-5)}.qr-empty-icon{margin-bottom:var(--sp-3);opacity:.5;font-size:3rem}.qr-empty-text{font-size:var(--fs-sm)}.qr-actions{gap:var(--sp-3);flex-wrap:wrap;justify-content:center;display:flex}@media (width<=640px){.qr-preset-colors{grid-template-columns:repeat(4,1fr)}.qr-image-input-row{flex-wrap:wrap}.qr-or{display:none}}.ir-mode-grid{gap:var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.ir-mode-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);cursor:pointer;transition:all var(--t-fast);gap:var(--sp-1);font-family:var(--font);text-align:left;flex-direction:column;display:flex}.ir-mode-card:hover{border-color:var(--border-strong);background:var(--bg-hover);transform:translateY(-1px)}.ir-mode-card.active{background:#4ecdc414;border-color:#4ecdc4;box-shadow:inset 0 0 0 1px #4ecdc4}.ir-mode-name{font-size:var(--fs-sm);color:var(--text);font-weight:600}.ir-mode-card.active .ir-mode-name{color:#4ecdc4}.ir-mode-desc{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.4}.ir-dim-row{align-items:center;gap:var(--sp-3);margin-top:var(--sp-2);display:flex}.ir-dim-field{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);transition:border-color var(--t-fast);flex:1;align-items:center;display:flex}.ir-dim-field:focus-within{border-color:#4ecdc4}.ir-dim-label{color:var(--text-dim);font-size:var(--fs-sm);margin-right:var(--sp-2);font-weight:600}.ir-dim-field .pdf-target-number{font-size:var(--fs-md);background:0 0;border:none;flex:1;padding:0}.ir-dim-field .pdf-target-number:focus{border:none}.ir-dim-unit{color:var(--text-dim);font-size:var(--fs-xs);margin-left:var(--sp-2)}.ir-lock-btn{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;width:40px;height:40px;transition:all var(--t-fast);color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;display:flex}.ir-lock-btn:hover{border-color:var(--border-strong);color:var(--text)}.ir-lock-btn.active{color:#4ecdc4;background:#4ecdc414;border-color:#4ecdc4}.ir-dim-x{color:var(--text-dim);font-size:var(--fs-sm)}.ir-preset-grid{gap:var(--sp-2);margin-top:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));display:grid}.ir-preset-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:all var(--t-fast);font-family:var(--font);text-align:left;flex-direction:column;gap:2px;display:flex}.ir-preset-card:hover{border-color:var(--border-strong);background:var(--bg-hover)}.ir-preset-card.active{background:#4ecdc414;border-color:#4ecdc4;box-shadow:inset 0 0 0 1px #4ecdc4}.ir-preset-label{font-size:var(--fs-sm);color:var(--text);font-weight:500}.ir-preset-card.active .ir-preset-label{color:#4ecdc4}.ir-preset-dims{font-size:var(--fs-xs);color:var(--text-dim)}.ir-preview-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5)}.ir-preview-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-4)}.ir-preview-grid{gap:var(--sp-4);grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.ir-preview-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);flex-direction:column;display:flex;overflow:hidden}.ir-preview-header{padding:var(--sp-2) var(--sp-3);background:var(--bg-card);border-bottom:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.ir-preview-img-wrap{min-height:160px;max-height:240px;padding:var(--sp-3);background-color:#101010;background-image:linear-gradient(45deg,#1a1a1a 25%,#0000 25%),linear-gradient(-45deg,#1a1a1a 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#1a1a1a 75%),linear-gradient(-45deg,#0000 75%,#1a1a1a 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;flex:1;justify-content:center;align-items:center;display:flex}.ir-preview-img-wrap img{border-radius:var(--r-sm);display:block}.ir-preview-placeholder{color:var(--text-dim);font-size:var(--fs-sm);font-family:var(--font)}.ir-preview-footer{padding:var(--sp-2) var(--sp-3);background:var(--bg-card);border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-muted);text-align:center}.ir-preview-arrow{color:#4ecdc4;text-align:center;font-size:1.5rem}@media (width<=768px){.ir-mode-grid{grid-template-columns:repeat(2,1fr)}.ir-preview-grid{grid-template-columns:1fr}.ir-preview-arrow{padding:var(--sp-2) 0;transform:rotate(90deg)}.ir-dim-row{flex-wrap:wrap}}.lock-password-row{align-items:center;gap:var(--sp-2);display:flex;position:relative}.lock-password-input{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-family:var(--font);font-size:var(--fs-md);padding:var(--sp-3) var(--sp-4);transition:border-color var(--t-fast);outline:none;flex:1}.lock-password-input:focus{border-color:#4ecdc4}.lock-password-input.error{border-color:var(--danger)}.lock-eye-btn{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;width:44px;height:44px;transition:all var(--t-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.lock-eye-btn:hover{border-color:var(--border-strong);background:var(--bg-hover)}.lock-strength{align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);display:flex}.lock-strength-bar{background:var(--bg-elev);border-radius:999px;flex:1;height:6px;overflow:hidden}.lock-strength-fill{border-radius:999px;height:100%;transition:all .3s}.lock-strength-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;text-align:right;min-width:50px;font-weight:600}.lock-match-icon{color:#22c55e;pointer-events:none;font-size:1rem;font-weight:700;position:absolute;right:14px}.lock-match-icon.error{color:var(--danger)}.lock-perms{gap:var(--sp-3);margin-top:var(--sp-2);grid-template-columns:repeat(2,1fr);display:grid}.lock-perm-row{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);display:flex}.lock-perm-row:hover{border-color:var(--border-strong);background:var(--bg-hover)}.lock-perm-row input[type=checkbox]{appearance:none;border:1.5px solid var(--border-strong);background:var(--bg-card);cursor:pointer;width:20px;height:20px;transition:all var(--t-fast);border-radius:5px;flex-shrink:0;margin-top:1px;position:relative}.lock-perm-row input[type=checkbox]:hover{border-color:#4ecdc4}.lock-perm-row input[type=checkbox]:checked{background:#4ecdc4;border-color:#4ecdc4}.lock-perm-row input[type=checkbox]:checked:after{content:"✓";color:var(--bg);justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex;position:absolute;inset:0}.lock-perm-name{font-size:var(--fs-sm);color:var(--text);margin-bottom:2px;font-weight:500}.lock-perm-desc{font-size:var(--fs-xs);color:var(--text-dim);line-height:1.4}@media (width<=640px){.lock-perms{grid-template-columns:1fr}}.wc-stats-grid{gap:var(--sp-3);grid-template-columns:repeat(6,1fr);display:grid}.wc-stat{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);text-align:center;transition:all var(--t-fast)}.wc-stat.accent{background:#4ecdc40d;border-color:#4ecdc44d}.wc-stat-value{font-size:var(--fs-xl);color:var(--text);letter-spacing:-.02em;margin-bottom:var(--sp-1);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.wc-stat.accent .wc-stat-value{color:#4ecdc4}.wc-stat-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.wc-time-row{gap:var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.wc-time-card{align-items:center;gap:var(--sp-3);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);display:flex}.wc-time-icon{flex-shrink:0;font-size:1.4rem;line-height:1}.wc-time-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.wc-time-value{font-size:var(--fs-md);color:var(--text);font-weight:600}.wc-truncate{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.wc-textarea-header{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.wc-textarea-hint{font-size:var(--fs-xs);color:var(--text-dim)}.wc-textarea{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);width:100%;min-height:280px;max-height:500px;color:var(--text);font-family:var(--font);font-size:var(--fs-md);padding:var(--sp-4);resize:vertical;transition:border-color var(--t-fast);outline:none;line-height:1.7}.wc-textarea:focus{border-color:#4ecdc4}.wc-textarea::placeholder{color:var(--text-dim)}.wc-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.wc-action-btn{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-muted);font-family:var(--font);font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-4);cursor:pointer;transition:all var(--t-fast);align-items:center;gap:var(--sp-2);font-weight:500;display:flex}.wc-action-btn:hover:not(:disabled){color:#4ecdc4;background:#4ecdc40f;border-color:#4ecdc4;transform:translateY(-1px)}.wc-action-btn:disabled{opacity:.35;cursor:not-allowed}.wc-clear-btn:hover:not(:disabled){border-color:var(--danger)!important;color:var(--danger)!important;background:#ef44440f!important}.wc-detail-grid{gap:var(--sp-5);grid-template-columns:1fr 1fr;display:grid}.wc-breakdown{gap:var(--sp-2);margin-top:var(--sp-3);flex-direction:column;display:flex}.wc-breakdown-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-sm);display:flex}.wc-breakdown-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.wc-breakdown-label{font-size:var(--fs-sm);color:var(--text-muted);flex:1}.wc-breakdown-value{font-size:var(--fs-sm);color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.wc-density-header{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.wc-toggle-btn{border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-dim);font-family:var(--font);font-size:var(--fs-xs);cursor:pointer;transition:all var(--t-fast);background:0 0;padding:2px 8px}.wc-toggle-btn:hover{color:#4ecdc4;border-color:#4ecdc4}.wc-density-list{gap:var(--sp-2);margin-top:var(--sp-3);flex-direction:column;display:flex}.wc-density-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-sm);font-size:var(--fs-sm);grid-template-columns:minmax(60px,1fr) auto 80px auto;display:grid}.wc-density-word{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.wc-density-count{color:var(--text-dim);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.wc-density-bar{background:var(--bg-card);border-radius:999px;height:6px;overflow:hidden}.wc-density-fill{height:100%;transition:width var(--t-base);background:linear-gradient(90deg,#4ecdc4,#22c55e);border-radius:999px}.wc-density-percent{color:#4ecdc4;font-size:var(--fs-xs);text-align:right;font-variant-numeric:tabular-nums;min-width:40px;font-weight:600}@media (width<=900px){.wc-stats-grid{grid-template-columns:repeat(3,1fr)}.wc-time-row{grid-template-columns:repeat(2,1fr)}.wc-detail-grid{grid-template-columns:1fr}}@media (width<=480px){.wc-stats-grid{grid-template-columns:repeat(2,1fr)}.wc-stat-value{font-size:var(--fs-lg)}.wc-time-row{grid-template-columns:1fr}.wc-density-row{grid-template-columns:minmax(40px,1fr) auto auto}.wc-density-bar{display:none}}.nbc-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);gap:var(--sp-2);flex-direction:column;display:flex}.nbc-row{gap:var(--sp-3);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);transition:all var(--t-fast);grid-template-columns:140px 1fr 44px;align-items:center;display:grid}.nbc-row:hover{border-color:var(--border-strong)}.nbc-row.active{background:#4ecdc40d;border-color:#4ecdc4;box-shadow:inset 0 0 0 1px #4ecdc4}.nbc-label{align-items:center;gap:var(--sp-2);display:flex}.nbc-badge{color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-sm);letter-spacing:.05em;text-align:center;min-width:34px;padding:3px 6px;font-size:.65rem;font-weight:700}.nbc-row.active .nbc-badge{color:#4ecdc4;background:#4ecdc414;border-color:#4ecdc466}.nbc-base-name{font-size:var(--fs-sm);color:var(--text-muted);font-weight:500}.nbc-row.active .nbc-base-name{color:var(--text)}.nbc-input{width:100%;color:var(--text);font-family:var(--font);letter-spacing:.03em;word-break:break-all;background:0 0;border:none;outline:none;padding:0;font-size:1.05rem;font-weight:500}.nbc-input::placeholder{color:var(--text-dim);opacity:.5;font-weight:400}.nbc-actions{justify-content:flex-end;display:flex}.nbc-copy-btn{border:1px solid var(--border);border-radius:var(--r-sm);width:36px;height:36px;color:var(--text-dim);cursor:pointer;font-family:var(--font);transition:all var(--t-fast);background:0 0;justify-content:center;align-items:center;font-size:.9rem;display:flex}.nbc-copy-btn:hover:not(:disabled){color:#4ecdc4;background:#4ecdc414;border-color:#4ecdc4}.nbc-copy-btn:disabled{opacity:.3;cursor:not-allowed}.nbc-copy-btn.copied{color:#fff;background:#22c55e;border-color:#22c55e}.nbc-error{color:#fca5a5;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);font-size:var(--fs-sm);margin-top:var(--sp-2);background:#ef44441a;border:1px solid #ef44444d}.nbc-info-grid{gap:var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.nbc-info-cell{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);text-align:center}.nbc-info-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-1)}.nbc-info-value{font-size:var(--fs-lg);color:#4ecdc4;font-weight:700;line-height:1.1}.nbc-formatted{gap:var(--sp-3);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);grid-template-columns:auto 1fr 44px;align-items:center;display:grid}.nbc-formatted-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.nbc-formatted-value{font-family:var(--font);font-size:var(--fs-md);color:var(--text);letter-spacing:.03em;word-break:break-all;font-weight:500}.nbc-ascii{align-items:baseline;gap:var(--sp-3);display:flex}.nbc-ascii-char{color:#4ecdc4;font-size:1.4rem;font-weight:700;line-height:1}.nbc-ascii-code{font-size:var(--fs-xs);color:var(--text-dim)}.nbc-extras-header{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.nbc-toggle-btn{border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-dim);font-family:var(--font);font-size:var(--fs-xs);cursor:pointer;transition:all var(--t-fast);background:0 0;padding:4px 10px}.nbc-toggle-btn:hover{color:#4ecdc4;border-color:#4ecdc4}.nbc-extra-pills{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.nbc-extra-pill{background:var(--bg-elev);border:1px solid var(--border);color:var(--text-muted);font-family:var(--font);font-size:var(--fs-xs);cursor:pointer;transition:all var(--t-fast);border-radius:999px;padding:5px 12px}.nbc-extra-pill:hover{border-color:var(--border-strong);color:var(--text)}.nbc-extra-pill.active{color:#4ecdc4;background:#4ecdc414;border-color:#4ecdc4}.nbc-extra-output{gap:var(--sp-3);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);grid-template-columns:auto 1fr 44px;align-items:center;display:grid}.nbc-extra-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.nbc-extra-value{font-family:var(--font);font-size:var(--fs-md);color:#4ecdc4;letter-spacing:.03em;word-break:break-all;font-weight:600}.nbc-bottom-actions{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;display:flex}@media (width<=640px){.nbc-row{gap:var(--sp-2);grid-template-columns:1fr}.nbc-label{justify-content:flex-start}.nbc-actions{right:var(--sp-2);position:absolute;top:50%;transform:translateY(-50%)}.nbc-input{padding-right:44px}.nbc-info-grid{grid-template-columns:repeat(2,1fr)}.nbc-formatted{gap:var(--sp-2);text-align:center;grid-template-columns:1fr}.nbc-formatted>.nbc-copy-btn{justify-self:center}.nbc-extra-output{gap:var(--sp-2);text-align:center;grid-template-columns:1fr}.nbc-extra-output>.nbc-copy-btn{justify-self:center}}.dice-presets{gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.dice-preset-btn{background:var(--bg-elev);border:1px solid var(--border);color:var(--text-muted);font-family:var(--font);font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-4);cursor:pointer;transition:all var(--t-fast);border-radius:999px}.dice-preset-btn:hover{border-color:var(--border-strong);color:var(--text);background:var(--bg-hover)}.dice-preset-btn.active{color:#a855f7;background:#a855f71a;border-color:#a855f7}.dice-type-grid{gap:var(--sp-2);margin-top:var(--sp-2);grid-template-columns:repeat(7,1fr);display:grid}.dice-type-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-2);cursor:pointer;transition:all var(--t-fast);align-items:center;gap:var(--sp-1);font-family:var(--font);flex-direction:column;display:flex}.dice-type-card:hover{border-color:var(--border-strong);background:var(--bg-hover);transform:translateY(-1px)}.dice-type-card.active{background:#a855f71a;border-color:#a855f7;box-shadow:inset 0 0 0 1px #a855f7}.dice-type-icon{font-size:1.4rem;line-height:1}.dice-type-label{font-size:var(--fs-xs);color:var(--text-muted);letter-spacing:.04em;font-weight:700}.dice-type-card.active .dice-type-label{color:#a855f7}.dice-modifier-row{align-items:center;gap:var(--sp-3);margin-top:var(--sp-2);display:flex}.dice-mod-btn{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);width:40px;height:40px;color:var(--text);font-family:var(--font);cursor:pointer;transition:all var(--t-fast);justify-content:center;align-items:center;font-size:1.2rem;font-weight:600;display:flex}.dice-mod-btn:hover{color:#a855f7;background:#a855f714;border-color:#a855f7}.dice-mod-btn:active{transform:scale(.95)}.dice-mod-value{text-align:center;font-family:var(--font);font-size:var(--fs-lg);color:var(--text);flex:1;font-weight:700}.dice-roll-btn{color:#fff;border-radius:var(--r-md);font-family:var(--font);font-size:var(--fs-lg);padding:var(--sp-5);cursor:pointer;transition:all var(--t-fast);align-items:center;gap:var(--sp-1);background:#a855f7;border:none;flex-direction:column;font-weight:700;display:flex;position:relative}.dice-roll-btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 8px 24px #a855f74d}.dice-roll-btn:active:not(:disabled){transform:translateY(0)}.dice-roll-btn:disabled{opacity:.7;cursor:not-allowed}.dice-roll-btn.rolling{animation:.5s ease-in-out infinite diceShake}@keyframes diceShake{0%,to{transform:rotate(0)}25%{transform:rotate(-2deg)translate(-2px)}75%{transform:rotate(2deg)translate(2px)}}.dice-roll-hint{font-size:var(--fs-xs);color:#ffffffb3;font-weight:400}.dice-display{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-6);align-items:center;gap:var(--sp-5);flex-direction:column;justify-content:center;min-height:200px;display:flex}.dice-row{gap:var(--sp-3);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.dice-face{width:72px;height:72px;font-family:var(--font);color:#1a1a1a;background:linear-gradient(135deg,#fff 0%,#e8e8e8 100%);border:2px solid #d0d0d0;border-radius:14px;justify-content:center;align-items:center;font-weight:800;transition:transform .1s;display:flex;position:relative;box-shadow:0 4px 12px #0000004d,inset 0 -2px 4px #0000001a,inset 0 2px 4px #fffc}.dice-face:before{content:"";pointer-events:none;background:linear-gradient(135deg,#fff6 0%,#0000 50%);border-radius:10px;position:absolute;inset:4px}.dice-face.flicker{animation:.1s ease-in-out infinite alternate diceFlicker}@keyframes diceFlicker{0%{transform:scale(1)rotate(0)}to{transform:scale(1.05)rotate(3deg)}}.dice-face.final{border-color:#a855f7;animation:.4s cubic-bezier(.34,1.56,.64,1) diceSettle;box-shadow:0 4px 16px #a855f766,inset 0 -2px 4px #0000001a,inset 0 2px 4px #fffc}@keyframes diceSettle{0%{transform:scale(1.2)rotate(10deg)}50%{transform:scale(.95)rotate(-5deg)}to{transform:scale(1)rotate(0)}}.dice-face-value{z-index:1;font-size:1.8rem;line-height:1}.dice-empty{text-align:center;color:var(--text-dim)}.dice-empty-icon{margin-bottom:var(--sp-3);opacity:.4;font-size:4rem;animation:3s ease-in-out infinite diceIdle}@keyframes diceIdle{0%,to{transform:rotate(0)scale(1)}50%{transform:rotate(8deg)scale(1.05)}}.dice-empty-text{font-size:var(--fs-sm);font-family:var(--font)}.dice-total{text-align:center;align-items:center;gap:var(--sp-2);flex-direction:column;display:flex}.dice-total-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-family:var(--font)}.dice-total-mod{color:var(--text-muted);font-family:var(--font);font-size:var(--fs-xs);text-transform:none;letter-spacing:0;margin-left:var(--sp-2)}.dice-total-value{color:#a855f7;letter-spacing:-.03em;font-size:3.2rem;font-weight:800;line-height:1;font-family:var(--font);text-shadow:0 0 24px #a855f766}.dice-stats{gap:var(--sp-3);margin-top:var(--sp-2);grid-template-columns:repeat(4,1fr);display:grid}.dice-stat{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);text-align:center}.dice-stat-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-2)}.dice-stat-value{font-size:var(--fs-xl);color:#a855f7;font-weight:700;font-family:var(--font);letter-spacing:-.02em}.dice-distribution{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--border)}.dice-distribution-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-3)}.dice-dist-bars{gap:var(--sp-2);flex-direction:column;display:flex}.dice-dist-row{gap:var(--sp-3);grid-template-columns:32px 1fr 40px;align-items:center;display:grid}.dice-dist-value{font-family:var(--font);font-size:var(--fs-sm);color:var(--text-muted);text-align:center;font-weight:600}.dice-dist-bar-wrap{background:var(--bg-elev);border-radius:999px;height:18px;overflow:hidden}.dice-dist-bar{background:linear-gradient(90deg,#a855f7,#c084fc);border-radius:999px;min-width:4px;height:100%;transition:width .4s}.dice-dist-count{font-family:var(--font);font-size:var(--fs-xs);color:var(--text-dim);text-align:right}.dice-history{gap:var(--sp-2);max-height:340px;margin-top:var(--sp-2);flex-direction:column;display:flex;overflow-y:auto}.dice-history::-webkit-scrollbar{width:6px}.dice-history::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.dice-history-item{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);transition:all var(--t-fast);grid-template-columns:80px 1fr auto;align-items:center;display:grid}.dice-history-item:hover{border-color:var(--border-strong);background:var(--bg-hover)}.dice-history-time{font-family:var(--font);font-size:var(--fs-xs);color:var(--text-dim)}.dice-history-rolls{font-family:var(--font);font-size:var(--fs-sm);color:var(--text-muted)}.dice-history-total{font-family:var(--font);font-size:var(--fs-md);color:#a855f7;font-weight:700}@media (width<=768px){.dice-type-grid{grid-template-columns:repeat(4,1fr)}.dice-face{border-radius:10px;width:56px;height:56px}.dice-face-value{font-size:1.4rem}.dice-total-value{font-size:2.4rem}.dice-stats{grid-template-columns:repeat(2,1fr)}.dice-history-item{grid-template-columns:60px 1fr auto}}.json-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;display:flex;overflow:hidden}.json-panel-header{padding:var(--sp-3) var(--sp-4);background:var(--bg-elev);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.json-panel-title{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text);font-weight:600;display:flex}.json-panel-badge{font-size:var(--fs-xs);color:var(--text-dim);background:var(--bg-card);border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-weight:500}.json-panel-actions{gap:var(--sp-2);display:flex}.json-mini-btn{border:1px solid var(--border);color:var(--text-muted);font-family:var(--font);font-size:var(--fs-xs);border-radius:var(--r-sm);cursor:pointer;transition:all var(--t-fast);background:0 0;padding:4px 10px}.json-mini-btn:hover:not(:disabled){border-color:var(--border-strong);color:var(--text);background:var(--bg-hover)}.json-mini-btn:disabled{opacity:.4;cursor:not-allowed}.json-textarea{background:var(--bg-elev);resize:vertical;width:100%;min-height:240px;max-height:400px;color:var(--text);font-family:var(--font);font-size:var(--fs-sm);padding:var(--sp-4);tab-size:2;border:none;outline:none;line-height:1.6}.json-textarea.output{background:var(--bg);color:#4ecdc4;min-height:260px}.json-textarea::-webkit-scrollbar{width:8px}.json-textarea::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.json-error{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:#ef444414;border-top:1px solid #ef44444d;border-bottom:1px solid #ef44444d;display:flex}.json-error-icon{flex-shrink:0;font-size:1.2rem;line-height:1}.json-error-body{flex:1;min-width:0}.json-error-title{font-size:var(--fs-sm);color:#fca5a5;margin-bottom:2px;font-weight:600}.json-error-message{font-size:var(--fs-xs);color:#fecaca;font-family:var(--font);word-break:break-word}.json-error-loc{font-size:var(--fs-xs);color:var(--text-dim);font-family:var(--font);margin-top:4px}.json-valid{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);color:#22c55e;font-size:var(--fs-sm);background:#22c55e14;border-top:1px solid #22c55e40;font-weight:500;display:flex}.json-valid-icon{font-size:.9rem}.json-valid-stats{color:var(--text-dim);font-size:var(--fs-xs);margin-left:auto;font-weight:400}.json-options-grid{gap:var(--sp-5);grid-template-columns:1fr 1fr;align-items:start;display:grid}.json-actions{gap:var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.json-action-btn{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-family:var(--font);font-size:var(--fs-sm);padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:all var(--t-fast);justify-content:center;align-items:center;gap:var(--sp-2);font-weight:500;display:flex}.json-action-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong);transform:translateY(-1px)}.json-action-btn:disabled{opacity:.4;cursor:not-allowed}.json-action-btn.primary{color:var(--bg);background:#4ecdc4;border-color:#4ecdc4;font-weight:600}.json-action-btn.primary:hover:not(:disabled){background:#3fb8b0;border-color:#3fb8b0}.json-tabs{gap:var(--sp-2);border-bottom:1px solid var(--border);display:flex}.json-tab{color:var(--text-dim);font-family:var(--font);font-size:var(--fs-sm);padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:all var(--t-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px}.json-tab:hover{color:var(--text)}.json-tab.active{color:#4ecdc4;border-bottom-color:#4ecdc4}.json-tree{background:var(--bg);padding:var(--sp-4);font-family:var(--font);font-size:var(--fs-sm);min-height:260px;max-height:500px;color:var(--text);line-height:1.7;overflow:auto}.json-tree::-webkit-scrollbar{width:8px;height:8px}.json-tree::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}.json-tree-node{white-space:pre;font-family:var(--font)}.json-tree-toggle-row{white-space:pre;align-items:center;gap:4px;display:inline-flex}.json-tree-toggle{width:14px;color:var(--text-dim);-webkit-user-select:none;user-select:none;transition:color var(--t-fast);font-size:.7rem;display:inline-block}.json-tree-toggle-row:hover .json-tree-toggle{color:#4ecdc4}.json-tree-toggle-spacer{width:14px;display:inline-block}.json-tree-key{color:#e2b714;font-weight:500}.json-tree-string{color:#a5d6a7}.json-tree-number{color:#90caf9}.json-tree-boolean{color:#ce93d8}.json-tree-null{color:#9e9e9e;font-style:italic}.json-tree-bracket,.json-tree-comma{color:var(--text-dim)}.json-tree-collapsed{color:var(--text-dim);margin:0 6px;font-size:.9em;font-style:italic}.json-tree-close{white-space:pre}.json-stats{gap:var(--sp-2);grid-template-columns:repeat(8,1fr);display:grid}.json-stat{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);text-align:center}.json-stat-value{font-size:var(--fs-lg);color:#4ecdc4;margin-bottom:2px;font-weight:700;line-height:1.1}.json-stat-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.json-empty{text-align:center;padding:var(--sp-7) var(--sp-5);background:var(--bg-card);border:1px dashed var(--border-strong);border-radius:var(--r-lg)}.json-empty-icon{margin-bottom:var(--sp-3);opacity:.5;font-size:3rem}.json-empty-title{font-size:var(--fs-md);color:var(--text);margin-bottom:var(--sp-1);font-weight:600}.json-empty-hint{font-size:var(--fs-sm);color:var(--text-dim)}.json-empty-hint strong{color:#4ecdc4}@media (width<=768px){.json-options-grid{grid-template-columns:1fr}.json-actions{grid-template-columns:repeat(2,1fr)}.json-stats{grid-template-columns:repeat(4,1fr)}}
