:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#0d1117;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{height:100%}#root{height:100vh;width:100vw;margin:0;padding:0;text-align:initial;max-width:none}body{margin:0;padding:0;min-width:320px;min-height:100vh;overflow:hidden}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.app-layout{height:100vh;width:100vw;overflow:hidden}.app-content{flex:1;height:100vh;overflow:auto;padding:20px;margin-left:80px}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.character-sheet{width:320px;height:100vh;background:#1a1a1a;border-left:1px solid #23272f;display:flex;flex-direction:column;overflow:hidden;position:fixed;right:0;top:0;z-index:900;transform:translate(100%);transition:transform .3s ease-in-out}.character-sheet.visible{transform:translate(0)}.character-sheet-header{padding:16px;border-bottom:1px solid #23272f;background:#22272e;display:flex;justify-content:space-between;align-items:center}.character-sheet-header h2{margin:0;color:#e6e6e6;font-size:1.25rem;font-weight:600}.demo-character-btn{background:#646cff1a;border:1px solid #646cff;color:#646cff;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s}.demo-character-btn:hover{background:#646cff33;border-color:#535bf2}.character-navigation{padding:12px 16px;border-bottom:1px solid #23272f;background:#1a1a1a;display:flex;flex-wrap:wrap;gap:8px}.nav-btn{background:#e6e6e60d;border:1px solid rgba(230,230,230,.1);color:#b8b8b8;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .2s ease;white-space:nowrap;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:48px}.nav-btn:hover{background:#e6e6e61a;border-color:#e6e6e633;color:#e6e6e6;transform:translateY(-1px)}.nav-btn:active{transform:translateY(0)}.nav-icon{font-size:16px!important;margin-bottom:2px}.nav-label{font-size:.7rem;line-height:1}.character-sheet-content{flex:1;overflow-y:auto;padding:16px}.character-section{margin-bottom:24px}.character-section h3{margin:0 0 12px;color:#646cff;font-size:1rem;font-weight:600;border-bottom:1px solid #23272f;padding-bottom:4px}.character-info{display:flex;flex-direction:column;gap:8px}.info-row{display:flex;flex-direction:column;gap:2px}.info-row .label{font-size:.75rem;color:#aaa;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.info-row .value{color:#e6e6e6;font-size:.9rem}.background-inline-description{color:#aaa;font-size:.85rem;font-style:italic}.ability-scores{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ability-score{background:#23272f;border-radius:8px;padding:12px 8px;text-align:center;border:1px solid #2d3748;transition:border-color .2s ease}.ability-score:hover{border-color:#646cff}.ability-name{font-size:.7rem;color:#aaa;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.ability-value{font-size:1.5rem;color:#e6e6e6;font-weight:700;line-height:1}.ability-modifier{font-size:.8rem;color:#646cff;font-weight:500;margin-top:2px}.traits{display:flex;flex-direction:column;gap:12px}.trait-group{background:#23272f;border-radius:6px;padding:12px;border:1px solid #2d3748}.trait-label{font-size:.8rem;color:#646cff;font-weight:600;margin-bottom:6px}.trait-text{font-size:.85rem;color:#e6e6e6;line-height:1.4}.background-description{background:#23272f;border-radius:6px;padding:12px;border:1px solid #2d3748;font-size:.85rem;color:#e6e6e6;line-height:1.4}.spells-list{display:flex;flex-direction:column;gap:12px}.spell-item{background:#23272f;border-radius:6px;padding:12px;border:1px solid #2d3748}.spell-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.spell-name{font-size:.9rem;color:#e6e6e6;font-weight:600}.spell-level{font-size:.75rem;color:#646cff;background:#646cff1a;padding:2px 6px;border-radius:4px}.spell-school{font-size:.75rem;color:#aaa;margin-bottom:8px;font-style:italic}.spell-description{font-size:.8rem;color:#e6e6e6;line-height:1.4;margin-bottom:8px}.spell-details{display:flex;flex-wrap:wrap;gap:8px;font-size:.7rem;color:#aaa;margin-bottom:6px}.spell-details span{background:#ffffff0d;padding:2px 6px;border-radius:3px}.ritual-tag{background:#646cff33!important;color:#646cff!important}.spell-special{font-size:.75rem;color:#646cff;background:#646cff0d;padding:6px 8px;border-radius:4px;border-left:2px solid #646cff}.spells-by-level{display:flex;flex-direction:column;gap:16px}.spell-level-group{display:flex;flex-direction:column;gap:8px}.spell-level-header{margin:0;color:#646cff;font-size:.9rem;font-weight:600;padding:4px 0;border-bottom:1px solid rgba(100,108,255,.3)}.character-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#aaa}.loading-spinner{width:32px;height:32px;border:3px solid #23272f;border-top:3px solid #646cff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.character-loading p{margin:0;font-size:.9rem}.character-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#ff6b6b;text-align:center}.character-error p{margin:0;font-size:.9rem}.no-character{text-align:center;color:#aaa;padding:40px 20px}.no-character p{margin:0 0 8px;font-size:1rem}.no-character-subtitle{font-size:.85rem!important;opacity:.7}.character-sheet-content::-webkit-scrollbar{width:6px}.character-sheet-content::-webkit-scrollbar-track{background:#1a1a1a}.character-sheet-content::-webkit-scrollbar-thumb{background:#23272f;border-radius:3px}.character-sheet-content::-webkit-scrollbar-thumb:hover{background:#2d3748}@media (max-width: 768px){.character-sheet{width:280px}.chat-ui-container.with-character-sheet{margin-right:280px}.ability-scores{grid-template-columns:repeat(2,1fr)}.character-section{margin-bottom:20px}.character-sheet-content{padding:12px}}@media (max-width: 480px){.character-sheet{width:100vw;border-left:none;z-index:1100}.chat-ui-container.with-character-sheet{margin-right:0}.character-sheet-header{padding:12px 16px}.character-sheet-header h2{font-size:1.1rem}}.abilities-by-level{display:flex;flex-direction:column;gap:16px}.ability-level-group{display:flex;flex-direction:column;gap:8px}.ability-level-header{margin:0;color:#22c55e;font-size:.9rem;font-weight:600;padding:4px 0;border-bottom:1px solid rgba(34,197,94,.3)}.abilities-list{display:flex;flex-direction:column;gap:12px}.ability-item{background:#23272f;border-radius:6px;padding:12px;border:1px solid #2d3748}.ability-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.ability-name{font-size:.9rem;color:#e6e6e6;font-weight:600}.ability-level{font-size:.75rem;color:#22c55e;background:#22c55e1a;padding:2px 6px;border-radius:4px}.ability-description{font-size:.8rem;color:#e6e6e6;line-height:1.4;margin-bottom:8px}.ability-special{font-size:.75rem;color:#22c55e;background:#22c55e0d;padding:6px 8px;border-radius:4px;border-left:2px solid #22c55e}.app-content:has(.chat-ui-container){padding-top:0;padding-bottom:0}.chat-ui-full-height{padding-top:0!important;padding-bottom:0!important}.chat-ui-container *,.chat-ui-container *:before,.chat-ui-container *:after{box-sizing:border-box}.chat-ui-container.with-character-sheet{margin-right:320px}.chat-ui{display:flex;flex-direction:column;height:100vh;flex:1;max-width:none;margin:0;background:#1a1a1a;border-radius:0;box-shadow:none;overflow:hidden;position:relative;box-sizing:border-box}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#1a1a1a;border-bottom:1px solid #23272f;flex-shrink:0}.character-sheet-toggle{background:#646cff1a;border:1px solid #646cff;color:#646cff;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s;display:flex;align-items:center;gap:6px}.character-sheet-toggle:hover{background:#646cff33;border-color:#535bf2}.toggle-icon{font-size:1rem}.toggle-text{font-size:.85rem;font-weight:500}.message-list{flex:1 1 auto;overflow-y:auto;padding:16px 24px;display:flex;flex-direction:column;gap:4px;background:#22272e}.message{max-width:90%;padding:1px 15px;border-radius:15px;font-size:1em;line-height:1.1em;word-break:break-word;box-shadow:0 1px 4px #0002}.message-user{align-self:flex-end;background:linear-gradient(90deg,#646cff 60%,#535bf2);color:#fff}.message-ai{align-self:flex-start;background:#23272f;color:#e6e6e6;width:100%;max-width:100%}.chat-input-form{display:flex;align-items:center;padding:16px 24px;background:#1a1a1a;border-top:1px solid #23272f;flex-shrink:0}.chat-input-form input{flex:1 1 auto;padding:12px 16px;border-radius:8px;border:none;background:#23272f;color:#fff;font-size:1em;margin-right:12px;outline:none}.chat-input-form input:disabled{background:#23272f88;color:#aaa}.chat-input-form button{padding:12px 24px;border-radius:8px;border:none;background:linear-gradient(90deg,#646cff 60%,#535bf2);color:#fff;font-weight:600;font-size:1em;cursor:pointer;transition:background .2s}.chat-input-form button:disabled{background:#23272f88;color:#aaa;cursor:not-allowed}.message p{margin:5px;padding:0}.chat-cost-label{background:#22272ef2;color:#fff;font-size:.9rem;padding:6px 12px;border-radius:6px;box-shadow:0 1px 4px #0003;-webkit-user-select:none;user-select:none;border:1px solid #23272f}
