:root{color-scheme:light;--bg: #f5f7f8;--surface: #ffffff;--surface-soft: #eef4f1;--text: #17211f;--muted: #66736f;--line: #d8e0dd;--accent: #1f7a5c;--accent-dark: #155f48;--warning: #a15c00;--danger: #b42318;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,a{font:inherit}.center{min-height:100vh;display:grid;place-items:center}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#f5f7f8,#e7f0ec)}.login__panel{width:min(520px,100%);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:32px;box-shadow:0 16px 50px #17211f14}.login h1{margin:28px 0 12px;font-size:34px;line-height:1.08;letter-spacing:0}.login p,.topbar p,.panel p{color:var(--muted)}.brand{display:flex;align-items:center;gap:10px;font-weight:800}.shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:22px;border-right:1px solid var(--line);background:#fbfcfc;display:flex;flex-direction:column;gap:28px}.sidebar nav{display:grid;gap:8px}.sidebar a{color:var(--text);text-decoration:none;padding:10px 12px;border-radius:6px}.sidebar a:hover{background:var(--surface-soft)}.content{width:min(1240px,100%);padding:28px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.topbar h1,.panel h2{margin:0;letter-spacing:0}.topbar h1{font-size:28px}.topbar p{margin:5px 0 0}input,select{min-height:38px;border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:#fff;color:var(--text)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric,.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px}.metric{padding:18px;display:grid;gap:8px}.metric svg{color:var(--accent)}.metric span{color:var(--muted);font-size:14px}.metric strong{font-size:24px}.panel{padding:18px;margin-bottom:18px}.panel__head,.importPreview__head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.panel p{margin:5px 0 0}.primary,.ghost,.iconButton{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border-radius:6px;border:1px solid transparent;cursor:pointer;text-decoration:none}.primary{background:var(--accent);color:#fff;padding:0 14px}.primary:hover{background:var(--accent-dark)}.ghost{margin-top:auto;background:transparent;border-color:var(--line);color:var(--text)}.iconButton{width:42px;background:var(--surface-soft);color:var(--accent-dark)}.iconButton input{display:none}.compact{min-height:34px;padding:0 10px}button:disabled{cursor:not-allowed;opacity:.55}.alert{padding:10px 12px;border-radius:6px;background:#fff7ed;color:var(--warning);border:1px solid #fed7aa;margin-bottom:12px}.tableWrap{width:100%;overflow-x:auto}.mapping{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfc;margin-bottom:12px}.selectField{display:grid;gap:5px}.selectField span{color:var(--muted);font-size:13px;font-weight:700}table{width:100%;border-collapse:collapse;table-layout:fixed}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}th{color:var(--muted);font-size:13px;font-weight:700}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.compactPanel h2{display:flex;align-items:center;gap:8px;font-size:18px;margin-bottom:12px}.compactPanel form{display:grid;gap:8px;margin-bottom:12px}.bars{display:grid;gap:12px;margin-top:12px}.bar{display:grid;grid-template-columns:150px 1fr 120px;align-items:center;gap:12px}.bar div{height:10px;border-radius:5px;background:var(--accent)}.bar strong{text-align:right}@media(max-width:920px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;overflow-x:auto}.sidebar nav{display:flex}.ghost{margin-top:0}.metrics,.grid3{grid-template-columns:1fr}.topbar,.panel__head,.importPreview__head{align-items:flex-start;flex-direction:column}.mapping{grid-template-columns:1fr}}@media(max-width:560px){.content{padding:16px}.login__panel{padding:22px}.login h1{font-size:28px}.bar{grid-template-columns:1fr}.bar strong{text-align:left}}
