:root{--bg: #14120f;--panel: #1d1a16;--fg: #eae6e1;--muted: #9a938a;--rule: #322d27;--accent: #e95420;--ok: #5aa469;--bad: #d1524a;--warn: #d9a441;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app header{display:flex;align-items:center;gap:1.5rem;padding:.8rem 1.5rem;border-bottom:1px solid var(--rule)}.app header nav{display:flex;gap:.4rem}.who{margin-left:auto;color:var(--muted);display:flex;align-items:center;gap:.6rem}main{max-width:60rem;margin:0 auto;padding:1.5rem}h2{margin:0;font-size:1.2rem}h3{margin:0 0 .6rem;font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}button{background:#2b2620;color:var(--fg);border:1px solid var(--rule);border-radius:5px;padding:.4rem .8rem;cursor:pointer;font:inherit}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.4;cursor:not-allowed}button.on{border-color:var(--accent);color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.publish{border-color:var(--ok);color:var(--ok)}button.link{background:none;border:none;color:var(--muted);text-decoration:underline;padding:0}.toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.toolbar button:last-child{margin-left:auto}.live-link{color:var(--ok);font-size:.85rem;white-space:nowrap}table{width:100%;border-collapse:collapse}.table-scroll{max-height:65vh;overflow-y:auto;border:1px solid var(--rule);border-radius:8px}.table-scroll table{margin:0}.table-scroll thead th{position:sticky;top:0;background:var(--bg);z-index:1}th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--rule);padding:.4rem .5rem}td{border-bottom:1px solid var(--rule);padding:.6rem .5rem;vertical-align:top}tbody tr:hover{background:var(--panel);cursor:pointer}.locale{color:var(--muted);font-size:.75rem;margin-left:.5rem}.badge{font-size:.72rem;padding:.15rem .45rem;border:1px solid var(--rule);border-radius:999px;white-space:nowrap}.badge.IN_REVIEW,.badge.QUEUED,.badge.RUNNING,.badge.VERIFYING{border-color:var(--accent);color:var(--accent)}.badge.APPROVED,.badge.PUBLISHED,.badge.SUCCEEDED{border-color:var(--ok);color:var(--ok)}.badge.REJECTED,.badge.FAILED,.badge.DEAD{border-color:var(--bad);color:var(--bad)}.panel{background:var(--panel);border:1px solid var(--rule);border-radius:8px;padding:1rem 1.2rem;margin:1.2rem 0;display:flex;flex-direction:column;gap:.7rem}.panel.gate{border-color:var(--accent)}.panel.run{gap:0;padding:0}.run-head{display:flex;align-items:baseline;gap:.6rem;width:100%;background:none;border:none;color:var(--fg);text-align:left;padding:.9rem 1.2rem;cursor:pointer;font:inherit}.run-caret{color:var(--muted)}.run-title{font-weight:600}.run-meta{margin-left:auto;white-space:nowrap}.run-body{border-top:1px solid var(--rule);padding:.4rem 1.2rem 1rem;display:flex;flex-direction:column;gap:.4rem}.topic{border-bottom:1px solid var(--rule);padding:.8rem 0;display:flex;flex-direction:column;gap:.5rem}.run-body .topic:last-child{border-bottom:none}.topic-decided{opacity:.6}.bad-panel{border-color:var(--bad)}label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--muted)}label.check{flex-direction:row;align-items:flex-start;gap:.5rem;color:var(--fg);font-size:.95rem;line-height:1.4}input,select,textarea{background:#14120f;color:var(--fg);border:1px solid var(--rule);border-radius:5px;padding:.45rem .6rem;font:inherit}textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.6;resize:vertical}.row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.muted{color:var(--muted);font-size:.85rem;margin:0}.error,.bad,.err{color:var(--bad)}.ok{color:var(--ok)}.warnings{list-style:none;padding-left:0;margin:0 0 .5rem}.warnings .warn{color:var(--warn);border-left:2px solid var(--warn);padding-left:.6rem;margin:.35rem 0}.links,.trail,.log{list-style:none;margin:0;padding:0;font-size:.85rem;display:flex;flex-direction:column;gap:.35rem}.log{font-family:ui-monospace,monospace;font-size:.78rem;max-height:22rem;overflow:auto}.log time{color:var(--muted);margin-right:.5rem}.log .error{color:var(--bad)}.log .warn{color:#d8a657}code{font-size:.78rem;color:var(--muted);margin-left:.4rem}.login{max-width:20rem;margin:15vh auto;display:flex;flex-direction:column;gap:.9rem}.loading{padding:3rem;text-align:center;color:var(--muted)}.pin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.pin-grid figure{position:relative;margin:0;display:flex;flex-direction:column;gap:.4rem}.pin-excluded img,.pin-excluded .pin-missing{opacity:.35}.pin-select{position:absolute;top:.4rem;left:.4rem;z-index:1;background:#0000008c;border-radius:4px;padding:.15rem;display:flex}.pin-grid img{width:100%;aspect-ratio:2 / 3;object-fit:cover;border-radius:6px;border:1px solid var(--rule)}.pin-missing{aspect-ratio:2 / 3;display:grid;place-items:center;border:1px dashed var(--rule);border-radius:6px;color:var(--muted);font-size:.75rem}.pin-grid figcaption{display:flex;flex-direction:column;gap:.15rem;font-size:.75rem}.site-picker{padding:.25rem .5rem;font-size:.85rem;border-radius:5px}.job-progress{border:1px solid var(--rule);border-radius:6px;padding:.7rem .9rem;display:flex;flex-direction:column;gap:.5rem;background:#14120f}.job-progress.running{border-color:var(--accent)}.spinner{width:.9rem;height:.9rem;border:2px solid var(--rule);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.pin-thumb{cursor:zoom-in}.lightbox{position:fixed;inset:0;z-index:100;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:2rem;cursor:zoom-out}.lightbox img{max-width:min(90vw,640px);max-height:92vh;width:auto;height:auto;border-radius:8px;border:1px solid var(--rule);box-shadow:0 12px 48px #0009;cursor:default}.lightbox-close{position:fixed;top:1rem;right:1.25rem;width:2.4rem;height:2.4rem;border-radius:50%;font-size:1.5rem;line-height:1;padding:0}
