:root{--sig-navy: #060d3e;--sig-blue-light: #7cafc8;--sig-blue-gray: #8298a6;--sig-bg: #f5f8fa;--sig-text: #142033;--sig-muted: #64748b;--sig-card: rgba(255, 255, 255, .92);--sig-card-solid: #ffffff;--sig-border: #d9e4ea;--sig-danger: #b91c1c;--sig-success: #047857;--sig-warning: #92400e;--shadow: 0 18px 50px rgba(6, 13, 62, .08);--input-bg: #fff;--code-bg: #06102f;--code-text: #e5f4ff}:root[data-theme=dark]{--sig-bg: #07111f;--sig-text: #edf6ff;--sig-muted: #a8b6c7;--sig-card: rgba(12, 27, 47, .92);--sig-card-solid: #0c1b2f;--sig-border: #233b56;--shadow: 0 18px 50px rgba(0, 0, 0, .32);--input-bg: #102238;--code-bg: #020817;--code-text: #dff3ff}*{box-sizing:border-box}body{margin:0;font-family:Poppins,Arial,sans-serif;color:var(--sig-text);background:radial-gradient(circle at 20% 5%,rgba(124,175,200,.28),transparent 30%),linear-gradient(135deg,var(--sig-bg) 0%,color-mix(in srgb,var(--sig-bg) 72%,#7cafc8 28%) 100%);min-height:100vh}button,input,select,textarea{font-family:inherit}.layout{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{background:var(--sig-navy);color:#fff;padding:28px 20px;position:sticky;top:0;height:100vh}.logoBox{display:flex;gap:12px;align-items:center;margin-bottom:34px}.logoMark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--sig-blue-light),#00a8bb);display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;box-shadow:0 14px 24px #00a8bb2e}.logoTitle{font-size:18px;font-weight:700;line-height:1.1}.logoSub{font-size:12px;opacity:.78}.navButton{width:100%;border:0;color:#fff;background:transparent;padding:13px 14px;text-align:left;border-radius:14px;cursor:pointer;margin-bottom:7px;font-weight:600;display:flex;align-items:center;gap:10px;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.navButton.active,.navButton:hover{background:rgba(124,175,200,.2);transform:translate(4px)}.main{padding:30px;overflow:auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}.title{margin:0;color:var(--sig-navy);font-size:30px;letter-spacing:-.03em}:root[data-theme=dark] .title{color:#dff3ff}.subtitle{margin:6px 0 0;color:var(--sig-muted)}.themeToggle{border:1px solid var(--sig-border);background:var(--sig-card);color:var(--sig-text);border-radius:999px;padding:10px 14px;display:flex;align-items:center;gap:8px;cursor:pointer;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease}.themeToggle:hover{transform:translateY(-2px)}.card{background:var(--sig-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--sig-border);border-radius:24px;padding:22px;box-shadow:var(--shadow);margin-bottom:18px;transition:transform .18s ease,box-shadow .18s ease,border .18s ease}.card:hover{box-shadow:0 22px 64px #060d3e1f}.statusCard.ready{border-color:#04785747}.statusCard.dangerBorder{border-color:#b91c1c59}.successPanel{border-color:#04785747;background:linear-gradient(135deg,color-mix(in srgb,var(--sig-card-solid) 88%,#dcfce7 12%),var(--sig-card))}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.sectionHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:8px;color:var(--sig-text)}.field input,.field select,.field textarea{width:100%;border:1px solid var(--sig-border);border-radius:14px;padding:12px 14px;outline:none;background:var(--input-bg);color:var(--sig-text);transition:border .15s ease,box-shadow .15s ease,transform .15s ease}.field input:focus,.field select:focus,.field textarea:focus,.mappingSelect:focus{border-color:var(--sig-blue-light);box-shadow:0 0 0 4px #7cafc82e}.field textarea{min-height:160px;font-family:Consolas,monospace}.btn{border:0;border-radius:14px;padding:12px 18px;font-weight:800;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 14px 28px #060d3e29}.btn:active:not(:disabled){transform:translateY(-1px)}.btn.primary{background:var(--sig-navy);color:#fff}.btn.secondary{background:color-mix(in srgb,var(--sig-card-solid) 70%,#dff1f8 30%);color:var(--sig-navy);border:1px solid var(--sig-border)}:root[data-theme=dark] .btn.secondary{color:#e5f4ff}.btn.danger{background:#fee2e2;color:var(--sig-danger)}.btn.selected{background:var(--sig-navy);color:#fff;box-shadow:0 10px 22px #060d3e2e}.btn:disabled{opacity:.58;cursor:not-allowed;transform:none;box-shadow:none}.btn.glow:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 16px 34px #060d3e47}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}.badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--sig-card-solid) 70%,#dff1f8 30%);color:var(--sig-navy);font-size:12px;font-weight:800}:root[data-theme=dark] .badge{color:#e5f4ff}.badge.ok{background:#dcfce7;color:var(--sig-success)}.badge.warn{background:#fef3c7;color:var(--sig-warning)}.badge.error,.badge.dangerSoft{background:#fee2e2;color:var(--sig-danger)}.tableWrap{overflow:auto;border:1px solid var(--sig-border);border-radius:18px;background:var(--sig-card-solid)}.smallTable{max-height:320px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px 12px;border-bottom:1px solid var(--sig-border);text-align:left;white-space:nowrap}th{background:color-mix(in srgb,var(--sig-card-solid) 90%,#7cafc8 10%);color:var(--sig-navy)}:root[data-theme=dark] th{color:#dff3ff}pre{background:var(--code-bg);color:var(--code-text);border-radius:18px;padding:16px;overflow:auto;font-size:12px;line-height:1.45;border:1px solid rgba(124,175,200,.15)}.loginPage{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,rgba(124,175,200,.35),transparent 34%),linear-gradient(135deg,#06102f,#060d3e)}.loginCard{width:100%;max-width:440px;background:white;border-radius:30px;padding:34px;box-shadow:0 28px 80px #00000047}.loginLogo{display:flex;align-items:center;gap:14px;margin-bottom:24px}.loginLogo strong{color:var(--sig-navy);font-size:22px}.message{padding:12px 14px;border-radius:14px;margin:12px 0;background:color-mix(in srgb,var(--sig-card-solid) 72%,#dff1f8 28%);color:var(--sig-text);font-size:13px;border:1px solid var(--sig-border)}.message.error{background:#fee2e2;color:var(--sig-danger);border-color:#b91c1c2e}.message.successMsg{background:#dcfce7;color:var(--sig-success);border-color:#0478572e}.mappingHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.mappingSelect{width:100%;min-width:420px;padding:10px 12px;border:1px solid var(--sig-border);border-radius:10px;background:var(--input-bg);color:var(--sig-text);font:inherit}.chips{display:flex;flex-wrap:wrap;gap:8px}.progress{height:10px;border-radius:999px;background:color-mix(in srgb,var(--sig-card-solid) 70%,#dbeafe 30%);overflow:hidden;margin:10px 0 18px}.progress div{height:100%;background:linear-gradient(90deg,var(--sig-blue-light),#00a8bb,var(--sig-navy));transition:width .25s ease}.checklistGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.checkItem{display:flex;gap:10px;align-items:center;border:1px solid var(--sig-border);padding:13px;border-radius:16px;background:color-mix(in srgb,var(--sig-card-solid) 84%,#eef7fb 16%);cursor:pointer;transition:transform .18s ease,border .18s ease,background .18s ease}.checkItem:hover{transform:translateY(-2px);border-color:var(--sig-blue-light)}.checkItem.checked{background:color-mix(in srgb,var(--sig-card-solid) 72%,#dcfce7 28%);border-color:#04785740}.checkItem input{display:none}.checkItem svg{color:var(--sig-blue-light);flex:0 0 auto}.checkItem.checked svg{color:var(--sig-success)}.checkItem span{display:flex;flex-direction:column;gap:2px}.checkItem small{color:var(--sig-muted);font-size:11px}.resultGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.resultGrid div{border:1px solid var(--sig-border);border-radius:16px;padding:14px;background:var(--sig-card-solid)}.resultGrid strong{display:block;color:var(--sig-muted);font-size:12px}.resultGrid span{font-size:24px;font-weight:800;color:var(--sig-navy)}:root[data-theme=dark] .resultGrid span{color:#dff3ff}.muted{color:var(--sig-muted)}.floatIn{animation:floatIn .35s ease both}@keyframes floatIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1000px){.layout{grid-template-columns:1fr}.sidebar{position:static;height:auto}.grid,.grid3,.checklistGrid,.resultGrid{grid-template-columns:1fr}.mappingSelect{min-width:240px}}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.message.warn{background:#fef3c7;color:var(--sig-warning);border-color:#92400e2e}.warningPanel{border-color:#92400e38;background:linear-gradient(135deg,color-mix(in srgb,var(--sig-card-solid) 88%,#fef3c7 12%),var(--sig-card))}.warningPanel ul,.successPanel ul{margin:10px 0 0;padding-left:20px}.sqlPreview{max-height:520px;white-space:pre}@media (max-width: 1000px){.grid2{grid-template-columns:1fr}}:root[data-theme=dark]{--sig-text: #f2f8ff;--sig-muted: #b8c9d8;--sig-card: rgba(10, 25, 43, .96);--sig-card-solid: #10243a;--sig-border: #34506b;--input-bg: #0b1d31}:root[data-theme=dark] .card,:root[data-theme=dark] .successPanel,:root[data-theme=dark] .warningPanel,:root[data-theme=dark] .message{color:#f2f8ff}:root[data-theme=dark] h1,:root[data-theme=dark] h2,:root[data-theme=dark] h3,:root[data-theme=dark] h4,:root[data-theme=dark] strong,:root[data-theme=dark] label,:root[data-theme=dark] td{color:#f8fbff}:root[data-theme=dark] p,:root[data-theme=dark] small,:root[data-theme=dark] .muted,:root[data-theme=dark] .subtitle,:root[data-theme=dark] .checkItem small{color:#bfd0df}.badge.ok{background:#d7fbe6;color:#065f46}.badge.warn{background:#fff2bd;color:#7c2d12}.badge.error,.badge.dangerSoft{background:#ffe1e1;color:#991b1b}:root[data-theme=dark] .badge.ok{background:#bbf7d0;color:#064e3b}:root[data-theme=dark] .badge.warn{background:#fde68a;color:#713f12}:root[data-theme=dark] .badge.error,:root[data-theme=dark] .badge.dangerSoft{background:#fecaca;color:#7f1d1d}.checkItem strong{font-size:15px;letter-spacing:-.01em}.checkItem small{text-transform:uppercase;letter-spacing:.04em;font-weight:700}:root[data-theme=dark] .checkItem{background:rgba(38,58,82,.86)}:root[data-theme=dark] .checkItem.checked{background:rgba(34,85,78,.9);border-color:#22c55e73}.navButton{min-height:44px}.navButton svg{flex:0 0 auto}.logList{display:grid;gap:14px}.logCard{margin-bottom:0}.logSummary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px}.logTitle{display:flex;align-items:center;gap:10px;margin-bottom:4px}.logSummary p{margin:0 0 6px}.iconButton{border:1px solid var(--sig-border);background:var(--sig-card-solid);color:var(--sig-text);border-radius:12px;width:38px;height:38px;display:grid;place-items:center;cursor:pointer}.logContent{margin-top:16px;max-height:520px;white-space:pre-wrap}.logSummary .btn{display:flex;align-items:center;gap:8px;white-space:nowrap}@media (max-width: 800px){.logSummary{grid-template-columns:auto 1fr}.logSummary .btn{grid-column:1 / -1;justify-content:center}}:root[data-theme=dark]{--sig-bg: #07111f;--sig-text: #f8fbff;--sig-muted: #c9d8e8;--sig-card: rgba(10, 25, 43, .98);--sig-card-solid: #10243a;--sig-border: #34506b;--input-bg: #0b1d31;--code-bg: #020817;--code-text: #e6f7ff}.logoImg{width:46px;height:46px;object-fit:contain;flex:0 0 auto;display:block}.loginLogo .logoImg{width:50px;height:50px}.logoBox .logoImg{width:46px;height:46px}.logoBox .logoSub{max-width:170px;line-height:1.2;opacity:.9}.loginCard{background:#ffffff;color:#142033!important}.loginCard strong,.loginCard label,.loginCard .logoSub{color:#142033!important}.loginCard .logoSub{opacity:.72}.loginCard input{background:#0b1d31!important;color:#fff!important;border-color:#1f3a56!important}.loginCard input::placeholder{color:#94a3b8!important}.message.error,:root[data-theme=dark] .message.error{background:#fecaca!important;color:#7f1d1d!important;border-color:#f87171!important;font-weight:800}.message.warn,:root[data-theme=dark] .message.warn{background:#fde68a!important;color:#713f12!important;border-color:#f59e0b!important;font-weight:800}.message.successMsg,:root[data-theme=dark] .message.successMsg{background:#bbf7d0!important;color:#064e3b!important;border-color:#34d399!important;font-weight:800}:root[data-theme=dark] .field input,:root[data-theme=dark] .field select,:root[data-theme=dark] .field textarea,:root[data-theme=dark] .mappingSelect{background:#0b1d31!important;color:#f8fbff!important;border-color:#34506b!important}:root[data-theme=dark] .field input::placeholder,:root[data-theme=dark] .field textarea::placeholder{color:#8fa4b8!important}:root[data-theme=dark] .field label,:root[data-theme=dark] .card label,:root[data-theme=dark] .card strong,:root[data-theme=dark] .card h1,:root[data-theme=dark] .card h2,:root[data-theme=dark] .card h3,:root[data-theme=dark] .card h4{color:#f8fbff!important}:root[data-theme=dark] .card p,:root[data-theme=dark] .card small,:root[data-theme=dark] .subtitle,:root[data-theme=dark] .muted{color:#c9d8e8!important}:root[data-theme=dark] .card,:root[data-theme=dark] .tableWrap,:root[data-theme=dark] .resultGrid div,:root[data-theme=dark] .iconButton{background:rgba(10,25,43,.98)!important;color:#f8fbff!important;border-color:#34506b!important}:root[data-theme=dark] .btn.secondary{background:#1b344d!important;color:#f8fbff!important;border-color:#42617e!important}:root[data-theme=dark] .badge:not(.ok):not(.warn):not(.error):not(.dangerSoft){background:#1b344d!important;color:#e8f6ff!important}.loginCard label{color:#142033!important;opacity:1!important;font-weight:800!important}:root[data-theme=dark] .loginCard label{color:#142033!important;opacity:1!important}:root[data-theme=dark] .loginCard{background:#ffffff!important;color:#142033!important}:root[data-theme=dark] .loginCard strong,:root[data-theme=dark] .loginCard .logoSub{color:#142033!important;opacity:1!important}
