:root{--accent:#cc4e01;--accent-dark:#a33e00;--bg:#f4f4f4;--surface:#fff;--border:#d9d9d9;--text:#333;--text-muted:#6b6b6b;--navbar-bg:#212529;--navbar-fg:#ffffffbf;--selected-bg:#28a7456e;--excluded-bg:#a9a9a999;--danger:#b02a37;--navbar-height:56px;--radius:6px;--shadow:0 1px 3px #0000001f}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.45}#root{min-height:100vh}button{font:inherit;cursor:pointer}a{color:var(--accent)}h1,h2,h3{color:#222;font-weight:600}.btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:6px 14px}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover:not(:disabled){background:var(--accent-dark);color:#fff}.btn-block{width:100%;display:block}.btn-sm{padding:2px 10px;font-size:13px}.ring{border:3px solid #cc4e0140;border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite spin;display:inline-block}.ring-sm{border-width:2px;width:14px;height:14px}@keyframes spin{to{transform:rotate(360deg)}}.app-splash{min-height:100vh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.navbar{z-index:100;min-height:var(--navbar-height);background:var(--navbar-bg);align-items:center;gap:12px;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}.navbar-brand{color:#fff;letter-spacing:.5px;font-size:20px;font-weight:700;text-decoration:none}.brand-ac{color:var(--accent)}.navbar-toggler{border-radius:var(--radius);background:0 0;border:1px solid #ffffff4d;margin-left:auto;padding:6px 8px;display:none}.toggler-bar{background:var(--navbar-fg);width:20px;height:2px;margin:4px 0;display:block}.navbar-collapse{flex:1;align-items:center;gap:12px;display:flex}.navbar-nav{flex-wrap:wrap;align-items:center;gap:2px;margin:0;padding:0;list-style:none;display:flex}.nav-link{color:var(--navbar-fg);border-radius:var(--radius);white-space:nowrap;padding:8px 12px;text-decoration:none;display:block}.nav-link:hover{color:#fff}.nav-link.Active{background:var(--accent);color:#fff}.navbar-icons{align-items:center;gap:4px;margin-left:auto;display:flex}.nav-icon{color:var(--navbar-fg);border-radius:var(--radius);background:0 0;border:none;padding:8px;display:inline-flex}.nav-icon:hover{color:#fff;background:#ffffff1a}@media (width<=991px){.navbar{flex-wrap:wrap}.navbar-toggler{display:block}.navbar-collapse{flex-direction:column;flex-basis:100%;align-items:stretch;padding-bottom:10px;display:none}.navbar-collapse.open{display:flex}.navbar-nav{flex-direction:column;align-items:stretch}.navbar-icons{justify-content:flex-start;margin-left:0}}.qlik-banner{top:var(--navbar-height);z-index:90;justify-content:center;align-items:center;gap:10px;padding:8px 16px;font-weight:600;display:flex;position:fixed;left:0;right:0}.qlik-banner-reconnecting{color:#664d03;background:#fff3cd;border-bottom:1px solid #ffe69c}.qlik-banner-error{color:#58151c;background:#f8d7da;border-bottom:1px solid #f1aeb5}.selections-bar{margin-top:var(--navbar-height);background:var(--surface);border-bottom:1px solid var(--border);grid-template-columns:220px 1fr auto;align-items:start;gap:12px;padding:8px 16px;display:grid}.dashboard{padding:16px;container:dashboard/inline-size}.dashboard-home{margin-top:var(--navbar-height)}.selections-yearterm .qlik-object{height:110px}.selections-list{max-height:110px;overflow-y:auto}.selections-empty{color:var(--text-muted);text-align:center;padding:8px;font-size:16px;font-weight:600}.selections-table{border-collapse:collapse;width:100%;font-size:13px}.selections-table td{border-bottom:1px solid var(--border);padding:4px 8px}.selections-table tr:nth-child(odd){background:#fafafa}.sel-field{white-space:nowrap;font-weight:600}.sel-values{word-break:break-word}.sel-clear button{color:var(--accent);background:0 0;border:none;padding:0 4px;font-size:16px;line-height:1}.selections-actions{flex-direction:column;align-items:stretch;gap:6px;display:flex}.selections-history{gap:6px;display:flex}.selections-history .btn{flex:1;padding:2px 10px;font-size:16px}@media (width<=767px){.selections-bar{grid-template-columns:1fr}.selections-yearterm{order:2}.selections-actions{flex-direction:row;order:3}}.kpi-row{grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:16px;display:grid}@container dashboard (width<=1100px){.kpi-row{grid-template-columns:repeat(3,1fr)}}@container dashboard (width<=640px){.kpi-row{grid-template-columns:repeat(2,1fr)}}.kpi-row .qlik-object{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.kpi-tile{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:4px;display:flex}.kpi-value{color:var(--accent);font-size:22px;font-weight:700;line-height:1.1}.kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.tile-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-bottom:16px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.tile-head{border-bottom:1px solid var(--border);background:#fbfbfb;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.tile-title{font-weight:600}.download-btn{color:var(--accent);border-radius:var(--radius);background:0 0;border:none;align-items:center;padding:4px;display:inline-flex}.download-btn:hover:not(:disabled){background:#cc4e011a}.download-btn:disabled{cursor:default}.filter-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px;display:grid}.filter-slot{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.filter-slot-button{box-shadow:none;background:0 0;border:none;align-items:flex-end;display:flex}.qlik-object{width:100%;position:relative;overflow:hidden}.qlik-embed-host,.qlik-embed-host>*{width:100%;height:100%;display:block}.qlik-loading{justify-content:center;align-items:center;height:100%;min-height:40px;padding:8px;display:flex}.qlik-error{color:var(--danger);overflow-wrap:anywhere;padding:10px;font-size:13px}.qlik-note{color:var(--text-muted);padding:10px;font-size:13px}.listbox{background:var(--surface);flex-direction:column;height:100%;display:flex}.listbox-title{padding:6px 8px 2px;font-weight:600}.listbox-search{border:1px solid var(--border);border-radius:var(--radius);font:inherit;margin:4px 8px;padding:4px 8px}.listbox-rows{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.listbox-rows li{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #f0f0f0;padding:3px 10px;overflow:hidden}.listbox-rows li:hover{background:#f2f2f2}.listbox-rows li.state-S,.listbox-rows li.state-L,.cube-table td.state-S{background:var(--selected-bg)}.listbox-rows li.state-X,.cube-table td.state-X{background:var(--excluded-bg);color:#555}.btn-more{border:none;border-top:1px solid var(--border);color:var(--accent);background:#fafafa;width:100%;padding:6px;font-size:12px}.cube-table-wrap{background:var(--surface);height:100%;overflow:auto}.cube-chart-note{color:var(--text-muted);border-bottom:1px solid var(--border);background:#fbfbfb;padding:4px 8px;font-size:11px}.cube-table{border-collapse:collapse;width:100%;font-size:12.5px}.cube-table th{text-align:left;border-bottom:2px solid var(--border);white-space:nowrap;background:#efefef;padding:5px 8px;position:sticky;top:0}.cube-table td{white-space:nowrap;border-bottom:1px solid #f0f0f0;padding:3px 8px}.cube-table td.cell-dim{cursor:pointer}.cube-table td.cell-dim:hover{outline:1px solid var(--accent)}.cube-table td.cell-measure{text-align:right}.qlik-action-button{background:var(--accent);border-radius:var(--radius);color:#fff;border:none;width:100%;height:100%;min-height:40px;font-weight:600}.qlik-action-button:hover:not(:disabled){background:var(--accent-dark)}.qlik-action-button:disabled{opacity:.6}.tabs-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}.tab-strip{border-bottom:2px solid var(--border);display:flex;overflow-x:auto}.tab{border:none;border-right:1px solid var(--border);min-width:130px;color:var(--text-muted);white-space:nowrap;background:#fbfbfb;flex:1;padding:10px 12px;font-weight:600}.tab:last-child{border-right:none}.tab:hover{color:var(--accent)}.tab-active{background:var(--surface);color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent)}.tab-head{justify-content:space-between;align-items:center;padding:8px 12px 0;display:flex}.tab-title{margin:0;font-size:16px}.tab-panel{padding:8px}.as-workflow{grid-template-columns:2fr 1fr;gap:12px;margin-bottom:16px;display:grid}@container dashboard (width<=800px){.as-workflow{grid-template-columns:1fr}}.as-steps{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px 16px}.as-steps h3{margin:4px 0 8px}.as-steps ol{margin:0;padding-left:20px}.as-steps li{margin-bottom:4px}.as-buttons{flex-direction:column;justify-content:center;gap:10px;display:flex}.adoption-header{grid-template-columns:3fr 1fr;align-items:start;gap:12px;display:grid}.adoption-header .kpi-row{grid-template-columns:repeat(3,1fr)}@container dashboard (width<=800px){.adoption-header{grid-template-columns:1fr}}.home-page{max-width:980px;margin:0 auto;padding:24px 8px}.home-lede{color:var(--text-muted);font-size:16px}.home-tips{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:16px;padding:16px 20px}.home-tip-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.home-tip-grid h3{color:var(--accent);margin:4px 0 6px}.home-support{border-top:1px solid var(--border);margin:16px 0 0;padding-top:12px}.powered-by-qlik{text-align:right;color:var(--text-muted);margin-top:24px;font-size:12px;font-style:italic}.login-page{background:linear-gradient(160deg,#2b2b2b 0%,#4a3120 100%);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--surface);border-radius:10px;width:100%;max-width:380px;padding:28px 32px;box-shadow:0 8px 30px #00000059}.login-card h1{text-align:center;margin:0;font-size:30px}.login-sub{text-align:center;color:var(--text-muted);margin-top:4px}.login-card form{flex-direction:column;gap:12px;margin-top:16px;display:flex}.login-card label{flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.login-card input[type=email],.login-card input[type=password]{border:1px solid var(--border);border-radius:var(--radius);font:inherit;padding:8px 10px}.login-remember{align-items:center;flex-direction:row!important;gap:8px!important;font-weight:400!important}.login-error{color:#58151c;border-radius:var(--radius);background:#f8d7da;border:1px solid #f1aeb5;padding:8px 10px;font-size:13px}.login-help{color:var(--text-muted);margin-top:16px;font-size:12px}.modal-overlay{z-index:200;background:#00000080;justify-content:center;align-items:flex-start;padding:5vh 16px 16px;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--bg);border-radius:8px;flex-direction:column;width:100%;max-width:1100px;max-height:88vh;display:flex;box-shadow:0 10px 40px #0006}.modal-header{border-bottom:1px solid var(--border);background:var(--surface);border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:12px 18px;display:flex}.modal-header h2{margin:0;font-size:18px}.modal-close{color:var(--text-muted);background:0 0;border:none;padding:0 6px;font-size:24px;line-height:1}.modal-close:hover{color:var(--accent)}.modal-body{padding:14px;overflow-y:auto}.modal-filter-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:14px;display:grid}.modal-filter{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.modal-filter .qlik-object{height:300px}.modal-filter-tall .qlik-object{height:420px}.modal-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.isbn-paste{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;padding:10px}.isbn-paste textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;font:inherit;resize:vertical;padding:8px}.isbn-paste-actions{align-items:center;gap:10px;margin-top:8px;display:flex}.isbn-paste-actions .qlik-object{width:auto;min-width:160px}.wildcard-help{margin-top:6px;font-size:12px;display:inline-block}.bookmark-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-height:45vh;margin:0 0 14px;padding:0;list-style:none;overflow-y:auto}.bookmark-list li{border-bottom:1px solid #f0f0f0;align-items:center;display:flex}.bookmark-apply{text-align:left;background:0 0;border:none;flex:1;padding:9px 12px}.bookmark-apply:hover{color:var(--accent);background:#f5f5f5}.bookmark-delete{color:var(--danger);background:0 0;border:none;padding:4px 12px;font-size:18px}.bookmark-empty{color:var(--text-muted)}.bookmark-create{gap:10px;display:flex}.bookmark-create input{border:1px solid var(--border);border-radius:var(--radius);font:inherit;flex:1;padding:8px 10px}.toast-container{z-index:300;flex-direction:column;gap:8px;width:min(480px,100vw - 32px);display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius);justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 14px;font-size:13px;animation:.25s ease-out toast-in;display:flex;box-shadow:0 4px 16px #00000040}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.toast-success{color:#0a3622;background:#d1e7dd;border:1px solid #a3cfbb}.toast-error{color:#58151c;background:#f8d7da;border:1px solid #f1aeb5}.toast-info{color:#052c65;background:#cfe2ff;border:1px solid #9ec5fe}.toast-close{color:inherit;background:0 0;border:none;padding:0;font-size:16px;line-height:1}
