:root{--charcoal: #151413;--ivory: #f5f1e8;--gold: #e6cfa1;--heading: #1f1c17;--body: #4a453d;--muted: #8a7a5c;--border: #d9d2c1;--danger: #a93a2d}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--ivory);color:var(--heading);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px}h1,h2{font-weight:400;margin:0;color:var(--heading)}a{color:var(--heading);text-decoration:none}a:hover{color:var(--gold)}a.link{color:var(--muted);font-size:13px;letter-spacing:.1em;text-transform:uppercase}input,textarea,button,select{font:inherit;color:inherit}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],textarea{background:#fff;border:1px solid var(--border);padding:10px 12px;width:100%;outline:none}input:focus,textarea:focus{border-color:var(--gold)}label{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}label>span{color:var(--muted);font-size:12px;letter-spacing:.1em;text-transform:uppercase}button,.btn{cursor:pointer;padding:10px 20px;border:1px solid var(--heading);background:transparent;color:var(--heading);font-size:13px;letter-spacing:.1em;text-transform:uppercase;transition:opacity .2s;display:inline-block}button:hover,.btn:hover{opacity:.85}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--gold);border-color:var(--gold)}button.danger{color:var(--danger);border-color:var(--danger)}.error{color:var(--danger);margin:12px 0;font-size:14px}.empty{color:var(--muted);font-style:italic}.login-wrap{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:40px 20px}.card{width:100%;max-width:380px;background:#fff;border:1px solid var(--border);padding:40px;display:flex;flex-direction:column;gap:16px}.card h1{font-size:20px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px;text-align:center}.card .lede{color:var(--muted);font-size:13px;line-height:1.5;margin:0 0 8px;text-align:center}.loading{display:flex;justify-content:center;align-items:center;min-height:100vh;color:var(--muted)}.dashboard{max-width:900px;margin:0 auto;padding:40px 24px 80px}.dashboard header{display:flex;justify-content:space-between;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--border);margin-bottom:40px}.dashboard header h1{font-size:20px;letter-spacing:.14em;text-transform:uppercase}.dashboard header .link{background:none;border:none;padding:0}.dashboard section{margin-bottom:48px}.dashboard .section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.dashboard h2{font-size:18px}.dashboard ul{list-style:none;padding:0;margin:0;border-top:1px solid var(--border)}.dashboard li{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.dashboard li .meta{color:var(--muted);font-size:13px}.publish{padding:24px;background:#fff;border:1px solid var(--border)}.publish .buttons{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}.publish .note{color:var(--muted);font-size:13px;margin-top:12px}.editor{max-width:780px;margin:0 auto;padding:40px 24px 80px}.editor header{margin-bottom:32px}.editor header h1{font-size:24px;margin-top:12px}.editor .photos{margin:24px 0;padding:20px;background:#fff;border:1px solid var(--border)}.editor .photos-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.editor .photos ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.editor .photos li{position:relative}.editor .photos img{width:100%;height:100px;object-fit:cover;display:block}.editor .photos li span{display:block;font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor .photos li button{position:absolute;top:4px;right:4px;padding:4px 8px;font-size:10px;background:#0009;color:#fff;border:none}.editor .cover{margin-bottom:20px;padding:16px;background:#fff;border:1px solid var(--border)}.editor .cover>span{color:var(--muted);font-size:12px;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:8px}.editor .cover img{max-width:240px;max-height:160px;object-fit:cover;margin-bottom:8px;display:block}.editor .actions{display:flex;gap:12px;margin-top:24px}.upload label.btn{position:relative;cursor:pointer}
