/* Announcement composer and gallery, in the shared Serviq palette. */
.announcement-list{display:grid;gap:20px}.announcement-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:4px 0}.announcement-actions h2{margin:0 0 6px;font-size:17px;font-weight:600;letter-spacing:-.4px}.announcement-actions p{margin:0;color:var(--muted);font-size:12px}.announcement-actions>div:last-child{display:flex;gap:8px}.announcement-loading{padding:48px;text-align:center;color:var(--muted)}
.announcement-empty{display:flex;align-items:center;flex-direction:column;text-align:center;padding:54px 24px 48px;border:1px solid var(--line);border-radius:16px;background:radial-gradient(ellipse at 50% 0,var(--purple-soft),transparent 65%),var(--surface)}.announcement-empty-icon{display:grid;place-items:center;width:58px;height:58px;background:var(--surface);border:1px solid var(--line);border-radius:17px;color:var(--purple);box-shadow:0 5px 15px #00000006;margin-bottom:24px}.announcement-empty-icon svg{width:25px;height:25px}.announcement-empty h3{font-size:25px;letter-spacing:-.8px;font-weight:600;margin:12px 0}.announcement-empty p{color:var(--muted);font-size:13px;line-height:1.8;margin:0 0 24px}.announcement-empty>small{margin-top:14px;color:var(--muted);font-size:11px}
.announcement-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.announcement-card header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px}.announcement-card header>div:last-child{display:flex;align-items:center;gap:12px}.announcement-card-audience{display:flex;align-items:center;gap:12px;min-width:0}.announcement-card-audience>span:last-child{display:grid;gap:5px;min-width:0}.announcement-card-audience b{font-size:13px;font-weight:600;overflow-wrap:anywhere}.announcement-card-audience small{font-size:11px;color:var(--muted)}.announcement-scope-icon{display:grid;place-items:center;width:38px;height:38px;background:var(--raised);border:1px solid var(--line);border-radius:10px;color:var(--muted);flex-shrink:0}.announcement-scope-icon svg{width:17px;height:17px}.announcement-card-preview{padding:4px 24px 18px}.announcement-card-preview .serviq-announcement{margin:0!important}.announcement-card>footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 24px;color:var(--muted);font-size:11px;background:var(--raised);border-top:1px solid var(--line)}.announcement-card>footer span{display:flex;align-items:center;gap:6px}.announcement-card>footer svg{width:13px;height:13px}
.announcement-dialog{padding:0;width:min(1180px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);box-shadow:0 32px 120px #0006}.announcement-dialog::backdrop{background:#0b0b1680;backdrop-filter:blur(5px)}#announcement-editor{display:flex;flex-direction:column;max-height:calc(100dvh - 50px)}.announcement-editor-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;border-bottom:1px solid var(--line);flex-shrink:0}.announcement-editor-header h2{font-size:23px;font-weight:600;letter-spacing:-.7px;margin:7px 0 0}.announcement-close{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border:1px solid var(--line);border-radius:9px;background:var(--raised);color:var(--muted)}.announcement-close:hover{background:var(--purple-soft);color:var(--ink)}
.announcement-editor-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);align-items:start;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.announcement-editor-grid>*{min-width:0}.announcement-editor-sections{padding:28px;border-right:1px solid var(--line)}.announcement-section+.announcement-section{border-top:1px solid var(--line);margin-top:28px;padding-top:28px}.announcement-section-title{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px}.announcement-step{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:8px;font:500 10px 'DM Mono',monospace;color:var(--muted);background:var(--raised);flex-shrink:0}.announcement-section h3{margin:2px 0 5px;font-size:14px;letter-spacing:-.2px;font-weight:600}.announcement-section-title p{margin:0;font-size:12px;color:var(--muted);line-height:1.6}
.announcement-dialog label{display:flex;flex-direction:column;gap:8px;margin:16px 0 0;font-size:12px;font-weight:500;color:var(--label);min-width:0}.announcement-dialog label>small{color:var(--muted);font-size:10px;font-weight:400;margin-top:-4px}.announcement-dialog input,.announcement-dialog textarea,.announcement-dialog select{box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:40px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--input);color:var(--inputText);font:400 12px Inter,system-ui,sans-serif}.announcement-dialog input:focus,.announcement-dialog textarea:focus,.announcement-dialog select:focus{outline:0;border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-soft)}.announcement-dialog textarea{resize:vertical;line-height:1.7;min-height:104px}.announcement-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.announcement-field-note{display:flex;justify-content:space-between;gap:12px;font-size:10px;font-weight:400;color:var(--muted)}
.announcement-link,.announcement-spacing{margin-top:20px;border:1px solid var(--line);border-radius:9px;padding:0 12px}.announcement-link summary,.announcement-spacing summary{display:flex;align-items:center;gap:8px;list-style:none;padding:13px 0;font-size:12px;color:var(--muted);cursor:pointer}.announcement-link summary::-webkit-details-marker,.announcement-spacing summary::-webkit-details-marker{display:none}.announcement-link summary>span,.announcement-spacing summary svg{margin-left:auto}.announcement-link summary>span{font-size:10px}.announcement-link summary svg,.announcement-spacing summary svg{width:14px;height:14px}.announcement-spacing[open] summary svg{transform:rotate(180deg)}.announcement-link[open],.announcement-spacing[open]{padding-bottom:14px}.announcement-link .announcement-fields label,.announcement-spacing .announcement-fields label{margin-top:0}
.announcement-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.announcement-presets button{display:grid;gap:9px;border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:6px 6px 10px;color:var(--muted);font-size:10px}.announcement-presets button>span{display:grid;place-items:center;border:1px solid;height:35px;border-radius:5px;font-size:15px;font-weight:600}.announcement-presets button b{font-weight:500}.announcement-presets button[aria-pressed=true]{border-color:var(--purple);box-shadow:0 0 0 1px var(--purple);color:var(--purple)}.announcement-colors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0 3px}.announcement-color-control{display:flex;align-items:center;gap:7px;background:var(--input);border:1px solid var(--line);padding:7px;border-radius:8px;min-height:40px}.announcement-dialog input[type=color]{border:0;padding:0;border-radius:4px;width:23px;height:23px;min-height:0;flex-shrink:0;cursor:pointer;background:transparent}.announcement-dialog input[type=color]::-webkit-color-swatch-wrapper{padding:0}.announcement-dialog input[type=color]::-webkit-color-swatch{border:1px solid #0002;border-radius:4px}.announcement-color-control output{font:400 9px 'DM Mono',monospace;color:var(--muted)}.announcement-unit{position:relative}.announcement-unit input{padding-right:40px}.announcement-unit>span{position:absolute;right:25px;top:14px;font-size:10px;font-weight:400;color:var(--muted);pointer-events:none}
.announcement-format{display:flex;gap:8px;margin-top:14px}.announcement-format label{position:relative;margin:0;cursor:pointer}.announcement-format input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}.announcement-format span{border:1px solid var(--line);border-radius:8px;padding:8px 13px;color:var(--muted);background:var(--surface);font-size:11px}.announcement-format input:checked+span{color:var(--purple);background:var(--purple-soft);border-color:var(--purple)}.announcement-format input:focus-visible+span{outline:3px solid var(--purple);outline-offset:3px}.announcement-dialog .announcement-publish{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;padding:14px;background:var(--raised);border:1px solid var(--line);border-radius:10px}.announcement-publish>span{display:grid;gap:6px}.announcement-publish b{font-size:12px;font-weight:600;color:var(--ink)}.announcement-publish small{font-size:11px;font-weight:400;color:var(--muted)}.announcement-dialog .announcement-publish input{appearance:none;position:relative;width:36px;min-width:36px;min-height:20px;height:20px;padding:0;border:0;border-radius:99px;background:var(--line);cursor:pointer}.announcement-publish input:before{content:'';position:absolute;top:3px;left:3px;width:14px;height:14px;background:white;border-radius:50%;box-shadow:0 1px 3px #0002;transition:transform .15s}.announcement-dialog .announcement-publish input:checked{background:var(--button)}.announcement-publish input:checked:before{transform:translateX(16px)}.announcement-hint{display:flex;gap:9px;font-size:11px;line-height:1.7;color:var(--muted);margin:16px 0 0}.announcement-hint svg{width:14px;height:14px;flex-shrink:0;margin-top:2px}#announcement-confirm-label{padding:14px;background:var(--purple-soft);border:1px solid color-mix(in srgb,var(--purple) 25%,var(--line));border-radius:10px}
.announcement-preview-panel{position:sticky;top:0;padding:28px 24px}.announcement-preview-heading{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin-bottom:16px}.announcement-preview-heading>span:first-child{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:500;color:var(--ink)}.preview-live-dot{width:6px;height:6px;background:var(--green);border-radius:50%}#announcement-preview-status{border:1px solid var(--line);padding:4px 8px;border-radius:5px;font-size:10px}.announcement-preview-window{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--bg);box-shadow:0 8px 20px #00000008}.announcement-preview-chrome{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);background:var(--surface);padding:13px;color:var(--muted);font-size:9px}.announcement-preview-chrome>svg{width:11px;height:11px}.preview-window-dots{display:flex;gap:4px}.preview-window-dots i{width:5px;height:5px;border-radius:50%;background:var(--line)}.announcement-preview-canvas{padding:18px}.announcement-preview-context{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:9px;color:var(--muted);margin-bottom:18px}.announcement-preview-context>span:first-child{display:flex;align-items:center;gap:5px;min-width:0}.announcement-preview-context b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.announcement-preview-context svg{width:12px;height:12px;flex-shrink:0}.announcement-preview-skeleton{opacity:.65;margin-top:22px}.announcement-preview-skeleton>i{display:block;height:7px;width:95px;background:var(--line);border-radius:3px;margin-bottom:12px}.announcement-preview-skeleton>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.announcement-preview-skeleton span{height:53px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.announcement-preview-skeleton>b{display:block;height:17px;margin:6px 0;border-radius:4px;background:var(--surface);border:1px solid var(--line)}#announcement-contrast{font-size:11px;line-height:1.7;color:var(--muted);padding:0 4px}.announcement-preview-note{display:flex;align-items:flex-start;gap:10px;padding-top:16px;margin-top:18px;border-top:1px solid var(--line)}.announcement-preview-note svg{width:16px;height:16px;color:var(--muted);flex-shrink:0;margin-top:2px}.announcement-preview-note p{font-size:12px;line-height:1.6;margin:0}.announcement-preview-note small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.announcement-preview-color-note{font-size:10px;line-height:1.7;color:var(--muted);padding-left:26px}
.announcement-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 28px;border-top:1px solid var(--line);background:var(--surface);flex-shrink:0}.announcement-editor-footer>div:last-child{display:flex;gap:8px}.announcement-draft-note{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.announcement-draft-note svg{width:14px;height:14px}.announcement-delete{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--danger);padding:8px 0;font-size:11px}.announcement-delete svg{width:14px;height:14px}#announcement-error{color:var(--danger);font-size:12px;line-height:1.5;background:var(--surface);padding:0 28px 14px;margin:0;flex-shrink:0}#announcement-error:empty{display:none}
@media(max-width:1000px){.announcement-dialog{width:calc(100vw - 32px)}.announcement-editor-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.announcement-preview-panel{padding:24px 16px}.announcement-editor-sections{padding:24px}.announcement-colors{grid-template-columns:1fr}.announcement-colors label{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}.announcement-color-control{width:138px}.announcement-color-control output{font-size:10px}}
@media(max-width:760px){.announcement-actions{align-items:flex-start;flex-direction:column;gap:18px}.announcement-actions>div:last-child{align-self:stretch;justify-content:flex-end}.announcement-card header{padding:18px;align-items:flex-start;flex-direction:column}.announcement-card header>div:last-child{width:100%;justify-content:space-between}.announcement-card-preview{padding:0 18px 18px}.announcement-card>footer{padding:13px 18px;align-items:flex-start;flex-direction:column;gap:7px}.announcement-empty{padding:36px 20px}.announcement-empty h3{font-size:22px}.announcement-empty p br{display:none}.announcement-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:14px}#announcement-editor{max-height:calc(100dvh - 22px)}.announcement-editor-header{padding:18px}.announcement-editor-header h2{font-size:20px}.announcement-editor-grid{grid-template-columns:1fr}.announcement-editor-sections{padding:20px 18px;border-right:0}.announcement-preview-panel{position:static;grid-row:1;padding:20px 18px;background:var(--raised);border-bottom:1px solid var(--line)}.announcement-preview-skeleton,.announcement-preview-note,.announcement-preview-color-note,.announcement-preview-context{display:none}.announcement-preview-heading{margin-bottom:10px}.announcement-preview-canvas{padding:12px}.announcement-preview-canvas .serviq-announcement{margin-bottom:0!important}#announcement-contrast{margin-bottom:0}.announcement-dialog input,.announcement-dialog textarea,.announcement-dialog select{font-size:16px}.announcement-editor-footer{padding:14px 18px;gap:10px;flex-wrap:wrap}.announcement-editor-footer>div:last-child{margin-left:auto}.announcement-draft-note{display:none}.announcement-editor-footer .primary,.announcement-editor-footer .panel-button{padding-inline:12px;font-size:11px}.announcement-colors{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.announcement-colors label{flex-direction:column;align-items:stretch;gap:7px}.announcement-color-control{width:auto;gap:5px}.announcement-color-control output{font-size:8px}.announcement-dialog input[type=color]{width:20px;height:20px}.announcement-delete{font-size:10px}.announcement-fields{gap:0 10px}.announcement-unit>span{top:15px;right:28px}#announcement-error{padding:0 18px 14px}}
