*{margin:0;padding:0;box-sizing:border-box}body{background:#0a0a14;color:#e0e0e0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;padding:20px}#app{max-width:1200px;margin:0 auto}.app-header{background:#1a1a2e;border-radius:8px;padding:16px 20px;margin-bottom:16px}.app-header h1{font-size:18px;font-weight:700}.title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.title-actions{display:flex;gap:4px}.icon-btn{background:none;border:none;color:#666;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .15s}.icon-btn:hover{color:#e0e0e0}.header-controls{display:flex;align-items:center;gap:8px}.header-controls .dice-input-group{margin-left:auto}.mod-inputs{margin-left:auto;display:flex;align-items:center;font-size:12px;color:#aaa}.mod-inputs p{margin-inline-end:1ch}.mod-inputs input[type=number]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:5ch;background:#12121f;border:1px solid #333;border-radius:4px;color:#e0e0e0;padding:2px 6px;font-size:12px;text-align:center}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}.toggle-btn{border:1px solid #333;border-radius:4px;padding:4px 10px;font-size:11px;cursor:pointer;background:transparent;transition:all .15s}.toggle-btn.adv{color:#4ade80;border-color:#4ade8066}.toggle-btn.adv.active{background:#4ade8022}.toggle-btn.dis{color:#f87171;border-color:#f8717166}.toggle-btn.dis.active{background:#f8717122}.toggle-btn:not(.active){opacity:.4}.dice-input-group{display:flex;align-items:center}.dice-input-group input[type=text]{width:64px;background:#12121f;border:1px solid #333;border-right:none;border-radius:4px 0 0 4px;color:#e0e0e0;padding:3px 8px;font-size:12px;height:24px}.dice-add-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#12121f;border:1px solid #333;border-radius:0 4px 4px 0;color:#e0e0e0;font-size:16px;line-height:1;cursor:pointer;padding:0;transition:all .15s}.dice-add-btn:hover{border-color:#4ade8066;color:#4ade80}dice-row{display:block;background:#12121f;border-radius:8px;padding:14px 16px;margin-bottom:10px}.dice-header{display:flex;align-items:center;margin-bottom:10px;gap:8px}.dice-name-input{field-sizing:content;min-width:3ch;font-size:15px;font-weight:700;background:none;border:none;border-bottom:1px solid transparent;color:#e0e0e0;padding:0;font-family:inherit;cursor:default;flex-shrink:0}.dice-name-input:focus{outline:none;border-bottom-color:#4ade80;cursor:text}.dice-notation-badge{font-size:11px;color:#888;background:#1a1a2e;border:1px solid #333;border-radius:4px;padding:1px 6px;font-weight:400}.dice-ranges{display:flex;flex-wrap:wrap;row-gap:2px}.dice-range-item{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#aaa;margin-left:10px;flex-shrink:0}.range-swatch{width:8px;height:8px;border-radius:2px;flex-shrink:0}.range-swatch-crit-hit{background-image:repeating-linear-gradient(135deg,transparent,transparent 1.5px,rgba(255,255,255,.6) 1.5px,rgba(255,255,255,.6) 3px)}.range-swatch-crit-miss{background-image:repeating-linear-gradient(45deg,transparent,transparent 1.5px,rgba(255,255,255,.6) 1.5px,rgba(255,255,255,.6) 3px)}.bars{display:flex;gap:8px;overflow-x:auto}bar-column{flex:1;text-align:center;min-width:0;min-width:30px}bar-column:has(stacked-bar:nth-of-type(2)){min-width:70px}bar-column:has(stacked-bar:nth-of-type(3)){min-width:100px}.bar-type-row{display:flex;gap:1px;margin-bottom:2px}.bar-type-row span{flex:1;text-align:center;font-size:7px;text-transform:uppercase;letter-spacing:.5px}.type-dis{color:#f87171}.type-nor{color:#888}.type-adv{color:#4ade80}.bar-group{display:flex;gap:1px;height:140px}stacked-bar{flex:1;display:flex;flex-direction:column;min-width:0}stacked-bar .seg:first-child{border-radius:3px 3px 0 0}stacked-bar .seg:last-child{border-radius:0 0 3px 3px}.seg{display:flex;align-items:center;justify-content:center;min-height:0;overflow:hidden;position:relative}.seg-crit-hit{background-image:repeating-linear-gradient(135deg,transparent,transparent 2px,rgba(255,255,255,.55) 2px,rgba(255,255,255,.55) 4px)}.seg-crit-miss{background-image:repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(255,255,255,.55) 2px,rgba(255,255,255,.55) 4px)}.seg span{font-size:8px;font-weight:700;color:#000;line-height:1}.mod-label{font-size:10px;color:#888;margin-top:4px}.seg{cursor:default}.seg:hover:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background:#1a1a2e;color:#e0e0e0;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:400;white-space:nowrap;z-index:10;pointer-events:none;border:1px solid #333}.gear-btn{background:none;border:none;color:#666;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .15s}.gear-btn:hover{color:#e0e0e0}.view-toggle-btn{background:none;border:none;color:#666;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .15s;margin-left:auto}.view-toggle-btn:hover{color:#e0e0e0}.table-wrapper{overflow:auto;max-height:400px;border:1px solid #2a2a3e;border-radius:5px}.dice-table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px}.dice-table th,.dice-table td{padding:4px 8px;text-align:center;border-bottom:1px solid #2a2a3e;border-right:1px solid #2a2a3e}.dice-table tr>:last-child{border-right:none}.dice-table tbody tr:last-child>*{border-bottom:none}.dice-table thead{position:sticky;top:0;z-index:2}.dice-table thead th{background:#1a1a2e;color:#ccc;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.dice-table thead th.corner{position:sticky;left:0;z-index:3}.dice-table tbody th{background:#1a1a2e;color:#ccc;font-weight:600;position:sticky;left:0;z-index:1;white-space:nowrap}.dice-table tbody td{background:#12121f;font-variant-numeric:tabular-nums}.dice-table tbody tr:nth-child(2n) td{background:#1a1a30}.dice-table tbody tr:nth-child(2n) th{background:#22223c}.dice-table .mode-header-row th{font-size:9px;font-weight:400;text-transform:uppercase;letter-spacing:.3px}.dice-table .mode-header-row .dis{color:#f87171}.dice-table .mode-header-row .nor{color:#888}.dice-table .mode-header-row .adv{color:#4ade80}.dice-table .range-swatch{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:middle}dialog{background:#12121f;color:#e0e0e0;border:1px solid #333;border-radius:12px;padding:0;margin:auto;width:calc(100% - 40px);max-width:1200px;height:calc(100vh - 40px);max-height:calc(100vh - 40px);overflow-y:auto}dialog::backdrop{background:#0009}.dialog-header{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:4px;padding:12px 16px;border-bottom:1px solid #333;background:#12121f;position:sticky;top:0;z-index:10}.dialog-title{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:700;min-width:0}.dialog-close{background:none;border:none;color:#666;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .15s}.dialog-close:hover{color:#e0e0e0}.dialog-delete{background:none;border:none;color:#666;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .15s}.dialog-delete:hover{color:#f87171}.dialog-preview{padding:16px;border-bottom:1px solid #333;background:#0a0a14}.dialog-preview .bars{display:flex;flex-direction:row;gap:3px}.dialog-preview .bar-group{height:80px}.dialog-preview .bar-type-row span{font-size:6px}.dialog-preview .mod-label{font-size:8px;margin-top:2px}.dialog-editor-wrapper{margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:12px}.dialog-mod-inputs{display:flex;align-items:center;gap:8px;font-size:12px;color:#aaa}.dialog-mod-inputs input[type=number]{width:5ch;background:#1a1a2e;border:1px solid #333;border-radius:4px;color:#e0e0e0;padding:2px 6px;font-size:12px;text-align:center}.preset-chips{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid #333}.preset-chip{border:1px solid #555;border-radius:6px;padding:5px 12px;font-size:12px;cursor:pointer;background:#333;color:#ccc}.preset-chip.active{background:#4ade80;color:#000;border-color:#4ade80}.preset-chip-add{width:28px;text-align:center;font-weight:700}.preset-chip-custom{display:inline-flex;align-items:center;border:1px solid #555;border-radius:6px;background:#333;overflow:hidden}.preset-chip-custom.active{background:#4ade80;border-color:#4ade80}.preset-chip-select{background:none;border:none;padding:5px 4px 5px 12px;font-size:12px;color:#ccc;cursor:pointer}.preset-chip-custom.active .preset-chip-select{color:#000}.preset-chip-delete{background:none;border:none;border-left:1px solid #555;padding:5px 6px;font-size:13px;color:#888;cursor:pointer;line-height:1}.preset-chip-custom.active .preset-chip-delete{border-left-color:#0003;color:#0006}.preset-chip-delete:hover{color:#f87171}.preset-name-input input{width:100%;box-sizing:border-box;background:#1a1a2e;border:1px solid #333;border-radius:4px;padding:4px 8px;color:#e0e0e0;font-size:13px}.threshold-row{display:grid;grid-template-columns:24px 1fr 50px 24px;align-items:center;gap:8px;padding:6px 0}.threshold-row input[type=color]{width:24px;height:24px;border:2px solid #555;border-radius:4px;padding:0;cursor:pointer;background:none}.threshold-row input[type=text]{background:#1a1a2e;border:1px solid #333;border-radius:4px;padding:4px 8px;color:#e0e0e0;font-size:13px}.threshold-row input[type=number]{background:#1a1a2e;border:1px solid #333;border-radius:4px;padding:4px 8px;color:#e0e0e0;font-size:13px;text-align:center}.threshold-row input:disabled{opacity:.5;cursor:not-allowed}.threshold-floor-label{font-size:12px;color:#666;text-align:center}.threshold-remove{background:none;border:none;color:#666;font-size:16px;cursor:pointer;width:24px;padding:0}.threshold-remove:hover:not(:disabled){color:#f87171}.threshold-remove:disabled{opacity:.5;cursor:not-allowed}.threshold-add{display:block;margin-left:auto;background:none;border:1px solid #333;border-radius:4px;padding:4px 10px;color:#ccc;font-size:12px;cursor:pointer}.threshold-add:hover:not(:disabled){border-color:#888;color:#e0e0e0}.threshold-add:disabled{opacity:.5;cursor:not-allowed}.dialog-adv-method,.dialog-dis-method{display:flex;align-items:center;gap:8px;font-size:12px;color:#aaa}.adv-method-select,.dis-method-select{background:#1a1a2e;border:1px solid #333;border-radius:4px;color:#e0e0e0;padding:2px 6px;font-size:12px}.adv-method-select:disabled,.dis-method-select:disabled{opacity:.5;cursor:not-allowed}.dialog-crit-inputs{display:flex;align-items:center;gap:8px;font-size:12px;color:#aaa;flex-wrap:wrap}.crit-type-select{background:#1a1a2e;border:1px solid #333;border-radius:4px;color:#e0e0e0;padding:2px 6px;font-size:12px}.crit-type-select:disabled{opacity:.5;cursor:not-allowed}.crit-sub-inputs{display:flex;align-items:center;gap:8px;min-height:24px}.crit-sub-inputs input[type=number]{width:5ch;background:#1a1a2e;border:1px solid #333;border-radius:4px;color:#e0e0e0;padding:2px 6px;font-size:12px;text-align:center}.crit-sub-inputs input[type=text]{background:#1a1a2e;border:1px solid #333;border-radius:4px;color:#e0e0e0;padding:2px 6px;font-size:12px;width:80px}.crit-sub-inputs input[type=color]{width:20px;height:20px;border:1px solid #555;border-radius:4px;padding:0;cursor:pointer;background:none}.crit-sub-inputs select{background:#1a1a2e;border:1px solid #333;border-radius:4px;color:#e0e0e0;padding:2px 6px;font-size:12px}.crit-sub-inputs input:disabled,.crit-sub-inputs select:disabled{opacity:.5;cursor:not-allowed}.confirm-dialog{background:#1a1a2e;color:#e0e0e0;border:1px solid #333;border-radius:8px;padding:24px;max-width:400px;height:fit-content;margin:auto}.confirm-dialog::backdrop{background:#0009}.confirm-dialog p{margin-bottom:20px;font-size:14px;line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-cancel,.confirm-replace{border:1px solid #333;border-radius:4px;padding:6px 14px;font-size:13px;cursor:pointer;background:transparent;color:#e0e0e0}.confirm-replace{background:#ef444433;border-color:#ef4444;color:#f87171}.confirm-cancel:hover{background:#fff1}.confirm-replace:hover{background:#ef444455}
