/* 古诗词飞花令 /tool/feihua-ling */
.fhl-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.fhl-seg{display:inline-flex;background:var(--c-surface-soft);border:1px solid var(--c-border);border-radius:12px;padding:4px;gap:4px}
.fhl-seg button{border:0;background:transparent;color:var(--c-text-sub);padding:8px 16px;border-radius:9px;font-size:14px;cursor:pointer;transition:all .2s}
.fhl-seg button.is-active{background:var(--c-primary);color:#fff;font-weight:600;box-shadow:0 2px 8px rgba(0,0,0,.15)}

.fhl-key-zone{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:linear-gradient(135deg,rgba(13,148,136,.10),rgba(13,148,136,.03));border:1px dashed rgba(13,148,136,.35);border-radius:16px;padding:16px 20px;margin-bottom:14px}
.fhl-key-big{font-size:64px;line-height:1;font-weight:800;color:#0d9488;font-family:"Kaiti SC","STKaiti","KaiTi",serif;text-shadow:0 2px 10px rgba(13,148,136,.25);min-width:76px;text-align:center}
.fhl-key-meta{display:flex;flex-direction:column;gap:6px;flex:1;min-width:200px}
.fhl-key-meta .fhl-key-title{font-size:15px;font-weight:600;color:var(--c-text)}
.fhl-key-count{font-size:13px;color:var(--c-text-muted)}
.fhl-custom{display:flex;gap:6px}
.fhl-custom input{width:52px;text-align:center;padding:8px 6px;border:1px solid var(--c-border);border-radius:9px;background:var(--c-surface);color:var(--c-text);font-size:16px}
.fhl-custom button{padding:8px 12px;border:1px solid var(--c-border);border-radius:9px;background:var(--c-surface);color:var(--c-text-sub);font-size:13px;cursor:pointer}
.fhl-custom button:hover{border-color:#0d9488;color:#0d9488}

.fhl-key-pool{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.fhl-key-pool button{position:relative;padding:7px 13px;border:1px solid var(--c-border);border-radius:999px;background:var(--c-surface);color:var(--c-text-sub);font-size:14px;cursor:pointer;transition:all .15s}
.fhl-key-pool button small{font-size:10px;color:var(--c-text-muted);margin-left:3px}
.fhl-key-pool button:hover{border-color:#0d9488;color:#0d9488;transform:translateY(-1px)}
.fhl-key-pool button.is-active{background:#0d9488;border-color:#0d9488;color:#fff}
.fhl-key-pool button.is-active small{color:rgba(255,255,255,.8)}

.fhl-hud{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:13px;color:var(--c-text-sub);background:var(--c-surface-soft);border:1px solid var(--c-border);border-radius:12px;padding:10px 14px;margin-bottom:12px}
.fhl-hud b{color:var(--c-text);font-size:15px}
.fhl-hud .fhl-btns{margin-left:auto;display:flex;gap:6px}
.fhl-hud .fhl-btns button{padding:6px 12px;font-size:12px;border-radius:8px;border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text-sub);cursor:pointer;transition:all .15s}
.fhl-hud .fhl-btns button:hover{border-color:#0d9488;color:#0d9488}

.fhl-status{font-size:14px;line-height:1.7;padding:12px 16px;border-radius:12px;margin-bottom:12px;border:1px solid var(--c-border);background:var(--c-surface-soft);color:var(--c-text-sub);transition:all .2s}
.fhl-status.is-ok{background:rgba(22,163,74,.08);border-color:rgba(22,163,74,.3);color:#15803d}
.fhl-status.is-err{background:rgba(220,38,38,.07);border-color:rgba(220,38,38,.3);color:#b91c1c}
.fhl-status.is-info{background:rgba(13,148,136,.07);border-color:rgba(13,148,136,.3);color:#0f766e}
.fhl-warn{color:#b45309}

.fhl-input-row{display:flex;gap:8px;margin-bottom:14px}
.fhl-input-row input{flex:1;padding:13px 16px;font-size:17px;border:1px solid var(--c-border);border-radius:12px;background:var(--c-surface);color:var(--c-text);font-family:"Kaiti SC","STKaiti","KaiTi",serif;letter-spacing:1px}
.fhl-input-row input:focus{outline:0;border-color:#0d9488;box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.fhl-input-row button{padding:0 22px;font-size:15px}

.fhl-chain{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 2px}
.fhl-chain:empty::after{content:'对局开始后的诗句会在这里依次排列';font-size:13px;color:var(--c-text-muted);text-align:center;padding:20px 0}
.fhl-chain-item{display:flex;align-items:baseline;gap:10px;padding:10px 14px;border-radius:12px;border:1px solid var(--c-border);background:var(--c-surface);animation:fhlIn .25s ease}
@keyframes fhlIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.fhl-chain-item.who-me{border-left:4px solid #0d9488}
.fhl-chain-item.who-ai{border-left:4px solid #7c3aed}
.fhl-chain-item.who-sys{border-left:4px solid #d97706;background:var(--c-surface-soft)}
.fhl-chain-who{flex:none;font-size:11px;padding:2px 8px;border-radius:999px;background:rgba(13,148,136,.12);color:#0f766e;font-weight:600}
.who-sys .fhl-chain-who{background:rgba(217,119,6,.12);color:#b45309}
.who-ai .fhl-chain-who{background:rgba(124,58,237,.12);color:#6d28d9}
.fhl-chain-line{font-size:18px;font-family:"Kaiti SC","STKaiti","KaiTi",serif;color:var(--c-text);letter-spacing:1px}
.fhl-chain-src{margin-left:auto;flex:none;font-size:11px;color:var(--c-text-muted)}
.fhl-hl{font-style:normal;color:#dc2626;font-weight:800;border-bottom:2px solid rgba(220,38,38,.45)}

.fhl-round-over{margin-top:14px;padding:16px;border-radius:14px;background:linear-gradient(135deg,rgba(217,119,6,.12),rgba(217,119,6,.04));border:1px solid rgba(217,119,6,.3);text-align:center}
.fhl-round-over p{margin:0 0 12px;font-size:15px;color:var(--c-text)}
.fhl-round-over b{color:#b45309}

/* 背诗模式 */
.fhl-r-bar{height:8px;border-radius:999px;background:var(--c-surface-soft);border:1px solid var(--c-border);overflow:hidden;margin-bottom:16px}
.fhl-r-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#14b8a6,#0d9488);transition:width .3s}
.fhl-r-q{font-size:26px;font-family:"Kaiti SC","STKaiti","KaiTi",serif;color:var(--c-text);text-align:center;padding:20px 10px 8px;letter-spacing:2px;line-height:1.8}
.fhl-r-qmark{color:var(--c-text-muted)}
.fhl-r-src{text-align:center;font-size:13px;color:#b45309;margin-bottom:10px}
.fhl-r-row{display:flex;gap:8px;justify-content:center;margin:14px 0}
.fhl-r-row input{width:min(360px,60%);padding:12px 16px;font-size:17px;text-align:center;border:1px solid var(--c-border);border-radius:12px;background:var(--c-surface);color:var(--c-text);font-family:"Kaiti SC","STKaiti","KaiTi",serif;letter-spacing:1px}
.fhl-r-row input:focus{outline:0;border-color:#0d9488;box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.fhl-r-feedback{text-align:center;font-size:14px;line-height:1.8;padding:12px 16px;border-radius:12px;margin:10px 0}
.fhl-r-feedback.is-ok{background:rgba(22,163,74,.08);color:#15803d}
.fhl-r-feedback.is-err{background:rgba(220,38,38,.07);color:#b91c1c}
.fhl-r-next{display:block;margin:8px auto 0}
.fhl-r-score{text-align:center;font-size:13px;color:var(--c-text-muted)}
.fhl-r-result{text-align:center;padding:26px 10px}
.fhl-win-stars{font-size:34px;color:#f59e0b;letter-spacing:6px;margin-bottom:8px}
.fhl-r-final{font-size:18px;font-weight:700;color:var(--c-text);margin:6px 0}
.fhl-r-comment{font-size:14px;color:var(--c-text-sub);margin:0 0 16px}

/* 右侧详情卡 */
.fhl-detail-head{margin-bottom:14px}
.fhl-detail-tag{display:inline-block;font-size:12px;padding:3px 12px;border-radius:999px;background:rgba(13,148,136,.12);color:#0f766e;font-weight:600}
.fhl-big-line{font-size:34px;font-family:"Kaiti SC","STKaiti","KaiTi",serif;font-weight:700;color:var(--c-text);letter-spacing:3px;line-height:1.5;text-align:center;padding:18px 6px}
.fhl-big-src{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:14px}
.fhl-big-src .fhl-dyn{font-size:11px;padding:2px 10px;border-radius:999px;background:var(--c-surface-soft);border:1px solid var(--c-border);color:var(--c-text-muted)}
.fhl-big-src b{font-size:15px;color:var(--c-text)}
.fhl-big-src .fhl-pair{font-size:13px;color:var(--c-text-sub);font-family:"Kaiti SC","STKaiti","KaiTi",serif}
.fhl-detail-note{font-size:13px;line-height:1.9;color:var(--c-text-sub);background:var(--c-surface-soft);border:1px solid var(--c-border);border-radius:12px;padding:12px 16px}
.fhl-conf{font-size:11px;padding:1px 8px;border-radius:999px;background:var(--c-surface);border:1px solid var(--c-border)}
.fhl-conf-high{color:#15803d}.fhl-conf-medium{color:#b45309}.fhl-conf-low{color:#b91c1c}

/* 诗库速览 */
.fhl-bank-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.fhl-bank-tabs button{padding:7px 14px;border:1px solid var(--c-border);border-radius:999px;background:var(--c-surface);color:var(--c-text-sub);font-size:14px;cursor:pointer;transition:all .15s}
.fhl-bank-tabs button small{font-size:10px;color:var(--c-text-muted);margin-left:3px}
.fhl-bank-tabs button:hover{border-color:#0d9488;color:#0d9488}
.fhl-bank-tabs button.is-active{background:#0d9488;border-color:#0d9488;color:#fff}
.fhl-bank-tabs button.is-active small{color:rgba(255,255,255,.8)}
.fhl-bank-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.fhl-bank-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 14px;border:1px solid var(--c-border);border-radius:12px;background:var(--c-surface);cursor:pointer;text-align:left;transition:all .15s}
.fhl-bank-item:hover{border-color:#0d9488;transform:translateY(-2px);box-shadow:0 4px 14px rgba(13,148,136,.12)}
.fhl-bank-line{font-size:16px;font-family:"Kaiti SC","STKaiti","KaiTi",serif;color:var(--c-text);letter-spacing:1px}
.fhl-bank-src{font-size:11px;color:var(--c-text-muted)}

/* 忙碌遮罩 */
#fhlApp.is-busy .fhl-input-row input,#fhlApp.is-busy .fhl-input-row button{opacity:.5;pointer-events:none}

[data-theme="dark"] .fhl-key-big{color:#2dd4bf;text-shadow:0 2px 10px rgba(45,212,191,.25)}
[data-theme="dark"] .fhl-key-zone{background:linear-gradient(135deg,rgba(45,212,191,.10),rgba(45,212,191,.03));border-color:rgba(45,212,191,.3)}
[data-theme="dark"] .fhl-status.is-ok{color:#4ade80}
[data-theme="dark"] .fhl-status.is-err{color:#f87171}
[data-theme="dark"] .fhl-status.is-info{color:#2dd4bf}
[data-theme="dark"] .fhl-hl{color:#f87171}
[data-theme="dark"] .fhl-detail-tag{color:#2dd4bf}
[data-theme="dark"] .fhl-chain-item.who-me{border-left-color:#2dd4bf}
[data-theme="dark"] .fhl-bank-item:hover{box-shadow:0 4px 14px rgba(0,0,0,.4)}

@media (max-width:640px){
    .fhl-key-big{font-size:48px}
    .fhl-big-line{font-size:26px}
    .fhl-chain-line{font-size:16px}
    .fhl-chain-src{display:none}
    .fhl-hud .fhl-btns{margin-left:0;width:100%}
    .fhl-input-row{flex-direction:column}
    .fhl-input-row button{padding:12px}
    .fhl-r-row{flex-direction:column;align-items:stretch}
    .fhl-r-row input{width:100%}
}
