/* 方案 A 和紙木框：和紙底 + 檜木框、繪馬狀態牌、竹節條、短冊旬卡、朱印按鈕、水引流蘇。 */
.theme-a{
  --washi:#F8F4E8; --washi2:#F1E7D3;
  --wood:#8A5A36; --wood-dk:#5C3A21;
  --shu:#D93829; --bamboo:#7CA34F; --sakura:#F7A8B8; --sumi:#2C2725;
  --text:var(--sumi);
  /* 和紙纖維噪點（SVG feTurbulence，不用點陣圖） */
  --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .32 0 0 0 0 .18 .5 0 0 0 -.18'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --fiber:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.012 .25' numOctaves='3' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .45 0 0 0 0 .3 0 0 0 -2.2 1.25'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  /* 木紋：幾條不同寬度的直紋疊起來 */
  --woodgrain:repeating-linear-gradient(91deg,#8A5A36 0 5px,#9b6b44 5px 8px,#7b4d2d 8px 10px,#a57649 10px 17px,#86552f 17px 21px),
              linear-gradient(#a0703f,#6d4526);
}
.theme-a body{font-family:"OkamiRound","Microsoft JhengHei",sans-serif;}
.theme-a button{font-family:inherit;color:var(--sumi);background:var(--washi);border:2px solid var(--wood);border-radius:8px;}
.theme-a button:hover:not(:disabled){border-color:var(--shu);color:var(--shu);}

/* 共用：和紙面 + 木框 */
.theme-a #panel-stats,.theme-a #panel-slots,.theme-a #dialog,.theme-a #core-status,.theme-a #tabs{
  border:9px solid transparent;border-radius:6px;
  background:var(--fiber) padding-box,var(--noise) padding-box,linear-gradient(135deg,#fdfbf7,#f4ece1) padding-box,var(--woodgrain) border-box;
  box-shadow:inset 0 0 0 1px var(--wood-dk),0 0 0 1px var(--wood-dk),0 6px 18px rgba(40,20,5,.45);
  color:var(--sumi);
}

/* ---- 標題 ---- */
.theme-a .screen{background:radial-gradient(circle at 50% 35%,rgba(248,244,232,.25),rgba(44,39,37,.75));}
.theme-a .title{color:var(--washi);font-size:2.6em;text-shadow:0 0 2px var(--wood-dk),0 3px 0 var(--wood-dk),0 6px 14px rgba(0,0,0,.6);}
.theme-a .subtitle{color:var(--washi);text-shadow:0 1px 4px #000;}
.theme-a .title-buttons button,.theme-a #btn-ending-ok,.theme-a #btn-card,.theme-a #btn-book{background:var(--shu);color:#fff;border:3px double #fff;border-radius:999px;box-shadow:0 3px 0 #8e1f14;}
.theme-a .theme-picker{color:var(--washi);text-shadow:0 1px 3px #000;}
.theme-a .theme-picker button.selected{background:var(--shu);color:#fff;border-color:#fff;}
.theme-a #ending-screen h2,.theme-a #ending-text{color:var(--washi);text-shadow:0 1px 4px #000;}

.theme-a #theme-toggle{background:var(--washi);border-color:var(--wood);}

/* ---- 繪馬狀態牌：五角屋頂 + 紅繩 ---- */
@media (min-width:701px){
  .theme-a #panel-stats{top:calc(var(--gap) + 52px);overflow:visible;} /* 紅繩掛環（::after，top:-54px）整個留在畫面內 */
  .theme-a #panel-slots{max-height:calc(100vh - 272px);} /* 狀態牌往下移了 22px，行程面板讓出同樣的高度 */
  .theme-a #panel-stats::before{
    content:'';position:absolute;left:-18px;right:-18px;top:-38px;height:34px;
    background:var(--woodgrain);clip-path:polygon(0 100%,4% 62%,50% 0,96% 62%,100% 100%);
    filter:drop-shadow(0 2px 0 var(--wood-dk));
  }
  .theme-a #panel-stats::after{ /* 紅繩掛環 */
    content:'';position:absolute;left:50%;top:-54px;width:18px;height:18px;margin-left:-9px;
    border:3px solid var(--shu);border-radius:50%;box-shadow:0 0 0 1px #8e1f14;
  }
  .theme-a .hud-status{border-left:2px dashed rgba(92,58,33,.35);padding-left:12px;} /* .hud-side 是 display:contents，虛線改畫在狀態欄 */
  .theme-a #game.stats-tight .hud-status{border-left:none;padding-left:0;}
  .theme-a #game.stats-tight .hud-side{border-left:2px dashed rgba(92,58,33,.35);padding-left:12px;}
}
.theme-a #stats h3{color:var(--wood-dk);letter-spacing:.3em;border-bottom:1px solid rgba(92,58,33,.3);}
.theme-a .stat-label{font-weight:bold;}
/* 竹節條 */
.theme-a .bar{height:12px;border-radius:6px;background:#e3d7bd;box-shadow:inset 0 1px 2px rgba(60,40,20,.35);}
.theme-a .bar-fill{border-radius:6px;
  background:repeating-linear-gradient(90deg,transparent 0 16px,rgba(55,80,25,.75) 16px 18px,rgba(255,255,255,.35) 18px 19px),
             linear-gradient(#b5d98a,#7CA34F 55%,#5c8235);}
.theme-a [data-k="stress"] .bar-fill{background:repeating-linear-gradient(90deg,transparent 0 16px,rgba(120,30,20,.6) 16px 18px),linear-gradient(#f08a6c,#D93829);}
/* 好感：櫻花瓣 */
.theme-a .hud-aff .bar-fill{background:radial-gradient(circle at 7px 50%,#fff 1.5px,transparent 2px) 0 0/14px 100%,linear-gradient(#fbc7d2,#F7A8B8 60%,#e98aa0);}
.theme-a .hud-aff .stat-icon{display:block;color:#e46a86;}
.theme-a .stat-money .stat-val{font-weight:bold;}

/* ---- 行程：月份朱印牌 + 短冊 ---- */
.theme-a #month-badge{
  width:84px;height:84px;align-self:start;border-radius:50%;color:var(--shu);
  background:var(--washi);border:4px double var(--shu);
  box-shadow:0 0 0 3px var(--washi),0 0 0 5px var(--shu);
}
.theme-a .mb-num,.theme-a .mb-yue{font-size:1.45em;font-weight:bold;display:inline;}
.theme-a #month-badge{flex-direction:row;flex-wrap:wrap;align-content:center;}
.theme-a .mb-old{flex-basis:100%;text-align:center;}
.theme-a .mb-old::before{content:'（';}
.theme-a .mb-old::after{content:'）';}
.theme-a .mb-year{flex-basis:100%;text-align:center;font-size:.62em;letter-spacing:.1em;}

.theme-a .slot{ /* 短冊：細長紙條，頂上掛繩 */
  margin-top:14px;border-radius:2px 2px 4px 4px;
  background:var(--noise),linear-gradient(#f6d2b8,#f0c09e);
  border:1px solid rgba(92,58,33,.35);box-shadow:2px 3px 0 rgba(92,58,33,.2);
  transform-origin:50% -14px;
}
.theme-a .slot:nth-child(2){background:var(--noise),linear-gradient(#cfe0b0,#b4cf8c);}
.theme-a .slot:nth-child(3){background:var(--noise),linear-gradient(#e6e0c4,#d3cba6);}
.theme-a .slot::before{content:'';position:absolute;left:50%;top:-15px;width:2px;height:15px;background:var(--wood-dk);}
.theme-a .slot::after{content:'';position:absolute;left:50%;top:4px;width:6px;height:6px;margin-left:-2px;border-radius:50%;background:rgba(92,58,33,.6);}
.theme-a .slot:hover{transform:rotate(-1.5deg);}
.theme-a .slot.active{outline:3px solid var(--shu);outline-offset:1px;transform:rotate(-1deg);}
.theme-a .slot-label{font-size:1.25em;margin-top:6px;letter-spacing:.1em;color:var(--sumi);}
.theme-a .slot-advice{background:#fff;border:1.5px solid var(--sumi);color:var(--sumi);border-radius:12px 12px 12px 2px;text-align:left;}
.theme-a .slot-pick{background:var(--washi);border:1px solid var(--wood);}
.theme-a .slot.filled .slot-pick{background:var(--shu);color:#fff;border-color:#8e1f14;}

/* 朱印圓鈕 */
.theme-a .sched-btn{
  aspect-ratio:1;max-width:66px;border-radius:50%;padding:2px;
  background:radial-gradient(circle,#fffaf0 55%,#f1e3c8);border:3px solid var(--shu);color:var(--sumi);
  box-shadow:0 0 0 2px var(--washi),0 0 0 3px rgba(217,56,41,.5),inset 0 2px 4px rgba(0,0,0,.15);
}
.theme-a .sched-name{font-weight:bold;font-size:.9em;}
.theme-a .sched-btn:hover:not(:disabled){transform:translateY(-2px);color:var(--shu);}
.theme-a .sched-btn.selected{background:var(--shu);color:#fff;transform:rotate(-6deg);box-shadow:0 0 0 2px var(--washi),0 0 0 3px #8e1f14,inset 0 0 6px rgba(0,0,0,.35);}
.theme-a #partner-row button.selected{background:var(--shu);color:#fff;border-color:#8e1f14;}

/* 大印鑑確定鈕 */
.theme-a #confirm{
  width:72px;height:72px;border-radius:50%;font-size:1.25em;padding:0;letter-spacing:.05em;
  background:radial-gradient(circle at 40% 35%,#ee5a44,#D93829 55%,#a8261a);color:#fff;
  border:3px double #fff;box-shadow:0 0 0 3px var(--shu),0 4px 0 #7a1b10,0 6px 12px rgba(0,0,0,.35);
  text-shadow:0 1px 0 #7a1b10;
}
.theme-a #confirm:disabled{filter:grayscale(.6);opacity:.55;}
@media (min-width:701px){
  .theme-a #panel-slots{grid-template-areas:"month slots" "btns btns" "partner partner" "footer footer";grid-template-columns:96px 1fr;}
  .theme-a #confirm{margin-bottom:-4px;}
}

/* ---- 對話框：木牌名牌 + 水引流蘇 ---- */
.theme-a #dialog{overflow:visible;}
.theme-a #dialog-name{
  background:var(--noise),linear-gradient(#fdf8ec,#efe2c6);color:var(--sumi);font-size:1.1em;
  border:4px solid transparent;background-clip:padding-box;
  box-shadow:0 0 0 4px var(--wood),0 0 0 5px var(--wood-dk),0 3px 6px rgba(0,0,0,.3);
}
.theme-a #dialog::before,.theme-a #dialog::after{ /* 左右兩個紅結 + 流蘇 */
  content:'';position:absolute;top:30%;width:18px;height:74px;pointer-events:none;
  background:
    radial-gradient(circle at 50% 9px,#f06a55 0 5px,var(--shu) 5px 8px,transparent 9px),
    linear-gradient(var(--shu),var(--shu)) 50% 18px/4px 12px no-repeat,
    repeating-linear-gradient(90deg,#b8281b 0 2px,var(--shu) 2px 4px) 50% 30px/14px 44px no-repeat;
  border-radius:0 0 6px 6px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35));
}
.theme-a #dialog::before{left:-14px;}
.theme-a #dialog::after{right:-14px;}
.theme-a #choices button{background:var(--washi);border-color:var(--shu);color:var(--shu);font-weight:bold;}

/* ---- 其他 ---- */
.theme-a .title-credit,.theme-a .title-mg-row{color:var(--washi);text-shadow:0 1px 4px #000;} /* 標題畫面背景暗，蓋掉上面深色字 */
.theme-a .btn-shop{border-radius:999px;}
.theme-a .floater{background:rgba(248,244,232,.92);border:1px solid var(--wood);}
.theme-a .floater-up{color:#3f7d1f;}
.theme-a .floater-down{color:var(--shu);}
.theme-a .floater-bonus{color:#B8860B;border-color:#B8860B;background:rgba(248,244,232,.92);} /* 和紙主題：金／朱紅色系的加成浮字 */

/* ---- 商店視窗：和紙 + 檜木框，跟 #panel-stats 同一套質感（規格 2026-09-25 money-shop §4） ---- */
.theme-a #shop-panel,.theme-a #ng-panel,.theme-a #card-panel,.theme-a #y3-panel,.theme-a #trace-panel{
  border:9px solid transparent;border-radius:6px;
  background:var(--fiber) padding-box,var(--noise) padding-box,linear-gradient(135deg,#fdfbf7,#f4ece1) padding-box,var(--woodgrain) border-box;
  box-shadow:inset 0 0 0 1px var(--wood-dk),0 0 0 1px var(--wood-dk),0 8px 24px rgba(20,10,5,.55);
  color:var(--sumi);
}
.theme-a #shop-title{color:var(--wood-dk);text-align:center;letter-spacing:.3em;}
.theme-a .shop-section h3{color:var(--wood-dk);border-bottom:1px solid rgba(92,58,33,.3);padding-bottom:4px;}
.theme-a .shop-item{background:var(--washi2);border:1px solid rgba(92,58,33,.35);}
.theme-a .shop-item.done{background:transparent;border-style:dashed;opacity:.75;}
.theme-a .shop-check{color:#3f7d1f;}
.theme-a #ng-title,.theme-a #y3-title{color:var(--wood-dk);}
.theme-a #btn-y3-go{background:var(--shu);color:#fff;border:3px double #fff;border-radius:999px;} /* 從三年目重來（第五階段 D） */
.theme-a .ng-opt{background:var(--washi2);}
.theme-a #btn-ng2{border-color:var(--shu);}
.theme-a #btn-ng2 b{color:var(--shu);}
/* 圖鑑分頁、回想（第三階段 F）：分頁鈕選中＝朱紅，跟標題按鈕同色；跳過鈕＝朱紅框和紙 */
.theme-a .gallery-tabs button{border-radius:999px;}
.theme-a .gallery-tabs button[aria-selected="true"]{background:var(--shu);color:#fff;border:3px double #fff;}
.theme-a #gallery-count,.theme-a .recall-group h3{color:var(--washi);text-shadow:0 1px 4px #000;}
.theme-a #btn-skip{border-color:var(--shu);color:var(--shu);border-radius:999px;box-shadow:0 2px 6px rgba(40,20,5,.35);}
.theme-a #shop-close{background:var(--washi);border:2px solid var(--wood);color:var(--sumi);}
.theme-a #shop-close:hover{border-color:var(--shu);color:var(--shu);}
@media (max-width:700px){
  .theme-a #shop-panel,.theme-a #ng-panel,.theme-a #card-panel,.theme-a #y3-panel,.theme-a #trace-panel{border-width:5px;}
}

@media (max-width:700px){
  .theme-a .title{font-size:1.9em;} /* 9 個字一行放得下，不會剩「成」一個字掉到第二行 */
  .theme-a #core-status{border-width:4px;border-radius:0;}
  .theme-a #tabs{border-width:4px;border-radius:0;}
  .theme-a .tab-btn{border:none;background:transparent;}
  .theme-a .tab-btn.active{background:var(--shu);color:#fff;}
  .theme-a #panel-stats,.theme-a #panel-slots{border-width:5px;border-radius:0;}
  /* 半透明和紙：人物站在面板後面也看得到 */
  .theme-a #panel-stats,.theme-a #panel-slots,.theme-a #dialog,.theme-a #tabs{
    background:var(--fiber) padding-box,linear-gradient(135deg,rgba(253,251,247,.82),rgba(244,236,225,.82)) padding-box,var(--woodgrain) border-box;}
  .theme-a #month-badge{width:50px;height:50px;border-width:3px;box-shadow:none;}
  .theme-a .mb-num,.theme-a .mb-yue{font-size:1em;}
  .theme-a .mb-old{font-size:.62em;white-space:nowrap;} /* （睦月）不折成兩行 */
  .theme-a .mb-year{display:none;} /* 手機：年份看上方狀態列「N年 M月」，圓章維持兩行不擠 */
  .theme-a .slot{margin-top:8px;}
  .theme-a .slot::before{top:-9px;height:9px;}
  .theme-a .slot-label{font-size:.95em;margin-top:4px;}
  .theme-a .sched-btn{aspect-ratio:auto;max-width:none;border-radius:999px;border-width:2px;box-shadow:inset 0 1px 3px rgba(0,0,0,.15);}
  .theme-a .sched-btn.selected{transform:none;}
  .theme-a #confirm{width:auto;height:auto;border-radius:999px;font-size:1em;padding:6px;box-shadow:0 0 0 2px var(--shu),0 3px 0 #7a1b10;}
  .theme-a #dialog{border-width:5px;}
  .theme-a #dialog::before,.theme-a #dialog::after{display:none;}
}
@media (min-width:701px) and (max-height:680px){
  .theme-a #panel-slots{max-height:calc(100vh - 258px);} /* 矮視窗的狀態牌比較短，行程面板可以多長一點，不用捲動 */
  .theme-a .sched-btn{max-width:54px;}
  .theme-a #month-badge{width:70px;height:70px;}
  .theme-a #confirm{width:62px;height:62px;}
  .theme-a .slot-label{font-size:1.05em;margin-top:4px;}
}
/* 窄或矮的桌面：兩排行程改用手機的藥丸鈕形狀（橢圓、字橫排），32px 圓圈裝不下「和夥伴出去」這種五字標籤 */
@media (min-width:701px) and (max-width:1100px), (min-width:701px) and (max-height:680px){
  .theme-a #sched-buttons.many .sched-btn{aspect-ratio:auto;max-width:none;border-radius:999px;border-width:2px;box-shadow:inset 0 1px 3px rgba(0,0,0,.15);}
}

/* ---- 小遊戲：和紙 + 檜木框（src/minigames.js） ---- */
.theme-a .mg-panel{
  border:9px solid transparent;border-radius:6px;
  background:var(--fiber) padding-box,var(--noise) padding-box,linear-gradient(135deg,#fdfbf7,#f4ece1) padding-box,var(--woodgrain) border-box;
  box-shadow:inset 0 0 0 1px var(--wood-dk),0 0 0 1px var(--wood-dk),0 8px 24px rgba(20,10,5,.55);
  color:var(--sumi);
}
.theme-a .mg-title{color:var(--wood-dk);}
.theme-a .mg-crow{background:var(--washi);border:2px solid var(--wood);border-radius:50%;padding:2px;}
.theme-a .mg-foot .mg-start{background:var(--shu);color:#fff;border:3px double #fff;border-radius:999px;box-shadow:0 3px 0 #8e1f14;}
.theme-a .mg-foot .mg-skip{border-radius:999px;}
.theme-a .mg-area{border:2px solid var(--wood);box-shadow:inset 0 2px 6px rgba(60,40,20,.35);}
.theme-a .mg-good{color:#3f7d1f;}
.theme-a .mg-ok{color:#B8860B;}
.theme-a .mg-bad{color:var(--shu);}
.theme-a .mg-grade-perfect{color:var(--shu);}
.theme-a .mg-grade-good{color:#3f7d1f;}
.theme-a .mg-grade-ok{color:#B8860B;}
.theme-a .mg-grade-miss{color:#6b5d55;}
/* 奉納舞：神樂殿的木地板 + 朱色判定線 + 金鈴 */
.theme-a .mg-area-dance{background:var(--noise),linear-gradient(#f3e9d2,#e3d0aa);}
.theme-a .rg-l0{--c:var(--shu);background:linear-gradient(rgba(217,56,41,0) 30%,rgba(217,56,41,.14));border-right:1px dashed rgba(92,58,33,.4);}
.theme-a .rg-l1{--c:#D4A017;background:linear-gradient(rgba(212,160,23,0) 30%,rgba(212,160,23,.18));}
.theme-a .rg-n0{--c:var(--shu);} .theme-a .rg-n1{--c:#D4A017;}
.theme-a .rg-line{background:var(--wood-dk);opacity:.75;}
.theme-a .rg-drum{background:radial-gradient(circle,#fbf3e2 0 52%,rgba(92,58,33,.35) 54% 58%,#fbf3e2 60%);border:4px solid var(--c);box-shadow:0 0 0 2px var(--wood-dk);opacity:.85;}
.theme-a .rg-drum.rg-cal{--c:var(--shu);}
.theme-a .rg-drum.rg-cal.flash{background:radial-gradient(circle,#fff 0 52%,var(--shu) 54% 58%,#fff 60%);}
.theme-a .rg-key{color:var(--wood-dk);opacity:.6;}
.theme-a .rg-note:not(.rg-hold),.theme-a .rg-hold::after{background:radial-gradient(circle,#fbf3e2 0 34%,var(--wood-dk) 36% 40%,var(--c) 42%);box-shadow:0 0 0 3px var(--wood-dk),0 3px 5px rgba(0,0,0,.35);}
.theme-a .rg-note.rg-hold{background:var(--c);box-shadow:0 0 0 3px var(--wood-dk);opacity:.9;}
.theme-a .rg-hold.held::after{box-shadow:0 0 0 3px #fff,0 0 16px 6px var(--c);}
.theme-a .rg-combo{color:var(--wood-dk);text-shadow:0 0 3px #fff,0 0 6px #fff;}
.theme-a .rg-burst{color:var(--shu);}
.theme-a .mg-foot .mg-cal{border-radius:999px;}

.theme-a .mg-area-meditate{background:linear-gradient(90deg,#dfe9ea,#f4f8f6 50%,#dfe9ea);}
.theme-a .mg-gauge{background:repeating-linear-gradient(180deg,rgba(120,160,175,.35) 0 14px,rgba(200,225,230,.35) 14px 26px),#cfe0e3;border:3px solid var(--wood);}
.theme-a .mg-zone{background:rgba(247,168,184,.55);border:2px dashed #e46a86;}
.theme-a .mg-heart{color:#b8475f;text-shadow:0 0 2px #fff,0 2px 3px rgba(0,0,0,.3);}
.theme-a .mg-heart.in{color:var(--shu);}
/* 山路夜巡：夜色山路 + 藍白鬼火 */
.theme-a .mg-area-patrol{background:radial-gradient(ellipse at 50% 120%,#3b4a3a,transparent 60%),linear-gradient(#1c1f33,#2c2f45 70%,#3a3a3a);}
.theme-a .mg-fire{background:radial-gradient(circle at 50% 60%,#fff 0 14%,#bfe6ff 30%,#5fa8e8 55%,rgba(95,168,232,0) 72%);animation:mg-flicker .5s ease-in-out infinite alternate;}
.theme-a img.mg-fan{background:var(--washi);border:3px solid var(--wood);}
.theme-a .mg-fire.hit{animation:none;}
@keyframes mg-flicker{from{transform:scale(.94);}to{transform:scale(1.04);}}
@media (max-width:700px){
  .theme-a .mg-panel{border-width:5px;}
}

/* ---- 町地圖：檜木框 + 和紙手繪地圖（第三階段 A 規格 §7） ---- */
.theme-a #map-panel{
  border:9px solid transparent;border-radius:6px;
  background:var(--fiber) padding-box,var(--noise) padding-box,linear-gradient(135deg,#fdfbf7,#f4ece1) padding-box,var(--woodgrain) border-box;
  box-shadow:inset 0 0 0 1px var(--wood-dk),0 0 0 1px var(--wood-dk),0 8px 24px rgba(20,10,5,.55);
  color:var(--sumi);
}
.theme-a .map-head h2{color:var(--wood-dk);}
.theme-a .map-head p{color:var(--wood-dk);}
.theme-a .map-board{
  background:var(--fiber),var(--noise),radial-gradient(ellipse at 50% 45%,#f7eed8 55%,#e6d3ab);
  box-shadow:inset 0 0 0 2px rgba(92,58,33,.55),inset 0 0 26px rgba(120,80,30,.35);
}
.theme-a .map-hill{fill:#c5d3a0;opacity:.8;}
.theme-a .map-river{stroke:#9cc8d8;stroke-width:16px;opacity:.85;}
.theme-a .map-road{stroke:#b08a5e;stroke-dasharray:1 7;stroke-width:5px;}
.theme-a .spot-pic{border:3px solid var(--wood);box-shadow:0 0 0 2px var(--washi),0 3px 6px rgba(60,35,15,.45);}
.theme-a .spot-walk .spot-pic{border-color:#5f8fa3;}
.theme-a .spot-name{background:var(--washi);border:1px solid var(--wood);color:var(--sumi);box-shadow:0 1px 2px rgba(60,35,15,.3);}
.theme-a .map-spot:hover:not(:disabled) .spot-pic,.theme-a .map-spot:focus-visible .spot-pic{border-color:var(--shu);transform:scale(1.06);}
.theme-a .map-spot:focus-visible{outline:none;}
.theme-a .map-spot:focus-visible .spot-name{outline:2px solid var(--shu);}
.theme-a .map-spot.here .spot-pic{border-color:var(--shu);box-shadow:0 0 0 3px var(--shu),0 3px 6px rgba(60,35,15,.45);}
.theme-a .map-spot.here .spot-name{background:var(--shu);color:#fff;border-color:#8e1f14;}
.theme-a .map-spot:disabled .spot-pic{filter:grayscale(.9) brightness(1.3) contrast(.55);}
.theme-a .map-spot:disabled .spot-name{opacity:.5;}
.theme-a .map-spot:disabled .spot-pals{opacity:.8;}
.theme-a .pal{background-color:#fff8ec;border:2px solid #fff;box-shadow:0 0 0 1.5px var(--wood),0 2px 4px rgba(0,0,0,.35);}
.theme-a .pal-heart{color:#e46a86;text-shadow:0 0 2px #fff,0 0 2px #fff;}
.theme-a .pal-bang{background:var(--shu);color:#fff;font-weight:bold;box-shadow:0 0 0 1.5px #fff;}
.theme-a .map-sheet{
  background:var(--fiber),var(--noise),linear-gradient(#fdfbf7,#f1e7d3);border-top:5px solid var(--wood);
  box-shadow:0 -6px 18px rgba(40,20,5,.4);color:var(--sumi);
}
.theme-a .sheet-title span{color:var(--wood-dk);}
.theme-a .sheet-opt{background:var(--washi);border:2px solid var(--wood);}
.theme-a .sheet-opt.selected{background:var(--shu);color:#fff;border-color:#8e1f14;}
.theme-a .sheet-go,.theme-a #map-home{background:var(--shu);color:#fff;border:3px double #fff;border-radius:999px;box-shadow:0 3px 0 #8e1f14;}
.theme-a #map-home{background:var(--washi);color:var(--sumi);border:2px solid var(--wood);box-shadow:0 3px 0 var(--wood-dk);}
.theme-a .sheet-go:hover:not(:disabled){color:#fff;}
.theme-a .btn-view{border-radius:999px;}
.theme-a .btn-view[aria-pressed="true"]{background:var(--shu);color:#fff;border-color:#8e1f14;}
.theme-a .aff-next{color:var(--wood-dk);}
.theme-a .aff-next.due{color:var(--shu);font-weight:bold;}
.theme-a .aff-unknown .stat-icon{display:block;color:#bba;}
@media (max-width:700px){
  .theme-a #map-panel{border-width:5px;border-radius:0;}
}
.theme-a .map-spot,.theme-a .map-spot:hover:not(:disabled){background:none;border:none;color:inherit;}
.theme-a .map-spot .spot-pic{transition:transform .12s;}
.theme-a .aff-bang,.theme-a .hn.due{color:var(--shu);}
/* 挖角預告（第四階段 A，提案 2）：8 月好感 < 30 的夥伴，提示和地圖頭像都換成朱紅警告 */
.theme-a .aff-next.poach-risk,.theme-a .hn.poach-risk{color:var(--shu);font-weight:bold;}
.theme-a .pal.pal-risk{box-shadow:0 0 0 2.5px var(--shu),0 2px 4px rgba(0,0,0,.35);}
.theme-a .hud-next{color:var(--wood-dk);}
/* 快速結算的月底結算卡（第三階段 H）：跟商店同一套和紙檜木框；月曆頁＝和紙＋上緣朱紅綴條、兩個釘孔 */
.theme-a #month-panel{
  border:9px solid transparent;border-radius:6px;
  background:var(--fiber) padding-box,var(--noise) padding-box,linear-gradient(135deg,#fdfbf7,#f4ece1) padding-box,var(--woodgrain) border-box;
  box-shadow:inset 0 0 0 1px var(--wood-dk),0 0 0 1px var(--wood-dk),0 8px 24px rgba(20,10,5,.55);color:var(--sumi);
}
.theme-a #month-title,.theme-a #month-rows dt{color:var(--wood-dk);}
.theme-a #month-rows b{color:var(--shu);}
.theme-a .cal-page{background:radial-gradient(circle at 30% 18px,var(--wood-dk) 0 4px,transparent 5px),radial-gradient(circle at 70% 18px,var(--wood-dk) 0 4px,transparent 5px),
  linear-gradient(var(--shu) 0 34px,transparent 34px),var(--noise),var(--washi);color:var(--sumi);box-shadow:0 2px 6px rgba(40,20,5,.35);}
.theme-a .cal-page .cp-num{color:var(--shu);}
.theme-a #month-ok{border-color:var(--shu);color:var(--shu);font-weight:bold;}
.theme-a #start-panel{
  border:9px solid transparent;border-radius:6px;
  background:var(--fiber) padding-box,var(--noise) padding-box,linear-gradient(135deg,#fdfbf7,#f4ece1) padding-box,var(--woodgrain) border-box;
  box-shadow:inset 0 0 0 1px var(--wood-dk),0 0 0 1px var(--wood-dk),0 8px 24px rgba(20,10,5,.55);color:var(--sumi);
}
.theme-a #start-title,.theme-a .sc-head b{color:var(--wood-dk);}
.theme-a #sq-ok{border-color:var(--shu);color:var(--shu);font-weight:bold;}
.theme-a .settings-pop{background:var(--noise),var(--washi);border-color:var(--wood);}
@media (max-width:700px){ .theme-a #month-panel,.theme-a #start-panel{border-width:5px;} }
