/* ===== RESET & BASE ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:"Pretendard","Noto Sans KR","Noto Sans JP",sans-serif;color:#1A1A2E;background:#FDF6EC;line-height:1.7;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{cursor:pointer;border:none;background:none;font:inherit}
ul,ol{list-style:none}

/* ===== VARIABLES ===== */
:root{
  --primary:#C84B31;
  --secondary:#2D4A22;
  --bg:#FDF6EC;
  --text:#1A1A2E;
  --accent:#E8A83E;
  --sub-accent:#5C7A99;
  --border:#D4C5A9;
  --card-bg:#FFFDF8;
  --shadow:0 2px 12px rgba(26,26,46,.08);
  --radius:6px;
  --container:1200px;
}

.container{max-width:var(--container);margin:0 auto;padding:0 20px}

/* ===== TYPOGRAPHY ===== */
h1,h2,h3{font-family:"Noto Serif KR","Noto Serif JP",serif;font-weight:700;line-height:1.3}
h2{font-size:clamp(1.5rem,3vw,2rem)}
h3{font-size:clamp(1rem,2vw,1.25rem)}

/* ===== BUTTONS ===== */
.btn{display:inline-block;padding:12px 28px;border-radius:var(--radius);font-weight:700;font-size:.95rem;transition:all .25s;text-align:center}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:#a83d27;transform:translateY(-2px)}
.btn-secondary{background:transparent;color:var(--primary);border:2px solid var(--primary)}
.btn-secondary:hover{background:var(--primary);color:#fff}

/* ===== SECTION COMMON ===== */
.section{padding:80px 0;display:none}
.section.active{display:block}
.section:nth-child(even){background:#F7F1E5}
.section-title{text-align:center;margin-bottom:12px;display:flex;align-items:center;justify-content:center;gap:12px}
.section-desc{text-align:center;color:#666;margin-bottom:40px;max-width:600px;margin-left:auto;margin-right:auto}
.title-stamp{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:3px solid var(--primary);border-radius:50%;color:var(--primary);font-family:"Noto Serif JP",serif;font-size:1.2rem;font-weight:700;flex-shrink:0}

/* ===== SECTION DIVIDER ===== */
.section.active::before{content:'✦';display:block;text-align:center;font-size:.9rem;color:var(--border);margin-bottom:40px;position:relative;line-height:1}
.section.active::before{background:linear-gradient(90deg,transparent,var(--border) 20%,transparent 45%,transparent 55%,var(--border) 80%,transparent);background-size:100% 1px;background-position:center;background-repeat:no-repeat;padding:0 20px;color:var(--primary);font-size:1rem;letter-spacing:8px;content:'⬥ 木ノ葉 ⬥'}

/* ===== BADGE PULSE ===== */
@keyframes kagePulse{0%,100%{box-shadow:0 0 0 0 rgba(200,75,49,.4)}50%{box-shadow:0 0 8px 3px rgba(200,75,49,.2)}}
.badge-kage{animation:kagePulse 2.5s infinite}
@keyframes sRankPulse{0%,100%{box-shadow:0 0 0 0 rgba(200,75,49,.3)}50%{box-shadow:0 0 12px 4px rgba(200,75,49,.15)}}
.mission-card[data-rank="S"]{animation:sRankPulse 3s infinite}
.notice-badge.urgent{animation:kagePulse 2.5s infinite}

/* ===== FADE IN ===== */
.fade-in{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}

/* ===== 1. HEADER ===== */
.header{position:sticky;top:0;z-index:100;background:rgba(253,246,236,.92);backdrop-filter:blur(10px);border-bottom:2px solid var(--border);transition:box-shadow .3s}
.header.scrolled{box-shadow:0 2px 20px rgba(0,0,0,.08)}
.header-inner{display:flex;align-items:center;justify-content:space-between;max-width:1440px;margin:0 auto;padding:0 24px;height:64px}
.logo{display:flex;align-items:center;gap:10px}
.logo-img{width:36px;height:36px;object-fit:contain;flex-shrink:0}
.footer-logo-img{width:32px;height:32px;object-fit:contain;filter:brightness(1.5)}
.logo-text{display:flex;flex-direction:column;line-height:1.2}
.logo-text span{font-family:"Noto Serif JP",serif;font-size:1.05rem;font-weight:700;color:var(--secondary)}
.logo-text small{font-size:.7rem;color:#888;letter-spacing:1px}
.nav-desktop{display:flex;gap:4px;flex-wrap:nowrap;align-items:center}
.nav-group{position:relative}
.nav-group-btn{font-size:.85rem;font-weight:600;padding:6px 12px;background:transparent;border:none;color:var(--text);cursor:pointer;transition:color .2s;white-space:nowrap;font-family:inherit}
.nav-group-btn:hover,.nav-group.active .nav-group-btn{color:var(--primary)}
.nav-dropdown{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:140px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px rgba(0,0,0,.12);padding:6px 0;z-index:200}
.nav-group:hover .nav-dropdown{display:block}
.nav-dropdown a{display:block;padding:8px 16px;font-size:.82rem;font-weight:600;color:var(--text);white-space:nowrap;transition:background .15s,color .15s}
.nav-dropdown a:hover,.nav-dropdown a.nav-active{background:rgba(200,75,49,.08);color:var(--primary)}
.nav-direct-link{font-size:.85rem;font-weight:600;padding:6px 12px;transition:color .2s;white-space:nowrap}
.nav-direct-link:hover,.nav-direct-link.nav-active{color:var(--primary)}
.header-right{display:flex;align-items:center;gap:12px}
.lang-switcher{display:flex;gap:4px}
.lang-switcher button{padding:4px 10px;font-size:.75rem;border-radius:3px;border:1px solid var(--border);background:transparent;color:#666;transition:all .2s}
.lang-switcher button.active{background:var(--secondary);color:#fff;border-color:var(--secondary)}
.hamburger{display:none;flex-direction:column;gap:5px;padding:8px}
.hamburger span{display:block;width:22px;height:2px;background:var(--text);transition:all .3s}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.mobile-menu{display:none;position:absolute;top:64px;left:0;right:0;background:var(--bg);border-bottom:2px solid var(--border);padding:20px;box-shadow:var(--shadow)}
.mobile-menu.open{display:block}
.mobile-menu nav{display:flex;flex-direction:column;gap:8px}
.mobile-menu a{font-size:1rem;font-weight:600;padding:8px 0;border-bottom:1px solid var(--border)}
.mobile-nav-group{border-bottom:1px solid var(--border)}
.mobile-nav-group-btn{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 0;font-size:1rem;font-weight:700;background:none;border:none;color:var(--text);cursor:pointer;font-family:inherit}
.mobile-nav-sub{display:none;padding:0 0 8px 16px;flex-direction:column;gap:4px}
.mobile-nav-group.open .mobile-nav-sub{display:flex}
.mobile-nav-sub a{font-size:.92rem;font-weight:500;padding:8px 0;border-bottom:none;color:#555}
.mobile-nav-sub a:hover{color:var(--primary)}
.mobile-direct-link{display:block;padding:12px 0;font-size:1rem;font-weight:700;border-bottom:1px solid var(--border)}

/* ===== 2. HERO ===== */
.hero{position:relative;min-height:100vh;align-items:center;justify-content:center;overflow:hidden;display:none}
.hero.active{display:flex}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,26,46,.55) 0%,rgba(26,26,46,.75) 100%)}
.hero-content{position:relative;z-index:2;text-align:center;padding:20px;max-width:960px}
.hero h1{font-family:"Noto Serif JP",serif;font-size:clamp(1.6rem,4vw,3rem);color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.4);margin-bottom:20px;letter-spacing:3px;line-height:1.3;font-weight:800;text-align:center;word-break:keep-all}
.hero-sub{color:rgba(255,255,255,.9);font-size:clamp(.85rem,1.6vw,1rem);margin-bottom:32px;line-height:1.8;max-width:720px;margin-left:auto;margin-right:auto;word-break:keep-all}
.hero-greeting{display:flex;align-items:flex-start;gap:16px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);padding:20px;margin-bottom:32px;text-align:left}
.greeting-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--accent);flex-shrink:0}
.hero-greeting strong{color:var(--accent);font-size:.9rem;display:block;margin-bottom:4px}
.hero-greeting p{color:rgba(255,255,255,.9);font-size:.88rem;line-height:1.6}
.hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:40px}
.scroll-indicator{display:flex;justify-content:center}
.scroll-indicator span{display:block;width:24px;height:38px;border:2px solid rgba(255,255,255,.5);border-radius:12px;position:relative}
.scroll-indicator span::after{content:'';position:absolute;top:6px;left:50%;transform:translateX(-50%);width:4px;height:8px;background:#fff;border-radius:2px;animation:scrollBounce 1.8s infinite}
@keyframes scrollBounce{0%,100%{transform:translateX(-50%) translateY(0);opacity:1}50%{transform:translateX(-50%) translateY(12px);opacity:.3}}

/* ===== FEATURED NINJA (Hero) ===== */
.hero-featured{margin-top:32px;text-align:center}
.hero-featured h3{color:#fff;font-family:"Noto Serif JP",serif;font-size:1.1rem;margin-bottom:16px;letter-spacing:1px}
.featured-ninja-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;max-width:720px;margin:0 auto 20px}
.featured-ninja-card{background:rgba(255,255,255,.15);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);padding:14px 8px;text-align:center;transition:transform .2s,background .2s;cursor:pointer;text-decoration:none;display:block}
.featured-ninja-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.25)}
.featured-ninja-card img{width:52px;height:52px;border-radius:50%;object-fit:cover;object-position:top;border:2px solid var(--accent);margin-bottom:6px}
.featured-ninja-card .fn-name{color:#fff;font-size:.78rem;font-weight:700;display:block;line-height:1.3}
.featured-ninja-card .fn-rank{color:var(--accent);font-size:.65rem;font-weight:600;display:block;margin-top:2px}
@media(max-width:767px){.featured-ninja-grid{grid-template-columns:repeat(3,1fr);gap:10px}}
@media(min-width:768px) and (max-width:1023px){.featured-ninja-grid{grid-template-columns:repeat(3,1fr);gap:10px;max-width:480px}}

/* ===== 3. HOKAGE ===== */
.hokage-section{background:#F7F1E5}
.hokage-timeline{display:flex;flex-direction:column;gap:24px;max-width:800px;margin:0 auto}
.hokage-card{display:flex;gap:20px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:20px;position:relative;overflow:hidden;transition:transform .3s,box-shadow .3s}
.hokage-card:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(0,0,0,.1)}
.hokage-order{position:absolute;top:12px;right:16px;font-family:"Noto Serif JP",serif;font-size:.85rem;color:var(--primary);font-weight:700}
.hokage-order.current{background:var(--accent);color:#fff;padding:2px 10px;border-radius:3px}
.hokage-card img{width:100px;height:100px;object-fit:cover;object-position:top;border-radius:var(--radius);flex-shrink:0;border:2px solid var(--border)}
.hokage-info h3{margin-bottom:2px}
.hokage-jp{font-size:.8rem;color:#888;display:block;margin-bottom:8px}
.hokage-info p{font-size:.88rem;color:#555;line-height:1.6}
.hokage-detail-toggle{display:inline-block;margin-top:8px;font-size:.82rem;color:var(--primary);cursor:pointer;font-weight:600;transition:color .2s}
.hokage-detail-toggle:hover{color:var(--accent)}
.hokage-detail{display:none;margin-top:12px;padding:16px;background:var(--parchment);border-left:3px solid var(--primary);border-radius:0 var(--radius) var(--radius) 0;font-size:.88rem;color:#444;line-height:1.8}
.hokage-card.detail-open .hokage-detail{display:block}
.hokage-current{border:2px solid var(--accent);background:linear-gradient(135deg,#FFFDF8,#FFF8ED)}
.hokage-quote{margin-top:12px;padding:12px;background:rgba(232,168,62,.08);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0}
.quote-label{font-size:.75rem;color:var(--accent);font-weight:700;text-transform:uppercase;display:block;margin-bottom:4px}
.hokage-quote blockquote{font-style:italic;color:#555;font-size:.9rem}

/* ===== 4. NINJA REGISTRY ===== */
.ninja-filters{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:32px}
.filter-group{display:flex;flex-direction:column;gap:4px}
.filter-group label{font-size:.75rem;font-weight:700;color:#888;text-transform:uppercase}
.filter-group select{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card-bg);font-size:.88rem;min-width:120px}
.ninja-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.ninja-card{background:var(--card-bg);border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .3s,box-shadow .3s,border-color .3s}
.ninja-card:hover{transform:translateY(-5px);box-shadow:0 4px 24px color-mix(in srgb, var(--ninja-color,#ccc) 35%, transparent);border-color:var(--ninja-color,var(--border))}
.ninja-card:hover .ninja-card-header img{box-shadow:0 0 12px color-mix(in srgb, var(--ninja-color,#ccc) 50%, transparent);transform:scale(1.05);transition:all .3s}
.ninja-card-header{display:flex;gap:14px;padding:16px;align-items:center}
.ninja-card-header img{width:70px;height:70px;object-fit:cover;object-position:top;border-radius:50%;border:2px solid var(--border);flex-shrink:0}
.ninja-name{font-weight:700;font-size:1rem}
.ninja-name-jp{font-size:.75rem;color:#888}
.ninja-reg-no{font-size:.7rem;color:var(--sub-accent);font-family:monospace}
.ninja-card-body{padding:0 16px 16px}
.ninja-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.ninja-badge{font-size:.7rem;padding:2px 8px;border-radius:3px;font-weight:600}
.badge-kage{background:#C84B31;color:#fff}
.badge-jonin{background:#2D4A22;color:#fff}
.badge-sp-jonin{background:#5C7A99;color:#fff}
.badge-chunin{background:#E8A83E;color:#fff}
.badge-genin{background:#D4C5A9;color:#333}
.ninja-status{font-size:.7rem;padding:2px 8px;border-radius:3px}
.status-active{background:#d4edda;color:#155724}
.status-retired{background:#e2e3e5;color:#383d41}
.status-fallen{background:#f8d7da;color:#721c24}
.ninja-attrs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.attr-tag{font-size:.7rem;padding:2px 6px;border:1px solid var(--border);border-radius:3px;color:#666}
.ninja-jutsu{font-size:.8rem;color:#555}
.ninja-jutsu span{display:inline-block;margin-right:6px}
.ninja-avatar-fallback{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.4rem;font-weight:700;flex-shrink:0;font-family:"Noto Serif JP",serif;opacity:.85}

/* ===== 5. MISSIONS ===== */
.missions-section{background:var(--bg)}
.mission-tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:12px}
.mission-status-filter{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-bottom:28px}
.mission-admin-bar{display:flex;gap:10px;justify-content:center;align-items:center;margin-bottom:18px;flex-wrap:wrap}
.mission-admin-bar .btn-admin-toggle{padding:6px 16px;border:1.5px solid #D4C5A9;border-radius:20px;font-size:.8rem;font-weight:600;background:none;color:#888;cursor:pointer;transition:all .2s}
.mission-admin-bar .btn-admin-toggle.active{background:#C84B31;color:#fff;border-color:#C84B31}
.mission-form-wrap{background:#fff;border:2px solid #D4C5A9;border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:0 2px 12px rgba(0,0,0,.08)}
.mission-form-wrap h3{font-size:1.1rem;margin-bottom:16px;color:#2D4A22}
.mission-form-wrap .form-row{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.mission-form-wrap .form-group{flex:1;min-width:180px}
.mission-form-wrap label{display:block;font-size:.78rem;font-weight:600;margin-bottom:4px;color:#555}
.mission-form-wrap input,.mission-form-wrap select{width:100%;padding:8px 10px;border:1.5px solid #D4C5A9;border-radius:8px;font-size:.85rem}
.mission-form-actions{display:flex;gap:10px;margin-top:12px}
.mission-admin-btns{display:flex;gap:4px;margin-top:6px}
.mission-admin-btns .btn-sm{padding:3px 10px;font-size:.7rem;border-radius:6px;border:1px solid #D4C5A9;background:#fff;cursor:pointer;transition:all .15s}
.mission-admin-btns .btn-sm:hover{background:#f0ebe3}
.mission-admin-btns .btn-danger{color:#C84B31;border-color:#C84B31}
.mission-admin-btns .btn-danger:hover{background:#C84B31;color:#fff}
.mission-custom-badge{display:inline-block;font-size:.6rem;padding:1px 6px;background:#E8A83E;color:#fff;border-radius:8px;vertical-align:middle;margin-left:4px}
.status-filter-btn{padding:5px 14px;border:1.5px solid #D4C5A9;border-radius:20px;font-size:.78rem;font-weight:600;background:none;color:#888;cursor:pointer;transition:all .2s}
.status-filter-btn.active{background:#2D4A22;color:#fff;border-color:#2D4A22}
.status-filter-btn:hover:not(.active){border-color:#2D4A22;color:#2D4A22}
.tab-btn{padding:8px 20px;border:2px solid var(--border);border-radius:var(--radius);font-weight:600;font-size:.85rem;transition:all .2s}
.tab-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.tab-btn:hover:not(.active){border-color:var(--primary);color:var(--primary)}
.mission-list{display:flex;flex-direction:column;gap:16px;max-width:900px;margin:0 auto}
.mission-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;transition:transform .2s;position:relative;overflow:hidden}
.mission-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px}
.mission-card[data-rank="S"]::before{background:#C84B31}
.mission-card[data-rank="A"]::before{background:#E8A83E}
.mission-card[data-rank="B"]::before{background:#5C7A99}
.mission-card[data-rank="C"]::before{background:#2D4A22}
.mission-card[data-rank="D"]::before{background:#D4C5A9}
.mission-card:hover{transform:translateX(4px)}
.mission-rank{font-size:1.2rem;font-weight:900;font-family:"Noto Serif JP",serif;width:40px;text-align:center;flex-shrink:0}
.rank-S{color:#C84B31}
.rank-A{color:#E8A83E}
.rank-B{color:#5C7A99}
.rank-C{color:#2D4A22}
.rank-D{color:#999}
.mission-body{flex:1;min-width:200px}
.mission-code{font-size:.7rem;color:#999;font-family:monospace}
.mission-name{font-weight:700;font-size:.95rem;margin:2px 0}
.mission-detail{font-size:.8rem;color:#666}
.mission-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.mission-status{font-size:.72rem;padding:3px 10px;border-radius:3px;font-weight:600}
.status-open{background:#d4edda;color:#155724}
.status-progress{background:#fff3cd;color:#856404}
.status-done{background:#e2e3e5;color:#383d41}
.mission-reward{font-size:.8rem;font-weight:700;color:var(--accent)}
.mission-classified{font-size:.7rem;color:var(--primary);font-style:italic}

/* ===== PAGINATION ===== */
.pagination{margin-top:24px;text-align:center}
.page-btns{display:inline-flex;gap:4px;flex-wrap:wrap;justify-content:center}
.page-btn{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;cursor:pointer;font-size:.85rem;color:var(--text);transition:all .2s}
.page-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:700}
.page-btn.disabled,.page-btn:disabled{opacity:.4;pointer-events:none}
.page-info{display:block;margin-top:8px;font-size:.78rem;color:#888}

/* ===== 6. FACILITIES ===== */
.facilities-section{background:#F7F1E5}
.facility-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.facility-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .3s,box-shadow .3s}
.facility-card:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(0,0,0,.1)}
.facility-card img{width:100%;height:180px;object-fit:cover}
.facility-card h3{padding:16px 16px 0;font-size:1.05rem}
.fac-jp{display:block;padding:0 16px;font-size:.75rem;color:#888;margin-bottom:8px}
.facility-card>p{padding:0 16px;font-size:.85rem;color:#555;line-height:1.6}
.fac-meta{display:flex;flex-wrap:wrap;gap:12px;padding:12px 16px;font-size:.78rem;color:#777;border-top:1px solid var(--border);margin-top:12px}
.fac-classified{position:relative}
.classified-overlay{position:absolute;inset:0;background:rgba(26,26,46,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2;color:#fff}
.classified-overlay span{font-family:"Noto Serif JP",serif;font-size:2rem;font-weight:700;color:var(--primary);border:3px solid var(--primary);padding:4px 16px;border-radius:4px;margin-bottom:8px;transform:rotate(-8deg)}
.classified-overlay p{font-size:.85rem;color:#ccc}

/* ===== 7. NOTICES ===== */
.notice-list{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:8px}
.notice-item{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.notice-head{padding:16px 20px;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:10px;transition:background .2s}
.notice-head:hover{background:rgba(200,75,49,.04)}
.notice-head::after{content:'▾';margin-left:auto;color:#999;transition:transform .3s;font-size:.8rem}
.notice-item.open .notice-head::after{transform:rotate(180deg)}
.notice-badge{font-size:.7rem;padding:3px 10px;border-radius:3px;font-weight:700;flex-shrink:0}
.notice-badge.urgent{background:#C84B31;color:#fff}
.notice-badge.info{background:#5C7A99;color:#fff}
.notice-badge.facility{background:#2D4A22;color:#fff}
.notice-badge.hr{background:#E8A83E;color:#fff}
.notice-badge.celebrate{background:#9B59B6;color:#fff}
.notice-badge.warning{background:#E67E22;color:#fff}
.notice-date{font-size:.75rem;color:#999;flex-shrink:0}
.notice-head h3{font-size:.9rem;font-family:"Pretendard","Noto Sans KR",sans-serif;font-weight:600;flex:1;min-width:200px}
.notice-body{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s}
.notice-item.open .notice-body{max-height:300px;padding:0 20px 20px}
.notice-body p{font-size:.88rem;color:#555;line-height:1.7}
.notice-write-form{max-width:700px;margin:0 auto 24px;background:var(--card-bg);border:2px solid var(--accent);border-radius:var(--radius);padding:24px}
.notice-write-form h3{font-size:1rem;margin-bottom:16px;color:var(--accent);font-weight:700}
.notice-write-form .form-group{margin-bottom:12px}
.notice-write-form label{display:block;font-size:.82rem;font-weight:600;margin-bottom:4px;color:#555}
.notice-write-form input,.notice-write-form textarea,.notice-write-form select{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:.88rem;font-family:inherit;box-sizing:border-box}
.notice-write-form textarea{resize:vertical}
.notice-admin-actions{display:inline-flex;gap:6px;margin-left:8px}
.notice-admin-actions .btn-sm{font-size:.7rem;padding:2px 8px}

/* ===== 8. PETITION ===== */
.petition-section{background:var(--bg)}
.petition-form{max-width:700px;margin:0 auto;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:32px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.form-group label{font-size:.85rem;font-weight:700;color:#444}
.form-group input,.form-group select,.form-group textarea{padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem;background:#fff;transition:border-color .2s;font-family:inherit}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary)}
.form-group textarea{resize:vertical}
.radio-group{display:flex;gap:20px;flex-wrap:wrap}
.radio-group label{display:flex;align-items:center;gap:6px;font-size:.88rem;cursor:pointer}
.form-note{margin-top:16px;font-size:.8rem;color:var(--primary);font-style:italic}
.btn-sm{padding:6px 16px;font-size:.82rem}

/* ===== PETITION LIST ===== */
.petition-list-section{max-width:700px;margin:40px auto 0}
.petition-list-title{font-size:1.1rem;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--border)}
.admin-bar{margin-bottom:16px}
.admin-login-box{display:flex;gap:8px;align-items:center;padding:12px;background:rgba(26,26,46,.04);border:1px solid var(--border);border-radius:var(--radius)}
.admin-login-box span{font-size:.82rem;font-weight:700;color:#666;white-space:nowrap}
.admin-login-box input{padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;max-width:180px}
.admin-logged-in{display:flex;gap:8px;align-items:center;padding:10px 12px;background:rgba(45,74,34,.06);border:1px solid var(--secondary);border-radius:var(--radius)}
.admin-logged-in span{font-size:.82rem;font-weight:700;color:var(--secondary)}
.petition-empty{text-align:center;padding:32px;color:#999;font-size:.9rem}
.petition-items{display:flex;flex-direction:column;gap:12px}
.petition-item{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color .2s}
.petition-item.replied{border-left:4px solid var(--secondary)}
.petition-item-header{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.petition-urg{font-size:.7rem;padding:2px 8px;border-radius:3px;font-weight:700}
.urg-normal{background:#e2e3e5;color:#383d41}
.urg-urgent{background:#fff3cd;color:#856404}
.urg-s{background:#C84B31;color:#fff}
.petition-type{font-size:.75rem;padding:2px 8px;background:var(--sub-accent);color:#fff;border-radius:3px}
.petition-date{font-size:.75rem;color:#999;margin-left:auto}
.btn-delete{font-size:.7rem;color:var(--primary);cursor:pointer;background:none;border:1px solid var(--primary);border-radius:3px;padding:2px 8px}
.petition-item-info{font-size:.85rem;color:#555;margin-bottom:8px}
.petition-item-body{font-size:.88rem;color:#333;line-height:1.6;padding:8px 0;border-top:1px solid var(--border)}
.petition-reply{margin-top:12px;padding:12px;background:rgba(45,74,34,.06);border-left:3px solid var(--secondary);border-radius:0 var(--radius) var(--radius) 0;font-size:.85rem;color:#444;line-height:1.6}
.petition-reply strong{color:var(--secondary);display:block;margin-bottom:4px}
.petition-pending{margin-top:8px;font-size:.78rem;color:#999;font-style:italic}
.petition-reply-form{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.petition-reply-form textarea{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;resize:vertical;font-family:inherit}

/* ===== 9. VILLAGES ===== */
.villages-section{background:#F7F1E5}
.village-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-bottom:40px}
.village-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .3s}
.village-card:hover{transform:translateY(-3px)}
.village-card>img{width:100%;height:160px;object-fit:cover}
.village-info{padding:16px}
.village-info h3{font-size:.95rem;margin-bottom:10px}
.kage-row{display:flex;align-items:center;gap:10px}
.kage-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:top;border:2px solid var(--border);flex-shrink:0}
.kage-row strong{font-size:.85rem;display:block}
.alliance-badge{font-size:.65rem;padding:2px 8px;background:#d4edda;color:#155724;border-radius:3px;font-weight:600;display:inline-block;margin-top:4px}
.alliance-statement{background:var(--card-bg);border:2px solid var(--accent);border-radius:var(--radius);padding:28px;text-align:center;max-width:700px;margin:0 auto}
.alliance-statement h3{color:var(--accent);margin-bottom:12px}
.alliance-statement p{font-size:.95rem;color:#555;font-style:italic;line-height:1.8;margin-bottom:8px}
.alliance-statement span{font-size:.85rem;color:#888}

/* ===== MODAL ===== */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(26,26,46,.7);z-index:200;align-items:center;justify-content:center;padding:20px}
.modal-overlay.open{display:flex}
.modal-content{background:var(--card-bg);border-radius:var(--radius);max-width:700px;width:100%;max-height:85vh;overflow-y:auto;position:relative;padding:32px;border:2px solid var(--border);box-shadow:0 12px 40px rgba(0,0,0,.3)}
.modal-close{position:absolute;top:12px;right:16px;font-size:1.5rem;color:#888;cursor:pointer;background:none;border:none;line-height:1}
.modal-close:hover{color:var(--primary)}
.modal-village-header{display:flex;gap:20px;margin-bottom:24px;align-items:flex-start}
.modal-village-header img{width:100%;height:200px;object-fit:cover;border-radius:var(--radius)}
.modal-kage-section{display:flex;gap:16px;align-items:flex-start;margin-bottom:20px;padding:16px;background:rgba(200,75,49,.04);border-radius:var(--radius);border:1px solid var(--border)}
.modal-kage-section img{width:80px;height:80px;object-fit:cover;object-position:top;border-radius:50%;border:2px solid var(--accent);flex-shrink:0}
.modal-kage-info h4{margin-bottom:4px;color:var(--primary)}
.modal-kage-info p{font-size:.88rem;color:#555;line-height:1.6}
.modal-village-desc{margin-top:16px}
.modal-village-desc h4{margin-bottom:8px;color:var(--secondary)}
.modal-village-desc p{font-size:.9rem;color:#555;line-height:1.7}
.village-card{cursor:pointer}

/* ===== MISSION DETAIL MODAL ===== */
.mission-card:hover{background:rgba(200,75,49,.04);transform:translateY(-1px);transition:all .2s}
.mission-modal-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--border)}
.mission-modal-header h3{color:var(--text);font-family:"Pretendard","Noto Sans KR",sans-serif}
.mission-modal-classified{background:rgba(200,75,49,.08);border:1px solid var(--primary);border-radius:var(--radius);padding:12px 16px;margin-bottom:16px;font-size:.85rem;color:var(--primary);font-weight:600}
.mission-detail-table{width:100%;border-collapse:collapse;margin-bottom:20px}
.mission-detail-table th{text-align:left;padding:12px 16px;font-size:.85rem;color:#666;font-weight:600;width:120px;border-bottom:1px solid var(--border);background:rgba(26,26,46,.02)}
.mission-detail-table td{padding:12px 16px;font-size:.9rem;color:var(--text);border-bottom:1px solid var(--border)}
.mission-apply-btn{width:100%;padding:14px;font-size:1rem;font-weight:700;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;transition:background .2s;font-family:inherit}
.mission-apply-btn:hover{background:#cf9632}


/* ===== 10. FOOTER ===== */
.footer{background:#1A1A2E;color:#D4C5A9;padding:40px 0 24px;display:block}
.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;flex-wrap:wrap}
.footer-logo{display:flex;align-items:center;gap:10px;font-family:"Noto Serif JP",serif;font-size:1.05rem;font-weight:700}
.footer-info p{font-size:.82rem;color:#999;line-height:1.8}
.footer-bottom{border-top:1px solid rgba(212,197,169,.15);padding-top:16px;text-align:center}
.footer-bottom p{font-size:.78rem;color:#777;line-height:1.7}
.footer-fan{margin-top:8px;font-size:.72rem;color:#555}

/* ===== NINJA REGISTRATION ===== */
.register-section{background:var(--bg)}
.event-banner{max-width:700px;margin:0 auto 28px;background:linear-gradient(135deg,#FFF8E7,#FFF0D4);border:2px solid #E8A83E;border-radius:14px;padding:24px 28px;position:relative;overflow:hidden;box-shadow:0 4px 16px rgba(232,168,62,.15)}
.event-badge{position:absolute;top:0;right:0;background:linear-gradient(135deg,#C84B31,#E8A83E);color:#fff;font-size:.7rem;font-weight:800;padding:6px 18px;border-radius:0 12px 0 12px;letter-spacing:1px}
.event-content h3{font-size:1.15rem;margin-bottom:10px;color:#C84B31}
.event-content p{font-size:.9rem;line-height:1.7;color:#333}
.event-tag{color:#C84B31;font-weight:700;text-decoration:none;border-bottom:2px solid #E8A83E}
.event-tag:hover{color:#E8A83E}
.event-steps{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap;font-size:.82rem;font-weight:600;color:#2D4A22}
.event-steps span{background:#fff;padding:4px 10px;border-radius:8px;border:1px solid #D4C5A9}
.event-steps span:nth-child(even){background:none;border:none;color:#E8A83E;font-size:1rem}
@media(max-width:767px){.event-banner{padding:18px 16px;margin-bottom:20px}.event-steps{font-size:.75rem;gap:4px}.event-steps span{padding:3px 7px}.event-content h3{font-size:1rem}}
.register-form{max-width:700px;margin:0 auto;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:32px}
.reg-warning{margin:20px 0;padding:16px;background:rgba(200,75,49,.06);border:2px solid var(--primary);border-radius:var(--radius)}
.reg-warning p{font-size:.82rem;color:var(--primary);line-height:1.7;font-weight:600}

/* ===== REGISTRATION BOARD ===== */
.reg-board{margin-top:48px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:32px}
.reg-board-title{display:flex;align-items:center;gap:10px;margin-bottom:20px;font-size:1.2rem}
.title-stamp-sm{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:2px solid var(--primary);border-radius:50%;color:var(--primary);font-family:"Noto Serif JP",serif;font-size:.9rem;font-weight:700;flex-shrink:0}
.reg-board-toolbar{display:flex;justify-content:flex-end;margin-bottom:16px}
.btn-admin{background:var(--secondary);color:#fff;padding:8px 16px;border-radius:var(--radius);font-size:.82rem;font-weight:700;transition:all .25s}
.btn-admin:hover{background:#1e3516;transform:translateY(-1px)}
.btn-admin.active{background:var(--accent);color:var(--text)}

/* Admin Modal */
.admin-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center}
.admin-modal-inner{background:var(--card-bg);border:2px solid var(--border);border-radius:var(--radius);padding:32px;max-width:360px;width:90%;text-align:center}
.admin-modal-inner h4{font-size:1.1rem;margin-bottom:8px;color:var(--primary)}
.admin-modal-inner p{font-size:.85rem;color:#666;margin-bottom:16px}
.admin-modal-inner input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);font-size:.95rem;margin-bottom:12px;text-align:center;letter-spacing:2px}
.admin-modal-btns{display:flex;gap:8px;justify-content:center}
.admin-modal-btns .btn{padding:8px 20px;font-size:.85rem}
.admin-error{color:var(--primary);font-size:.8rem;margin-top:8px;font-weight:600}

/* Board Cards */
.reg-board-list{display:flex;flex-direction:column;gap:12px}
.board-empty{text-align:center;color:#999;padding:40px 0;font-size:.9rem}
.board-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:box-shadow .2s}
.board-card:hover{box-shadow:var(--shadow)}
.board-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px}
.board-card-name{font-weight:700;font-size:1rem;color:var(--text)}
.board-card-date{font-size:.78rem;color:#999}
.board-card-status{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:700;letter-spacing:.5px}
.board-card-status.pending{background:#FFF3CD;color:#856404;border:1px solid #FFEEBA}
.board-card-status.approved{background:#D4EDDA;color:#155724;border:1px solid #C3E6CB}
.board-card-status.rejected{background:#F8D7DA;color:#721C24;border:1px solid #F5C6CB}
.board-card-body{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;font-size:.85rem;margin-bottom:12px}
.board-card-body dt{color:#888;font-size:.78rem}
.board-card-body dd{color:var(--text);margin-bottom:4px}
.board-card-detail{border-top:1px dashed #D4C5A9;padding-top:10px;margin-top:6px}
.btn-board-toggle{display:block;margin:8px auto 0;background:none;border:none;color:#8B7355;font-size:.8rem;cursor:pointer;padding:4px 12px;border-radius:4px;transition:all .2s}
.btn-board-toggle:hover{background:rgba(139,115,85,.08);color:#5C4A2E}
.form-hint{display:block;font-size:.75rem;color:#999;margin-top:4px}
.email-toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(80px);background:#1A1A2E;color:#fff;padding:12px 24px;border-radius:8px;font-size:.88rem;z-index:9999;opacity:0;transition:all .4s ease;pointer-events:none}
.email-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.form-group.full-width{flex:0 0 100%;max-width:100%}
.btn-board-toggle.open{color:#C84B31}
.board-card-comment{background:rgba(45,74,34,.06);border-left:3px solid var(--secondary);padding:10px 14px;border-radius:0 var(--radius) var(--radius) 0;margin-top:10px}
.board-card-comment .comment-label{font-size:.75rem;color:var(--secondary);font-weight:700;margin-bottom:4px}
.board-card-comment .comment-text{font-size:.85rem;color:#444}

/* Admin Controls on Board Card */
.board-admin-controls{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.board-admin-controls .btn{padding:6px 14px;font-size:.78rem}
.btn-approve{background:var(--secondary);color:#fff}
.btn-approve:hover{background:#1e3516}
.btn-reject{background:var(--primary);color:#fff}
.btn-reject:hover{background:#a83d27}
.admin-comment-input{flex:1;min-width:200px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:.82rem}
.btn-comment{background:var(--sub-accent);color:#fff}
.btn-comment:hover{background:#4a6a85}
.btn-ai{background:linear-gradient(135deg,#E8A83E,#C84B31);color:#fff;border:none;font-weight:700;letter-spacing:.5px;position:relative;overflow:hidden}
.btn-ai:hover{filter:brightness(1.1);transform:translateY(-1px)}
.btn-ai:disabled{opacity:.7;cursor:wait;animation:aiPulse 1s ease-in-out infinite}
@keyframes aiPulse{0%,100%{opacity:.7}50%{opacity:1}}

/* ===== FREE BOARD ===== */
.freeboard-section{background:var(--bg)}
.fb-write-area,.hm-write-area{max-width:700px;margin:0 auto 32px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:24px}
.fb-write-area h3{font-size:1rem;margin-bottom:12px;color:var(--primary)}
.fb-list,.hm-list{max-width:700px;margin:0 auto;display:flex;flex-direction:column;gap:12px;align-items:stretch}
.fb-list .page-btns,.hm-list .page-btns{align-self:center;margin-top:8px}

/* Board Admin Toggle (shared) */
.board-admin-bar{max-width:700px;margin:0 auto 16px;display:flex;justify-content:flex-end}
.board-admin-bar .btn-admin-toggle{padding:6px 14px;font-size:.78rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--card-bg);color:#888;cursor:pointer;transition:all .2s}
.board-admin-bar .btn-admin-toggle.active{background:var(--primary);color:#fff;border-color:var(--primary)}

/* Free Board Post */
.fb-post{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:box-shadow .2s}
.fb-post:hover{box-shadow:var(--shadow)}
.fb-post-header{padding:14px 20px 10px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.fb-post-header h4{font-weight:700;font-size:.95rem;color:var(--text);flex:1;margin:0}
.fb-post-meta{display:flex;gap:8px;align-items:center;font-size:.75rem;color:#999;flex-shrink:0}
.fb-author-name{color:var(--secondary);font-weight:600}
.fb-post-body{padding:10px 20px 14px;border-top:1px solid var(--border)}
.fb-post-body p{font-size:.88rem;line-height:1.7;color:#444;margin:0}
.fb-post-actions{display:flex;gap:6px;padding:0 20px 10px}
.btn-sm{padding:3px 10px;font-size:.72rem;border-radius:var(--radius);border:1px solid var(--border);background:transparent;color:#888;cursor:pointer;transition:all .2s}
.btn-sm:hover{background:#f0f0f0}
.btn-sm.btn-danger{color:var(--primary);border-color:var(--primary)}
.btn-sm.btn-danger:hover{background:var(--primary);color:#fff}

/* Password Prompt */
.pw-prompt{display:flex;gap:6px;align-items:center;margin-bottom:8px}
.pw-prompt input{padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:.82rem;width:140px}
.pw-prompt .btn{padding:4px 10px;font-size:.75rem}

/* Edit Form */
.fb-edit-form{margin-bottom:12px}
.fb-edit-form textarea{width:100%;padding:8px;border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;resize:vertical;margin-bottom:8px}
.fb-edit-form input{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;margin-bottom:8px}

/* Comments */
.fb-comments{border-top:1px solid var(--border);padding:10px 20px 14px}
.fb-comments h5{font-size:.8rem;color:#888;margin:0 0 8px;font-weight:600}
.fb-comment{padding:8px 12px;background:rgba(45,74,34,.04);border-left:3px solid var(--secondary);border-radius:0 var(--radius) var(--radius) 0;margin-bottom:6px;font-size:.82rem}
.fb-comment strong{color:var(--secondary);font-weight:700;font-size:.78rem}
.fb-comment .fb-comment-date{font-size:.68rem;color:#bbb;margin-left:6px}
.fb-comment p{color:#444;margin:3px 0 0;font-size:.82rem;line-height:1.5}
.fb-comment-form{display:flex;gap:6px;margin-top:8px;align-items:center;flex-wrap:wrap}
.fb-comment-author-input{padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:.8rem;width:100px}
.fb-comment-text-input{flex:1;min-width:180px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:.8rem;resize:none;height:30px}

/* Admin reply */
.fb-admin-reply{padding:10px 14px;background:rgba(200,75,49,.06);border-left:3px solid var(--primary);border-radius:0 var(--radius) var(--radius) 0;margin-bottom:6px}
.fb-admin-reply .reply-label{font-size:.75rem;color:var(--primary);font-weight:700}
.fb-admin-reply .reply-text{font-size:.85rem;color:#444;margin-top:2px}

/* ===== HOKAGE MESSAGE ===== */
.hokage-msg-section{background:#F7F1E5}
.hm-hokage-banner{display:flex;align-items:center;gap:16px;padding:16px;background:rgba(232,168,62,.08);border:1px solid var(--accent);border-radius:var(--radius);margin-bottom:20px}
.hm-avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--accent)}
.hm-hokage-banner strong{color:var(--accent);font-size:.95rem}
.hm-hokage-banner p{font-size:.85rem;color:#666;margin-top:4px}
.hm-post{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;transition:box-shadow .2s}
.hm-post:hover{box-shadow:var(--shadow)}
.hm-post-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.hm-post-author{font-weight:700;color:var(--secondary);font-size:.9rem}
.hm-post-date{font-size:.78rem;color:#999}
.hm-post-content{font-size:.9rem;line-height:1.7;color:#444;white-space:pre-wrap;margin-bottom:10px}
.hm-post-actions{display:flex;gap:6px;margin-bottom:8px}
.hm-post-actions .btn{padding:4px 12px;font-size:.75rem}
.hm-reply{padding:10px 14px;background:rgba(232,168,62,.1);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;margin-top:8px}
.hm-reply .reply-label{font-size:.75rem;color:var(--accent);font-weight:700}
.hm-reply .reply-text{font-size:.85rem;color:#444;margin-top:2px}
.hm-admin-reply-form{display:flex;gap:6px;margin-top:8px}
.hm-admin-reply-form textarea{flex:1;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:.82rem;resize:none;height:36px}

/* ===== VILLAGE HISTORY ===== */
.history-section{background:#F7F1E5}
.history-content{max-width:800px;margin:0 auto}
.history-page{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:32px;line-height:1.9}
.history-page h3{font-size:1.2rem;color:var(--primary);margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--border)}
.history-page h4{font-size:1rem;color:var(--secondary);margin:20px 0 8px}
.history-page p{font-size:.9rem;color:#444;margin-bottom:12px}
.history-page .history-era{display:inline-block;background:var(--primary);color:#fff;padding:2px 10px;border-radius:3px;font-size:.78rem;font-weight:700;margin-bottom:12px}

/* ===== RESPONSIVE ===== */
@media(max-width:1023px){
  .nav-desktop{display:none}
  .hamburger{display:flex}
  .hokage-card img{width:80px;height:80px}
  .facility-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
}
@media(max-width:767px){
  .section{padding:60px 0}
  .header-inner{height:56px}
  .hero h1{letter-spacing:2px}
  .hero-greeting{flex-direction:column;align-items:center;text-align:center}
  .greeting-avatar{width:56px;height:56px}
  .hokage-card{flex-direction:column;text-align:center;align-items:center}
  .hokage-card img{width:80px;height:80px}
  .hokage-order{position:static;margin-bottom:4px}
  .form-row{grid-template-columns:1fr}
  .ninja-grid{grid-template-columns:1fr}
  .facility-grid{grid-template-columns:1fr}
  .village-grid{grid-template-columns:1fr}
  .footer-top{flex-direction:column;align-items:center;text-align:center}
  .mission-card{flex-direction:column;align-items:flex-start}
  .mission-right{align-items:flex-start;flex-direction:row;gap:8px}
  .notice-head{flex-wrap:wrap}
  .notice-head h3{min-width:auto}
  .lang-switcher button{padding:3px 6px;font-size:.7rem}
  .battle-arena{flex-direction:column;gap:16px}
  .battle-slot{min-width:auto;width:100%}
  .battle-vs{flex-direction:row;gap:12px}
  .vs-text{font-size:1.8rem}
  .battle-card-inner{flex-direction:column;text-align:center}
  .battle-card-inner img,.battle-card-inner .battle-avatar-fallback{margin:0 auto}
  .battle-log-item{flex-direction:column;gap:8px}
  .battle-log-fighters{justify-content:center}
}

/* ===== BATTLE ARENA ===== */
.battle-section{background:linear-gradient(180deg,#FDF6EC 0%,#f5ece0 100%)}
.battle-section .section-desc{max-width:none;white-space:nowrap}
.battle-arena{display:flex;align-items:center;justify-content:center;gap:24px;margin:32px 0}
.battle-slot{flex:1;max-width:340px;min-width:260px}
.battle-select{width:100%;padding:10px 12px;border:2px solid #D4C5A9;border-radius:8px;background:#fff;font-family:inherit;font-size:.9rem;color:#1A1A2E;cursor:pointer;margin-top:12px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.battle-select:focus{outline:none;border-color:#C84B31}

.battle-card-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;border:3px dashed #D4C5A9;border-radius:12px;background:#faf7f0;color:#aaa}
.battle-card-placeholder{font-size:3rem;font-weight:700;color:#D4C5A9;margin-bottom:8px}
.battle-card-empty p{font-size:.85rem;color:#999}

.battle-card{border:2px solid #D4C5A9;border-radius:12px;padding:16px;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.06);transition:border-color .3s,box-shadow .3s}
.battle-card.selected{border-color:var(--ninja-color,#C84B31);box-shadow:0 0 16px color-mix(in srgb,var(--ninja-color,#C84B31) 30%,transparent)}
.battle-card-inner{display:flex;gap:14px;align-items:center}
.battle-card-inner img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid var(--ninja-color,#D4C5A9);flex-shrink:0}
.battle-avatar-fallback{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.4rem;font-weight:700;flex-shrink:0;font-family:"Noto Serif JP",serif}
.battle-card-info{flex:1}
.battle-card-name{font-size:1.1rem;font-weight:700;color:#1A1A2E}
.battle-card-name-jp{font-size:.75rem;color:#888}
.battle-card-rank{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:4px;font-size:.72rem;font-weight:600;background:#f0ebe0;color:#6B5B4F}
.battle-card-attrs{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.battle-card-attrs span{padding:2px 6px;border-radius:3px;font-size:.68rem;background:#f0f0f0;color:#555}

.battle-vs{display:flex;flex-direction:column;align-items:center;gap:16px;padding:0 8px}
.vs-text{font-size:2.4rem;font-weight:900;color:#C84B31;text-shadow:0 2px 8px rgba(200,75,49,.2);font-family:"Noto Serif JP",serif;letter-spacing:2px}
.btn-battle-start{padding:12px 28px;border:none;border-radius:10px;background:linear-gradient(135deg,#C84B31,#e05a3a);color:#fff;font-size:1rem;font-weight:700;cursor:pointer;font-family:inherit;transition:all .3s;box-shadow:0 3px 12px rgba(200,75,49,.3)}
.btn-battle-start:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px rgba(200,75,49,.4)}
.btn-battle-start:disabled{opacity:.4;cursor:not-allowed}
.btn-battle-start.loading{pointer-events:none;animation:battlePulse 1s infinite}
@keyframes battlePulse{0%,100%{opacity:1}50%{opacity:.5}}

.battle-coming-soon,.battle-chakra-exhausted{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:#888}
.battle-coming-icon{font-size:3.5rem;margin-bottom:16px;opacity:.6}
.battle-coming-soon h3,.battle-chakra-exhausted h3{font-size:1.3rem;font-weight:700;color:#1A1A2E;margin-bottom:12px;font-family:"Noto Serif JP",serif}
.battle-coming-soon p,.battle-chakra-exhausted p{font-size:.92rem;color:#777;line-height:1.8;margin-bottom:24px}
.battle-coming-stamp{display:inline-block;padding:8px 24px;border:3px solid #C84B31;border-radius:8px;color:#C84B31;font-size:1.3rem;font-weight:900;font-family:"Noto Serif JP",serif;transform:rotate(-5deg);opacity:.7;letter-spacing:4px}
.battle-chakra-timer{font-size:.85rem;color:#E8A83E;font-weight:600;margin-top:16px}
@keyframes chakraPulse{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}
.battle-chakra-exhausted .battle-coming-icon{animation:chakraPulse 2s ease-in-out infinite}

.battle-scenario{max-width:700px;margin:0 auto 24px}
.battle-scenario-label{display:block;font-size:.95rem;font-weight:700;color:#1A1A2E;margin-bottom:8px;font-family:"Noto Serif JP",serif}
.battle-scenario-input{width:100%;padding:12px 14px;border:2px solid #D4C5A9;border-radius:10px;background:#fff;font-family:inherit;font-size:.9rem;color:#1A1A2E;resize:none;line-height:1.6;transition:border-color .3s}
.battle-scenario-input:focus{outline:none;border-color:#C84B31}
.battle-scenario-input::placeholder{color:#bbb}
.battle-scenario-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.battle-char-count{font-size:.78rem;color:#999}

.battle-result{margin:24px auto;max-width:700px}
.battle-result-scroll{border:3px solid #D4C5A9;border-radius:12px;padding:24px;background:linear-gradient(135deg,#faf7f0,#f5ece0);position:relative;overflow:hidden}
.battle-result-scroll::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url("data:image/svg+xml,%3Csvg width='40' height='40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 5c-1 3-4 5-7 5s-5-2-7-5c-1 3 0 7 3 9 2 2 5 3 7 3V5z' fill='%23D4C5A9' opacity='.06'/%3E%3C/svg%3E") repeat;pointer-events:none}
.battle-result-header{font-size:1.1rem;font-weight:700;color:#C84B31;margin-bottom:12px;text-align:center;font-family:"Noto Serif JP",serif}
.battle-result-text{font-size:.95rem;line-height:1.9;color:#1A1A2E;text-align:left;position:relative;z-index:1;white-space:pre-line;width:100%}
.battle-result-fighters{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px;font-weight:700;font-size:1rem;color:#2D4A22}
.battle-result-fighters .vs-small{color:#C84B31;font-weight:900;font-size:1.1rem}
.battle-result-scenario{text-align:center;font-size:.82rem;color:#888;font-style:italic;margin-bottom:12px;padding:6px 12px;background:rgba(212,197,169,.2);border-radius:6px;display:inline-block;margin-left:auto;margin-right:auto;width:fit-content;max-width:100%}
.battle-result-scroll{display:flex;flex-direction:column;align-items:center}

.battle-log{margin-top:32px}
.battle-log-title{font-size:1.1rem;font-weight:700;color:#1A1A2E;margin-bottom:16px;font-family:"Noto Serif JP",serif}
.battle-log-list{display:flex;flex-direction:column;gap:10px}
.battle-log-item{display:flex;align-items:center;gap:16px;padding:14px 16px;border:1px solid #D4C5A9;border-radius:10px;background:#fff;transition:box-shadow .2s}
.battle-log-item:hover{box-shadow:0 2px 10px rgba(0,0,0,.06)}
.battle-log-fighters{display:flex;align-items:center;gap:8px;flex-shrink:0;min-width:200px}
.battle-log-fighters img{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid #D4C5A9}
.battle-log-fighters .log-avatar-fallback{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.7rem;font-weight:700}
.battle-log-fighters .log-vs{font-weight:900;color:#C84B31;font-size:.8rem}
.battle-log-fighters .log-name{font-size:.82rem;font-weight:600;color:#1A1A2E;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.battle-log-scenario{font-size:.72rem;color:#999;font-style:italic;margin-bottom:2px}
.battle-log-text{flex:1;font-size:.82rem;color:#555;line-height:1.5}
.battle-log-time{font-size:.7rem;color:#aaa;flex-shrink:0;white-space:nowrap}
