.tool-page{min-height:100vh;padding:0 0 90px}.tool-header{max-width:790px;margin:0 auto;padding:clamp(62px,8vw,92px) var(--container-padding) 0;text-align:center}.tool-header .tool-icon{width:58px;height:58px;margin:0 auto 19px;display:grid;place-items:center;color:var(--accent-dark);background:var(--accent-soft);border-radius:15px 15px 15px 5px;font:800 17px/1 var(--mono)}.tool-header h1{margin-bottom:16px;font-size:clamp(38px,5.5vw,64px);line-height:.98;letter-spacing:-.055em}.gradient-text{color:var(--accent)}.tool-header p{max-width:650px;margin:0 auto;color:var(--ink-soft);font-size:16px;line-height:1.65}.privacy-note{display:inline-flex;align-items:center;gap:7px;margin-top:17px;padding:7px 11px;color:var(--success);background:#18794e12;border-radius:8px;font:700 10px/1 var(--mono)}.tool-workspace{width:min(100%,920px);margin:34px auto 0;padding-inline:var(--container-padding)}.upload-zone{position:relative;min-height:310px;padding:54px 30px;display:grid;place-content:center;text-align:center;background:#ffffff;border:1.5px dashed #b8c5d7;border-radius:24px 24px 24px 8px;cursor:pointer;transition:transform var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base)}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--shadow-card)}.upload-icon{width:68px;height:82px;margin:0 auto 20px;display:grid;place-items:center;color:#fff;background:var(--accent);border-radius:10px 10px 10px 3px;box-shadow:9px 10px #dce5f1;font:800 13px/1 var(--mono)}.upload-zone h3{margin-bottom:7px;font-size:21px}.upload-subtitle{margin-bottom:0;color:var(--muted);font-size:13px}.upload-subtitle strong{color:var(--accent-dark)}.upload-formats{margin-top:18px;display:flex;justify-content:center;flex-wrap:wrap;gap:13px;color:var(--muted);font-size:10px}.upload-zone input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-info{display:none;align-items:center;gap:12px;margin-top:14px;padding:13px 15px;background:#fff;border:1px solid var(--line);border-radius:11px}.file-info.visible{display:flex}.file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:750}.file-size{color:var(--muted);font:650 10px/1 var(--mono)}.processing-state{display:none;padding:48px 20px;text-align:center}.processing-state.visible{display:block}.processing-spinner,.mini-spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}.processing-spinner{width:44px;height:44px;margin:0 auto 18px}.mini-spinner{width:18px;height:18px}@keyframes spin{to{transform:rotate(360deg)}}.processing-state h3{margin-bottom:5px;font-size:17px}.processing-state p{color:var(--muted);font-size:12px}.progress-bar{max-width:300px;height:4px;margin:17px auto 0;overflow:hidden;background:var(--line);border-radius:4px}.progress-fill{width:0;height:100%;background:var(--accent);transition:width .3s}.wasm-loading{display:none;align-items:center;justify-content:center;gap:10px;margin-bottom:14px;padding:12px;color:var(--ink-soft);background:var(--paper-soft);border-radius:10px;font-size:11px}.wasm-loading.visible{display:flex}.wasm-loading p{margin:0}.result-container{display:none;margin-top:24px}.result-container.visible{display:block}.result-toolbar{padding:12px 15px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--paper-soft);border:1px solid var(--line);border-radius:12px 12px 0 0}.result-toolbar-left,.result-toolbar-right{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.result-toolbar-left{min-width:0;font-size:11px;font-weight:750}.result-badge{padding:4px 7px;color:var(--success);background:#18794e14;border-radius:6px;font:700 9px/1 var(--mono)}.toolbar-btn,.retry-btn,.new-file-btn{padding:8px 11px;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px;font-size:11px;font-weight:800;cursor:pointer;transition:all var(--transition-fast)}.toolbar-btn:hover,.new-file-btn:hover{color:#fff;background:var(--ink);border-color:var(--ink)}.result-output{max-height:520px;overflow:auto;padding:22px;color:#2a2724;background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 4px;font:12px/1.7 var(--mono);white-space:pre-wrap;word-break:break-word}.new-file-btn{display:none;margin:18px auto 0}.new-file-btn.visible{display:flex}.error-state{display:none;margin-top:18px;padding:24px;text-align:center;color:var(--error);background:#fff4f2;border:1px solid #f0cdc7;border-radius:12px}.error-state.visible{display:block}.error-state h3{margin:5px 0;font-size:17px}.error-state p{margin-bottom:13px;color:var(--ink-soft);font-size:12px}.retry-btn{color:#fff;background:var(--error);border-color:var(--error)}.classify-results,.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}.classify-card,.stat-card{padding:18px;background:#fff;border:1px solid var(--line);border-radius:12px 12px 12px 4px}.classify-card.primary{border-color:#aab9cc;background:#fff8f6}.classify-card h4,.stat-name{margin-bottom:7px;color:var(--muted);font:700 9px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase}.classify-value,.stat-number{color:var(--accent-dark);font:800 24px/1.15 var(--display);letter-spacing:-.035em}.type-good{color:var(--success)}.stat-card{text-align:left}.stat-icon{margin-bottom:10px}.stat-name{margin:7px 0 0}.table-result{overflow-x:auto;margin-top:14px}.table-result table{width:100%;border-collapse:collapse;font-size:11px}.table-result th,.table-result td{padding:9px 11px;border:1px solid var(--line);text-align:left}.table-result th{background:var(--paper-soft)}.other-tools,.faq-section{width:min(100%,920px);margin:70px auto 0;padding-inline:var(--container-padding)}.other-tools h2,.faq-section h2{margin-bottom:23px;font-size:clamp(27px,3.4vw,40px);letter-spacing:-.04em}.tools-mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.tool-mini-card{min-height:92px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;background:var(--paper-soft);border:1px solid var(--line);border-radius:11px 11px 11px 4px;font-size:11px;font-weight:750;transition:transform var(--transition-fast),border-color var(--transition-fast)}.tool-mini-card:hover{border-color:#9eb1c9;transform:translateY(-2px)}.mini-icon{color:var(--accent);font:800 12px/1 var(--mono)}.editor-layout{width:min(100%,1180px);margin:34px auto 0;padding-inline:var(--container-padding);display:grid;grid-template-columns:245px minmax(0,1fr);gap:16px;align-items:start}.editor-menu{position:sticky;top:88px;padding:10px;background:var(--paper-soft);border:1px solid var(--line);border-radius:15px 15px 15px 5px}.editor-tab{width:100%;padding:10px 11px;display:flex;align-items:center;gap:10px;border:0;border-radius:8px;background:transparent;color:var(--ink-soft);text-align:left;font-size:11px;font-weight:750;cursor:pointer}.editor-tab span{width:26px;height:26px;display:grid;place-items:center;background:#fff;border-radius:7px;font:750 8px/1 var(--mono)}.editor-tab:hover,.editor-tab.active{color:#fff;background:var(--ink)}.editor-tab.active span{color:var(--accent)}.editor-panel{padding:clamp(20px,4vw,34px);background:#fff;border:1px solid var(--line);border-radius:20px 20px 20px 7px;box-shadow:0 18px 60px #4230220f}.editor-panel-head{margin-bottom:22px}.editor-panel-head h2{margin-bottom:7px;font-size:clamp(26px,4vw,42px);line-height:1;letter-spacing:-.045em}.editor-panel-head p{margin:0;color:var(--ink-soft);font-size:12px}.editor-drop{position:relative;min-height:210px;display:grid;place-content:center;text-align:center;background:#fff9f5;border:1.5px dashed #b8c5d7;border-radius:15px 15px 15px 5px;cursor:pointer}.editor-drop:hover,.editor-drop.drag-over{border-color:var(--accent)}.editor-drop input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.editor-drop strong{display:block;margin-bottom:5px;font-size:16px}.editor-drop small{color:var(--muted)}.editor-files{display:grid;gap:7px;margin-top:13px}.editor-file{padding:10px 11px;display:flex;align-items:center;gap:10px;background:var(--paper-soft);border-radius:8px;font-size:11px}.editor-file b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-file span{color:var(--muted);font:650 9px/1 var(--mono)}.editor-options{margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:grid;gap:6px}.field.wide{grid-column:1/-1}.field label{color:var(--ink-soft);font-size:10px;font-weight:750}.field input,.field select{width:100%;height:42px;padding:0 11px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px}.editor-notice{margin-top:14px;padding:11px 12px;color:var(--warning);background:#fff8e8;border-radius:8px;font-size:10px}.editor-actions{margin-top:18px;display:flex;flex-wrap:wrap;gap:9px}.editor-run{min-height:44px;padding:0 18px;color:#fff;background:var(--accent);border:0;border-radius:9px;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 9px 20px #0b2d5c33}.editor-run:hover{background:var(--accent-dark)}.editor-run:disabled{opacity:.45;cursor:not-allowed}.editor-reset{min-height:44px;padding:0 15px;background:#fff;border:1px solid var(--line);border-radius:9px;font-size:11px;font-weight:750;cursor:pointer}.editor-progress,.editor-result,.editor-error{display:none;margin-top:17px;padding:14px;border-radius:9px;font-size:11px}.editor-progress.visible,.editor-result.visible,.editor-error.visible{display:flex;align-items:center;gap:10px}.editor-progress{background:var(--paper-soft)}.editor-result{justify-content:space-between;color:var(--success);background:#eef8f3}.editor-result a{padding:8px 11px;color:#fff;background:var(--success);border-radius:7px;font-weight:800}.editor-error{color:var(--error);background:#fff0ee}@media(max-width:860px){.editor-layout{grid-template-columns:1fr}.editor-menu{position:static;display:flex;overflow-x:auto}.editor-tab{width:auto;min-width:max-content}.tools-mini-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:580px){.result-toolbar{align-items:flex-start;flex-direction:column}.classify-results,.stats-grid,.editor-options{grid-template-columns:1fr}.field.wide{grid-column:auto}}
