@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&display=swap";@keyframes pulse-glow{0%{box-shadow:0 0 #8b5cf666}70%{box-shadow:0 0 0 10px #8b5cf600}to{box-shadow:0 0 #8b5cf600}}@keyframes roll-initial{0%{opacity:0;transform:scale(.8)rotate(0)}50%{opacity:1;transform:scale(1.1)rotate(180deg)}to{transform:scale(1)rotate(360deg)}}@keyframes shake-roll{0%{transform:translate(1px,1px)rotate(0)}10%{transform:translate(-1px,-2px)rotate(-5deg)}20%{transform:translate(-3px)rotate(5deg)}30%{transform:translate(3px,2px)rotate(0)}40%{transform:translate(1px,-1px)rotate(5deg)}50%{transform:translate(-1px,2px)rotate(-5deg)}60%{transform:translate(-3px,1px)rotate(0)}70%{transform:translate(3px,1px)rotate(-5deg)}80%{transform:translate(-1px,-1px)rotate(5deg)}90%{transform:translate(1px,2px)rotate(0)}to{transform:translate(1px,-2px)rotate(-5deg)}}.animate-pulse{animation:2s infinite pulse-glow}.animate-roll{animation:.6s cubic-bezier(.25,1,.5,1) forwards roll-initial}.animate-shake{animation:.4s ease-in-out shake-roll}:root{--bg-color:#09090b;--bg-gradient:radial-gradient(circle at top, #1a1a24, #09090b 80%);--surface:#ffffff0d;--surface-hover:#ffffff1a;--surface-border:#ffffff1a;--text-primary:#fff;--text-secondary:#a1a1aa;--primary:#8b5cf6;--primary-hover:#7c3aed;--danger:#ef4444;--font-sans:"Inter", system-ui, sans-serif;--radius-lg:16px;--radius-md:12px;--radius-sm:8px;--shadow-glow:0 0 20px #8b5cf680;--shadow-surface:0 4px 30px #00000080}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg-gradient);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;min-height:100vh;display:flex}.glass-panel{background:var(--surface);-webkit-backdrop-filter:blur(16px);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-surface)}button{font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn-primary{background-color:var(--primary);color:#fff;border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-weight:600;display:flex}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.control-panel{background:var(--surface);border-top:1px solid var(--surface-border);-webkit-backdrop-filter:blur(20px);justify-content:space-between;align-items:center;gap:2rem;padding:1rem 2rem;display:flex}.count-controls{background:#0006;border-radius:9999px;align-items:center;gap:1.5rem;padding:.5rem 1.5rem;display:flex;box-shadow:inset 0 2px 10px #00000080}.count-btn{background:var(--surface);color:#fff;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.count-btn:hover:not(:disabled){background:var(--primary);box-shadow:var(--shadow-glow);transform:scale(1.1)}.count-btn:disabled{opacity:.3;cursor:not-allowed;filter:grayscale()}.count-display{text-align:center;font-variant-numeric:tabular-nums;min-width:40px;color:var(--primary);font-size:1.75rem;font-weight:800}.dice-selector{scrollbar-width:none;-ms-overflow-style:none;flex:1;align-items:center;gap:1rem;display:flex;overflow-x:auto}.dice-selector::-webkit-scrollbar{display:none}.dice-tab{white-space:nowrap;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff0d;border:1px solid #0000;border-radius:999px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;transition:all .3s;display:flex}.dice-tab-edit-icon{color:inherit;opacity:.5;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.dice-tab-edit-icon:hover{opacity:1;color:#fff;transform:scale(1.15)}.dice-tab:hover{background:#ffffff1a}.dice-tab.active{color:#c4b5fd;background:#8b5cf626;border-color:#8b5cf680;box-shadow:0 0 15px #8b5cf633}.add-dice-btn{color:#fff;white-space:nowrap;background:#ffffff14;border:1px dashed #fff3;border-radius:999px;flex-shrink:0;align-items:center;gap:.5rem;padding:.75rem 1.25rem;display:flex}.add-dice-btn:hover{background:#ffffff26;border-color:#ffffff80}@media (width<=768px){.control-panel{flex-direction:column-reverse;align-items:stretch;gap:.5rem;padding:.5rem}.count-controls{justify-content:center;padding:.25rem 1rem}.count-display{font-size:1.5rem}.count-btn{width:36px;height:36px}.dice-selector{padding-bottom:.25rem}.dice-tab{padding:.5rem 1rem}.dice-tab-edit-icon{display:none}}.dice-engine-wrapper{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4rem;padding:2rem;display:flex}.dice-engine-grid{flex-wrap:wrap;justify-content:center;gap:2rem;max-width:1200px;display:flex}.dice-block{width:160px;height:160px;color:var(--text-primary);box-shadow:inset 0 0 20px #ffffff0d, var(--shadow-surface);background:#ffffff14;border-radius:36px;justify-content:center;align-items:center;font-size:4rem;font-weight:800;transition:all .3s;display:flex;position:relative;overflow:hidden}.dice-block:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#fff3 0%,#fff0 50%);position:absolute;inset:0}.dice-face-content{justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s,transform .3s;display:flex}.dice-icon-scaler{width:55%;height:55%}.hide-face{opacity:0;transform:scale(.5)}.roll-btn{background:linear-gradient(135deg, var(--primary) 0%, #a855f7 100%);border-radius:9999px;padding:1rem 3rem;font-size:1.25rem;box-shadow:0 4px 20px #8b5cf666}.roll-btn[disabled]{opacity:.7;cursor:not-allowed;box-shadow:none;transform:none}.roll-action-area{z-index:15;background:linear-gradient(to top, var(--bg-color) 20%, transparent);pointer-events:none;justify-content:center;width:100%;margin-top:auto;padding:1.5rem 0;display:flex;position:sticky;bottom:0}.roll-action-area>*{pointer-events:auto}.dice-summary{background:#ffffff0d;border:1px solid #ffffff0d;border-radius:20px;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;width:fit-content;max-width:100%;margin-top:-1.5rem;padding:1rem 1.25rem;transition:all .3s;display:flex}.dice-summary.rolling{opacity:.4;filter:grayscale(.5)}.summary-item{color:var(--text-secondary);background:#ffffff0d;border-radius:16px;justify-content:center;align-items:center;gap:.75rem;padding:.5rem 1.5rem;font-size:1.25rem;font-weight:600;display:flex}.summary-value.highlight{color:var(--primary);text-shadow:0 0 15px #8b5cf666;font-size:2rem;font-weight:800}.summary-icons{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem .75rem;display:flex}.summary-icon-badge{min-width:110px;color:var(--text-secondary);background:#ffffff0d;border-radius:16px;justify-content:center;align-items:center;gap:.75rem;padding:.5rem 1.25rem;display:flex}@media (width<=768px){.dice-engine-wrapper{gap:2rem;padding:1rem}.dice-engine-grid{gap:.75rem}.dice-block{border-radius:18px;width:85px;height:85px;font-size:2.25rem}.roll-btn{width:100%;max-width:450px;margin-top:0;padding:.75rem 0}.roll-action-area{padding:.5rem 0}.dice-summary{flex-wrap:wrap;gap:.5rem;max-width:70%;padding:.5rem}.summary-icons{gap:.5rem}}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-color);border:1px solid var(--surface-border);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:600px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 40px #00000080}.modal-header{border-bottom:1px solid var(--surface-border);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-title{align-items:center;gap:.5rem;font-size:1.5rem;font-weight:800;display:flex}.close-btn{color:var(--text-secondary);border-radius:50%;padding:.5rem}.close-btn:hover{background:var(--surface-hover);color:#fff}.modal-body{flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex;overflow-y:auto}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-thumb{background:var(--surface-hover);border-radius:4px}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-group label{color:var(--text-secondary);font-weight:600}.form-control{background:var(--surface);border:1px solid var(--surface-border);color:#fff;border-radius:var(--radius-sm);font-family:var(--font-sans);padding:.75rem 1rem;font-size:1rem}.form-control:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #8b5cf64d}.faces-header-row{justify-content:space-between;align-items:center;display:flex}.face-actions{gap:.5rem;display:flex}.faces-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:1rem;display:grid}.face-editor-card{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-md);flex-direction:column;gap:.75rem;padding:.75rem;display:flex}.face-editor-header{color:var(--text-secondary);justify-content:space-between;font-size:.8rem;display:flex}.face-type-toggle{background:#00000080;border-radius:4px;display:flex;overflow:hidden}.face-type-btn{color:var(--text-secondary);text-align:center;flex:1;padding:.25rem;font-size:.75rem}.face-type-btn.active{background:var(--primary);color:#fff}.face-value-input{text-align:center;border:1px dashed var(--surface-border);color:#fff;background:#0000004d;border-radius:6px;justify-content:center;align-items:center;width:100%;min-height:48px;padding:.5rem;font-size:1.25rem;display:flex}.face-value-input:focus{border-color:var(--primary);outline:none}.number-edit-wrapper{align-items:center;gap:.25rem;display:flex}.face-value-btn{color:var(--text-secondary);cursor:pointer;background:#ffffff14;border:1px solid #0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:48px;transition:all .2s;display:flex}.face-value-btn:hover{color:#fff;background:#ffffff26}.face-value-btn:active{background:var(--primary);color:#fff;transform:scale(.95)}.modal-footer{border-top:1px solid var(--surface-border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.btn-danger{color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-sm);background:0 0;padding:.5rem 1rem}.btn-danger:hover{background:#ef444433}.icon-picker-overlay{z-index:1009;background:0 0;position:fixed;inset:0}.icon-picker{background:var(--bg-color);border:1px solid var(--primary);border-radius:var(--radius-md);z-index:1010;grid-template-columns:repeat(5,1fr);gap:.5rem;padding:1rem;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 40px #000c}.icon-btn{color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;padding:.75rem;display:flex}.icon-btn:hover{background:var(--surface-hover);color:#fff;transform:scale(1.1)}@media (width<=768px){.modal-overlay{padding:0}.modal-content{border:none;border-radius:0;height:100vh;max-height:100vh}.faces-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.icon-picker{grid-template-columns:repeat(4,1fr);width:90%;box-shadow:0 10px 60px #000000e6}.face-value-btn{width:30px}.face-value-input{padding:.25rem;font-size:1rem}}.mixed-picker-content{max-width:520px}.mixed-picker-hint{color:var(--text-secondary);margin-bottom:.25rem;font-size:.875rem;line-height:1.6}.mixed-dice-list{flex-direction:column;gap:.5rem;max-height:400px;padding-right:.25rem;display:flex;overflow-y:auto}.mixed-dice-list::-webkit-scrollbar{width:6px}.mixed-dice-list::-webkit-scrollbar-thumb{background:var(--surface-hover);border-radius:3px}.mixed-dice-row{border-radius:var(--radius-md);border:1px solid var(--surface-border);background:var(--surface);cursor:pointer;align-items:center;gap:.75rem;padding:.75rem 1rem;transition:all .2s;display:flex}.mixed-dice-row.selected{cursor:default}.mixed-dice-row:hover{background:var(--surface-hover);border-color:#ffffff26}.mixed-dice-row.selected{background:#8b5cf61a;border-color:#8b5cf666}.mixed-check-btn{color:var(--text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:color .2s;display:flex}.mixed-check-btn.checked{color:var(--primary)}.mixed-dice-info{cursor:pointer;flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.mixed-dice-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.mixed-dice-faces{color:var(--text-secondary);background:#ffffff12;border-radius:99px;flex-shrink:0;padding:.15rem .5rem;font-size:.75rem}.mixed-count-ctrl{flex-shrink:0;align-items:center;gap:.25rem;transition:opacity .2s;display:flex}.mixed-count-ctrl.hidden{pointer-events:none;opacity:0}.mixed-count-input{text-align:center;width:44px;color:var(--primary);border-radius:var(--radius-sm);font-size:1rem;font-weight:700;font-family:var(--font-sans);background:#8b5cf61f;border:1px solid #8b5cf64d;padding:.25rem}.mixed-count-input:focus{border-color:var(--primary);outline:none}.mixed-count-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mixed-count-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.mixed-count-placeholder{flex-shrink:0;width:calc(108px + .5rem)}.mixed-footer-info{color:var(--text-secondary);flex:1;font-size:.9rem}.btn-ghost{border:1px solid var(--surface-border);color:var(--text-secondary);border-radius:var(--radius-sm);background:0 0;padding:.5rem 1.25rem;font-weight:600}.btn-ghost:hover{background:var(--surface-hover);color:#fff}.mixed-picker-body{gap:1rem}@media (width<=768px){.mixed-picker-content{max-width:100%}.mixed-dice-list{max-height:calc(100vh - 260px)}.mixed-count-placeholder{display:none}}.mixed-engine-wrapper{position:relative}.mixed-mode-bar{border-radius:var(--radius-md);width:100%;color:var(--text-secondary);background:#8b5cf614;border:1px solid #8b5cf633;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.85rem;display:flex}.mixed-mode-label{flex-wrap:wrap;flex:1;align-items:center;gap:.5rem;font-weight:600;display:flex}.mixed-mode-badge{white-space:nowrap;border:1px solid;border-radius:99px;padding:.2rem .6rem;font-size:.78rem;font-weight:700}.mixed-dice-block{position:relative;overflow:hidden}.mixed-dice-accent-bar{opacity:.85;border-radius:99px 99px 0 0;height:4px;position:absolute;top:0;left:0;right:0}.mixed-roll-btn{background:linear-gradient(135deg,#6366f1 0%,#a855f7 50%,#06b6d4 100%)!important;box-shadow:0 4px 20px #6366f166!important}@media (width<=768px){.mixed-mode-bar{padding:.5rem .75rem;font-size:.8rem}.mixed-mode-badge{padding:.15rem .45rem;font-size:.72rem}}.app-container{flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.app-header{border-bottom:1px solid var(--surface-border);border-radius:20px;flex-shrink:0;align-items:center;gap:.75rem;margin:1rem 1rem 0;padding:1.5rem;display:flex}.app-header h1{background:linear-gradient(90deg,#fff,#fff9);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800}.header-actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.mixed-toggle-btn{color:#c4b5fd;white-space:nowrap;background:#8b5cf61a;border:1px solid #8b5cf64d;border-radius:99px;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}.mixed-toggle-btn:hover{background:#8b5cf633;border-color:#8b5cf699;transform:translateY(-1px);box-shadow:0 0 12px #8b5cf64d}.mixed-toggle-btn.active{color:#fca5a5;background:#ef44441f;border-color:#ef444459}.mixed-toggle-btn.active:hover{background:#ef444438;border-color:#ef444499;box-shadow:0 0 12px #ef444440}.app-main{z-index:10;scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:1;width:100%;max-width:1280px;margin:0 auto;display:flex;position:relative;overflow:hidden auto}.app-main::-webkit-scrollbar{display:none}.app-footer{z-index:20;flex-shrink:0;width:100%}@media (width<=768px){.app-header{border-radius:12px;margin:.25rem .5rem;padding:.5rem 1rem}.app-header h1{font-size:1.1rem}.mixed-toggle-btn span{display:none}.mixed-toggle-btn{padding:.45rem .6rem}}
