:root{font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#e2e8f0;background:radial-gradient(circle at top,#f59e0b2e,#f59e0b00 24%),radial-gradient(circle at right top,#0ea5e929,#0ea5e900 30%),linear-gradient(180deg,#08111f,#0f172a 44%,#111827);line-height:1.5;font-weight:400}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{border:none;cursor:pointer}#root{min-height:100vh}.page{width:min(100%,760px);margin:0 auto;padding:20px 16px 36px}.hero-card,.panel,.player-card,.inference-card{background:#0f172ad1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(148,163,184,.16);border-radius:20px;box-shadow:0 18px 48px #02061757}.hero-card,.panel{padding:18px;margin-bottom:16px}.hero-card-setup{position:relative;overflow:hidden;padding:26px 22px 24px;border:1px solid rgba(255,255,255,.08);background:radial-gradient(circle at top right,rgba(250,204,21,.24),transparent 32%),radial-gradient(circle at left center,rgba(14,165,233,.2),transparent 28%),linear-gradient(135deg,#1e293bf5,#0f172afa);box-shadow:0 22px 54px #02061757,inset 0 1px #ffffff14}.hero-card-setup:after{content:"";position:absolute;right:-34px;top:-34px;width:132px;height:132px;border-radius:999px;background:radial-gradient(circle,#f9731638,#f9731600);pointer-events:none}.eyebrow{margin:0 0 8px;color:#fbbf24;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.2;margin-bottom:12px}h2{font-size:20px;margin-bottom:14px}h3{font-size:16px;margin-bottom:10px}.hero-copy{margin-bottom:0;color:#cbd5e1;font-size:15px;font-weight:700;letter-spacing:.02em}.hero-chip-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.hero-chip{display:inline-flex;align-items:center;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800;color:#fde68a;background:#ffffff14;border:1px solid rgba(251,191,36,.16)}.field-label{display:block;margin-bottom:8px;font-size:14px;font-weight:700}.setup-heading{margin-bottom:18px}.setup-subtitle{margin-bottom:0;color:#94a3b8}.setup-section{margin-bottom:18px;padding:16px;border-radius:18px;background:linear-gradient(180deg,#1e293bad,#0f172ad1);border:1px solid rgba(148,163,184,.18)}.setup-section:last-of-type{margin-bottom:20px}.setup-section-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.setup-section-head h3{margin-bottom:4px}.setup-section-head p{margin-bottom:0;color:#94a3b8;font-size:13px}.setup-section-index{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:12px;background:linear-gradient(135deg,#d97706,#f97316);color:#fff;font-size:12px;font-weight:800;box-shadow:0 10px 22px #f9731633}.button-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.choice-button,.primary-button,.secondary-button,.ghost-button{border-radius:14px;padding:12px 14px;transition:transform .15s ease,background .15s ease,opacity .15s ease}.choice-button{background:linear-gradient(180deg,#334155f0,#1e293bfa);color:#e2e8f0;border:1px solid rgba(148,163,184,.24);box-shadow:0 8px 18px #02061738}.choice-button.disabled{opacity:.45;cursor:not-allowed}.choice-button.active{background:linear-gradient(135deg,#0f766e,#0891b2);color:#fff;transform:translateY(-1px);border-color:transparent;box-shadow:0 12px 24px #0891b238}.choice-button.danger{border:2px solid #dc2626;background:#fff1f2;color:#991b1b}.primary-button{background:linear-gradient(135deg,#d97706,#f97316);color:#fff;font-weight:700;box-shadow:0 16px 28px #f9731638}.secondary-button{background:#e2e8f0;color:#0f172a;font-weight:700}.ghost-button{background:transparent;color:#475569}.primary-button:disabled,.secondary-button:disabled{opacity:.45;cursor:not-allowed}.full-width{width:100%}.name-grid,.stack-grid,.enemy-list{display:grid;gap:12px}.name-field{display:grid;gap:8px;margin-bottom:12px}.name-field input{width:100%;padding:12px 14px;border:1px solid rgba(148,163,184,.26);border-radius:14px;background:#0f172ae6;color:#e2e8f0;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.modal-input{width:100%;padding:12px 14px;border:1px solid rgba(148,163,184,.26);border-radius:14px;background:#0f172ae6;color:#e2e8f0}.name-field input:focus,.modal-input:focus{outline:none;border-color:#0ea5e9;box-shadow:0 0 0 4px #0ea5e91f;transform:translateY(-1px)}.readonly-field{width:100%;padding:12px 14px;border:1px solid rgba(148,163,184,.22);border-radius:14px;background:#0f172ac7;color:#e2e8f0;font-weight:700}.top-actions,.summary-strip,.panel-header{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:16px}.top-actions-right{justify-content:flex-end}.summary-strip{flex-wrap:wrap;justify-content:flex-start}.recommend-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.recommend-note{color:#0f766e;font-size:13px;font-weight:700}.summary-pill,.badge{display:inline-flex;align-items:center;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700}.summary-pill{background:#0ea5e924;color:#bae6fd}.badge{background:#d9770626;color:#b45309}.player-card{padding:16px;border:2px solid transparent}.player-card.is-current{border:2px solid rgba(217,119,6,.65)}.player-card.is-self{background:linear-gradient(180deg,#ecfdf5eb,#ffffffe6);border-color:#10b98147}.player-card.is-enemy{background:linear-gradient(180deg,#fef2f2eb,#ffffffe6);border-color:#ef444433}.player-card.is-enemy.is-alerting{border-color:#dc2626b8;box-shadow:0 16px 42px #dc262629}.player-card.is-self.is-current{border-color:#10b981d1;box-shadow:0 16px 42px #10b98129}.player-card.is-enemy.is-current{border-color:#ef4444c7;box-shadow:0 16px 42px #ef444424}.player-card.is-enemy.is-current.is-alerting{border-color:#991b1beb;box-shadow:0 18px 46px #991b1b33}.player-name-alerting{color:#b91c1c}.player-alert-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.alert-panel{margin-top:12px;padding:12px;border-radius:14px;background:#d9770614;border:1px solid rgba(217,119,6,.12)}.enemy-inference-panel{margin-top:12px;padding:12px;border-radius:16px;background:#f8fafcf2;border:1px solid rgba(148,163,184,.2)}.self-summary-panel{display:grid;gap:12px;margin-top:10px}.self-summary-block{padding:12px;border-radius:14px;background:#f8fafcf2;border:1px solid rgba(148,163,184,.16)}.self-summary-line{margin-bottom:6px;color:#334155}.self-summary-line:last-child{margin-bottom:0}.enemy-inference-header{display:grid;gap:4px;margin-bottom:10px}.enemy-inference-meta{color:#64748b;font-size:12px;font-weight:700}.enemy-inference-block{display:grid;gap:8px;margin-bottom:12px}.enemy-inference-block:last-child{margin-bottom:0}.enemy-inference-line{margin-bottom:10px;font-size:13px;line-height:1.7}.enemy-inference-line:last-child{margin-bottom:0}.enemy-inference-title{font-size:13px;font-weight:800}.enemy-inference-title.target{color:#c2410c}.enemy-inference-title.exclude{color:#0f766e}.enemy-inference-text{color:#334155}.risk-level{font-weight:800}.risk-mild{color:#ca8a04}.risk-medium{color:#b91c1c}.risk-high{color:#111827}.player-card-header{display:flex;justify-content:space-between;gap:10px;align-items:center}.player-title-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.role-badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.role-badge.self{background:#10b98124;color:#047857}.role-badge.enemy{background:#ef44441f;color:#b91c1c}.badge-self{background:#10b98124;color:#047857}.badge-enemy{background:#ef44441f;color:#b91c1c}.ball-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ball-card{position:relative;min-height:86px;border-radius:16px;padding:14px 10px;display:flex;flex-direction:column;justify-content:center;gap:6px;text-align:center;animation:fadeInUp .24s ease}.ball-card strong{font-size:20px}.state-on_table{background:#dcfce7;color:#166534}.state-resolved{background:#f1f5f9;color:#475569}.state-returned{background:#fef3c7;color:#92400e}.ball-remaining-badge{position:absolute;right:8px;bottom:8px;min-width:24px;height:24px;padding:0 7px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;box-shadow:0 8px 20px #0f172a2e}.count-0,.count-1{background:linear-gradient(135deg,#b91c1c,#ef4444)}.count-2{background:linear-gradient(135deg,#ca8a04,#facc15);color:#3f2b00}.count-3{background:linear-gradient(135deg,#2563eb,#38bdf8)}.count-4{background:linear-gradient(135deg,#15803d,#22c55e)}.inference-card{padding:16px;margin-bottom:12px}.inference-row{display:grid;gap:8px;margin-bottom:12px}.inference-row.compact{margin-bottom:8px}.inference-row:last-child{margin-bottom:0}.inference-label{color:#334155;font-weight:700}.ball-chip-list{display:flex;flex-wrap:wrap;gap:8px}.ball-chip{width:34px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:#fff;box-shadow:inset 0 -3px #00000024}.tone-extremely_high{background:linear-gradient(135deg,#dc2626,#f97316)}.tone-high{background:linear-gradient(135deg,#0284c7,#06b6d4)}.tone-low{background:linear-gradient(135deg,#64748b,#94a3b8)}.tone-excluded{background:linear-gradient(135deg,#475569,#94a3b8)}.tone-danger{background:linear-gradient(135deg,#b91c1c,#ef4444)}.tone-best{background:linear-gradient(135deg,#0f766e,#0ea5e9)}.tone-ok{background:linear-gradient(135deg,#d97706,#facc15)}.tone-avoid{background:linear-gradient(135deg,#b91c1c,#ef4444)}.ball-chip-empty{color:#64748b}.enemy-item{display:grid;gap:4px;padding:12px 0;border-top:1px solid #e2e8f0}.enemy-item:first-child{border-top:none;padding-top:0}.step-block{margin-bottom:18px}.selection-summary{margin-bottom:18px;padding:14px 16px;border-radius:16px;background:#0f766e14;border:1px solid rgba(15,118,110,.12)}.danger-panel{margin-bottom:18px;padding:14px 16px;border-radius:16px;background:#dc262614;border:1px solid rgba(220,38,38,.16)}.danger-title{color:#991b1b;font-weight:700}.danger-warning{margin-bottom:0;color:#b91c1c;font-weight:700}.selection-summary p:last-child{margin-bottom:0}.form-hint,.form-error,.history-empty{margin-bottom:14px}.form-hint{color:#0f766e}.form-error{color:#b91c1c;font-weight:700}.history-list{display:grid;gap:10px}.discard-grid{display:grid;gap:12px}.optional-input-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.inline-check{margin-bottom:12px}.inline-check label{display:inline-flex;align-items:center;gap:10px;font-weight:700}.danger-summary{display:grid;gap:8px;margin-top:14px}.recommend-grid{display:grid;gap:12px}.recommend-card,.recommend-summary-card,.recommend-lock-card,.recommend-placeholder{padding:16px;border-radius:16px;background:#f8fafc;border:1px solid #e2e8f0}.recommend-summary-card{margin-bottom:12px}.risk-hint-list{display:grid;gap:10px}.risk-hint-item{display:flex;align-items:center;gap:10px;padding:12px;border-radius:14px;background:#fff;border:1px solid #fecaca}.recommend-list{display:grid;gap:10px}.recommend-item{padding:12px;border-radius:14px;background:#fff;border:1px solid #e2e8f0}.tone-wrap-best{border-left:4px solid #0f766e}.tone-wrap-ok{border-left:4px solid #d97706}.tone-wrap-avoid{border-left:4px solid #dc2626}.recommend-item-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.recommend-risk{color:#334155;font-weight:700}.recommend-reason{margin-bottom:0;color:#475569}.history-item{padding:12px 14px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0}.history-empty{color:#64748b}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:16px;background:#0f172a6b}.modal-card{width:min(100%,760px);max-height:calc(100vh - 32px);overflow-y:auto;padding:18px;border-radius:24px;background:#fffffff5;border:1px solid rgba(19,34,56,.08);box-shadow:0 24px 64px #0f172a38}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 720px){.name-grid,.stack-grid,.discard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ball-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.recommend-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.modal-overlay{align-items:center}}
