.tabs{display:flex;gap:0;border-bottom:2px solid var(--line);margin:0 0 12px;overflow-x:auto}
.tabs button{flex:1 1 0;min-width:88px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:16px;padding:10px 8px;cursor:pointer;min-height:44px;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
.tabs button[aria-selected=true]{color:var(--ji);border-bottom-color:var(--ji);font-weight:700}
.scenes{display:flex;gap:6px;flex-wrap:wrap}
.scenes label{margin:0;color:var(--ink)}
.scenes input{position:absolute;opacity:0;width:1px;height:1px}
.scenes span{display:inline-block;padding:6px 12px;border:1px solid var(--line);border-radius:20px;cursor:pointer;background:var(--card);font-size:14px;min-height:36px;line-height:1.7}
.scenes input:checked+span{background:var(--ji);border-color:var(--ji);color:var(--on-ji)}
.scenes input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.go{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.go .btn{padding:4px 10px;min-height:34px;font-size:13px}
.res{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;align-items:center}
.res .big{grid-row:span 2;min-width:3.2em;text-align:center}
.ruler-box{--tp-bg:#f3d54a;--tp-ink:#2a2420;--tp-red:#b3201a;--tp-blue:#123f7a;--tp-light:#fff4c2;position:relative;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab;border:1px solid #8a6d00;border-radius:8px;background:var(--tp-bg);overflow:hidden}
.ruler-box:active{cursor:grabbing}
.ruler-box svg{display:block;width:100%;height:150px}
.c-ji{fill:rgba(255,255,255,.73)}.c-xi{fill:rgba(0,0,0,.10)}
.gl-ji{fill:var(--tp-red)}.gl-xi{fill:var(--tp-ink)}.gl-t{fill:#fff;font-size:15px;font-weight:700}
.gl-t.xi{fill:var(--tp-light)}
.nm-ji{fill:var(--tp-red);font-size:12px}.nm-xi{fill:var(--tp-ink);font-size:12px}
.tk{stroke:var(--tp-ink);stroke-width:1}.tk-t{fill:var(--tp-ink);font-size:11px}
.sep{stroke:rgba(42,36,32,.35);stroke-width:1}
.ptr{fill:var(--tp-blue)}.ptr-l{stroke:var(--tp-blue);stroke-width:2}
.hint{position:absolute;right:8px;top:6px;font-size:12px;color:var(--tp-ink);opacity:.75;pointer-events:none}
.ruler-box:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.nudge{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:end}
.nudge .f{flex:1;min-width:130px}
.dims{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:640px){.dims{grid-template-columns:1fr}}
.dim h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.strip{display:block;width:100%;height:30px;margin:8px 0 2px}
.s-ji{fill:var(--ji-bg)}.s-xi{fill:var(--xi-bg)}.s-mk{fill:var(--focus)}
.sg{list-style:none;margin:6px 0 0;padding:0}
.sg li{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 0;border-top:1px dashed var(--line);font-size:14px}
.sg .btn{padding:4px 10px;min-height:32px;font-size:13px}
.open{background:var(--acc-bg);border-radius:8px;padding:8px 10px;font-size:14px;margin-top:8px}
table.lst{width:100%;border-collapse:collapse;font-size:14px}
table.lst th,table.lst td{border-bottom:1px solid var(--line);padding:6px 4px;text-align:left}
table.lst input{max-width:100%}
details summary{cursor:pointer;color:var(--acc);font-size:14px;min-height:32px}
.lgrid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(280px,1fr);gap:12px;align-items:start}
@media (max-width:760px){.lgrid{grid-template-columns:1fr}}
#wheel{display:block;width:100%;max-width:520px;margin:0 auto;touch-action:manipulation}
.w-c{cursor:pointer;stroke:var(--card);stroke-width:1.2}
.w-c.ji{fill:var(--ji-bg)}.w-c.xi{fill:var(--xi-bg)}
.w-c:hover,.w-c:focus-visible{stroke:var(--focus);stroke-width:2.5;outline:none}
.w-c.sel{stroke:var(--focus);stroke-width:3.5}
.w-g.ji{fill:var(--ji)}.w-g.xi{fill:var(--xi)}.w-g{stroke:var(--card);stroke-width:1.5}
.w-gt{fill:var(--on-ji);font-size:20px;font-weight:700;pointer-events:none;text-anchor:middle;dominant-baseline:central}
.w-gt.xi{fill:var(--bg)}
.w-ct{font-size:13px;pointer-events:none;text-anchor:middle;dominant-baseline:central}
.w-ct.ji{fill:var(--ji)}.w-ct.xi{fill:var(--xi)}
.w-mid{fill:var(--card);stroke:var(--line)}.w-mt{fill:var(--ink);font-size:15px;text-anchor:middle;pointer-events:none}.w-ms{fill:var(--muted);font-size:11px;text-anchor:middle;pointer-events:none}
.w-ptr{stroke:var(--focus);stroke-width:3;stroke-linecap:round;pointer-events:none}.w-dot{fill:var(--focus);pointer-events:none}
.det h2{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.eq{font-size:15px;padding:6px 10px;background:var(--acc-bg);border-radius:8px;margin:8px 0}
.kv{display:grid;grid-template-columns:5.2em 1fr;gap:4px 8px;font-size:14px;margin:6px 0}.kv dt{color:var(--muted)}.kv dd{margin:0}
input[type=range]{width:100%;max-width:none;accent-color:var(--ji)}
.quiz .qopts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.quiz .qopts .btn{padding:8px 0;font-size:18px}
.quiz .qopts .btn.right{background:var(--ji);color:var(--on-ji);border-color:var(--ji)}
.quiz .qopts .btn.wrong{border-color:var(--warn);background:var(--acc-bg)}
.common-main{align-items:flex-end}
.more-wrap{display:flex;justify-content:center;margin-top:6px;border-top:1px dashed var(--line);padding-top:2px}
.more-btn{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--acc);font:inherit;font-size:14px;cursor:pointer;min-height:40px;padding:0 4px}
.more-btn .sum{color:var(--muted);font-size:13px;max-width:16em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.more-btn i{font-style:normal;display:inline-block;transition:transform .15s}
.more-btn.open i{transform:rotate(180deg)}
.jz .alt{border-top:1px dashed var(--line);margin-top:10px;padding-top:6px}
.tag.fit-best,.tag.lv-excellent{color:var(--on-ji);background:var(--ji);border-color:var(--ji)}
.tag.fit-good,.tag.lv-good{color:var(--ji);background:var(--ji-bg);border-color:var(--ji)}
.tag.fit-poor,.tag.lv-adjust{color:var(--warn);background:var(--acc-bg);border-color:var(--warn)}
.tag.fit-avoid,.tag.lv-redo{color:var(--bg);background:var(--xi);border-color:var(--xi)}
.plan-step{animation:pslide .26s ease-out}
@keyframes pslide{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.plan-step{animation:none}}
.plan-steps{list-style:none;display:flex;gap:8px;margin:0 0 10px;padding:0;flex-wrap:wrap}
.plan-steps li{display:flex;align-items:center;gap:6px;padding:4px 12px;border-radius:16px;border:1px solid var(--line);color:var(--muted);font-size:14px}
.plan-steps li b{display:inline-flex;width:20px;height:20px;border-radius:50%;background:var(--line);color:var(--ink);align-items:center;justify-content:center;font-size:12px}
.plan-steps li.on{border-color:var(--ji);color:var(--ji);font-weight:700}.plan-steps li.on b{background:var(--ji);color:var(--on-ji)}
.plan-steps li.done b{background:var(--ji-bg);color:var(--ji)}
.plan-tpl{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.plan-tpl .btn{min-height:34px;padding:2px 10px;font-size:13px}
.plan-grp{margin:10px 0}.plan-grp h3{font-size:14px;color:var(--muted);margin:0 0 6px;font-weight:600}
.ptypes{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.ptc{display:flex;align-items:center;justify-content:space-between;gap:6px;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--card);transition:border-color .2s,background .2s}
.ptc.has{border-color:var(--ji);background:var(--ji-bg)}
.ptc-n{display:flex;flex-direction:column;min-width:0}.ptc-n .muted{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptc-c{display:flex;align-items:center;gap:4px}.ptc-c .btn{min-height:34px;min-width:34px;padding:0 8px}
.plan-more{margin-top:12px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:var(--card)}
.plan-nav{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}
.plan-picked{font-size:18px;font-weight:700;color:var(--ji)}
.plan-chips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px;margin-bottom:4px}
.pchip{flex:none;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:14px;padding:3px 10px;font-size:13px;cursor:pointer;min-height:32px;max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pchip.cur{outline:2px solid var(--focus);outline-offset:1px}
.pchip.ok{border-color:var(--ji);color:var(--ji)}.pchip.warn{border-color:var(--warn);color:var(--warn)}.pchip.bad{background:var(--xi);color:var(--bg);border-color:var(--xi)}.pchip.skip{opacity:.5;border-style:dashed}
.pdim{padding:10px 0;border-top:1px dashed var(--line)}
.big-in{display:flex;align-items:center;gap:6px;margin:6px 0}.big-in input{font-size:26px;max-width:6em;text-align:center;padding:6px}.big-in .btn{font-size:20px;min-width:44px}
.btn.pre{min-height:30px;padding:2px 8px;font-size:13px}
.pres{margin-top:4px;font-size:14px}
.plan-diag-wrap{margin:8px auto 4px;max-width:340px}.plan-diag{display:block;width:100%;height:auto;margin:0 auto}.plan-diag .dg-t.dg-ts{text-anchor:start}
.plan-diag .dg{stroke:var(--ink);fill:none;stroke-width:2}.plan-diag .dg-a{stroke:var(--ji);stroke-width:2}.plan-diag .dg-t{fill:var(--ji);font-size:13px;text-anchor:middle}
.plan-scores{display:flex;gap:18px;flex-wrap:wrap}.plan-sc{display:flex;gap:12px;align-items:center;min-width:240px;flex:1}
.plan-issue{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:6px 0;border-top:1px dashed var(--line);flex-wrap:wrap}.plan-issue:first-child{border-top:0}
.plan-room{font-size:14px;margin:10px 0 4px;color:var(--acc)}
.plan-tb{width:100%;border-collapse:collapse;font-size:14px}.plan-tb th,.plan-tb td{border-bottom:1px solid var(--line);padding:6px 4px;text-align:left;vertical-align:top}
.plan-check label{display:flex;gap:8px;align-items:flex-start;padding:6px 0;border-bottom:1px dashed var(--line);cursor:pointer}
.plan-check input:checked+span{text-decoration:line-through;color:var(--muted)}
.plan-jz{margin:6px 0;padding-left:1.2em;font-size:14px}
.cmp{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.cmp .box{border:1px solid var(--line);border-radius:8px;padding:6px 12px;text-align:center;min-width:120px}.cmp .box b{display:block;font-size:26px}
@media print{#plan-ai,#plan-ai-open,.top,.tabs,#common,.noprint,.plan-nav,.plan-steps,footer.mod-about,.mod-about,.sub{display:none!important}body{background:#fff}.wrap{max-width:none;padding:0}.card{box-shadow:none;break-inside:avoid}}
.mine-row{display:flex;gap:8px;align-items:center;padding:6px 0;border-top:1px dashed var(--line);flex-wrap:wrap}.mine-row:first-of-type{border-top:0}.mine-n{flex:1;min-width:200px}
#plan-mine-box{margin:8px 0}
#plan-ai .plan-ai-pill{display:inline-flex;gap:4px;align-items:center;margin:0;color:var(--ink);font-size:14px}
#plan-ai textarea{width:100%;max-width:none;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:8px 10px;font:inherit}
#chatPanel[hidden]{display:none}
#chatPanel{--zhuti_clor:var(--ji);--zhuti_clor_hover:var(--ji)}
#chatPanel .chat-messages-container{min-height:clamp(260px,calc(100vh - 380px),420px);max-height:clamp(320px,70vh,560px);background:var(--bg)!important}
#chatPanel .ai-chat-panel-wrapper{background:var(--card)!important;outline:1px solid var(--line);outline-offset:-1px}
#chatPanel .ai-chat-header{background:var(--ji)!important;color:var(--on-ji)!important}
#chatPanel .message-bubble.ai .message-content{background:var(--card)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 1px var(--line)!important}
#chatPanel .message-bubble.ai .message-content h1,#chatPanel .message-bubble.ai .message-content h2,#chatPanel .message-bubble.ai .message-content h3,#chatPanel .message-bubble.ai .message-content strong{color:var(--acc)!important}
#chatPanel .message-bubble.user .message-content{background:var(--ji-bg)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 1px var(--line)!important}
#chatPanel .ai-msg-actions{border-top-color:var(--line)!important}
#chatPanel .ai-action-btn{color:var(--muted)!important;border-color:var(--line)!important;background:transparent!important}
#chatPanel .rating-popup{background:var(--card)!important;border-color:var(--line)!important}
#chatPanel .rate-opt-btn{color:var(--ink)!important;border-color:var(--line)!important}
#chatPanel .chat-footer{background:var(--card)!important;border-top-color:var(--line)!important}
#chatPanel .chat-input,#chatPanel #chat-input{background:var(--card)!important;color:var(--ink)!important;border-color:var(--line)!important}
#chatPanel #chat-input.plan-ai-locked{background:var(--xi-bg)!important;color:var(--muted)!important}
#chatPanel .ai-chat-disclaimer{background:var(--card)!important;color:var(--muted)!important}
#chatPanel .loading-timer-text{color:var(--muted)!important}
#chatPanel .user-points-badge{background:var(--card)!important;color:var(--ink)!important}
.plan-sys-msg{margin:8px auto;padding:6px 12px;border-radius:12px;background:var(--acc-bg);color:var(--ink);font-size:13px;text-align:center;max-width:90%}
.ptc-title{cursor:text}.ptc-title:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}
.ptc-rename{max-width:10em;min-height:34px;padding:2px 8px}
.ptc.custom .ptc-c .btn{min-height:34px;min-width:34px;padding:0 8px}
.ptc-add{justify-content:center;gap:8px;border-style:dashed;cursor:pointer;color:var(--ink);font:inherit}
.ptc-add:hover:not(:disabled),.ptc-add:focus-visible{border-color:var(--ji);background:var(--ji-bg)}
.ptc-add:disabled{opacity:.5;cursor:not-allowed}
.ptc-plus{font-size:24px;line-height:1;color:var(--ji)}
.pdim-x{display:none}
@media (min-width:900px){
  #plan-dims{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px 0}
  #plan-dims .pdim{flex:1 1 250px;min-width:230px;border:1px dashed var(--line);border-radius:8px;padding:10px 14px}
  #plan-dims .pdim-x{display:flex;align-items:center;padding:0 10px;font-size:26px;color:var(--muted);opacity:.45;user-select:none}
  #plan-dims>.btn{flex:0 0 auto;margin-top:8px}
}
.ptc{position:relative}
.ptc-del{position:absolute;top:-9px;left:50%;transform:translateX(-50%);width:20px;height:20px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--muted);font:inherit;font-size:14px;line-height:1;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center}
.ptc-del:hover,.ptc-del:focus-visible{color:var(--ji);border-color:var(--ji)}
.pchip-wrap{display:inline-flex;align-items:center;flex:none}
.pchip-wrap .pchip{padding-right:18px}
.pchip-del{margin-left:-17px;width:16px;height:16px;border-radius:50%;border:0;background:transparent;color:var(--muted);font:inherit;font-size:13px;line-height:1;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative}
.pchip-del:hover,.pchip-del:focus-visible{color:var(--ji);background:var(--ji-bg)}
#t-plan{position:relative}
#t-plan::after{content:"AI";position:absolute;top:3px;right:max(4px,calc(50% - 34px));font-size:10px;font-weight:700;line-height:1;padding:2px 5px;border-radius:8px;background:var(--ji);color:var(--on-ji);letter-spacing:.3px;pointer-events:none}
.plan-steps li.done{cursor:pointer}.plan-steps li.done:hover,.plan-steps li.done:focus-visible{text-decoration:underline}
.plan-diag .dg-fill{fill:var(--ji);opacity:.07;stroke:none}
.std-use{margin:6px 0 0;font-size:13px;line-height:1.6;color:var(--muted)}.std-use:empty{display:none}
