:root{--bg:#f0f2f5;--surface:#fff;--border:#d8dde3;--text:#1a1f26;--muted:#5c6570;--accent:#1f6b4a;--accent-hover:#185538;--accent-soft:#e8f3ee;--danger:#9b2c2c;--selected:#e4eef8;--selected-border:#3d6f99;--downloaded:#1f6b4a;--shadow:0 1px 2px #1a1f260f, 0 4px 12px #1a1f260a;--radius:10px;--font:"Segoe UI", "IBM Plex Sans", "Source Sans 3", system-ui, sans-serif}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--font);margin:0;line-height:1.45}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app{max-width:1120px;margin:0 auto;padding:28px 20px 48px}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.app-header h1{letter-spacing:-.02em;margin:0 0 4px;font-size:1.6rem;font-weight:650}.app-header p{color:var(--muted);margin:0;font-size:.95rem}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 14px;font-size:.9rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.btn:hover:not(:disabled){background:#f7f8fa;border-color:#b8c0ca}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.status-bar{min-height:1.4em;color:var(--muted);margin-bottom:16px;font-size:.9rem}.status-bar.error{color:var(--danger)}.files-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.files-list-header,.file-row{grid-template-columns:36px minmax(0,1.6fr) minmax(0,1.2fr) 88px 148px 88px 96px;align-items:center;gap:12px;padding:0 14px;display:grid}.files-list-header{border-bottom:1px solid var(--border);height:40px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;background:#f7f8fa;font-size:.78rem;font-weight:600}.file-row{border-bottom:1px solid var(--border);cursor:pointer;min-height:48px;transition:background .12s}.file-row:last-child{border-bottom:none}.file-row:hover{background:#f7f8fa}.file-row.selected{background:var(--selected)}.file-row.downloaded{box-shadow:inset 3px 0 0 var(--downloaded)}.file-row-check{justify-content:center;align-items:center;display:flex}.file-row-name,.file-row-original{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.9rem;overflow:hidden}.file-row-name{font-weight:560}.file-row-original{color:var(--muted)}.file-row-meta{color:var(--muted);white-space:nowrap;font-size:.85rem}.file-row-status{align-items:center;display:flex}.badge{background:var(--accent-soft);color:var(--downloaded);border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-block}.file-row-actions{justify-content:flex-end;display:flex}.file-row-actions .btn{padding:5px 10px;font-size:.82rem}@media (max-width:860px){.files-list{overflow-x:auto}.files-list-header,.file-row{min-width:720px}}.empty-state{text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:48px 24px}.loading{text-align:center;color:var(--muted);padding:32px}.upload-panel{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;margin-bottom:16px;padding:14px 16px;display:flex}.upload-panel-text{flex-direction:column;gap:2px;min-width:0;display:flex}.upload-panel-text strong{font-size:.95rem}.upload-panel-text span{color:var(--muted);font-size:.85rem}.upload-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
