*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{--bg:#2b261f;--bg2:#332d24;--ink:#efe7d6;--mut:#b6a98c;--gold:#d4af6e;--line:#4a4234;--yang:#e9dcc0;--yin:#e9dcc0;--red:#d98a6a;--card:#352f25}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",serif;
  font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.wrap{width:100%;max-width:560px;margin:0 auto;padding:16px 14px calc(60px + env(safe-area-inset-bottom))}
header{text-align:center;padding:8px 0 14px}
header h1{margin:0;font-size:26px;letter-spacing:.3em;color:var(--gold);font-weight:600}
header .sub{color:var(--mut);font-size:12px;letter-spacing:.15em;margin-top:4px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0}
label.fld{display:block;font-size:13px;color:var(--mut);margin:0 0 6px;letter-spacing:.1em}
input[type=text],input[type=datetime-local]{width:100%;background:var(--bg2);border:1px solid var(--line);color:var(--ink);
  border-radius:10px;padding:10px 12px;font-size:16px;font-family:inherit}
input[type=datetime-local]{color-scheme:dark;-webkit-appearance:none;appearance:none}
.manual-time{margin-top:12px}
.manual-time.hidden{display:none}
.time-hint{margin-top:10px;color:var(--mut);font-size:12px;text-align:center}
.row{display:flex;align-items:center;gap:10px;margin:9px 0}
.row.rolling .coin{border-color:rgba(212,175,110,.72);animation:shakePulse .18s ease-in-out infinite alternate}
.row.stopped .tag{color:var(--gold);font-weight:600}
.row.stopped .coin{box-shadow:0 0 0 1px rgba(212,175,110,.18) inset}
.row .tag{width:52px;flex:0 0 52px;color:var(--mut);font-size:13px;text-align:center}
.coins{display:flex;gap:8px;flex:1}
.coin{flex:1;background:var(--bg2);border:1px solid var(--line);border-radius:999px;padding:9px 0;text-align:center;
  font-size:15px;color:var(--ink);cursor:default;user-select:none;transition:.12s}
#coinBox.manual .coin{cursor:pointer}
#coinBox.manual .coin:active{transform:scale(.96)}
.coin.bei{background:#5a4a2c;border-color:var(--gold);color:#fff5e0;font-weight:600}
.yao-prev{width:64px;flex:0 0 64px;text-align:center;font-size:12px;color:var(--gold)}
.yao-prev .bar{display:inline-block;margin:2px auto 0}
.shake-note{margin:10px 0 4px;padding:9px 10px;border-left:3px solid var(--gold);border-radius:6px;background:var(--bg2);color:var(--mut);font-size:12px;line-height:1.7}
.shake-status{min-height:22px;margin:8px 0 2px;color:var(--gold);font-size:13px;text-align:center}
@keyframes shakePulse{from{transform:translateY(-1px)}to{transform:translateY(1px)}}
@media (prefers-reduced-motion:reduce){.row.rolling .coin{animation:none}.coin{transition:none}}
.btns{display:flex;gap:10px;margin-top:10px}
button.act{flex:1;border:none;border-radius:12px;padding:14px;font-size:16px;font-weight:600;cursor:pointer;font-family:inherit}
button:disabled{opacity:.5;cursor:not-allowed}
.primary{background:var(--gold);color:#2b261f;box-shadow:0 2px 10px rgba(212,175,110,.22)}
.primary:active{background:#c79f5e}
button.act.gold-outline{background:transparent;border:1.5px solid var(--gold);color:var(--gold)}
button.act.gold-outline:active{background:rgba(212,175,110,.14)}
.ghost{background:transparent;border:1px solid var(--line);color:var(--mut)}
/* 盘面 */
.pan{width:100%;border-collapse:collapse;font-size:13px}
.pan th{color:var(--mut);font-weight:500;font-size:11px;padding:4px 2px;border-bottom:1px solid var(--line);letter-spacing:.05em}
.pan td{padding:7px 2px;border-bottom:1px solid rgba(74,66,52,.5);text-align:center;vertical-align:middle}
.pan .ls{color:var(--mut);font-size:12px}
.pan .fu{color:#9aa37a;font-size:11px;white-space:nowrap}
.pan .gz{white-space:nowrap}
.pan .gz .wx{color:var(--gold);font-size:11px}
.pan .lq{font-weight:600}
.bar{display:flex;justify-content:center;align-items:center;gap:4px;min-width:60px}
.bar i{display:block;height:8px;background:var(--yang);border-radius:2px}
.bar.yang i{width:54px}
.bar.yin i{width:24px}
.mk{font-size:11px;color:var(--red);font-weight:700;min-width:14px;display:inline-block}
.sy{font-size:11px;font-weight:700}
.sy.s{color:var(--gold)}.sy.y{color:var(--mut)}
.kong{color:var(--red);font-size:11px}
.move{color:var(--red)}
.txt h3{margin:14px 0 4px;font-size:16px;color:var(--gold);letter-spacing:.06em}
.txt .gua{font-size:14px;color:var(--ink)}
.txt .src{color:var(--mut);font-size:12px;margin:2px 0 8px}
.txt .yao{margin:6px 0;padding:8px 10px;background:var(--bg2);border-left:3px solid var(--gold);border-radius:6px;font-size:14px}
.txt .yao b{color:var(--gold)}
.daystr{text-align:center;color:var(--mut);font-size:13px;margin:2px 0 6px}
.cast-time{margin:2px 0 12px;padding:12px;background:var(--card);border:1px solid var(--line);border-radius:14px}
.cast-time-title{text-align:center;color:var(--ink);font-size:14px;margin-bottom:10px}
.pillar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pillar-card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 8px;padding:9px 10px;background:var(--bg2);border:1px solid rgba(212,175,110,.18);border-radius:9px;min-width:0}
.pillar-card span{grid-row:1/3;color:var(--mut);font-size:12px}
.pillar-card b{color:var(--gold);font-size:15px;font-weight:600;line-height:1.25}
.pillar-card small{color:var(--mut);font-size:11px;white-space:nowrap}
.hint{font-size:12px;color:var(--mut);line-height:1.7}
.ai-card{position:relative;margin-top:16px;border-color:#665637;background:linear-gradient(180deg,#3a3227 0%,var(--card) 100%)}
.ai-card h3{margin:0;color:var(--gold);font-size:18px;letter-spacing:.08em}
.ai-lead{margin:3px 0 12px;color:var(--mut);font-size:12px}
.model-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}
.model-choice{border:1px solid var(--line);border-radius:10px;background:var(--bg2);color:var(--mut);padding:9px 8px;font-family:inherit;font-size:14px;cursor:pointer}
.model-choice small{display:block;font-size:11px;font-weight:400;opacity:.8}
.model-choice.active{border-color:var(--gold);background:#5a4a2c;color:#fff5e0;box-shadow:0 0 0 1px rgba(212,175,110,.18) inset}
.ai-card .act{width:100%}
.ai-status{min-height:20px;margin-top:8px;color:var(--mut);font-size:12px;text-align:center}
.ai-status.error{color:var(--red)}
.ai-answer{margin-top:10px;padding:12px;background:var(--bg2);border-left:3px solid var(--gold);border-radius:8px;font-size:14px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere}
.cast-time-wrap{position:relative}
.cast-time-wrap .cast-time-title{padding:0 36px}
.copy-icon-btn{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:8px;background:rgba(43,38,31,.85);color:var(--mut);cursor:pointer;z-index:2;transition:color .15s,border-color .15s,background .15s;-webkit-tap-highlight-color:transparent}
.copy-icon-btn:hover{color:var(--gold);border-color:var(--gold)}
.copy-icon-btn:active{background:rgba(212,175,110,.18)}
.copy-icon-btn svg{width:16px;height:16px;display:block}
.copy-icon-btn.copied{color:var(--gold);border-color:var(--gold)}
.foot{color:var(--mut);font-size:11px;text-align:center;margin-top:22px;line-height:1.7}
.hidden{display:none}
.copy-icon-btn.hidden{display:none}
button,input{touch-action:manipulation}
button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
button{min-height:44px}
button.act{transition:transform .12s,background .12s}
button.act:active:not(:disabled){transform:scale(.98)}
.coin{font-family:inherit;min-height:44px}
.coin:disabled{opacity:1}
.cast-actions{position:sticky;bottom:calc(8px + env(safe-area-inset-bottom));padding:6px 0;background:var(--card);z-index:4}
.shake-progress{display:flex;gap:8px;justify-content:center;margin:14px 0}
.shake-progress span{width:24px;height:4px;border-radius:4px;background:var(--line);transition:background .15s}
.shake-progress span.done{background:var(--gold)}
.account-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--mut)}
.account-bar span{min-width:0;overflow-wrap:anywhere}
.account-bar button{flex-shrink:0;border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:var(--bg2);color:var(--gold);font:inherit}
.account-dialog{position:fixed;width:calc(100% - 32px);max-width:400px;max-height:85dvh;overflow:auto;border:1px solid var(--line);border-radius:18px;padding:24px;color:var(--ink);background:var(--card)}
.account-dialog::backdrop{background:rgba(0,0,0,.65)}
.account-dialog h2{color:var(--gold);margin:0 0 16px;font-size:20px}
.account-dialog label{display:block;font-size:13px;margin:14px 0 6px;color:var(--mut)}
.account-dialog input{width:100%;padding:12px;font:inherit;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--bg2)}
.account-dialog .act{width:100%;margin-top:10px}
.dialog-close{position:absolute;right:8px;top:6px;width:44px;font-size:26px;color:var(--mut);border:0;background:none;cursor:pointer}
.copy-all{width:100%;margin-top:12px}
.ai-card h3{padding-right:48px}
.cast-time-wrap .cast-time-title{padding-right:42px;padding-left:0}
.ai-answer{font-size:15px;line-height:1.95}
.ai-status.loading::before{content:'';display:inline-block;width:12px;height:12px;border:2px solid var(--line);border-top-color:var(--gold);border-radius:50%;margin-right:7px;vertical-align:-2px;animation:waitspin .8s linear infinite}
@keyframes waitspin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
a.lk{color:var(--gold)}
details summary{cursor:pointer;color:var(--mut);font-size:13px;margin-top:8px}
/* 盘面横向滚动（手机防溢出） */
.pan-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:10px}
.pan-scroll-hint{display:none;color:var(--mut);font-size:11px;text-align:right;margin-top:8px}
.pan{min-width:300px}
.toast{position:fixed;left:50%;top:calc(14px + env(safe-area-inset-top));transform:translateX(-50%);
  background:#3a3227;color:var(--gold);border:1px solid var(--gold);border-radius:10px;
  padding:10px 16px;font-size:13px;max-width:88vw;text-align:center;z-index:50;box-shadow:0 6px 20px rgba(0,0,0,.35)}
/* 手机端自适应 */
@media (max-width:430px){
  .wrap{padding:14px 12px calc(52px + env(safe-area-inset-bottom))}
  header h1{font-size:23px;letter-spacing:.22em}
  .card{padding:13px;border-radius:13px}
  button.act{padding:13px;font-size:15px}
  .row{gap:8px}
  .row .tag{width:46px;flex:0 0 46px;font-size:12px}
  .coins{gap:6px}
  .coin{font-size:14px;padding:9px 0}
  .yao-prev{width:56px;flex:0 0 56px;font-size:11px}
  .pan{font-size:12px}
  .pan th{font-size:10px;padding:4px 1px}
  .pan td{padding:6px 1px}
  .pillar-card b{font-size:14px}
}
@media (max-width:360px){
  .pan-scroll-hint{display:block}
  header h1{font-size:21px;letter-spacing:.16em}
  .coin{font-size:13px}
  .row .tag{width:40px;flex:0 0 40px}
  .yao-prev{width:50px;flex:0 0 50px}
  .pillar-grid{grid-template-columns:1fr}
}
