:root{--bg:#f4f1eb;--surface:#fffdf9;--surface-soft:#f8f6f1;--ink:#202b2a;--muted:#74807d;--line:#e6e1d8;--line-strong:#d7d0c4;--teal:#116b68;--teal-soft:#dff1ec;--coral:#e6795d;--coral-soft:#f9e4dc;--gold:#d8a84e;--blue:#6b88c7;--purple:#8c78b5;--shadow:0 20px 55px rgba(39,47,43,.08);--shadow-sm:0 7px 20px rgba(39,47,43,.06);--radius:20px;--radius2:14px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 88% -5%,#e5f0e9 0,transparent 29%),var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{font-size:.68rem;letter-spacing:.16em;color:var(--teal);font-weight:850;margin:0 0 8px}.primary,.ghost,.danger,.soft{border:0;border-radius:11px;padding:11px 15px;font-weight:800;transition:.18s ease}.primary{background:var(--teal);color:#fff;box-shadow:0 8px 18px rgba(17,107,104,.18)}.primary:hover{transform:translateY(-1px);background:#0d5a58}.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong)}.ghost:hover{border-color:var(--teal);color:var(--teal);background:#f6fbf8}.soft{background:var(--teal-soft);color:var(--teal);border:1px solid #c7e4da}.soft:hover{background:#cdebe1}.danger{background:var(--coral-soft);color:#ad4e3b;border:1px solid #efc6b9}.full{width:100%;display:flex;justify-content:space-between;align-items:center}.icon-btn{width:40px;height:40px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:11px;display:grid;place-items:center}.icon-btn:hover{border-color:var(--teal);color:var(--teal)}
.login-shell{min-height:100vh;display:grid;place-items:center;overflow:hidden;position:relative;padding:24px;background:linear-gradient(135deg,#edf4ef,#f5efe8)}.login-grid{position:absolute;inset:0;background-image:linear-gradient(#116b6809 1px,transparent 1px),linear-gradient(90deg,#116b6809 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,#000,transparent)}.login-card{position:relative;z-index:2;width:min(470px,100%);background:#fffdf9ed;backdrop-filter:blur(28px);border:1px solid #e2ddd4;border-radius:28px;padding:38px;box-shadow:var(--shadow)}.login-card h1{font-family:Georgia,serif;font-size:clamp(2rem,5vw,3.3rem);line-height:.98;margin:12px 0}.login-card small{display:block;color:var(--muted);margin-top:15px}.brand-mark{width:58px;height:58px;display:grid;place-items:center;border-radius:17px;background:var(--teal);color:#fff;font-weight:1000;box-shadow:0 12px 25px #116b6830}.brand-mark.small{width:40px;height:40px;border-radius:12px}.login-orb{position:absolute;border-radius:50%;opacity:.5;filter:blur(10px)}.login-orb.one{width:430px;height:430px;background:#b9dfd0;left:-120px;top:-110px}.login-orb.two{width:560px;height:560px;background:#f5d1bd;right:-210px;bottom:-260px}
.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#1d2928;color:#e7efeb;border-right:1px solid #31403d;padding:20px 14px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 27px}.brand strong,.brand small{display:block}.brand strong{font-family:Georgia,serif;font-size:1.08rem}.brand small{color:#9caca7;font-size:.7rem;margin-top:2px}nav{display:flex;flex-direction:column;gap:4px}nav p{font-size:.6rem;color:#80938e;letter-spacing:.16em;margin:18px 12px 6px;font-weight:900}nav button{display:flex;align-items:center;gap:10px;border:0;background:transparent;color:#a9bdb7;padding:11px 12px;border-radius:11px;text-align:left}nav button span{width:22px;text-align:center;color:#85a49d;font-size:1.05rem}nav button b{margin-left:auto;background:#314541;color:#bfe6d8;border-radius:20px;min-width:24px;padding:2px 7px;font-size:.7rem}nav button:hover,nav button.active{background:#2b3b39;color:#fff}nav button.active{box-shadow:inset 3px 0 #8ee0c1}nav button.active span{color:#8ee0c1}.sidebar-foot{margin-top:auto;border-top:1px solid #31403d;padding:14px 8px 0;display:flex;align-items:center;gap:8px;color:#a9bdb7;font-size:.8rem}.sidebar-foot button{margin-left:auto;border:0;background:transparent;color:#a9bdb7;font-size:1.2rem}.live-dot{width:8px;height:8px;border-radius:50%;background:#8ee0c1;box-shadow:0 0 13px #8ee0c1}
.main{min-width:0}.topbar{height:90px;display:flex;align-items:center;padding:0 34px;border-bottom:1px solid var(--line);background:#f8f6f1d9;backdrop-filter:blur(18px);position:sticky;top:0;z-index:20}.topbar h2{font-family:Georgia,serif;margin:0;font-size:1.55rem;font-weight:600}.top-actions{margin-left:auto;display:flex;align-items:center;gap:9px}.avatar{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:var(--coral-soft);color:#a9523e;font-weight:900;border:1px solid #efc6b9}.content{padding:28px 34px 58px;max-width:1600px;margin:auto}
.hero-strip{display:grid;grid-template-columns:1.35fr .65fr;gap:18px;margin-bottom:20px}.hero-card,.signal-card,.panel,.metric{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.hero-card{padding:30px;border-radius:var(--radius);background:linear-gradient(135deg,#e2f2eb,#fdfbf6 66%,#f8e6dc);position:relative;overflow:hidden;min-height:205px}.hero-card h1{font-family:Georgia,serif;font-size:clamp(1.9rem,3vw,3rem);line-height:1.02;margin:10px 0;max-width:650px;font-weight:600}.hero-card p{color:var(--muted);max-width:680px;line-height:1.6}.hero-glow{position:absolute;width:260px;height:260px;border-radius:50%;background:#8fd8b855;right:-48px;top:-90px}.workflow{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:25px}.workflow span{font-size:.7rem;text-align:center;padding:8px 5px;border:1px solid #cfe4da;border-radius:9px;color:var(--teal);background:#ffffff80}.signal-card{border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;justify-content:space-between}.signal{display:flex;gap:13px;align-items:center}.signal strong{font-size:1.65rem}.signal small{color:var(--muted);display:block;line-height:1.45}.status-orb{width:44px;height:44px;border-radius:50%;background:radial-gradient(circle,#8ee0c1 0 15%,#8ee0c155 16% 35%,#8ee0c111 36%);box-shadow:0 0 28px #8ee0c155}.cards{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:12px;margin:16px 0 20px}.metric{border-radius:16px;padding:18px;min-width:0}.metric small{color:var(--muted);display:block}.metric strong{display:block;font-size:1.85rem;margin:8px 0 3px}.metric em{font-size:.72rem;color:var(--teal);font-style:normal}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{border-radius:var(--radius);padding:20px;min-width:0}.panel-head{display:flex;align-items:center;gap:10px;margin-bottom:17px}.panel-head h3{margin:0;font-size:1.02rem}.panel-head .actions{margin-left:auto;display:flex;gap:8px}.panel-sub{color:var(--muted);margin:-8px 0 18px;font-size:.86rem}
.donut-wrap{display:flex;align-items:center;gap:30px;min-height:260px}.donut{width:190px;height:190px;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(var(--teal) 0 var(--pct,60%),#e8eee9 var(--pct,60%) 100%)}.donut:after{content:"";position:absolute;width:132px;height:132px;border-radius:50%;background:var(--surface)}.donut strong{position:relative;z-index:1;font-size:2rem}.donut-legend{display:grid;gap:12px}.legend-row{display:flex;align-items:center;gap:9px;color:var(--muted)}.legend-row b{color:var(--ink)}.dot{width:9px;height:9px;border-radius:50%;background:var(--teal)}.dot.dim{background:#c7d0cb}.bar-chart{display:grid;gap:13px;padding:12px 0}.bar-row{display:grid;grid-template-columns:120px 1fr 50px;gap:12px;align-items:center;font-size:.83rem}.bar-track{height:11px;background:#e9eeea;border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--teal),#8fd8b8);border-radius:999px;min-width:3px}.bar-row b{text-align:right}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.table{width:100%;border-collapse:collapse;min-width:760px}.table th,.table td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);font-size:.84rem;vertical-align:middle}.table th{font-size:.68rem;letter-spacing:.08em;color:var(--muted);background:var(--surface-soft);position:sticky;top:0}.table tr:hover td{background:#fbfaf6}.table td strong{display:block}.table td small{color:var(--muted)}.table-actions{display:flex;gap:7px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:#eef1ed;color:#63726c;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.badge.open,.badge.published{background:var(--teal-soft);color:var(--teal)}.badge.closed,.badge.trash{background:var(--coral-soft);color:#ad4e3b}.badge.draft,.badge.unknown{background:#f8eed2;color:#966c18}.badge.news{background:#e6edf8;color:#4b6595}.badge.job{background:#eee8f7;color:#66528f}.badge.bursary{background:var(--teal-soft);color:var(--teal)}.badge.other{background:#eef0f1;color:#687378}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.toolbar .search{min-width:240px;flex:1}.search,input,textarea,select{outline:none}.field{display:flex;flex-direction:column;gap:8px;color:#52615d;font-size:.82rem;font-weight:680}.field small{color:var(--muted);font-weight:450;line-height:1.4}.field input,.field textarea,.field select,.search{width:100%;background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);border-radius:11px;padding:12px 13px;transition:.15s}.field textarea{min-height:120px;resize:vertical;line-height:1.55}.field:focus-within{color:var(--teal)}.field input:focus,.field textarea:focus,.field select:focus,.search:focus{border-color:var(--teal);box-shadow:0 0 0 3px #116b6812}.field input:invalid:not(:placeholder-shown){border-color:#c77968}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field.wide,.wide{grid-column:1/-1}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:3px}.notice{border:1px solid #c7e4da;background:var(--teal-soft);color:#315e54;padding:13px 14px;border-radius:12px;font-size:.82rem;line-height:1.5}.error-box{border:1px solid #efc6b9;background:var(--coral-soft);color:#984d3e;padding:13px;border-radius:12px;margin-bottom:15px}.empty{padding:42px 20px;text-align:center;color:var(--muted)}
.modal{border:0;padding:0;background:transparent;width:min(1180px,calc(100vw - 24px));max-width:none;max-height:calc(100vh - 24px);color:var(--ink)}.modal::backdrop{background:#15211dcc;backdrop-filter:blur(9px)}.modal-box{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden;max-height:calc(100vh - 24px);display:flex;flex-direction:column}.modal-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;background:var(--surface-soft);position:sticky;top:0;z-index:10}.modal-head h3{margin:0;font-family:Georgia,serif;font-size:1.35rem}.modal-head .icon-btn{margin-left:auto}.modal #modalBody{padding:22px;overflow:auto}.type-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.type-card{border:1px solid var(--line);background:linear-gradient(145deg,#fffdf9,#f7f4ee);border-radius:16px;padding:20px;text-align:left;color:var(--ink);min-height:150px;transition:.18s}.type-card:hover{transform:translateY(-2px);border-color:#9bcdbb;background:#f4faf7}.type-card .type-icon{font-size:1.7rem}.type-card strong{display:block;font-size:1.03rem;margin:16px 0 6px}.type-card small{color:var(--muted);line-height:1.4}.editor-shell{display:grid;gap:18px}.editor-top{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;background:linear-gradient(135deg,#eef7f1,#fffaf5);border:1px solid var(--line);padding:16px;border-radius:16px}.editor-top .field{max-width:420px}.editor-section{border:1px solid var(--line);background:var(--surface);border-radius:16px;overflow:hidden}.editor-section-head{display:flex;gap:12px;align-items:center;padding:16px 17px;border-bottom:1px solid var(--line);background:var(--surface-soft)}.section-number{width:30px;height:30px;border-radius:9px;background:var(--teal-soft);display:grid;place-items:center;color:var(--teal);font-size:.78rem;font-weight:900}.editor-section-head h4{margin:0}.editor-section-head p{margin:2px 0 0;color:var(--muted);font-size:.75rem}.editor-section-body{padding:17px}.type-fields{background:linear-gradient(145deg,#f1f8f4,#fffaf4)}.repeat-list{display:grid;gap:11px}.repeat-row{border:1px solid var(--line);background:var(--surface-soft);border-radius:13px;padding:13px}.repeat-row-head{display:flex;align-items:center;gap:9px;margin-bottom:12px}.repeat-row-head strong{font-size:.82rem}.repeat-row-head .ghost,.repeat-row-head .danger{margin-left:auto;padding:7px 10px;font-size:.72rem}.mini-grid{display:grid;grid-template-columns:1fr 1.4fr auto;gap:10px;align-items:end}.topic-card{border:1px solid #cfe4da;background:#f3faf6;border-radius:15px;padding:15px}.topic-head{display:flex;gap:10px;align-items:center;margin-bottom:12px}.topic-key{display:inline-grid;place-items:center;width:42px;height:30px;border-radius:9px;background:var(--teal-soft);color:var(--teal);font-size:.74rem;font-weight:900}.topic-head .danger{margin-left:auto;padding:7px 10px}.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.chip{padding:5px 9px;background:#eef3ef;border:1px solid #d6e1da;border-radius:999px;color:#5d6d66;font-size:.72rem}.upload-zone{border:1px dashed #a9c6ba;background:#f5faf7;border-radius:14px;padding:16px;display:flex;gap:14px;align-items:center;min-height:94px}.upload-preview{width:72px;height:64px;border-radius:11px;background:#e7f1eb;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:.72rem}.upload-preview img{width:100%;height:100%;object-fit:cover}.upload-copy{flex:1}.upload-copy strong{display:block}.upload-copy small{color:var(--muted);display:block;margin:5px 0 8px}.doc-card,.relation-card{display:flex;gap:12px;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:11px}.doc-icon{width:38px;height:38px;border-radius:10px;background:var(--coral-soft);display:grid;place-items:center}.doc-card .grow,.relation-card .grow{flex:1;min-width:0}.doc-card strong,.relation-card strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-card small,.relation-card small{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-list{max-height:300px;overflow:auto;display:grid;gap:8px;border:1px solid var(--line);border-radius:13px;padding:9px;background:var(--surface-soft)}.pick-row{display:flex;gap:10px;align-items:center;padding:10px;border-radius:9px}.pick-row:hover{background:#eef6f1}.pick-row input{accent-color:var(--teal)}.pick-row label{flex:1;cursor:pointer}.pick-row small{color:var(--muted);display:block}.sticky-save{position:sticky;bottom:-22px;margin:0 -22px -22px;padding:14px 22px;background:#fffdf9e8;backdrop-filter:blur(16px);border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;z-index:8}
.source-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.source-card{border:1px solid var(--line);border-radius:15px;padding:15px;background:var(--surface);display:flex;gap:12px;align-items:start}.source-card .grow{flex:1}.source-card h4{margin:0 0 5px}.source-card p{margin:0;color:var(--muted);font-size:.8rem}.source-card .actions{display:flex;gap:7px;flex-wrap:wrap}.media-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.media-card{border:1px solid var(--line);background:var(--surface);border-radius:15px;overflow:hidden}.media-thumb{height:145px;background:#edf3ef;display:grid;place-items:center;color:#6e8e84}.media-thumb img{width:100%;height:100%;object-fit:cover}.media-info{padding:12px}.media-info strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-info small{color:var(--muted)}.audit-list{display:grid;gap:9px}.audit-item{border:1px solid var(--line);background:var(--surface);border-radius:13px;padding:12px 14px;display:flex;gap:12px}.audit-time{color:var(--muted);font-size:.75rem;min-width:150px}.audit-item strong{font-size:.84rem}.audit-item small{color:var(--muted);display:block;margin-top:3px}.toast{position:fixed;right:22px;bottom:22px;background:#1d2928;color:#fff;border:1px solid #45615a;border-radius:12px;padding:12px 15px;box-shadow:var(--shadow);z-index:1000;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;max-width:380px}.toast.show{opacity:1;transform:none}.toast.error{border-color:#c77968;background:#8c3f35}.mobile-only{display:none}
@media(max-width:1200px){.cards{grid-template-columns:repeat(3,1fr)}.media-grid{grid-template-columns:repeat(3,1fr)}.type-picker{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;transform:translateX(-105%);width:270px;transition:.22s}.sidebar.open{transform:none}.mobile-only{display:grid}.hero-strip,.grid2{grid-template-columns:1fr}.content{padding:20px 16px 45px}.topbar{padding:0 16px;height:78px}.form-grid{grid-template-columns:1fr}.field.wide,.wide{grid-column:auto}.source-grid{grid-template-columns:1fr}.media-grid{grid-template-columns:repeat(2,1fr)}.mini-grid{grid-template-columns:1fr}.editor-top{grid-template-columns:1fr}.workflow{grid-template-columns:1fr 1fr 1fr}.donut-wrap{flex-direction:column;align-items:flex-start}}@media(max-width:620px){.cards{grid-template-columns:1fr 1fr}.type-picker{grid-template-columns:1fr}.modal{width:100vw;max-height:100vh}.modal-box{border-radius:0;max-height:100vh;min-height:100vh}.modal #modalBody{padding:15px}.sticky-save{bottom:-15px;margin:0 -15px -15px;padding:12px 15px}.hide-small{display:none}.media-grid{grid-template-columns:1fr}.top-actions .primary{padding:10px 12px}.workflow{grid-template-columns:1fr 1fr}.bar-row{grid-template-columns:90px 1fr 40px}.login-card{padding:28px 22px}.topic-card,.editor-section-body{padding:13px}}
.import-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px 24px;margin-bottom:16px;border:1px solid #cfe4da;border-radius:18px;background:radial-gradient(circle at 15% 15%,#8fd8b833,transparent 35%),linear-gradient(135deg,#e8f5ef,#fffaf3);box-shadow:var(--shadow-sm)}.import-hero h2{margin:3px 0 7px;font-family:Georgia,serif;font-size:1.45rem}.import-hero p:not(.eyebrow){margin:0;color:var(--muted);max-width:760px;line-height:1.55}.import-stats{grid-template-columns:repeat(5,1fr)}.import-card{position:relative;overflow:hidden}.import-card.changed-source{border-color:#d8b870;box-shadow:inset 3px 0 #d8a84e}.import-badges{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.import-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:9px;color:#7b8983;font-size:.72rem}.quality-pill{font-size:.68rem;font-weight:800;border-radius:999px;padding:5px 8px;border:1px solid #c8d8ce;background:#f1f6f2;color:#638075}.quality-pill.q4,.quality-pill.q5{border-color:#a9d5c0;color:var(--teal)}.quality-pill.q3{border-color:#e1cf94;color:#9b761e}.quality-pill.q0,.quality-pill.q1,.quality-pill.q2{border-color:#e7b5aa;color:#b35642}.quality-note{display:block;color:#a17f45;margin-top:8px}.preview-check{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.preview-check input{margin-top:3px;accent-color:var(--teal)}.preview-check span{font-weight:700}.preview-check small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.sync-progress{display:flex;gap:12px;align-items:center;padding:13px;border:1px solid #c7e4da;background:#edf8f3;border-radius:13px}.sync-progress strong,.sync-progress small{display:block}.sync-progress small{color:var(--muted);margin-top:2px}.sync-spinner{width:24px;height:24px;border:3px solid #cfe4da;border-top-color:var(--teal);border-radius:50%;animation:tiSpin .8s linear infinite}@keyframes tiSpin{to{transform:rotate(360deg)}}@media(max-width:1200px){.import-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.import-hero{align-items:stretch;flex-direction:column}.import-hero .primary{width:100%}.import-stats{grid-template-columns:1fr 1fr}.import-meta{gap:7px}.source-card{flex-direction:column}.source-card .actions{width:100%}}

/* Theme control and chart polish */
.theme-toggle{display:inline-flex;align-items:center;gap:7px;padding:9px 11px}.theme-toggle>span:first-child{font-size:1.05rem;line-height:1}.theme-label{font-size:.76rem}.chart-panel{min-height:340px}.chart-panel .panel-head{align-items:flex-start}.chart-kicker{margin-left:auto;color:var(--muted);font-size:.72rem;font-weight:750;padding-top:3px}.chart-panel .bar-chart{padding-top:22px}.chart-panel .bar-row{grid-template-columns:128px 1fr 48px}.chart-panel .bar-fill{background:linear-gradient(90deg,var(--teal),#89cdb0);box-shadow:0 3px 9px #116b6826}.chart-panel .donut{box-shadow:0 12px 28px rgba(17,107,104,.1)}
html[data-theme="dark"]{--bg:#101817;--surface:#182322;--surface-soft:#1d2a28;--ink:#edf5f0;--muted:#9aaca5;--line:#2d403b;--line-strong:#41544e;--teal:#8ee0c1;--teal-soft:#193b34;--coral:#f39a80;--coral-soft:#472923;--gold:#e6be67;--blue:#91b0eb;--purple:#b7a3e1;--shadow:0 24px 70px rgba(0,0,0,.24);--shadow-sm:0 9px 26px rgba(0,0,0,.18);color-scheme:dark}
html[data-theme="dark"] body{background:radial-gradient(circle at 88% -5%,#1b3a35 0,transparent 29%),var(--bg)}html[data-theme="dark"] .topbar{background:#101817d9}html[data-theme="dark"] .hero-card{background:linear-gradient(135deg,#18372f,#182322 66%,#3a2925)}html[data-theme="dark"] .signal-card,html[data-theme="dark"] .panel,html[data-theme="dark"] .metric{background:var(--surface);border-color:var(--line)}html[data-theme="dark"] .ghost{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}html[data-theme="dark"] .ghost:hover{background:#22332f;border-color:var(--teal)}html[data-theme="dark"] .soft{background:var(--teal-soft);border-color:#2d6658;color:var(--teal)}html[data-theme="dark"] .avatar{background:var(--coral-soft);border-color:#744237;color:var(--coral)}html[data-theme="dark"] .donut{background:conic-gradient(var(--teal) 0 var(--pct,60%),#2c403b var(--pct,60%) 100%);box-shadow:0 12px 28px rgba(0,0,0,.2)}html[data-theme="dark"] .donut:after{background:var(--surface)}html[data-theme="dark"] .bar-track{background:#2b3d39}html[data-theme="dark"] .bar-fill{background:linear-gradient(90deg,var(--teal),#4d9c83);box-shadow:none}html[data-theme="dark"] .table-wrap{border-color:var(--line)}html[data-theme="dark"] .table th{background:var(--surface-soft);color:#a8bbb3}html[data-theme="dark"] .table tr:hover td{background:#20312e}html[data-theme="dark"] .field input,html[data-theme="dark"] .field textarea,html[data-theme="dark"] .field select,html[data-theme="dark"] .search{background:#111c1b;border-color:var(--line-strong);color:var(--ink)}html[data-theme="dark"] .field input:focus,html[data-theme="dark"] .field textarea:focus,html[data-theme="dark"] .field select:focus,html[data-theme="dark"] .search:focus{border-color:var(--teal);box-shadow:0 0 0 3px #8ee0c11c}html[data-theme="dark"] .modal-box{background:var(--surface);border-color:var(--line)}html[data-theme="dark"] .modal-head{background:var(--surface-soft);border-color:var(--line)}html[data-theme="dark"] .type-card,html[data-theme="dark"] .source-card,html[data-theme="dark"] .media-card,html[data-theme="dark"] .audit-item{background:#16211f;border-color:var(--line)}html[data-theme="dark"] .type-card:hover{background:#20332f;border-color:#4d9c83}html[data-theme="dark"] .editor-section,html[data-theme="dark"] .repeat-row{background:#16211f;border-color:var(--line)}html[data-theme="dark"] .editor-section-head{background:var(--surface-soft);border-color:var(--line)}html[data-theme="dark"] .type-fields{background:linear-gradient(145deg,#1b332e,#28231f)}html[data-theme="dark"] .topic-card{background:#17332c;border-color:#376a59}html[data-theme="dark"] .chip{background:#263934;border-color:#3b544b;color:#c3d6ce}html[data-theme="dark"] .upload-zone{background:#142320;border-color:#4a7565}html[data-theme="dark"] .upload-preview{background:#253a34;border-color:var(--line)}html[data-theme="dark"] .picker-list{background:#111c1b;border-color:var(--line)}html[data-theme="dark"] .pick-row:hover{background:#20332f}html[data-theme="dark"] .sticky-save{background:#182322e8;border-color:var(--line)}html[data-theme="dark"] .import-hero{background:radial-gradient(circle at 15% 15%,#8fd8b833,transparent 35%),linear-gradient(135deg,#19372f,#29231f);border-color:#376a59}html[data-theme="dark"] .notice{background:var(--teal-soft);border-color:#376a59;color:#c5eadb}html[data-theme="dark"] .error-box{background:var(--coral-soft);border-color:#744237;color:#ffc3b4}html[data-theme="dark"] .empty{color:#9aaca5}
@media(max-width:700px){.theme-label{display:none}.theme-toggle{padding:9px 10px}.chart-panel{min-height:0}.chart-panel .bar-row{grid-template-columns:100px 1fr 42px}}

/* Refined action system */
.ui-icon{width:17px;height:17px;display:block}.icon-action{width:36px;height:36px;padding:0;display:inline-grid;place-items:center;border-radius:10px;flex:0 0 auto}.icon-action.danger{color:#ad4e3b;background:var(--coral-soft);border:1px solid #efc6b9}.icon-action.danger:hover{color:#fff;background:#bd614b;border-color:#bd614b;transform:translateY(-1px);box-shadow:0 6px 14px #bd614b2b}.icon-action.soft{color:var(--teal);background:var(--teal-soft);border:1px solid #c7e4da}.icon-action.soft:hover{background:var(--teal);color:#fff;transform:translateY(-1px)}.icon-action:focus-visible{outline:3px solid #116b6830;outline-offset:2px}.table-actions,.source-card .actions{align-items:center}.table-actions .icon-action{margin-left:2px}.source-card .actions .icon-action{width:38px;height:38px}.repeat-row .mini-grid>.icon-action{margin-bottom:1px}.topic-head .icon-action{margin-left:auto}.doc-card .icon-action{margin-left:auto}.actions{display:flex;gap:8px;align-items:center}.primary,.ghost,.danger,.soft{letter-spacing:.005em}.primary{display:inline-flex;align-items:center;justify-content:center;gap:7px}.panel-head h3{letter-spacing:-.01em}.table td:last-child,.table th:last-child{text-align:right}.table td:last-child{width:112px}.table-actions{justify-content:flex-end}.table tr{transition:background .16s ease}.source-card,.media-card,.metric,.panel{transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease}.source-card:hover,.media-card:hover,.metric:hover{border-color:#bfd6cb;box-shadow:0 12px 28px rgba(39,47,43,.1);transform:translateY(-1px)}html[data-theme="dark"] .source-card:hover,html[data-theme="dark"] .media-card:hover,html[data-theme="dark"] .metric:hover{border-color:#4d7566;box-shadow:0 12px 28px rgba(0,0,0,.25)}html[data-theme="dark"] .icon-action.danger{color:#f5ab96;background:#472923;border-color:#744237}html[data-theme="dark"] .icon-action.danger:hover{color:#fff;background:#b65c49;border-color:#b65c49}html[data-theme="dark"] .icon-action.soft{color:var(--teal);background:var(--teal-soft);border-color:#376a59}
@media(max-width:700px){.icon-action{width:38px;height:38px}.table-actions{justify-content:flex-start}.table td:last-child{text-align:left}.source-card .actions{gap:8px}}

/* v0.3.1 recommendation editor */
.subsection-title{margin:0 0 10px;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.recommendation-title{margin-top:18px}
.recommendation-help{margin-top:12px}
.fetched-recommendations{display:grid;gap:8px;margin-top:8px}
.recommendation-link-row{border-left:3px solid var(--teal)}
html[data-theme="dark"] .recommendation-link-row{border-left-color:#66b89a}


/* Demand-aware editorial queue */
.demand-hero{background:linear-gradient(135deg,var(--surface),#fff7ef);border-color:#ecd8c8}
.priority-list{display:grid;gap:9px}
.priority-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.priority-row>div{min-width:0;display:grid;gap:3px}.priority-row strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.priority-row small{color:var(--muted)}
.priority-row.highest{border-color:#e8a28e;background:linear-gradient(90deg,#fff0ea,var(--surface));box-shadow:inset 4px 0 #e6795d}
.priority-row.high{border-color:#e8d19c;background:linear-gradient(90deg,#fff9e9,var(--surface));box-shadow:inset 4px 0 #d8a84e}
.priority-flag{display:inline-flex;width:max-content;align-items:center;border-radius:999px;padding:4px 8px;font-size:.62rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase;background:#e8ece9;color:#596662}
.highest .priority-flag,.priority-table-row.highest .priority-flag{background:#f9d8ce;color:#a94d37}
.high .priority-flag,.priority-table-row.high .priority-flag{background:#f6e8be;color:#8a671d}
.priority-table-row.highest td:first-child{box-shadow:inset 4px 0 #e6795d}.priority-table-row.high td:first-child{box-shadow:inset 4px 0 #d8a84e}
.priority-table-row small{display:block;max-width:440px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);margin-top:4px}
@media(max-width:760px){
  .priority-row{align-items:flex-start}.priority-row>b{font-size:.75rem}
  .priority-table-row .table-actions{min-width:150px}
}


/* v0.5.1 editor validation + guidance */
.field{position:relative}
.field-counter{display:block;margin-top:5px;font-size:.68rem;font-weight:750;color:var(--muted);text-align:right}
.field-counter.near-limit{color:#ad6f22}.field-counter.over-recommended{color:#8a671d}
.field.invalid input,.field.invalid textarea,.field.invalid select,[aria-invalid="true"]{border-color:#d85f46!important;box-shadow:0 0 0 3px rgba(216,95,70,.11)!important;background:#fff8f5}
.inline-field-error{display:block!important;color:#b94f3b!important;font-weight:800!important;margin-top:6px!important}
.error-box ul{margin:10px 0 0;padding-left:20px}.error-box li{margin:5px 0}.error-box p{margin:8px 0 0}
.tag-preview{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;min-height:28px;align-items:center}
.tag-preview .chip{display:inline-flex;gap:6px;align-items:center}.tag-preview .chip small{opacity:.65;font-size:.62rem}
.tag-preview .chip-error{background:#fde6df;color:#ad4e3b;border-color:#efb7a6}
.seo-preview-card{border:1px solid var(--line);background:linear-gradient(180deg,var(--surface),var(--surface-soft));border-radius:16px;padding:16px}
.seo-preview{display:grid;gap:5px}.seo-preview>small{color:#65836c}.seo-preview>strong{font-size:1.03rem;color:#3459a6;font-weight:750}.seo-preview>p{margin:0;color:var(--muted);line-height:1.45;max-width:75ch}
.editor-section:has(.field.invalid){border-color:#efc4b8;box-shadow:0 0 0 2px rgba(230,121,93,.06)}
@media(max-width:760px){
  .field-counter{text-align:left}
  .seo-preview-card{padding:13px}
}


/* v0.6 source intelligence + global content library */
.source-hub-hero,.library-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;padding:28px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,#e7f5ef,#fffdfa 62%,#f9e9df);box-shadow:var(--shadow-sm);margin-bottom:18px;overflow:hidden;position:relative}
.source-hub-hero:after,.library-hero:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-80px;top:-120px;background:#80d7ba33}
.source-hub-hero h1,.library-hero h2{font-family:Georgia,serif;margin:6px 0 8px;font-weight:600;line-height:1.02;font-size:clamp(1.75rem,3vw,2.65rem)}
.source-hub-hero p,.library-hero p{max-width:760px;color:var(--muted);line-height:1.55;margin:0}
.seed-stat{min-width:180px;padding:17px 19px;border-radius:18px;background:#ffffffb8;border:1px solid #d7e7df;backdrop-filter:blur(8px);z-index:1}
.seed-stat small,.seed-stat span{display:block;color:var(--muted)}.seed-stat strong{display:block;font-size:2.25rem;line-height:1;margin:7px 0;color:var(--teal)}
.source-hub-panel,.global-harvest-panel{margin-top:16px}.source-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.source-hub-card{border:1px solid var(--line);border-radius:18px;padding:17px;background:linear-gradient(180deg,var(--surface),var(--surface-soft));display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:start;position:relative;overflow:hidden}
.source-hub-card:before{content:"";position:absolute;inset:auto -25px -55px auto;width:130px;height:130px;border-radius:50%;background:#8ee0c11c}
.source-logo{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--teal);color:white;font-weight:950;letter-spacing:.04em;box-shadow:0 8px 20px #116b6824}
.source-hub-card h3{margin:5px 0 5px;font-size:1.05rem}.source-hub-card p{color:var(--muted);font-size:.82rem;line-height:1.48;margin:0 0 11px}
.source-state{display:inline-flex;font-size:.62rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
.source-capabilities{display:flex;flex-wrap:wrap;gap:5px}.source-capabilities span{font-size:.64rem;border:1px solid var(--line);border-radius:999px;padding:4px 7px;background:var(--surface)}
.source-hub-card>.primary{grid-column:1/-1;width:100%;z-index:1}
.harvest-form{display:grid;gap:16px}.harvest-target{display:grid;grid-template-columns:minmax(160px,260px) minmax(160px,260px);gap:12px}
.provider-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.provider-option{display:flex;gap:10px;align-items:flex-start;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft);cursor:pointer;transition:.18s}
.provider-option:hover{transform:translateY(-1px);border-color:#b7d9ca}.provider-option input{margin-top:3px}.provider-option strong,.provider-option small{display:block}.provider-option small{color:var(--muted);font-size:.7rem;margin-top:3px}
.harvest-actions{display:flex;gap:8px;align-items:center}.harvest-result{display:flex;gap:12px;align-items:center;border:1px solid #cde4d9;background:#edf8f3;border-radius:14px;padding:13px 15px}.harvest-result small{display:block;color:var(--muted);margin-top:3px}
.filter-deck{display:grid;grid-template-columns:2fr repeat(6,minmax(130px,1fr)) auto;gap:9px;align-items:end;padding:13px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm);margin-bottom:16px}
.filter-deck label{min-width:0}.filter-deck label>span{display:block;font-size:.62rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:0 0 5px 5px}.filter-deck .search{width:100%;min-width:0}.filter-clear{height:42px}
.content-table td{vertical-align:top}.content-table td:first-child{min-width:260px}.mini-tags{margin-top:6px;display:flex;gap:4px;flex-wrap:wrap}.country-pill{display:inline-flex;border-radius:999px;padding:5px 8px;background:#e9f4ef;color:var(--teal);font-size:.68rem;font-weight:900}.source-name{display:block;max-width:175px;font-size:.72rem;color:var(--muted);white-space:normal;line-height:1.3}
[data-theme="dark"] .source-hub-hero,[data-theme="dark"] .library-hero{background:linear-gradient(135deg,#173c35,#202927 62%,#3c2b25)}
[data-theme="dark"] .seed-stat{background:#16211fbb;border-color:#314b45}
[data-theme="dark"] .source-logo{background:#3b9c86}
[data-theme="dark"] .harvest-result{background:#17372f;border-color:#31594e}
[data-theme="dark"] .country-pill{background:#1d4037;color:#a7e3cf}
@media(max-width:1180px){
  .source-hub-grid{grid-template-columns:1fr 1fr}.provider-grid{grid-template-columns:1fr 1fr}
  .filter-deck{grid-template-columns:repeat(3,minmax(0,1fr))}
  .filter-deck label:first-child{grid-column:span 2}
}
@media(max-width:760px){
  .source-hub-hero,.library-hero{align-items:stretch;flex-direction:column;padding:20px}.seed-stat{min-width:0}
  .source-hub-grid,.provider-grid,.harvest-target,.filter-deck{grid-template-columns:1fr}
  .filter-deck label:first-child{grid-column:auto}.harvest-actions{align-items:stretch;flex-direction:column}.harvest-actions button{width:100%}
  .source-hub-card{grid-template-columns:auto 1fr}.source-hub-card>.primary{grid-column:1/-1}
}


/* Source Hub v2 */
.source-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(110px,1fr));gap:10px;min-width:min(420px,100%)}
.source-summary-grid>div{padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.source-summary-grid small{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.source-summary-grid strong{display:block;font-size:1.65rem;margin-top:3px}
.source-toolbar{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(180px,.8fr) minmax(180px,.8fr);gap:10px;margin:16px 0}
.source-category{margin-bottom:16px}
.source-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.source-catalog-card{display:grid;gap:13px;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface-soft)}
.source-card-top{display:flex;gap:12px;align-items:flex-start}
.source-card-labels{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.source-status,.source-mode{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:.63rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}
.source-status{background:#e9ecea;color:#56635f}.source-status.active{background:#dff3e7;color:#1f7443}.source-status.discovery{background:#e8eef9;color:#3b5f98}.source-status.credentials_required,.source-status.licence_required{background:#f8e9cc;color:#8a661a}
.source-mode{background:var(--surface);border:1px solid var(--line);color:var(--muted)}
.source-catalog-card h3{margin:0 0 5px}.source-catalog-card p{margin:0;color:var(--muted);line-height:1.45}
.source-meta,.source-stats,.source-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.source-meta span,.source-stats span{font-size:.72rem;color:var(--muted);padding:5px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--line)}
.source-stats b{color:var(--text)}
.source-actions{margin-top:auto}
.source-home{text-decoration:none;display:inline-flex;align-items:center}
.role-badge{font-size:.72rem;font-weight:850;padding:6px 9px;border-radius:999px;border:1px solid var(--line);background:var(--surface-soft);color:var(--muted)}
.team-hero{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,var(--surface),var(--surface-soft));margin-bottom:16px}
.team-hero h2{margin:3px 0 6px}.team-hero p{margin:0;color:var(--muted);max-width:760px}
.team-table td strong+small{display:block;margin-top:4px;color:var(--muted)}
@media(max-width:900px){
  .source-catalog-grid{grid-template-columns:1fr}
  .source-toolbar{grid-template-columns:1fr}
  .source-summary-grid{min-width:0;width:100%}
}
@media(max-width:640px){
  .source-summary-grid{grid-template-columns:1fr 1fr}
  .team-hero{align-items:flex-start;flex-direction:column}
  .role-badge{display:none}
}


/* v0.8 traffic atlas + batch controls */
.traffic-panel{margin-bottom:16px}
.traffic-atlas{display:grid;gap:14px}
.traffic-map{position:relative;aspect-ratio:960/430;min-height:280px;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#eef5f3,#f8f5ee)}
.traffic-map svg{position:absolute;inset:0;width:100%;height:100%}
.traffic-map svg path{fill:#dce8e3;stroke:#c6d6cf;stroke-width:2}
.traffic-dot{position:absolute;transform:translate(-50%,-50%);border:2px solid #fff;background:var(--teal);color:#fff;border-radius:50%;display:grid;place-items:center;box-shadow:0 5px 16px rgba(17,107,104,.24);padding:0;transition:.16s;z-index:2}
.traffic-dot:hover,.traffic-dot:focus{transform:translate(-50%,-50%) scale(1.16);outline:3px solid #116b6822;z-index:3}
.traffic-dot span{font-size:.55rem;font-weight:900;line-height:1}
.continent-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.continent-card{border:1px solid var(--line);border-radius:13px;background:var(--surface-soft);padding:11px 12px;text-align:left;color:var(--ink)}
.continent-card:hover{border-color:var(--teal);background:#f2faf6}
.continent-card strong,.continent-card span{display:block}.continent-card span{margin-top:3px;color:var(--muted);font-size:.72rem}
.traffic-detail{border:1px solid #c7e4da;border-radius:13px;background:var(--teal-soft);padding:13px 15px;color:#315e54;min-height:54px}
.traffic-detail strong,.traffic-detail span{display:block}.traffic-detail span{margin-top:5px;font-size:.8rem;line-height:1.45}
.import-hero>.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){.continent-strip{grid-template-columns:1fr 1fr}.traffic-map{min-height:220px}}
@media(max-width:520px){.continent-strip{grid-template-columns:1fr}.traffic-map{min-height:190px}.traffic-dot span{font-size:.48rem}}


/* v0.8.1 source usage policy */
.source-policy{display:grid;gap:4px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.source-policy strong{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--teal)}
.source-policy span{font-size:.76rem;line-height:1.45;color:var(--muted)}


/* v0.8.2 legacy source diagnostics */
.source-health-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}
.source-health-panel{display:grid;gap:8px;margin:0 0 16px}.source-health-panel.hidden{display:none}
.source-health-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.source-health-row>div{min-width:0}.source-health-row strong,.source-health-row small{display:block}.source-health-row small{max-width:720px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.source-health-row>span{font-size:.75rem;font-weight:850;white-space:nowrap}.source-health-row.ok{border-color:#bcdcca}.source-health-row.ok>span{color:#26724a}.source-health-row.bad{border-color:#e6c1b7;background:#fff8f5}.source-health-row.bad>span{color:#a34e39}
