:root{--nav:#0b1f3a;--nav2:#132e50;--bg:#f4f7fb;--card:#fff;--text:#162235;--muted:#6c7b8d;--line:#dfe6ef;--accent:#146ef5;--good:#147a52;--bad:#b42318;--warn:#b26b00}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit}.sidebar{position:fixed;left:0;top:0;bottom:0;width:260px;background:var(--nav);color:#fff;padding:24px 18px;display:flex;flex-direction:column}.brand{display:flex;flex-direction:column;gap:5px;margin-bottom:24px}.brand strong{font-size:21px;letter-spacing:.08em}.brand span{font-size:12px;color:var(--muted)}.brand.inverse span{color:#9db1c7}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav a{text-decoration:none;padding:11px 12px;border-radius:9px;color:#c8d4e2}.sidebar nav a:hover,.sidebar nav a.active{background:var(--nav2);color:white}.sidebar-foot{margin-top:auto;color:#8da2b9;font-size:12px}.topbar{position:fixed;left:260px;right:0;top:0;height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:5}.topbar>div{display:flex;gap:18px;align-items:center}.topbar span{font-size:13px;color:var(--muted)}.content{margin-left:260px;padding:88px 24px 100px}.page-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.page-title h1{margin:0 0 4px;font-size:26px}.page-title p,.muted{margin:0;color:var(--muted)}.btn{background:var(--accent);color:#fff;border:0;border-radius:9px;padding:11px 16px;font-weight:700;text-decoration:none;cursor:pointer}.btn.secondary{background:#e9eff8;color:#1c3657}.btn.full{width:100%}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:14px 0}.card,.panel,.status-card,.report-card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 8px rgba(21,40,70,.04)}.card{padding:18px}.card span{display:block;color:var(--muted);font-size:13px}.card b{display:block;margin-top:8px;font-size:25px}.status-card{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px;padding:20px}.status-card h2{margin:5px 0}.status-card strong{display:block;font-size:28px;margin-top:8px}.panel{padding:18px;margin:14px 0}.panel h2{margin-top:0}.flow{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.flow span{background:#eef4ff;padding:10px 12px;border-radius:9px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line)}th{color:#536477;font-weight:700;background:#fbfcfe}.empty{text-align:center;color:var(--muted);padding:30px}.pill{display:inline-block;padding:5px 8px;border-radius:999px;background:#edf2f8;font-size:12px}.pill.ok,.ok{color:var(--good)}.pill.bad,.bad{color:var(--bad)}.upload-zone{background:#fff;border:2px dashed #b9c7da;border-radius:16px;text-align:center;padding:42px;margin:16px 0}.upload-icon{font-size:36px;color:var(--accent)}.sticky-action{position:fixed;bottom:0;left:260px;right:0;background:#fff;border-top:1px solid var(--line);padding:12px 24px;display:flex;align-items:center;justify-content:space-between;z-index:4}.sticky-action div{display:flex;flex-direction:column}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.report-card{padding:20px}.setup,.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0b1f3a,#164a7c)}.setup-card,.login-card{width:min(760px,94vw);background:#fff;border-radius:18px;padding:30px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.setup-card.wide{width:min(900px,94vw)}.login-card{width:min(430px,94vw)}label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:13px;margin:10px 0}input{border:1px solid #cdd7e5;border-radius:9px;padding:11px 12px;font-size:14px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.span2{grid-column:1/-1}.setup-actions{display:flex;justify-content:space-between;align-items:center;margin-top:22px}.check-list{display:grid;gap:7px}.check-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:9px}.alert{padding:12px;border-radius:10px;margin:10px 0}.alert.error{background:#feeceb;color:#8e1d15}.alert.success{background:#e9f8ef;color:#14633f}.login-foot{text-align:center;margin-top:18px;color:var(--muted);font-size:12px}@media(max-width:900px){.sidebar{width:72px}.sidebar .brand span,.sidebar nav a{font-size:0}.sidebar nav a:before{content:'•';font-size:20px}.topbar{left:72px}.content{margin-left:72px}.sticky-action{left:72px}.cards,.report-grid{grid-template-columns:1fr 1fr}.status-card{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}.span2{grid-column:auto}}
select{border:1px solid #cdd7e5;border-radius:9px;padding:10px 11px;background:#fff;color:var(--text);font-size:13px}.health-cards{grid-template-columns:repeat(8,1fr)}.health-cards .card{padding:14px}.health-cards .card b{font-size:20px}.upload-zone.dragover{border-color:var(--accent);background:#eef5ff}.upload-progress{max-width:680px;margin:20px auto 0;display:grid;gap:7px;text-align:left}.upload-progress.hidden{display:none}.upload-progress small{color:var(--muted)}.progress,.mini-progress{height:9px;background:#e6edf6;border-radius:999px;overflow:hidden}.progress span,.mini-progress span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .2s}.mini-progress{display:inline-block;width:90px;vertical-align:middle;height:7px}.workspace{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}.workspace.with-detail{grid-template-columns:minmax(0,1fr) 390px}.dataset-panel{min-width:0}.detail-panel{position:sticky;top:80px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;max-height:calc(100vh - 98px);overflow:auto;box-shadow:0 8px 30px rgba(22,34,53,.10)}.detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}.detail-head h2{margin:4px 0}.detail-head p{margin:0;color:var(--muted);word-break:break-word}.close-detail{font-size:28px;text-decoration:none;color:var(--muted);line-height:1}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.detail-grid>div{background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:10px}.detail-grid span,.mapping-row small{display:block;color:var(--muted);font-size:11px}.issue-list{display:grid;gap:8px;margin-bottom:18px}.issue{display:grid;grid-template-columns:auto 1fr;gap:9px;border:1px solid var(--line);border-radius:10px;padding:10px}.issue p{margin:3px 0;color:var(--muted);font-size:12px}.issue small{color:#718095}.mapping-list{display:grid;gap:7px;margin:8px 0 14px}.mapping-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.filter-pills{display:flex;gap:6px;flex-wrap:wrap}.pill.warn,.warn{color:var(--warn)}.table-scroll{overflow:auto}.clickable{cursor:pointer}.clickable:hover,.selected-row{background:#f2f7ff}.impact-panel{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin:14px 0 72px}.impact-panel h3,.impact-panel p{margin:0}.impact-panel p{color:var(--muted);margin-top:5px}.impact-panel b{display:block;color:var(--muted);font-size:12px}.impact-panel strong{font-size:26px}.empty.compact{padding:12px}.detail-panel form+form{margin-top:8px}.detail-panel h3{margin:18px 0 8px;font-size:14px}@media(max-width:1180px){.health-cards{grid-template-columns:repeat(4,1fr)}.workspace.with-detail{grid-template-columns:1fr}.detail-panel{position:relative;top:auto;max-height:none}}@media(max-width:900px){.health-cards{grid-template-columns:repeat(2,1fr)}.impact-panel{grid-template-columns:1fr}.mapping-row{grid-template-columns:1fr}}

/* TourAssureIQ unified brand identity */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.brand-visual{align-items:flex-start}
.brand-logo-full{display:block;width:min(360px,82vw);height:auto;max-height:145px;object-fit:contain;object-position:left center}
.login-card .brand-logo-full,.setup-card .brand-logo-full{width:min(330px,78vw);margin:0 auto;object-position:center}
.brand-logo-sidebar-full{display:block;width:218px;height:auto;filter:drop-shadow(0 2px 2px rgba(0,0,0,.12));background:#fff;border-radius:10px;padding:6px}
.brand-logo-sidebar-symbol{display:none;width:48px;height:48px;border-radius:10px;background:#fff}
@media(max-width:900px){.brand-logo-sidebar-full{display:none}.brand-logo-sidebar-symbol{display:block}.sidebar .brand{align-items:center;margin-left:-6px;margin-right:-6px}}
