*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.container{background:#fff;border-radius:12px;max-width:1200px;margin:0 auto;overflow:hidden;box-shadow:0 20px 60px #0000004d}.header{color:#fff;text-align:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:30px}.header h1{margin-bottom:10px;font-size:28px}.header p{opacity:.9;font-size:14px}.content{grid-template-columns:1fr 1fr;gap:0;min-height:600px;display:grid}.form-section{border-right:1px solid #e0e0e0;padding:30px;overflow-y:auto}.log-section{background:#f8f9fa;padding:30px}.step{margin-bottom:30px}.step-title{color:#667eea;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-size:14px;font-weight:600}.button-group{flex-wrap:wrap;gap:10px;display:flex}.btn{cursor:pointer;color:#333;background:#fff;border:2px solid #e0e0e0;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:500;transition:all .2s}.btn:hover{color:#667eea;border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 12px #667eea33}.btn.selected{color:#fff;background:#667eea;border-color:#667eea}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{color:#fff;background:#667eea;border-color:#667eea;width:100%;padding:14px;font-size:16px}.btn-primary:hover:not(:disabled){background:#5568d3;border-color:#5568d3}.btn-danger{color:#fff;background:#dc3545;border-color:#dc3545}.btn-danger:hover:not(:disabled){background:#c82333;border-color:#c82333}.btn-success{color:#fff;background:#28a745;border-color:#28a745}.btn-success:hover:not(:disabled){background:#218838;border-color:#218838}.btn-warning{color:#212529;background:#ffc107;border-color:#ffc107}.btn-warning:hover:not(:disabled){background:#e0a800;border-color:#e0a800}.input-group{margin-bottom:20px}.input-group label{color:#333;margin-bottom:8px;font-size:14px;font-weight:600;display:block}.input-group input{border:2px solid #e0e0e0;border-radius:8px;width:100%;padding:12px;font-size:14px;transition:border-color .2s}.input-group input:focus{border-color:#667eea;outline:none}.file-input-wrapper{width:100%;display:inline-block;position:relative;overflow:hidden}.file-input-wrapper input[type=file]{position:absolute;left:-9999px}.file-input-label{text-align:center;cursor:pointer;background:#f8f9fa;border:2px dashed #e0e0e0;border-radius:8px;padding:12px;transition:all .2s;display:block}.file-input-label:hover{background:#f0f2ff;border-color:#667eea}.file-input-label.has-files{background:#f0fff4;border-color:#28a745}.file-input-label.has-warnings{background:#fff9e6;border-color:#ffc107}.file-input-label.has-errors{background:#ffe6e6;border-color:#dc3545}.log-container{color:#d4d4d4;background:#1e1e1e;border-radius:8px;height:500px;padding:20px;font-family:Courier New,monospace;font-size:13px;line-height:1.6;overflow-y:auto}.log-entry{word-wrap:break-word;margin-bottom:4px}.log-entry.success{color:#4ec9b0}.log-entry.error{color:#f48771}.log-entry.warning{color:#dcdcaa}.log-entry.info{color:#9cdcfe}.progress-bar{background:#e0e0e0;border-radius:3px;width:100%;height:6px;margin-top:20px;display:none;overflow:hidden}.progress-bar.active{display:block}.progress-bar-fill{background:linear-gradient(90deg,#667eea 0%,#764ba2 100%);width:0%;height:100%;transition:width .3s}.modal{z-index:1000;background:#00000080;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.modal.active{display:flex}.modal-content{background:#fff;border-radius:12px;width:90%;max-width:500px;padding:30px;box-shadow:0 20px 60px #0000004d}.modal-title{color:#333;margin-bottom:15px;font-size:20px;font-weight:600}.modal-message{color:#666;white-space:pre-wrap;margin-bottom:25px;font-size:14px;line-height:1.6}.modal-buttons{justify-content:flex-end;gap:10px;display:flex}.settings-section{background:#f8f9fa;border-radius:8px;margin-top:15px;padding:20px}.presets-grid{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:15px;display:grid}.btn-preset{text-align:left;padding:8px 12px;font-size:12px}.btn-preset.active{color:#28a745;background:#e8f5e9;border-color:#28a745}.json-editor{resize:vertical;border:2px solid #e0e0e0;border-radius:8px;width:100%;min-height:150px;padding:12px;font-family:Courier New,monospace;font-size:13px;transition:border-color .2s}.json-editor:focus{border-color:#667eea;outline:none}.json-editor.valid{border-color:#28a745}.json-editor.invalid{border-color:#dc3545}.json-status{min-height:18px;margin-top:5px;font-size:12px}.json-status.valid{color:#28a745}.json-status.invalid{color:#dc3545}.divider{text-align:center;color:#999;align-items:center;margin:20px 0;font-size:12px;display:flex}.divider:before,.divider:after{content:"";border-bottom:1px solid #e0e0e0;flex:1}.divider:before{margin-right:10px}.divider:after{margin-left:10px}.hidden{display:none!important}@media (max-width:968px){.content{grid-template-columns:1fr}.form-section{border-bottom:1px solid #e0e0e0;border-right:none}}.landing-body{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.landing-header{text-align:center;color:#fff;margin-bottom:48px}.landing-logo{justify-content:center;align-items:center;margin-bottom:12px;font-size:56px;display:flex}.landing-title{margin-bottom:10px;font-size:36px;font-weight:800}.landing-subtitle{opacity:.85;font-size:15px}.tools-grid{grid-template-columns:repeat(3,1fr);gap:24px;width:100%;max-width:960px;display:grid}.tool-card{color:inherit;background:#fff;border-radius:16px;flex-direction:column;gap:8px;padding:32px 28px;text-decoration:none;transition:transform .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 30px #0000002e}.tool-card:before{content:"";background:var(--card-color,#667eea);height:4px;position:absolute;top:0;left:0;right:0}.tool-card:hover{transform:translateY(-6px);box-shadow:0 18px 48px #00000040}.tool-card-icon{font-size:40px}.tool-card-title{color:#222;font-size:20px;font-weight:700}.tool-card-desc{color:#666;flex:1;font-size:13px;line-height:1.55}.tool-card-arrow{color:var(--card-color,#667eea);margin-top:6px;font-size:20px;font-weight:700}.landing-footer{color:#ffffff8c;text-align:center;margin-top:40px;font-size:12px}@media (max-width:768px){.tools-grid{grid-template-columns:1fr}.landing-title{font-size:26px}}.back-btn{color:#fffc;margin-bottom:14px;font-size:13px;text-decoration:none;transition:color .15s;display:inline-block}.back-btn:hover{color:#fff}.step-number{text-transform:uppercase;letter-spacing:.08em;color:#999;margin-bottom:4px;font-size:11px;font-weight:700}.option-cards{flex-direction:column;gap:10px;margin-top:8px;display:flex}.option-card{text-align:left;cursor:pointer;background:#fff;border:2px solid #e0e0e0;border-radius:10px;width:100%;padding:14px 16px;transition:border-color .15s,background .15s}.option-card:hover{border-color:#667eea}.option-card.selected{background:#f0f0ff;border-color:#667eea}.option-card-title{color:#333;font-size:14px;font-weight:600}.option-card-desc{color:#888;margin-top:3px;font-size:12px}.warning-box{color:#856404;background:#fff9e6;border:1px solid #ffe082;border-radius:8px;margin-top:10px;padding:10px 14px;font-size:13px;line-height:1.5}.log-header{color:#333;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:14px;font-weight:600;display:flex}.btn-small{border-radius:6px;padding:4px 10px;font-size:12px}.btn-running{opacity:.75;cursor:not-allowed}.log-time{color:#999;font-size:12px}.log-spinner{animation:1s step-start infinite blink}@keyframes blink{50%{opacity:.4}}.dry-run-toggle{cursor:pointer;color:#1a5fa8;-webkit-user-select:none;user-select:none;background:#f0f7ff;border:1px solid #b3d4f7;border-radius:8px;align-items:center;gap:10px;margin-top:14px;padding:10px 14px;font-size:13px;display:flex}.dry-run-toggle input{cursor:pointer;accent-color:#1a5fa8;width:16px;height:16px}.btn-dryrun{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1a5fa8,#2980d9);border:none;border-radius:8px;padding:12px 20px;font-size:14px;font-weight:600;transition:opacity .15s}.btn-dryrun:hover:not(:disabled){opacity:.88}.btn-dryrun:disabled{opacity:.5;cursor:not-allowed}
