@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;700&display=swap";:root{--bg-primary: #080808;--bg-panel: #0f0f0f;--bg-panel-header: #141414;--bg-panel-hover: #181818;--bg-input: #1a1a1a;--border: #222222;--border-subtle: #1a1a1a;--accent-green: #00e87a;--accent-cyan: #00c8f0;--accent-amber: #f0a800;--accent-red: #ff3333;--accent-purple: #9933ff;--accent-orange: #ff5500;--accent-blue: #3388ff;--accent-teal: #00d4aa;--tag-refugee: #ff3333;--tag-student: #00c8f0;--tag-workforce: #9933ff;--tag-policy: #f0a800;--tag-visa: #00e87a;--tag-border: #ff5500;--tag-migration: #3388ff;--tag-remittance: #00d4aa;--text-primary: #e0e0e0;--text-secondary: #888888;--text-muted: #444444;--text-label: #aaaaaa;--severity-critical: #ff3333;--severity-high: #ff6600;--severity-medium: #f0a800;--severity-low: #00e87a;--severity-info: #888888;--panel-padding: 12px;--panel-gap: 4px;--border-radius: 2px;--font-mono: "JetBrains Mono", "Fira Code", "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-mono);font-size:13px;line-height:1.4;overflow:hidden;height:100vh;width:100vw}#root{height:100vh;width:100vw;display:flex;flex-direction:column}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--border-radius);display:flex;flex-direction:column;overflow:hidden;min-height:0;height:100%}.panel-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-panel-header);border-bottom:1px solid var(--border);min-height:34px;flex-shrink:0}.panel-label{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-label);flex:1}.panel-count{font-size:10px;background:#2a2a2a;padding:1px 6px;border-radius:2px;color:var(--text-secondary)}.panel-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--panel-padding);scrollbar-width:thin;scrollbar-color:#2a2a2a transparent;min-height:0}.panel-content::-webkit-scrollbar{width:4px}.panel-content::-webkit-scrollbar-track{background:transparent}.panel-content::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:2px}.live-badge{display:flex;align-items:center;gap:4px;font-size:9px;font-weight:700;letter-spacing:.08em;color:var(--accent-green);text-transform:uppercase}.live-dot{width:5px;height:5px;background:var(--accent-green);border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.tag{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:1px 5px;border-radius:2px;display:inline-flex;align-items:center}.tag-refugee{background:#ff333326;color:var(--tag-refugee)}.tag-student{background:#00c8f026;color:var(--tag-student)}.tag-workforce{background:#9933ff26;color:var(--tag-workforce)}.tag-policy{background:#f0a80026;color:var(--tag-policy)}.tag-visa{background:#00e87a26;color:var(--tag-visa)}.tag-border{background:#ff550026;color:var(--tag-border)}.tag-migration{background:#3388ff26;color:var(--tag-migration)}.tag-remittance{background:#00d4aa26;color:var(--accent-teal)}.news-item{padding:8px 0;border-bottom:1px solid var(--border-subtle);cursor:pointer;display:flex;gap:8px}.news-item:hover{background:var(--bg-panel-hover)}.news-item:last-child{border-bottom:none}.news-item-body{flex:1;min-width:0}.news-item-source{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:6px;margin-bottom:3px;flex-wrap:wrap}.news-item-title{font-size:12px;color:var(--text-primary);line-height:1.45;margin-bottom:3px}.news-item-time{font-size:9px;color:var(--text-muted)}.severity-bar{width:3px;flex-shrink:0;border-radius:2px;align-self:stretch;min-height:30px}.severity-critical{background:var(--severity-critical)}.severity-high{background:var(--severity-high)}.severity-medium{background:var(--severity-medium)}.severity-low{background:var(--severity-low)}.top-nav{display:flex;align-items:center;gap:16px;padding:0 16px;height:44px;background:var(--bg-panel-header);border-bottom:1px solid var(--border);flex-shrink:0}.stale-badge{font-size:9px;color:var(--accent-amber);display:flex;align-items:center;gap:4px}.mock-badge{font-size:9px;color:var(--text-muted);background:#1a1a1a;padding:1px 5px;border-radius:2px}.score-bar-wrapper{display:flex;align-items:center;gap:6px}.score-bar-track{flex:1;height:4px;background:#1e1e1e;border-radius:2px;overflow:hidden}.score-bar-fill{height:100%;border-radius:2px;transition:width .3s ease}.btn{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border:1px solid var(--border);border-radius:2px;background:var(--bg-input);color:var(--text-secondary);cursor:pointer;transition:all .15s}.btn:hover{background:#222;color:var(--text-primary);border-color:#333}.btn-active{background:#00e87a1a;color:var(--accent-green);border-color:var(--accent-green)}.nav-control-group{display:flex;gap:2px}.nav-select{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--bg-input);border:1px solid var(--border);border-radius:2px;color:var(--text-secondary);padding:4px 8px;cursor:pointer;outline:none}.nav-select:focus{border-color:var(--accent-green);color:var(--text-primary)}.layer-sidebar{width:220px;background:#080808eb;border-right:1px solid var(--border);display:flex;flex-direction:column;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow-y:auto;flex-shrink:0}.layer-group-label{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:10px 12px 4px}.layer-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;transition:background .1s}.layer-item:hover{background:var(--bg-panel-hover)}.layer-toggle{width:28px;height:14px;border-radius:7px;background:#222;border:1px solid #333;position:relative;flex-shrink:0;transition:all .2s}.layer-toggle.active{background:#00e87a33;border-color:var(--accent-green)}.layer-toggle:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;top:1px;left:1px;background:#555;transition:all .2s}.layer-toggle.active:after{left:calc(100% - 12px);background:var(--accent-green)}.layer-name{font-size:11px;color:var(--text-secondary);flex:1}.layer-item:hover .layer-name{color:var(--text-primary)}.scroll-area{overflow-y:auto;height:100%}.trend-up{color:var(--accent-green)}.trend-down{color:var(--accent-red)}.trend-stable{color:var(--text-muted)}.focal-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600;letter-spacing:.06em;margin:2px}.focal-critical{background:#ff333326;color:var(--severity-critical);border:1px solid rgba(255,51,51,.3)}.focal-high{background:#ff660026;color:var(--severity-high);border:1px solid rgba(255,102,0,.3)}.focal-medium{background:#f0a80026;color:var(--severity-medium);border:1px solid rgba(240,168,0,.3)}.brief-section{background:#111;border:1px solid var(--border);border-radius:2px;padding:10px 12px;border-left:3px solid currentColor}.brief-section-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}.brief-section-body{font-size:11px;color:var(--text-secondary);line-height:1.6}.data-gap-warning{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#f0a80014;border:1px solid rgba(240,168,0,.2);border-radius:2px;font-size:10px;color:var(--accent-amber);margin:6px 0}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.main-area,.split-layout{display:flex;flex:1;overflow:hidden}.map-area{flex:1;position:relative;overflow:hidden}.panel-columns{display:flex;width:960px;border-left:1px solid var(--border);overflow:hidden}.panel-column{flex:1;display:flex;flex-direction:column;gap:4px;overflow:hidden;border-right:1px solid var(--border)}.panel-column:last-child{border-right:none}.bottom-panel-row{display:flex;height:300px;border-top:1px solid var(--border);gap:4px;padding:4px;flex-shrink:0;overflow:hidden}.bottom-panel-row>*{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column}.bottom-panel-row .panel{flex:1;height:100%}.dashboard-grid>div{min-height:0;overflow:hidden}.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;overflow-y:auto;flex:1}.dashboard-grid .panel{min-height:300px}.dashboard-grid .panel-wide{grid-column:span 2}.dashboard-grid .panel-full{grid-column:span 4}.map-full{flex:1;position:relative;overflow:hidden}@media(max-width:768px){.panel-columns{display:none}.split-layout{flex-direction:column}.dashboard-grid{grid-template-columns:1fr}.dashboard-grid .panel-wide,.dashboard-grid .panel-full{grid-column:span 1}.bottom-panel-row{flex-direction:column;height:auto}.layer-sidebar{display:none}}.map-tooltip{position:absolute;background:#0f0f0ff2;border:1px solid var(--border);border-radius:2px;padding:8px 12px;font-size:11px;color:var(--text-primary);pointer-events:none;z-index:100;max-width:200px}.cmi-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background .1s}.cmi-row:hover{background:var(--bg-panel-hover)}.cmi-rank{font-size:10px;color:var(--text-muted);width:20px;text-align:right;flex-shrink:0}.cmi-name{font-size:11px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmi-score-val{font-size:11px;font-weight:700;width:28px;text-align:right;flex-shrink:0}.policy-card{padding:8px 10px;border:1px solid var(--border);border-radius:2px;margin-bottom:6px;border-left:3px solid currentColor}.policy-card-title{font-size:11px;margin-bottom:4px;line-height:1.4}.policy-card-meta{font-size:9px;color:var(--text-muted);display:flex;gap:8px;flex-wrap:wrap}.passport-row{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--border-subtle);font-size:11px}.passport-rank{color:var(--text-muted);width:24px;text-align:right;flex-shrink:0;font-size:10px}.passport-country{flex:1}.passport-vf{color:var(--accent-green);font-weight:700;width:36px;text-align:right;flex-shrink:0}.processing-item{padding:6px 0;border-bottom:1px solid var(--border-subtle)}.processing-header{display:flex;justify-content:space-between;margin-bottom:4px}.processing-label{font-size:10px;color:var(--text-secondary)}.processing-days{font-size:10px;font-weight:700}.border-alert{padding:7px 10px;border:1px solid var(--border);border-radius:2px;margin-bottom:5px;border-left:3px solid currentColor}.border-route{font-size:10px;font-weight:700;margin-bottom:3px}.border-desc{font-size:11px;color:var(--text-secondary)}.nav-logo{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.05em;color:var(--accent-green);text-decoration:none}.nav-logo span{color:var(--text-secondary);font-weight:400}.map-controls{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:4px;z-index:10}.map-control-btn{width:28px;height:28px;background:#0f0f0fe6;border:1px solid var(--border);border-radius:2px;color:var(--text-secondary);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;font-family:var(--font-mono)}.map-control-btn:hover{background:var(--bg-panel-hover);color:var(--text-primary)}.stats-row{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}.stat-item{display:flex;flex-direction:column;gap:2px}.stat-label{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.stat-value{font-size:16px;font-weight:700}.stat-sub{font-size:9px;color:var(--text-secondary)}.refresh-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px 4px;border-radius:2px;font-size:12px;display:flex;align-items:center;transition:color .15s}.refresh-btn:hover{color:var(--text-primary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:spin 1s linear infinite}.job-role-card{border-radius:2px;padding:8px 10px;margin-bottom:5px;border-left-width:3px;border-left-style:solid}.job-sector-bar{height:3px;border-radius:2px;transition:width .4s ease}.map-tooltip{white-space:pre-line}@keyframes hotspot-pulse{0%{transform:scale(1);opacity:.8}50%{transform:scale(1.4);opacity:.3}to{transform:scale(1);opacity:.8}}
