:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:var(--text);background:var(--bg);line-height:1.5;--shadow-sm: 0 8px 22px rgba(17, 35, 63, .08);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--shadow-lg: 0 18px 44px rgba(17, 35, 63, .26);--overlay-opacity: .35;--z-overlay: 1000;--mobile-bottom-safe: 90px}.theme-default{--bg: linear-gradient(160deg, #f4f8fb 0%, #eaf0ff 50%, #f9f4ec 100%);--surface: rgba(255, 255, 255, .82);--surface2: #f8fbff;--text: #152238;--muted: #4b607f;--accent: #204e95;--danger: #b42336;--success: #1d7b3a;--border: #d4ddeb;--shadow-sm: 0 8px 22px rgba(17, 35, 63, .08);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--shadow-lg: 0 18px 44px rgba(17, 35, 63, .26);--overlay-opacity: .35;--z-overlay: 1000;color:var(--text)}*{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}.app-shell{--result-height: 0px;--result-gap: 8px;width:min(1400px,100% - 2rem);margin:0 auto;padding:2rem 0 3rem;display:grid;gap:1rem}.app-header h1{margin:0;font-size:clamp(1.8rem,5vw,2.5rem)}.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.settings-open-button{width:2.2rem;height:2.2rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid #b8c7de;border-radius:999px;background:#fff;color:#1f3352;cursor:pointer}.settings-open-button svg{width:1.2rem;height:1.2rem;fill:currentColor}.result-popup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-overlay);display:grid;place-items:center;padding:1rem;animation:popup-backdrop-fade .16s ease-out}.result-popup-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,var(--overlay-opacity))}@supports (backdrop-filter: blur(2px)){.result-popup-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}.result-popup{position:relative;width:min(92vw,480px);max-height:85vh;overflow:auto;z-index:calc(var(--z-overlay) + 1);background:color-mix(in srgb,var(--surface) 88%,white 12%);border:1px solid color-mix(in srgb,var(--border) 86%,white 14%);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:.8rem;animation:popup-card-in .16s ease-out}.result-popup-header,.result-popup-footer{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.result-popup-header h3{margin:0}.result-popup-content{margin-top:.45rem}.result-popup-expression{margin:0 0 .5rem;font-weight:600;color:#203a60}.result-popup-main{margin:.2rem 0 .5rem;font-size:1.7rem;font-weight:700;color:#18345d}.result-popup-chips{margin-bottom:.35rem}.result-popup-timer{height:3px;margin-top:.6rem;border-radius:999px;background:#2b66b8;transform-origin:left;animation:popup-timer-countdown 3s linear forwards}@keyframes popup-backdrop-fade{0%{opacity:0}to{opacity:1}}@keyframes popup-timer-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes popup-card-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.app-header p{margin:.5rem 0 0;color:#3a4e6a}.panel{background:#ffffffd1;border:1px solid #d4ddeb;border-radius:14px;padding:1rem;box-shadow:0 8px 22px #11233f14}.panel h2{margin-top:0;margin-bottom:.8rem}.mode-switcher-panel{padding-bottom:.8rem}.mode-switcher{display:flex;flex-wrap:wrap;gap:.5rem}.global-roll-controls h3{margin:0 0 .45rem;font-size:1rem}.global-controls-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.global-controls-block,.global-seed-row{display:grid;gap:.4rem}.global-seed-row input{padding:.45rem;border-radius:8px;border:1px solid #b8c7de}.adv-mode-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.adv-mode-button{min-height:3.25rem;border:1px solid #b8c7de;border-radius:10px;padding:.7rem 1rem;background:#fff;color:#294264;font-size:1.05rem;font-weight:700;cursor:pointer;transition:transform .12s ease,background-color .12s ease,border-color .12s ease,color .12s ease}.adv-mode-button:hover,.adv-mode-button:focus-visible{transform:translateY(-1px);border-color:#204e95}.adv-mode-button.is-active{color:#fff}.adv-mode-button--advantage.is-active{border-color:#204e95;background:#204e95}.adv-mode-button--disadvantage.is-active{border-color:#8a3b3b;background:#8a3b3b}.mode-tab{border:1px solid #b8c7de;border-radius:999px;background:#fff;color:#294264;font-weight:600;padding:.45rem .85rem;cursor:pointer}.mode-tab.is-active{border-color:#204e95;background:#204e95;color:#fff}.dice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:.7rem;margin-bottom:1rem}.die-button{border:0;border-radius:10px;padding:.8rem;background:#204e95;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .12s ease,background-color .12s ease}.die-button:hover,.die-button:focus-visible{transform:translateY(-1px);background:#163c78}.die-button-icon{width:100%;height:100%;display:block;margin:0 auto;object-fit:contain;pointer-events:none}.die-button--with-icon{padding:.3rem}.latest-roll-panel{text-align:center}.latest-value{min-height:3.5rem;font-size:clamp(2.3rem,9vw,4rem);font-weight:700;letter-spacing:1px;color:#18345d}.latest-value.has-roll{animation:pop-in .22s ease-out}.latest-all-results{display:grid;gap:.55rem}.latest-meta{margin:0;color:#4b607f}.latest-all-summary{margin:0;color:#355070;font-weight:600}.roll-command-line{position:relative}.roll-command-form{display:grid;gap:.45rem}.roll-command-label{font-weight:600;color:#294264}.roll-command-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:center}.roll-command-input{width:100%;padding:.65rem .75rem;border-radius:8px;border:1px solid #b8c7de;background:#f9fbff;font-family:Cascadia Code,Consolas,monospace;font-size:.95rem}.command-help-toggle,.command-help-close{border:1px solid #b8c7de;background:#fff;color:#1f3352;border-radius:8px;cursor:pointer}.command-help-toggle{width:2rem;height:2rem;font-weight:700}.command-help-close{padding:.3rem .55rem;font-size:.82rem}.roll-command-hint{margin:.45rem 0 0;color:#4b607f;font-size:.9rem}.roll-command-error{margin:.45rem 0 0;color:#b42336;font-weight:600}.roll-command-help{margin-top:.6rem;border:1px solid #d5e0f1;border-radius:10px;background:#f8fbff;padding:.7rem;text-align:left;color:#1f3352}.roll-command-help p{margin:.25rem 0}.roll-command-help ul{margin:.35rem 0 .35rem 1rem;padding:0}.roll-command-help-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.advanced-controls{border-top:1px solid #d9e2f1;padding-top:.85rem}.advanced-panel{margin-top:.8rem;display:grid;gap:.9rem;padding:.85rem;border-radius:10px;border:1px solid #d5e0f1;background:#f8fbff}.advanced-row{margin:0;padding:0;border:0;display:grid;gap:.5rem}.advanced-row-label{font-weight:600;color:#294264}.advanced-row select{width:100%;max-width:280px;padding:.45rem;border-radius:8px;border:1px solid #b8c7de;background:#fff}.advanced-multiplier-inputs{display:grid;grid-template-columns:1fr 84px;gap:.65rem;align-items:center}.advanced-multiplier-inputs input[type=range]{width:100%}.advanced-multiplier-inputs input[type=number]{width:100%;padding:.45rem;border-radius:8px;border:1px solid #b8c7de;background:#fff}.advanced-help-text,.advanced-note{margin:0;color:#4b607f;font-size:.92rem}.advanced-mode-options{display:grid;gap:.45rem}.advanced-mode-layout{display:grid;gap:.75rem;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr)}.advanced-mode-option{display:inline-flex;align-items:center;gap:.45rem}.keep-controls{display:grid;gap:.55rem;align-content:start}.keep-control{display:grid;gap:.3rem}.keep-control label{color:#294264;font-weight:600}.keep-control select{width:100%;padding:.45rem;border-radius:8px;border:1px solid #b8c7de;background:#fff}.keep-help{margin-top:.2rem}.preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem}.preset-card{position:relative}.preset-hotkey-badge{position:absolute;top:.35rem;right:2.2rem;border:1px solid #c7d5ea;border-radius:999px;background:#fff;font-size:.72rem;padding:.1rem .45rem;color:#1f3352}.preset-button{width:100%;border:1px solid #d5e0f1;border-radius:12px;background:#f7faff;color:#1f3352;padding:.75rem;text-align:left;cursor:pointer;display:grid;gap:.2rem}.preset-name{font-weight:700}.preset-meta{font-size:.9rem;color:#4b607f}.preset-delete-button{position:absolute;top:.35rem;right:.35rem;border:1px solid #c7d5ea;background:#fff;border-radius:999px;width:1.5rem;height:1.5rem;line-height:1;cursor:pointer}.preset-edit-button{position:absolute;top:.35rem;right:3.8rem;border:1px solid #c7d5ea;background:#fff;border-radius:999px;padding:.1rem .5rem;cursor:pointer;font-size:.75rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a142861;display:grid;place-items:center;padding:1rem;z-index:20}.modal-panel{width:min(440px,100%);background:#fff;border:1px solid #ced8ea;border-radius:12px;box-shadow:0 12px 34px #14233c47;padding:1rem}.modal-panel h3{margin:0 0 .8rem}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:.6rem}.settings-modal-header h3{margin:0}.settings-section h4{margin:0 0 .5rem}.settings-radio-group{border:0;margin:0;padding:0}.settings-radio-group label{display:inline-flex;align-items:center;gap:.45rem}.settings-checkbox-row{display:inline-flex;align-items:center;gap:.45rem;margin-bottom:.5rem}.settings-actions-row{display:flex;flex-wrap:wrap;gap:.5rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.modal-form{display:grid;gap:.55rem}.modal-form label{font-weight:600;color:#294264}.modal-form input,.modal-form select{padding:.55rem;border:1px solid #b8c7de;border-radius:8px}.modal-form input:disabled{background:#eef2f8;color:#6e7f98}.modal-actions{display:flex;justify-content:flex-end;gap:.55rem;margin-top:.35rem}.history-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.clear-button{border:1px solid #2f4f7a;border-radius:8px;background:#fff;color:#2f4f7a;padding:.45rem .8rem;cursor:pointer}.clear-button:disabled{opacity:.5;cursor:not-allowed}.history-list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.history-item{display:grid;gap:.45rem;padding:.6rem .7rem;border-radius:8px;background:#f6f9ff}.history-inspect-row{display:flex;justify-content:flex-end}.history-row{display:grid;gap:.6rem;align-items:center}.history-row-top{grid-template-columns:1.2fr 2.8fr .6fr}.history-row-results{grid-template-columns:1fr}.history-item.new-roll{animation:highlight .8s ease-out}.history-time{color:#445a7e;font-size:.9rem}.history-die{font-weight:600}.history-result{text-align:right;font-size:1.1rem;font-weight:700}.result-chip-list{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center}.result-chip-list-history{justify-content:flex-start}.result-chip{min-width:2rem;border-radius:999px;padding:.24rem .56rem;font-weight:700;background:#e7eefb;color:#1f3352;text-align:center}.result-chip.is-min{background:#fde7ea;color:#a31d2f}.result-chip.is-max{background:#e6f6ea;color:#1d7b3a}.result-chip.is-dropped{background:#e4e8ef;color:#78859a;text-decoration:line-through}.stack-queue-panel,.stack-results-panel{margin-top:.85rem;border:1px solid #d5e0f1;background:#f8fbff;border-radius:10px;padding:.8rem}.stack-controls-inline{display:flex;align-items:center;gap:.55rem}.stack-queue-list,.stack-group-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.stack-queue-item,.stack-group-item{border:1px solid #d5e0f1;border-radius:8px;background:#fff;padding:.6rem .7rem}.stack-queue-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.stack-queue-label{font-weight:600;color:#223d63}.stack-queue-adjust{display:flex;align-items:center;gap:.4rem}.stack-order-row{display:grid;gap:.35rem;margin-bottom:.65rem}.stack-order-row label{color:#294264;font-weight:600}.stack-order-row select{max-width:220px;padding:.45rem;border-radius:8px;border:1px solid #b8c7de;background:#fff}.stack-group-summary{margin:0 0 .35rem;font-weight:600;color:#294264}.history-empty{margin:0;color:#4b607f}.roll-inspector{border:1px solid #d5e0f1;border-radius:8px;background:#fff;padding:.65rem;display:grid;gap:.35rem}.roll-inspector-line{margin:0;color:#294264}.stats-overview-grid,.stats-mechanics-grid{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stats-card{border:1px solid #d5e0f1;border-radius:10px;background:#f8fbff;padding:.65rem}.stats-card h3{margin:0 0 .45rem;font-size:.95rem}.stats-card p{margin:.2rem 0;color:#2f4f7a}.stats-filters{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:.65rem}.stats-filters label{display:inline-flex;align-items:center;gap:.35rem}.stats-distribution-block{border-top:1px solid #d9e2f1;padding-top:.7rem;margin-top:.7rem}.stats-distribution-block h3{margin:0 0 .5rem}.stats-histogram{display:grid;gap:.3rem}.stats-histogram-row{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(120px,auto) minmax(120px,auto);gap:.5rem;align-items:center}.stats-histogram-bar-wrap{height:.7rem;border-radius:999px;background:#e4ecfa;overflow:hidden}.stats-histogram-bar{height:100%;background:#2b66b8}.stats-histogram-value,.stats-histogram-baseline{font-size:.85rem;color:#3f5f88}@keyframes highlight{0%{background:#e0ecff}to{background:#f6f9ff}}@keyframes pop-in{0%{transform:scale(.92);opacity:.4}to{transform:scale(1);opacity:1}}@media(max-width:600px){.history-row-top{grid-template-columns:1fr auto auto;font-size:.92rem}.advanced-multiplier-inputs,.advanced-mode-layout{grid-template-columns:1fr}}.desktop-shell,.mobile-shell{min-height:100vh}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-2)}.topbar-title-wrap h1{margin:0;font-size:clamp(16px,4vw,22px);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(92vw,38rem)}.topbar-title-wrap{grid-column:2;min-width:0;text-align:center}.topbar-actions{grid-column:3;justify-self:end;display:inline-flex;gap:var(--space-2);min-height:1px}.control-center-grid{--nav-width: 220px;display:grid;gap:var(--space-4);grid-template-columns:var(--nav-width) minmax(0,1fr);align-items:start}.control-main{display:grid;gap:var(--space-4);min-width:0}.control-left{width:var(--nav-width);max-width:220px;min-width:220px;position:sticky;top:var(--space-4);display:grid;gap:var(--space-3);align-content:start}.sidenav-panel{padding:var(--space-3);overflow:hidden}.desktop-nav-list{display:grid;gap:var(--space-2)}.side-nav-item{text-align:left;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;min-height:2rem}.mobile-bottom-nav{display:none}.bottom-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f182673;display:grid;align-items:end;z-index:40}.bottom-sheet{background:var(--surface);border-radius:16px 16px 0 0;border:1px solid var(--border);border-bottom:0;padding:.8rem .9rem calc(.8rem + env(safe-area-inset-bottom));max-height:min(70vh,520px);overflow:auto}.bottom-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.bottom-sheet-content,.mobile-more-list{display:grid;gap:.45rem}.mobile-more-list .side-nav-item{width:100%}.mobile-nav-more{position:relative}.mobile-nav-more>summary{list-style:none}.mobile-nav-more>summary::-webkit-details-marker{display:none}.mobile-nav-more-list{position:absolute;bottom:calc(100% + .4rem);left:50%;transform:translate(-50%);width:180px;display:grid;gap:.35rem;padding:.4rem;border:1px solid var(--border);border-radius:var(--radius-md);background:#fffffffa;box-shadow:var(--shadow-sm);z-index:20}.history-tray{margin-top:var(--space-3)}.history-tray-header{display:flex;justify-content:flex-start;margin-bottom:var(--space-2)}.history-tray-body{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:var(--space-3)}.history-tray.is-collapsed .history-tray-body{display:none}.ui-button,.ui-icon-button,.ui-select,.ui-text-input{font:inherit}.ui-button{border-radius:var(--radius-sm);border:1px solid var(--border);padding:var(--space-2) var(--space-3);cursor:pointer}.ui-button-primary{background:var(--accent);border-color:var(--accent);color:#fff}.ui-button-secondary{background:#fff;color:var(--text)}.ui-button-ghost{background:transparent;color:var(--text)}.ui-icon-button{width:2rem;height:2rem;border-radius:999px;border:1px solid var(--border);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.ui-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:var(--space-3)}.ui-badge,.ui-chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--border);padding:.1rem .5rem;font-size:.82rem;color:var(--muted);background:#fff}.ui-select,.ui-text-input{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2);background:#fff}.ui-divider{border:0;border-top:1px solid var(--border);margin:var(--space-3) 0}.ui-toggle-group{display:inline-flex;border:1px solid var(--border);border-radius:999px;padding:.15rem;background:#fff}.ui-toggle-option{position:relative;border-radius:999px;padding:.2rem .6rem;cursor:pointer}.ui-toggle-option input{position:absolute;opacity:0;pointer-events:none}.ui-toggle-option.is-active{background:#e7eefb;color:var(--accent)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f182666;z-index:25;display:flex;justify-content:flex-end}.drawer-panel{width:min(420px,92vw);height:100%;background:#fff;border-left:1px solid var(--border);padding:var(--space-4);overflow:auto}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}@media(max-width:1023px){.control-center-grid{--nav-width: 190px;grid-template-columns:var(--nav-width) minmax(0,1fr)}.control-left{min-width:190px;max-width:190px}}@media(max-width:767px){.app-shell{width:min(980px,100% - 1rem);height:min(100dvh,816px);padding:.55rem 0 .4rem;padding-bottom:calc(var(--mobile-bottom-safe) + env(safe-area-inset-bottom));gap:.55rem;overflow-y:auto;overflow-x:hidden}.control-center-grid{grid-template-columns:1fr;gap:.55rem}.control-left{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;min-width:0;max-width:none;z-index:15;padding:.45rem .75rem calc(.45rem + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sidenav-panel{background:transparent;border:0;box-shadow:none;padding:0;margin:0}.desktop-nav-list{display:none}.mobile-bottom-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.side-nav-item{text-align:center;padding:.55rem .4rem;font-size:.9rem;min-height:2.8rem;white-space:nowrap}.topbar{gap:.35rem}.topbar-title-wrap h1{font-size:clamp(16px,5vw,20px)}.control-main{min-height:0;gap:.55rem;overflow:visible;padding-bottom:calc(var(--mobile-bottom-safe) + .25rem)}.control-main-mobile-overlay{padding-bottom:calc(var(--mobile-bottom-safe) + .25rem)}.panel{padding:.72rem}.panel h2{margin-bottom:.55rem}.dice-grid--mobile-3col{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.35rem,1.6vw,.5rem)}.dice-grid--mobile-3col .die-button{--roll-btn-size: clamp(42px, min(11vw, 6.9dvh), 54px);aspect-ratio:1 / 1;min-height:var(--roll-btn-size);font-size:clamp(.82rem,3.1vw,.92rem);padding:.18rem}.roll-grid-reserved-space{padding-bottom:0}.mobile-result-panel{position:static;bottom:auto;z-index:auto;margin-bottom:0;max-width:100%}.mobile-result-panel h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-tray{display:none}.result-popup{width:min(94vw,480px)}}@media(max-width:320px){.dice-grid--mobile-3col{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:320px),(max-height:650px){.app-shell.app-shell-tiny-mobile{height:auto;min-height:100dvh;overflow-y:auto}.app-shell.app-shell-tiny-mobile .control-main{overflow:visible;padding-bottom:calc(var(--mobile-bottom-safe) + .5rem)}}@media(prefers-reduced-motion:reduce){.result-popup-overlay,.result-popup,.result-popup-timer{animation:none}}
