:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:dark;--bg:#0b0f14;--surface:#111720;--surface2:#161e29;--text:#d7dde7;--muted:#8d98a8;--border:#26303d;--button:#294c74;--buttonText:#eef4fb;--pill:#182231;--ok:#183326;--warn:#342819;--bad:#3a2023}
:root[data-theme="light"]{color-scheme:light;--bg:#f3f4f6;--surface:#fff;--surface2:#f8fafc;--text:#111827;--muted:#6b7280;--border:#d1d5db;--button:#111827;--buttonText:#fff;--pill:#f3f4f6;--ok:#ecfdf5;--warn:#fff7ed;--bad:#fef2f2}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);transition:background .15s ease,color .15s ease}main{max-width:1100px;margin:0 auto;padding:24px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:800;color:var(--muted)}
h1,h2{margin:.2rem 0}h1{font-size:28px}h2{font-size:21px}button,.button-link{border:1px solid transparent;border-radius:10px;padding:11px 15px;font-weight:750;background:var(--button);color:var(--buttonText);cursor:pointer}button.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.button-link{display:inline-block;text-decoration:none}
.theme-toggle{position:fixed;z-index:20;top:max(12px,env(safe-area-inset-top));right:12px;background:var(--surface2);color:var(--text);border:1px solid var(--border);box-shadow:0 6px 24px rgba(0,0,0,.18);padding:8px 11px;font-size:12px}.auth-card{max-width:440px;margin:12vh auto;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:26px;box-shadow:0 14px 40px rgba(0,0,0,.22)}
label{display:block;font-size:13px;font-weight:700;margin:14px 0}input{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid var(--border);border-radius:10px;font:inherit;background:var(--surface2);color:var(--text)}input:focus{outline:2px solid #466f9d;outline-offset:1px}.notice{padding:12px;border-radius:10px;margin:16px 0}.notice.ok{background:var(--ok)}.notice.bad{background:var(--bad)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 28px}.stats>div{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px}.stats span{display:block;color:var(--muted);font-size:12px}.stats strong{font-size:19px}.section-head{display:flex;justify-content:space-between;align-items:end;margin:18px 0 12px}
.gallery-card{display:grid;grid-template-columns:112px 1fr;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px;margin:10px 0}.gallery-card img,.cover-empty{width:112px;height:78px;border-radius:10px;object-fit:cover;background:#080b10;color:#d7dde7;display:grid;place-items:center;font-weight:800}.gallery-top{display:flex;justify-content:space-between;gap:12px}.meta{font-size:12px;color:var(--muted);margin:6px 0}
.checks{display:flex;gap:8px;flex-wrap:wrap;font-size:12px}.checks span,.state{background:var(--pill);border:1px solid var(--border);border-radius:999px;padding:5px 8px}.state{font-size:11px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.state.held{background:var(--warn)}.state.queued{background:var(--pill)}.state.published{background:var(--ok)}.empty{background:var(--surface);border:1px dashed var(--border);border-radius:14px;padding:24px;color:var(--muted)}
.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.inline-form{display:inline}.photo-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.photo-card{margin:0}.photo-button{display:block;width:100%;padding:7px;background:var(--surface);color:var(--text);border:1px solid var(--border)}.photo-button img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:7px;margin-bottom:7px}.photo-button span{display:block;font-size:12px}.auth-card button{width:100%}
@media(max-width:720px){main{padding:56px 16px 16px}.stats{grid-template-columns:1fr 1fr}.gallery-card{grid-template-columns:88px 1fr}.gallery-card img,.cover-empty{width:88px;height:72px}.gallery-top{display:block}.state{display:inline-block;margin-top:5px}.topbar{align-items:flex-start}.photo-grid{grid-template-columns:repeat(3,1fr)}.card-actions button,.card-actions .button-link{padding:9px 11px;font-size:12px}.theme-toggle{top:max(8px,env(safe-area-inset-top));right:8px}}

.flickr-link{color:#79aee3;text-decoration:none;font-weight:700}.flickr-link:hover{text-decoration:underline}
:root[data-theme="light"] .flickr-link{color:#245f9c}
.env-banner{display:flex;justify-content:space-between;gap:18px;align-items:center;background:var(--warn);border:1px solid #7c5a24;border-radius:14px;padding:14px 16px;margin:4px 0 18px}.env-banner strong{font-size:16px}.env-banner p{margin:5px 0 0;color:var(--muted);font-size:12px}.env-actions{display:flex;gap:8px;flex-wrap:wrap}.secondary-link{background:var(--surface2);border:1px solid var(--border);color:var(--text)}
.truth-row{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:7px;font-size:11px}.truth-row>span{border:1px solid var(--border);border-radius:999px;padding:5px 8px;background:var(--pill)}.truth-row .truth-label{border:0;background:transparent;padding-left:0;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.05em}.truth-row .verified{background:var(--ok)}.truth-row .failed{background:var(--bad)}.truth-row .pending,.truth-row .na{color:var(--muted)}.truth-row small{color:var(--muted);align-self:center}
@media(max-width:720px){.env-banner{display:block}.env-actions{margin-top:12px}.env-actions .button-link{font-size:11px;padding:8px 10px}}

.publish-countdown{display:inline-block;margin-left:4px;padding:5px 9px;border:1px solid rgba(248,255,0,.35);border-radius:999px;background:rgba(248,255,0,.09);color:#f8ff00;font-size:13px;font-weight:950;letter-spacing:.02em;white-space:nowrap}
:root[data-theme="light"] .publish-countdown{border-color:rgba(138,98,0,.3);background:rgba(138,98,0,.08);color:#8a6200}
.timer-custom{display:inline-flex;gap:6px;align-items:center}.timer-minutes{width:78px;margin:0;padding:9px 8px;font-size:12px}.timer-adjust{white-space:nowrap}
@media(max-width:720px){.timer-custom{width:100%}.timer-minutes{width:88px}.timer-custom button{flex:0 0 auto}}

/* RUN 0.2.7 per-gallery payment tracking + QuickBooks reconciliation */
.stats{grid-template-columns:repeat(6,minmax(0,1fr))}.revenue-stat{border-color:#315a45!important;background:linear-gradient(145deg,var(--surface),var(--ok))!important}.revenue-stat strong{font-size:24px!important}.revenue-stat small{display:block;margin:4px 0 9px;color:var(--muted);font-size:10px;line-height:1.35}.reconcile-link{display:block;padding:7px 9px!important;font-size:10px!important;text-align:center}.mark-all-paid-form{margin:8px 0 6px}.mark-all-paid{width:100%;padding:8px 10px!important;font-size:11px!important}.payment-form button:disabled,.mark-all-paid-form button:disabled{opacity:.6;cursor:wait}.billing-row{display:inline-block;margin-top:7px;padding:5px 8px;border:1px solid var(--border);border-radius:999px;font-size:11px;font-weight:800}.billing-row.unpaid{background:var(--warn)}.billing-row.paid{background:var(--ok)}
.reconcile-card{max-width:720px;margin:24px auto;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px}.reconcile-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.reconcile-summary>div{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:14px}.reconcile-summary span{display:block;color:var(--muted);font-size:12px}.reconcile-summary strong{font-size:24px}.reconcile-note{color:var(--muted);font-size:12px}.quickbooks-copy{display:block;width:100%;min-height:140px;resize:vertical;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);color:var(--text);font:500 13px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.copy-row{display:flex;align-items:center;gap:10px;margin-top:10px}.copy-status{color:var(--muted);font-size:12px}
@media(max-width:900px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.revenue-stat{grid-column:span 1}}
@media(max-width:520px){.reconcile-summary{grid-template-columns:1fr}.copy-row{align-items:stretch;flex-direction:column}}

/* RUN 0.2.5 audit timeline + month isolation */
.filter-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px;padding:11px 13px;background:var(--surface);border:1px solid var(--border);border-radius:12px}
.filter-bar form{margin:0}.filter-bar label{display:flex;align-items:center;gap:9px;margin:0;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.filter-bar select{min-width:220px;padding:9px 34px 9px 11px;border:1px solid var(--border);border-radius:9px;background:var(--surface2);color:var(--text);font:inherit;text-transform:none;letter-spacing:0}
.filter-bar>span{color:var(--muted);font-size:11px}
.timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:9px}
.timeline span{display:block;min-width:0;padding:7px 8px;border:1px solid var(--border);border-radius:9px;background:var(--surface2);color:var(--text);font-size:10px;line-height:1.3}
.timeline b{display:block;margin-bottom:2px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.05em}
@media(max-width:900px){.timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar{align-items:flex-start;flex-direction:column}.filter-bar select{min-width:0;width:100%}}
@media(max-width:520px){.timeline{grid-template-columns:1fr}.filter-bar form,.filter-bar label{width:100%}}
