:root{--font-heading: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--ink: #1b2644;--ink-muted: #5a6b80;--surface: #f2f4f6;--surface-deep: #1b2644;--card: #ffffff;--card-raised: #eef1f4;--border: #dfe3e8;--accent: #e8834d;--accent-ink: #142643;--bar: #1b2644;--priority-a-bg: #d7ecd7;--priority-a-ink: #1e5c1e;--priority-c-bg: #e5e5e5;--priority-c-ink: #444444;color-scheme:light}*{box-sizing:border-box}body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--surface)}h1,h2,h3,h4{font-family:var(--font-heading)}button{font-family:inherit}.app-header{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;padding:12px 28px;background:var(--surface-deep);color:#fff}.app-header .logo{height:42px;display:block}.app-header .app-title{font-size:15px;color:#ffffffbf;flex:1}.main-nav{display:flex;gap:6px;margin-left:16px}.main-nav button{background:none;border:none;color:#fffc;font-size:13px;padding:8px 14px;border-radius:8px;cursor:pointer}.main-nav button:hover{color:#fff}.main-nav button.active{background:#ffffff1f;color:#fff;font-weight:500}.main-nav .caret{font-size:11px;opacity:.7}.nav-dropdown{position:relative}.dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #1426432e;min-width:220px;padding:8px 0;z-index:20;display:flex;flex-direction:column}.dropdown-heading{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);padding:6px 16px 8px}.dropdown-menu button{background:none;border:none;text-align:left;padding:9px 16px;font-size:13px;color:var(--ink);cursor:pointer;border-radius:0}.dropdown-menu button:hover{background:var(--card-raised)}.dropdown-menu button.active{background:var(--card-raised);color:var(--ink);font-weight:500}@media(max-width:640px){.app-header{padding:10px 14px;gap:10px 8px}.app-header .logo{height:34px}.header-spacer{order:1}.app-header .logo{order:0}.link-button{order:2}.main-nav{order:3;flex-basis:100%;margin-left:0;flex-wrap:wrap}.view-toggle{order:4}.main-nav button{padding:7px 12px}.view-toggle button{padding:7px 16px}main{padding:16px 14px 40px}.card{padding:16px}.dropdown-menu{min-width:200px}}.header-spacer{flex:1}.view-toggle{display:flex;background:#ffffff1f;border-radius:999px;padding:3px}.view-toggle button{border:none;background:none;color:#fffc;font-size:13px;padding:5px 14px;border-radius:999px;cursor:pointer}.view-toggle button.active{background:#fff;color:var(--ink);font-weight:500}.link-button{background:none;border:none;color:#fffc;font-size:13px;text-decoration:underline;cursor:pointer}.link-button:hover{color:#fff}.dummy-banner{background:var(--accent);color:var(--accent-ink);text-align:center;font-size:13px;font-weight:500;padding:6px 16px}.tabs{display:flex;gap:4px;padding:12px 28px 0;border-bottom:1px solid var(--border);background:var(--card)}.tabs button{border:1px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0;background:var(--surface);color:var(--ink-muted);padding:9px 18px;font-size:14px;cursor:pointer}.tabs button.active{background:var(--surface-deep);color:#fff;border-color:var(--surface-deep);font-weight:500}main{padding:24px 28px 48px;max-width:1240px;margin:0 auto}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px}.card h2{margin:0 0 4px;font-size:17px}.card .subtitle{margin:0 0 16px;font-size:13px;color:var(--ink-muted)}.stack{display:flex;flex-direction:column;gap:20px;max-width:900px;margin:0 auto}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--surface);padding:24px}.login-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:36px;width:420px;max-width:100%}.login-logo{height:64px;display:block;margin:0 auto 16px}.login-card h1{margin:0 0 2px;font-size:24px;letter-spacing:-.02em;text-align:center}.login-card>.subtitle{text-align:center}.login-card .subtitle{color:var(--ink-muted);font-size:14px;margin:0 0 24px}.login-card label{display:block;font-size:13px;font-weight:500;margin:16px 0 6px}.login-card input[type=password]{width:100%;padding:10px 12px;font-size:15px;border:1px solid var(--border);border-radius:8px;font-family:inherit;background:#fff;color:var(--ink)}.role-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.role-options button{border:1.5px solid var(--border);border-radius:10px;background:var(--surface);padding:12px;text-align:left;cursor:pointer;font-size:14px;color:var(--ink)}.role-options button.selected{border-color:var(--accent);background:#fdf0e6;font-weight:500}.role-options .role-hint{display:block;font-size:12px;color:var(--ink-muted);margin-top:4px;font-weight:400}.primary-button{width:100%;margin-top:24px;background:var(--surface-deep);color:#fff;border:none;border-radius:10px;padding:12px;font-size:15px;font-weight:700;cursor:pointer}.primary-button:hover:not(:disabled){background:#24325a}.primary-button:disabled{opacity:.5;cursor:default}.error-text{color:#a33131;font-size:13px;margin-top:12px}.matrix-tooltip{position:fixed;pointer-events:none;background:var(--surface-deep);color:#fff;border-radius:8px;padding:8px 12px;font-size:12.5px;line-height:1.5;z-index:10;max-width:240px}.subject-score{font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--ink-muted);margin-left:8px}.tile-grid{display:flex;flex-direction:column;gap:12px;margin-top:12px}.tile-split{display:grid;grid-template-columns:1.1fr 1fr;gap:16px;align-items:start}@media(max-width:700px){.tile-split{grid-template-columns:1fr}}.tile-bullets{margin:0;padding-left:18px;font-size:13.5px;line-height:1.6}.tile-bullets li+li{margin-top:4px}.param-tile{border:1px solid var(--border);border-radius:10px;background:var(--card);padding:14px;display:flex;flex-direction:column;gap:8px}.tile-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.tile-label{font-weight:600;font-size:14px}.tile-score{font-variant-numeric:tabular-nums;font-weight:700;font-size:15px;color:var(--ink);background:var(--card-raised);border-radius:6px;padding:2px 8px}.tile-score-input{width:52px;text-align:center}.tile-assessment{margin:0;font-size:13.5px;line-height:1.55;color:var(--ink)}.tile-meta{margin-top:auto}.mini-chart-title{font-size:12px;color:var(--ink-muted);margin-bottom:2px}.mini-chart-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-muted);font-variant-numeric:tabular-nums}.criterion-meta{font-size:12px;color:var(--ink-muted)}.tag{display:inline-block;border-radius:4px;padding:1px 6px;font-size:10.5px;font-weight:700;letter-spacing:.04em;vertical-align:1px;margin-left:6px}.tag.dummy{background:var(--accent);color:var(--accent-ink)}.tag.available{background:var(--priority-a-bg);color:var(--priority-a-ink);font-weight:500}.tag.tbd{background:var(--priority-c-bg);color:var(--priority-c-ink);font-weight:500}.weight-row{display:grid;grid-template-columns:1.5fr 1fr 44px;gap:10px;align-items:center;font-size:13px;padding:4px 0}.weight-row input[type=range]{accent-color:var(--accent);width:100%}.weight-value{font-variant-numeric:tabular-nums;text-align:right;color:var(--ink-muted)}.weight-actions{margin-top:12px;display:flex;justify-content:space-between;align-items:center}.secondary-button{background:var(--card);border:1px solid var(--border);border-radius:8px;color:var(--ink);padding:7px 14px;font-size:13px;cursor:pointer}.secondary-button:hover{background:var(--card-raised)}.subject-card{background:#f6f8fa}.overview-row{cursor:pointer}.overview-row:hover{background:var(--card-raised)}.overview-row.selected{background:var(--card-raised);outline:1px solid var(--accent);outline-offset:-1px}.country-overview .num{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap;text-align:right}.country-overview th:nth-child(2),.country-overview th:nth-child(3),.country-overview th:nth-child(4){width:130px;text-align:right}.scale{min-width:190px;max-width:240px}.scale-row{display:flex;align-items:center;gap:6px}.scale-num{font-size:11px;font-weight:700;color:var(--ink-muted);font-variant-numeric:tabular-nums}.scale-bar{flex:1;height:6px;border-radius:999px;background:linear-gradient(90deg,#d3dae3,var(--surface-deep))}.scale-labels{display:flex;justify-content:space-between;gap:8px;margin-top:4px}.scale-labels span{font-size:11px;line-height:1.3;color:var(--ink-muted);max-width:47%}.scale-labels span:last-child{text-align:right}.scale-input{width:48%;font-family:inherit;font-size:11px;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:5px;padding:3px 5px}.scale-input.right{text-align:right}.scale-input:focus,.scale-unit-input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.mode-select{font-family:inherit;font-size:12px;font-weight:600;color:#fff;background:var(--surface-deep);border:none;border-radius:6px;padding:5px 8px;cursor:pointer}.mode-select:hover{background:#24325a}.param-label-cell{display:flex;align-items:center;gap:6px}.param-label-input{flex:1;min-width:0;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:6px;padding:5px 7px}.param-desc-input{width:100%;font-family:inherit;font-size:13px;line-height:1.4;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:6px;padding:5px 7px;resize:vertical}.param-label-input:focus,.param-desc-input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.param-remove{flex:none;background:none;border:none;color:var(--ink-muted);cursor:pointer;font-size:16px;line-height:1;padding:0 2px}.param-remove:hover{color:#a33131}.add-parameter{display:flex;gap:8px;align-items:center;padding:4px 0}.add-parameter-input{flex:1;max-width:320px;font-family:inherit;font-size:13px;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:6px;padding:6px 8px}.add-parameter-input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.add-parameter-button{background:var(--surface-deep);color:#fff;border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer}.add-parameter-button:disabled{opacity:.5;cursor:default}.add-parameter-button:not(:disabled):hover{background:#24325a}.scale-values{display:flex;justify-content:space-between;gap:4px;margin-top:4px;font-size:10.5px;color:var(--ink-muted);font-variant-numeric:tabular-nums}.scale-quant-edit{display:flex;gap:6px;margin-top:4px}.scale-quant-edit .scale-input{width:auto;flex:1;min-width:0}.scale-unit-input{width:44px;font-family:inherit;font-size:11px;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:5px;padding:3px 5px}.map-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:13px}.legend-chip{display:inline-flex;align-items:center;gap:6px}.legend-chip .swatch{width:14px;height:14px;border-radius:4px;border:1px solid var(--border);display:inline-block}.class-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:700}.class-badge.core{background:#2f7d4a;color:#fff}.class-badge.watchlist{background:#cfe8d2;color:#1e5c1e}.class-badge.off_limits{background:#e5e5e5;color:#444}.country-list-item{display:flex;justify-content:space-between;align-items:center;width:100%;background:none;border:none;border-bottom:1px solid var(--border);padding:10px 8px;font-size:14px;color:var(--ink);cursor:pointer;text-align:left}.country-list-item:hover{background:var(--card-raised)}.country-list-item.selected{background:var(--card-raised);outline:1px solid var(--accent);outline-offset:-1px;border-radius:6px}.table-scroll{overflow-x:auto}.master-table{width:100%;border-collapse:collapse;font-size:13.5px}.master-table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap}.master-table td{padding:7px 8px;border-bottom:1px solid var(--border);vertical-align:top}.cell-input{width:58px;padding:5px 6px;font-size:13.5px;font-family:inherit;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:6px}.cell-input:focus{outline:2px solid var(--accent);border-color:var(--accent)}.field-label{display:block;font-size:13px;font-weight:500;margin:4px 0 6px}.country-select{font-family:inherit;font-size:14px;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:16px;min-width:220px}.assessment-field{margin-bottom:14px}.assessment-field label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}.assessment-input{width:100%;font-family:inherit;font-size:13.5px;line-height:1.5;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:8px;padding:8px 10px;resize:vertical}.assessment-input:focus{outline:2px solid var(--accent);border-color:var(--accent)}.sources-table .row-indent{width:20px;padding:0;border-bottom:none}.sources-table .group-row td{background:#1b26440f;border-top:1px solid var(--border);border-bottom:1px solid var(--border);border-left:3px solid var(--surface-deep);padding:9px 12px;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink);font-weight:700}.sources-table .group-row+tr td{padding-top:12px}.type-select{font-family:inherit;font-size:13px;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:6px;padding:5px 6px}.source-input{width:100%;min-width:180px;font-family:inherit;font-size:13px;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:6px;padding:5px 8px}.type-select:focus,.source-input:focus{outline:2px solid var(--accent);border-color:var(--accent)}.file-cell{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;white-space:nowrap}.file-link{background:none;border:none;padding:0;color:var(--ink);text-decoration:underline;cursor:pointer;font-size:13px;font-family:inherit;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-remove{background:none;border:none;color:var(--ink-muted);cursor:pointer;font-size:16px;line-height:1;padding:0 2px}.file-remove:hover{color:#a33131}.upload-button{display:inline-block;margin-left:auto;background:var(--surface-deep);color:#fff;border:none;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer}.upload-button:hover{background:#24325a}.placeholder-card{text-align:center;padding:64px 24px}.placeholder-card .todo{display:inline-block;background:var(--accent);color:var(--accent-ink);border-radius:6px;padding:2px 10px;font-size:12px;font-weight:700;margin-bottom:14px}.placeholder-card p{color:var(--ink-muted);max-width:480px;margin:8px auto 0}
