:root{--bg:#f4f1eb;--card:#fff;--ink:#1e2429;--muted:#667078;--red:#9d1f26;--line:#d8d2c8;--green:#276749;--amber:#9c6500}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}header{background:#15191c;color:white;border-bottom:4px solid var(--red)}.wrap{max-width:1180px;margin:auto;padding:18px}.brand{font-size:26px;font-weight:800}.sub{color:#c8ced2;font-size:13px}nav{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}nav a{color:white;text-decoration:none;padding:7px 10px;border-radius:6px;background:#282e33}nav a:hover{background:var(--red)}main{max-width:1180px;margin:auto;padding:20px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;box-shadow:0 1px 2px #0000000c}.metric{font-size:30px;font-weight:800}.muted{color:var(--muted)}h1,h2,h3{line-height:1.15}h1{margin-top:0}a{color:#7e1820}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:9px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#ece8e0}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 15px}.btn,button{display:inline-block;border:0;border-radius:6px;padding:9px 12px;background:#222a2f;color:white;text-decoration:none;cursor:pointer;font:inherit;line-height:inherit}.btn.red,button.red{background:var(--red)}input,select,textarea{width:100%;padding:9px;border:1px solid #bcb7ae;border-radius:6px;background:white;font:inherit}textarea{min-height:130px}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.full{grid-column:1/-1}.badge{display:inline-block;padding:2px 7px;border-radius:12px;font-size:12px;background:#e5e7eb}.open{background:#fee2e2;color:#8b1b1b}.resolved{background:#dcfce7;color:#166534}.pre{white-space:pre-wrap}.timeline{border-left:3px solid #aaa;padding-left:18px}.entry{margin:0 0 20px}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.gallery img{width:100%;height:170px;object-fit:cover;border-radius:8px;background:#ddd}.warn{background:#fff3cd;border:1px solid #e7cf80;padding:10px;border-radius:8px}.search{display:flex;gap:8px}.search input{flex:1}@media(max-width:700px){.formgrid{grid-template-columns:1fr}table{font-size:13px}.wrap,main{padding:12px}}
.login-card{max-width:420px;margin:10vh auto}
.table-scroll{overflow:auto}

/* Login page: original Silke photos, preserving native aspect ratio. */
.login-page{min-height:100vh;background:#ead8bd}
.login-main{max-width:1580px;min-height:100vh;margin:auto;padding:32px;display:grid;grid-template-columns:minmax(360px,1fr) minmax(300px,380px) minmax(360px,1fr);gap:24px;align-items:center}
.login-card{width:100%;margin:0;align-self:center;background:#ead8bd;border-color:#cbb99f;box-shadow:none}
.login-photo-wrap{width:100%;background:#ead8bd;display:flex;align-items:center;justify-content:center}
.login-photo{display:block;width:100%;height:auto;max-height:520px;object-fit:contain;border:0;border-radius:0;box-shadow:none;background:#ead8bd}
@media(max-width:1050px){.login-main{grid-template-columns:minmax(280px,1fr) minmax(280px,360px) minmax(280px,1fr);padding:20px;gap:16px}}
@media(max-width:900px){.login-main{grid-template-columns:1fr;max-width:760px;min-height:auto;padding:20px}.login-photo-wrap{width:100%}.login-card{order:2}.login-photo{max-height:none}}

/* Keep photo-card actions aligned regardless of filename length. */
.photo-card{display:flex;flex-direction:column}
.photo-name{overflow-wrap:anywhere;margin-top:8px}
.photo-actions{margin-top:auto;padding-top:12px;margin-bottom:0;justify-content:center}

/* Photo-card controls: same placement/proportions, ~15% smaller. */
.photo-actions .btn{font-size:85%;padding:7.65px 10.2px;border-radius:5.1px}

/* Compact dashboard summary cards while keeping their contents centered. */
.dashboard-metrics .card{padding:9.6px 16px;display:flex;flex-direction:column;justify-content:center;text-align:center}

/* Admin cards: ~15% more compact without changing their grid placement. */
.admin-cards .card{padding:13.6px;font-size:85%}
.admin-cards .card h2{font-size:1.275em}
