*{box-sizing:border-box}
:root{--bg:#f7f7fb;--fg:#111;--muted:#666;--card:#fff;--border:#e6e6ef;--accent:#2563eb;--shadow:0 10px 25px rgba(0,0,0,.08)}
html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto}
.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;padding:16px 20px;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}
.topbar h1{margin:0;font-size:18px}
.topbar .limits{display:flex;gap:10px;color:var(--muted);font-size:14px}
main{max-width:1080px;margin:16px auto;padding:0 14px}
.uploader .dropzone{position:relative;border:2px dashed var(--border);background:var(--card);border-radius:14px;padding:18px;box-shadow:var(--shadow)}
.uploader .dropzone:hover{border-color:var(--accent)}
.uploader .inner{display:flex;align-items:center;gap:12px}
.uploader .ico{font-size:28px}
.uploader .hint{font-size:12px;color:var(--muted)}
#fileInput{position:absolute;inset:0;opacity:0;cursor:pointer}
.linklike{background:none;border:none;color:var(--accent);text-decoration:underline;cursor:pointer;padding:0;font:inherit}
.panel details{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:10px;box-shadow:var(--shadow)}
.panel .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.btn{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:8px 12px;font-weight:600;cursor:pointer}
.btn.ghost{background:#eee;color:#111}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
textarea{width:100%;min-height:100px;border:1px solid var(--border);border-radius:10px;padding:8px}
.stats{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.chip{background:var(--card);border:1px solid var(--border);border-radius:999px;padding:6px 10px}
.chip.warn{background:#f59e0b;color:white;border-color:#f59e0b}
.table table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
th,td{padding:10px;border-bottom:1px solid var(--border);font-size:14px}
th{text-align:left;background:#fafafa}
tr:last-child td{border-bottom:none}
.actions{display:flex;gap:6px;flex-wrap:wrap}
.tag{display:inline-block;border:1px solid var(--border);padding:2px 8px;border-radius:999px;font-size:12px;background:#fafafa}
.tag.ok{background:#d1fae5;border-color:#10b981;color:#065f46}
.tag.no{background:#fee2e2;border-color:#ef4444;color:#991b1b}
.iconbtn{background:#eee;border:1px solid var(--border);border-radius:8px;padding:6px 10px;cursor:pointer}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:grid;place-items:center;padding:18px;z-index:50}
.modal .box{width:min(1000px,95vw);height:85vh;background:#fff;border-radius:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}
.modal .head{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border)}
.modal .title{font-weight:700}
#frame{display:block;width:100%;height:calc(100% - 40px);border:0}
footer{max-width:1080px;margin:12px auto;padding:0 14px;color:var(--muted);font-size:13px}
@media (max-width:860px){.panel .grid{grid-template-columns:1fr}}
