/* Portal notices use restrained semantic surfaces, never a light banner in dark mode. */
.portal-notice{--notice-bg:#eaf3ff;--notice-fg:#164979;--notice-border:#b8d3f0;display:flex;align-items:flex-start;gap:16px;padding:20px 24px;margin:20px 0;background:var(--notice-bg);color:var(--notice-fg);border:1px solid var(--notice-border);border-radius:12px;text-align:left;min-width:0}
.portal-notice--success{--notice-bg:#e9f5ed;--notice-fg:#1b5733;--notice-border:#b5d9c1}
.portal-notice--warning{--notice-bg:#fff5df;--notice-fg:#704600;--notice-border:#e9cf98}
.portal-notice--urgent{--notice-bg:#ffedef;--notice-fg:#922b3c;--notice-border:#ebbdc5}
.portal-notice>svg{width:24px;height:24px;flex:0 0 24px;margin-top:2px}
.portal-notice-content{min-width:0;flex:1;overflow-wrap:anywhere}
.portal-notice .portal-notice-type{font-size:13px;font-weight:600;line-height:1.5;margin:0 0 6px;color:inherit}
.portal-notice h2{font-size:18px;font-weight:600;letter-spacing:-.015em;line-height:1.4;margin:0 0 8px;color:inherit}
.portal-notice .portal-notice-message{font-size:15px;line-height:1.6;white-space:pre-wrap;margin:0;color:inherit}
.portal-notice .portal-notice-expiry{font-size:13px;line-height:1.5;margin:12px 0 0;color:inherit}
.portal-banner-modal .drawer.dialog{width:min(800px,calc(100vw - 48px));height:auto;max-height:90dvh}
.portal-banner-editor{display:flex;flex-direction:column;min-height:0;overflow:hidden;flex:1}
.portal-banner-editor .drawer-body{display:flex;flex-direction:column;gap:20px;min-height:0;overflow-y:auto;padding:24px}
.portal-banner-editor .field{font-size:14px;line-height:1.5;gap:8px;margin:0}
.portal-banner-editor input,.portal-banner-editor textarea,.portal-banner-editor select{font:inherit;min-height:44px;width:100%;padding:11px 12px}
.portal-banner-editor textarea{resize:vertical;line-height:1.6;min-height:140px}
.portal-banner-fields{display:grid;grid-template-columns:1fr 1.4fr;gap:20px}
.portal-banner-help,.portal-banner-state{font-size:13px;line-height:1.6;color:var(--muted);margin:0}
.portal-banner-preview h3{font-size:15px;font-weight:600;margin:0 0 12px}
.portal-banner-preview .portal-notice{margin:0}
.portal-banner-editor .drawer-footer{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:20px 24px;flex-shrink:0;border-top:1px solid var(--line)}
.portal-banner-editor [hidden]{display:none!important}
.portal-banner-footer-spacer{flex:1}
.portal-banner-editor [data-banner-error]:empty{display:none}
.portal-banner-entry{padding:20px 0;border-top:1px solid var(--border);margin-top:24px}
.portal-banner-entry h3{font-size:17px;margin:0 0 8px}
.portal-banner-entry p{font-size:14px;line-height:1.6}
html[data-theme="dark"] .portal-notice{--notice-bg:var(--label-blue-bg,#24364a);--notice-fg:var(--label-blue-fg,#91caff);--notice-border:#3d5876}
html[data-theme="dark"] .portal-notice--success{--notice-bg:var(--label-green-bg,#203b2d);--notice-fg:var(--label-green-fg,#81e1aa);--notice-border:#3b6750}
html[data-theme="dark"] .portal-notice--warning{--notice-bg:var(--label-amber-bg,#403522);--notice-fg:var(--label-amber-fg,#ffd17a);--notice-border:#77613b}
html[data-theme="dark"] .portal-notice--urgent{--notice-bg:var(--label-red-bg,#40282d);--notice-fg:var(--label-red-fg,#ffa1ab);--notice-border:#78454e}
@media(max-width:600px){.portal-notice{padding:16px;gap:12px}.portal-banner-fields{grid-template-columns:1fr}.portal-banner-editor .drawer-body{padding:20px}.portal-banner-editor .drawer-footer{padding:16px 20px}.portal-banner-footer-spacer{display:none}.portal-banner-editor .drawer-footer button{flex:1 1 auto}}
@media(prefers-contrast:more){.portal-notice{border-width:2px}}
@media(max-width:600px){.portal-banner-modal .drawer.dialog{width:100vw;max-height:100dvh;border-radius:0}}
