:root{color-scheme:dark;--bg:#121918;--surface:#1b2523;--line:#34443e;--text:#eef3e9;--muted:#a9b8ad;--accent:#d9e9aa;--danger:#ffb6ac;font-family:system-ui,'Microsoft JhengHei',sans-serif;background:var(--bg);color:var(--text)}
*{box-sizing:border-box}body{margin:0;padding:32px;max-width:1600px;margin-inline:auto}header,.section-title,.toolbar,.fields,.form-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}header{margin-bottom:24px;flex-wrap:wrap}.eyebrow{font-size:12px;letter-spacing:3px;color:var(--accent)}h1{font-size:32px;margin:8px 0}h2{font-size:18px;margin:0}p{line-height:1.6}header p,.muted,footer{color:var(--muted)}header p{margin:0}#notice{background:#27352b;padding:12px 16px;border-radius:8px;font-size:14px}main{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(290px,1fr) minmax(350px,1.35fr);gap:20px;align-items:start}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.section-title{margin-bottom:20px}label{display:block;font-size:13px;color:var(--muted)}input,select,button,.file-button{font:inherit;border-radius:7px;border:1px solid var(--line);padding:10px 12px;color:var(--text);background:#141e1b}input,select{max-width:100%;width:100%;margin-top:6px}button,.file-button{cursor:pointer;font-size:13px;white-space:normal}button:hover,.file-button:hover{background:#324237}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--accent);color:#18211a;border-color:var(--accent);font-weight:600}.primary:hover{background:#ebf8cd}.danger{color:var(--danger)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.file-button{position:relative;overflow:hidden;color:var(--text)}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}.file-button:focus-within{outline:2px solid var(--accent)}.toolbar{justify-content:flex-start;flex-wrap:wrap}#item-list{display:grid;gap:8px;margin-top:20px}.item-choice{width:100%;text-align:left;display:flex;align-items:center;gap:12px;padding:14px}.item-choice[aria-pressed=true]{background:#35432d;border-color:var(--accent)}.item-choice small{display:block;color:var(--muted);margin-top:5px}.item-icon{font-size:26px}.fields{align-items:start}.fields label{flex:1;min-width:0}form>label,form>.fields{margin-bottom:16px}.effect-row{display:grid;grid-template-columns:1fr 90px auto;gap:8px;align-items:end;margin-bottom:12px}.effect-row button{margin-bottom:0}#add-effect{margin-top:4px}.form-footer{margin-top:24px;flex-wrap:wrap}#form-message{color:var(--accent);font-size:13px}#count{font-size:12px;color:var(--muted)}.team{margin-bottom:24px}.team-heading{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px}.vitals,#timer{font-variant-numeric:tabular-nums;font-size:13px}.health{height:10px;background:#101815;border-radius:9px;overflow:hidden}.health>div{height:100%;background:#b8d88d;transition:width .1s}.team.enemy .health>div{background:#dda18b}.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.slot{min-width:0}.slot select{font-size:12px;padding:8px 3px}.charge{height:4px;background:#101815;margin-top:10px;overflow:hidden}.charge>div{height:100%;background:var(--accent);width:0}.slot small{display:block;color:var(--muted);font-size:11px;margin-top:6px;line-height:1.6}.battle-controls label{display:flex;align-items:center;gap:6px}.battle-controls select{width:auto;margin:0}#battle-result{color:var(--accent)}details{font-size:12px;color:var(--muted)}summary{cursor:pointer}#log{padding:0;list-style:none;font-size:12px;color:var(--muted);line-height:1.8;min-height:60px}footer{font-size:12px;margin-top:24px}.empty{font-size:13px;color:var(--muted)}@media(max-width:1150px){main{grid-template-columns:minmax(220px,.8fr) minmax(300px,1fr)}.arena{grid-column:1/-1}}@media(max-width:620px){body{padding:16px}main{grid-template-columns:1fr}.arena{grid-column:auto}.panel{padding:16px}header{gap:20px}.effect-row{grid-template-columns:1fr 80px auto}.toolbar{gap:8px}h1{font-size:28px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.posture{height:6px;background:#101815;margin-top:8px;border-radius:6px;overflow:hidden}.posture>div{height:100%;background:#91cbd5}.posture-status,.team-skill{font-size:12px;color:var(--muted);margin:7px 0}.weak .posture-status{color:#ffb6ac;font-weight:600}.weak .health>div{background:#ed816d}.active-skill{margin-top:20px;padding:16px;background:#28382c;border:1px solid var(--line);border-radius:10px}.active-skill p{font-size:12px}.active-skill button{width:100%}

.skill-workshop{margin-top:24px}.skill-layout{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(320px,1.3fr);gap:24px}.skill-layout form>label,.skill-layout form>.fields{margin-bottom:16px}.condition-row{padding:16px;border:1px solid var(--line);border-radius:8px;margin:12px 0}.condition-row label{margin-bottom:10px}.condition-row small{display:block;margin:8px 0;color:var(--muted)}.skill-layout h3{font-size:16px;margin-top:24px}#skill-matches{font-size:13px;overflow-wrap:anywhere}#skill-matches strong{display:block;margin-top:20px}#skill-matches p{color:var(--muted)}@media(max-width:700px){.skill-layout{grid-template-columns:1fr}.skill-workshop>.section-title{flex-wrap:wrap}.condition-row .fields{flex-wrap:wrap}}

.tag-manager{margin-bottom:20px}.tag-manager .toolbar input{width:auto;max-width:100%}#tag-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:16px}.effect-card{border:1px solid var(--line);border-radius:8px;padding:12px;margin:12px 0}.effect-card>div{display:grid;gap:8px;margin:8px 0}.effect-card small,.battle-tags{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.effect-card input{min-width:0}select[multiple]{min-height:100px}

.formula-builder{min-width:0}.formula-node{min-width:0;padding:10px;border-left:2px solid #60774c;background:#16201b;margin:8px 0}.formula-group{display:grid;gap:8px;min-width:0;padding-left:6px}.formula-group>div>span{font-size:12px;color:var(--muted)}.formula-group>.formula-node{margin:0}.formula-actions{display:flex;flex-wrap:wrap;gap:6px}.formula-actions button{font-size:11px;padding:6px 8px}.formula-summary{font-size:13px;color:var(--accent);overflow-wrap:anywhere}.formula-builder textarea{width:100%;margin:10px 0;background:var(--bg);color:var(--text);border:1px solid var(--line);padding:8px;resize:vertical}.formula-builder select,.formula-builder input{min-width:0;width:100%}.formula-builder details{margin-top:10px}.formula-builder [role=status]{color:var(--danger);font-size:12px}

[hidden]{display:none!important}
.action-overview-filters{display:grid;grid-template-columns:minmax(180px,2fr) repeat(4,minmax(100px,1fr)) auto;gap:12px;align-items:end}.action-overview-filters label{min-width:0}.action-overview-filters input,.action-overview-filters select{width:100%;min-width:0}#overview-list{display:grid;gap:12px}.action-overview-card{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr);gap:20px;padding:18px;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}.action-overview-info h3{margin:0 0 8px}.action-overview-info p{color:var(--muted);font-size:13px;margin:0;line-height:1.8}.action-overview-effects{margin:0;padding:0;list-style:none;display:grid;gap:14px}.action-overview-effects strong{color:var(--accent);font-size:13px}.action-overview-effects p{margin:4px 0 0;white-space:pre-wrap;line-height:1.8}@media(max-width:1000px){.action-overview-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.action-overview-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.action-overview-card{grid-template-columns:minmax(0,1fr);gap:14px}}

.live-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.combatant{min-width:0;padding:10px 6px;background:#111d19;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}.combatant small{display:block;margin:6px 0;font-size:11px}.combatant strong{font-size:13px}.combatant.dead{opacity:.45}.combatant.weak{border-color:var(--danger)}.editor .fields{flex-wrap:wrap}.editor .fields label{min-width:100px}

.effect-value{padding:0;margin:0;border:0;min-width:0;display:grid;gap:8px}

.workspace-main{display:block}.workspace-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--line)}.workspace-tabs [aria-selected="true"]{background:var(--accent);color:var(--bg);border-color:var(--accent)}.character-tools{margin-bottom:16px}.character-layout{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:20px;align-items:start}.workspace-main .skill-workshop{margin-top:0}.workspace-main .arena{max-width:1000px;margin:0 auto}.workspace-main [role="tabpanel"]{min-width:0}.workspace-main form [role="tabpanel"]>label,.workspace-main form [role="tabpanel"]>.fields{margin-bottom:16px}.workspace-main .skill-layout{grid-template-columns:minmax(220px,300px) minmax(0,1fr)}@media(max-width:720px){.character-layout,.workspace-main .skill-layout{grid-template-columns:1fr}.workspace-tabs button{flex:1}.workspace-main .section-title{flex-wrap:wrap}}
.effect-card>.effect-target-table{display:block;overflow-x:auto;padding:10px 0}.effect-target-table table{width:100%;min-width:600px;border-collapse:collapse;font-size:12px}.effect-target-table caption{text-align:left;font-weight:600;color:var(--accent);padding:0 0 8px}.effect-target-table th,.effect-target-table td{border:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}.effect-target-table th{font-weight:500;color:var(--muted)}.effect-target-table select{margin:0;font-size:12px;min-width:95px}.effect-target-table small{display:block;margin-top:8px;line-height:1.8}.effect-target-table select:disabled{opacity:.4}.simulation-option{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:8px;margin:16px 0;color:var(--text)}.simulation-option input{width:auto;margin:0}.simulation-option small{color:var(--muted)}

.config-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.config-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.config-slots label{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px}.config-slots small{display:block;margin-top:8px}#config-form h3{margin-top:28px}@media(max-width:720px){.config-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}

#database-recovery{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:8px}#database-recovery-details{white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;overflow:auto}

.echo-table-scroll{overflow:auto;margin:20px 0}.echo-table{width:100%;border-collapse:collapse;min-width:650px}.echo-table th,.echo-table td{padding:12px;text-align:left;border-bottom:1px solid var(--line)}.echo-table input{width:110px;max-width:100%;box-sizing:border-box}.echo-table td:last-child{font-size:12px;color:var(--muted)}

#character-description,#skill-edit-description,#law-description,#status-description{display:block;width:100%;margin:8px 0;padding:12px;resize:vertical;background:var(--bg);color:var(--text);border:1px solid var(--line);font:inherit;line-height:1.7}

/* Effect flow: conditions, target searches, payload. */
.effect-section{min-width:0;border:1px solid var(--line);border-radius:8px;margin:14px 0;padding:14px;display:grid;gap:12px}.effect-section legend{color:var(--accent);font-weight:600;padding:0 6px}.effect-section small{display:block;line-height:1.7}.effect-search-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.effect-condition{border-left:2px solid var(--line);padding:10px;margin:8px 0;display:grid;gap:8px}.effect-condition>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.effect-condition .effect-section{grid-column:1/-1}.effect-card h4{margin:0;color:var(--accent)}#effects>.effect-card:first-child,#skill-effects>.effect-card:first-child{border-color:var(--accent);border-width:2px}.effect-section button{justify-self:start}

.movement-settings{padding:12px 14px;border:1px solid var(--line);border-radius:8px;margin:14px 0}.movement-settings>summary{color:var(--text);font-size:14px}.effect-card>button{margin:6px 6px 4px 0}
