/* 인증 + 프로젝트 갤러리 UI (건물 3D 모델러) */
:root{
  --ag-bg:#0b0e14; --ag-surface:#141924; --ag-surface2:#1c2432; --ag-border:#2a3446;
  --ag-text:#e6ebf2; --ag-text2:#9aa7bd; --ag-accent:#ff7a45; --ag-accent2:#ffa06b;
  --ag-green:#03c75a; --ag-yellow:#fee500;
}
.ag-hidden{display:none !important;}
.ag-overlay{position:fixed;inset:0;z-index:3000;background:var(--ag-bg);color:var(--ag-text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;overflow:auto;}
/* ── 갤러리 헤더 ── */
.ag-top{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;
  border-bottom:1px solid var(--ag-border);position:sticky;top:0;background:var(--ag-bg);z-index:2;}
.ag-brand{font-weight:700;font-size:16px;display:flex;gap:8px;align-items:center;}
.ag-user{display:flex;gap:12px;align-items:center;font-size:13px;color:var(--ag-text2);}
.ag-btn{border:1px solid var(--ag-border);background:var(--ag-surface2);color:var(--ag-text);
  padding:8px 14px;border-radius:8px;cursor:pointer;font-size:13px;}
.ag-btn:hover{border-color:var(--ag-accent);}
.ag-btn-primary{background:var(--ag-accent);border-color:var(--ag-accent);color:#1a1005;font-weight:600;}
.ag-btn-primary:hover{background:var(--ag-accent2);}
/* ── 섹션 ── */
.ag-wrap{max-width:1100px;margin:0 auto;padding:28px;}
.ag-section-title{display:flex;gap:8px;align-items:center;font-weight:700;font-size:15px;margin:26px 0 14px;}
.ag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;}
.ag-card{background:var(--ag-surface);border:1px solid var(--ag-border);border-radius:12px;overflow:hidden;
  cursor:pointer;transition:.15s;position:relative;}
.ag-card:hover{border-color:var(--ag-accent);transform:translateY(-2px);}
.ag-card-thumb{width:100%;aspect-ratio:16/11;object-fit:cover;background:var(--ag-surface2);display:block;}
.ag-card-body{padding:10px 12px;}
.ag-card-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ag-card-date{font-size:11px;color:var(--ag-text2);margin-top:3px;}
.ag-card-del{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.55);border:none;color:#fff;
  width:26px;height:26px;border-radius:6px;cursor:pointer;font-size:14px;opacity:0;transition:.15s;}
.ag-card:hover .ag-card-del{opacity:1;}
.ag-new{border:1.5px dashed var(--ag-border);border-radius:12px;min-height:150px;display:flex;
  flex-direction:column;gap:8px;align-items:center;justify-content:center;cursor:pointer;color:var(--ag-text2);
  background:transparent;transition:.15s;}
.ag-new:hover{border-color:var(--ag-accent);color:var(--ag-accent);}
.ag-new .plus{font-size:30px;line-height:1;}
.ag-empty{color:var(--ag-text2);font-size:13px;padding:8px 2px;}
/* ── 렌더 그리드 ── */
.ag-render-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;}
.ag-render-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid var(--ag-border);}
/* ── 인증 모달 ── */
.ag-modal-bg{position:fixed;inset:0;z-index:4000;background:rgba(6,9,14,.86);
  display:flex;align-items:center;justify-content:center;padding:20px;}
.ag-modal{width:100%;max-width:380px;background:var(--ag-surface);border:1px solid var(--ag-border);
  border-radius:16px;padding:28px 26px;color:var(--ag-text);}
.ag-modal h2{margin:0 0 4px;font-size:20px;}
.ag-modal p.sub{margin:0 0 20px;color:var(--ag-text2);font-size:13px;}
.ag-field{margin-bottom:12px;}
.ag-field label{display:block;font-size:12px;color:var(--ag-text2);margin-bottom:6px;}
.ag-field input{width:100%;box-sizing:border-box;padding:11px 12px;border-radius:9px;
  border:1px solid var(--ag-border);background:var(--ag-surface2);color:var(--ag-text);font-size:14px;}
.ag-field input:focus{outline:none;border-color:var(--ag-accent);}
.ag-submit{width:100%;padding:12px;border:none;border-radius:9px;background:var(--ag-accent);
  color:#1a1005;font-weight:700;font-size:14px;cursor:pointer;margin-top:4px;}
.ag-submit:hover{background:var(--ag-accent2);}
.ag-social{display:flex;flex-direction:column;gap:9px;margin:16px 0 4px;}
.ag-social button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;
  border:none;border-radius:9px;font-weight:600;font-size:14px;cursor:pointer;}
.ag-naver{background:var(--ag-green);color:#fff;}
.ag-kakao{background:var(--ag-yellow);color:#391b1b;}
.ag-divider{display:flex;align-items:center;gap:10px;color:var(--ag-text2);font-size:11px;margin:16px 0;}
.ag-divider::before,.ag-divider::after{content:"";flex:1;height:1px;background:var(--ag-border);}
.ag-toggle{text-align:center;font-size:13px;color:var(--ag-text2);margin-top:16px;}
.ag-toggle a{color:var(--ag-accent);cursor:pointer;text-decoration:underline;}
.ag-error{background:#3a1c1c;border:1px solid #5a2a2a;color:#ff9b9b;font-size:12.5px;
  padding:9px 11px;border-radius:8px;margin-bottom:12px;display:none;}
/* ── 저장 버튼(앱 화면 위) ── */
#agSaveBtn{position:fixed;top:14px;right:16px;z-index:900;}
