:root{color-scheme:light;--paper:#f7f4ed;--card:#fffdf8;--ink:#443c35;--muted:#81756a;--line:#ded4c5;--accent:#7c7960;--danger:#a24742}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.65 system-ui,-apple-system,"PingFang SC",sans-serif}main{max-width:920px;margin:auto;padding:24px 22px calc(30px + env(safe-area-inset-bottom))}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{border:1px solid var(--line);border-radius:12px;padding:8px 14px;background:var(--card);color:var(--ink);cursor:pointer}button:disabled{opacity:.45;cursor:default}a{color:var(--muted);text-decoration:none}nav,header,.view-title,.actions,.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px}nav{margin-bottom:32px}nav button{border:0;background:none;padding-right:0}.eyebrow{margin:0;font-size:12px;letter-spacing:.2em;color:var(--muted)}h1{font-size:30px;letter-spacing:.08em;margin:3px 0}h2{font-size:18px;margin:0;overflow-wrap:anywhere}.primary{background:var(--accent);color:white;border-color:var(--accent)}.intro,.muted,footer{color:var(--muted);font-size:13px}.intro{margin:15px 0 24px}#status{font-size:13px;color:var(--muted);min-height:22px}#albums{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr));gap:14px}.album{border:1px solid var(--line);border-radius:18px;background:var(--card);overflow:hidden}.album-open{display:block;text-align:left;border:0;border-radius:0;width:100%;padding:20px 20px 8px}.album-open strong{display:block;font-size:19px;font-weight:600;overflow-wrap:anywhere}.album-open span{display:block;color:var(--muted);font-size:12px;margin-top:8px}.album-keywords{padding:0 20px;margin:0;font-size:12px;color:var(--muted);overflow-wrap:anywhere}.album-actions{padding:10px 14px;text-align:right}.album-actions button{border:0;font-size:12px;padding:4px 8px}#albumView{border-top:1px solid var(--line);margin-top:28px;padding-top:22px}.photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.photo{margin:0;background:var(--card);padding:7px 7px 11px;border:1px solid var(--line);border-radius:5px;min-width:0}.photo img{display:block;width:100%;aspect-ratio:300/260;object-fit:contain;background:#ede8df}.photo figcaption{text-align:center;font-size:12px;font-variant-numeric:tabular-nums;padding-top:7px;color:var(--muted)}.photo-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.photo-error{display:flex;align-items:center;justify-content:center;aspect-ratio:300/260;color:var(--muted);font-size:12px;text-align:center;background:#ede8df;padding:10px}.pagination{justify-content:center;margin-top:20px;font-size:13px}footer{border-top:1px solid var(--line);margin-top:32px;padding-top:18px;font-size:12px}dialog{border:1px solid var(--line);border-radius:20px;padding:24px;background:var(--card);color:var(--ink);width:min(92vw,460px);max-height:85dvh;overflow:auto}dialog::backdrop{background:#26221b66;backdrop-filter:blur(3px)}dialog .view-title{margin-bottom:18px}dialog .view-title button{border:0;font-size:24px;padding:0 8px}label{display:block;font-size:13px;margin:14px 0 6px}input,textarea{display:block;width:100%;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);padding:10px 12px;font-size:16px}textarea{resize:vertical}input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:2px}.actions{margin-top:20px;justify-content:flex-end}.danger,#editorError,#loginError{color:var(--danger)}#editorError,#loginError{font-size:13px}#conflictRefresh{width:100%;font-size:13px}#loginForm>a{display:block;margin-top:14px;font-size:13px}#loginButton{width:100%}[hidden]{display:none!important}
@media(max-width:480px){main{padding-left:16px;padding-right:16px}nav{margin-bottom:25px}.photos{gap:6px}.photo{padding:4px 4px 8px}.photo figcaption{font-size:10px}.photo-title{font-size:10px}header{gap:8px}h1{font-size:27px}header button{white-space:nowrap;padding:8px 10px}.pagination{gap:8px}.pagination button{padding:7px 10px}}
@media(prefers-color-scheme:dark){:root{color-scheme:dark;--paper:#24211e;--card:#2e2924;--ink:#e4dacc;--muted:#b6a895;--line:#4e4439;--accent:#77765d;--danger:#edaaa3}.photo img,.photo-error{background:#373129}}
