.news-dialog{width:min(680px,calc(100vw - 24px))}.news-dialog header{position:sticky;top:0;background:var(--bg1);z-index:2}.news-dialog input,.news-dialog textarea,.news-dialog select{box-sizing:border-box;width:100%;max-width:100%;font:inherit}.news-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.news-dialog .news-check{display:flex;align-items:center;gap:10px}.news-check input{width:22px;height:22px;accent-color:var(--accent)}.news-source,.news-post{border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0;overflow-wrap:anywhere}.news-body{white-space:pre-wrap}.news-help{margin:18px 0;font-size:13px;line-height:1.6}.news-help summary{cursor:pointer;font-weight:600}.news-confirm{padding:12px;margin-top:12px;border:1px solid var(--accent);border-radius:12px}.news-confirm[hidden]{display:none}.news-dialog [data-news-error]{color:var(--accent);white-space:pre-wrap}.news-dialog h3{font-size:17px}.news-dialog .btn{min-height:44px}
.news-dialog .news-check input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;flex:0 0 22px;width:22px;height:22px;padding:0;margin:0}.news-dialog .news-check{cursor:pointer;min-height:44px}.news-grid label{display:flex;flex-direction:column;justify-content:space-between}

.news-dialog [hidden]{display:none!important}#news-hub-content{min-width:0}.news-dialog label:has(select[name=format]){margin-top:18px}
.news-dialog a,#news-hub-content a{color:var(--accent);text-underline-offset:3px}

/* Same news form, embedded directly in the agent editor. */
.news-embedded{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.news-embedded>header{position:static;background:none;padding:0;margin:0 0 18px}
.news-embedded>header h2{margin:0 0 6px;font-size:22px}
.news-embedded .cx-dialog-body{padding:0;line-height:1.6}
.news-embedded form>label{display:block;margin-bottom:18px}
.news-embedded form>.news-check{display:flex}
.news-embedded form>button[type=submit]{display:none}
.news-embedded input,.news-embedded textarea,.news-embedded select{margin-top:6px}
@media(max-width:420px){.news-embedded .news-grid{gap:10px}.news-embedded .news-grid label{font-size:12px}}

.news-dialog [aria-invalid=true]{border-color:var(--bad);outline:2px solid var(--bad)}.news-review{width:min(580px,calc(100vw - 24px))}.news-review dl{margin:0}.news-review dt{color:var(--txt3);font-size:12px;margin-top:12px}.news-review dd{margin:3px 0 0;overflow-wrap:anywhere}.news-review-actions{display:grid;gap:10px;margin-top:18px}.news-review .btn{min-height:46px;white-space:normal}.news-review [data-review-status],.news-dialog [data-news-error]{white-space:pre-wrap;overflow-wrap:anywhere}.news-dialog [data-news-error]:empty{display:none}

.news-field-error{display:block;color:var(--bad);font-size:13px;margin-top:5px}

.news-review[open]{display:flex;flex-direction:column;overflow:hidden}.news-review>header,.news-review>footer{flex-shrink:0}.news-review .cx-dialog-body{overflow-y:auto;min-height:0}.news-review>footer{padding:12px 18px;background:var(--bg1);border-top:1px solid var(--line)}.news-review-actions{grid-template-columns:1fr 1fr;margin:0}.news-review [data-run],.news-review [data-done]{grid-column:1/-1}.news-review [data-review-status]{margin:0 0 12px;font-size:14px}.news-review [data-review-status]:empty{display:none}
.news-review>footer{display:block}.news-review-actions{width:100%}

/* Explicit field size prevents iOS focus zoom, including inside small labels. */
.news-dialog input,.news-dialog textarea,.news-dialog select{font-size:16px;min-width:0}
.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.news-grid>label{min-width:0}
dialog.news-dialog{max-height:calc(var(--visible-height,100dvh) - 24px);overscroll-behavior:contain;scroll-padding-top:80px}
.news-input-done{display:none}
dialog.news-dialog>header h2{min-width:0;flex:1}
@media(max-width:420px){dialog.news-dialog>header{gap:8px;padding:12px}dialog.news-dialog>header h2{font-size:17px}dialog.news-dialog>header .btn{padding:8px}}

/* Compact fields; validation changes value colour, never field geometry. */
.news-field{display:flex;flex-direction:column;min-width:0;width:100%;box-sizing:border-box;margin-top:6px;border:1px solid var(--line);border-radius:14px;background:var(--bg1);overflow:hidden}
.news-dialog .news-field>input,.news-dialog .news-field>textarea,.news-dialog .news-field>select{border:0;outline:0;box-shadow:none;border-radius:0;margin:0;padding:10px 12px;background:transparent;min-height:44px}
.news-field>.news-field-error{position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;pointer-events:none}
.news-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}

.news-dialog .news-field>[aria-invalid=true]{border:0;outline:0}

/* Native option pickers: compact rows and a persistent chevron, not text areas. */
.news-select-field{position:relative}
.news-dialog .news-field>select{min-height:48px;padding:12px 44px 12px 12px;cursor:pointer}
.news-select-field::after{content:"";position:absolute;right:17px;top:18px;width:8px;height:8px;border-right:2px solid var(--txt2);border-bottom:2px solid var(--txt2);transform:rotate(45deg);pointer-events:none}
.news-select-field>.news-field-error:empty{display:none}

/* Win over themed input/focus rules: only the wrapper owns the outline. */
body[data-theme] .news-dialog .news-field>:is(input,textarea,select):not([type=checkbox]){border:0;border-radius:0;outline:0;box-shadow:none;background:transparent}

body[data-theme] .news-dialog .news-field>[aria-invalid=true]{color:var(--bad);-webkit-text-fill-color:var(--bad)}

.news-maintenance{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.news-maintenance>.btn{flex:1 1 140px;white-space:normal;min-height:44px}

/* A short first screen; optional controls share the same form in native dialogs. */
.news-option-row{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:13px 14px;margin:0 0 12px;border:1px solid var(--line);border-radius:14px;background:var(--bg1);color:var(--txt);text-align:left;font:inherit;cursor:pointer;min-height:62px}
.news-option-row>span:first-child{min-width:0}.news-option-row b,.news-option-row small{display:block}.news-option-row b{font-size:15px;font-weight:600}.news-option-row small{font-size:12px;line-height:1.45;color:var(--txt3);margin-top:4px;overflow-wrap:anywhere}.news-option-row>span:last-child{font-size:26px;color:var(--txt3)}.news-option-row.has-error b{color:var(--bad)}
.news-dialog.news-options{width:min(480px,calc(100vw - 24px));max-height:calc(var(--visible-height,100dvh) - 24px)}.news-options[open]{display:flex;flex-direction:column;overflow:hidden}.news-dialog.news-options>header,.news-dialog.news-options>footer{flex-shrink:0;padding:14px 16px}.news-dialog.news-options .cx-dialog-body{padding:16px;overflow-y:auto;min-height:0}.news-dialog.news-options>footer{display:grid;gap:10px;border-bottom:0;border-top:1px solid var(--line)}.news-options>footer small{font-size:12px}.news-options label{display:block;margin-bottom:16px}.news-options .news-grid label{display:flex}.news-options .hint{font-size:12px;line-height:1.5;margin:4px 0 16px}.news-options .news-check{margin-bottom:8px}
.news-history{margin:20px 0 8px;border-top:1px solid var(--line);padding-top:16px}.news-history>summary{font-size:16px;font-weight:600;cursor:pointer;min-height:44px}.news-history>summary>small{display:block;font-size:12px;color:var(--txt3);font-weight:400;margin:4px 0 10px}.news-source-tools{margin-top:18px}.news-source-tools>summary,.news-post summary{cursor:pointer}.news-post summary h3{margin:6px 0;font-size:15px}.news-help{font-size:12px;margin:16px 0}.news-help p{color:var(--txt3)}
.news-dialog form[data-settings]>label{display:block;margin-bottom:16px}.news-dialog form[data-settings]>.news-check{display:flex}.news-dialog form[data-settings]>button[type=submit]{width:100%;margin-top:4px}

/* The hub shows an index; long publications live in a scrollable reader. */
.news-issue-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;color:var(--txt3);font-size:12px;line-height:1.45;font-weight:400}
.news-kind{display:inline-block;padding:3px 8px;border-radius:7px;background:var(--surface-soft);border:1px solid var(--line);color:var(--txt2);font-size:12px;font-weight:600;white-space:nowrap}
#news-hub-content .news-post-compact{padding:0;overflow:hidden}
.news-issue-open{position:relative;display:flex;flex-direction:column;gap:10px;text-align:left;width:100%;min-height:76px;padding:16px 42px 16px 16px;border:0;background:transparent;color:var(--txt);font:inherit;cursor:pointer}
.news-issue-open:focus-visible{outline:2px solid var(--accent);outline-offset:-3px;border-radius:13px}
.news-issue-open:hover{background:var(--surface-soft)}
.news-issue-title{font-size:16px;line-height:1.45;font-weight:600;overflow-wrap:anywhere}
.news-issue-chevron{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:26px;color:var(--txt3)}
body[data-theme] dialog.news-issue-dialog{width:min(620px,calc(100vw - 24px));overflow:hidden}
body[data-theme] dialog.news-issue-dialog>header{position:static;align-items:flex-start;gap:12px;padding:16px;border-bottom:1px solid var(--line)}
.news-issue-dialog>header>div{flex:1;min-width:0}
body[data-theme] dialog.news-issue-dialog>header h2{font-family:inherit;font-size:18px;line-height:1.4;text-shadow:none;margin:10px 0 0;overflow-wrap:anywhere}
.news-issue-dialog>header>.btn{flex:0 0 44px;padding:8px}
.news-issue-dialog .cx-dialog-body{padding:16px;line-height:1.65;overflow-wrap:anywhere}
.news-issue-dialog .news-body{margin-top:0;font-size:16px}
.news-issue-sources{margin-top:20px}.news-issue-sources summary{min-height:44px;cursor:pointer}
body[data-theme] dialog.news-issue-dialog>footer{display:flex;gap:10px;padding:12px 16px;border-top:1px solid var(--line)}
.news-issue-dialog>footer>.btn{flex:1;min-height:44px;white-space:normal;font-size:13px}
@media(max-height:500px){body[data-theme] dialog.news-issue-dialog>header h2{font-size:15px}body[data-theme] dialog.news-issue-dialog>header{padding:10px 12px}.news-issue-dialog>footer{padding:8px 12px}}

/* Compact news overview: one hierarchy, aligned counters and a single action. */
.news-overview{margin:12px 0 24px;padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface);min-width:0}
.news-overview>header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.news-overview h2{margin:0;font-family:inherit;font-size:17px;line-height:1.3}
.news-overview-status{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;font-size:12px;line-height:1.3;color:var(--txt2)}
.news-overview-status i{width:6px;height:6px;border-radius:50%;background:var(--txt3)}
.news-overview-status.is-on i{background:var(--accent)}
.news-overview>.news-overview-mode{font-size:13px;line-height:1.5;color:var(--txt2);margin:10px 0 4px}
.news-overview-source,.news-overview-sources{display:block;font-size:12px;line-height:1.5;color:var(--txt3);overflow-wrap:anywhere}
.news-overview-sources summary{cursor:pointer;min-height:28px;line-height:28px}.news-overview-sources summary>span{color:var(--accent);white-space:nowrap;margin-left:6px}.news-overview-sources>div{display:grid;gap:4px;padding:6px 0}
.news-overview-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:16px 0;gap:0;padding:12px 0;border-block:1px solid var(--line)}
.news-overview-counts>div{display:flex;align-items:baseline;justify-content:center;gap:8px;min-width:0}.news-overview-counts>div+div{border-left:1px solid var(--line)}
.news-overview-counts dd{order:0;margin:0;font-size:22px;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.3}.news-overview-counts dt{order:1;font-size:12px;color:var(--txt2)}
.news-overview>.btn{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;min-height:44px;font-size:13px;white-space:normal}
.news-overview>header h2{font-weight:600}
