:root{--bg: #fff;--surface: #fff;--surface-alt: #f8f9fb;--border: #e2e5ea;--border-light: #edf0f4;--text: #1a1d23;--text-secondary: #4a5568;--text-muted: #6b7280;--accent: #3b6ef0;--accent-light: #e8effe;--accent-hover: #2958d4;--red: #dc3545;--red-bg: #fde8ea;--green: #1a8a4a;--green-bg: #e6f4ec;--blue: #2563eb;--blue-bg: #e8effe;--gold: #b8860b;--gold-bg: #fef3cd;--buster: #d63031;--buster-bg: #fff5f5;--buster-border: #e8b4b4;--arts: #0984e3;--arts-bg: #f4f8ff;--arts-border: #b8d4f0;--quick: #00b894;--quick-bg: #f4fdf9;--quick-border: #a0e0cc;--ex-bg: #fef9f2;--ex-border: #e6d08c;--indigo: #6366f1;--indigo-bg: #eef2ff;--radius: 10px;--radius-sm: 6px;--font-xs: 11px;--font-sm: 13px;--font-base: 14px;--font-md: 17px;--font-lg: 20px;--font-xl: 26px;--font-hero: 34px;--space-2xs: 2px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px}*{margin:0;padding:0;box-sizing:border-box}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#c4c9d2;border-radius:3px}.app{max-width:960px;margin:0 auto;padding:var(--space-lg) var(--space-lg) var(--space-2xl)}.app-header{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-light)}.app-title{font-size:var(--font-xl);font-weight:700;color:var(--text);text-align:center;letter-spacing:-.01em}.app-footer{text-align:center;margin-top:var(--space-2xl);font-size:var(--font-sm);color:var(--text-muted)}.main-col{display:flex;flex-direction:column;gap:var(--space-md)}.main-col>.section-hero,.main-col>.section-prominent{margin-top:var(--space-lg);margin-bottom:var(--space-sm)}.config-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.section{padding-bottom:var(--space-md);border-bottom:1px solid var(--border-light)}.config-row .section{border-bottom:none;padding-bottom:0}.section-hero{padding:var(--space-lg) var(--space-md);background:var(--surface-alt);border-radius:var(--radius);border:1px solid var(--border-light)}.section-prominent{padding-bottom:var(--space-md)}.panel-title{font-size:var(--font-xs);font-weight:700;color:var(--text-muted);margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid var(--border-light);text-transform:uppercase;letter-spacing:.05em;line-height:1.3}.section-hero .panel-title{color:var(--text-secondary);font-size:var(--font-sm);border-bottom:none;margin-bottom:var(--space-xs);padding-bottom:0}.servant-card{display:flex;gap:var(--space-md);align-items:center;padding:var(--space-sm) 0}.servant-class{display:inline-block;padding:3px 10px;border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:700;letter-spacing:1px}.servant-name{font-size:var(--font-lg);font-weight:700}.servant-stat{font-size:var(--font-base);color:var(--text-secondary)}.servant-stat span{color:var(--accent);font-weight:600}.result-row{display:flex;gap:var(--space-sm);flex-wrap:wrap}.result-card{flex:1;min-width:0;padding:var(--space-sm) var(--space-sm);background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border-light);text-align:center}.result-label{font-size:var(--font-xs);color:var(--text-muted);font-weight:600}.result-value{font-size:var(--font-lg);font-weight:800;margin-top:var(--space-2xs)}.result-value.min{color:var(--blue)}.result-value.avg{color:var(--green)}.result-value.max{color:var(--red)}.card-slots{display:flex;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-sm)}.card-slot{width:64px;height:64px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;cursor:pointer;border:2px solid var(--border);transition:transform .12s,border-color .15s,background .15s;-webkit-user-select:none;user-select:none;position:relative;background:var(--surface);font-family:inherit;padding:0}.card-slot.Buster{border-color:var(--buster-border);color:var(--buster);background:var(--buster-bg)}.card-slot.Arts{border-color:var(--arts-border);color:var(--arts);background:var(--arts-bg)}.card-slot.Quick{border-color:var(--quick-border);color:var(--quick);background:var(--quick-bg)}.card-slot.Extra{border-color:var(--ex-border);color:var(--gold);background:var(--ex-bg)}.card-slot.is-np{border-style:double;border-width:4px;font-size:var(--font-sm);letter-spacing:1px}.break-bar{margin-top:var(--space-sm);padding:var(--space-sm);background:var(--surface-alt);border-radius:var(--radius-sm);border:1px solid var(--border-light);display:flex;flex-direction:column;gap:var(--space-xs)}.card-slot:hover{transform:translateY(-2px)}.card-slot:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-slot:active{transform:scale(.93)!important}.card-slot .slot-pos{position:absolute;top:3px;left:7px;font-size:var(--font-xs);opacity:.5;font-weight:600}.card-slots .plus-sep{font-size:16px;color:var(--text-muted);margin:0 2px;font-weight:300}.extra-toggle{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:var(--radius-sm);cursor:pointer;font-size:18px;font-weight:800;transition:all .15s;font-family:inherit;padding:0;border:2px dashed var(--border);color:var(--text-muted);background:var(--surface)}.extra-toggle.on{border-color:var(--gold);color:var(--gold);background:var(--gold-bg);border-style:solid}.extra-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chain-bonus{display:flex;gap:var(--space-sm);flex-wrap:wrap;font-size:var(--font-sm);margin-bottom:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--surface-alt);border-radius:var(--radius-sm);border:1px solid var(--border-light)}.chain-result{display:grid;grid-template-columns:2fr 2fr 2fr 1.5fr;gap:var(--space-xs);font-size:var(--font-base);padding:var(--space-xs)}.chain-header{color:var(--text-muted);font-weight:600;font-size:var(--font-sm);padding-bottom:3px;border-bottom:1px solid var(--border-light)}.chain-total{font-weight:700;color:var(--accent);border-top:2px solid var(--border);padding-top:4px;font-size:var(--font-md)}.loop-row{display:flex;gap:var(--space-sm)}.loop-card{flex:1;padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--border-light);text-align:center}.loop-card .loop-turn{font-size:var(--font-xs);color:var(--text-muted);font-weight:600}.loop-card .loop-dmg{font-size:var(--font-lg);font-weight:800;color:var(--green);margin:var(--space-xs) 0}.loop-card .loop-np{font-size:var(--font-sm);color:var(--text-secondary)}.loop-card .loop-ok{font-size:var(--font-xs);margin-top:var(--space-2xs);color:var(--green);font-weight:600}.loop-card .loop-fail{font-size:var(--font-xs);margin-top:var(--space-2xs);color:var(--red);font-weight:600}.preset-row{display:flex;gap:var(--space-sm);flex-wrap:wrap;align-items:center}.preset-row span.preset-label{font-size:var(--font-sm);color:var(--text-secondary);font-weight:700;line-height:30px;margin-right:4px}.buff-table{width:100%;border-collapse:collapse;font-size:var(--font-sm)}.buff-table th,.buff-table td{padding:4px 6px;text-align:center;border-bottom:1px solid var(--border-light)}.buff-table th{font-size:var(--font-xs);font-weight:600;color:var(--text-secondary);padding-bottom:8px}.buff-table .buff-label-col{text-align:right;min-width:100px;white-space:nowrap}.buff-table .buff-label{text-align:right;font-size:var(--font-xs);color:var(--text-secondary);font-weight:500;padding-right:10px;border-left:3px solid transparent}.buff-label.buff-c-atk{border-left-color:var(--text-muted)}.buff-label.buff-c-buster{border-left-color:var(--buster)}.buff-label.buff-c-arts{border-left-color:var(--arts)}.buff-label.buff-c-quick{border-left-color:var(--quick)}.buff-label.buff-c-crit,.buff-label.buff-c-star{border-left-color:var(--gold)}.buff-label.buff-c-np{border-left-color:var(--accent)}.buff-label.buff-c-special{border-left-color:var(--red)}.buff-note{font-size:9px;color:var(--text-muted);margin-left:4px;font-weight:400}.crit-toggle{background:none;border:none;cursor:pointer;font-size:10px;padding:0 4px 0 0;color:var(--text-muted);line-height:1}.crit-toggle:hover{color:var(--gold)}.crit-summary{font-size:9px;font-weight:600;margin-top:2px;white-space:nowrap}.crit-overflow{font-weight:400;color:var(--text-muted);text-decoration:line-through}.crit-child-row td{background:var(--surface-alt);white-space:nowrap}.buff-table .group-end td{border-bottom:2px solid var(--border)}.buff-table .total-col{min-width:80px}.buff-input{width:68px;padding:4px 6px;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--font-sm);text-align:center;outline:none;background:var(--surface);transition:border-color .15s;font-family:inherit}.buff-input:focus{border-color:var(--accent)}.buff-input::-webkit-inner-spin-button{opacity:0}.buff-input:hover::-webkit-inner-spin-button{opacity:1}.source-header{display:flex;align-items:center;gap:4px;justify-content:center}.source-name-input{width:80px;padding:3px 6px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:600;text-align:center;outline:none;background:transparent;color:var(--text-secondary);transition:border-color .15s,background .15s;font-family:inherit}.source-name-input:hover,.source-name-input:focus{border-color:var(--border);background:var(--surface-alt)}.source-remove-btn{width:28px;height:28px;border:none;background:transparent;color:var(--text-muted);font-size:14px;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;padding:0;line-height:1}.source-remove-btn:hover{background:var(--red-bg);color:var(--red)}.total-cell{font-weight:600;font-size:var(--font-sm);color:var(--text)}.total-cell.capped{color:var(--red)}.cap-badge{display:inline-block;font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;background:var(--red-bg);color:var(--red);margin-left:4px;vertical-align:middle}.buff-actions{display:flex;gap:var(--space-sm);align-items:center;margin-top:var(--space-sm);flex-wrap:wrap}.add-source-btn,.toggle-btn{padding:5px 14px;border:1px dashed var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:var(--font-xs);font-weight:600;cursor:pointer;transition:border-color .15s,color .15s;font-family:inherit}.add-source-btn:hover,.toggle-btn:hover{border-color:var(--accent);color:var(--accent)}.add-source-row{display:flex;gap:6px;align-items:center}.add-source-confirm,.add-source-cancel{padding:4px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--font-xs);cursor:pointer;background:var(--surface);transition:background .15s,border-color .15s,color .15s;font-family:inherit}.add-source-confirm:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.add-source-cancel:hover{background:var(--red-bg);border-color:var(--red);color:var(--red)}@media(max-width:800px){.app{padding:16px 12px 48px}.config-row{grid-template-columns:1fr}.servant-card{flex-direction:column;text-align:center}.chain-bonus{flex-direction:column;gap:4px}.loop-row{flex-direction:column;gap:6px}.result-row{gap:6px}.result-value{font-size:var(--font-md)}}@media(max-width:480px){.app{padding:12px 8px 40px}.card-slots{gap:6px}.card-slot{width:52px;height:52px;font-size:22px}.buff-input{width:56px;padding:4px 3px}.chain-result{font-size:var(--font-sm);gap:4px;padding:4px}}.draw-pool{display:flex;gap:4px;margin-top:var(--space-xs)}.draw-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 4px;border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:800;border:2px solid var(--border)}.draw-badge sub{font-size:9px;font-weight:600;margin-left:1px}.draw-badge-B{color:var(--buster);background:var(--buster-bg);border-color:var(--buster-border)}.draw-badge-A{color:var(--arts);background:var(--arts-bg);border-color:var(--arts-border)}.draw-badge-Q{color:var(--quick);background:var(--quick-bg);border-color:var(--quick-border)}.draw-table{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-xs) var(--space-sm);font-size:var(--font-sm);align-items:center;margin-top:var(--space-md);padding:var(--space-sm);background:var(--surface-alt);border-radius:var(--radius-sm);border:1px solid var(--border-light)}.draw-table-header{font-size:var(--font-xs);font-weight:600;color:var(--text-muted);padding-bottom:var(--space-xs);border-bottom:1px solid var(--border-light)}.draw-cat{font-weight:700;color:var(--text-secondary);padding-top:var(--space-xs);border-top:1px solid var(--border-light)}.draw-prob{font-weight:700;color:var(--accent);text-align:right;font-variant-numeric:tabular-nums}.draw-query{display:flex;gap:var(--space-sm);align-items:center}.draw-query-result{font-size:var(--font-lg);font-weight:800;color:var(--accent);white-space:nowrap}.card-slots button:focus-visible,.source-remove-btn:focus-visible,.add-source-btn:focus-visible,.add-source-confirm:focus-visible,.add-source-cancel:focus-visible,.toggle-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
