:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#242424;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#535bf2}body{place-items:center;min-width:320px;min-height:100vh;margin:0;display:flex}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.login-container{box-sizing:border-box;background:var(--primary-color);width:100%;max-width:400px;color:var(--text-color);box-shadow:0 0 20px var(--accent-color);border-radius:10px;margin:5rem auto;padding:2rem}.login-container h1{text-align:center;margin-bottom:1.5rem}.login-container input{box-sizing:border-box;border:none;border-radius:6px;width:100%;margin-bottom:1rem;padding:.75rem;font-size:1rem}.login-container button{box-sizing:border-box;background:var(--accent-color);width:100%;color:var(--text-color);cursor:pointer;border:none;border-radius:6px;padding:.75rem;font-weight:700;transition:background .3s}.login-container button:hover:not(:disabled){background:var(--accent-hover)}.login-container .message-error{text-align:center;font-weight:600}.login-container .switch-mode{text-align:center;color:var(--text-color);margin-top:1rem}.login-container .switch-mode a{white-space:nowrap}.chat-room{background:var(--primary-color);max-width:min(1400px,96vw);box-shadow:0 0 20px var(--accent-color);border-radius:12px;grid-template-columns:3fr 1fr;gap:1rem;margin:1rem auto 3rem;padding:1rem;display:grid}.exit-btn{color:var(--on-dark-text);cursor:pointer;box-shadow:none;text-align:left;background:0 0;border:none;grid-column:1/-1;justify-self:start;margin-bottom:.5rem;padding:0;font-weight:700}.exit-btn:hover{color:var(--on-dark-text);background:0 0;text-decoration:underline}.exit-btn:disabled{color:var(--on-dark-muted);cursor:default}.exit-btn:disabled:hover{text-decoration:none}.connection-banner{grid-column:1/-1;margin:0}.connection-status{color:var(--text-color)}.connection-banner button{margin-left:.5rem}.chat-container{background:var(--secondary-color);border-radius:12px;flex-direction:column;height:70vh;padding:1rem;display:flex;overflow:hidden}.messages{color:var(--primary-color);background:var(--chat-log-bg);border-radius:12px;flex-grow:1;padding-right:1rem;font-family:Lora,EB Garamond,Georgia,serif;overflow-y:auto;box-shadow:inset 0 0 10px #c9b37e}.message{background:var(--chat-message-bg);border-radius:6px;margin-bottom:.75rem;padding:.3rem .6rem}.message.mine{background:var(--chat-message-mine-bg);text-align:right}.dm-message{color:var(--dm-message-text);font-style:italic}.roll-message{border:1px dashed var(--roll-border);font-family:Courier New,Courier,monospace}.session-empty-hint{color:var(--muted-text);text-align:center;padding:1rem .6rem;font-style:italic}.dm-status{color:var(--muted-text);padding:.3rem .6rem;font-style:italic}.dm-unavailable,.roll-refused{color:var(--notice-error-text);background:var(--notice-error-bg);border:1px solid var(--notice-error-border);border-radius:6px;margin:.3rem 0;padding:.4rem .6rem}.roll-tools-toggle{border:1px dashed var(--roll-border);color:var(--primary-color);background:0 0;margin-top:8px;font-size:.85rem}.roll-controls{gap:8px;margin-top:.5rem;display:flex}.roll-tools-note,#report-total-hint{color:var(--muted-text);font-size:.85rem}.roll-tools-note{margin:.5rem 0 0}#report-total-hint{align-self:center}.roll-controls input{border-radius:6px;width:90px;padding:4px 8px}.roll-request{border:1px dashed var(--roll-border);color:var(--primary-color);border-radius:6px;margin-top:.75rem;padding:.5rem .75rem}.roll-request p{margin:0}.party-sidebar{background:var(--secondary-color);color:var(--primary-color);border-radius:12px;padding:1rem}.party-member{margin-bottom:1rem}.party-member-name{margin-bottom:.2rem;font-weight:700}.party-member-race-class,.party-member-scene{color:var(--muted-text);font-size:.85rem;font-weight:400}.party-member-scene{margin-bottom:.2rem}.hp-bar{background:#4a3a24;border-radius:4px;height:8px;overflow:hidden}.hp-bar-fill{background:#b3452e;height:100%}.hp-text{margin-top:.2rem;font-size:.8rem}.death-state{color:var(--muted-text);margin-top:.2rem;font-size:.8rem;font-weight:600}.hp-controls{gap:6px;margin-top:.3rem;display:flex}.ready-badge{color:var(--muted-text);margin-top:.2rem;font-size:.75rem;font-weight:600;display:inline-block}.ready-badge.ready{color:var(--ready-text)}.participation{color:var(--muted-text);margin-top:.2rem;font-size:.75rem;font-weight:600}.participation:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.participation-here{color:var(--ready-text)}.participation-reconnecting{color:var(--turn-text)}.participation-reconnecting:before{box-sizing:border-box;background:0 0;border:2px solid}.turn-badge{color:var(--turn-text);font-weight:700}.load-more-btn{border:1px dashed var(--roll-border);width:100%;color:var(--dm-message-text);cursor:pointer;background:0 0;border-radius:6px;margin-bottom:.75rem;padding:.3rem;display:block}.combat-panel{background:var(--secondary-color);color:var(--primary-color);border-radius:12px;padding:1rem}.combat-panel h3{margin-top:0}.combat-panel ol{margin:0;padding-left:1.2rem}.combat-panel li[aria-current=true]{color:var(--turn-text);font-weight:700}.combat-panel-status{color:var(--muted-text);font-size:.85rem;font-weight:400}.sender{margin-bottom:.2rem;font-size:.9rem;font-weight:700}.scene-label{color:var(--primary-color);font-size:.8rem;font-weight:400}.own-scene{color:var(--muted-text);margin:.75rem 0 0;font-size:.9rem}.content{white-space:pre-wrap;font-size:1rem}.has-combat-panel .chat-container{grid-area:span 2/1}.has-combat-panel .combat-panel,.has-combat-panel .party-sidebar{grid-column:2}@media (width<=720px){.chat-room{grid-template-columns:1fr}.has-combat-panel .chat-container,.has-combat-panel .combat-panel,.has-combat-panel .party-sidebar{grid-area:auto}.combat-panel{order:1}.chat-container{order:2}.party-sidebar{order:3}}.character-sheet h2{margin-bottom:0}.character-subtitle{margin-bottom:.5rem;font-style:italic}.character-field{margin-bottom:1rem}.character-stats-row{gap:1.5rem;margin:1rem 0;display:flex}.character-abilities{border-collapse:collapse;width:100%;margin-bottom:1rem}.character-abilities th,.character-abilities td{text-align:center;border-bottom:1px solid;padding:.4rem}.character-attacks{margin:0 0 1rem;padding-left:1.25rem}.character-notes{white-space:pre-wrap;background:#00000026;border-radius:8px;padding:.75rem}.character-next-steps{margin-top:1rem}.card-list{background:var(--primary-color);max-width:600px;color:var(--secondary-color);box-shadow:0 0 15px var(--accent-color);border-radius:10px;margin:2rem auto;padding:1rem}.card-list-hero{border:var(--border);width:100%;max-width:200px;height:auto;box-shadow:var(--hero-shadow);border-radius:12px;margin:0 auto 1rem;display:block}.card-list h2{text-align:center;margin-bottom:1rem}.card-list ul{margin:0;padding:0;list-style:none}.card-item{background:var(--secondary-color);cursor:pointer;color:var(--primary-color);border-radius:8px;flex-direction:column;margin-bottom:.75rem;padding:1rem;display:flex}.card-item:hover,.card-item:focus{background:#f3e5b1}.card-item .card-title{color:var(--accent-color);font-weight:700}.card-item .card-title:hover{color:var(--accent-hover)}.card-meta{color:var(--muted-text);margin-top:.25em;font-size:.95em}.message-error,.message-success{margin-bottom:12px}.message-error{color:var(--error-text)}.message-success,.status-active{color:var(--success-text)}.danger-zone{border-top:var(--border);margin-top:1.5rem;padding-top:1.5rem}.danger-zone-error{margin-top:8px}.danger-zone-actions{gap:8px;display:flex}.character-page{max-width:640px}.character-form{flex-direction:column;gap:1.25rem;display:flex}.field{flex-direction:column;flex:1;gap:.35rem;min-width:140px;display:flex}.field label{font-size:.9rem;font-weight:700}.character-form .field input,.character-form .field select,.character-form .field textarea{box-sizing:border-box;border:none;border-radius:6px;width:100%;margin:0;padding:.65rem;font-family:inherit;font-size:1rem}.name-field-row{gap:.5rem;display:flex}.name-field-row input{flex:1}.character-form button.name-generate-button{flex-shrink:0;width:auto}.field-row{flex-wrap:wrap;gap:1rem;display:flex}.field-level{flex:0 90px;min-width:90px}.field-group{flex-direction:column;gap:.5rem;display:flex}.field-group-label{font-weight:700}.ability-grid{grid-template-columns:repeat(6,1fr);gap:.5rem;display:grid}.ability-field{min-width:0}.ability-field label{text-align:center}.button-row{flex-wrap:wrap;gap:8px;display:flex}.attack-row{border:1px solid;border-radius:6px;flex-direction:column;gap:.75rem;padding:.75rem;display:flex}fieldset.proficiency-group{border:none;margin:0;padding:0}.proficiency-grid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.35rem 1rem;display:grid}.checkbox-field{align-items:center;gap:.5rem;display:flex}.character-form .checkbox-field input{width:auto;margin:0}.submit-button{width:100%}@media (width<=480px){.ability-grid{grid-template-columns:repeat(3,1fr)}}.app-header{background:linear-gradient(90deg, var(--primary-color) 80%, var(--accent-color) 100%);box-shadow:var(--shadow);border-bottom:3px solid var(--gold);z-index:10;border-radius:0 0 18px 18px;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex;position:relative}.header-left,.logo-title{align-items:center;gap:.75rem;min-width:0;display:flex}.logo-title:hover{text-decoration:none}.logo-title>div{min-width:0}.logo-title img{object-fit:contain;filter:drop-shadow(0 3px 6px #18151077);background:0 0;flex-shrink:0;width:auto;height:clamp(56px,16vw,120px)}.logo-title h1{color:var(--secondary-color);text-shadow:0 2px 8px #18151055;white-space:nowrap;margin:0;font-size:clamp(1.75rem,7vw,4rem)}.subtitle{color:var(--header-subtitle-text);letter-spacing:.5px;white-space:nowrap;text-overflow:ellipsis;margin-top:-.3em;font-size:clamp(.8rem,3vw,1.5rem);font-style:italic;overflow:hidden}.header-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.auth-links{flex-shrink:0;align-items:center;gap:1.25rem;display:flex}.auth-links a{color:var(--secondary-color);font-family:Lora,EB Garamond,serif}.auth-links a:hover{color:var(--accent-color)}.menu-toggle{cursor:pointer;background:0 0;border:none;align-items:center;padding:.35rem;font-size:1.75rem;line-height:1;display:flex}.profile-toggle{cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex}.avatar-initials{background:var(--gold);width:2.25rem;height:2.25rem;color:var(--primary-color);letter-spacing:.5px;border-radius:50%;justify-content:center;align-items:center;font-family:Lora,EB Garamond,serif;font-size:.95rem;font-weight:700;display:flex}.menu,.profile-dropdown{background:var(--primary-color);border:var(--border);border-radius:0 0 12px 12px;flex-direction:column;gap:1rem;min-width:220px;padding:1.2rem 1.5rem;display:none;position:absolute;top:100%;box-shadow:0 8px 24px #2c2412b3}.menu{left:0}.profile-dropdown{right:0}.menu.open,.profile-dropdown.open{display:flex}.profile-dropdown span{color:var(--on-dark-text);margin-bottom:.5rem;font-family:IM Fell English SC,serif;font-size:1.1rem}.menu a,.menu button,.profile-dropdown button{color:var(--secondary-color);text-align:left;cursor:pointer;background:0 0;border:none;padding:.25rem 0;font-family:Lora,EB Garamond,serif;font-size:1.1rem;font-weight:700;transition:color .2s}.menu a:hover,.menu button:hover,.profile-dropdown button:hover{color:var(--accent-color)}.home-hero{border:var(--border);width:100%;max-width:320px;height:auto;box-shadow:var(--hero-shadow);border-radius:12px;margin:0 auto 1.5rem;display:block}:root{--primary-color:#23291a;--secondary-color:#e9d8a6;--accent-color:#a41313;--text-color:#f8f5f2;--muted-text:#5e5340;--on-dark-text:var(--secondary-color);--on-dark-muted:#c9b88a;--header-subtitle-text:#e0c987;--ready-text:#25652f;--turn-text:#8f3320;--error-text:#f66;--success-text:#66d966;--background-color:#181510;--parchment:#f5ecd6;--shadow:0 4px 24px #2c241280;--gold:#bfa76a;--border:2px solid var(--gold);--hero-shadow:0 4px 16px #18151077;--parchment-text:#3a2c13;--accent-hover:#7c0a02;--chat-log-bg:#f4ecd8;--chat-message-bg:#e3d9c6;--chat-message-mine-bg:#bfa87e;--dm-message-text:#7b4e1e;--roll-border:#8a6e3a;--notice-error-text:#a33;--notice-error-bg:#fdecec;--notice-error-border:#f3c0c0}html,body,#root{width:100%;margin:0;padding:0}html{height:100%}#root{min-height:100%}body{background:var(--background-color);color:var(--text-color);background-image:radial-gradient(ellipse at 50% 0%, var(--primary-color) 0%, var(--background-color) 100%);min-height:100vh;margin:0;font-family:Lora,EB Garamond,serif}.app-container{flex-direction:column;min-height:100vh;display:flex}.app-main{background:var(--parchment);color:var(--parchment-text);box-shadow:var(--shadow);border:var(--border);border-radius:18px;flex:1;margin:2rem 0;padding:2rem 1.5rem;font-size:1.1rem}.wrapper{box-sizing:border-box;width:100%;max-width:960px;margin:0 auto;padding:0 1rem}h1,h2,h3{color:var(--accent-color);letter-spacing:1px;margin-top:0;font-family:IM Fell English SC,serif}a{color:var(--accent-color);font-weight:700;text-decoration:none;transition:color .2s}a:hover{color:var(--accent-hover);text-decoration:underline}.dark-surface h2,.dark-surface h3,.dark-surface a,.dark-surface a:hover{color:var(--on-dark-text)}.dark-surface .card-meta{color:var(--on-dark-muted)}.dark-surface .card-item .card-meta,.dark-surface .party-sidebar .card-meta{color:var(--muted-text)}.dark-surface .party-sidebar h2,.dark-surface .party-sidebar h3,.dark-surface .combat-panel h3,.dark-surface .party-sidebar a{color:var(--accent-color)}button{background:var(--accent-color);color:var(--parchment);border:var(--border);cursor:pointer;border-radius:6px;padding:.5em 1.2em;font-family:inherit;font-size:1rem;transition:background .2s,color .2s;box-shadow:0 2px 8px #2c241233}button:hover{background:var(--accent-hover);color:var(--secondary-color)}
