:root{--ink:#101828;--muted:#5f6675;--line:#d8dde7;--paper:#f8fafc;--surface:#fff;--accent:#157f5b;--accent-soft:#dff8ea;--blue:#315fcb}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:linear-gradient(180deg, #315fcb14, transparent 360px), var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}img{max-width:100%;display:block}.shell{min-height:100vh;padding:48px 24px}.workspace{width:min(1120px,100%);margin:0 auto}.brand{align-items:center;gap:18px;margin-bottom:72px;display:flex}.brand img{width:152px;height:auto}.brand span{color:var(--muted);font-size:.95rem;font-weight:650}.hero{max-width:820px}.eyebrow{background:var(--accent-soft);width:fit-content;color:var(--accent);border:1px solid #157f5b33;border-radius:999px;margin:0 0 18px;padding:8px 12px;font-size:.9rem;font-weight:750}h1{letter-spacing:0;margin:0;font-size:clamp(2.4rem,5vw,5.7rem);line-height:.96}.lede{max-width:760px;color:var(--muted);margin:28px 0 0;font-size:1.18rem;line-height:1.65}.heroActions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.heroActions a,.authForm button{border:1px solid var(--ink);background:var(--ink);color:#fff;font:inherit;border-radius:8px;padding:12px 16px;font-weight:750;text-decoration:none}.heroActions a+a{color:var(--ink);background:0 0}.statusGrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:64px;display:grid}.statusItem{border:1px solid var(--line);background:var(--surface);border-radius:8px;min-height:112px;padding:18px}.statusItem span{background:var(--blue);border-radius:50%;width:10px;height:10px;margin-bottom:18px;display:block}.statusItem p{color:#303848;margin:0;font-size:.98rem;font-weight:700;line-height:1.35}@media (max-width:820px){.shell{padding:28px 18px}.brand{margin-bottom:52px}.brand img{width:128px}.statusGrid{grid-template-columns:1fr;margin-top:44px}.statusItem{min-height:auto}}.authShell,.appShell{width:min(1120px,100%);margin:0 auto;padding:40px 24px}.authPanel{width:min(440px,100%);margin:8vh auto 0}.authPanel h1,.dashboardIntro h1{margin:14px 0 24px;font-size:clamp(2rem,4vw,3.8rem);line-height:1}.textLink,.authPanel a,.topbar a{color:var(--ink);font-weight:750;text-decoration:none}.authForm{gap:16px;display:grid}.authForm label{color:#303848;gap:8px;font-weight:700;display:grid}.authForm input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);font:inherit;border-radius:8px;padding:12px}.stackForm{gap:18px;margin-top:34px;display:grid}.stackForm label,.settingsGrid label{color:#303848;gap:8px;font-weight:700;display:grid}.stackForm input,.settingsGrid input{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;border-radius:8px;padding:12px}.settingsGrid input[type=file]{background:#f8fafc}.stackForm button,.buttonRow button{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;font:inherit;border-radius:8px;padding:12px 16px;font-weight:750}.narrowShell{width:min(760px,100%)}.notice,.emptyGalleryState,.emptyPublicGallery{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:18px}.notice{gap:8px;display:grid}.notice a,.sectionHeader a{color:var(--blue);font-weight:750;text-decoration:none}.formError{color:#b42318;font-weight:750}.formSuccess{color:var(--accent);font-weight:750}.authPanel p{color:var(--muted);margin-top:18px}.topbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:72px;display:flex}.wordmark{font-size:1.2rem}.topbar nav{gap:18px;display:flex}.dashboardIntro{max-width:720px}.metricGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:36px;display:grid}.metric{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:18px}.metric span,.metric strong{display:block}.galleryList,.editorSurface{margin-top:44px}.sectionHeader,.editorHeader,.publicHeader{justify-content:space-between;align-items:center;gap:20px;display:flex}.sectionHeader h2,.editorHeader h1{margin:0}.tableList{gap:8px;margin-top:16px;display:grid}.tableRow{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;grid-template-columns:1fr 120px 120px;gap:12px;padding:14px 16px;text-decoration:none;display:grid}.buttonRow{flex-wrap:wrap;gap:10px;display:flex}.settingsGrid{grid-template-columns:minmax(0,1fr) 240px;gap:16px;margin-top:28px;display:grid}.toggleLine{grid-template-columns:auto 1fr;align-content:end}.toggleLine input{width:18px;height:18px}.photoGrid,.publicPhotoGrid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:24px;display:grid}.photoTile,.publicPhotoTile{border:1px solid var(--line);background:var(--surface);border-radius:8px;overflow:hidden}.photoTile>div:last-child{gap:8px;padding:14px;display:grid}.photoTile strong,.publicPhotoTile p{overflow-wrap:anywhere}.photoTile p,.publicPhotoTile p{color:var(--muted);margin:0}.photoTilePreview,.publicPhotoPreview{aspect-ratio:4/3;color:#2f3a4d;background:linear-gradient(135deg,#f8fafc,#dff2ea);place-items:center;font-size:.8rem;font-weight:800;display:grid}.photoTilePreview img,.publicPhotoPreview img{object-fit:cover;width:100%;height:100%}.statusPill{color:#166534;text-transform:uppercase;background:#def7e7;border-radius:999px;width:fit-content;padding:5px 9px;font-size:.78rem;font-weight:850}.publicPhotoTile p{padding:12px}.emptyGalleryState,.emptyPublicGallery{margin-top:24px}.emptyGalleryState p,.emptyPublicGallery p,.publicHero p{color:var(--muted);margin:8px 0 0;line-height:1.6}.publicShell{width:min(1040px,100%);margin:0 auto;padding:40px 24px}.publicHeader span{color:var(--muted);font-weight:750}.publicHero{max-width:760px;margin-top:80px}.publicHero h1{margin:0}.metric span{color:var(--muted);font-size:.92rem;font-weight:700}.metric strong{margin-top:14px;font-size:1.5rem}@media (max-width:820px){.authShell,.appShell{padding:28px 18px}.topbar,.topbar nav{flex-direction:column;align-items:flex-start}.metricGrid{grid-template-columns:1fr}.sectionHeader,.editorHeader,.publicHeader{flex-direction:column;align-items:flex-start}.tableRow,.settingsGrid{grid-template-columns:1fr}}
