:root{--font-sans: "IBM Plex Sans", "Noto Sans JP", sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", Menlo, monospace;--c-primary: #0f6f8d;--c-primary-dark: #0a5a73;--c-primary-subtle: rgba(15, 111, 141, .06);--c-accent: #2cb1bc;--c-text: #102a43;--c-text-2: #486581;--c-text-3: #627d98;--c-text-4: #829ab1;--c-border: #d8e1ea;--c-border-muted: #bcccdc;--c-surface: rgba(255, 255, 255, .82);--c-bg: #f5f7fa;--c-danger: #a61b1b;--c-success: #12704c;--shadow-sm: 0 1px 3px rgba(16, 42, 67, .04);--shadow-md: 0 6px 20px rgba(16, 42, 67, .07);--ease: cubic-bezier(.4, 0, .2, 1);font-family:var(--font-sans);color:var(--c-text);background:radial-gradient(circle at 20% 0%,#d9f2ff,#d9f2ff00 45%),radial-gradient(circle at 90% 10%,#ffe9d6,#ffe9d600 35%),var(--c-bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh}.layout{max-width:960px;margin:0 auto;padding:24px;display:grid;gap:16px}.panel{background:var(--c-surface);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--c-border);border-radius:16px;padding:20px;box-shadow:var(--shadow-md);min-width:0;overflow:hidden}.drag-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#f5f7fad1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .15s ease}.drag-overlay-border{position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:2px dashed rgba(15,111,141,.35);border-radius:20px;pointer-events:none;animation:dragPulse 1.8s ease-in-out infinite}@keyframes dragPulse{0%,to{border-color:#0f6f8d40}50%{border-color:#0f6f8d8c}}.drag-overlay-content{display:flex;flex-direction:column;align-items:center;gap:8px}.drag-overlay-icon{color:var(--c-primary);animation:dragBounce 1.4s ease-in-out infinite}@keyframes dragBounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.drag-overlay-title{margin:0;font-size:18px;font-weight:600;color:var(--c-primary)}.drag-overlay-sub{margin:0;font-size:13px;color:var(--c-text-3)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#f5f7fad9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .15s ease}.loading-spinner{width:40px;height:40px;border:3px solid #d9e2ec;border-top-color:var(--c-primary);border-radius:50%;animation:spin .8s linear infinite}.loading-text{margin:0;color:var(--c-text-2);font-size:15px}@keyframes spin{to{transform:rotate(360deg)}}.loading-stats{display:flex;align-items:center;gap:8px;color:var(--c-text-2);font-size:14px}.loading-current-path{margin:0;max-width:480px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:12px;color:var(--c-text-4)}.empty-state{padding:48px 24px;text-align:center;margin-top:clamp(24px,8vh,120px)}.empty-state h1{margin:0;font-size:38px;font-weight:700;letter-spacing:-.02em;color:var(--c-text);background:linear-gradient(135deg,var(--c-text),var(--c-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.empty-state .subtitle{margin:8px 0 0;color:var(--c-text-2)}.drop-icon{color:var(--c-text-4);margin-bottom:8px;transition:color .2s var(--ease),transform .2s var(--ease)}.drop-area{margin:32px auto 0;max-width:480px;padding:40px 32px;border:2px dashed var(--c-border-muted);border-radius:16px;transition:border-color .2s var(--ease),background .2s var(--ease)}.drop-area:hover{border-color:var(--c-primary);background:var(--c-primary-subtle)}.drop-area:hover .drop-icon{color:var(--c-primary);transform:translateY(-2px)}.drop-prompt{margin:0;font-size:16px;color:var(--c-text-2)}.drop-divider{display:flex;align-items:center;gap:16px;margin:20px 0;color:var(--c-text-4);font-size:13px}.drop-divider:before,.drop-divider:after{content:"";flex:1;border-top:1px solid var(--c-border)}.features{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:28px;padding:0;list-style:none}.feature-item{padding:5px 14px;background:var(--c-primary-subtle);color:var(--c-primary);border-radius:999px;font-size:12px;font-weight:500;letter-spacing:.01em}.header-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px}.header-bar h1{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em;color:var(--c-text);background:linear-gradient(135deg,var(--c-text),var(--c-primary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:10px;padding:9px 16px;background:var(--c-primary);color:#fff;cursor:pointer;font:inherit;font-size:14px;font-weight:500;box-shadow:0 1px 3px #0f6f8d4d,var(--shadow-sm);transition:all .2s var(--ease)}.button:hover:not(:disabled){background:var(--c-primary-dark);box-shadow:0 4px 12px #0f6f8d59,var(--shadow-sm);transform:translateY(-1px)}.button:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0f6f8d33}.button:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}.button.secondary{background:var(--c-text-2);box-shadow:0 1px 3px #48658140,var(--shadow-sm)}.button.secondary:hover:not(:disabled){background:#3b5368;box-shadow:0 4px 12px #4865814d,var(--shadow-sm)}.button.danger{background:var(--c-danger);box-shadow:0 1px 3px #a61b1b4d,var(--shadow-sm)}.button.danger:hover:not(:disabled){background:#8e1717;box-shadow:0 4px 12px #a61b1b59,var(--shadow-sm)}.button.small{padding:6px 12px;font-size:13px}.button.full{width:100%;padding:12px 16px;font-size:15px}.button:disabled{opacity:.4;cursor:not-allowed}.controls .row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.controls .row+.row{margin-top:12px}.controls input[type=text],.controls input:not([type]){flex:1;min-width:0;border:1px solid var(--c-border-muted);border-radius:8px;padding:8px 12px;font:inherit;background:#fff9;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.controls input[type=text]:focus,.controls input:not([type]):focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px #0f6f8d1a}.checkbox{display:inline-flex;gap:8px;align-items:center;cursor:pointer}.checkbox input[type=checkbox]{accent-color:var(--c-primary)}.field-label{font-size:13px;color:var(--c-text-2);white-space:nowrap}.pill{background:#e3f8ff;color:#0c4a6e;border-radius:999px;padding:3px 10px;font-size:12px;white-space:nowrap}.stats{color:var(--c-text-2);font-size:14px}.stats-dot{color:var(--c-border-muted)}.progress-panel{padding:16px 20px;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.progress-track{height:8px;border-radius:999px;background:#d9e2ec;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--c-primary),var(--c-accent),var(--c-primary));background-size:200% 100%;border-radius:999px;transition:width .3s linear;animation:shimmer 2s linear infinite}.progress-fill.is-done{background:var(--c-success);background-size:100% 100%;animation:none;width:100%!important}.progress-fill.is-error{background:var(--c-danger);background-size:100% 100%;animation:none}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.progress-stats{margin-top:8px}.current-file{margin:6px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--c-text-3)}.mono{font-family:var(--font-mono);font-size:13px}.success{margin:8px 0 0;color:var(--c-success);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.error{margin:8px 0 0;color:#b42318;font-size:14px}.tree-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.tree-header h2{margin:0;font-size:16px}.tree-root,.tree-children{list-style:none;padding-left:0;margin:0}.tree-children{padding-left:20px}.tree-node{margin:1px 0}.tree-line{display:flex;align-items:center;gap:4px;padding:3px 6px;border-radius:6px;transition:background .15s var(--ease)}.tree-line:hover{background:var(--c-primary-subtle)}.tree-line.is-excluded{opacity:.38}.tree-toggle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:10px;color:var(--c-text-3);cursor:pointer;transition:transform .15s ease;flex-shrink:0}.tree-toggle.is-open{transform:rotate(90deg)}.tree-toggle-spacer{width:18px;flex-shrink:0}.tree-name{font-family:var(--font-mono);font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:4px;padding:0 4px;transition:background .15s var(--ease)}.tree-name:hover{background:#0f6f8d14}.tree-name.is-disabled{pointer-events:none;opacity:.5}.tree-meta{margin-left:auto;padding-left:12px;color:var(--c-text-4);font-size:12px;white-space:nowrap;flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-footer{text-align:center;padding:12px 0 8px;color:var(--c-text-4);font-size:12px;border-top:1px solid var(--c-border);margin-top:8px}.app-footer p{margin:0;display:inline-flex;align-items:center;gap:4px}.footer-icon{opacity:.6;flex-shrink:0}@media(max-width:768px){.layout{padding:12px}.empty-state{padding:32px 16px;margin-top:16px}.empty-state h1{font-size:30px}.drop-area{padding:28px 20px}.header-bar{flex-direction:column;gap:12px;align-items:flex-start}.drag-overlay-border{top:8px;right:8px;bottom:8px;left:8px}.drag-overlay-icon svg{width:36px;height:36px}.drag-overlay-title{font-size:16px}.features{gap:6px}}
