*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{max-width:800px;margin:0 auto;padding:2rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#1a1a2e}.app-header{text-align:center;margin-bottom:2rem}.app-header h1{margin:0;font-size:1.8rem;color:#039}.subtitle{margin:.25rem 0 0;color:#666;font-size:1rem}.app-main{display:flex;flex-direction:column;gap:1.5rem}.settings{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#f0f4ff;border-radius:8px}.report-type-label{font-weight:600;font-size:.9rem}.radio-group{display:flex;gap:.5rem}.radio-option{display:flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border:1px solid #ccd;border-radius:6px;cursor:pointer;font-size:.85rem;background:#fff;transition:all .15s}.radio-option.selected{border-color:#039;background:#e8eeff;color:#039;font-weight:600}.radio-option input{accent-color:#003399}.file-upload{border:2px dashed #bbc;border-radius:12px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .2s;background:#fafbff}.file-upload:hover{border-color:#039;background:#f0f4ff}.file-upload.drag-over{border-color:#039;background:#e0e8ff}.file-upload.disabled{opacity:.5;cursor:not-allowed}.file-upload-icon{font-size:3rem;margin-bottom:.5rem}.file-upload-text{margin:0;font-size:1rem;color:#333}.file-upload-subtext{margin:.5rem 0 0;font-size:.85rem;color:#888}.file-upload-subtext code{background:#eef;padding:.1rem .3rem;border-radius:3px;font-size:.8rem}.processing{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;color:#555}.spinner{width:20px;height:20px;border:3px solid #dde;border-top-color:#039;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.result{border-radius:10px;padding:1.5rem}.result-error{background:#fff0f0;border:1px solid #e88}.result-error h3{color:#c33;margin:0 0 .75rem}.result-error ul{margin:0;padding-left:1.5rem;color:#933}.result-error li{margin-bottom:.4rem;line-height:1.4}.result-success{background:#f0fff4;border:1px solid #8c8}.result-success h3{color:#296;margin:0 0 1rem}.result-meta dl{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;margin:0;font-size:.9rem}.result-meta dt{font-weight:600;color:#555}.result-meta dd{margin:0}.result-meta code{background:#e8f5e9;padding:.1rem .3rem;border-radius:3px;font-size:.8rem}.result-tables{margin-top:1rem}.result-tables h4{margin:0 0 .5rem;font-size:.9rem;color:#555}.table-chips{display:flex;flex-wrap:wrap;gap:.4rem}.table-chip{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-family:monospace}.table-chip.active{background:#c8e6c9;color:#2e7d32}.table-chip.empty{background:#eee;color:#999}.result-warnings{margin-top:1rem;padding:.75rem;background:#fffde7;border:1px solid #e8d44d;border-radius:6px}.result-warnings h4{margin:0 0 .5rem;font-size:.85rem;color:#856404}.result-warnings ul{margin:0;padding-left:1.5rem;font-size:.8rem;color:#856404}.download-btn{display:block;margin:1.25rem auto 0;padding:.75rem 2rem;background:#039;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s}.download-btn:hover{background:#027}.filename-hint{text-align:center;margin:.5rem 0 0;font-size:.75rem;color:#888}.filename-hint code{word-break:break-all}.app-footer{margin-top:3rem;padding-top:1rem;border-top:1px solid #eee;text-align:center}.app-footer p{font-size:.8rem;color:#999;max-width:500px;margin:0 auto;line-height:1.5}
