
:root{--brand:#7c3aed;--brand2:#a78bfa;--ink:#172033;--muted:#64748b;--line:#e7e9f2;--bg:#f7f7fb;--card:#fff;--shadow:0 18px 48px rgba(15,23,42,.10);--font:"Noto Sans KR",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#f7f3ff,#fff 34%,#f8fafc);font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased}button,input,textarea,select{font-family:var(--font)}button{cursor:pointer}
.plaza-shell{max-width:480px;margin:0 auto;min-height:100dvh;padding-bottom:96px}.plaza-topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:10px;padding:12px 14px;background:rgba(255,255,255,.85);backdrop-filter:blur(18px);border-bottom:1px solid #e5e7eb}.plaza-back{width:40px;height:40px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;box-shadow:0 8px 18px rgba(15,23,42,.06)}.plaza-logo{font-weight:950;display:flex;gap:8px;align-items:center}.plaza-pill{border-radius:999px;padding:7px 10px;background:#f5f3ff;color:#6d28d9;font-size:.75rem;font-weight:900}
.plaza-hero{margin:14px;border-radius:28px;padding:22px;color:#fff;background:linear-gradient(135deg,#7c3aed,#a78bfa 60%,#f97316);box-shadow:var(--shadow);position:relative;overflow:hidden}.plaza-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 10%,rgba(255,255,255,.24),transparent 28%);pointer-events:none}.plaza-hero>*{position:relative}.plaza-eyebrow{display:inline-flex;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.25);font-size:.78rem;font-weight:900}.plaza-hero h1{font-size:1.9rem;line-height:1.1;margin:12px 0 8px;letter-spacing:-.04em}.plaza-hero p{font-size:.92rem;line-height:1.55;margin:0;color:rgba(255,255,255,.9)}.plaza-hero-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.plaza-cta{border:none;border-radius:14px;padding:11px 14px;font-size:.88rem;font-weight:950}.plaza-cta.primary{background:#fff;color:#5b21b6}.plaza-cta.secondary{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.25)}
.plaza-content{padding:0 14px}.plaza-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px}.plaza-tab{white-space:nowrap;border:1px solid #e9edf5;border-radius:999px;padding:10px 13px;background:#fff;color:#64748b;font-weight:900;font-size:.82rem;box-shadow:0 8px 18px rgba(15,23,42,.05)}.plaza-tab.active{background:#111827;color:#fff;border-color:#111827}.plaza-filterbar{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:12px}.plaza-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:0 12px;box-shadow:0 8px 18px rgba(15,23,42,.05)}.plaza-search input{border:none;outline:none;width:100%;height:44px;font-size:.9rem}.plaza-select{border:1px solid #e5e7eb;background:#fff;border-radius:16px;padding:0 12px;font-weight:800;color:#475569}
.plaza-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0}.plaza-stat{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:12px;text-align:center;box-shadow:0 8px 18px rgba(15,23,42,.05)}.plaza-stat small{display:block;color:#64748b;font-size:.7rem;font-weight:900}.plaza-stat b{display:block;margin-top:4px;font-size:1.1rem}.post-list{display:grid;gap:13px}.post-card{background:#fff;border:1px solid #e5e7eb;border-radius:24px;padding:16px;box-shadow:0 10px 24px rgba(15,23,42,.07);position:relative;overflow:hidden}.post-card.best:before{content:"선생님 추천";position:absolute;right:14px;top:14px;padding:6px 10px;border-radius:999px;background:#fef3c7;color:#92400e;font-size:.7rem;font-weight:950}.post-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.avatar{width:38px;height:38px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:#ede9fe}.author-block{flex:1}.author-name{font-weight:950;font-size:.9rem}.post-date{font-size:.72rem;color:#94a3b8;font-weight:700}.role-badge,.type-badge,.tag{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.68rem;font-weight:900}.role-ai{background:#eeedfe;color:#5b21b6}.role-teacher{background:#fef3c7;color:#92400e}.role-parent{background:#f1f5f9;color:#475569}.role-student{background:#ecfeff;color:#0e7490}.type-pre{background:#f0fdf4;color:#15803d}.type-q{background:#eff6ff;color:#1d4ed8}
.post-content{font-size:.96rem;line-height:1.7;margin:12px 0;color:#1e293b;font-weight:650;white-space:pre-wrap}.post-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.tag{background:#f8fafc;color:#64748b;border:1px solid #e2e8f0}.reply-list{display:grid;gap:8px;margin-top:12px}.reply-card{border-radius:18px;padding:12px;border:1px solid #e5e7eb;background:#f8fafc}.reply-card.ai{background:#eeedfe;border-color:#ded8ff}.reply-card.teacher{background:#fffbeb;border-color:#fde68a}.reply-head{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:.76rem;font-weight:950;color:#475569}.reply-content{white-space:pre-wrap;font-size:.85rem;line-height:1.55;color:#334155}.post-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.action-btn{border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc;padding:8px 10px;font-size:.78rem;font-weight:900;color:#475569}.reply-form{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:10px}.reply-input{height:42px;border:1px solid #e5e7eb;border-radius:14px;padding:0 12px}.send-btn{border:none;border-radius:14px;background:#7c3aed;color:#fff;font-weight:950;padding:0 13px}
.empty-box{background:#fff;border:1px dashed #cbd5e1;border-radius:22px;padding:34px;text-align:center;color:#64748b;font-weight:800}.plaza-floating{position:fixed;right:calc(50% - 340px);bottom:94px;z-index:80}.fab{width:58px;height:58px;border-radius:22px;border:none;background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;font-size:1.4rem;box-shadow:0 16px 40px rgba(124,58,237,.3)}
.plaza-modal{position:fixed;inset:0;background:rgba(15,23,42,.62);z-index:1000;display:flex;align-items:flex-end;justify-content:center}.plaza-modal-box{width:100%;max-width:480px;background:#fff;border-radius:28px 28px 0 0;padding:18px;max-height:92dvh;overflow:auto;box-shadow:0 -20px 60px rgba(0,0,0,.2)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.modal-head h3{margin:0;font-size:1.05rem}.close-btn{width:38px;height:38px;border-radius:999px;border:none;background:#f1f5f9}.form-grid{display:grid;gap:11px}.field label{display:block;font-size:.78rem;color:#475569;font-weight:900;margin-bottom:6px}.field input,.field textarea,.field select{width:100%;border:1.5px solid #e5e7eb;border-radius:16px;padding:12px;outline:none;font-size:.9rem;background:#fff}.field textarea{min-height:120px;resize:vertical;line-height:1.55}.two{display:grid;grid-template-columns:1fr 1fr;gap:9px}.form-tip{padding:11px 12px;border-radius:16px;background:#f5f3ff;color:#5b21b6;font-size:.8rem;font-weight:800;line-height:1.45}.submit-btn{height:48px;border:none;border-radius:16px;background:#111827;color:#fff;font-weight:950;font-size:.92rem}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:92px;background:#111827;color:#fff;padding:11px 14px;border-radius:999px;font-size:.82rem;font-weight:900;z-index:2000}
.preview-wrap{max-width:480px;margin:0 auto;padding:18px 14px 40px}.preview-card{background:#fff;border-radius:28px;border:1px solid #e5e7eb;box-shadow:var(--shadow);overflow:hidden}.preview-head{background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;padding:20px}.preview-body{padding:18px}.locked-replies{border:1px dashed #cbd5e1;border-radius:18px;padding:18px;text-align:center;color:#64748b;font-weight:800;background:#f8fafc}.cta-box{margin-top:16px;border-radius:22px;padding:18px;background:#111827;color:#fff}.cta-actions{display:grid;gap:8px;margin-top:12px}.cta-actions a,.cta-actions button{border:none;border-radius:14px;padding:12px;text-align:center;text-decoration:none;font-weight:950}.cta-main{background:#fff;color:#111827}.cta-sub{background:rgba(255,255,255,.14);color:#fff}.share-card-preview{width:100%;aspect-ratio:1/1;border-radius:28px;background:linear-gradient(135deg,#7c3aed,#a78bfa 60%,#f97316);padding:24px;color:#fff;display:flex;flex-direction:column;justify-content:space-between}
.plaza-admin-root{display:grid;gap:14px}.plaza-admin-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.plaza-admin-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:14px;box-shadow:0 6px 18px rgba(15,23,42,.06)}.plaza-admin-card small{display:block;color:#64748b;font-weight:900}.plaza-admin-card b{font-size:1.35rem}.admin-row{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:12px;display:grid;gap:8px}.admin-row p{margin:0;color:#334155;font-size:.85rem;line-height:1.5}.admin-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-actions button{border:1px solid #e5e7eb;border-radius:10px;background:#f8fafc;padding:7px 9px;font-size:.74rem;font-weight:900}
@media (max-width:760px){.plaza-floating{right:18px}.plaza-hero h1{font-size:1.55rem}.two,.plaza-filterbar{grid-template-columns:1fr}.reply-form{grid-template-columns:1fr}}


/* v3 no-Gemini extras */
.plaza-daily-mission{margin-top:16px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);border-radius:20px;padding:14px;display:flex;align-items:center;gap:12px;justify-content:space-between;backdrop-filter:blur(10px)}
.plaza-daily-mission small{display:block;color:rgba(255,255,255,.78);font-weight:900;font-size:.72rem;margin-bottom:4px}
.plaza-daily-mission b{display:block;line-height:1.35}
.plaza-daily-mission button{border:none;border-radius:12px;background:#fff;color:#5b21b6;font-weight:950;padding:10px 12px;white-space:nowrap}
.plaza-extra-tools{display:flex;gap:8px;overflow-x:auto;margin:0 0 10px;padding:2px 0 8px;scrollbar-width:none}
.plaza-extra-tools button{flex:0 0 auto;border:1px solid #e5e7eb;background:#fff;border-radius:14px;padding:9px 11px;font-size:.78rem;font-weight:900;color:#475569;box-shadow:0 8px 18px rgba(15,23,42,.05)}
.composer-helper{border:1px solid #e5e7eb;background:#f8fafc;border-radius:16px;padding:12px;display:grid;gap:10px}
.helper-title{font-size:.78rem;font-weight:950;color:#334155}
.prompt-chips{display:flex;flex-wrap:wrap;gap:7px}
.prompt-chips button{border:1px solid #ddd6fe;background:#f5f3ff;color:#5b21b6;border-radius:999px;padding:7px 10px;font-size:.76rem;font-weight:900}
.similar-box{display:grid;gap:6px}
.similar-box b{font-size:.75rem;color:#92400e}
.similar-box button{text-align:left;border:1px solid #fde68a;background:#fffbeb;color:#92400e;border-radius:12px;padding:8px;font-size:.75rem;font-weight:800}
.activity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.activity-grid div{border:1px solid #e5e7eb;background:#fff;border-radius:16px;padding:14px;text-align:center;box-shadow:0 8px 18px rgba(15,23,42,.05)}
.activity-grid small{display:block;color:#64748b;font-size:.72rem;font-weight:900}
.activity-grid b{display:block;margin-top:4px;font-size:1.24rem}
.guide-list{display:grid;gap:9px}
.guide-list button{border:1px solid #e5e7eb;background:#fff;border-radius:16px;padding:14px;text-align:left;font-size:.9rem;font-weight:900;color:#111827}
.checklist-box{display:grid;gap:9px;margin-bottom:12px}
.checklist-box label{border:1px solid #e5e7eb;background:#fff;border-radius:14px;padding:12px;font-weight:850;color:#334155;display:flex;gap:8px;align-items:center}
@media (max-width:760px){
  .plaza-daily-mission{align-items:flex-start;flex-direction:column}
  .plaza-daily-mission button{width:100%}
}


/* v4 convenience upgrade */
.plaza-convenience-panel{display:grid;gap:8px;margin:0 0 12px}
.conv-main-row,.conv-sub-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.plaza-convenience-panel button{position:relative;flex:0 0 auto;border:1px solid #e5e7eb;background:#fff;border-radius:14px;padding:10px 12px;font-size:.78rem;font-weight:950;color:#334155;box-shadow:0 8px 18px rgba(15,23,42,.05)}
.plaza-convenience-panel button i{position:absolute;right:-5px;top:-7px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:.62rem;display:flex;align-items:center;justify-content:center;font-style:normal}
.conv-sub-row button{background:#f8fafc}
.conv-result-head{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 8px 18px rgba(15,23,42,.05)}
.conv-result-head b{font-size:.95rem}.conv-result-head button{border:none;border-radius:12px;background:#111827;color:#fff;padding:8px 10px;font-size:.75rem;font-weight:900}
.conv-mini-card{cursor:pointer}.recent-list{display:grid;gap:8px;margin-bottom:12px}.recent-list button{border:1px solid #e5e7eb;background:#fff;border-radius:16px;padding:12px;text-align:left}.recent-list b{display:block;color:#111827;line-height:1.45}.recent-list small{display:block;margin-top:5px;color:#64748b;font-size:.72rem;font-weight:800}
.quick-reply-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}.quick-reply-chips button{width:100%;min-width:0;border:1px solid #ddd6fe;background:#f5f3ff;color:#5b21b6;border-radius:14px;padding:8px 7px;font-size:.72rem;font-weight:900;line-height:1.35;white-space:normal}.ai-repair-note{margin-top:8px;padding:8px 10px;border-radius:12px;background:#fff7ed;border:1px dashed #fdba74;color:#9a3412;font-size:.72rem;font-weight:850;line-height:1.45}
.teacher-quick-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;padding:10px;border-radius:16px;background:#fffbeb;border:1px solid #fde68a}.teacher-quick-actions button{border:none;border-radius:10px;background:#fff;color:#92400e;padding:7px 9px;font-size:.72rem;font-weight:950;box-shadow:0 4px 10px rgba(146,64,14,.08)}
@media (max-width:760px){.conv-main-row,.conv-sub-row{padding-bottom:2px}}
@media (max-width:340px){.quick-reply-chips{grid-template-columns:1fr}}


/* v5 UI polish: simplify without removing features */
.plaza-role-badge{border:none;border-radius:999px;background:#111827;color:#fff;font-size:.72rem;font-weight:950;padding:8px 10px;white-space:nowrap}
body[data-plaza-role="teacher"] .plaza-role-badge,
body[data-plaza-role="admin"] .plaza-role-badge{background:#92400e}
.plaza-scrolled .plaza-hero{padding:14px 18px;border-radius:20px}
.plaza-scrolled .plaza-hero h1{font-size:1.25rem;margin:8px 0 4px}
.plaza-scrolled .plaza-hero p,.plaza-scrolled .plaza-daily-mission{display:none}
.plaza-quick-write-card{margin-top:16px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);border-radius:20px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;backdrop-filter:blur(10px)}
.plaza-quick-write-card small{display:block;color:rgba(255,255,255,.78);font-size:.72rem;font-weight:900;margin-bottom:4px}
.plaza-quick-write-card b{font-size:.96rem}
.quick-write-actions{display:flex;gap:8px}
.quick-write-actions button{border:none;border-radius:12px;background:#fff;color:#5b21b6;font-weight:950;padding:10px 12px;white-space:nowrap}
.plaza-essential-tools{display:flex;gap:8px;overflow-x:auto;margin:0 0 10px;padding:2px 0 8px;scrollbar-width:none}
.plaza-essential-tools button{position:relative;flex:0 0 auto;border:1px solid #e5e7eb;background:#fff;border-radius:14px;padding:10px 12px;font-size:.78rem;font-weight:950;color:#334155;box-shadow:0 8px 18px rgba(15,23,42,.05)}
.plaza-tool-drawer-label{display:none;margin:0 0 8px;padding:10px 12px;border-radius:16px;background:#f8fafc;border:1px solid #e5e7eb;color:#334155}
.plaza-tool-drawer-label b{display:block;font-size:.82rem}
.plaza-tool-drawer-label span{display:block;margin-top:3px;font-size:.72rem;color:#64748b;font-weight:750}
.v5-advanced-tool{display:none!important}
.plaza-show-advanced-tools .v5-advanced-tool{display:flex!important}
.plaza-show-advanced-tools #plazaConveniencePanel.v5-advanced-tool{display:grid!important}
.plaza-show-advanced-tools .plaza-tool-drawer-label{display:block}
.post-actions{align-items:center}
.post-more-menu{position:relative}
.post-more-menu summary{list-style:none;border:1px solid #e5e7eb;border-radius:12px;background:#f8fafc;padding:8px 10px;font-size:.78rem;font-weight:900;color:#475569;cursor:pointer}
.post-more-menu summary::-webkit-details-marker{display:none}
.reply-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:10px}
.reply-photos figure{margin:0}
.reply-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;border:1px solid #e5e7eb;display:block}
.reply-photos figcaption{font-size:.62rem;color:#94a3b8;font-weight:700;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 더보기 메뉴는 위로 펼친다 — 카드가 overflow:hidden이라 아래로 열면 잘려서 안 보이던 버그 */
.post-more-list{position:absolute;right:0;bottom:calc(100% + 6px);z-index:20;min-width:148px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:8px;box-shadow:0 18px 40px rgba(15,23,42,.14);display:grid;gap:6px}
.more-action-btn{width:100%;justify-content:flex-start;background:#fff!important}
.teacher-quick-actions{padding:0!important;background:transparent!important;border:none!important}
.teacher-action-drawer{width:100%}
.teacher-action-drawer summary{list-style:none;border:1px solid #fde68a;border-radius:14px;background:#fffbeb;color:#92400e;padding:9px 11px;font-size:.78rem;font-weight:950;cursor:pointer}
.teacher-action-drawer summary::-webkit-details-marker{display:none}
.teacher-action-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;padding:10px;border-radius:16px;background:#fffbeb;border:1px solid #fde68a}
.teacher-action-list .danger-action{margin-left:auto;border-color:#fecaca;background:#fff1f2;color:#be123c}
.admin-delete-dialog{display:grid;gap:12px}
.admin-delete-preview{margin:0;padding:14px;border:1px solid #e5e7eb;border-radius:14px;background:#f8fafc;color:#334155;font-size:.86rem;font-weight:750;line-height:1.55;overflow-wrap:anywhere}
.admin-delete-warning{margin:0;padding:12px 13px;border:1px solid #fecaca;border-radius:14px;background:#fff1f2;color:#9f1239;font-size:.78rem;font-weight:850;line-height:1.5}
.admin-delete-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.admin-delete-actions button{min-height:46px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;color:#334155;font-weight:950}
.admin-delete-actions .danger-action{border-color:#e11d48;background:#e11d48;color:#fff}
.danger-action:disabled{cursor:wait;opacity:.62}
.composer-step-banner{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.composer-step-banner span{padding:7px 10px;border-radius:999px;background:#f5f3ff;color:#5b21b6;font-size:.72rem;font-weight:950}
.composer-live-help{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:.74rem;color:#64748b;font-weight:850}
.composer-live-help b{white-space:nowrap;color:#111827}
.composer-live-help.warn b{color:#ef4444}
.reading-focus-modal .post-card{box-shadow:none;border:none;padding:0}
.reading-focus-modal .plaza-modal-box{max-width:620px;border-radius:28px;margin-bottom:24px}
.plaza-mobile-quickbar{position:fixed;left:50%;transform:translateX(-50%);bottom:12px;z-index:90;width:calc(100% - 24px);max-width:480px;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border:1px solid #e5e7eb;border-radius:22px;padding:8px;display:none;grid-template-columns:repeat(4,1fr);gap:6px;box-shadow:0 18px 44px rgba(15,23,42,.16)}
.plaza-mobile-quickbar button{border:none;border-radius:16px;background:#f8fafc;color:#334155;padding:10px 4px;font-size:.74rem;font-weight:950}
@media (max-width:760px){
  .plaza-mobile-quickbar{display:grid}
  .plaza-floating{display:none}
  .plaza-shell{padding-bottom:112px}
  .plaza-quick-write-card{flex-direction:column;align-items:stretch}
  .quick-write-actions{display:grid;grid-template-columns:1fr 1fr}
  .plaza-role-badge{display:none}
  .post-more-list{right:auto;left:0}
}


/* v7 role UI cleanup */
.plaza-role-home{max-width:720px;margin:0 auto 12px;padding:0 14px}
.role-home-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:2px 0 10px}
.role-home-head span{display:inline-flex;padding:7px 10px;border-radius:999px;background:#f5f3ff;color:#5b21b6;font-size:.74rem;font-weight:950}
.role-home-head b{font-size:.95rem;color:#111827}
.role-home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.role-home-grid.teacher{grid-template-columns:repeat(4,minmax(0,1fr))}
.role-home-card{border:none;border-radius:20px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 10px 24px rgba(15,23,42,.07);padding:14px;text-align:left;display:grid;gap:5px;color:#111827}
.role-home-card span{font-size:1.35rem}
.role-home-card strong{font-size:.82rem;font-weight:950;color:#475569}
.role-home-card b{font-size:1.25rem;font-weight:950}
.role-home-card small{font-size:.7rem;color:#64748b;font-weight:800;line-height:1.35}
.v7-status-row{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 4px}
.v7-status{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;font-size:.68rem;font-weight:950;border:1px solid #e5e7eb;background:#f8fafc;color:#475569}
.v7-status.pre{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}
.v7-status.ai{background:#eeedfe;color:#5b21b6;border-color:#ddd6fe}
.v7-status.teacher{background:#fffbeb;color:#92400e;border-color:#fde68a}
.v7-status.covered{background:#ecfdf5;color:#047857;border-color:#a7f3d0}
.v7-status.wait{background:#fff7ed;color:#c2410c;border-color:#fed7aa}
.v7-result-head{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 8px 18px rgba(15,23,42,.05)}
.v7-result-head b{font-size:.95rem}
.v7-result-head button{border:none;border-radius:12px;background:#111827;color:#fff;padding:8px 10px;font-size:.75rem;font-weight:900}
.wizard-box{display:grid;gap:14px}
.wizard-step{display:grid;gap:8px}
.wizard-step b{font-size:.88rem}
.wizard-options{display:flex;gap:7px;flex-wrap:wrap}
.wizard-options button{border:1px solid #e5e7eb;background:#fff;border-radius:999px;padding:9px 12px;font-size:.8rem;font-weight:900;color:#475569}
.wizard-options button.selected{background:#7c3aed;color:#fff;border-color:#7c3aed}
.wizard-preview{border-radius:18px;padding:14px;background:#f8fafc;border:1px solid #e5e7eb}
.wizard-preview small{display:block;color:#64748b;font-weight:900;margin-bottom:6px}
.wizard-preview p{margin:0;font-size:1rem;font-weight:900;line-height:1.45;color:#111827}
@media (max-width:760px){
  .role-home-grid,.role-home-grid.teacher{grid-template-columns:1fr}
  .role-home-head{align-items:flex-start;flex-direction:column}
}


/* v45 plaza visual polish */
.plaza-hero{
  background:linear-gradient(135deg,#6d28d9 0%,#8b5cf6 46%,#f97316 100%)!important;
  box-shadow:0 18px 42px rgba(124,58,237,.18)!important;
}
.plaza-hero h1{
  letter-spacing:-.045em;
  text-shadow:0 2px 12px rgba(0,0,0,.14);
}
.plaza-hero p{
  font-weight:800;
  letter-spacing:-.025em;
}
.plaza-cta.primary{
  color:#5b21b6!important;
  box-shadow:0 8px 18px rgba(15,23,42,.08);
}
.plaza-entry-card,.plaza-hero{
  -webkit-font-smoothing:antialiased;
}

/* ── UI 정리: 중복 요소 제거 + 밀도 완화 ── */
/* 히어로 CTA와 중복인 '빠른 시작' 카드 숨김 */
#plazaQuickWriteCard{display:none}
/* 히어로 컴팩트화 */
.plaza-hero{padding:18px;margin:12px 14px 0}
.plaza-hero h1{font-size:1.32rem;margin:10px 0 6px}
.plaza-hero p{font-size:.84rem}
.plaza-hero-actions{margin-top:12px}
.plaza-cta{padding:9px 12px;font-size:.82rem}
/* '오늘 할 수 있는 것' 카드 컴팩트화 */
.role-home-card{padding:10px 8px}
.role-home-card span{font-size:20px}
.role-home-card strong{font-size:12.5px}
/* 필터 줄 간격 정돈 */
.plaza-tabs{padding:2px 0 8px}
.plaza-tab{padding:8px 11px;font-size:.78rem}
.plaza-essential-tools button{padding:8px 11px;font-size:.78rem}

/* ── 2026-07 UI 재정리: 슬롯 구조 통합 ─────────────────────────
   5겹 패치가 각자 상자를 만들던 것을 베이스의 칩 한 줄로 흡수.
   히어로(카피+CTA+미션) → 툴바(검색+칩 한 줄) → 요약 한 줄 → 리스트 */
.plaza-toolbar{position:sticky;top:64px;z-index:40;background:linear-gradient(180deg,rgba(247,243,255,.96),rgba(255,255,255,.96));backdrop-filter:blur(14px);padding:10px 0 2px;margin-bottom:6px}
.plaza-filterbar{margin-bottom:8px}
.plaza-chips{display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none;align-items:center}
.plaza-chips::-webkit-scrollbar{display:none}
/* convenience·extra 레이어의 래퍼는 투명하게 — 버튼들이 칩 줄에 인라인으로 합류 */
#plazaChipsRow .plaza-convenience-panel,
#plazaChipsRow .plaza-extra-tools{display:contents}
/* 칩 줄 안의 모든 버튼을 동일한 칩 모양으로 통일 */
.plaza-chips button{white-space:nowrap;flex:0 0 auto;border:1px solid #e9edf5;border-radius:999px;padding:9px 13px;background:#fff;color:#64748b;font-weight:900;font-size:.8rem;box-shadow:0 4px 10px rgba(15,23,42,.04);position:relative}
.plaza-chips button.active{background:#111827;color:#fff;border-color:#111827}
.plaza-chips button i{position:absolute;right:-4px;top:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:.6rem;display:flex;align-items:center;justify-content:center;font-style:normal}
/* 통계 카드 3개 → 리스트 위 한 줄 */
.plaza-summary-line{margin:2px 2px 10px;font-size:.76rem;font-weight:800;color:#94a3b8}
.plaza-summary-line b{color:#475569}
/* 히어로: 카피 1줄 + CTA 1개 + 미션 1줄로 슬림하게 */
.plaza-hero h1{font-size:1.22rem;line-height:1.35;margin:10px 0 0}
.plaza-hero-actions{margin-top:12px}
.plaza-cta.primary{width:100%;text-align:center;padding:12px;font-size:.9rem;border-radius:14px}
.plaza-daily-mission{margin-top:10px;padding:11px 12px;border-radius:16px}
.plaza-daily-mission b{font-size:.82rem;font-weight:800}
.plaza-daily-mission button{padding:9px 11px;font-size:.78rem}
/* 학생 모드에서 비워지는 role home 여백 제거 */
.plaza-role-home:empty{display:none;margin:0;padding:0}
/* 구세대 상자류가 어쩌다 살아나도 리스트 폭 침범 금지 */
.plaza-essential-tools,.plaza-tool-drawer-label,#plazaQuickWriteCard{display:none!important}
@media (max-width:760px){
  .plaza-daily-mission{flex-direction:row;align-items:center}
  .plaza-daily-mission button{width:auto}
}

/* ── AI티 제거: 보라 그라데 → 쌤쌤 브랜드(오렌지·화이트) 톤 ── */
.plaza-hero{background:#fff!important;color:#172033;border:1px solid #f1e5d8;box-shadow:0 10px 26px rgba(249,115,22,.08)!important}
.plaza-hero:before{display:none}
.plaza-hero h1{color:#172033;text-shadow:none}
.plaza-eyebrow{background:#fff7ed;border:1px solid #fed7aa;color:#c2410c}
.plaza-cta.primary{background:#f97316!important;color:#fff!important;box-shadow:0 8px 18px rgba(249,115,22,.22)}
.plaza-daily-mission{background:#fff7ed;border:1px solid #fed7aa;backdrop-filter:none}
.plaza-daily-mission small{color:#c2410c}
.plaza-daily-mission b{color:#43301f}
.plaza-daily-mission button{background:#f97316;color:#fff}
.plaza-toolbar{background:linear-gradient(180deg,rgba(255,251,246,.97),rgba(255,255,255,.97))}
.plaza-chips button.active{background:#f97316;color:#fff;border-color:#f97316}
.fab{background:#f97316;box-shadow:0 14px 34px rgba(249,115,22,.32)}
.send-btn{background:#f97316}
.plaza-pill{background:#fff7ed;color:#c2410c}
.form-tip{background:#fff7ed;color:#9a3412}
.submit-btn{background:#f97316}
.role-ai{background:#fff7ed;color:#b45309}
.reply-card.ai{background:#fffaf3;border-color:#fde8cd}
.avatar{background:#fff1e2}
body{background:linear-gradient(180deg,#fffaf4,#fff 34%,#f8fafc)}

/* 버그 수정: 하단 내비(z-index 9999)가 모달 시트의 등록 버튼을 가로채던 문제 */
.plaza-modal{z-index:10050}
.toast{z-index:10060}

/* ── 사진 첨부 ── */
.photo-thumbs{display:flex;gap:8px;flex-wrap:wrap}
.photo-thumb{position:relative;width:76px;height:76px;border-radius:14px;overflow:hidden;border:1px solid #e5e7eb}
.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.photo-thumb button{position:absolute;right:3px;top:3px;width:22px;height:22px;border:none;border-radius:999px;background:rgba(17,24,39,.72);color:#fff;font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center}
.photo-add{width:76px;height:76px;border:1.5px dashed #fdba74;border-radius:14px;background:#fff7ed;color:#c2410c;font-size:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.photo-add small{font-size:10px;font-weight:900}
.post-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;margin:0 0 10px}
.post-photos img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;border:1px solid #eef0f4;cursor:pointer}
.photo-full{width:100%;border-radius:16px;display:block}

/* ── 공개 탐험광장: 운영 장소와 투어 연결 ── */
.plaza-location-tour-shortcut{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,1fr) auto;align-items:center;gap:8px;margin:0 0 10px;padding:10px 11px;border:1px solid #fed7aa;border-radius:16px;background:#fff7ed}
.plaza-location-tour-shortcut[hidden]{display:none!important}
.plaza-location-tour-shortcut div{min-width:0}
.plaza-location-tour-shortcut small{display:block;color:#9a3412;font-size:.66rem;font-weight:900}
.plaza-location-tour-shortcut strong{display:block;margin-top:2px;color:#431407;font-size:.82rem;overflow-wrap:anywhere}
.plaza-location-tour-shortcut select{min-width:0;width:100%;height:38px;border:1px solid #fdba74;border-radius:11px;background:#fff;padding:0 9px;color:#7c2d12;font-size:.75rem;font-weight:850}
.plaza-location-tour-shortcut a,.composer-tour-preview{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:38px;border-radius:11px;background:#f97316;color:#fff;text-decoration:none;padding:8px 10px;font-size:.75rem;font-weight:950;text-align:center}
.post-tour-link{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;margin:8px 0 12px;padding:10px 11px;border:1px solid #fed7aa;border-radius:14px;background:#fff7ed;color:#7c2d12;text-decoration:none}
.post-tour-link span:first-child{font-size:.68rem;font-weight:850;color:#c2410c}
.post-tour-link strong{min-width:0;font-size:.78rem;overflow-wrap:anywhere}
.post-tour-link span:last-child{font-weight:950}
.composer-tour-preview{margin-top:7px;width:100%;background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.composer-tour-preview[hidden]{display:none}
.preview-location{display:flex;align-items:center;gap:8px;margin-bottom:10px;color:#475569;font-size:.78rem}
.preview-location span{padding:4px 7px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:.68rem;font-weight:900}
.preview-location strong{overflow-wrap:anywhere}
.preview-post-stats{margin:-4px 0 10px;color:#64748b;font-size:.72rem;font-weight:850}
@media (max-width:430px){
  .plaza-filterbar{grid-template-columns:1fr}
  .plaza-select{width:100%;height:44px}
  .plaza-location-tour-shortcut{grid-template-columns:1fr}
  .plaza-location-tour-shortcut a{width:100%}
}
