:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%;height:100vh}button{border-radius:4px;border:1px solid #d9d9d9;padding:6px 12px;font-size:14px;font-weight:500;font-family:inherit;background-color:#fff;cursor:pointer;transition:all .2s}button:hover:not(:disabled){border-color:#1890ff;color:#1890ff}button:disabled{opacity:.5;cursor:not-allowed}.floating-ad-container{position:fixed;left:20px;bottom:20px;z-index:100;background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;overflow:hidden;animation:floatingAdSlideIn .3s ease}@keyframes floatingAdSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.floating-ad-close{position:absolute;top:4px;right:4px;width:20px;height:20px;border:none;background:#00000080;color:#fff;border-radius:50%;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1}.floating-ad-close:hover{background:#000000b3}.floating-ad-link{display:block;text-decoration:none}.floating-ad-link img{display:block;width:280px;height:auto;max-height:200px;object-fit:cover}.floating-ad-link span{display:flex;align-items:center;justify-content:center;padding:16px 24px;font-weight:500;font-size:14px;color:#1890ff;width:280px;box-sizing:border-box}@media (max-width: 768px){.floating-ad-container{left:10px;bottom:10px}.floating-ad-link img{width:200px;max-height:150px}.floating-ad-link span{width:200px}}.pdf-viewer{display:flex;flex-direction:column;height:100%;background:#e0e0e0}.pdf-navigation{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px;background:#fff;border-bottom:1px solid #ddd}.pdf-navigation button{padding:8px 16px;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer;transition:all .2s}.pdf-navigation button:hover:not(:disabled){background:#f0f0f0}.pdf-navigation button:disabled{opacity:.5;cursor:not-allowed}.pdf-canvas-container{flex:1;overflow:auto;display:flex;justify-content:center;padding:20px;position:relative}.pdf-canvas-wrapper{position:relative;display:inline-block}.pdf-canvas-container canvas{box-shadow:0 2px 10px #0003;background:#fff;display:block}.loading-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:20px 40px;background:#000000b3;color:#fff;border-radius:8px;z-index:100}.stamps-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.stamp-overlay{position:absolute;pointer-events:auto;cursor:move;transition:box-shadow .2s}.stamp-overlay.selected{box-shadow:0 0 0 2px #1890ff,0 0 10px #1890ff80}.stamp-overlay.dragging{cursor:grabbing;opacity:.8}.stamp-overlay img{display:block}.stamp-hover-preview{position:fixed;z-index:1000;background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000040;padding:12px;pointer-events:none;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.stamp-hover-preview .preview-image{display:flex;justify-content:center;align-items:center;background:#f9f9f9;border-radius:4px;padding:8px;margin-bottom:8px}.stamp-hover-preview .preview-image img{max-width:200px;max-height:200px;object-fit:contain}.stamp-hover-preview .preview-info{font-size:12px;color:#666;border-top:1px solid #eee;padding-top:8px}.stamp-hover-preview .preview-type{font-weight:700;color:#333;margin-bottom:4px}.stamp-hover-preview .preview-text{color:#c41e3a;margin-bottom:2px}.stamp-hover-preview .preview-code{font-family:monospace;font-size:11px;color:#888;margin-bottom:2px}.stamp-hover-preview .preview-rotation{font-size:11px;color:#999}.stamp-context-menu{position:fixed;z-index:1001;background:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 2px 10px #00000026;padding:4px 0;min-width:120px}.stamp-context-menu button{display:block;width:100%;padding:8px 16px;border:none;background:none;text-align:left;cursor:pointer;font-size:14px;color:#333}.stamp-context-menu button:hover{background:#f5f5f5}.stamp-context-menu button:active{background:#e8e8e8}@media (max-width: 768px){.pdf-navigation{padding:8px;gap:10px}.pdf-navigation button{padding:6px 12px;font-size:13px}.pdf-canvas-container{padding:10px;overflow:auto;-webkit-overflow-scrolling:touch}.pdf-canvas-wrapper{max-width:100%}.pdf-canvas-container canvas{max-width:100%;height:auto!important}.stamp-overlay{touch-action:none}.stamp-hover-preview{display:none}.stamp-context-menu{min-width:100px}.stamp-context-menu button{padding:10px 14px;font-size:13px}}@media (max-width: 480px){.pdf-navigation{padding:6px;gap:8px;flex-wrap:wrap}.pdf-navigation button{padding:5px 10px;font-size:12px}.pdf-canvas-container{padding:5px}}.stamp-panel{width:340px;background:#fff;border-left:1px solid #ddd;display:flex;flex-direction:column;overflow-y:auto}.stamp-panel h3{padding:16px 20px;margin:0;border-bottom:1px solid #eee;font-size:16px;color:#333;background:#fafafa;position:sticky;top:0;z-index:1}.stamp-input-section{padding:16px 20px;border-bottom:1px solid #eee;background:#fff}.input-group{margin-bottom:14px}.input-group:last-child{margin-bottom:0}.input-group label{display:block;font-size:13px;color:#666;margin-bottom:6px;font-weight:500}.input-group input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;box-sizing:border-box}.input-group input:focus{outline:none;border-color:#1890ff;box-shadow:0 0 0 2px #1890ff1a}.stamp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:16px 20px}.stamp-grid-item{display:flex;flex-direction:column;align-items:center;padding:12px;border:2px solid #eee;border-radius:10px;cursor:pointer;transition:all .2s}.stamp-grid-item:hover{border-color:#1890ff;background:#f0f7ff}.stamp-grid-item.selected{border-color:#1890ff;background:#e6f7ff}.stamp-preview-small{width:70px;height:70px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.stamp-preview-small img{max-width:100%;max-height:100%;object-fit:contain}.stamp-label{font-size:13px;color:#333;text-align:center}.stamp-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border-radius:4px;font-size:14px;color:#999}.stamp-effects-section{padding:16px 20px;border-top:1px solid #eee;background:#fafafa}.stamp-effects-section h4{margin:0 0 12px;font-size:14px;color:#333;font-weight:500}.effect-options{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.effect-option{display:flex;align-items:center;gap:6px;cursor:pointer;padding:6px 8px;border-radius:4px;transition:background .2s}.effect-option:hover{background:#f0f0f0}.effect-option input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#1890ff}.effect-option span{font-size:13px;color:#333;-webkit-user-select:none;user-select:none}.apply-effects-btn{width:100%;margin-top:14px;padding:10px 16px;background:linear-gradient(135deg,#1890ff,#096dd9);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px}.apply-effects-btn:hover{background:linear-gradient(135deg,#40a9ff,#1890ff);transform:translateY(-1px);box-shadow:0 4px 12px #1890ff59}.apply-effects-btn:active{transform:translateY(0);box-shadow:0 2px 6px #1890ff40}.stamp-adjust-section{padding:16px 20px;border-top:1px solid #eee;background:#fff}.stamp-adjust-section h4{margin:0 0 16px;font-size:14px;color:#333;font-weight:500}.adjust-group{margin-bottom:20px}.adjust-group:last-child{margin-bottom:0}.adjust-group label{display:block;font-size:13px;color:#666;margin-bottom:10px;font-weight:500}.adjust-group input[type=range]{width:100%;height:6px;border-radius:3px;background:linear-gradient(to right,#e8e8e8,#d0d0d0);outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.adjust-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#1890ff,#096dd9);cursor:pointer;box-shadow:0 2px 6px #1890ff66;transition:transform .15s ease}.adjust-group input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1)}.rotation-control{padding:16px 20px;border-top:1px solid #eee}.rotation-control h4{margin:0 0 12px;font-size:14px;color:#333}.rotation-slider{display:flex;align-items:center;gap:12px;margin-bottom:12px}.rotation-slider input[type=range]{flex:1;height:6px}.rotation-slider span{min-width:40px;text-align:right;font-size:14px;color:#666}.rotation-presets{display:flex;gap:8px;margin-top:12px}.rotation-presets button{flex:1;padding:8px 4px;border:1px solid #ddd;border-radius:6px;background:#fafafa;cursor:pointer;font-size:13px;font-weight:500;color:#666;transition:all .2s}.rotation-presets button:hover{border-color:#1890ff;color:#1890ff;background:#f0f7ff}.stamp-tip{padding:12px 20px;background:#f5f5f5;font-size:13px;color:#666;text-align:center;margin-top:auto}.stamp-hover-tooltip{position:fixed;z-index:9999;background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000040;padding:16px;pointer-events:none;animation:tooltipFadeIn .15s ease-out}@keyframes tooltipFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.stamp-hover-tooltip img{width:200px;height:200px;object-fit:contain;display:block}@media (max-width: 768px){.stamp-panel{width:100%;max-height:45vh;border-left:none;border-top:1px solid #ddd}.stamp-panel h3{padding:12px 16px;font-size:14px}.stamp-input-section{padding:12px 16px}.input-group{margin-bottom:10px}.input-group label{font-size:12px;margin-bottom:4px}.input-group input{padding:8px 10px;font-size:13px}.stamp-grid{padding:12px 16px;gap:8px}.stamp-grid-item{padding:8px}.stamp-preview-small{width:50px;height:50px;margin-bottom:6px}.stamp-label{font-size:11px}.stamp-effects-section{padding:12px 16px}.stamp-effects-section h4{font-size:13px;margin-bottom:10px}.effect-options{gap:6px}.effect-option{padding:4px 6px}.effect-option input[type=checkbox]{width:14px;height:14px}.effect-option span{font-size:12px}.apply-effects-btn{padding:8px 14px;font-size:13px;margin-top:10px}.stamp-adjust-section{padding:12px 16px}.stamp-adjust-section h4{font-size:13px;margin-bottom:12px}.adjust-group{margin-bottom:14px}.adjust-group label{font-size:12px;margin-bottom:8px}.rotation-control{padding:12px 16px}.rotation-control h4{font-size:13px;margin-bottom:10px}.rotation-slider span{font-size:12px}.rotation-presets button{padding:6px 4px;font-size:11px}.stamp-tip{padding:10px 16px;font-size:12px}.stamp-hover-tooltip{display:none}}@media (max-width: 480px){.stamp-panel{max-height:50vh}.stamp-grid{grid-template-columns:repeat(2,1fr);gap:6px;padding:10px 12px}.stamp-preview-small{width:45px;height:45px}.stamp-label{font-size:10px}.effect-options{grid-template-columns:1fr}}.toolbar{display:flex;align-items:center;padding:12px 20px;background:#fff;border-bottom:1px solid #ddd;gap:12px;flex-wrap:wrap}.toolbar-group{display:flex;align-items:center;gap:8px}.toolbar-divider{width:1px;height:32px;background:#ddd;margin:0 8px}.toolbar button{display:flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;font-size:14px;color:#333;transition:all .2s}.toolbar button:hover:not(:disabled){background:#f5f5f5;border-color:#1890ff}.toolbar button:disabled{opacity:.5;cursor:not-allowed}.toolbar button .icon{font-size:16px}.toolbar-home-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid #667eea;border-radius:6px;background:linear-gradient(135deg,#667eea,#764ba2);cursor:pointer;font-size:14px;color:#fff;text-decoration:none;transition:all .2s}.toolbar-home-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.toolbar-home-btn .icon{font-size:16px}.zoom-group{margin-left:auto}.zoom-group label{font-size:14px;color:#666;margin-right:8px}.zoom-group button{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700}.zoom-value{min-width:50px;text-align:center;font-size:14px;color:#333}.toolbar-shortcuts{width:100%;padding-top:8px;border-top:1px solid #eee;margin-top:4px}.shortcut-hint{font-size:12px;color:#999}@media (max-width: 768px){.toolbar{padding:10px 12px;gap:8px}.toolbar-group{gap:4px}.toolbar-divider{display:none}.toolbar button{padding:6px 10px;font-size:12px}.toolbar button .icon{font-size:14px}.toolbar button span:not(.icon){display:none}.toolbar-home-btn{padding:6px 10px;font-size:12px}.toolbar-home-btn span:not(.icon){display:none}.zoom-group{margin-left:0;width:100%;justify-content:center;order:10;padding-top:8px;border-top:1px solid #eee;margin-top:4px}.zoom-group label{display:none}.zoom-group button{width:28px;height:28px;font-size:16px}.zoom-value{min-width:40px;font-size:12px}.toolbar-shortcuts{display:none}}@media (max-width: 480px){.toolbar{padding:8px 10px;gap:6px}.toolbar button{padding:5px 8px;font-size:11px}.toolbar button .icon{font-size:13px}}.cross-page-modal{background:#fff;border-radius:8px;width:450px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #eee}.modal-header h3{margin:0;font-size:18px;color:#333}.close-btn{width:32px;height:32px;border:none;background:none;font-size:24px;color:#999;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px}.close-btn:hover{background:#f5f5f5;color:#333}.modal-body{padding:20px;overflow-y:auto;flex:1}.warning-message{padding:20px;text-align:center;color:#ff4d4f;background:#fff2f0;border-radius:4px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-size:14px;color:#333;font-weight:500}.form-group input[type=text],.form-group input[type=number],.form-group select{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.form-group input:focus,.form-group select:focus{outline:none;border-color:#1890ff}.radio-group{display:flex;gap:20px}.radio-group label{display:flex;align-items:center;gap:6px;font-weight:400;cursor:pointer}.page-range{display:flex;align-items:center;gap:10px}.page-range input{width:80px!important}.page-range span{color:#666}.form-group input[type=range]{width:100%}.stamp-preview-container{width:100%;height:120px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border-radius:4px;margin-bottom:8px}.stamp-preview-container img{max-width:100px;max-height:100px;object-fit:contain}.no-preset-warning{color:#ff4d4f;font-size:14px;text-align:center}.preview-hint{margin:0;font-size:12px;color:#666;text-align:center}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #eee}.btn-cancel,.btn-apply{padding:8px 20px;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.btn-cancel{border:1px solid #ddd;background:#fff;color:#666}.btn-cancel:hover{border-color:#1890ff;color:#1890ff}.btn-apply{border:none;background:#1890ff;color:#fff}.btn-apply:hover:not(:disabled){background:#40a9ff}.btn-apply:disabled{background:#d9d9d9;cursor:not-allowed}.stamp-preview-container{flex-direction:column;gap:10px}.btn-regenerate{padding:6px 12px;border:1px solid #ddd;background:#fff;color:#666;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}.btn-regenerate:hover{border-color:#1890ff;color:#1890ff;background:#f0f7ff}@media (max-width: 768px){.cross-page-modal{width:95%;max-width:400px;margin:10px}.modal-header{padding:12px 16px}.modal-header h3{font-size:16px}.modal-body{padding:16px}.form-group{margin-bottom:16px}.form-group label{font-size:13px;margin-bottom:6px}.form-group input[type=text],.form-group input[type=number],.form-group select{padding:8px 10px;font-size:13px}.radio-group{flex-direction:column;gap:10px}.page-range{flex-wrap:wrap;gap:8px}.page-range input{width:60px!important}.stamp-preview-container{height:100px}.stamp-preview-container img{max-width:80px;max-height:80px}.modal-footer{padding:12px 16px;gap:10px}.btn-cancel,.btn-apply{padding:8px 16px;font-size:13px}}@media (max-width: 480px){.cross-page-modal{width:100%;max-width:none;margin:0;border-radius:12px 12px 0 0;max-height:85vh;position:fixed;bottom:0;left:0;right:0}.modal-overlay{align-items:flex-end}.modal-header{padding:14px 16px}.modal-footer{flex-direction:column}.btn-cancel,.btn-apply{width:100%;padding:12px}}.save-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.save-modal{background:#fff;border-radius:16px;padding:28px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.save-modal h2{margin:0 0 24px;font-size:20px;color:#1a1a2e}.save-modal .form-group{margin-bottom:20px}.save-modal .form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:#374151}.save-modal .form-group input[type=text]{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;box-sizing:border-box}.save-modal .form-group input[type=text]:focus{outline:none;border-color:#667eea}.preset-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.preset-btn{display:flex;flex-direction:column;align-items:center;padding:12px 8px;border:2px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;transition:all .2s}.preset-btn:hover{border-color:#667eea;background:#f8f9ff}.preset-btn.active{border-color:#667eea;background:linear-gradient(135deg,#667eea15,#764ba215)}.preset-icon{font-size:24px;margin-bottom:4px}.preset-name{font-size:13px;font-weight:600;color:#1a1a2e}.preset-desc{font-size:11px;color:#94a3b8;margin-top:2px}.advanced-toggle{padding:10px 0;color:#667eea;font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.advanced-toggle:hover{color:#764ba2}.advanced-options{background:#f8f9fa;border-radius:10px;padding:16px;margin-bottom:16px}.option-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.option-row:last-child{margin-bottom:0}.option-row label{width:80px;font-size:13px;color:#64748b}.option-row input[type=range]{flex:1;height:6px;-webkit-appearance:none;background:#e2e8f0;border-radius:3px;cursor:pointer}.option-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#667eea;border-radius:50%;cursor:pointer}.option-row span{width:45px;text-align:right;font-size:13px;color:#64748b}.option-row select{flex:1;padding:6px 10px;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;cursor:pointer}.scan-notice{background:#fef3c7;color:#92400e;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:20px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;border-top:1px solid #f1f5f9}.btn-cancel{padding:10px 20px;background:#f1f5f9;color:#64748b;border:none;border-radius:8px;font-size:14px;cursor:pointer}.btn-cancel:hover:not(:disabled){background:#e2e8f0}.btn-save{padding:10px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.btn-save:hover:not(:disabled){filter:brightness(1.05)}.btn-save:disabled,.btn-cancel:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 560px){.save-modal{margin:16px;padding:20px}.preset-buttons{grid-template-columns:repeat(2,1fr)}}.app{width:100%;height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-content{flex:1;display:flex;overflow:hidden}.pdf-area{flex:1;overflow:hidden;display:flex;flex-direction:column}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f5f5;color:#666}.empty-icon{font-size:64px;margin-bottom:20px}.empty-state h2{margin:0 0 10px;font-size:24px;color:#333}.empty-state p{margin:0 0 20px;font-size:14px}.empty-state button{padding:12px 24px;font-size:16px;border:none;border-radius:6px;background:#1890ff;color:#fff;cursor:pointer;transition:background .2s}.empty-state button:hover{background:#40a9ff}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);padding:12px 24px;border-radius:6px;font-size:14px;z-index:2000;animation:slideUp .3s ease}.toast.success{background:#52c41a;color:#fff}.toast.error{background:#ff4d4f;color:#fff}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.loading-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:3000}.loading-content{background:#fff;padding:30px 50px;border-radius:12px;text-align:center;min-width:300px;box-shadow:0 4px 20px #00000026}.loading-spinner{width:50px;height:50px;border:4px solid #f3f3f3;border-top:4px solid #1890ff;border-radius:50%;margin:0 auto 20px;animation:spin 1s linear infinite}.loading-text{font-size:16px;color:#333;margin-bottom:15px}.progress-fill{height:100%;background:linear-gradient(90deg,#1890ff,#52c41a);border-radius:4px;transition:width .3s ease}.progress-text{font-size:14px;color:#666}@media (max-width: 768px){.app-content{flex-direction:column}.pdf-area{min-height:50vh}.empty-state{padding:20px}.empty-icon{font-size:48px}.empty-state h2{font-size:18px}.empty-state p{font-size:13px}.empty-state button{padding:10px 20px;font-size:14px}.loading-content{padding:20px 30px;min-width:250px;margin:0 20px}.toast{left:20px;right:20px;transform:none;text-align:center}}.popup-announcement-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease;padding:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.popup-announcement-modal{background:#fff;border-radius:20px;width:100%;max-width:400px;box-shadow:0 25px 80px #00000040;animation:slideUp .4s cubic-bezier(.34,1.56,.64,1);overflow:hidden;position:relative}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.popup-announcement-modal:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#ff6b6b,#feca57,#48dbfb,#ff9ff3,#ff6b6b);background-size:200% 100%;animation:gradientMove 3s linear infinite}@keyframes gradientMove{0%{background-position:0% 0%}to{background-position:200% 0%}}.popup-announcement-header{display:flex;align-items:center;gap:12px;padding:24px 24px 16px;position:relative}.popup-announcement-icon{width:48px;height:48px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:0 4px 15px #667eea4d}.popup-announcement-header h3{flex:1;margin:0;font-size:18px;font-weight:700;color:#1a1a2e;line-height:1.3}.popup-announcement-close{position:absolute;top:16px;right:16px;background:#f0f0f0;border:none;color:#666;width:32px;height:32px;border-radius:10px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.popup-announcement-close:hover{background:#e0e0e0;color:#333;transform:rotate(90deg)}.popup-announcement-content{padding:0 24px 20px;color:#4a4a4a;font-size:15px;line-height:1.8;max-height:250px;overflow-y:auto}.popup-announcement-content p{margin:0 0 12px}.popup-announcement-content p:last-child{margin-bottom:0}.popup-announcement-content::-webkit-scrollbar{width:6px}.popup-announcement-content::-webkit-scrollbar-track{background:#f5f5f5;border-radius:3px}.popup-announcement-content::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}.popup-announcement-content::-webkit-scrollbar-thumb:hover{background:#ccc}.popup-announcement-footer{background:linear-gradient(to bottom,#fafafa,#f5f5f5);padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #eee}.popup-announcement-checkbox{display:flex;align-items:center;gap:8px;color:#888;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s}.popup-announcement-checkbox:hover{color:#666}.popup-announcement-checkbox input{width:18px;height:18px;cursor:pointer;accent-color:#667eea}.popup-announcement-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 28px;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 15px #667eea4d}.popup-announcement-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.popup-announcement-btn:active{transform:translateY(0)}.popup-announcement-indicator{text-align:center;padding:10px;background:#f8f8f8;color:#999;font-size:12px;font-weight:500;letter-spacing:1px}@media (prefers-color-scheme: dark){.popup-announcement-modal{background:#1e1e2e}.popup-announcement-header h3{color:#e0e0e0}.popup-announcement-close{background:#2a2a3a;color:#aaa}.popup-announcement-close:hover{background:#3a3a4a;color:#fff}.popup-announcement-content{color:silver}.popup-announcement-content::-webkit-scrollbar-track{background:#2a2a3a}.popup-announcement-content::-webkit-scrollbar-thumb{background:#4a4a5a}.popup-announcement-footer{background:linear-gradient(to bottom,#1a1a2a,#151525);border-top-color:#2a2a3a}.popup-announcement-checkbox{color:#888}.popup-announcement-indicator{background:#151525;color:#666}}@media (max-width: 480px){.popup-announcement-overlay{padding:16px;align-items:flex-end}.popup-announcement-modal{border-radius:20px 20px 0 0;max-width:100%}.popup-announcement-header{padding:20px 20px 14px}.popup-announcement-icon{width:42px;height:42px;font-size:20px}.popup-announcement-header h3{font-size:16px}.popup-announcement-content{padding:0 20px 16px;font-size:14px}.popup-announcement-footer{padding:14px 20px;flex-direction:column;gap:12px}.popup-announcement-btn{width:100%;padding:14px}}.home{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;padding:24px}.home.loading-page{flex-direction:column;color:#fff}.loading-spinner{font-size:64px;animation:bounce 1s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.home-container{width:100%;max-width:900px}.home-header{text-align:center;color:#fff;margin-bottom:40px}.home-header h1{font-size:36px;font-weight:700;margin:0 0 12px;display:flex;align-items:center;justify-content:center;gap:12px}.logo-icon{font-size:42px}.logo-icon-img{width:48px;height:48px;background:#fff;border-radius:50%;padding:6px;box-shadow:0 2px 10px #00000026}.home-header p{font-size:18px;opacity:.9;margin:0}.ads-banner{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:24px;margin-bottom:16px}.ad-item{background:#fff;border-radius:16px;color:#333;text-decoration:none;font-size:14px;transition:all .3s;overflow:hidden;box-shadow:0 10px 40px #00000026;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:120px}.ad-item:hover{transform:translateY(-5px);box-shadow:0 15px 50px #0003}.ad-item img{display:block;width:100%;height:100%;min-height:120px;object-fit:cover}.ad-item span{display:flex;align-items:center;justify-content:center;padding:24px;font-weight:600;font-size:16px;text-align:center;width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.ads-banner .ad-item:only-child{grid-column:1 / -1}@media (max-width: 600px){.ads-banner{grid-template-columns:1fr}}.tools-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.tool-card{background:#fff;border-radius:16px;padding:32px;text-align:center;box-shadow:0 10px 40px #00000026;transition:transform .3s,box-shadow .3s;position:relative}.tool-card:hover{transform:translateY(-5px);box-shadow:0 15px 50px #0003}.tool-icon{width:80px;height:80px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:40px;margin:0 auto 20px}.tool-card h2{font-size:22px;font-weight:700;color:#1a1a2e;margin:0 0 12px}.tool-card p{font-size:14px;color:#64748b;line-height:1.6;margin:0 0 24px;min-height:44px}.tool-btn{display:inline-block;width:100%;padding:14px 24px;border:none;border-radius:10px;font-size:16px;font-weight:600;color:#fff;text-decoration:none;cursor:pointer;transition:filter .2s,transform .2s}.tool-btn:hover{filter:brightness(1.1);transform:translateY(-2px)}.home-footer{text-align:center;margin-top:40px}.home-footer p{color:#ffffffb3;font-size:14px;margin:0 0 12px}.footer-beian{display:flex;justify-content:center;gap:20px;margin-bottom:12px;flex-wrap:wrap}.footer-beian a{color:#fff9;font-size:12px;text-decoration:none;display:flex;align-items:center;gap:4px;transition:color .2s}.footer-beian a:hover{color:#ffffffe6}.police-icon{width:14px;height:14px}.copyright{color:#ffffff80!important;font-size:12px!important}.admin-link{color:#fff6;font-size:12px;text-decoration:none;transition:color .2s}.admin-link:hover{color:#ffffffb3}@media (max-width: 600px){.home-header h1{font-size:28px}.tools-grid{grid-template-columns:1fr}.tool-card{padding:24px}}.announcements-banner{margin-bottom:24px}.announcement-item{background:#fffffff2;padding:12px 20px;border-radius:10px;margin-bottom:10px;display:flex;align-items:center;gap:10px;box-shadow:0 2px 10px #0000001a}.announcement-item.warning{background:#fff8e6;border-left:4px solid #f59e0b}.announcement-item.success{background:#ecfdf5;border-left:4px solid #10b981}.announcement-item.info{background:#eff6ff;border-left:4px solid #3b82f6}.announcement-icon{font-size:18px}.announcement-title{font-weight:600;color:#1a1a2e}.announcement-content{color:#64748b;font-size:14px}.feedback-fab{position:fixed;bottom:30px;right:30px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);border:none;font-size:24px;cursor:pointer;box-shadow:0 4px 20px #667eea66;transition:transform .2s,box-shadow .2s;z-index:100}.feedback-fab:hover{transform:scale(1.1);box-shadow:0 6px 25px #667eea80}.feedback-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.feedback-modal{background:#fff;border-radius:16px;padding:28px;width:100%;max-width:420px;box-shadow:0 20px 60px #0000004d}.feedback-modal h3{margin:0 0 20px;font-size:20px;color:#1a1a2e}.feedback-form .form-group{margin-bottom:16px}.feedback-form label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#374151}.feedback-form select,.feedback-form input,.feedback-form textarea{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;transition:border-color .2s;box-sizing:border-box}.feedback-form select:focus,.feedback-form input:focus,.feedback-form textarea:focus{outline:none;border-color:#667eea}.feedback-form textarea{resize:vertical;min-height:100px}.feedback-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.feedback-actions .btn-cancel{padding:10px 20px;background:#f1f5f9;color:#64748b;border:none;border-radius:8px;font-size:14px;cursor:pointer}.feedback-actions .btn-submit{padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.feedback-actions .btn-submit:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 600px){.feedback-fab{bottom:20px;right:20px;width:50px;height:50px;font-size:20px}}.floating-ad{position:fixed;top:50%;transform:translateY(-50%);z-index:100}.floating-ad-left{left:10px}.floating-ad-right{right:10px}.floating-ad-item{display:block;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 4px 20px #00000026;transition:all .3s;text-decoration:none;width:120px}.floating-ad-item:hover{box-shadow:0 8px 30px #00000040}.floating-ad-item img{display:block;width:100%;height:auto}.floating-ad-item span{display:block;padding:12px 8px;text-align:center;font-weight:600;font-size:12px;color:#fff;background:linear-gradient(180deg,#667eea,#764ba2);writing-mode:vertical-rl;text-orientation:mixed;min-height:200px}@media (max-width: 1200px){.floating-ad{display:none}}.breadcrumb{margin-bottom:20px;padding:10px 0;border-bottom:1px solid #e0e0e0}.breadcrumb-list{display:flex;align-items:center;list-style:none;margin:0;padding:0;font-size:14px}.breadcrumb-item{display:flex;align-items:center}.breadcrumb-link{color:#007bff;text-decoration:none;transition:color .2s}.breadcrumb-link:hover{color:#0056b3;text-decoration:underline}.breadcrumb-current{color:#6c757d;font-weight:500}.breadcrumb-separator{margin:0 8px;color:#6c757d}@media (max-width: 768px){.breadcrumb-list{font-size:12px}.breadcrumb-separator{margin:0 4px}}.processing-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.processing-modal{background:#fff;padding:40px;border-radius:12px;text-align:center;min-width:320px;max-width:400px;box-shadow:0 20px 40px #0000004d;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.processing-text{font-size:1.1rem;color:#333;margin-bottom:20px;font-weight:500}.progress-bar{width:100%;height:8px;background:#f3f3f3;border-radius:4px;overflow:hidden;margin-bottom:12px}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .3s ease;border-radius:4px}.progress-percentage{font-size:.9rem;color:#6b7280;font-weight:500;margin-bottom:20px}.cancel-button{background:#ef4444;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s ease}.cancel-button:hover{background:#dc2626}@media (max-width: 480px){.processing-modal{margin:20px;padding:30px 20px;min-width:auto}.processing-text{font-size:1rem}}.pdf-merger{max-width:800px;margin:0 auto}.merger-header{text-align:center;margin-bottom:30px}.merger-header h2{font-size:1.8rem;color:#333;margin:0 0 8px}.merger-header p{color:#6b7280;margin:0}.merger-content{display:flex;flex-direction:column;gap:30px}.files-section{background:#f9fafb;border-radius:12px;padding:20px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:15px}.section-header h3{font-size:1.2rem;color:#374151;margin:0}.section-actions{display:flex;gap:12px;align-items:center}.files-list{display:flex;flex-direction:column;gap:12px}.file-item{display:flex;align-items:center;gap:15px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:15px;transition:all .2s ease;cursor:move;-webkit-user-select:none;user-select:none}.file-item:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea1a}.file-item.dragging{opacity:.5;transform:rotate(2deg)}.drag-handle{color:#9ca3af;font-size:1.2rem;cursor:grab;padding:5px;line-height:1}.drag-handle:active{cursor:grabbing}.file-preview{width:50px;height:60px;border-radius:4px;overflow:hidden;background:#f3f4f6;display:flex;align-items:center;justify-content:center;flex-shrink:0}.file-preview img{width:100%;height:100%;object-fit:cover}.preview-placeholder{font-size:1.5rem;color:#9ca3af}.file-info{flex:1;min-width:0}.file-name{font-weight:500;color:#374151;margin-bottom:4px;word-break:break-all}.file-details{font-size:.9rem;color:#6b7280}.file-order{background:#667eea;color:#fff;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:500;flex-shrink:0}.btn-remove{background:#ef4444;color:#fff;border:none;width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;transition:background-color .2s ease;flex-shrink:0}.btn-remove:hover{background:#dc2626}.merge-section{text-align:center;padding:30px;background:#f9fafb;border-radius:12px;border:2px dashed #d1d5db}.btn-merge{font-size:1.1rem;padding:15px 30px;min-width:200px}.merge-hint{margin:15px 0 0;color:#6b7280;font-size:.9rem}@media (max-width: 768px){.section-header{flex-direction:column;align-items:stretch}.section-actions{justify-content:center}.file-item{padding:12px;gap:12px}.file-preview{width:40px;height:50px}.file-name{font-size:.9rem}.file-details{font-size:.8rem}.merge-section{padding:20px}.btn-merge{width:100%;min-width:auto}}@media (max-width: 480px){.files-section,.merge-section{padding:15px}.file-item{flex-wrap:wrap;gap:10px}.file-info{order:1;flex:1 1 100%}.file-preview{order:2}.file-order{order:3}.btn-remove{order:4}}.pdf-splitter{max-width:900px;margin:0 auto}.splitter-header{text-align:center;margin-bottom:30px}.splitter-header h2{font-size:1.8rem;color:#333;margin:0 0 8px}.splitter-header p{color:#6b7280;margin:0}.upload-area{border:2px dashed #d1d5db;border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s ease;background:#f9fafb;min-height:200px;display:flex;align-items:center;justify-content:center}.upload-area:hover{border-color:#667eea;background:#f0f4ff}.upload-content{max-width:400px}.upload-icon{font-size:3rem;margin-bottom:16px;opacity:.7}.upload-content h3{font-size:1.25rem;font-weight:600;color:#374151;margin:0 0 8px}.upload-content p{font-size:1rem;color:#6b7280;margin:0 0 16px;line-height:1.5}.splitter-content{display:flex;flex-direction:column;gap:30px}.document-info{background:#f9fafb;border-radius:12px;padding:20px}.doc-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:15px}.doc-header h3{font-size:1.2rem;color:#374151;margin:0}.doc-details{font-size:.9rem;color:#6b7280}.split-modes h4{font-size:1.1rem;color:#374151;margin:0 0 15px}.mode-options{display:flex;gap:15px;flex-wrap:wrap}.mode-option{display:flex;align-items:center;gap:8px;padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s ease;background:#fff}.mode-option:hover{border-color:#667eea}.mode-option.active{border-color:#667eea;background:#f0f4ff}.mode-option input[type=radio]{margin:0}.mode-option span{font-weight:500;color:#374151}.fixed-input{display:flex;flex-direction:column;gap:8px;background:#f9fafb;border-radius:12px;padding:20px}.fixed-input label{font-weight:500;color:#374151}.fixed-input input{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;max-width:150px}.fixed-input input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.fixed-hint{color:#6b7280;font-size:.9rem;margin:5px 0 0}.page-selection{background:#f9fafb;border-radius:12px;padding:20px}.selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:15px}.selection-header h4{font-size:1.1rem;color:#374151;margin:0}.selection-actions{display:flex;gap:12px}.range-input-row{display:flex;align-items:center;gap:10px;margin-bottom:15px;flex-wrap:wrap}.range-input-row label{font-weight:500;color:#6b7280;font-size:.9rem;white-space:nowrap}.range-input-row input{flex:1;min-width:200px;max-width:400px;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem}.range-input-row input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.btn-link{background:none;border:none;color:#667eea;cursor:pointer;font-size:.9rem;text-decoration:underline}.btn-link:hover{color:#5a67d8}.pages-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:15px;max-height:400px;overflow-y:auto}.page-item{display:flex;flex-direction:column;align-items:center;padding:12px;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s ease;background:#fff}.page-item:hover{border-color:#667eea}.page-item.selected{border-color:#667eea;background:#f0f4ff}.page-preview{width:80px;height:100px;border-radius:4px;overflow:hidden;background:#f3f4f6;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.page-preview img{width:100%;height:100%;object-fit:cover}.page-number{font-size:.8rem;color:#6b7280;text-align:center}.split-section{text-align:center;padding:30px;background:#f9fafb;border-radius:12px;border:2px dashed #d1d5db}.btn-split{font-size:1.1rem;padding:15px 30px;min-width:200px}.split-hint{margin:15px 0 0;color:#6b7280;font-size:.9rem}.btn-primary{background:#667eea;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-weight:500;transition:background-color .2s ease}.btn-primary:hover:not(:disabled){background:#5a67d8}.btn-primary:disabled{background:#9ca3af;cursor:not-allowed}.btn-secondary{background:#6b7280;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s ease}.btn-secondary:hover{background:#4b5563}@media (max-width: 768px){.doc-header{flex-direction:column;align-items:stretch}.mode-options{flex-direction:column}.selection-header{flex-direction:column;align-items:stretch}.pages-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px}.page-preview{width:60px;height:80px}.split-section{padding:20px}.btn-split{width:100%;min-width:auto}}@media (max-width: 480px){.pages-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.page-preview{width:50px;height:65px}}.file-upload-area{border:2px dashed #d1d5db;border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s ease;background:#f9fafb;min-height:200px;display:flex;align-items:center;justify-content:center}.file-upload-area:hover{border-color:#667eea;background:#f0f4ff}.file-upload-area.drag-over{border-color:#667eea;background:#e0e7ff;transform:scale(1.02)}.file-upload-area.disabled{opacity:.5;cursor:not-allowed;background:#f3f4f6}.file-upload-area.disabled:hover{border-color:#d1d5db;background:#f3f4f6;transform:none}.upload-content{max-width:400px;width:100%;text-align:center}.upload-icon{font-size:3rem;margin:0 auto 16px;opacity:.7;display:flex;align-items:center;justify-content:center;width:100%;height:auto}.upload-title{font-size:1.25rem;font-weight:600;color:#374151;margin:0 0 8px}.upload-description{font-size:1rem;color:#6b7280;margin:0 0 16px;line-height:1.5}.upload-hint{font-size:.9rem;color:#667eea;font-weight:500;margin-bottom:8px}.upload-limit{font-size:.8rem;color:#9ca3af}@media (max-width: 768px){.file-upload-area{padding:30px 15px;min-height:160px}.upload-icon{font-size:2.5rem}.upload-title{font-size:1.1rem}.upload-description{font-size:.9rem}.upload-hint{font-size:.8rem}.upload-limit{font-size:.75rem}}.pdf-to-image{display:flex;flex-direction:column;gap:1.5rem;max-width:1200px;margin:0 auto}.file-info{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.file-details h3{margin:0 0 .25rem;font-size:1.1rem;color:#333}.file-details p{margin:0;color:#666;font-size:.9rem}.reset-button{padding:.5rem 1rem;background:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.reset-button:hover{background:#5a6268}.format-options,.dpi-options{display:flex;gap:.5rem}.format-button,.dpi-button{padding:.5rem 1rem;border:1px solid #dee2e6;background:#fff;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s}.format-button:hover,.dpi-button:hover{border-color:#007bff;background:#f8f9ff}.format-button.active,.dpi-button.active{background:#007bff;color:#fff;border-color:#007bff}.page-selection{display:flex;flex-direction:column;gap:1rem}.selection-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.5rem;border-bottom:1px solid #e9ecef}.selection-header h3{margin:0;font-size:1.1rem;color:#333}.selection-controls{display:flex;align-items:center;gap:1rem}.selection-controls button{padding:.25rem .75rem;background:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background-color .2s}.selection-controls button:hover{background:#5a6268}.selection-count{font-size:.9rem;color:#666}.page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;padding:1rem 0}.page-item{display:flex;flex-direction:column;align-items:center;cursor:pointer;border-radius:8px;padding:.5rem;transition:all .2s;border:2px solid transparent}.page-item:hover{background:#f8f9fa;border-color:#dee2e6}.page-item.selected{background:#e3f2fd;border-color:#2196f3}.page-preview{position:relative;width:150px;height:200px;border:1px solid #dee2e6;border-radius:4px;overflow:hidden;background:#fff}.page-preview img{width:100%;height:100%;object-fit:contain}.page-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0000001a;display:flex;align-items:flex-start;justify-content:flex-end;padding:.5rem;opacity:0;transition:opacity .2s}.page-item:hover .page-overlay,.page-item.selected .page-overlay{opacity:1}.page-checkbox{width:24px;height:24px;border:2px solid white;border-radius:4px;background:#00000080;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.9rem}.page-item.selected .page-checkbox{background:#2196f3;border-color:#2196f3}.page-info{margin-top:.5rem;text-align:center}.page-info span{font-size:.85rem;color:#666}@media (max-width: 768px){.conversion-settings{flex-direction:column;gap:1rem}.page-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.page-preview{width:120px;height:160px}.selection-header{flex-direction:column;align-items:flex-start;gap:.5rem}.selection-controls{align-self:stretch;justify-content:space-between}.action-buttons{flex-direction:column;align-items:stretch}.file-info{flex-direction:column;align-items:flex-start;gap:1rem}}@media (prefers-color-scheme: dark){.file-info,.conversion-settings{background:#2d3748;border-color:#4a5568}.file-details h3{color:#e2e8f0}.file-details p{color:#a0aec0}.setting-group label{color:#e2e8f0}.format-button,.dpi-button{background:#4a5568;border-color:#718096;color:#e2e8f0}.format-button:hover,.dpi-button:hover{background:#2d3748;border-color:#63b3ed}.page-item:hover{background:#2d3748;border-color:#4a5568}.page-preview{border-color:#4a5568;background:#1a202c}.selection-header{border-color:#4a5568}.selection-header h3{color:#e2e8f0}.selection-count,.page-info span{color:#a0aec0}}.image-to-pdf{display:flex;flex-direction:column;gap:1.5rem;max-width:1200px;margin:0 auto}.conversion-workspace{display:flex;flex-direction:column;gap:1.5rem}.conversion-settings{display:flex;gap:2rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.setting-group{display:flex;flex-direction:column;gap:.5rem}.setting-group label{font-weight:500;color:#333;font-size:.9rem}.page-size-options,.orientation-options{display:flex;gap:.5rem}.size-button,.orientation-button{padding:.5rem 1rem;border:1px solid #dee2e6;background:#fff;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s;white-space:nowrap}.size-button:hover,.orientation-button:hover{border-color:#007bff;background:#f8f9ff}.size-button.active,.orientation-button.active{background:#007bff;color:#fff;border-color:#007bff}.image-list{display:flex;flex-direction:column;gap:1rem}.list-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.5rem;border-bottom:1px solid #e9ecef}.list-header h3{margin:0;font-size:1.1rem;color:#333}.clear-button{padding:.25rem .75rem;background:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background-color .2s}.clear-button:hover{background:#c82333}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;padding:1rem 0}.image-item{display:flex;flex-direction:column;border:2px solid #dee2e6;border-radius:8px;padding:.75rem;background:#fff;cursor:grab;transition:all .2s;position:relative}.image-item:hover{border-color:#007bff;box-shadow:0 2px 8px #007bff26}.image-item.dragging{opacity:.5;transform:rotate(5deg);cursor:grabbing}.image-preview{position:relative;width:100%;height:150px;border:1px solid #dee2e6;border-radius:4px;overflow:hidden;background:#f8f9fa;margin-bottom:.75rem}.image-preview img{width:100%;height:100%;object-fit:contain}.remove-button{position:absolute;top:.25rem;right:.25rem;width:24px;height:24px;border:none;border-radius:50%;background:#dc3545e6;color:#fff;cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.image-item:hover .remove-button{opacity:1}.remove-button:hover{background:#dc3545}.image-info{display:flex;flex-direction:column;gap:.25rem}.image-name{font-size:.85rem;font-weight:500;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.image-dimensions{font-size:.75rem;color:#666}.image-order{font-size:.75rem;color:#007bff;font-weight:500}.drag-hint{text-align:center;font-size:.85rem;color:#666;font-style:italic;padding:.5rem;background:#f8f9fa;border-radius:4px;border:1px dashed #dee2e6}.action-buttons{display:flex;gap:1rem;justify-content:center;padding:1rem 0}.convert-button,.download-button{padding:.75rem 2rem;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:500;transition:all .2s}.convert-button{background:#28a745;color:#fff}.convert-button:hover:not(:disabled){background:#218838}.convert-button:disabled{background:#6c757d;cursor:not-allowed}.download-button{background:#007bff;color:#fff}.download-button:hover:not(:disabled){background:#0056b3}.error-message{display:flex;align-items:center;gap:.5rem;padding:1rem;background:#f8d7da;color:#721c24;border:1px solid #f5c6cb;border-radius:6px;margin-top:1rem}.error-icon{font-size:1.2rem}@media (max-width: 768px){.conversion-settings{flex-direction:column;gap:1rem}.page-size-options,.orientation-options{flex-wrap:wrap}.size-button,.orientation-button{flex:1;min-width:0}.image-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}.image-preview{height:120px}.list-header{flex-direction:column;align-items:flex-start;gap:.5rem}.action-buttons{flex-direction:column;align-items:stretch}}@media (prefers-color-scheme: dark){.conversion-settings{background:#2d3748;border-color:#4a5568}.setting-group label{color:#e2e8f0}.size-button,.orientation-button{background:#4a5568;border-color:#718096;color:#e2e8f0}.size-button:hover,.orientation-button:hover{background:#2d3748;border-color:#63b3ed}.list-header{border-color:#4a5568}.list-header h3{color:#e2e8f0}.image-item{background:#2d3748;border-color:#4a5568}.image-item:hover{border-color:#63b3ed}.image-preview{background:#1a202c;border-color:#4a5568}.image-name{color:#e2e8f0}.image-dimensions{color:#a0aec0}.drag-hint{background:#2d3748;border-color:#4a5568;color:#a0aec0}}.context-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999}.context-menu{position:fixed;z-index:1000;background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:180px;padding:4px 0;animation:contextMenuFadeIn .15s ease-out}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{padding:10px 16px;cursor:pointer;font-size:14px;color:#333;display:flex;align-items:center;gap:8px;transition:background-color .15s}.context-menu-item:hover{background:#f0f4ff;color:#007bff}.context-menu-item:first-child{border-radius:6px 6px 0 0}.context-menu-item:last-child{border-radius:0 0 6px 6px}.context-menu-divider{height:1px;background:#e9ecef;margin:4px 0}.rotation-badge{position:absolute;bottom:4px;left:4px;background:#007bffe6;color:#fff;font-size:11px;padding:2px 6px;border-radius:4px;font-weight:500}@media (prefers-color-scheme: dark){.context-menu{background:#2d3748;border-color:#4a5568}.context-menu-item{color:#e2e8f0}.context-menu-item:hover{background:#4a5568;color:#63b3ed}.context-menu-divider{background:#4a5568}}.signature-canvas-container{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px}.signature-canvas{border:2px dashed #d1d5db;border-radius:8px;cursor:crosshair;touch-action:none;background:#fff;max-width:100%}.signature-canvas:hover{border-color:#667eea}.signature-canvas-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.control-btn{display:flex;align-items:center;gap:4px;padding:8px 16px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-size:14px;cursor:pointer;transition:all .2s}.control-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.control-btn:disabled{opacity:.5;cursor:not-allowed}.control-btn.clear-btn:hover:not(:disabled){background:#fef2f2;border-color:#ef4444;color:#ef4444}.control-btn.save-btn:hover:not(:disabled){background:#f0fdf4;border-color:#22c55e;color:#22c55e}.signature-placeholder{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#9ca3af;font-size:18px;pointer-events:none;-webkit-user-select:none;user-select:none}@media (max-width: 768px){.signature-canvas-container{width:100%;padding:0 10px;box-sizing:border-box}.signature-canvas{width:100%;height:auto;min-height:150px}.signature-canvas-controls{width:100%}.control-btn{flex:1;min-width:80px;justify-content:center;padding:10px 12px}.signature-placeholder{font-size:16px}}.signature-tool{padding:20px}.signature-tool-layout{display:grid;grid-template-columns:400px 1fr;gap:24px;min-height:500px}.signature-create-section,.pdf-preview-section{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.signature-create-section h3,.pdf-preview-section h3{margin:0 0 16px;font-size:18px;color:#1f2937;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.pen-settings{display:flex;gap:24px;margin-bottom:16px}.setting-group{display:flex;flex-direction:column;gap:8px}.setting-group label{font-size:14px;color:#6b7280}.color-options{display:flex;gap:8px}.color-btn{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .2s}.color-btn:hover{transform:scale(1.1)}.color-btn.active{border-color:#667eea;box-shadow:0 0 0 2px #667eea4d}.width-options{display:flex;gap:8px}.width-btn{width:36px;height:28px;border:1px solid #d1d5db;border-radius:4px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.width-btn:hover{border-color:#667eea}.width-btn.active{border-color:#667eea;background:#f0f4ff}.width-btn span{display:block;border-radius:2px}.saved-signatures{margin-top:20px}.saved-signatures h4{font-size:14px;color:#6b7280;margin:0 0 12px}.signatures-list{display:flex;flex-wrap:wrap;gap:12px}.saved-signature-item{position:relative;width:120px;height:50px;border:2px solid #e5e7eb;border-radius:8px;padding:4px;cursor:pointer;transition:all .2s;background:#fff}.saved-signature-item:hover{border-color:#667eea}.saved-signature-item.selected{border-color:#667eea;background:#f0f4ff}.saved-signature-item img{width:100%;height:100%;object-fit:contain}.delete-signature-btn{position:absolute;top:-8px;right:-8px;width:20px;height:20px;border-radius:50%;border:none;background:#ef4444;color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.saved-signature-item:hover .delete-signature-btn{opacity:1}.pdf-controls{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px;background:#f9fafb;border-radius:8px}.pdf-controls button{padding:8px 16px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;transition:all .2s}.pdf-controls button:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.pdf-controls button:disabled{opacity:.5;cursor:not-allowed}.pdf-controls span{color:#6b7280;font-size:14px}.change-file-btn{margin-left:auto;color:#667eea!important;border-color:#667eea!important}.change-file-btn:hover{background:#f0f4ff!important}.pdf-preview-container{position:relative;border:2px solid #e5e7eb;border-radius:8px;overflow:hidden;height:500px;background:#f3f4f6;display:flex;justify-content:center;align-items:center}.pdf-preview-container.placing{cursor:crosshair;border-color:#667eea}.pdf-page-wrapper{position:relative;display:inline-block}.pdf-page-image{display:block;max-width:100%;max-height:500px;object-fit:contain}.signature-placement{position:absolute;border:2px dashed #667eea;background:#667eea1a;cursor:move;-webkit-user-select:none;user-select:none}.signature-placement img{width:100%;height:100%;object-fit:contain;pointer-events:none}.resize-handle{position:absolute;width:10px;height:10px;background:#667eea;border-radius:2px;touch-action:none}.resize-handle.nw{top:-5px;left:-5px;cursor:nw-resize}.resize-handle.ne{top:-5px;right:-5px;cursor:ne-resize}.resize-handle.sw{bottom:-5px;left:-5px;cursor:sw-resize}.resize-handle.se{bottom:-5px;right:-5px;cursor:se-resize}@media (max-width: 768px){.resize-handle{width:20px;height:20px}.resize-handle.nw{top:-10px;left:-10px}.resize-handle.ne{top:-10px;right:-10px}.resize-handle.sw{bottom:-10px;left:-10px}.resize-handle.se{bottom:-10px;right:-10px}.signature-placement{touch-action:none}.delete-placement-btn{width:32px;height:32px;font-size:20px;top:-16px;right:-16px}}.placing-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#667eeae6;color:#fff;padding:12px 24px;border-radius:8px;font-size:16px;pointer-events:none}.signature-actions{margin-top:16px;display:flex;flex-direction:column;gap:16px}.scale-control{display:flex;align-items:center;gap:12px}.scale-control label{font-size:14px;color:#6b7280;min-width:60px}.scale-control input[type=range]{flex:1;max-width:200px}.scale-control span{font-size:14px;color:#374151;min-width:40px}.scale-hint{font-size:12px;color:#9ca3af;margin-top:-8px}.action-buttons{display:flex;gap:12px}.place-btn,.clear-btn,.apply-btn{padding:12px 24px;border:none;border-radius:8px;font-size:15px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px}.place-btn{background:#667eea;color:#fff}.place-btn:hover:not(:disabled){background:#5a67d8}.place-btn:disabled{opacity:.5;cursor:not-allowed}.clear-btn{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.clear-btn:hover{background:#e5e7eb}.apply-btn{background:#22c55e;color:#fff}.apply-btn:hover:not(:disabled){background:#16a34a}.apply-btn:disabled{opacity:.5;cursor:not-allowed}.error-message{margin-top:16px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px}@media (max-width: 1024px){.signature-tool-layout{grid-template-columns:1fr}.signature-create-section{order:1}.pdf-preview-section{order:2}}@media (max-width: 768px){.signature-tool{padding:12px}.pen-settings{flex-direction:column;gap:12px}.pdf-controls{flex-wrap:wrap}.change-file-btn{width:100%;margin-left:0;margin-top:8px}.action-buttons{flex-direction:column}.place-btn,.clear-btn,.apply-btn{width:100%;justify-content:center}}.signature-placement.selected{border-color:#22c55e;border-style:solid}.delete-placement-btn{position:absolute;top:-12px;right:-12px;width:24px;height:24px;border-radius:50%;border:none;background:#ef4444;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10}.delete-placement-btn:hover{background:#dc2626}.placement-info{margin-bottom:12px}.placement-count{font-size:14px;color:#6b7280;background:#f3f4f6;padding:6px 12px;border-radius:4px}.error-boundary{min-height:400px;display:flex;align-items:center;justify-content:center;padding:40px 20px}.error-content{text-align:center;max-width:500px;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:40px 30px}.error-icon{font-size:3rem;margin-bottom:20px}.error-content h2{color:#dc2626;font-size:1.5rem;margin:0 0 12px}.error-content p{color:#7f1d1d;font-size:1rem;margin:0 0 24px;line-height:1.5}.error-details{text-align:left;margin:20px 0;background:#fff;border:1px solid #fca5a5;border-radius:8px;padding:16px}.error-details summary{cursor:pointer;font-weight:500;color:#dc2626;margin-bottom:12px}.error-details summary:hover{color:#b91c1c}.error-message,.error-stack{background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;padding:12px;font-size:.8rem;color:#374151;white-space:pre-wrap;overflow-x:auto;margin:8px 0}.error-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.retry-button,.reload-button{padding:10px 20px;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.retry-button{background:#667eea;color:#fff}.retry-button:hover{background:#5a67d8}.reload-button{background:#6b7280;color:#fff}.reload-button:hover{background:#4b5563}@media (max-width: 768px){.error-boundary{padding:20px 15px}.error-content{padding:30px 20px}.error-content h2{font-size:1.3rem}.error-content p{font-size:.9rem}.error-actions{flex-direction:column}.retry-button,.reload-button{width:100%}}.pdf-toolkit{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.toolkit-container{max-width:1200px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000001a;overflow:hidden}.toolkit-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:40px 30px;text-align:center}.toolkit-header h1{font-size:2.5rem;margin:0 0 10px;font-weight:700}.toolkit-header p{font-size:1.1rem;margin:0;opacity:.9}.toolkit-tabs{display:flex;background:#f8f9fa;border-bottom:1px solid #e9ecef;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.toolkit-tabs::-webkit-scrollbar{display:none}.tab-button{flex:1;min-width:140px;padding:20px 15px;border:none;background:transparent;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:14px;color:#6c757d;border-bottom:3px solid transparent}.tab-button:hover{background:#e9ecef;color:#495057}.tab-button.active{background:#fff;color:#667eea;border-bottom-color:#667eea}.tab-icon{font-size:24px}.tab-name{font-weight:500}.toolkit-main{min-height:600px;padding:30px}.tool-content{max-width:800px;margin:0 auto}.tool-header{text-align:center;margin-bottom:40px}.tool-header h2{font-size:2rem;margin:0 0 10px;color:#333}.tool-header p{font-size:1.1rem;color:#6c757d;margin:0}.empty-state{text-align:center;padding:60px 20px;color:#6c757d}.empty-state .empty-icon{font-size:4rem;margin-bottom:20px;opacity:.5}.empty-state h3{font-size:1.5rem;margin:0 0 10px;color:#495057}.empty-state p{font-size:1rem;margin:0}.processing-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.processing-modal{background:#fff;padding:40px;border-radius:12px;text-align:center;min-width:300px;box-shadow:0 10px 30px #0000004d}.processing-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}.processing-text{font-size:1.1rem;color:#333;margin-bottom:20px}.progress-bar{width:100%;height:8px;background:#f3f3f3;border-radius:4px;overflow:hidden;margin-bottom:10px}.progress-percentage{font-size:.9rem;color:#6c757d}@media (max-width: 768px){.pdf-toolkit{padding:10px}.toolkit-header{padding:30px 20px}.toolkit-header h1{font-size:2rem}.toolkit-header p{font-size:1rem}.tab-button{min-width:100px;padding:15px 10px;font-size:12px}.tab-icon{font-size:20px}.toolkit-main{padding:20px}.tool-header h2{font-size:1.5rem}.tool-header p{font-size:1rem}.empty-state{padding:40px 20px}.empty-state .empty-icon{font-size:3rem}.processing-modal{margin:20px;padding:30px}}@media (max-width: 480px){.toolkit-tabs{flex-wrap:wrap}.tab-button{flex:1 1 calc(50% - 1px);min-width:auto}}.qrcode-generator{padding:0}.qr-main-tabs{display:flex;gap:0;background:#fff;border-bottom:1px solid #e5e7eb}.main-tab{flex:1;padding:14px 20px;border:none;background:transparent;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s;position:relative}.main-tab:hover,.main-tab.active{color:#667eea;background:#f8f9ff}.main-tab.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:#667eea}.main-tab .badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;background:#667eea;color:#fff;font-size:11px;border-radius:9px}.qr-template-bar{display:flex;gap:8px;padding:16px 20px;background:#fff;border-bottom:1px solid #e5e7eb;overflow-x:auto}.qr-template-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border:2px solid #e5e7eb;border-radius:20px;background:#fff;cursor:pointer;transition:all .2s;white-space:nowrap;font-size:13px}.qr-template-btn:hover{border-color:#667eea;background:#f8f9ff}.qr-template-btn.active{border-color:#667eea;background:#667eea;color:#fff}.template-icon{font-size:16px}.template-name{font-size:13px;font-weight:500}.qr-main-content{display:grid;grid-template-columns:1fr 340px;gap:0;min-height:500px}.qr-left-panel{padding:16px;background:#f9fafb;overflow-y:auto;max-height:calc(100vh - 200px)}.panel-section{background:#fff;border-radius:10px;padding:14px;margin-bottom:12px;box-shadow:0 1px 3px #0000000d}.section-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#1f2937;margin:0 0 10px}.section-desc{font-size:12px;font-weight:400;color:#9ca3af;margin-left:auto}.toggle-advanced{margin-left:auto;padding:3px 10px;border:1px solid #d1d5db;border-radius:4px;background:transparent;font-size:11px;color:#6b7280;cursor:pointer}.toggle-advanced:hover{background:#f3f4f6}.qr-input-area{margin-top:8px}.qr-input,.qr-select,.qr-textarea{width:100%;padding:10px 12px;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.qr-input:focus,.qr-select:focus,.qr-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.qr-textarea{resize:vertical;min-height:80px}.input-with-icon{position:relative}.input-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:14px}.input-with-icon .qr-input{padding-left:36px}.input-hint{font-size:11px;color:#9ca3af;margin:4px 0 0}.input-footer{display:flex;justify-content:flex-end;margin-top:4px}.char-count{font-size:11px;color:#9ca3af}.form-group{margin-bottom:10px}.form-group label{display:block;font-size:12px;font-weight:500;color:#374151;margin-bottom:4px}.required{color:#ef4444}.form-row{display:flex;gap:10px;align-items:flex-end}.flex-1{flex:1}.checkbox-label{display:flex;align-items:center;gap:6px;font-size:12px;color:#374151;cursor:pointer;padding-bottom:10px}.checkbox-label input[type=checkbox]{width:14px;height:14px}.btn-secondary{padding:8px 16px;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:13px;color:#374151;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#f3f4f6;border-color:#667eea}.color-themes{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.color-theme-btn{width:28px;height:28px;border:2px solid #e5e7eb;border-radius:50%;padding:2px;background:#fff;cursor:pointer;transition:all .2s}.color-theme-btn:hover{border-color:#667eea;transform:scale(1.1)}.color-theme-btn.active{border-color:#667eea;box-shadow:0 0 0 2px #667eea4d}.theme-preview{display:block;width:100%;height:100%;border-radius:50%}.custom-color{margin-left:6px}.custom-color input[type=color]{width:28px;height:28px;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;padding:1px}.advanced-options{margin-top:12px;padding-top:12px;border-top:1px solid #e5e7eb}.option-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.option-row label{font-size:12px;color:#6b7280;min-width:45px}.slider-group{flex:1;display:flex;align-items:center;gap:10px}.slider-group input[type=range]{flex:1;height:4px;border-radius:2px;background:#e5e7eb;cursor:pointer}.slider-value{font-size:12px;color:#374151;min-width:45px}.option-row input[type=color]{width:32px;height:24px;border:1px solid #d1d5db;border-radius:4px;cursor:pointer}.style-options{margin-top:10px}.style-section{margin-bottom:12px}.style-section label{display:block;font-size:12px;color:#6b7280;margin-bottom:6px}.style-buttons{display:flex;gap:6px}.style-btn{width:36px;height:36px;border:2px solid #e5e7eb;border-radius:6px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.style-btn:hover{border-color:#667eea}.style-btn.active{border-color:#667eea;background:#f0f4ff}.dot-preview,.eye-preview{width:16px;height:16px;background:#1f2937}.dot-square{border-radius:0}.dot-rounded{border-radius:4px}.dot-dots{border-radius:50%}.dot-classy{border-radius:0;transform:scale(.85)}.dot-classy-rounded{border-radius:3px;transform:scale(.85)}.eye-square{border-radius:0}.eye-rounded{border-radius:4px}.eye-circle{border-radius:50%}.eye-leaf{border-radius:50% 0}.gradient-presets{display:flex;gap:6px;flex-wrap:wrap}.gradient-btn{width:32px;height:32px;border:2px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .2s;font-size:11px;color:#6b7280}.gradient-btn:hover{border-color:#667eea}.gradient-btn.active{border-color:#667eea;box-shadow:0 0 0 2px #667eea4d}.gradient-controls{margin-top:10px;display:flex;flex-direction:column;gap:8px}.rotation-slider{display:flex;align-items:center;gap:8px;font-size:12px;color:#6b7280}.rotation-slider input[type=range]{flex:1}.logo-upload-area{border:2px dashed #d1d5db;border-radius:8px;padding:16px;text-align:center;transition:all .2s}.logo-upload-area:hover{border-color:#667eea;background:#f8f9ff}.logo-upload-label{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;color:#6b7280;font-size:13px}.upload-icon{font-size:20px;width:36px;height:36px;line-height:32px;border:2px dashed #d1d5db;border-radius:50%;color:#9ca3af}.logo-preview-area{display:flex;align-items:center;gap:10px;padding:10px;background:#f9fafb;border-radius:6px}.logo-thumb{width:40px;height:40px;object-fit:contain;border-radius:4px;background:#fff;border:1px solid #e5e7eb}.logo-controls{flex:1;display:flex;flex-direction:column;gap:6px}.logo-size-slider{display:flex;align-items:center;gap:6px;font-size:11px;color:#6b7280}.logo-size-slider input[type=range]{flex:1;height:3px}.remove-logo{padding:3px 10px;border:1px solid #ef4444;border-radius:4px;background:transparent;color:#ef4444;font-size:11px;cursor:pointer;align-self:flex-start}.remove-logo:hover{background:#fef2f2}.qr-right-panel{padding:16px;background:#fff;border-left:1px solid #e5e7eb;display:flex;flex-direction:column;gap:12px}.qr-preview-card{background:#f9fafb;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:12px}.preview-area{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:8px;border:1px solid #e5e7eb;overflow:hidden}.preview-loading{display:flex;flex-direction:column;align-items:center;gap:10px;color:#6b7280;font-size:13px}.loading-spinner{width:28px;height:28px;border:3px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.qr-preview-img{max-width:100%;max-height:100%;object-fit:contain}.preview-empty{display:flex;flex-direction:column;align-items:center;gap:6px;color:#9ca3af;font-size:13px}.empty-icon{font-size:40px;opacity:.5}.qr-error{padding:8px 10px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:12px}.download-options{display:flex;flex-direction:column;gap:10px}.format-tabs{display:flex;gap:6px}.format-tab{flex:1;padding:7px;border:1px solid #e5e7eb;border-radius:5px;background:#fff;font-size:12px;font-weight:500;color:#6b7280;cursor:pointer;transition:all .2s}.format-tab:hover{border-color:#667eea;color:#667eea}.format-tab.active{border-color:#667eea;background:#667eea;color:#fff}.download-btn{width:100%;padding:12px;border:none;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.download-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.download-btn:disabled{background:#d1d5db;cursor:not-allowed}.qr-tips{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:10px 12px}.qr-tips h4{font-size:12px;font-weight:600;color:#166534;margin:0 0 6px}.qr-tips ul{margin:0;padding-left:14px}.qr-tips li{font-size:11px;color:#15803d;line-height:1.6;margin-bottom:4px}.qr-tips li strong{color:#166534}.qr-tips .tips-common{margin-top:10px;padding-top:10px;border-top:1px dashed #bbf7d0}.decode-tab{padding:24px;max-width:600px;margin:0 auto}.decode-upload-area{border:2px dashed #d1d5db;border-radius:12px;padding:40px 20px;text-align:center;transition:all .2s;background:#fafafa}.decode-upload-area:hover{border-color:#667eea;background:#f8f9ff}.decode-upload-label{display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer}.upload-icon-large{font-size:48px}.upload-text{font-size:16px;font-weight:500;color:#374151}.upload-hint{font-size:13px;color:#9ca3af}.decode-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;color:#6b7280}.decode-result{margin-top:20px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:16px}.decode-result h4{font-size:14px;font-weight:600;color:#1f2937;margin:0 0 12px}.result-content{background:#f9fafb;border-radius:6px;padding:12px;margin-bottom:12px}.result-content pre{margin:0;font-size:13px;white-space:pre-wrap;word-break:break-all;color:#374151}.result-actions{display:flex;gap:10px}.history-tab{padding:16px}.history-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#9ca3af}.history-empty .empty-icon{font-size:48px;margin-bottom:12px}.empty-hint{font-size:13px;margin-top:8px}.history-header{display:flex;justify-content:space-between;align-items:center;padding:8px 0;margin-bottom:12px;border-bottom:1px solid #e5e7eb;font-size:13px;color:#6b7280}.btn-text-danger{background:none;border:none;color:#ef4444;font-size:13px;cursor:pointer}.btn-text-danger:hover{text-decoration:underline}.history-list{display:flex;flex-direction:column;gap:10px}.history-item{display:flex;align-items:center;gap:12px;padding:10px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;transition:all .2s}.history-item:hover{border-color:#667eea;box-shadow:0 2px 8px #0000000d}.history-thumb{width:50px;height:50px;object-fit:contain;border-radius:4px;background:#f9fafb}.history-info{flex:1;display:flex;flex-direction:column;gap:4px}.history-template{font-size:13px;font-weight:500;color:#1f2937}.history-date{font-size:11px;color:#9ca3af}.history-actions{display:flex;gap:6px}.btn-icon{width:32px;height:32px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-icon:hover{border-color:#667eea;background:#f8f9ff}@media (max-width: 900px){.qr-main-content{grid-template-columns:1fr}.qr-right-panel{border-left:none;border-top:1px solid #e5e7eb}.preview-area{max-height:280px;aspect-ratio:auto;min-height:180px}}@media (max-width: 600px){.qr-main-tabs{flex-wrap:wrap}.main-tab{flex:1 1 auto;padding:10px 12px;font-size:13px}.qr-template-bar{padding:10px;gap:4px}.qr-template-btn{padding:6px 10px}.template-name{display:none}.qr-left-panel,.qr-right-panel,.panel-section{padding:10px}.form-row{flex-direction:column;gap:0}.checkbox-label{padding-bottom:0;margin-top:6px}.decode-tab{padding:16px}.decode-upload-area{padding:30px 16px}}.batch-page{display:flex;flex-direction:column;min-height:500px;height:100%;background:#f8fafc}.batch-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:linear-gradient(135deg,#fff,#fafbfc);border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px #00000008}.toolbar-left{display:flex;align-items:center;gap:14px}.toolbar-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;font-size:13px;font-weight:500;color:#475569;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #0000000a}.toolbar-btn:hover{border-color:#94a3b8;background:#f8fafc;transform:translateY(-1px);box-shadow:0 2px 4px #0000000f}.toolbar-btn.primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:transparent;color:#fff;box-shadow:0 2px 8px #6366f14d}.toolbar-btn.primary:hover{background:linear-gradient(135deg,#4f46e5,#7c3aed);box-shadow:0 4px 12px #6366f166}.toolbar-btn.danger{color:#ef4444;border-color:#fecaca;background:#fff}.toolbar-btn.danger:hover{background:#fef2f2;border-color:#f87171}.btn-icon-sm{font-size:15px}.toolbar-info{display:flex;align-items:center;gap:6px;font-size:13px;color:#10b981;font-weight:600;padding:6px 12px;background:#ecfdf5;border-radius:20px}.batch-main{display:grid;grid-template-columns:300px 1fr;flex:1;overflow:hidden;min-height:500px;max-height:calc(100vh - 250px)}.batch-config{padding:16px;background:linear-gradient(180deg,#fff,#fafbfc);border-right:1px solid #e2e8f0;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.config-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;box-shadow:0 1px 3px #0000000a;transition:all .2s ease}.config-card:hover{box-shadow:0 4px 12px #0000000f}.card-header{margin-bottom:12px}.card-title{font-size:12px;font-weight:700;color:#6366f1;text-transform:uppercase;letter-spacing:.8px}.field-chips{display:flex;flex-wrap:wrap;gap:8px}.field-chip{padding:6px 14px;border:1px solid #c7d2fe;border-radius:20px;background:linear-gradient(135deg,#eef2ff,#e0e7ff);color:#4f46e5;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.field-chip:hover{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:transparent;color:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #6366f14d}.template-input{width:100%;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;font-size:13px;resize:none;background:#fafbfc;box-sizing:border-box;transition:all .2s ease}.template-input:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f11a}.card-btn{width:100%;padding:12px;margin-top:12px;border:none;border-radius:10px;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);color:#475569;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.card-btn:hover:not(:disabled){background:linear-gradient(135deg,#e2e8f0,#cbd5e1);transform:translateY(-1px)}.card-btn:disabled{opacity:.5;cursor:not-allowed}.card-btn.primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 2px 8px #6366f140}.card-btn.primary:hover:not(:disabled){background:linear-gradient(135deg,#4f46e5,#7c3aed);box-shadow:0 4px 12px #6366f159}.mode-switch{display:flex;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-radius:10px;padding:4px;margin-bottom:14px}.mode-btn{flex:1;padding:10px;border:none;border-radius:8px;background:transparent;font-size:12px;font-weight:500;color:#64748b;cursor:pointer;transition:all .2s ease}.mode-btn.active{background:#fff;color:#6366f1;font-weight:600;box-shadow:0 2px 8px #00000014}.params-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.param-field{display:flex;flex-direction:column;gap:6px}.param-label{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.3px}.param-input-group{display:flex;align-items:center;background:#fafbfc;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;transition:all .2s ease}.param-input-group:focus-within{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.param-input-group input{flex:1;width:100%;padding:10px 12px;border:none;font-size:14px;font-weight:500;text-align:center;background:transparent}.param-input-group input:focus{outline:none}.param-input-group span{padding:0 10px;font-size:11px;font-weight:500;color:#94a3b8;background:#f1f5f9}.param-select{width:100%;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;background:#fafbfc;cursor:pointer;transition:all .2s ease}.param-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.empty-hint-card{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:50px 24px;background:linear-gradient(135deg,#fafbfc,#f1f5f9);border-radius:16px;border:2px dashed #e2e8f0}.hint-icon{font-size:56px;margin-bottom:16px;filter:grayscale(30%)}.hint-text{font-size:15px;font-weight:600;color:#475569;margin-bottom:6px}.hint-sub{font-size:13px;color:#94a3b8}.batch-preview{display:flex;flex-direction:column;overflow:hidden;background:#f8fafc;height:100%}.preview-header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:linear-gradient(135deg,#fff,#fafbfc);border-bottom:1px solid #e2e8f0}.preview-title{font-size:15px;font-weight:700;color:#1e293b}.preview-title .count{font-weight:500;color:#6366f1;margin-left:4px}.preview-actions{display:flex;gap:10px}.action-btn{padding:8px 16px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;font-size:13px;font-weight:500;color:#475569;cursor:pointer;transition:all .2s ease}.action-btn:hover{background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px)}.action-btn.primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:transparent;color:#fff;box-shadow:0 2px 8px #6366f14d}.action-btn.primary:hover{background:linear-gradient(135deg,#4f46e5,#7c3aed);box-shadow:0 4px 12px #6366f166}.progress-text{font-size:14px;color:#6366f1;font-weight:600;padding:6px 14px;background:#eef2ff;border-radius:20px}.preview-list{flex:1;overflow-y:auto;padding:12px;min-height:0;max-height:500px}.preview-list::-webkit-scrollbar{width:6px}.preview-list::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.preview-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.preview-list::-webkit-scrollbar-thumb:hover{background:#94a3b8}.preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#94a3b8;font-size:14px;background:linear-gradient(135deg,#fafbfc,#f1f5f9);border-radius:12px;border:2px dashed #e2e8f0;margin:8px}.preview-item{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:8px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;transition:all .2s ease}.preview-item:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f114;transform:translate(2px)}.preview-item.done{background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border-color:#86efac}.preview-item.error{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#fca5a5}.preview-item.generating{background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-color:#a5b4fc;animation:pulse-border 1.5s ease-in-out infinite}@keyframes pulse-border{0%,to{border-color:#a5b4fc}50%{border-color:#6366f1}}.item-num{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-radius:8px;font-size:12px;font-weight:700;color:#64748b}.item-content{flex:1;min-width:0}.item-text{display:block;font-size:13px;font-weight:500;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-label{display:block;font-size:11px;color:#94a3b8;margin-top:3px}.item-status{display:flex;align-items:center}.item-status .status{font-size:11px;font-weight:600;padding:4px 10px;border-radius:12px}.item-status .status.pending{background:#f1f5f9;color:#64748b}.item-status .status.generating{background:#eef2ff;color:#6366f1}.item-status .status.error{background:#fef2f2;color:#ef4444}.item-qr{width:36px;height:36px;border-radius:6px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d}@media (max-width: 768px){.batch-main{grid-template-columns:1fr}.batch-config{border-right:none;border-bottom:1px solid #e2e8f0;max-height:320px}}.qrcode-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.qrcode-page-container{max-width:1200px;margin:0 auto}.qrcode-page-header{text-align:center;padding:30px 20px;color:#fff}.qrcode-page-header h1{font-size:32px;margin:0 0 12px;font-weight:600}.qrcode-page-header p{font-size:16px;margin:0;opacity:.9}.qrcode-page-main{background:#f3f4f6;border-radius:16px;overflow:hidden;box-shadow:0 10px 40px #0003}.qrcode-page-footer{text-align:center;padding:20px;color:#fff;opacity:.8;font-size:14px}.qrcode-page-footer p{margin:0}@media (max-width: 768px){.qrcode-page{padding:12px}.qrcode-page-header{padding:20px 12px}.qrcode-page-header h1{font-size:24px}.qrcode-page-header p{font-size:14px}.qrcode-page-main{border-radius:12px}}.invoice-stamp-page{min-height:100vh;background:#f0f2f5;padding:20px}.invoice-container{max-width:900px;margin:0 auto}.invoice-toolbar{background:#fff;padding:12px 20px;border-radius:12px;margin-bottom:20px;box-shadow:0 4px 20px #00000014;display:flex;align-items:center;gap:16px}.invoice-toolbar .home-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#f5f5f5;border:none;border-radius:8px;color:#333;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:all .2s}.invoice-toolbar .home-btn:hover{background:#e8e8e8}.invoice-toolbar .toolbar-title{font-size:18px;font-weight:600;color:#1a1a1a}.invoice-card{background:#fff;padding:30px;border-radius:16px;box-shadow:0 4px 20px #00000014;margin-bottom:20px}.upload-zone{border:2px dashed #d9d9d9;padding:50px 30px;text-align:center;border-radius:12px;cursor:pointer;background:#fafbfc;transition:all .3s ease}.upload-zone:hover{border-color:#e60012;background:#fff5f5}.upload-zone.dragover{border-color:#e60012;background:#fff0f0;transform:scale(1.01)}.upload-icon{font-size:48px;margin-bottom:12px}.upload-zone .sub-tip{font-size:13px;color:#999}#fileStat{margin-top:12px;color:#e60012;font-weight:600;font-size:14px}.btn-group{display:flex;gap:10px;margin-top:20px}.start-btn{flex:1;padding:16px;background:linear-gradient(135deg,#e60012,#ff4d4f);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;font-size:16px;transition:all .3s ease;box-shadow:0 4px 12px #e600124d}.start-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #e6001266}.start-btn:disabled{background:#ccc;cursor:not-allowed;box-shadow:none;transform:none}.download-all-btn{padding:8px 16px;font-size:13px;background:#10b981;color:#fff;border:none;border-radius:6px;cursor:pointer;display:none;transition:all .2s}.download-all-btn:hover:not(:disabled){background:#059669}.download-all-btn:disabled{background:#ccc;cursor:not-allowed}.log-header{display:flex;justify-content:space-between;align-items:center;margin-top:20px;margin-bottom:8px}.log-header span{font-size:13px;color:#666}.log-view{padding:16px;background:#1e1e1e;color:#4ade80;border-radius:10px;height:160px;overflow-y:auto;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;line-height:1.6}.log-view::-webkit-scrollbar{width:6px}.log-view::-webkit-scrollbar-thumb{background:#444;border-radius:3px}.log-item{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #333;padding:8px 0}.log-item:last-child{border-bottom:none}.log-item .info{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:10px}.log-item .actions{display:flex;gap:8px;flex-shrink:0}.log-item a{color:#60a5fa;cursor:pointer;text-decoration:none;padding:4px 10px;background:#60a5fa1a;border-radius:4px;font-size:11px;transition:all .2s}.log-item a:hover{background:#60a5fa33}.log-item a.download{color:#4ade80;background:#4ade801a}.log-item a.download:hover{background:#4ade8033}.preview-wrapper{border-radius:16px;border:none;background:#525659;display:none;overflow:hidden;box-shadow:0 4px 20px #00000014;margin-bottom:20px}.preview-header{background:#fff;padding:12px 20px;font-weight:600;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between;gap:8px}.preview-header span{color:#e60012}.close-preview-btn{padding:6px 12px;background:#f5f5f5;border:none;border-radius:6px;cursor:pointer;font-size:13px;color:#666;transition:all .2s}.close-preview-btn:hover{background:#e8e8e8;color:#333}.preview-content{height:530px;overflow:auto}.preview-wrapper iframe{width:100%;height:100%;border:none}.canvas-container{display:none;padding:10px;background:#525659;text-align:center}.canvas-container .pdf-page-canvas{max-width:100%;height:auto;margin-bottom:10px;box-shadow:0 2px 8px #0000004d}.loading-preview{color:#fff;padding:40px;font-size:16px}.preview-error{color:#ff6b6b;padding:40px;font-size:14px}.invoice-footer{text-align:center;color:#999;font-size:12px;padding:20px 0}@media (max-width: 768px){.invoice-stamp-page{padding:10px}.invoice-toolbar{padding:10px 15px;margin-bottom:15px}.invoice-toolbar .toolbar-title{font-size:15px}.invoice-card{padding:20px 15px}.upload-zone{padding:30px 15px}.upload-icon{font-size:36px}.upload-zone .tip{font-size:14px}.log-view{height:200px;font-size:11px}.log-item{flex-direction:column;align-items:flex-start;gap:8px}.log-item .actions{width:100%;justify-content:flex-end}.preview-content{height:auto;max-height:70vh}.canvas-container{padding:5px}.canvas-container .pdf-page-canvas{margin-bottom:5px}}.tax-code-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.tax-code-container{max-width:1400px;margin:0 auto}.tax-code-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:20px}.tax-code-toolbar .home-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#fff3;border-radius:8px;color:#fff;text-decoration:none;font-size:14px;transition:background .2s}.tax-code-toolbar .home-btn:hover{background:#ffffff4d}.tax-code-toolbar .toolbar-title{color:#fff;font-size:20px;font-weight:600}.tax-code-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 10px 40px #0003;min-height:500px}.upload-zone{border:2px dashed #d9d9d9;border-radius:12px;padding:60px 20px;text-align:center;cursor:pointer;transition:all .3s}.upload-zone:hover{border-color:#667eea;background:#f8f9ff}.upload-zone .upload-icon{font-size:48px;margin-bottom:16px}.upload-zone .tip{font-size:16px;color:#333;margin-bottom:8px}.upload-zone .sub-tip{font-size:14px;color:#999}.highlight{background:#ff4d4f;color:#fff;font-weight:700;padding:1px 2px;border-radius:2px}.search-bar{display:flex;gap:12px;margin-bottom:16px}.search-bar input{flex:1;padding:12px 16px;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;outline:none;transition:border-color .2s}.search-bar input:focus{border-color:#667eea}.search-bar .search-btn{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer;transition:opacity .2s}.search-bar .search-btn:hover{opacity:.9}.search-bar .upload-btn,.search-bar .clear-btn{padding:12px 16px;background:#f5f5f5;color:#666;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.search-bar .upload-btn:hover,.search-bar .clear-btn:hover{background:#e8e8e8}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:14px 16px;background:linear-gradient(135deg,#f8f9ff,#f0f4ff);border-radius:10px;margin-bottom:14px;font-size:13px;border:1px solid rgba(102,126,234,.15)}.breadcrumb-step{display:flex;align-items:center;gap:6px}.breadcrumb-arrow{color:#667eea;font-size:16px;font-weight:700;opacity:.6}.breadcrumb-tag{display:inline-flex;align-items:center;padding:6px 12px;background:#fff;border:1px solid #e0e5f0;border-radius:20px;color:#667eea;cursor:pointer;transition:all .2s ease;font-weight:500;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 3px #0000000d}.breadcrumb-tag:hover{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent;transform:translateY(-1px);box-shadow:0 3px 8px #667eea4d}.breadcrumb-tag.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent;box-shadow:0 2px 6px #667eea4d}.stats-bar{font-size:13px;color:#999;margin-bottom:16px}.code-list{max-height:none;overflow-y:visible;border:1px solid #eee;border-radius:8px}.code-item{padding:14px 16px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background .2s}.code-item:last-child{border-bottom:none}.code-item:hover{background:#f8f9ff}.code-item.selected{background:#e8ecff;border-left:3px solid #667eea;margin-left:-3px}.code-item.has-children .code-name{font-weight:500}.code-main{display:flex;align-items:center;gap:12px;margin-bottom:6px}.code-number{font-family:Consolas,monospace;font-size:13px;color:#667eea;background:#f0f2ff;padding:2px 8px;border-radius:4px}.code-name{flex:1;font-size:14px;color:#333}.expand-icon{font-size:12px;color:#999}.code-meta{display:flex;gap:16px;font-size:12px;color:#999;padding-left:100px}.code-meta .tax-rate{color:#52c41a}.code-meta .short-name{color:#999}.code-meta .has-policy{color:#d46b08;background:#fff7e6;padding:2px 6px;border-radius:4px;font-size:11px}.empty-state,.loading-state,.error-state{text-align:center;padding:60px 20px}.empty-state .empty-icon,.loading-state .loading-spinner,.error-state .error-icon{font-size:48px;margin-bottom:16px}.loading-state .loading-spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-state{color:#ff4d4f}.detail-panel-inline{background:linear-gradient(135deg,#1a1a2e,#16213e);border:none;border-radius:10px;margin:8px -12px -10px;animation:slideDown .3s ease-out;box-shadow:0 8px 20px #0003;position:relative;overflow:hidden;max-width:calc(100% + 24px);box-sizing:border-box}.detail-panel-inline:before{content:"📋 编码详情";position:absolute;top:0;left:0;right:0;padding:8px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:13px;letter-spacing:1px;border-radius:10px 10px 0 0}.detail-panel-inline:after{content:"点击收起";position:absolute;top:7px;right:14px;font-size:10px;color:#ffffffb3;background:#ffffff26;padding:2px 8px;border-radius:8px}@keyframes slideDown{0%{opacity:0;max-height:0;transform:translateY(-10px)}to{opacity:1;max-height:500px;transform:translateY(0)}}.detail-panel{display:none;margin-top:20px;border:1px solid #e8e8e8;border-radius:12px;overflow:hidden}.detail-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.detail-header h3{margin:0;font-size:16px}.detail-header .close-btn{background:#fff3;border:none;color:#fff;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:14px}.detail-header .close-btn:hover{background:#ffffff4d}.detail-content{padding:20px}.detail-panel-inline .detail-content{padding:40px 16px 14px;background:linear-gradient(180deg,#1a1a2e,#0f0f1a);margin:0;border-radius:0 0 10px 10px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.detail-panel-inline .detail-row{margin-bottom:0;padding:10px 12px;background:linear-gradient(135deg,#667eea1f,#764ba21f);border-radius:8px;border:1px solid rgba(102,126,234,.25);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s ease}.detail-panel-inline .detail-row:hover{background:linear-gradient(135deg,#667eea33,#764ba233);border-color:#667eea66;transform:translateY(-1px)}.detail-panel-inline .detail-row:last-child{margin-bottom:0}.detail-panel-inline .detail-row label{font-weight:600;color:#a0aec0;background:transparent;padding:0;border-radius:0;font-size:11px;display:block;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px;box-shadow:none}.detail-panel-inline .detail-row span,.detail-panel-inline .detail-row p{color:#fff;font-size:13px;line-height:1.5;font-weight:500}.detail-panel-inline .detail-row.full-width{grid-column:1 / -1}.detail-panel-inline .detail-row.full-width label{display:block;margin-bottom:6px}.detail-row{display:flex;margin-bottom:16px}.detail-row:last-child{margin-bottom:0}.detail-row label{width:100px;flex-shrink:0;font-size:14px;color:#999}.detail-row span,.detail-row p{flex:1;font-size:14px;color:#333;margin:0}.detail-row.full-width{flex-direction:column}.detail-row.full-width label{margin-bottom:8px}.detail-row .description{background:#f8f9ff;padding:12px;border-radius:8px;line-height:1.6}.detail-row .policy-text{background:#fff7e6;padding:12px;border-radius:8px;line-height:1.6;color:#d46b08;border-left:3px solid #ffa940}.detail-row .policy-ref{background:#f6ffed;padding:12px;border-radius:8px;line-height:1.6;color:#389e0d;font-size:13px;border-left:3px solid #52c41a}.detail-value{display:flex;align-items:center;gap:12px}.detail-value .copy-btn{padding:6px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #667eea4d}.detail-value .copy-btn:hover{transform:translateY(-1px);box-shadow:0 4px 8px #667eea66}.detail-panel-inline .tax-rate-value{color:#10b981!important;font-weight:600;font-size:14px!important;background:#10b9811f;padding:4px 10px;border-radius:5px;display:inline-block;border:1px solid rgba(16,185,129,.25)}.detail-panel-inline .description{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);padding:10px;border-radius:6px;line-height:1.6;margin-top:4px;color:#e2e8f0!important;font-size:12px!important}.detail-panel-inline .policy-text{background:linear-gradient(135deg,#fbbf241f,#f59e0b1f);border:1px solid rgba(251,191,36,.3);padding:10px;border-radius:6px;line-height:1.6;color:#fbbf24!important;margin-top:4px;font-weight:500;font-size:12px!important}.detail-panel-inline .policy-ref{background:linear-gradient(135deg,#10b9811f,#0596691f);border:1px solid rgba(16,185,129,.3);padding:10px;border-radius:6px;line-height:1.6;color:#34d399!important;font-size:11px;margin-top:4px}.detail-panel-inline .parent-link{color:#818cf8!important;font-weight:600;text-decoration:none;padding:4px 10px;background:#818cf81f;border:1px solid rgba(129,140,248,.25);border-radius:5px;transition:all .2s;display:inline-block;font-size:12px}.detail-panel-inline .parent-link:hover{background:#818cf833;transform:translateY(-1px);box-shadow:0 2px 8px #818cf840}.detail-panel-inline .detail-value{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.detail-panel-inline .detail-value span{font-family:Consolas,Monaco,monospace;font-size:13px;color:#818cf8;font-weight:600}.detail-panel-inline .detail-value .copy-btn{padding:4px 12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:5px;font-size:11px;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #667eea4d;font-weight:500}.detail-panel-inline .detail-value .copy-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.tax-rate-value{color:#52c41a!important;font-weight:500}.status-active{color:#52c41a!important}.status-inactive{color:#ff4d4f!important}.parent-info{display:flex;align-items:center;gap:4px}.parent-link{color:#667eea!important;cursor:pointer;text-decoration:underline}.parent-link:hover{color:#764ba2!important}.parent-name{color:#999!important;font-weight:400!important;text-decoration:none!important}.tax-code-footer{text-align:center;color:#fffc;font-size:13px;margin-top:20px}@media (max-width: 768px){.tax-code-page{padding:6px;overflow-x:hidden;width:100%;box-sizing:border-box}.tax-code-container{width:100%;max-width:100%;overflow-x:hidden}.tax-code-card{padding:8px;border-radius:10px;min-height:auto}.tax-code-toolbar{gap:8px;margin-bottom:10px}.tax-code-toolbar .home-btn{padding:5px 10px;font-size:12px}.tax-code-toolbar .toolbar-title{font-size:16px}.search-bar{flex-wrap:wrap;gap:6px;margin-bottom:10px}.search-bar input{width:100%;padding:8px 10px;font-size:13px;border-radius:6px}.search-bar .search-btn,.search-bar .upload-btn,.search-bar .clear-btn{flex:1;padding:8px 10px;font-size:12px;border-radius:6px}.breadcrumb{padding:10px;gap:4px;margin-bottom:8px;border-radius:8px}.breadcrumb-step{gap:4px}.breadcrumb-arrow{font-size:14px}.breadcrumb-tag{padding:4px 10px;font-size:11px;border-radius:16px;max-width:120px}.stats-bar{font-size:11px;margin-bottom:8px}.code-list{border-radius:6px}.code-item{padding:8px 10px}.code-main{gap:6px;margin-bottom:4px}.code-number{font-size:11px;padding:2px 5px;border-radius:3px}.code-name{font-size:13px;word-break:break-word}.expand-icon{font-size:10px}.code-meta{padding-left:0;gap:8px;font-size:11px;flex-wrap:wrap}.code-meta .has-policy{padding:1px 4px;font-size:10px}.detail-row{flex-direction:column}.detail-row label{width:auto;margin-bottom:2px;font-size:12px}.detail-panel-inline{margin:6px 0 0!important;border-radius:8px;width:100%!important;max-width:100%!important;box-sizing:border-box;overflow:hidden}.detail-panel-inline:before{padding:6px 10px;font-size:11px;letter-spacing:0}.detail-panel-inline:after{display:none}.detail-panel-inline .detail-content{padding:32px 6px 8px!important;display:flex!important;flex-direction:column!important;gap:5px;width:100%!important;max-width:100%!important;box-sizing:border-box;grid-template-columns:unset!important}.detail-panel-inline .detail-row{padding:6px 8px!important;border-radius:5px;width:100%!important;max-width:100%!important;box-sizing:border-box;overflow:hidden;margin:0!important}.detail-panel-inline .detail-row label{font-size:9px!important;margin-bottom:2px}.detail-panel-inline .detail-row span,.detail-panel-inline .detail-row p{font-size:11px!important;word-break:break-word;overflow-wrap:break-word;white-space:normal;line-height:1.4}.detail-panel-inline .detail-value{flex-direction:row;flex-wrap:wrap;align-items:center!important;gap:6px;width:100%}.detail-panel-inline .detail-value span{font-size:11px!important;word-break:break-all;overflow-wrap:break-word}.detail-panel-inline .detail-value .copy-btn{padding:3px 8px;font-size:9px;flex-shrink:0;border-radius:4px}.detail-panel-inline .tax-rate-value{font-size:12px!important;padding:3px 6px;border-radius:4px}.detail-panel-inline .description,.detail-panel-inline .policy-text,.detail-panel-inline .policy-ref{padding:6px!important;font-size:10px!important;line-height:1.4;word-break:break-word;overflow-wrap:break-word;white-space:normal;width:100%!important;max-width:100%!important;box-sizing:border-box;margin-top:4px!important;border-radius:4px}.detail-panel-inline .parent-link{padding:3px 6px;font-size:10px;border-radius:4px}.detail-panel-inline .parent-info{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px}.detail-panel-inline .parent-name{font-size:9px}.detail-panel-inline .detail-row.full-width{width:100%!important;grid-column:unset!important}.tax-code-footer{font-size:11px;margin-top:12px}}.maintenance-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);position:relative;overflow:hidden}.maintenance-container{text-align:center;padding:60px 40px;background:#fffffff2;border-radius:24px;box-shadow:0 25px 80px #0000004d;max-width:500px;width:90%;position:relative;z-index:10;animation:slideUp .6s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.maintenance-animation{position:relative;height:100px;margin-bottom:30px}.gear{position:absolute;font-size:50px;animation:rotate 4s linear infinite}.gear-1{left:calc(50% - 60px);top:10px;animation-direction:normal}.gear-2{left:calc(50% + 10px);top:30px;font-size:40px;animation-direction:reverse;animation-duration:3s}.wrench{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:60px;animation:swing 2s ease-in-out infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes swing{0%,to{transform:translate(-50%,-50%) rotate(-15deg)}50%{transform:translate(-50%,-50%) rotate(15deg)}}.maintenance-title{font-size:32px;color:#333;margin-bottom:16px;font-weight:700}.maintenance-message{font-size:16px;color:#666;line-height:1.8;margin-bottom:30px}.maintenance-countdown{background:linear-gradient(135deg,#f5f7fa,#e4e8ec);padding:24px;border-radius:16px;margin-bottom:24px}.countdown-label{font-size:14px;color:#888;margin-bottom:8px}.countdown-time{font-size:20px;color:#333;font-weight:600;margin-bottom:8px}.countdown-remaining{font-size:14px;color:#667eea}.countdown-remaining span{font-weight:600;font-size:16px}.maintenance-tips{margin-bottom:30px}.maintenance-tips p{font-size:14px;color:#888}.maintenance-footer{display:flex;align-items:center;justify-content:center;gap:8px;color:#999;font-size:14px}.maintenance-logo{width:24px;height:24px}.maintenance-bg{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;pointer-events:none}.bubble{position:absolute;background:#ffffff1a;border-radius:50%;animation:float 15s infinite}.bubble:nth-child(1){width:80px;height:80px;left:10%;animation-delay:0s;animation-duration:12s}.bubble:nth-child(2){width:120px;height:120px;left:70%;animation-delay:2s;animation-duration:18s}.bubble:nth-child(3){width:60px;height:60px;left:30%;animation-delay:4s;animation-duration:14s}.bubble:nth-child(4){width:100px;height:100px;left:85%;animation-delay:1s;animation-duration:16s}.bubble:nth-child(5){width:50px;height:50px;left:50%;animation-delay:3s;animation-duration:20s}@keyframes float{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-100vh) rotate(720deg);opacity:0}}@media (max-width: 480px){.maintenance-container{padding:40px 24px}.maintenance-title{font-size:24px}.maintenance-message{font-size:14px}}.admin-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.login-card{background:#fff;padding:40px;border-radius:16px;box-shadow:0 20px 60px #0003;width:100%;max-width:360px;text-align:center}.login-logo{font-size:64px;margin-bottom:16px}.login-card h1{font-size:24px;color:#1a1a2e;margin:0 0 32px}.login-card .form-group{margin-bottom:16px}.login-card input{width:100%;padding:14px 16px;border:1px solid #e2e8f0;border-radius:8px;font-size:15px;transition:border-color .2s}.login-card input:focus{outline:none;border-color:#667eea}.login-card button{width:100%;padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.login-card button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.login-card button:disabled{opacity:.7;cursor:not-allowed}.error-msg{color:#e74c3c;font-size:14px;margin-bottom:16px}.admin-layout{display:flex;min-height:100vh}.admin-sidebar{width:240px;background:#1a1a2e;color:#fff;display:flex;flex-direction:column}.sidebar-header{padding:24px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-header .logo{font-size:32px}.sidebar-header .title{font-size:20px;font-weight:600}.sidebar-nav{flex:1;padding:16px 0}.sidebar-nav a{display:flex;align-items:center;gap:12px;padding:14px 24px;color:#ffffffb3;text-decoration:none;transition:all .2s}.sidebar-nav a:hover{background:#ffffff1a;color:#fff}.sidebar-nav a.active{background:linear-gradient(90deg,rgba(102,126,234,.3) 0%,transparent 100%);color:#fff;border-left:3px solid #667eea}.sidebar-nav .icon{font-size:18px}.sidebar-footer{padding:16px;border-top:1px solid rgba(255,255,255,.1)}.sidebar-footer .back-home,.sidebar-footer .logout-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;color:#fff9;text-decoration:none;font-size:14px;background:none;border:none;width:100%;cursor:pointer;border-radius:6px;transition:all .2s}.sidebar-footer .back-home:hover,.sidebar-footer .logout-btn:hover{background:#ffffff1a;color:#fff}.admin-main{flex:1;background:#f5f7fa;padding:24px;overflow-y:auto}.dashboard-content h1,.manage-page h1{font-size:24px;color:#1a1a2e;margin:0 0 24px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:32px}.stat-card{background:#fff;padding:24px;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;align-items:center;gap:16px}.stat-icon{font-size:32px;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#f0f4ff;border-radius:12px}.stat-value{font-size:28px;font-weight:700;color:#1a1a2e}.stat-label{font-size:14px;color:#64748b}.dashboard-section{background:#fff;padding:24px;border-radius:12px;box-shadow:0 2px 8px #0000000f}.dashboard-section h2{font-size:18px;margin:0 0 16px;color:#1a1a2e}.top-tool-item{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid #f1f5f9}.top-tool-item:last-child{border-bottom:none}.top-tool-item .rank{width:32px;font-weight:600;color:#667eea}.top-tool-item .name{flex:1;color:#1a1a2e}.top-tool-item .clicks{color:#64748b;font-size:14px}.manage-page{background:#fff;padding:24px;border-radius:12px;box-shadow:0 2px 8px #0000000f}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1{margin:0}.btn-primary{padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-secondary{padding:10px 20px;background:#f1f5f9;color:#64748b;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.btn-sm{padding:6px 12px;background:#f1f5f9;color:#64748b;border:none;border-radius:6px;font-size:13px;cursor:pointer;margin-right:8px}.btn-sm:hover{background:#e2e8f0}.btn-danger{color:#e74c3c}.btn-danger:hover{background:#fef2f2}.data-table{overflow-x:auto}.data-table table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #f1f5f9}.data-table th{font-weight:600;color:#64748b;font-size:13px;text-transform:uppercase}.data-table td{color:#1a1a2e}.data-table code{background:#f1f5f9;padding:4px 8px;border-radius:4px;font-size:13px}.tool-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;font-size:18px}.status{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600}.status.enabled{background:#dcfce7;color:#16a34a}.status.disabled{background:#fef2f2;color:#dc2626}.tag{display:inline-block;padding:4px 10px;background:#f0f4ff;color:#667eea;border-radius:20px;font-size:12px}.empty-row{text-align:center;color:#94a3b8;padding:40px!important}.modal{background:#fff;padding:32px;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal h2{margin:0 0 24px;font-size:20px;color:#1a1a2e}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#374151}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea}.form-group textarea{min-height:80px;resize:vertical}.form-group input[type=color]{height:42px;padding:4px;cursor:pointer}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid #f1f5f9}.settings-form{max-width:600px}.form-section{margin-bottom:32px}.form-section h3{font-size:16px;color:#1a1a2e;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid #f1f5f9}.preview-card{background:linear-gradient(135deg,#667eea,#764ba2);padding:32px;border-radius:12px;color:#fff;text-align:center}.preview-header{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px}.preview-logo{font-size:36px;width:48px;height:48px;display:flex;align-items:center;justify-content:center}.preview-logo img,img.preview-logo{width:48px;height:48px;object-fit:contain}.preview-name{font-size:24px;font-weight:700}.preview-slogan{font-size:16px;opacity:.9;margin:0 0 16px}.preview-footer{font-size:12px;opacity:.7;margin:0 0 8px}.preview-beian{display:flex;justify-content:center;gap:16px;font-size:11px;opacity:.6}.preview-beian span{display:inline-block}.form-actions{display:flex;align-items:center;gap:16px}.form-actions .message{font-size:14px}.form-actions .message.success{color:#16a34a}.form-actions .message.error{color:#dc2626}.loading{text-align:center;padding:40px;color:#64748b}.upload-progress{margin:20px 0;padding:20px;background:#f8f9ff;border-radius:8px;text-align:center}.progress-bar{width:100%;height:8px;background:#e8e8e8;border-radius:4px;overflow:hidden;margin-bottom:10px}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);transition:width .3s ease}.info-cards{display:grid;gap:20px;margin-bottom:30px}.info-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.info-card.empty{text-align:center;padding:40px 24px;color:#999}.info-card h3{margin:0 0 20px;color:#333;font-size:18px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}.info-item{display:flex;flex-direction:column;gap:4px}.info-item label{font-size:13px;color:#999;font-weight:500}.info-item span{font-size:14px;color:#333}.version-badge{background:#e8f4fd;color:#1890ff;padding:4px 8px;border-radius:4px;font-weight:500;width:fit-content}.count-badge{background:#f6ffed;color:#52c41a;padding:4px 8px;border-radius:4px;font-weight:500;width:fit-content}.card-actions{border-top:1px solid #f0f0f0;padding-top:16px;display:flex;gap:12px}.help-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.help-section h3{margin:0 0 20px;color:#333;font-size:18px}.help-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.help-item h4{margin:0 0 8px;color:#333;font-size:14px}.help-item p{margin:0;color:#666;font-size:13px;line-height:1.5}@media (max-width: 768px){.info-grid,.help-content{grid-template-columns:1fr}.card-actions{flex-direction:column}}@media (max-width: 1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.admin-sidebar{width:200px}.stats-grid,.form-row{grid-template-columns:1fr}}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:24px}.chart-card{background:#fff;padding:24px;border-radius:12px;box-shadow:0 2px 8px #0000000f}.chart-card h3{font-size:16px;color:#1a1a2e;margin:0 0 16px}.filter-tabs{display:flex;gap:8px;margin-bottom:20px}.filter-tab{padding:8px 16px;background:#f1f5f9;border:none;border-radius:20px;font-size:13px;color:#64748b;cursor:pointer;transition:all .2s}.filter-tab:hover{background:#e2e8f0}.filter-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.feedbacks-list{display:grid;gap:16px}.feedback-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px}.feedback-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.feedback-type{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.feedback-type.suggestion{background:#eff6ff;color:#3b82f6}.feedback-type.bug{background:#fef2f2;color:#ef4444}.feedback-type.other{background:#f5f3ff;color:#8b5cf6}.feedback-status{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.feedback-status.pending{background:#fef3c7;color:#d97706}.feedback-status.processing{background:#dbeafe;color:#2563eb}.feedback-status.resolved{background:#dcfce7;color:#16a34a}.feedback-content{color:#1a1a2e;line-height:1.6;margin-bottom:12px}.feedback-meta{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#94a3b8}.feedback-contact{color:#667eea}.feedback-actions{display:flex;gap:8px}.feedback-actions select{padding:4px 8px;border:1px solid #e2e8f0;border-radius:6px;font-size:12px;cursor:pointer}.empty-state{text-align:center;padding:60px 20px;color:#94a3b8}.empty-state .icon{font-size:48px;margin-bottom:16px}@media (max-width: 1024px){.charts-grid{grid-template-columns:1fr}}.form-hint{display:block;margin-top:6px;font-size:12px;color:#94a3b8}.maintenance-section{background:linear-gradient(135deg,#fff5f5,#fff);border:1px solid #fed7d7;border-radius:12px;padding:20px}.maintenance-toggle{display:flex;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.switch-label{display:flex;align-items:center;gap:12px;cursor:pointer}.switch-label input{display:none}.switch-slider{width:50px;height:26px;background:#e2e8f0;border-radius:13px;position:relative;transition:background .3s}.switch-slider:after{content:"";position:absolute;width:22px;height:22px;background:#fff;border-radius:50%;top:2px;left:2px;transition:transform .3s;box-shadow:0 2px 4px #0003}.switch-label input:checked+.switch-slider{background:#e74c3c}.switch-label input:checked+.switch-slider:after{transform:translate(24px)}.switch-text{font-weight:600;font-size:14px}.maintenance-warning{color:#e74c3c;font-size:13px;background:#fff5f5;padding:6px 12px;border-radius:6px}.maintenance-preview{margin-top:20px;padding-top:20px;border-top:1px dashed #fed7d7}.maintenance-preview h4{font-size:14px;color:#666;margin:0 0 12px}.maintenance-preview-card{background:linear-gradient(135deg,#667eea,#764ba2);padding:30px;border-radius:12px;color:#fff;text-align:center}.maintenance-preview-card .maintenance-icon{font-size:40px;margin-bottom:12px}.maintenance-preview-card h2{font-size:20px;margin:0 0 8px}.maintenance-preview-card p{font-size:14px;opacity:.9;margin:0}.maintenance-preview-card .maintenance-time{margin-top:12px;font-size:13px;opacity:.8}.status-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.status-badge.active{background:#dcfce7;color:#16a34a}.status-badge.inactive{background:#fef2f2;color:#dc2626}.date-range{font-size:12px;color:#64748b}.empty-tip{text-align:center;padding:40px;color:#94a3b8}.modal-content{background:#fff;padding:32px;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-content h2{margin:0 0 24px;font-size:20px;color:#1a1a2e}.action-btns{display:flex;gap:8px}.action-btns button{padding:6px 12px;background:#f1f5f9;color:#64748b;border:none;border-radius:6px;font-size:13px;cursor:pointer}.action-btns button:hover{background:#e2e8f0}.action-btns button.danger{color:#e74c3c}.action-btns button.danger:hover{background:#fef2f2}.system-health{min-height:100vh;background-color:#f5f5f5;padding:20px 0}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.header h1{color:#333;margin:0;font-size:2.5rem}.last-update{color:#666;font-size:14px}.overall-status{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px;display:flex;justify-content:space-between;align-items:center}.status-indicator{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600}.status-indicator.healthy{color:#4caf50}.status-indicator.warning{color:#ff9800}.status-indicator.error{color:#f44336}.status-icon{font-size:24px;font-weight:700}.refresh-button{background-color:#007bff;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;transition:background-color .3s}.refresh-button:hover{background-color:#0056b3}.health-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.services-section,.metrics-section{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.services-section h2,.metrics-section h2{margin-top:0;margin-bottom:20px;color:#333;border-bottom:2px solid #007bff;padding-bottom:10px}.services-list{display:flex;flex-direction:column;gap:15px}.service-item{padding:15px;border:1px solid #e0e0e0;border-radius:6px;background-color:#fafafa}.service-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.status-dot{width:12px;height:12px;border-radius:50%;display:inline-block}.service-name{font-weight:600;flex:1}.response-time{background-color:#e3f2fd;color:#1976d2;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.service-details{color:#666;font-size:14px;margin-bottom:5px}.last-check{color:#999;font-size:12px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.metric-card{padding:15px;border:1px solid #e0e0e0;border-radius:6px;background-color:#fafafa}.metric-card h3{margin:0 0 10px;color:#333;font-size:14px;font-weight:600}.metric-value{font-size:24px;font-weight:700;color:#007bff;margin-bottom:5px}.metric-details{font-size:12px;color:#666;margin-bottom:10px}.progress-bar{width:100%;height:8px;background-color:#e0e0e0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#4caf50,#ff9800 70%,#f44336 90%);transition:width .3s ease}@media (max-width: 768px){.health-grid{grid-template-columns:1fr}.header{flex-direction:column;align-items:flex-start;gap:10px}.overall-status{flex-direction:column;align-items:flex-start;gap:15px}.metrics-grid{grid-template-columns:1fr}}.backup-manage{min-height:100vh;background-color:#f5f5f5;padding:20px 0}.container{max-width:1200px;margin:0 auto;padding:0 20px}.container h1{color:#333;margin-bottom:30px;font-size:2.5rem}.error{background-color:#f8d7da;color:#721c24;padding:12px 16px;border-radius:6px;margin-bottom:20px;border:1px solid #f5c6cb}.loading{text-align:center;padding:40px 20px;color:#666;font-size:16px}.backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:40px}.create-backup,.auto-backup-config{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.create-backup h2,.auto-backup-config h2{margin-top:0;margin-bottom:20px;color:#333;border-bottom:2px solid #007bff;padding-bottom:10px}.create-form{display:flex;gap:10px;align-items:center}.description-input{flex:1;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px}.create-button{background-color:#28a745;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;white-space:nowrap;transition:background-color .3s}.create-button:hover:not(:disabled){background-color:#218838}.create-button:disabled{background-color:#6c757d;cursor:not-allowed}.config-form{display:flex;flex-direction:column;gap:15px}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px}.interval-config{display:flex;align-items:center;gap:10px;padding-left:24px}.interval-config label{font-size:14px;color:#666}.interval-input{width:80px;padding:6px 8px;border:1px solid #ddd;border-radius:4px;font-size:14px}.config-button{background-color:#007bff;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;align-self:flex-start;transition:background-color .3s}.config-button:hover{background-color:#0056b3}.backups-list{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.backups-list h2{margin-top:0;margin-bottom:20px;color:#333;border-bottom:2px solid #007bff;padding-bottom:10px}.no-backups{text-align:center;color:#666;padding:40px 20px;font-size:16px}.backups-table{display:flex;flex-direction:column}.table-header,.table-row{display:grid;grid-template-columns:2fr .8fr .8fr 1.5fr 2fr 1fr;gap:15px;padding:12px 0;align-items:center}.table-header{font-weight:600;color:#333;border-bottom:2px solid #e0e0e0;background-color:#f8f9fa;padding:15px 0}.table-row{border-bottom:1px solid #e0e0e0;transition:background-color .2s}.table-row:hover{background-color:#f8f9fa}.col-filename{font-family:monospace;font-size:13px;word-break:break-all}.type-badge{display:inline-block;color:#fff;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;text-align:center}.col-size{font-family:monospace;font-size:13px}.col-time{font-size:13px;color:#666}.col-description{font-size:14px;color:#333}.col-actions{display:flex;gap:5px;justify-content:center}.action-button{background:none;border:1px solid #ddd;padding:6px 8px;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s;min-width:32px;height:32px;display:flex;align-items:center;justify-content:center}.action-button:hover{background-color:#f8f9fa;border-color:#007bff}.action-button.download:hover{background-color:#e3f2fd;border-color:#2196f3}.action-button.restore:hover{background-color:#e8f5e8;border-color:#4caf50}.action-button.delete:hover{background-color:#ffebee;border-color:#f44336}@media (max-width: 768px){.backup-actions{grid-template-columns:1fr}.create-form{flex-direction:column;align-items:stretch}.backups-table{overflow-x:auto}.table-header,.table-row{grid-template-columns:1.5fr .6fr .6fr 1fr 1.5fr .8fr;gap:10px;font-size:12px}.col-actions{flex-direction:column;gap:2px}.action-button{font-size:12px;min-width:28px;height:28px}}.version-manage{padding:24px}.version-manage.loading{display:flex;justify-content:center;align-items:center;min-height:300px;color:#64748b}.page-header{margin-bottom:24px}.page-header h2{margin:0 0 8px;font-size:24px;color:#1e293b}.page-header p{margin:0;color:#64748b}.tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid #e2e8f0;padding-bottom:12px}.tabs button{padding:10px 20px;border:none;background:#f1f5f9;color:#64748b;border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}.tabs button:hover{background:#e2e8f0}.tabs button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.section{background:#fff;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.section h3{margin:0 0 16px;font-size:16px;color:#1e293b}.current-version{display:flex;align-items:flex-start;gap:24px}.version-number{font-size:48px;font-weight:700;color:#667eea;line-height:1}.version-details p{margin:8px 0;color:#64748b;font-size:14px}.version-details span{color:#1e293b;font-weight:500;margin-right:8px}.history-list{display:flex;flex-direction:column;gap:12px}.history-item{border:1px solid #e2e8f0;border-radius:8px;padding:12px 16px;transition:all .2s}.history-item:hover{border-color:#667eea}.history-item.rollback{border-left:3px solid #f59e0b}.history-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.history-header .version{font-weight:600;color:#1e293b}.type-badge{padding:2px 8px;border-radius:4px;font-size:12px}.type-badge.deploy{background:#dcfce7;color:#16a34a}.type-badge.rollback{background:#fef3c7;color:#d97706}.history-header .time{margin-left:auto;color:#94a3b8;font-size:13px}.history-body p{margin:0;color:#64748b;font-size:14px}.backup-list{display:flex;flex-direction:column;gap:10px}.backup-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f8fafc;border-radius:8px}.backup-info{display:flex;align-items:center;gap:16px}.backup-name{font-weight:500;color:#1e293b}.backup-time,.backup-size{color:#94a3b8;font-size:13px}.btn-rollback{padding:6px 12px;background:#fef3c7;color:#d97706;border:none;border-radius:6px;cursor:pointer;font-size:13px;transition:all .2s}.btn-rollback:hover{background:#fde68a}.config-item{margin-bottom:20px}.config-desc{color:#64748b;font-size:14px;margin:0 0 12px}.key-status{margin-bottom:12px}.status-ok{color:#16a34a}.status-warn{color:#d97706}.config-item textarea,.config-item input{width:100%;max-width:400px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;margin-bottom:12px}.config-item textarea:focus,.config-item input:focus{outline:none;border-color:#667eea}.btn-primary{padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}.btn-primary:hover{filter:brightness(1.1)}.logs-list{display:flex;flex-direction:column;gap:10px}.log-item{border:1px solid #e2e8f0;border-radius:8px;padding:12px 16px}.log-item.failed{border-left:3px solid #ef4444}.log-item.success{border-left:3px solid #22c55e}.log-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.status-badge{padding:2px 8px;border-radius:4px;font-size:12px}.status-badge.success{background:#dcfce7;color:#16a34a}.status-badge.failed{background:#fee2e2;color:#dc2626}.log-header .action{font-weight:500;color:#1e293b}.log-header .version{color:#667eea}.log-header .time{margin-left:auto;color:#94a3b8;font-size:13px}.log-body{display:flex;gap:16px;color:#64748b;font-size:13px}.empty{color:#94a3b8;text-align:center;padding:20px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:16px;padding:24px;max-width:500px;width:90%}.modal h3{margin:0 0 16px;color:#1e293b}.modal .warning{color:#d97706;background:#fef3c7;padding:12px;border-radius:8px;margin-bottom:16px}.key-display{display:flex;gap:12px;margin-bottom:20px}.key-display code{flex:1;padding:12px;background:#f1f5f9;border-radius:8px;font-family:monospace;font-size:12px;word-break:break-all}.key-display button{padding:12px 16px;background:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer}.btn-close{width:100%;padding:12px;background:#f1f5f9;color:#64748b;border:none;border-radius:8px;cursor:pointer}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.btn-cancel{padding:10px 20px;background:#f1f5f9;color:#64748b;border:none;border-radius:8px;cursor:pointer}.btn-danger{padding:10px 20px;background:#ef4444;color:#fff;border:none;border-radius:8px;cursor:pointer}.btn-danger:hover{background:#dc2626}.btn-sync{padding:8px 16px;background:#f0f9ff;color:#0284c7;border:1px solid #bae6fd;border-radius:8px;cursor:pointer;font-size:13px;transition:all .2s;margin-left:auto}.btn-sync:hover{background:#e0f2fe;border-color:#7dd3fc}.deploy-test{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);color:#fff;padding:20px}.deploy-test-container{max-width:700px;margin:0 auto}.deploy-test-header{text-align:center;margin-bottom:30px}.deploy-test-header .back-link{display:inline-block;color:#8b5cf6;text-decoration:none;margin-bottom:20px;font-size:14px;transition:color .2s}.deploy-test-header .back-link:hover{color:#a78bfa}.deploy-test-header h1{font-size:28px;margin:0 0 10px}.deploy-test-header p{color:#94a3b8;margin:0}.test-panel,.version-panel,.tips-panel,.env-panel{background:#ffffff0d;border-radius:12px;padding:24px;margin-bottom:20px;border:1px solid rgba(255,255,255,.1)}.test-panel h2,.version-panel h2,.tips-panel h2,.env-panel h2{font-size:18px;margin:0 0 16px;color:#e2e8f0}.loading-state{text-align:center;padding:30px}.loading-icon{font-size:48px;margin-bottom:15px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.loading-state p{color:#94a3b8;margin:0}.error-state{text-align:center;padding:30px}.error-icon{font-size:48px;margin-bottom:15px}.error-state h2{color:#f87171;margin:0 0 10px}.error-state p{color:#94a3b8;margin:0 0 20px}.retry-btn{background:#8b5cf6;color:#fff;border:none;padding:10px 24px;border-radius:8px;cursor:pointer;font-size:14px;transition:background .2s}.retry-btn:hover{background:#7c3aed}.test-success{text-align:center;padding:30px}.success-icon{font-size:60px;margin-bottom:15px}.test-success h2{color:#4ade80;margin:0 0 10px}.test-success p{color:#94a3b8;margin:0}.version-info,.env-info{display:flex;flex-direction:column;gap:12px}.info-row{display:flex;gap:15px;padding:10px 15px;background:#0003;border-radius:8px}.info-row .label{color:#64748b;min-width:80px}.info-row .value{color:#e2e8f0;word-break:break-all}.info-row .version-number{color:#8b5cf6;font-weight:600;font-size:20px}.info-row .highlight{color:#fbbf24}.tips-panel ol{margin:0;padding-left:20px;color:#cbd5e1}.tips-panel li{margin-bottom:10px;line-height:1.6}.tips-panel code{background:#8b5cf633;color:#a78bfa;padding:2px 8px;border-radius:4px;font-family:monospace;font-size:13px}@media (max-width: 600px){.deploy-test{padding:15px}.info-row{flex-direction:column;gap:5px}.info-row .label{min-width:auto}}.not-found-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.not-found-container{max-width:800px;padding:40px 20px;text-align:center}.error-code{font-size:8rem;font-weight:700;margin-bottom:20px;opacity:.8;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.not-found-content h1{font-size:2.5rem;margin-bottom:20px;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.not-found-content p{font-size:1.2rem;margin-bottom:40px;opacity:.9}.suggested-links h2{font-size:1.5rem;margin-bottom:30px;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:40px}.suggestion-link{display:flex;align-items:center;gap:10px;padding:15px 20px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;text-decoration:none;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.suggestion-link:hover{background:#fff3;transform:translateY(-2px);box-shadow:0 5px 15px #0003}.link-icon{font-size:1.5rem}.link-text{font-weight:500}.home-button{display:inline-flex;align-items:center;gap:10px;padding:15px 30px;background:#fff3;border:2px solid rgba(255,255,255,.3);border-radius:50px;color:#fff;text-decoration:none;font-size:1.1rem;font-weight:600;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.home-button:hover{background:#ffffff4d;transform:translateY(-2px);box-shadow:0 5px 20px #0000004d}@media (max-width: 768px){.error-code{font-size:6rem}.not-found-content h1{font-size:2rem}.not-found-content p{font-size:1rem}.links-grid{grid-template-columns:1fr;gap:15px}.suggestion-link{padding:12px 16px}}
