:root{
  --accent:#2563eb;--text:#111827;--muted:#7c8799;--line:#e9edf2;--soft:#f6f8fb;--bg:#fff;--danger:#dc2626;
}
*{box-sizing:border-box}
html{background:#eef1f5}
body{margin:0;color:var(--text);background:#eef1f5;font-family:"Inter","Noto Sans KR",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,textarea,select{font:inherit} button{cursor:pointer}
.app-shell{width:min(100%,480px);min-height:100dvh;margin:0 auto;background:var(--bg);position:relative;padding-bottom:86px}
.topbar,.detail-topbar{height:74px;padding:18px 18px 10px;display:flex;align-items:center;position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);z-index:20;border-bottom:1px solid rgba(233,237,242,.75)}
.topbar{justify-content:space-between}.detail-topbar{justify-content:space-between}.detail-topbar strong{font-size:16px}
.brand{color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:1px}.brand span{font-weight:700;font-size:20px;letter-spacing:-.5px}.brand b{color:var(--accent)}.brand small{font-size:11px;color:var(--muted)}
.top-actions{display:flex;gap:4px}.icon-button{border:0;background:transparent;color:var(--text);width:40px;height:40px;border-radius:12px;font-size:24px;display:grid;place-items:center}.back-button{font-size:34px;line-height:1}
.search-wrap{padding:14px 18px 10px}.search-box{height:50px;background:var(--soft);border-radius:15px;display:flex;align-items:center;padding:0 14px;gap:10px;border:1px solid transparent}.search-box input{flex:1;border:0;outline:0;background:transparent;font-size:14px}.search-icon{font-size:22px;color:#4b5563}
.category-strip{display:flex;gap:7px;overflow-x:auto;padding:8px 18px 14px;scrollbar-width:none;border-bottom:1px solid var(--line)}.category-strip::-webkit-scrollbar{display:none}
.category-chip{flex:0 0 auto;border:1px solid var(--line);background:#fff;color:#4b5563;border-radius:999px;padding:8px 13px;font-size:13px;font-weight:600}.category-chip.active{color:#fff;background:var(--accent);border-color:var(--accent)}
.section{padding:24px 18px 0}.section + .section{margin-top:8px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section h2{font-size:20px;margin:0}.text-button{border:0;background:none;color:var(--muted);font-size:13px}
.post-list{border-top:1px solid var(--line)}.post{padding:15px 0 14px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:12px;cursor:pointer}.rank{width:26px;padding-top:2px;color:#9aa4b2;font-weight:600;font-size:13px;text-align:center}.post-main{min-width:0}.post-title-row{display:flex;gap:8px;align-items:flex-start}.tag{flex:0 0 auto;font-size:11px;font-weight:700;color:var(--accent);background:rgba(37,99,235,.07);padding:4px 7px;border-radius:6px;margin-top:1px}.post-title{font-size:15px;line-height:1.45;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.post-meta{margin-top:6px;display:flex;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted)}.meta-right{display:flex;gap:10px;white-space:nowrap}
.section-latest{padding-bottom:26px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,480px);height:76px;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1.1fr 1fr 1fr;align-items:center;z-index:30}.nav-item{border:0;background:none;color:#8a94a3;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:22px}.nav-item small{font-size:10px}.nav-item.active{color:var(--accent)}.compose-button{justify-self:center;width:52px;height:52px;border-radius:50%;border:0;color:white;background:var(--accent);font-size:30px;box-shadow:0 7px 18px rgba(37,99,235,.25)}
.hidden{display:none!important}.empty-state{padding:42px 18px 110px;text-align:center;color:var(--muted);display:flex;flex-direction:column;gap:8px}
.drawer-backdrop,.modal-backdrop,.action-sheet-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.28);z-index:60}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(82vw,340px);background:white;z-index:70;transform:translateX(105%);transition:.22s;padding:18px}.drawer.open{transform:translateX(0)}.drawer-head,.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.drawer-link{width:100%;padding:15px 4px;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;font-weight:600}
.modal-backdrop{display:flex;align-items:flex-end;justify-content:center}.modal-sheet{width:min(100%,480px);background:white;border-radius:22px 22px 0 0;padding:20px 18px max(22px,env(safe-area-inset-bottom));max-height:90dvh;overflow:auto}
form{display:flex;flex-direction:column;gap:15px}label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#4b5563}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px 14px;outline:none;background:white;color:var(--text)}textarea{resize:vertical}.primary-button{border:0;border-radius:12px;background:var(--accent);color:white;padding:14px;font-weight:700}
.toast{position:fixed;left:50%;bottom:92px;transform:translate(-50%,15px);background:#111827;color:#fff;padding:10px 14px;border-radius:10px;font-size:12px;opacity:0;pointer-events:none;transition:.2s;z-index:100}.toast.show{opacity:1;transform:translate(-50%,0)}
.detail-article{padding:24px 18px 0}.detail-category{display:inline-block;color:var(--accent);background:rgba(37,99,235,.07);padding:5px 8px;border-radius:7px;font-size:12px;font-weight:700}.detail-article h1{margin:12px 0;font-size:24px;line-height:1.35}.detail-meta{display:flex;align-items:center;gap:7px;padding-bottom:18px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.spacer{flex:1}.author-link{border:0;background:none;padding:0;color:var(--text);font-weight:700}.detail-body{padding:24px 0 28px;font-size:16px;line-height:1.8;white-space:pre-wrap;min-height:160px}.detail-actions{display:flex;gap:8px;padding-bottom:20px;border-bottom:8px solid var(--soft)}.action-button{border:1px solid var(--line);background:white;border-radius:10px;padding:9px 12px;color:#4b5563;font-size:13px}.action-button.liked{color:var(--accent);background:rgba(37,99,235,.05)}
.comments-section{padding:20px 18px 120px}.comments-head h2{font-size:18px;margin:0 0 8px}.comments-list{border-top:1px solid var(--line)}.comment{padding:15px 0;border-bottom:1px solid var(--line)}.comment.reply{padding-left:28px;background:linear-gradient(90deg,rgba(37,99,235,.04),transparent)}.comment-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.comment-author{border:0;background:none;padding:0;font-size:13px;font-weight:700}.comment-time{font-size:11px;color:var(--muted)}.comment-body{margin-top:7px;font-size:14px;line-height:1.55;color:#273142}.comment-actions{display:flex;gap:12px;margin-top:8px}.comment-actions button{border:0;background:none;padding:0;color:var(--muted);font-size:11px}.comment-actions .danger{color:var(--danger)}
.comment-composer{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,480px);background:rgba(255,255,255,.98);border-top:1px solid var(--line);padding:8px 12px max(10px,env(safe-area-inset-bottom));z-index:35}.composer-row{display:flex;gap:8px}.comment-composer input{flex:1;background:var(--soft);border:1px solid transparent}.comment-composer button{border:0;background:var(--accent);color:#fff;border-radius:10px;padding:0 15px;font-weight:700}.replying-to{font-size:11px;color:var(--muted);padding:0 4px 7px}
.profile-card{padding:28px 18px 22px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line)}.avatar{width:54px;height:54px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-weight:700;color:var(--accent)}.profile-card h1{margin:0 0 3px;font-size:22px}.profile-card p{margin:0;color:var(--muted);font-size:12px}.profile-tabs{display:flex;border-bottom:1px solid var(--line)}.profile-tab{flex:1;border:0;background:white;padding:14px;font-weight:600;color:var(--muted)}.profile-tab.active{color:var(--accent);border-bottom:2px solid var(--accent)}.profile-content{padding:0 18px 110px}.profile-comment{padding:15px 0;border-bottom:1px solid var(--line)}.profile-comment small{color:var(--muted)}.profile-comment p{margin:6px 0 0;font-size:14px}
.action-sheet-backdrop{display:flex;align-items:flex-end;justify-content:center}.action-sheet{width:min(100%,480px);background:white;border-radius:18px 18px 0 0;padding:10px 12px max(16px,env(safe-area-inset-bottom))}.action-sheet button{width:100%;border:0;background:white;padding:15px;text-align:center;border-bottom:1px solid var(--line);font-weight:600}.action-sheet button:last-child{border-bottom:0}.action-sheet .danger{color:var(--danger)}

.drawer{padding:0 18px 28px;overflow-y:auto;overscroll-behavior:contain}
.drawer-head{position:sticky;top:0;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);z-index:2;padding:20px 0 12px;margin:0;border-bottom:1px solid var(--line)}
.drawer-head>div{display:flex;flex-direction:column;gap:3px}.drawer-head strong{font-size:20px}.drawer-head small{font-size:10px;color:var(--muted);font-weight:500}
.drawer-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:16px 0 18px;border-bottom:1px solid var(--line)}
.quick-menu{border:0;background:var(--soft);border-radius:12px;padding:11px 4px 9px;display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--text)}
.quick-menu b{font-size:18px}.quick-menu span{font-size:11px;font-weight:700}
.drawer-section{padding:19px 0 5px;border-bottom:1px solid var(--line)}
.drawer-section-last{border-bottom:0;padding-bottom:30px}
.drawer-section h3{margin:0 0 7px;font-size:11px;letter-spacing:.08em;color:#9aa4b2;text-transform:uppercase}
.drawer-link{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 2px;border:0;background:none;text-align:left;font-size:14px;font-weight:600;color:var(--text)}
.drawer-link i{font-style:normal;color:#b4bcc8;font-size:19px;font-weight:400}.drawer-link em{font-style:normal;font-size:9px;color:#9aa4b2;background:var(--soft);padding:4px 6px;border-radius:999px;font-weight:600}
.drawer-link:active,.quick-menu:active{opacity:.55}
.menu-result-banner{margin:14px 18px 0;padding:15px 16px;background:var(--soft);border-radius:15px;display:flex;align-items:center;justify-content:space-between}
.menu-result-banner small{font-size:9px;color:var(--accent);font-weight:800;letter-spacing:.08em}.menu-result-banner h1{font-size:18px;margin:3px 0 0}.menu-result-banner button{border:0;background:#fff;color:var(--accent);border-radius:999px;padding:8px 10px;font-size:11px;font-weight:700}

.utility-hero{padding:24px 18px 14px;border-bottom:1px solid var(--line)}
.utility-hero small{font-size:10px;color:var(--accent);font-weight:800;letter-spacing:.08em}
.utility-hero h1{font-size:24px;margin:4px 0 8px}
.utility-hero p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.utility-search-wrap{padding:14px 18px 4px}
.utility-search-wrap input{background:var(--soft);border-color:transparent}
.utility-content{padding:8px 18px 110px}
.info-card,.business-card,.saved-card,.report-card{padding:16px 0;border-bottom:1px solid var(--line)}
.info-card h3,.business-card h3,.saved-card h3,.report-card h3{margin:0 0 6px;font-size:16px}
.info-card p,.business-card p,.saved-card p,.report-card p{margin:0;color:#4b5563;font-size:13px;line-height:1.55}
.info-card small,.business-card small,.saved-card small,.report-card small{display:block;margin-top:7px;color:var(--muted);font-size:11px}
.card-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.card-actions button{border:1px solid var(--line);background:white;border-radius:9px;padding:7px 9px;font-size:11px;font-weight:700}
.utility-empty{padding:34px 0;text-align:center;color:var(--muted);font-size:13px}
.badge{display:inline-flex;align-items:center;border-radius:999px;background:var(--soft);padding:4px 7px;font-size:10px;color:#5b6472;font-weight:700}
.report-status{color:var(--accent);font-weight:700}

.admin-hero{padding:24px 18px 18px;border-bottom:1px solid var(--line)}
.admin-hero small{font-size:9px;letter-spacing:.12em;color:var(--accent);font-weight:800}
.admin-hero h1{font-size:24px;margin:4px 0 6px}
.admin-hero p{font-size:12px;color:var(--muted);margin:0}
.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}
.admin-stat{background:var(--soft);border-radius:12px;padding:11px}
.admin-stat b{display:block;font-size:18px}.admin-stat span{font-size:10px;color:var(--muted)}
.admin-tabs{display:flex;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:none}
.admin-tabs::-webkit-scrollbar{display:none}
.admin-tab{flex:0 0 auto;border:0;background:#fff;padding:13px 16px;color:var(--muted);font-weight:700;font-size:12px}
.admin-tab.active{color:var(--accent);border-bottom:2px solid var(--accent)}
.admin-content{padding:8px 18px 110px}
.admin-card{padding:15px 0;border-bottom:1px solid var(--line)}
.admin-card h3{font-size:15px;margin:0 0 6px}.admin-card p{font-size:12px;line-height:1.5;color:#4b5563;margin:0}
.admin-card small{display:block;margin-top:6px;color:var(--muted);font-size:10px}
.admin-card .row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.admin-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.admin-actions button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 9px;font-size:10px;font-weight:700}
.admin-actions .danger{color:var(--danger);border-color:rgba(220,38,38,.18)}
.admin-actions .primary{color:var(--accent);border-color:rgba(37,99,235,.2)}
.status-chip{display:inline-flex;border-radius:999px;background:var(--soft);padding:4px 7px;font-size:9px;font-weight:800;color:#687385}
.status-chip.open{color:#b45309;background:#fff7ed}.status-chip.done{color:#15803d;background:#f0fdf4}.status-chip.hidden-content{color:#dc2626;background:#fef2f2}
.member-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.role-chip{display:inline-flex;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:800;background:#eff6ff;color:#2563eb}
.role-chip.admin{background:#f5f3ff;color:#7c3aed}.role-chip.moderator{background:#ecfeff;color:#0f766e}
.notice-form{display:flex;flex-direction:column;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}
.notice-form input,.notice-form textarea{background:var(--soft);border-color:transparent}

.utility-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.utility-toolbar strong{font-size:13px}.utility-toolbar button{border:0;background:var(--accent);color:#fff;border-radius:9px;padding:8px 10px;font-size:11px;font-weight:700}
.meetup-card{padding:16px 0;border-bottom:1px solid var(--line)}
.meetup-card h3{margin:7px 0 6px;font-size:16px}
.meetup-card p{margin:0;color:#4b5563;font-size:13px;line-height:1.55}
.meetup-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:11px}
.meetup-actions{display:flex;gap:8px;margin-top:11px}
.meetup-actions button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 10px;font-size:11px;font-weight:700}
.meetup-actions button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.meetup-actions button.danger{color:var(--danger)}
.rule-card{padding:17px 0;border-bottom:1px solid var(--line)}
.rule-card h3{margin:0 0 7px;font-size:16px}
.rule-card p{margin:0;color:#4b5563;font-size:13px;line-height:1.65}
.notice-card{padding:16px 0;border-bottom:1px solid var(--line);cursor:pointer}
.notice-card h3{margin:6px 0;font-size:16px}.notice-card p{margin:0;color:#4b5563;font-size:13px;line-height:1.55}

.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);margin-bottom:14px}
.auth-tab{border:0;background:#fff;padding:12px;font-size:12px;font-weight:800;color:var(--muted)}
.auth-tab.active{color:var(--accent);border-bottom:2px solid var(--accent)}
.text-button{width:100%;border:0;background:transparent;padding:12px;color:var(--muted);font-size:11px}
.remember-row{display:flex!important;flex-direction:row!important;align-items:center;gap:8px}
.remember-row input{width:auto!important}
.account-head{padding:24px 18px 18px;border-bottom:1px solid var(--line)}
.account-head small{font-size:9px;letter-spacing:.12em;color:var(--accent);font-weight:800}
.account-head h1{font-size:24px;margin:4px 0 6px}.account-head p{font-size:12px;color:var(--muted);margin:0}
.account-section{padding:18px;border-bottom:1px solid var(--line)}
.account-section h3{font-size:14px;margin:0 0 12px}
.account-section>p,.modal-note{font-size:12px;line-height:1.55;color:var(--muted)}
.account-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}
.account-row strong{text-align:right}
.account-button{width:100%;margin-top:10px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px;font-weight:700;font-size:12px}
.account-button.danger,.danger-button{color:#b91c1c;border-color:#fecaca;background:#fff}
.danger-zone{padding-bottom:120px}

/* v8.2.1 mobile home layout fix */
#homeView .section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-width:0}
#homeView .section-head h2{flex:0 0 auto;white-space:nowrap;word-break:keep-all;writing-mode:horizontal-tb;min-width:max-content}
#homeView .section-head .text-button{flex:0 0 auto;width:auto;margin-left:auto;padding:8px 0 8px 12px;white-space:nowrap}
#homeView .post-list{width:100%;min-width:0}
@media (max-width:380px){
  #homeView .section{padding-left:18px;padding-right:18px}
  #homeView .section-head{gap:10px}
}

.my-account-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 18px;border-bottom:1px solid var(--line)}
.my-account-actions button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 8px;font-size:12px;font-weight:700;color:var(--text)}
.my-account-actions button:last-child{color:#6b7280}

.policy-page{padding:26px 18px 120px}.policy-eyebrow{font-size:9px;font-weight:800;letter-spacing:.14em;color:var(--accent);margin-bottom:5px}
.policy-page h1{font-size:25px;margin:0 0 5px}.policy-updated{font-size:10px;color:var(--muted);padding-bottom:18px;border-bottom:1px solid var(--line)}
.policy-content section{padding:18px 0;border-bottom:1px solid var(--line)}.policy-content h2{font-size:15px;margin:0 0 8px}
.policy-content p,.policy-content li{font-size:12px;line-height:1.7;color:#4b5563}.policy-content ul{padding-left:18px;margin:8px 0}.policy-content strong{color:var(--text)}
.signup-consents{margin:8px 0 12px}.signup-consents .remember-row{align-items:flex-start;margin:8px 0;font-size:11px;line-height:1.45}
.policy-inline{border:0;background:transparent;padding:0;color:var(--accent);font:inherit;font-weight:800;text-decoration:underline}
.auth-policy-links{display:flex;justify-content:center;gap:10px;padding-top:10px}.auth-policy-links button{border:0;background:transparent;color:var(--muted);font-size:10px;text-decoration:underline}

.subcategory-tag{font-size:10px;color:var(--accent);font-weight:800}
.post-image-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.post-image-preview-item{position:relative;aspect-ratio:1;overflow:hidden;border-radius:12px}.post-image-preview-item img{width:100%;height:100%;object-fit:cover}.image-remove{position:absolute;top:5px;right:5px;border:0;border-radius:50%;width:28px;height:28px;background:#111c;color:#fff}.post-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:12px}.post-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px}
.detail-gallery{margin-top:14px}
.detail-gallery .post-gallery{margin-top:0}
.post-thumb{width:100%;max-height:220px;object-fit:cover;border-radius:12px;margin:8px 0 10px;display:block}
