*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:#3a2e22;background:#f4ecd8;line-height:1.7;max-width:680px;margin:0 auto;padding:12px 16px 48px;
  background-image:
    radial-gradient(circle at 15% 20%, rgba(139,90,43,0.05) 0%, transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(139,90,43,0.04) 0%, transparent 45%),
    repeating-linear-gradient(0deg, transparent 0, transparent 3px, rgba(139,90,43,0.012) 3px, rgba(139,90,43,0.012) 4px),
    repeating-linear-gradient(90deg, transparent 0, transparent 3px, rgba(139,90,43,0.012) 3px, rgba(139,90,43,0.012) 4px)}
.breadcrumb{font-size:14px;color:#8a7a66;margin-bottom:16px}
.breadcrumb a{color:#8a5a2b;text-decoration:none}
h1{font-size:26px;margin:8px 0 6px;color:#5b3a1a}
.intro{font-size:16px;color:#5a4a38;background:#fbf6ea;border:1px solid #e8dcc4;border-radius:10px;padding:14px 16px;margin:16px 0;
  background-image:repeating-linear-gradient(45deg, transparent, transparent 6px, rgba(139,90,43,0.02) 6px, rgba(139,90,43,0.02) 7px)}
section{margin:18px 0}
h2{font-size:20px;margin:0 0 10px;border-left:4px solid #8a5a2b;padding-left:10px;color:#5b3a1a}

/* 筛选栏 */
.filter-bar{background:#fbf6ea;border:1px solid #e8dcc4;border-radius:10px;padding:12px;margin:16px 0}
.filter-group{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}
.filter-group:last-child{margin-bottom:0}
.filter-label{flex:0 0 auto;font-size:14px;color:#8a5a2b;font-weight:700;padding-top:4px;line-height:1}
.filter-chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid #d9c9a8;background:#fff;color:#7a6240;font-size:14px;padding:4px 10px;border-radius:6px;cursor:pointer;line-height:1.4;transition:all .15s;-webkit-tap-highlight-color:transparent}
.chip:hover{border-color:#c0392b;color:#c0392b}
.chip.active{background:#c0392b;border-color:#c0392b;color:#fff}

/* 成语卡片：宣纸纹理底色 */
.idiom-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;list-style:none}
.idiom-card{position:relative;display:flex;flex-direction:column;align-items:center;background:#fbf6ea;border:1px solid #e2d4b8;border-radius:10px;padding:16px 10px 12px;box-shadow:0 2px 8px -4px rgba(139,90,43,.25);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;-webkit-tap-highlight-color:transparent;
  background-image:
    radial-gradient(circle at 30% 20%, rgba(139,90,43,0.04) 0%, transparent 55%),
    repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(139,90,43,0.015) 5px, rgba(139,90,43,0.015) 6px)}
.idiom-card:hover{transform:translateY(-3px);border-color:#c9a96a;box-shadow:0 8px 18px -8px rgba(139,90,43,.4)}
.idiom-card:active{transform:scale(.96)}
.ic-name{font-size:20px;line-height:1.3;color:#5b3a1a;font-weight:700;text-decoration:none}
.ic-name:hover{color:#8a5a2b}
.ic-py{font-size:13px;color:#8a5a2b;font-weight:600;margin-top:4px}

/* 印章角标 */
.seal{position:absolute;top:-8px;right:-8px;width:32px;height:32px;background:#c0392b;color:#fff;font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;border-radius:5px;transform:rotate(8deg);box-shadow:0 2px 5px rgba(0,0,0,.25);border:1.5px solid #a93226;font-family:"STKaiti","KaiTi",serif}

/* 字帖按钮 */
.copybook-btn{margin-top:8px;font-size:13px;color:#8a5a2b;background:#f0e6d0;border:1px solid #d9c9a8;border-radius:6px;padding:4px 10px;cursor:pointer;line-height:1.4;transition:all .15s;-webkit-tap-highlight-color:transparent}
.copybook-btn:hover{background:#c0392b;color:#fff;border-color:#c0392b}

.count-badge{display:inline-block;vertical-align:middle;margin-left:8px;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg,#c0392b,#8a5a2b);border-radius:999px;padding:2px 12px}
.more-note{font-size:14px;color:#998a72;margin-top:10px;text-align:center}
nav.related{margin-top:22px}
nav.related h2{margin-bottom:10px}
nav.related .tags{display:flex;flex-wrap:wrap;gap:8px}
nav.related a{display:inline-block;padding:6px 14px;font-size:15px;color:#8a5a2b;background:#fbf6ea;border:1px solid #e2d4b8;border-radius:20px;text-decoration:none}
nav.related a:hover{background:#fdf6ec}

/* 字帖练习弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(40,30,15,.55);display:none;align-items:center;justify-content:center;z-index:9999;padding:16px}
.modal-mask.show{display:flex}
.modal-card{background:#fbf6ea;border:2px solid #c0392b;border-radius:12px;padding:20px;max-width:420px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px rgba(0,0,0,.3)}
.modal-title{font-size:22px;color:#5b3a1a;font-weight:700;text-align:center;margin-bottom:4px}
.modal-py{text-align:center;color:#8a5a2b;font-size:15px;margin-bottom:16px}
.mizige-row{display:flex;justify-content:center;gap:8px;margin-bottom:8px}
.mizige{position:relative;width:72px;height:72px;border:1.5px solid #c0392b;background:#fff;
  background-image:
    linear-gradient(45deg, transparent 49.3%, rgba(192,57,43,.35) 49.3%, rgba(192,57,43,.35) 50.7%, transparent 50.7%),
    linear-gradient(-45deg, transparent 49.3%, rgba(192,57,43,.35) 49.3%, rgba(192,57,43,.35) 50.7%, transparent 50.7%)}
.mizige::before{content:'';position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed rgba(192,57,43,.4)}
.mizige::after{content:'';position:absolute;top:50%;left:0;right:0;border-top:1px dashed rgba(192,57,43,.4)}
.mizige .ch{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:40px;color:rgba(192,57,43,.22);font-family:"STKaiti","KaiTi","SimSun",serif;font-weight:700}
.modal-actions{display:flex;gap:10px;margin-top:16px;justify-content:center}
.modal-actions button{font-size:15px;padding:8px 20px;border-radius:8px;cursor:pointer;border:none;line-height:1.4}
.btn-print{background:#c0392b;color:#fff}
.btn-close{background:#e2d4b8;color:#5b3a1a}
.modal-hint{font-size:13px;color:#998a72;text-align:center;margin-top:10px}

@media print{
  body *{visibility:hidden}
  .modal-mask,.modal-mask *{visibility:visible}
  .modal-mask{position:static;background:none;padding:0;display:block}
  .modal-card{border:none;box-shadow:none;max-width:none;margin:0 auto}
  .modal-actions,.modal-hint{display:none}
}
@media(max-width:640px){.idiom-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.ic-name{font-size:18px}.mizige{width:64px;height:64px}.mizige .ch{font-size:34px}}
