/* CampCalc — account pages (login, /me). Builds on style.css tokens. */
body.pg{overflow:auto;min-height:100%}
body.pg #topbar a.brand{color:var(--text);text-decoration:none}
body.pg a.btn{text-decoration:none;display:inline-block}
.pgMain{max-width:1040px;margin:0 auto;padding:18px 14px 40px;width:100%}
.pgMain.narrow{max-width:520px}
.pgHead{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}
.pgHead h2{font-size:20px}
.who{font-size:13px;color:var(--dim)}
.who a{color:var(--dim);text-decoration:none}
.lead{font-size:14px;line-height:1.55;margin:8px 0 10px}
.loginCard h2{font-size:20px;margin-bottom:4px}
.loginCard .btn.big{display:block;text-align:center;padding:12px;font-size:15px;margin-top:14px;text-decoration:none}
.stub{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.stub label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--dim)}
.stub input{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:9px 11px;border-radius:9px;font-size:14px}
.err{background:rgba(255,97,97,.12);border:1px solid var(--bad);color:var(--text);padding:9px 12px;border-radius:9px;font-size:13px;margin-top:12px}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.grid .empty{grid-column:1/-1;text-align:center;color:var(--dim);font-size:13px;line-height:1.7;padding:40px 10px}
.setup{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.setup .thumb{display:block;aspect-ratio:1200/630;background:#20361f}
.setup .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.setup .noThumb{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:40px;opacity:.5}
.setup .body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:5px}
.setup .titleRow{display:flex;align-items:center;justify-content:space-between;gap:8px}
.setup .title{font-weight:600;font-size:14px;color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.setup .meta{font-size:12px}
.setup .meta.dim{color:var(--dim)}
.badge{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--dim);white-space:nowrap}
.badge.public{border-color:var(--accent);color:var(--accent)}
.setup .actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.setup .actions .btn{padding:6px 10px;font-size:12px;text-decoration:none}
.btn.danger{color:var(--bad)}
.account{margin-top:28px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.account h3{margin-bottom:0}
.pgFoot{max-width:1040px;margin:0 auto;padding:20px 14px 30px;font-size:12px;color:var(--dim);text-align:center;width:100%}
.pgFoot a,.pgMain a{color:var(--accent)}
.pgHeadR{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pgHead.profile{align-items:center}
.profHead{display:flex;align-items:center;gap:12px}
.avatar{width:52px;height:52px;border-radius:50%;background:var(--chip);display:flex;align-items:center;justify-content:center;font-size:24px;object-fit:cover}
.pager{display:flex;justify-content:center;align-items:center;gap:12px;margin:18px 0}
.secH{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin:28px 0 10px}
.campList{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 14px}
.campList li{display:flex;align-items:center;gap:8px;font-size:13px;padding:4px 0;border-bottom:1px solid var(--line)}
.campList li a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);text-decoration:none}
.campList li a:hover{color:var(--accent)}
.campList .dim,.showMeta .dim,.meta .dim,.stateGroup .dim{color:var(--dim);font-size:12px}
.stateGroup{margin:6px 0}
.stateGroup summary{cursor:pointer;font-size:14px;padding:6px 0}
.stateGroup .campList{margin:4px 0 10px 14px}
.notice{background:rgba(255,177,78,.12);border:1px solid var(--warn);padding:9px 12px;border-radius:9px;font-size:13px;margin-bottom:14px}
/* showcase */
.show .hero{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#20361f;aspect-ratio:1200/630;margin-bottom:16px}
.show .hero img{width:100%;height:100%;object-fit:cover;display:block}
.showHead{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:flex-start}
.showHead h1{font-size:22px;margin-bottom:4px}
.showMeta{font-size:14px;margin-top:2px}
.showMeta a{color:var(--accent);text-decoration:none}
.showBtns{display:flex;gap:8px;flex-wrap:wrap}
.showBtns .btn{text-decoration:none}
.notes{margin:14px 0 0;font-size:14px;line-height:1.55;white-space:pre-wrap;color:var(--text)}
.showCols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
@media(max-width:640px){.showCols{grid-template-columns:1fr}}
.showCols .srow{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:4px 0}
.objs{list-style:none;display:flex;flex-direction:column;gap:6px}
.objs li{display:flex;align-items:center;gap:8px;font-size:13px;background:var(--chip);border:1px solid var(--line);border-radius:10px;padding:7px 9px}
.objs .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.objs .sz{color:var(--dim);white-space:nowrap;font-size:12px}
.showMore{margin-top:18px;display:flex;gap:8px;flex-wrap:wrap}
.showMore .btn{text-decoration:none}
/* login tabs */
.authTabs{display:flex;gap:6px;margin-top:14px;border-bottom:1px solid var(--line)}
.authTabs .tab{background:none;border:none;color:var(--dim);padding:8px 12px;font-size:14px;cursor:pointer;border-bottom:2px solid transparent}
.authTabs .tab.active{color:var(--text);border-bottom-color:var(--accent)}
.authTabs+.stub{border-top:none;padding-top:10px;margin-top:6px}
/* likes / photos / report */
.likeBadge{margin-left:8px;font-size:11px;color:var(--dim)}
.btn.like.on{border-color:var(--accent);color:var(--accent)}
.btn.small{font-size:12px;padding:6px 9px}
.photos{margin-top:18px}
.photosHead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.photosHead h3{font-size:14px}
.photoAdd{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.photoGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.photo{position:relative;margin:0;aspect-ratio:4/3;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--card)}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.photoDel{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:none;background:rgba(0,0,0,.65);color:#fff;cursor:pointer;font-size:13px}
.dlg{border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);padding:0;max-width:440px;width:92vw}
.dlg::backdrop{background:rgba(0,0,0,.55)}
.dlgForm{display:flex;flex-direction:column;gap:10px;padding:16px}
.dlgForm h3{font-size:15px}
.dlgForm label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--dim)}
.dlgForm textarea{resize:vertical;font-family:inherit}
/* map */
.mapMain{max-width:1200px}
.mapBox{height:70vh;min-height:380px;border-radius:12px;border:1px solid var(--line);overflow:hidden;background:#20361f;margin-bottom:10px}
.searchBox.small{width:auto;padding:7px 10px;font-size:13px}
.leaflet-popup-content{font-size:13px;line-height:1.5}
.leaflet-popup-content a{color:var(--accent-dark)}
@media(max-width:480px){.who{display:none}}   /* the handle is in the Account card; frees room for the language switch */
