:root{--brand: #510729;--brand-deep: #3a041d;--brand-soft: #f6e8ed;--cream: #fef1db;--leaf: #fe7b06;--leaf-deep: #b65204;--bg: #fbf6ee;--surface: #ffffff;--text: #2a2025;--text-muted: #6a5d61;--border: #ebe1d4;--border-strong: #8f8076;--accent: #d8640a;--disabled-bg: #eee7dc;--accent-strong: var(--brand);--accent-deep: var(--brand-deep);--accent-soft: var(--brand-soft);--accent-text: var(--brand);--bubble: #fbefdc;--focus: #a3195b;--success-text: #1d6b40;--danger-text: #a3271d;--success: #2f8f5b;--warning: #c99a06;--danger: #c4352b;--info: #2c6ecb;--radius: .625rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1.25rem;--space-5: 2rem;color-scheme:light}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent-strong)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:absolute;top:var(--space-2);left:var(--space-2);z-index:100;padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--text);color:#fff;transform:translateY(-200%)}.skip-link:focus{transform:none}h1{margin:0;font-size:1.625rem}h2{margin:0 0 var(--space-3);font-size:1.0625rem}.muted{color:var(--text-muted)}.hint{margin:var(--space-2) 0 0;color:var(--text-muted);font-size:.8125rem}.strong{font-weight:600}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.page-header p{margin:var(--space-1) 0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4)}.empty-state{text-align:center;padding:var(--space-5)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.5rem 1rem;min-height:2.75rem;border:1px solid var(--accent-strong);border-radius:var(--radius);background:var(--accent-strong);color:#fff;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.button:hover:not(:disabled,[aria-disabled=true]){background:var(--accent-deep);border-color:var(--accent-deep)}.button:disabled,.button[aria-disabled=true],.button.is-disabled{border-color:var(--border);background:var(--disabled-bg);color:var(--text-muted);cursor:not-allowed}.button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.button--ghost{background:var(--surface);color:var(--accent-strong)}.button--ghost:hover:not(:disabled,[aria-disabled=true]){background:var(--accent-soft);color:var(--accent-strong)}.alert{padding:var(--space-3);border-radius:var(--radius);margin:0 0 var(--space-4)}.alert--error{background:#fdecea;color:var(--danger);border:1px solid #f4c7c3}.badge{display:inline-block;padding:.125rem .5rem;border-radius:999px;font-size:.8125rem;font-weight:600;background:var(--border);color:var(--text)}.badge--generating,.badge--publishing{background:#e3edfb;color:#1d4f91}.badge--preview-ready{background:var(--accent-soft);color:var(--accent-strong)}.badge--published{background:#e2f3ea;color:var(--success-text)}.badge--failed{background:#fdecea;color:var(--danger)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border)}.table th{font-size:.8125rem;color:var(--text-muted);font-weight:600}.table tbody tr:last-child td{border-bottom:none}.table .num{text-align:right;font-variant-numeric:tabular-nums}.form{display:flex;flex-direction:column;gap:var(--space-4);max-width:44rem}.form__actions{display:flex;justify-content:flex-end}.field{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:0;border:0}.field label,.field legend{font-weight:600;padding:0;margin-bottom:var(--space-1)}.field__hint{margin:0;color:var(--text-muted);font-size:.875rem}.field__error{margin:0;color:var(--danger);font-size:.875rem}input[type=text],textarea,select{width:100%;padding:.5rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}input[type=text]:focus,textarea:focus,select:focus{outline:2px solid var(--focus);outline-offset:0;border-color:var(--focus)}input[type=text].ng-touched.ng-invalid,textarea.ng-touched.ng-invalid,select.ng-touched.ng-invalid{border-color:var(--danger)}textarea{resize:vertical}.input-suffix{display:flex;align-items:center;gap:var(--space-2)}.input-suffix input{flex:1;min-width:0}.input-suffix span{color:var(--text-muted)}.settings label{display:block;font-weight:600;margin-bottom:var(--space-1)}.badge--draft{background:#efe9e1;color:#4f4448}.icon-button{display:inline-grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer}.icon-button:hover:not(:disabled){background:var(--bg);color:var(--text)}.icon-button:disabled{opacity:.5;cursor:not-allowed}.icon-button--primary{background:var(--accent-strong);color:#fff}.icon-button--primary:hover:not(:disabled){background:var(--accent-deep);color:#fff}.link-button{padding:0;min-height:1.5rem;border:0;background:none;color:var(--accent-strong);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.link-button--danger{color:var(--danger-text)}.chip{display:inline-flex;gap:var(--space-1);align-items:center;max-width:100%;padding:.125rem .625rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:.8125rem;overflow-wrap:anywhere}.progress{height:.5rem;overflow:hidden;border-radius:999px;background:var(--border)}.progress__bar{display:block;height:100%;border-radius:999px;background:var(--tone-text, var(--accent-strong));transition:width .4s ease}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:2.75rem;margin-bottom:var(--space-1)}.panel-header__title{display:flex;gap:var(--space-2);align-items:center;margin:0;font-size:1.0625rem}.panel-card{margin:0;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.panel-card--hint{color:var(--text-muted);font-size:.875rem;background:var(--bg)}.panel-card__title{margin:0 0 var(--space-2);font-size:1rem}.segmented{display:inline-flex;padding:2px;border:1px solid var(--border-strong);border-radius:999px}.segmented button{min-height:2rem;padding:0 .75rem;border:0;border-radius:999px;background:transparent;color:var(--text);font:inherit;font-size:.8125rem;cursor:pointer}.segmented button[aria-pressed=true]{background:var(--text);color:#fff;font-weight:600}.status--draft{--tone-bg: #efe9e1;--tone-text: #4f4448;--tone-border: #ddd2c6}.status--progress{--tone-bg: #e8f0fb;--tone-text: #1d4f91;--tone-border: #c3d5f0}.status--waiting{--tone-bg: #fdf3dc;--tone-text: #7a4f00;--tone-border: #f0d9a2}.status--ready{--tone-bg: var(--brand-soft);--tone-text: var(--brand);--tone-border: #e3c3d0}.status--live{--tone-bg: #e3f3ea;--tone-text: #1d6b40;--tone-border: #b9dfc8}.status--failed{--tone-bg: #fdecea;--tone-text: #a3271d;--tone-border: #f4c7c3}.dot{display:inline-block;flex:none;width:.625rem;height:.625rem;border-radius:50%}.dot--draft{background:var(--border-strong)}.dot--progress{background:#2c6ecb}.dot--waiting{background:#9a6500}.dot--ready{background:var(--accent-strong)}.dot--live{background:var(--success)}.dot--failed{background:var(--danger)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media(pointer:coarse){.segmented button,.link-button,.chip__remove{min-height:2.75rem}.link-button{padding:0 var(--space-1)}}.avatar{display:block;flex:none;width:1.75rem;height:1.75rem}.chip__remove{display:inline-grid;place-items:center;min-width:1.5rem;min-height:1.5rem;margin:-.25rem -.375rem -.25rem 0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer}.chip__remove:hover{background:var(--bg);color:var(--text)}.chip__remove:focus-visible{outline:2px solid var(--focus)}
