*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#faf8f5;color:#26211d}a{color:inherit;text-decoration:none}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#fff4ea,#faf8f5 50%,#eee5dd)}.login-card{width:100%;max-width:420px;background:rgba(255,255,255,.94);border:1px solid rgba(0,0,0,.08);border-radius:28px;padding:32px;box-shadow:0 20px 50px rgba(0,0,0,.08)}.brand{text-align:center;margin-bottom:24px}.brand-mark{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:#2d2622;color:white;font-size:28px}.brand h1{margin:0;font-size:28px}.brand p,.hint,.no-comments{color:#6f6760}.login-form,.admin-form{display:grid;gap:14px}.login-form label{display:grid;gap:8px;font-weight:600}input,textarea{width:100%;border:1px solid #d8d1ca;border-radius:14px;padding:12px 14px;font-size:16px;background:#fff;font-family:inherit}button{border:0;border-radius:14px;padding:12px 16px;font-size:15px;font-weight:700;background:#2d2622;color:white;cursor:pointer}.danger,.delete-form button{background:#8c1f1f}.secondary{background:#e9e2db;color:#2d2622}.error{background:#ffe8e8;color:#8c1f1f;border-radius:12px;padding:12px;margin-bottom:16px}.topbar{position:sticky;top:0;z-index:10;background:rgba(250,248,245,.92);backdrop-filter:blur(14px);padding:18px clamp(16px,4vw,48px);display:flex;justify-content:space-between;gap:16px;align-items:center;border-bottom:1px solid rgba(0,0,0,.06)}.topbar h1{margin:0;font-size:clamp(24px,5vw,38px)}.topbar p{margin:4px 0 0;color:#746b64}.top-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.logout,.photo-toolbar a,.mobile-controls a{background:#2d2622;color:white;padding:10px 14px;border-radius:999px;font-weight:700}.categories{padding:14px clamp(16px,4vw,48px);display:flex;overflow-x:auto;gap:10px;background:#faf8f5}.categories a{white-space:nowrap;border:1px solid #d7d0ca;padding:10px 14px;border-radius:999px;background:white;color:#3a332e;font-weight:700}.categories a.active{background:#2d2622;color:white}.categories span{opacity:.7;margin-left:4px}.content{padding:10px clamp(12px,4vw,48px) 48px}.content h2{font-size:clamp(22px,4vw,34px);margin:18px 0}.mosaic{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:12px}.tile{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:18px;background:#eee;box-shadow:0 10px 28px rgba(0,0,0,.07)}.tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 180ms ease}.tile:hover img{transform:scale(1.035)}.comment-badge{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.62);color:white;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:700}.empty{padding:30px;border-radius:18px;background:white;color:#6f6760}.photo-view{min-height:100vh;background:#111;color:white;display:grid;grid-template-rows:auto auto auto auto}.photo-toolbar{display:flex;justify-content:space-between;gap:12px;padding:14px}.photo-toolbar a,.mobile-controls a{background:rgba(255,255,255,.13)}.viewer{position:relative;display:grid;place-items:center;padding:8px;min-height:0}.viewer img{max-width:100%;max-height:calc(100vh - 300px);object-fit:contain;border-radius:12px}.nav-arrow{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16);font-size:46px;line-height:1}.nav-arrow.left{left:18px}.nav-arrow.right{right:18px}.mobile-controls{display:none;gap:8px;padding:12px;justify-content:center}.comments-panel{background:#faf8f5;color:#26211d;padding:18px clamp(14px,4vw,48px) 36px}.comments-panel h2{margin-top:0}.comment-form{display:grid;gap:10px;max-width:760px}.comments-list{display:grid;gap:10px;margin-top:18px;max-width:900px}.comment{background:white;border-radius:16px;padding:14px;border:1px solid #e5ded7}.comment p{margin:8px 0;white-space:pre-wrap}.comment small{color:#756c65}.live-comment{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start}.admin-comment-button{padding:9px 12px;font-size:13px}.stack-form{display:grid;gap:12px}.modal-delete{padding-top:12px;border-top:1px solid #eee5dd}.admin-content{padding:20px clamp(14px,4vw,48px) 48px;display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:18px}.admin-card{background:white;border:1px solid #e5ded7;border-radius:20px;padding:18px}.admin-card.full{grid-column:1/-1}.admin-card h2{margin-top:0}.admin-card h3{margin:0 0 12px;font-size:18px}.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.section-heading h2{margin:0}.section-heading span{color:#756c65;font-weight:700}.admin-list{display:grid;gap:12px}.compact-list{gap:8px}.management-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid #eee5dd;border-radius:14px;padding:12px}.row-copy{display:grid;gap:4px;min-width:0}.row-copy span,.row-copy p{color:#756c65}.row-copy p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.row-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.row-actions button{padding:9px 12px;font-size:14px}.checkline{display:flex;gap:8px;align-items:center}.checkline input{width:auto}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.stat-box{border:1px solid #eee5dd;border-radius:14px;padding:14px}.stat-list{display:grid;gap:8px;margin:0;padding-left:22px}.stat-list li{padding:8px 0;border-bottom:1px solid #f0e9e2}.stat-list li:last-child{border-bottom:0}.stat-list li,.access-row{gap:10px;align-items:center}.stat-list li{display:grid;grid-template-columns:minmax(0,1fr) auto}.stat-list span,.stat-list a{min-width:0;overflow-wrap:anywhere}.access-list{display:grid;gap:8px}.access-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,auto) minmax(120px,auto) minmax(150px,auto);border:1px solid #eee5dd;border-radius:12px;padding:10px}.access-row span,.access-row time{color:#756c65;overflow-wrap:anywhere}.pagination{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:12px;flex-wrap:wrap}.pagination a,.pagination span,.pagination strong{border-radius:999px;padding:8px 12px;font-weight:800}.pagination a{background:#2d2622;color:white}.pagination span{background:#eee5dd;color:#80766f}.pagination strong{color:#3a332e}.modal{display:none;position:fixed;z-index:80;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto;border:0;border-radius:18px;padding:0;background:white;color:#26211d;box-shadow:0 24px 70px rgba(0,0,0,.28)}.modal.is-open{display:block}.modal-backdrop{display:none;position:fixed;inset:0;z-index:70;background:rgba(20,16,14,.48);backdrop-filter:blur(3px)}.modal-open{overflow:hidden}.modal-open .modal-backdrop{display:block}.modal-form{display:grid;gap:14px;padding:18px}.modal-form header{display:flex;justify-content:space-between;gap:12px;align-items:center}.modal-form header h3{margin:0}.modal-form header button{width:38px;height:38px;padding:0;border-radius:50%;background:#e9e2db;color:#2d2622;font-size:22px;line-height:1}.modal-form label{display:grid;gap:7px;font-weight:700}.modal-form p{margin:0;color:#756c65}.modal-form blockquote{margin:0;padding:12px;border-left:4px solid #d8d1ca;background:#faf8f5;white-space:pre-wrap}.modal-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}@media(max-width:760px){.admin-content{grid-template-columns:1fr}.topbar{align-items:flex-start}.mosaic{grid-template-columns:repeat(2,1fr);gap:8px}.tile{border-radius:12px}.nav-arrow{display:none}.mobile-controls{display:flex}.photo-toolbar{font-size:14px}.viewer img{max-height:calc(100vh - 330px)}.stats-grid,.access-row,.management-row,.live-comment{grid-template-columns:1fr}.row-actions,.pagination{justify-content:flex-start}.admin-comment-button{width:max-content}.modal{top:14px;transform:translateX(-50%);max-height:calc(100vh - 28px)}}
