
:root {
  color-scheme: dark;
  --ink:#d6fae9;
  --ink-bright:#e8fff4;
  --mute:#a2c8b7;
  --line:#28503f;
  --bg:#0c1c15;
  --white:#122b20;
  --accent:#25b889;
  --accent-bright:#51ddb0;
  --accent-faint:#153d2c;
  --navy:#0a1812;
  --focus:#9cffda;
  --mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);font:15px/1.57 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}
a{color:var(--accent-bright);text-decoration-color:#438a71;text-underline-offset:3px}
a:hover{color:#b9ffe2;text-decoration-color:currentColor}
.shell{max-width:1250px;margin:auto;padding:0 26px}
header{position:relative;overflow:hidden;background:linear-gradient(115deg,#091911 0%,#0c2118 70%,#103326 100%);color:var(--ink-bright);padding:49px 0 47px;border-bottom:1px solid #216044}
header::after{content:"";pointer-events:none;position:absolute;right:-120px;top:-80px;width:600px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(31,178,121,.075),transparent 66%)}
header>.shell{position:relative;z-index:1}
.eyebrow{display:flex;align-items:center;gap:13px;font:700 12px/1.6 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}
.eyebrow::before{content:"";display:inline-block;width:12px;height:25px;border-radius:2px;background:var(--accent);box-shadow:0 0 20px #20b98422}
.heading{display:flex;justify-content:space-between;gap:20px;align-items:start}
.heading h1{font:700 clamp(35px,5vw,65px)/1.18 var(--mono);margin:16px 0 15px;letter-spacing:-.055em;color:var(--ink-bright)}
.heading h1 .h1-highlight{color:var(--accent)}
.heading p{margin:0;color:#b2dac8;max-width:675px;font-size:16px}
.period{background:#112a1f;padding:10px 14px;border:1px solid #317858;border-radius:7px;white-space:nowrap;font:600 12px/1.5 var(--mono);color:#c4f6df}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-top:30px}
.metric{padding:15px 17px;background:#10302180;border:1px solid #2e6650;border-radius:10px}
.metric strong{display:block;font:700 26px/1.25 var(--mono);color:var(--accent-bright)}
.metric span{display:block;font-size:12px;color:#a7cfbc}
.intro{display:flex;justify-content:space-between;gap:22px;align-items:center;margin:30px 0 21px}
.intro h2,.subhead h2{font-family:var(--mono);letter-spacing:-.035em}
.intro h2{font-size:23px;margin:0 0 7px;color:var(--ink-bright)}
.intro p{margin:0;color:var(--mute)}
.btn{cursor:pointer;border:1px solid #38775a;background:#142d22;border-radius:7px;padding:10px 13px;color:#d6fbe9;font:600 12px/1.4 var(--mono);transition:background .16s,border-color .16s,transform .16s}
.btn:hover{background:#1a4934;border-color:#55c392;color:var(--ink-bright)}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--accent);color:#082319;border-color:var(--accent);font-weight:800}
.btn.primary:hover{background:#48d9a7}
.toolbar{position:sticky;top:0;z-index:5;background:#0d2019f2;backdrop-filter:blur(15px);padding:13px 0;border-block:1px solid #286347}
.toolgrid{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(170px,1fr) minmax(140px,1fr) auto;gap:10px}
.input{width:100%;border-radius:7px;border:1px solid #376d55;background:#11291f;padding:12px 13px;color:var(--ink);font:inherit;font-size:14px}
.input::placeholder,.note-wrap textarea::placeholder{color:#8aa997;opacity:1}
.input:focus,.note-wrap textarea:focus{border-color:var(--accent-bright)}
select.input{color:var(--ink)}
.tabs{display:flex;gap:7px;margin-top:12px;flex-wrap:wrap}
.chip{cursor:pointer;border-radius:6px;border:1px solid #315c48;padding:8px 12px;font:600 12px/1.35 var(--mono);background:#132b20;color:#b6dbc8;transition:background .15s,border-color .15s}
.chip:hover{background:#204934;border-color:var(--accent)}
.chip.active{background:var(--accent);border-color:var(--accent);color:#081e14;font-weight:800}
.main{padding-top:29px;padding-bottom:72px}
.subhead{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:16px}
.subhead h2{margin:0;font-size:20px;color:var(--ink-bright)}
.count{color:var(--mute);font:12px var(--mono)}
.feed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.article{position:relative;background:linear-gradient(150deg,#132d22 0%,#10251c 100%);border:1px solid #305f49;border-radius:12px;padding:22px 22px 19px;box-shadow:0 5px 17px #030b081e;display:flex;flex-direction:column;gap:12px;min-width:0;transition:border-color .18s,box-shadow .18s}
.article::before{content:"";position:absolute;left:21px;right:21px;top:0;height:2px;background:linear-gradient(90deg,#22b789 0%,#14765c 42%,transparent 90%);opacity:.76}
.article:hover{border-color:#4d9975;box-shadow:0 10px 25px #020a0650}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:#9fc4b1;font:12px/1.45 var(--mono)}
.category{font-size:11px;display:inline-flex;padding:5px 9px;background:#1b5037;border:1px solid #387c59;border-radius:5px;color:#adf6d0;font-weight:750}
.article h3{font:700 19px/1.32 var(--mono);letter-spacing:-.025em;margin:0;color:var(--ink-bright)}
.article p{margin:0;color:#bad9c9;font-size:14px}
.impact{font-size:13px;border-top:1px solid #2a5741;padding-top:12px;color:#bfdfce}
.impact strong{color:var(--accent-bright)}
.source-quality{font-size:12px;color:#9ebba9}
.tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{font:11px/1.45 var(--mono);color:#b4d5bf;background:#193729;border:1px solid #28553b;padding:4px 8px;border-radius:5px}
.article-footer{margin-top:auto;padding-top:14px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.source{font:700 12px/1.45 var(--mono);color:var(--accent-bright);text-decoration:none}
.source:hover{text-decoration:underline}
.actions{display:flex;align-items:center;gap:6px}
.star{font-size:13px;line-height:1.2}
.star.is-fav{color:#071f14;background:var(--accent);border-color:var(--accent)}
.note-toggle{font-size:12px}
.note-wrap{display:none;border-top:1px solid #2a5741;padding-top:13px}
.note-wrap.open{display:block}
.note-wrap label{font:700 12px/1.5 var(--mono);color:#b5edd0;display:block;margin-bottom:8px}
.note-wrap textarea{width:100%;resize:vertical;min-height:84px;font:inherit;color:var(--ink);background:#0c2118;border:1px solid #386c53;border-radius:6px;padding:10px}
.note-wrap .note-info{font-size:11px;margin-top:5px;color:var(--mute)}
.empty{text-align:center;padding:70px 20px;border:1px dashed #3c7657;border-radius:10px;background:#112b20;color:var(--mute);grid-column:1 / -1}
footer{border-top:1px solid var(--line);padding:30px 0 55px;background:#091710;color:#a4c5b4;font-size:13px}
footer strong{color:#c8f4db}
footer p{max-width:940px}
.sep{height:1px;background:#22563b;margin:22px 0}
#storewarning{color:#ffca9b!important;background:#4c2b1d;border:1px solid #996240;border-radius:8px;padding:12px 14px}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
@media(max-width:830px){.feed{grid-template-columns:1fr}.toolgrid{grid-template-columns:1fr 1fr}.metrics{grid-template-columns:repeat(2,1fr)}.heading{display:block}.period{display:inline-block;margin-top:20px}.intro{display:block}.intro .tools{margin-top:15px}}
@media(max-width:480px){.shell{padding-inline:15px}.toolgrid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}header{padding-top:35px}.article{padding:18px}.heading h1{font-size:clamp(32px,9vw,45px)}.btn{padding:10px}.category{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}


/* API-driven portal additions – inherit the original green/black design. */
[hidden]{display:none!important}
.topline{display:flex;justify-content:space-between;gap:15px;align-items:center}
.account{font:12px var(--mono);color:var(--mute)}
.toolgrid{grid-template-columns:minmax(260px,2fr) repeat(3,minmax(135px,1fr))}
.intro .tools,.admin-panel .tools{display:flex;gap:8px;flex-wrap:wrap}
.panel{background:linear-gradient(150deg,#142e22,#10251c);border:1px solid #326249;border-radius:12px;padding:24px;margin:25px 0;color:var(--ink)}
.panel h2{font:700 22px var(--mono);margin:0 0 10px}
.panel p{color:#bddbcc}
.login-view{min-height:55vh}
.login-panel{max-width:420px;margin:45px auto}
.login-form{display:grid;gap:10px}
.login-form label{font:700 12px var(--mono);color:#bcf0d5}
.login-form input,.sources input[type=url]{width:100%;border:1px solid #376d55;background:#11291f;color:var(--ink);padding:12px;border-radius:6px;font:inherit}
.login-form button{margin-top:12px}
.error{color:#ffb5a7!important}
.filter-label{color:var(--mute);font:600 12px var(--mono);align-self:center}
.input.small{width:120px;padding:7px}
.weekly-summary{margin:0 0 30px}
.weekly-summary p{white-space:pre-wrap}
.more-wrap{display:flex;justify-content:center;margin:24px 0 15px}
.admin-panel{margin-top:55px}
.sources{display:grid;gap:9px;margin-top:20px}
.source-row{border:1px solid var(--line);border-radius:8px;padding:13px;background:#10291e;display:grid;grid-template-columns:minmax(145px,1fr) minmax(220px,2fr) auto;gap:10px;align-items:center}
.source-row b{font:700 13px var(--mono)}
.source-row small{display:block;color:var(--mute);overflow-wrap:anywhere}
.source-row .switch{display:flex;gap:7px;align-items:center;color:var(--ink)}
.source-row .buttons{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.source-row input[type=url]{min-width:0;font-size:12px}
.source-row .status-ok{color:#52dba5}.source-row .status-error{color:#ffb68e}
.more-wrap .btn{min-width:200px}
#jobs-output{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.7 var(--mono);color:#aee4ca}
#message{margin-bottom:14px;color:#aee4ca}
.state-line{font:11px var(--mono);color:var(--mute)}
.note-wrap.open{display:block}
.note-wrap .btn{margin-top:8px}
@media(max-width:1010px){.toolgrid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.source-row{grid-template-columns:1fr}.toolgrid{grid-template-columns:1fr}.heading h1{font-size:clamp(31px,9vw,55px)}.period{white-space:normal}.panel{padding:15px}}

/* KI RADAR 0.2: source multiselect, admin limits and ingestion metrics */
.sources-toolbar{display:flex;gap:12px;margin-top:12px;align-items:center}
.source-filter{position:relative;width:min(360px,100%);color:#d5f6e5}
.source-filter summary{cursor:pointer;list-style:none;border:1px solid #347255;background:#142e22;border-radius:7px;padding:10px 13px;font:600 12px var(--mono)}
.source-filter summary::-webkit-details-marker{display:none}
.source-filter summary::after{content:' ▾';float:right;color:var(--accent)}
.source-filter-panel{position:absolute;top:calc(100% + 6px);left:0;width:min(440px,calc(100vw - 36px));max-height:400px;overflow-y:auto;border:1px solid #418260;background:#102a1e;border-radius:9px;box-shadow:0 12px 30px #030d08bb;padding:14px;z-index:15}
.source-filter-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px;font:12px var(--mono)}
.source-options{display:grid;gap:3px}
.source-check{display:flex;align-items:center;gap:9px;padding:8px;border-radius:5px;cursor:pointer}
.source-check:hover{background:#1c4630}.source-check span{flex:1}.source-check small{color:var(--mute)}
.source-check input{accent-color:var(--accent)}
.ingestion-dashboard{margin:24px 0 28px;border:1px solid #326249;border-radius:10px;padding:18px;background:#0d2419}
.ingestion-dashboard h3,.admin-panel h3{font:700 17px var(--mono);margin:0 0 12px}
.stats-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}
.stats-metric{padding:12px;background:#173727;border:1px solid #285b40;border-radius:7px}
.stats-metric b{display:block;font:700 22px var(--mono);color:#56d6a5}
.stats-metric small{color:#abc9b7}
.stats-table-wrap{overflow-x:auto}
.stats-table{border-collapse:collapse;width:100%;font-size:12px}
.stats-table th,.stats-table td{border-bottom:1px solid #315a45;text-align:right;padding:9px 8px;white-space:nowrap}
.stats-table th:first-child,.stats-table td:first-child{text-align:left}
.stats-table th{color:#b6e1c7}.stats-table tr.stats-error{color:#ffb68e}
.source-row{grid-template-columns:minmax(165px,1fr) minmax(220px,2fr);align-items:start}
.source-row .source-settings{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.source-field{display:grid;gap:4px;color:var(--mute);font:11px var(--mono)}
.source-field input{width:100%;border:1px solid #376d55;border-radius:5px;background:#11291f;color:var(--ink);padding:9px}
.source-row .buttons{grid-column:1/-1;flex-wrap:wrap}
.source-row input[type=checkbox]{accent-color:var(--accent)}
@media(max-width:760px){.stats-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.source-row .source-settings{grid-template-columns:1fr}.source-row{grid-template-columns:1fr}}

/* 0.2.1: destructive administrative action */
.delete-article{border-color:#935b59!important;color:#ffd4ca!important;background:#371e22!important}
.delete-article:hover,.delete-article:focus-visible{background:#57262d!important}
.delete-article:disabled{opacity:.5;cursor:wait}

.build-version{font:600 12px/1.4 var(--mono);color:#6ce9b0;white-space:nowrap}

/* 0.3.1: feed/HTML mode and freshness statuses */
.source-row .source-settings{grid-template-columns:repeat(4,minmax(0,1fr))}
.source-field select{width:100%;background:#11291f;color:var(--ink);border:1px solid #376d55;border-radius:5px;padding:9px}
.source-row .status-stale,.source-row .status-warning{color:#f6c078}
.source-row .status-partial,.source-row .status-idle{color:#abc1a8}
@media(max-width:900px){.source-row .source-settings{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.source-row .source-settings{grid-template-columns:1fr}}
/* 0.3.2: automation and AI administration */
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.settings-grid>label,.ingestion-dashboard .tools>label{font:12px/1.6 var(--mono);color:#b5d6c2;display:grid;gap:6px}
.settings-grid .input,.ingestion-dashboard .tools .input{width:100%;min-width:0}
.settings-grid .switch{display:flex;align-items:center;gap:9px}
.settings-grid input[type=checkbox]{accent-color:var(--accent)}
.ingestion-dashboard .hint{font-size:12px;color:#a8cab8}
.weekly-links{margin-top:16px;border-top:1px solid #326249;padding-top:12px;font:12px/1.7 var(--mono)}
.weekly-links ul{margin:5px 0 0;padding-left:20px}
.weekly-links a{color:#78e6b2;overflow-wrap:anywhere}
.source-row .status-rate_limited{color:#ffc67a}
@media(max-width:700px){.settings-grid{grid-template-columns:1fr}}

/* 0.3.4: personal notes filter, account management and schedule monitoring */
.user-create-form{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:12px 0}
.user-create-form>label{display:grid;gap:6px;flex:1;min-width:180px;font:12px var(--mono);color:var(--mute)}
.user-row{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:12px 4px;border-bottom:1px solid #305c47}
.user-row .buttons{display:flex;flex-wrap:wrap;gap:7px}
.monitor-state{border:1px solid #315d49;padding:12px;border-radius:7px;margin-top:10px;font:13px/1.5 var(--mono)}
.monitor-warning{color:#ffd3a4;border-color:#a4773d;background:#32251c}
.monitor-ok{color:#b4efce;background:#12291f}
@media(max-width:700px){.user-row{align-items:start;flex-direction:column}}
