.dice-roller-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(10,10,10,.95);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 0 200px #000c}.dice-roller-container{background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);border-radius:2px;border:2px solid #b8860b;border-top:4px solid #8b0000;box-shadow:0 30px 80px #000000e6,inset 0 1px #ffffff0d,0 0 40px #8b000033;max-width:600px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;position:relative}.dice-roller-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #b8860b;background:linear-gradient(180deg,rgba(45,45,45,.5) 0%,rgba(26,26,26,.5) 100%);box-shadow:0 2px 8px #00000080}.dice-roller-header h2{margin:0;color:#d4a574;font-size:1.5rem;display:flex;align-items:center;gap:.5rem;font-family:Bebas Neue,Oswald,sans-serif;letter-spacing:.1em;text-transform:uppercase;text-shadow:2px 2px 4px rgba(0,0,0,.8)}.close-btn{background:linear-gradient(135deg,#8b0000 0%,#a01a1a 100%);border:1px solid #5a0000;color:#fff;width:36px;height:36px;border-radius:2px;font-size:1.5rem;line-height:1;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #00000080}.close-btn:hover{background:linear-gradient(135deg,#a01a1a 0%,#b82020 100%);border-color:#8b0000;transform:rotate(90deg);box-shadow:0 4px 8px #000000b3,0 0 12px #8b000080}.dice-roller-content{padding:1.5rem;overflow-y:auto;flex:1}.advantage-section{margin-bottom:2rem;padding:1.5rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);border-radius:12px}.advantage-section h3{color:#fff;margin:0 0 1rem;font-size:1.1rem}.modifier-row{margin-bottom:1rem}.modifier-input-group{display:flex;align-items:center;gap:.75rem;background:rgba(0,0,0,.2);padding:.75rem;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.modifier-input-group label{color:#ffffffe6;font-weight:600;font-size:.95rem;white-space:nowrap}.modifier-input{flex:1;max-width:100px;padding:.5rem;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:1rem;font-weight:600;text-align:center}.modifier-input:focus{outline:none;border-color:var(--primary-color);background:rgba(0,0,0,.4)}.btn-reset-modifier{padding:.5rem 1rem;background:rgba(239,68,68,.2);border:1px solid rgba(239,68,68,.3);color:#ef4444;border-radius:6px;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-reset-modifier:hover:not(:disabled){background:rgba(239,68,68,.3);border-color:#ef4444}.btn-reset-modifier:disabled{opacity:.3;cursor:not-allowed}.advantage-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:.75rem}.advantage-btn{padding:.75rem 1rem;border:2px solid rgba(255,255,255,.1);border-radius:8px;background:rgba(255,255,255,.05);color:#aaa;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease}.advantage-btn:hover:not(:disabled){background:rgba(255,255,255,.08);border-color:#fff3;transform:translateY(-2px)}.advantage-btn.active.advantage{background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-color:#10b981;color:#fff;box-shadow:0 4px 12px #10b98166}.advantage-btn.active.disadvantage{background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border-color:#ef4444;color:#fff;box-shadow:0 4px 12px #ef444466}.advantage-btn.active.normal{background:rgba(255,255,255,.1);border-color:#ffffff4d;color:#fff}.advantage-btn:disabled{opacity:.5;cursor:not-allowed}.modifier-status{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:rgba(0,0,0,.2);border-radius:6px;border:1px solid rgba(255,255,255,.1)}.modifier-status span{font-size:.9rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.status-advantage{color:#10b981}.status-disadvantage{color:#ef4444}.status-normal{color:#888;font-style:italic}.status-modifier{padding:.25rem .5rem;border-radius:4px;font-size:.85rem}.status-modifier.positive{background:rgba(16,185,129,.2);border:1px solid rgba(16,185,129,.3);color:#10b981}.status-modifier.negative{background:rgba(239,68,68,.2);border:1px solid rgba(239,68,68,.3);color:#ef4444}.quick-roll-section{margin-bottom:2rem}.quick-roll-section h3{color:#fff;margin:0 0 1rem;font-size:1.1rem}.dice-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:.75rem}.dice-button{padding:1rem;border:none;border-radius:12px;color:#fff;font-weight:700;font-size:1.1rem;cursor:pointer;transition:all .2s ease;text-shadow:0 2px 4px rgba(0,0,0,.3)}.dice-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.dice-button:active:not(:disabled){transform:translateY(0)}.dice-button:disabled{opacity:.6;cursor:not-allowed;animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px) rotate(-2deg)}75%{transform:translate(4px) rotate(2deg)}}.custom-roll-section{margin-bottom:2rem;padding:1.5rem;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);border-radius:12px}.custom-roll-section h3{color:#fff;margin:0 0 1rem;font-size:1.1rem}.custom-form{display:flex;gap:.75rem;margin-bottom:.5rem}.formula-input{flex:1;padding:.75rem 1rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:1rem;font-family:Courier New,monospace}.formula-input:focus{outline:none;border-color:#667eea;background:rgba(255,255,255,.08)}.formula-input::placeholder{color:#888}.roll-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #667eea66}.roll-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}.roll-btn:disabled{opacity:.6;cursor:not-allowed}.formula-help{color:#888;font-size:.85rem;margin:0;font-style:italic}.roll-history-section{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.5rem}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.history-header h3{color:#fff;margin:0;font-size:1.1rem}.clear-history-btn{padding:.4rem 1rem;background:rgba(239,68,68,.2);border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.clear-history-btn:hover{background:rgba(239,68,68,.3);border-color:#ef444480}.roll-history{display:flex;flex-direction:column;gap:.75rem;max-height:300px;overflow-y:auto}.no-rolls{color:#888;text-align:center;padding:2rem;font-style:italic}.roll-item{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.5rem;animation:slideIn .3s ease}.roll-formula{font-weight:700;color:#667eea;font-size:1rem;font-family:Courier New,monospace}.roll-details{display:flex;justify-content:space-between;align-items:center;gap:1rem}.roll-results{color:#aaa;font-size:.9rem;font-family:Courier New,monospace}.dropped-results{color:#ef4444;font-size:.85rem;text-decoration:line-through;opacity:.6}.roll-modifier{color:#f59e0b;font-weight:600}.roll-total{font-size:1.3rem;font-weight:700;color:#10b981;padding:.25rem .75rem;background:rgba(16,185,129,.1);border-radius:6px;border:1px solid rgba(16,185,129,.3)}.roll-time{color:#666;font-size:.75rem;text-align:right}.roll-history::-webkit-scrollbar{width:8px}.roll-history::-webkit-scrollbar-track{background:rgba(255,255,255,.05);border-radius:4px}.roll-history::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:4px}.roll-history::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3)}@media (max-width: 640px){.dice-roller-container{max-height:95vh}.advantage-controls{grid-template-columns:1fr}.advantage-btn{padding:.65rem .75rem;font-size:.85rem}.dice-buttons{grid-template-columns:repeat(4,1fr)}.dice-button{padding:.75rem;font-size:1rem}.custom-form{flex-direction:column}.roll-btn{width:100%}.roll-details{flex-direction:column;align-items:flex-start;gap:.5rem}}.toast-container{position:fixed;top:80px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:.75rem;pointer-events:none}.toast{display:flex;align-items:center;gap:.75rem;min-width:300px;max-width:500px;padding:1rem 1.25rem;background:rgba(26,26,46,.95);border-radius:8px;box-shadow:0 8px 24px #0006;border-left:4px solid;pointer-events:auto;animation:slideIn .3s ease-out}.toast-icon{font-size:1.25rem;font-weight:700;display:flex;align-items:center;justify-content:center;width:24px;height:24px}.toast-message{flex:1;color:#fff;font-size:.95rem;line-height:1.4}.toast-close{background:none;border:none;color:#fff9;font-size:1.5rem;line-height:1;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.toast-close:hover{color:#fff}.toast-success{border-left-color:#10b981}.toast-success .toast-icon{color:#10b981}.toast-error{border-left-color:#ef4444}.toast-error .toast-icon{color:#ef4444}.toast-warning{border-left-color:#f59e0b}.toast-warning .toast-icon{color:#f59e0b}.toast-info{border-left-color:#3b82f6}.toast-info .toast-icon{color:#3b82f6}@media (max-width: 640px){.toast-container{right:10px;left:10px;top:70px}.toast{min-width:auto;max-width:none}}.floating-chat-btn{position:fixed;bottom:20px;right:20px;width:60px;height:60px;border-radius:50%;background:var(--primary);color:var(--darker);border:none;font-size:1.8rem;cursor:pointer;box-shadow:0 4px 12px #00000080;z-index:999;transition:all .3s;display:flex;align-items:center;justify-content:center}.floating-chat-btn:hover{transform:scale(1.1);background:var(--alpha)}.floating-chat-btn.has-unread{animation:pulse 2s infinite}@keyframes pulse{0%,to{box-shadow:0 4px 12px #00000080}50%{box-shadow:0 4px 12px #b8860bcc}}.chat-unread-badge{position:absolute;top:-5px;right:-5px;background:#e74c3c;color:#fff;border-radius:12px;padding:2px 6px;font-size:.75rem;font-weight:700;min-width:20px;text-align:center}.chat-widget{position:fixed;bottom:90px;right:20px;width:380px;height:550px;background:var(--dark);border:2px solid var(--primary);border-radius:12px;box-shadow:0 8px 24px #000000b3;z-index:998;display:flex;flex-direction:column;overflow:hidden}.chat-widget-header{background:var(--darker);padding:1rem;border-bottom:2px solid var(--primary);display:flex;justify-content:space-between;align-items:center}.chat-widget-header h3{margin:0;color:var(--primary);font-size:1.2rem}.chat-header-actions{display:flex;gap:.5rem;align-items:center}.btn-back,.btn-new-chat-small,.btn-close-chat{background:none;border:none;color:var(--primary);font-size:1.5rem;cursor:pointer;padding:.25rem .5rem;transition:all .2s;line-height:1}.btn-back:hover,.btn-new-chat-small:hover{color:var(--alpha)}.btn-close-chat{font-size:2rem}.btn-close-chat:hover{color:#e74c3c}.chat-widget-body{flex:1;overflow-y:auto;background:var(--darker)}.chat-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--alpha)}.conversation-item{display:flex;padding:1rem;cursor:pointer;border-bottom:1px solid rgba(184,134,11,.1);transition:background .2s}.conversation-item:hover{background:rgba(184,134,11,.15)}.conversation-item.active{background:rgba(184,134,11,.25);border-left:3px solid var(--primary)}.conversation-avatar{position:relative;margin-right:1rem;flex-shrink:0}.conversation-avatar img,.avatar-placeholder{width:48px;height:48px;border-radius:50%;object-fit:cover}.avatar-placeholder{background:var(--primary);color:var(--darker);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem}.unread-badge{position:absolute;top:-4px;right:-4px;background:#e74c3c;color:#fff;border-radius:10px;padding:2px 6px;font-size:.75rem;font-weight:700;min-width:20px;text-align:center}.conversation-info{flex:1;min-width:0}.conversation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.conversation-name{font-weight:700;color:var(--primary);font-size:1rem}.conversation-time{font-size:.75rem;color:var(--alpha)}.conversation-preview{margin:0;font-size:.875rem;color:var(--alpha);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversations-list-widget{height:100%;overflow-y:auto}.btn-primary-small{padding:.5rem 1rem;background:var(--primary);color:var(--darker);border:none;border-radius:6px;font-weight:700;cursor:pointer;transition:all .2s}.btn-primary-small:hover{background:var(--alpha)}.chat-conversation-view{display:flex;flex-direction:column;height:100%}.chat-messages-widget{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.chat-input-container-widget{display:flex;padding:1rem;gap:.5rem;border-top:2px solid rgba(184,134,11,.3);background:var(--dark)}.chat-input-container-widget .chat-input{flex:1;padding:.6rem;background:var(--darker);border:2px solid rgba(184,134,11,.3);border-radius:6px;color:var(--light);font-size:.9rem;font-family:inherit}.chat-input-container-widget .chat-input:focus{outline:none;border-color:var(--primary)}.chat-input-container-widget .btn-send{padding:.6rem 1rem;background:var(--primary);color:var(--darker);border:none;border-radius:6px;font-weight:700;cursor:pointer;transition:all .2s;font-size:1rem}.chat-input-container-widget .btn-send:hover:not(:disabled){background:var(--alpha)}.chat-input-container-widget .btn-send:disabled{opacity:.5;cursor:not-allowed}.message{display:flex;max-width:70%}.message-sent{align-self:flex-end}.message-received{align-self:flex-start}.message-content{padding:.75rem 1rem;border-radius:12px;position:relative}.message-sent .message-content{background:var(--primary);color:var(--darker);border-bottom-right-radius:4px}.message-received .message-content{background:var(--dark);color:var(--light);border-bottom-left-radius:4px}.message-content p{margin:0 0 .25rem;word-wrap:break-word}.message-time{font-size:.7rem;opacity:.7}.message-sent .message-time{color:var(--darker)}.message-received .message-time{color:var(--alpha)}.typing-indicator{padding:.5rem 1rem;font-size:.8rem;color:var(--alpha);font-style:italic}.empty-state{padding:2rem;text-align:center;color:var(--alpha);display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.empty-state p{margin-bottom:1rem}.friends-list{max-height:400px;overflow-y:auto;margin:1rem 0}.friend-item{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:8px;cursor:pointer;transition:background .2s}.friend-item:hover{background:rgba(184,134,11,.15)}.friend-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover}.friend-username{display:block;font-size:.875rem;color:var(--alpha)}.conversations-list-widget::-webkit-scrollbar,.chat-messages-widget::-webkit-scrollbar,.friends-list::-webkit-scrollbar{width:6px}.conversations-list-widget::-webkit-scrollbar-track,.chat-messages-widget::-webkit-scrollbar-track,.friends-list::-webkit-scrollbar-track{background:var(--darker)}.conversations-list-widget::-webkit-scrollbar-thumb,.chat-messages-widget::-webkit-scrollbar-thumb,.friends-list::-webkit-scrollbar-thumb{background:var(--primary);border-radius:3px}.conversations-list-widget::-webkit-scrollbar-thumb:hover,.chat-messages-widget::-webkit-scrollbar-thumb:hover,.friends-list::-webkit-scrollbar-thumb:hover{background:var(--alpha)}@media (max-width: 768px){.chat-widget{width:calc(100% - 40px);height:calc(100vh - 150px);right:20px;bottom:90px}.floating-chat-btn{bottom:15px;right:15px}.message{max-width:85%}}.character-list-container{max-width:1400px;margin:0 auto;padding:2rem}.character-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.character-list-header h1{margin:0;color:#fff}.btn-new-character{background:linear-gradient(135deg,#4a2c5e 0%,#6b4487 100%);color:#e8e8e8;border:1px solid #6b4487;padding:.75rem 1.5rem;border-radius:2px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 8px #00000080;font-family:Bebas Neue,Oswald,sans-serif;letter-spacing:.05em;text-transform:uppercase}.btn-new-character:hover{transform:translateY(-2px);box-shadow:0 6px 12px #000000b3,0 0 20px #6b448799;background:linear-gradient(135deg,#6b4487 0%,#8b5aa7 100%)}.no-characters{text-align:center;padding:4rem 2rem;background:rgba(255,255,255,.05);border-radius:12px;border:2px dashed rgba(255,255,255,.2)}.no-characters p{font-size:1.2rem;color:#aaa;margin-bottom:1.5rem}.no-characters button{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:1.1rem;cursor:pointer;transition:all .3s ease}.character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.character-card{background:linear-gradient(135deg,#1a1a1a 0%,#2d2d2d 100%);border-radius:2px;border:1px solid #4a4a4a;border-left:4px solid #8b0000;overflow:hidden;transition:all .3s ease;cursor:pointer;position:relative;box-shadow:4px 4px 12px #000c,inset 0 1px #ffffff08}.character-card:hover{transform:translateY(-4px);box-shadow:6px 6px 20px #000000e6,0 0 30px #8b000080,inset 0 1px #ffffff0d;border-left-color:#d4a574;background:linear-gradient(135deg,#2d2d2d 0%,#3a3a3a 100%)}.character-card-header{background:linear-gradient(135deg,rgba(139,0,0,.3) 0%,rgba(45,45,45,.5) 100%);border-bottom:2px solid #b8860b;padding:1.25rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #00000080}.character-card-header h2{margin:0;font-size:1.4rem;color:#d4a574;font-family:Bebas Neue,Oswald,sans-serif;letter-spacing:.1em;text-transform:uppercase;text-shadow:2px 2px 4px rgba(0,0,0,.8)}.character-level{background:rgba(0,0,0,.3);padding:.4rem .8rem;border-radius:20px;font-size:.9rem;font-weight:600;color:#fbbf24}.character-card-body{padding:1.25rem}.character-info{margin-bottom:1rem}.info-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.1)}.info-row .label{color:#aaa;font-weight:500}.info-row .value{color:#fff;font-weight:600}.character-attributes{display:flex;justify-content:space-around;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.attribute{text-align:center}.attr-label{display:block;font-size:.85rem;color:#aaa;margin-bottom:.25rem}.attr-value{display:block;font-size:1.3rem;font-weight:700;color:#667eea}.character-meta{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.1)}.character-meta small{color:#888;font-size:.85rem}.character-card-footer{padding:1rem 1.25rem;background:rgba(0,0,0,.2);display:flex;gap:.75rem}.character-card-footer button{flex:1;padding:.6rem 1rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-delete{background:rgba(220,38,38,.8);color:#fff}.btn-delete:hover{background:#dc2626}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#1a1a2e;padding:2rem;border-radius:12px;max-width:500px;width:90%;border:1px solid rgba(255,255,255,.1)}.modal-content h3{margin-top:0;color:#fff}@media (max-width: 768px){.character-grid{grid-template-columns:1fr}.character-list-header{flex-direction:column;gap:1rem;align-items:stretch}.btn-new-character{width:100%}}.encounter-generator{padding:2rem;max-width:1400px;margin:0 auto;position:relative}.toast{position:fixed;top:2rem;right:2rem;padding:1rem 1.5rem;border-radius:4px;font-weight:600;z-index:10000;animation:slideIn .3s ease-out;box-shadow:0 8px 16px #000c;border:1px solid;font-family:Courier Prime,Courier New,monospace;min-width:300px}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{background:linear-gradient(135deg,#2c5f4f 0%,#3d5a4a 100%);color:silver;border-color:#d4a574}.toast-error{background:linear-gradient(135deg,#8b0000 0%,#a01a1a 100%);color:#e8e8e8;border-color:#b82020}.toast-info{background:linear-gradient(135deg,#4a2c5e 0%,#6b4487 100%);color:#e8e8e8;border-color:#8b5aa7}.encounter-generator h2{color:var(--primary);margin-bottom:.5rem}.generator-intro{color:var(--text-secondary);margin-bottom:2rem}.generator-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem;padding:2rem;background:rgba(0,0,0,.3);border:2px solid var(--secondary);border-radius:8px}.control-group{display:flex;flex-direction:column;gap:.5rem}.control-group label{color:var(--text-secondary);font-weight:700;text-transform:uppercase;font-size:.9rem}.encounter-select,.difficulty-select,.location-select{padding:.75rem;background:rgba(0,0,0,.5);border:2px solid var(--secondary);border-radius:6px;color:#fff;font-size:1rem}.encounter-select:focus,.difficulty-select:focus,.location-select:focus{border-color:var(--primary);outline:none}.btn-generate{grid-column:1 / -1;background:linear-gradient(135deg,var(--tertiary),#d62e05);border:none;color:#fff;padding:1rem 2rem;border-radius:8px;cursor:pointer;font-weight:700;font-size:1.1rem;transition:all .3s ease}.btn-generate:hover{transform:translateY(-2px);box-shadow:0 6px 20px #b1270466}.quick-roll-section{margin-bottom:2rem;padding:1.5rem;background:rgba(140,84,255,.1);border:2px solid rgba(140,84,255,.3);border-radius:8px}.quick-roll-section h3{color:var(--primary);margin-bottom:1rem}.quick-roll-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.btn-quick-roll{background:rgba(140,84,255,.2);border:2px solid var(--primary);color:var(--primary);padding:.75rem 1rem;border-radius:6px;cursor:pointer;font-weight:700;transition:all .3s ease}.btn-quick-roll:hover{background:var(--primary);color:#fff;transform:translateY(-2px)}.generated-encounter{background:rgba(0,0,0,.4);border:3px solid var(--primary);border-radius:12px;padding:2rem;animation:slideIn .5s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.encounter-header{margin-bottom:2rem}.encounter-title{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.encounter-title h4{color:var(--primary);font-size:1.8rem;margin:0}.difficulty-badge{padding:.5rem 1rem;border-radius:20px;font-weight:700;font-size:.9rem}.difficulty-badge.easy{background:rgba(76,175,80,.3);border:2px solid #4CAF50;color:#4caf50}.difficulty-badge.moderate{background:rgba(255,235,59,.3);border:2px solid #FFEB3B;color:#ffeb3b}.difficulty-badge.hard{background:rgba(255,152,0,.3);border:2px solid #FF9800;color:#ff9800}.difficulty-badge.deadly{background:rgba(244,67,54,.3);border:2px solid #F44336;color:#f44336}.encounter-description{color:var(--text-secondary);font-size:1.1rem;font-style:italic}.encounter-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;padding:1.5rem;background:rgba(255,255,255,.05);border-radius:8px;margin-bottom:2rem}.summary-stat{display:flex;flex-direction:column;gap:.5rem}.stat-label{color:var(--text-secondary);font-size:.9rem;font-weight:700;text-transform:uppercase}.stat-value{color:var(--tertiary);font-size:1.3rem;font-weight:700}.location-details,.enemy-details,.complications-section,.hazard-section,.loot-section{margin-bottom:2rem;padding:1.5rem;background:rgba(0,0,0,.3);border-left:4px solid var(--secondary);border-radius:6px}.location-details h5,.enemy-details h5,.complications-section h5,.hazard-section h5,.loot-section h5{color:var(--primary);margin-bottom:1rem;font-size:1.3rem}.location-mods{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.location-mods p{color:var(--text-primary);margin:0}.location-mods strong{color:var(--gold-standard)}.tactical-note{grid-column:1 / -1;padding:1rem;background:rgba(255,235,59,.1);border-left:3px solid var(--gold-standard);font-style:italic;color:var(--text-secondary)}.enemy-stat-block{background:rgba(0,0,0,.4);border:2px solid rgba(177,39,4,.3);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.enemy-stat-block:last-child{margin-bottom:0}.enemy-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid rgba(255,255,255,.1)}.enemy-header h6{color:var(--tertiary);font-size:1.3rem;margin:0}.enemy-type{background:rgba(140,84,255,.2);border:1px solid var(--primary);color:var(--primary);padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:700}.enemy-attributes{display:flex;gap:2rem;margin-bottom:1rem;padding:.75rem;background:rgba(255,255,255,.05);border-radius:4px}.enemy-attributes span{color:var(--text-primary);font-weight:700}.enemy-gear,.enemy-abilities,.enemy-weaknesses,.enemy-tactics,.enemy-notes{margin-top:1rem}.enemy-gear p,.enemy-tactics p{color:var(--text-primary);margin:.5rem 0}.enemy-abilities ul,.enemy-weaknesses ul{margin:.5rem 0;padding-left:1.5rem}.enemy-abilities li{color:var(--gold-bright);margin:.25rem 0}.enemy-weaknesses li{color:#4caf50;margin:.25rem 0}.enemy-notes{padding:.75rem;background:rgba(255,255,255,.05);border-left:3px solid var(--secondary);font-style:italic;color:var(--text-tertiary)}.complication-card,.hazard-card{background:rgba(0,0,0,.4);border:2px solid rgba(255,152,0,.3);border-radius:6px;padding:1.25rem;margin-bottom:1rem}.complication-card:last-child{margin-bottom:0}.complication-card h6,.hazard-card h6{color:#ff9800;margin:0 0 .75rem;font-size:1.1rem}.complication-card p,.hazard-card p{color:var(--text-primary);margin:.5rem 0}.frequency{color:var(--text-secondary);font-size:.9rem}.loot-note{color:var(--text-secondary);font-style:italic}.campaigns-container{max-width:1400px;margin:0 auto;padding:2rem}.campaigns-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid #b8860b;background:linear-gradient(180deg,transparent 0%,rgba(26,26,26,.3) 100%)}.tab-button{background:linear-gradient(180deg,#2d2d2d 0%,#1a1a1a 100%);border:1px solid #4a4a4a;border-bottom:none;color:var(--text-tertiary);padding:1rem 2rem;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s ease;font-family:Bebas Neue,Oswald,sans-serif;letter-spacing:.05em;text-transform:uppercase;position:relative;border-radius:4px 4px 0 0;box-shadow:inset 0 1px #ffffff0d}.tab-button:hover{color:#d4a574;background:linear-gradient(180deg,#4a4a4a 0%,#2d2d2d 100%);box-shadow:inset 0 1px #ffffff1a,0 0 12px #b8860b4d}.tab-button.active{color:#d4a574;border-color:#b8860b;border-bottom:2px solid #b8860b;background:linear-gradient(180deg,#4a4a4a 0%,#1a1a1a 100%);box-shadow:inset 0 1px #ffffff1a,0 -2px 8px #b8860b66;position:relative;z-index:10}.campaigns-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.campaigns-header h1{margin:0;color:#fff}.header-actions{display:flex;gap:1rem}.btn-create-campaign,.btn-join-campaign{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px #0000001a}.btn-create-campaign{background:linear-gradient(135deg,#4a2c5e 0%,#6b4487 100%);color:#e8e8e8;border:1px solid #6b4487;box-shadow:0 4px 8px #00000080;font-family:Bebas Neue,Oswald,sans-serif;letter-spacing:.05em}.btn-create-campaign:hover{transform:translateY(-2px);box-shadow:0 6px 12px #000000b3,0 0 20px #6b448799;background:linear-gradient(135deg,#6b4487 0%,#8b5aa7 100%)}.btn-join-campaign{background:linear-gradient(135deg,#8b0000 0%,#a01a1a 100%);color:#e8e8e8;border:1px solid #8b0000;box-shadow:0 4px 8px #00000080;font-family:Bebas Neue,Oswald,sans-serif;letter-spacing:.05em}.btn-join-campaign:hover{transform:translateY(-2px);box-shadow:0 6px 12px #000000b3,0 0 20px #8b000099;background:linear-gradient(135deg,#a01a1a 0%,#b82020 100%)}.no-campaigns{text-align:center;padding:4rem 2rem;background:rgba(255,255,255,.05);border-radius:12px;border:2px dashed rgba(255,255,255,.2)}.no-campaigns p{font-size:1.2rem;color:#aaa;margin-bottom:1.5rem}.no-campaigns button{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:1.1rem;cursor:pointer;transition:all .3s ease}.campaigns-filters{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.5rem;margin-bottom:2rem}.search-bar{margin-bottom:1rem}.search-input{width:100%;padding:.75rem 1rem;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:1rem;transition:all .3s ease}.search-input:focus{outline:none;border-color:#667eea80;background:rgba(0,0,0,.4)}.search-input::placeholder{color:#fff6}.filter-buttons{display:flex;gap:2rem;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{font-weight:600;color:#ffffffb3;font-size:.9rem}.filter-btn{padding:.5rem 1rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#ffffffb3;cursor:pointer;font-size:.9rem;transition:all .3s ease}.filter-btn:hover{background:rgba(255,255,255,.1);border-color:#ffffff4d;color:#fff}.filter-btn.active{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-color:transparent;color:#fff;font-weight:600}.campaigns-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1.5rem}.campaign-card{background:linear-gradient(135deg,#1a1a1a 0%,#2d2d2d 100%);border:1px solid #4a4a4a;border-left:4px solid #b8860b;border-radius:2px;overflow:hidden;transition:all .3s ease;box-shadow:4px 4px 12px #000c,inset 0 1px #ffffff08;position:relative}.campaign-card:hover{transform:translateY(-4px);box-shadow:6px 6px 20px #000000e6,0 0 30px #4b2c5e66,inset 0 1px #ffffff0d;border-left-color:#d4a574}.campaign-card-header{background:linear-gradient(135deg,rgba(139,0,0,.3) 0%,rgba(75,44,94,.3) 100%);border-bottom:2px solid #b8860b;padding:1.25rem;display:flex;justify-content:space-between;align-items:flex-start;position:relative;box-shadow:0 2px 8px #00000080}.campaign-card-header h2{margin:0 0 .5rem;font-size:1.3rem;color:#d4a574;font-family:Bebas Neue,Oswald,sans-serif;letter-spacing:.1em;text-transform:uppercase;text-shadow:2px 2px 4px rgba(0,0,0,.8)}.campaign-role{font-size:.85rem;color:#fbbf24;font-weight:600}.status-badge{padding:.4rem .8rem;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.status-planning{background:linear-gradient(135deg,#4a2c5e 0%,#6b4487 100%);color:#d4a574;border:1px solid #6b4487;box-shadow:0 0 8px #4b2c5e66}.status-active{background:rgba(16,185,129,.3);color:#34d399}.status-completed{background:rgba(107,114,128,.3);color:#9ca3af}.status-on-hold{background:rgba(245,158,11,.3);color:#fbbf24}.campaign-card-body{padding:1.25rem}.campaign-description{color:#aaa;margin-bottom:1rem;line-height:1.5;font-size:.95rem}.campaign-info{display:flex;flex-direction:column;gap:.5rem}.info-item{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.info-item:last-child{border-bottom:none}.info-item .label{color:#888;font-size:.9rem}.info-item .value{color:#fff;font-weight:600;font-size:.9rem}.campaign-card-footer{padding:1rem 1.25rem;background:rgba(0,0,0,.2);display:flex;gap:.75rem}.campaign-card-footer button{flex:1;padding:.6rem 1rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-view{background:#667eea;color:#fff}.btn-view:hover{background:#5568d3}.btn-delete-campaign{background:rgba(220,38,38,.8);color:#fff;flex:0 0 auto}.btn-delete-campaign:hover{background:#dc2626}.campaign-modal{max-width:600px}.modal-content h3{margin-top:0;color:#fff;margin-bottom:1.5rem}.modal-content p{color:#aaa;line-height:1.6}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:1rem}.form-group textarea{resize:vertical;font-family:inherit}.checkbox-group label{display:flex;align-items:center;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto;margin-right:.5rem}.help-text{display:block;color:#888;font-size:.85rem;margin-top:.5rem}.help-text a{color:#667eea;text-decoration:none}.help-text a:hover{text-decoration:underline}.btn-confirm:disabled{background:rgba(102,126,234,.5);cursor:not-allowed}.btn-confirm-delete{background:#dc2626;color:#fff}.btn-confirm-delete:hover{background:#b91c1c}@media (max-width: 768px){.campaigns-grid{grid-template-columns:1fr}.campaigns-header{flex-direction:column;align-items:stretch}.header-actions{flex-direction:column}.btn-create-campaign,.btn-join-campaign{width:100%}.form-row{grid-template-columns:1fr}.campaigns-filters{padding:1rem}.filter-buttons{flex-direction:column;gap:1rem}.filter-group{flex-wrap:wrap}.filter-btn{flex:1;min-width:70px}}.vehicles-section{padding:1.5rem}.vehicle-type-tabs{display:flex;gap:.5rem;margin:1rem 0;flex-wrap:wrap}.vehicle-type-tabs button{padding:.5rem 1rem;border:1px solid #444;background:#2a2a2a;color:#e0e0e0;cursor:pointer;border-radius:4px;transition:all .2s}.vehicle-type-tabs button:hover{background:#333;border-color:#666}.vehicle-type-tabs button.active{background:#c41e3a;border-color:#c41e3a;color:#fff}.vehicle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin:1.5rem 0}.vehicle-card{background:#1a1a1a;border:1px solid #444;border-radius:8px;padding:1rem;transition:all .3s}.vehicle-card:hover{border-color:#c41e3a;box-shadow:0 4px 12px #c41e3a33}.vehicle-card.criminal{border-color:#8b0000}.vehicle-card.law-enforcement{border-color:#1e4d8b}.vehicle-card.military{border-color:#2d5016}.vehicle-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #444}.vehicle-header h5{margin:0;color:#c41e3a;font-size:1.1rem}.vehicle-price{color:#4caf50;font-weight:700}.vehicle-stats{margin:1rem 0}.vehicle-stats .stat-row{display:flex;justify-content:space-between;padding:.25rem 0;font-size:.9rem}.vehicle-stats .stat-label{color:#888}.vehicle-stats .stat-value{color:#e0e0e0;font-weight:500}.vehicle-stats .stat-value.highlight{color:#c41e3a;font-weight:700}.vehicle-features{margin:1rem 0;padding:.75rem;background:rgba(196,30,58,.1);border-radius:4px;border-left:3px solid #c41e3a}.vehicle-features strong{color:#c41e3a;display:block;margin-bottom:.5rem}.vehicle-features ul{margin:0;padding-left:1.5rem;list-style-type:disc}.vehicle-features li{color:#e0e0e0;font-size:.9rem;margin:.25rem 0}.vehicle-notes{color:#aaa;font-size:.85rem;margin:.75rem 0;font-style:italic}.vehicle-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.vehicle-tag{background:#2a2a2a;color:#c41e3a;padding:.25rem .5rem;border-radius:3px;font-size:.75rem;border:1px solid #444}.vehicle-tag.criminal-tag{color:#ff6b6b;border-color:#8b0000}.vehicle-tag.law-tag{color:#6bb6ff;border-color:#1e4d8b}.vehicle-tag.military-tag{color:#90ee90;border-color:#2d5016}.vehicle-combat-rules{padding:1rem}.combat-section{margin:1.5rem 0;padding:1rem;background:#1a1a1a;border-radius:8px;border-left:4px solid #c41e3a}.combat-section h5{color:#c41e3a;margin-top:0;margin-bottom:.75rem}.combat-section p{margin:.5rem 0;color:#e0e0e0;line-height:1.6}.combat-section ul{list-style-type:none;padding-left:1rem}.combat-section li{margin:.5rem 0;color:#e0e0e0;padding-left:1rem;position:relative}.combat-section li:before{content:"▸";position:absolute;left:0;color:#c41e3a}.vehicle-modifications{padding:1rem}.mod-category{margin:2rem 0}.mod-category h5{color:#c41e3a;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #444}.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin:1rem 0}.mod-card{background:#1a1a1a;border:1px solid #444;border-radius:6px;padding:1rem;transition:all .2s}.mod-card:hover{border-color:#c41e3a;box-shadow:0 2px 8px #c41e3a33}.mod-card.tactical{border-color:#8b0000;background:rgba(139,0,0,.05)}.mod-card h6{margin:0 0 .5rem;color:#c41e3a;text-transform:capitalize}.mod-price{color:#4caf50;font-weight:700;margin:.5rem 0}.mod-notes{color:#aaa;font-size:.85rem;margin:.5rem 0}.legality-warning{color:#ff6b6b;font-size:.85rem;margin-top:.5rem;display:block;font-weight:700}.warning-note{padding:.75rem;background:rgba(255,107,107,.1);border-left:3px solid #ff6b6b;border-radius:4px;color:#ffb3b3;margin:1rem 0;font-size:.9rem}.vehicle-stats-guide{margin-top:2rem;padding:1.5rem;background:#1a1a1a;border-radius:8px;border:1px solid #444}.vehicle-stats-guide h4{color:#c41e3a;margin-top:0;margin-bottom:1rem}.stats-explanation{display:grid;gap:.75rem}.stat-explanation{padding:.5rem;background:#222;border-radius:4px;color:#e0e0e0;line-height:1.5}.stat-explanation strong{color:#c41e3a;text-transform:capitalize;display:inline-block;min-width:120px}.vehicle-card-sheet{background:#1a1a1a;border:1px solid #444;border-radius:8px;padding:1rem;margin-bottom:1rem}.vehicle-card-sheet .vehicle-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #444}.vehicle-durability{margin:1rem 0;padding:.75rem;background:#222;border-radius:4px}.vehicle-durability label{display:block;color:#c41e3a;font-weight:700;margin-bottom:.5rem}.durability-controls{display:flex;align-items:center;gap:.5rem}.durability-input{width:60px;text-align:center;padding:.25rem;background:#1a1a1a;border:1px solid #444;color:#e0e0e0;border-radius:4px}.durability-max{color:#888;font-weight:700}.vehicle-modifications-list{margin:1rem 0;padding:.75rem;background:#222;border-radius:4px}.vehicle-modifications-list strong{display:block;color:#c41e3a;margin-bottom:.5rem}.mod-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#1a1a1a;border:1px solid #444;border-radius:4px;margin:.5rem 0}.mod-name{color:#e0e0e0;font-weight:500;text-transform:capitalize}.mod-effect{flex:1;color:#aaa;font-size:.85rem}.mod-legality{color:#ff6b6b;font-size:.75rem}.btn-remove-mod{background:#8b0000;color:#fff;border:none;width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:1rem;line-height:1;padding:0}.btn-remove-mod:hover{background:#a00}.add-vehicle-controls{display:flex;gap:1rem;margin:1rem 0;align-items:center}.add-vehicle-controls .item-select{flex:1;padding:.5rem;background:#1a1a1a;border:1px solid #444;color:#e0e0e0;border-radius:4px;font-size:.95rem}.add-vehicle-controls .btn-add{padding:.5rem 1rem;background:#c41e3a;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:700;transition:background .2s}.add-vehicle-controls .btn-add:hover{background:#a01830}.dice-feed{background:rgba(0,0,0,.3);border-radius:8px;padding:1rem;margin-top:1rem;border:1px solid rgba(255,255,255,.1)}.dice-feed-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid rgba(255,255,255,.2)}.dice-feed-header h3{margin:0;font-size:1.2rem;color:var(--primary-color)}.roll-count{font-size:.9rem;color:#fff9}.dice-feed-list{max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.dice-feed-list::-webkit-scrollbar{width:8px}.dice-feed-list::-webkit-scrollbar-track{background:rgba(0,0,0,.2);border-radius:4px}.dice-feed-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:4px}.dice-feed-list::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.3)}.no-rolls{text-align:center;padding:2rem;color:#ffffff80;font-style:italic}.dice-feed-item{background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:.75rem;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dice-feed-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.roller-name{font-weight:600;color:var(--primary-color);font-size:.95rem}.roll-timestamp{font-size:.75rem;color:#ffffff80}.dice-feed-formula{font-family:Courier New,monospace;font-size:.9rem;color:#fffc;margin-bottom:.5rem}.dice-feed-results{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.die-result{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:4px;padding:.25rem .5rem;font-weight:600;font-size:.9rem;min-width:30px;text-align:center;transition:all .2s}.die-result.dropped{background:rgba(239,68,68,.15);border-color:#ef44444d;color:#ef4444cc;text-decoration:line-through;opacity:.6}.dice-feed-total{font-size:.95rem;color:#ffffffe6;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.1)}.dice-feed-total strong{color:var(--primary-color);font-size:1.1rem}@media (max-width: 768px){.dice-feed{padding:.75rem}.dice-feed-list{max-height:300px}.dice-feed-item{padding:.5rem}}.initiative-tracker{background:rgba(0,0,0,.4);border:2px solid var(--primary-color);border-radius:10px;padding:1rem;margin-top:1rem;box-shadow:0 4px 6px #0000004d}.initiative-tracker.collapsed .initiative-content{display:none}.initiative-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid rgba(255,255,255,.2)}.initiative-title{display:flex;align-items:center;gap:1rem}.initiative-title h3{margin:0;font-size:1.3rem;color:var(--primary-color)}.combat-status{padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:600}.combat-status.active{background:rgba(34,197,94,.2);border:1px solid #22c55e;color:#22c55e;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.initiative-header-actions{display:flex;align-items:center;gap:.5rem}.connection-status{font-size:.8rem}.btn-collapse{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;padding:.5rem .75rem;border-radius:5px;cursor:pointer;transition:all .2s}.btn-collapse:hover{background:rgba(255,255,255,.2)}.initiative-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;padding:.75rem;background:rgba(0,0,0,.2);border-radius:8px}.initiative-controls button{padding:.5rem 1rem;border-radius:6px;border:none;font-weight:600;cursor:pointer;transition:all .2s;font-size:.9rem}.btn-add{background:var(--primary-color);color:#fff}.btn-add:hover{background:var(--primary-hover)}.btn-roll{background:#8b5cf6;color:#fff}.btn-roll:hover{background:#7c3aed}.btn-start{background:#22c55e;color:#fff}.btn-start:hover{background:#16a34a}.btn-next{background:#3b82f6;color:#fff}.btn-next:hover{background:#2563eb}.btn-end{background:#ef4444;color:#fff}.btn-end:hover{background:#dc2626}.btn-reset{background:#6b7280;color:#fff}.btn-reset:hover{background:#4b5563}.btn-import{background:#8b5cf6;color:#fff}.btn-import:hover{background:#7c3aed}.initiative-controls button:disabled{opacity:.5;cursor:not-allowed}.combatants-list{display:flex;flex-direction:column;gap:.75rem;max-height:500px;overflow-y:auto;padding:.5rem}.combatants-list::-webkit-scrollbar{width:8px}.combatants-list::-webkit-scrollbar-track{background:rgba(0,0,0,.2);border-radius:4px}.combatants-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:4px}.no-combatants{text-align:center;padding:2rem;color:#ffffff80;font-style:italic}.combatant{background:rgba(0,0,0,.3);border:2px solid rgba(255,255,255,.1);border-radius:8px;padding:.75rem;transition:all .3s}.combatant.current-turn{border-color:var(--primary-color);background:rgba(255,215,0,.1);box-shadow:0 0 15px #ffd7004d;animation:highlight 1s ease-in-out}@keyframes highlight{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.combatant.pc{border-left:4px solid #3b82f6}.combatant.npc{border-left:4px solid #22c55e}.combatant.monster{border-left:4px solid #ef4444}.combatant-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.combatant-info{display:flex;align-items:center;gap:.75rem}.combatant-initiative{background:var(--primary-color);color:#000;font-weight:700;font-size:1.2rem;padding:.25rem .75rem;border-radius:6px;min-width:40px;text-align:center}.combatant-name{font-weight:600;font-size:1.1rem;color:#fff}.combatant-type{font-size:1.2rem}.btn-remove{background:rgba(239,68,68,.2);border:1px solid #ef4444;color:#ef4444;padding:.25rem .5rem;border-radius:4px;cursor:pointer;font-weight:700;transition:all .2s}.btn-remove:hover{background:#ef4444;color:#fff}.combatant-stats{display:flex;gap:1.5rem;margin-top:.5rem}.stat-group{display:flex;align-items:center;gap:.5rem;font-size:.95rem}.stat-group label{color:#ffffffb3;font-weight:600}.hp-input{width:60px;padding:.25rem;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:4px;text-align:center}.combatant-conditions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.condition-badge{background:rgba(239,68,68,.2);border:1px solid #ef4444;color:#ef4444;padding:.25rem .75rem;border-radius:15px;font-size:.85rem;display:flex;align-items:center;gap:.5rem}.remove-condition{background:none;border:none;color:#ef4444;cursor:pointer;font-weight:700;padding:0;margin-left:.25rem}.round-info{margin-top:1rem;padding:.75rem;background:rgba(0,0,0,.3);border-radius:6px;text-align:center;font-weight:600;color:var(--primary-color)}.keyboard-hint{font-size:.85rem;color:#ffffff80;font-style:italic}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;justify-content:center;align-items:center;z-index:10000;padding:1rem}.modal-content{background:#1a1a1a;border:2px solid var(--primary-color);border-radius:10px;padding:2rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto}.modal-content h3{margin:0 0 1.5rem;color:var(--primary-color)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;color:#fffc;font-weight:600}.form-group input,.form-group select{width:100%;padding:.75rem;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.3);border-radius:6px;color:#fff;font-size:1rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-color)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem}.btn-cancel,.btn-confirm{padding:.75rem 1.5rem;border-radius:6px;border:none;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel:hover{background:rgba(255,255,255,.2)}.btn-confirm{background:var(--primary-color);color:#000}.btn-confirm:hover{background:var(--primary-hover)}@media (max-width: 768px){.initiative-tracker{padding:.75rem}.initiative-controls{gap:.25rem}.initiative-controls button{padding:.4rem .75rem;font-size:.85rem}.combatants-list{max-height:400px}.combatant{padding:.5rem}.combatant-initiative{font-size:1rem;padding:.25rem .5rem;min-width:35px}.combatant-name{font-size:1rem}.form-row{grid-template-columns:1fr}.modal-content{padding:1.5rem}}.import-modal{max-width:600px}.modal-description{color:#ffffffb3;margin:0 0 1.5rem;font-size:.95rem}.character-list{max-height:400px;overflow-y:auto;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.75rem}.character-list::-webkit-scrollbar{width:8px}.character-list::-webkit-scrollbar-track{background:rgba(0,0,0,.2);border-radius:4px}.character-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:4px}.character-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);border-radius:8px;transition:all .2s}.character-item:hover:not(.already-added){background:rgba(0,0,0,.4);border-color:var(--primary-color)}.character-item.already-added{opacity:.6;background:rgba(0,0,0,.2)}.character-info h4{margin:0 0 .5rem;color:#fff;font-size:1.1rem}.character-stats{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.9rem}.char-class,.char-level{padding:.25rem .5rem;background:rgba(255,255,255,.1);border-radius:4px;color:#fffc}.char-attributes{display:flex;gap:.5rem}.char-attributes span{padding:.25rem .5rem;background:rgba(255,215,0,.15);border:1px solid rgba(255,215,0,.3);border-radius:4px;color:var(--primary-color);font-weight:600}.btn-import-char{padding:.5rem 1rem;background:var(--primary-color);color:#000;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-import-char:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-2px)}.btn-import-char:disabled{background:rgba(255,255,255,.1);color:#ffffff80;cursor:not-allowed}.no-characters{text-align:center;padding:2rem;color:#ffffff80;font-style:italic}.midnight-attributes{display:flex;gap:1rem}.midnight-attributes .stat-group{display:flex;align-items:center;gap:.5rem}.midnight-attributes .stat-group label{font-size:1.1rem}.campaign-detail-container{max-width:1400px;margin:0 auto;padding:2rem}.campaign-detail-header{margin-bottom:2rem}.btn-back{background:rgba(255,255,255,.1);color:#fff;border:none;padding:.6rem 1.2rem;border-radius:6px;cursor:pointer;font-size:.95rem;margin-bottom:1rem;transition:all .2s ease}.btn-back:hover{background:rgba(255,255,255,.15)}.header-content{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.header-content h1{margin:0 0 .5rem;color:#fff;font-size:2rem}.role-badge{display:inline-block;padding:.4rem 1rem;border-radius:20px;font-size:.9rem;font-weight:700}.role-badge.gm{background:linear-gradient(135deg,#fbbf24 0%,#f59e0b 100%);color:#000}.role-badge.player{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff}.header-actions{display:flex;gap:.75rem;flex-wrap:wrap}.header-actions button{padding:.6rem 1.2rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease;font-size:.9rem}.btn-edit{background:#667eea;color:#fff}.btn-edit:hover{background:#5568d3}.btn-invite{background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%);color:#fff}.btn-invite:hover{opacity:.9}.btn-add-session{background:#10b981;color:#fff}.btn-add-session:hover{background:#059669}.btn-leave{background:rgba(220,38,38,.8);color:#fff}.btn-leave:hover{background:#dc2626}.campaign-content-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:2rem}.left-column,.right-column{display:flex;flex-direction:column;gap:1.5rem}.info-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.5rem}.info-card h3{margin:0 0 1rem;color:#fff;font-size:1.1rem}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.info-item{display:flex;flex-direction:column;gap:.25rem}.info-item .label{color:#888;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.info-item .value{color:#fff;font-weight:600;font-size:1.1rem}.card-text{color:#aaa;line-height:1.6;margin:0}.character-card{background:linear-gradient(135deg,rgba(102,126,234,.15) 0%,rgba(118,75,162,.15) 100%);border-color:#667eea4d}.character-info h4{margin:0 0 .5rem;color:#667eea;font-size:1.3rem}.character-details{color:#aaa;margin-bottom:1rem;font-size:.95rem}.btn-view-character{width:100%;padding:.75rem;background:#667eea;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-view-character:hover{background:#5568d3}.participants-section{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.5rem}.participants-section h3{margin:0 0 1rem;color:#fff;font-size:1.1rem}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.btn-assign-character{background:linear-gradient(135deg,#10b981 0%,#059669 100%);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .2s ease}.btn-assign-character:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b9814d}.current-character-info{padding:1rem;background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.3);border-radius:8px;margin-bottom:1rem;color:#93c5fd}.gm-card{display:flex;align-items:center;gap:.75rem;padding:1rem;background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.3);border-radius:8px}.gm-icon{font-size:1.5rem}.gm-name{color:#fbbf24;font-weight:700;font-size:1.1rem}.players-list{display:flex;flex-direction:column;gap:.75rem}.player-card-detail{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:1rem;transition:all .2s ease}.player-card-detail:hover{background:rgba(255,255,255,.05);border-color:#ffffff26}.player-main{display:flex;justify-content:space-between;align-items:center}.player-info-detail{display:flex;flex-direction:column;gap:.25rem}.player-name{color:#fff;font-weight:600;font-size:1rem}.character-name{color:#667eea;font-size:.9rem}.no-character{color:#888;font-size:.85rem;font-style:italic}.btn-remove-player{background:rgba(220,38,38,.2);color:#dc2626;border:1px solid rgba(220,38,38,.3);width:30px;height:30px;border-radius:50%;font-size:1.5rem;line-height:1;cursor:pointer;transition:all .2s ease}.btn-remove-player:hover{background:rgba(220,38,38,.4);border-color:#dc262680}.no-content{color:#888;text-align:center;padding:2rem;font-style:italic}.sessions-section{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.5rem}.sessions-section h3{margin:0 0 1rem;color:#fff;font-size:1.1rem}.sessions-list{display:flex;flex-direction:column;gap:.75rem}.session-card-detail{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:1rem}.session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.session-date{color:#fbbf24;font-weight:600;font-size:.95rem}.session-duration{background:rgba(251,191,36,.2);color:#fbbf24;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.session-summary{color:#fff;margin:0 0 .5rem;font-weight:500}.session-notes{color:#aaa;margin:0;font-size:.9rem;line-height:1.5}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#1a1a2e;padding:2rem;border-radius:12px;max-width:500px;width:100%;border:1px solid rgba(255,255,255,.1);max-height:90vh;overflow-y:auto}.edit-modal{max-width:600px}.modal-content h3{margin:0 0 1.5rem;color:#fff}.form-group{margin-bottom:1.25rem}.form-group label{display:block;color:#fff;font-weight:600;margin-bottom:.5rem;font-size:.95rem}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:1rem;font-family:inherit}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#667eea;background:rgba(255,255,255,.08)}.form-group textarea{resize:vertical}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem}.modal-actions button{flex:1;padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-cancel{background:rgba(255,255,255,.1);color:#fff}.btn-cancel:hover{background:rgba(255,255,255,.15)}.btn-confirm{background:#667eea;color:#fff}.btn-confirm:hover{background:#5568d3}.invite-modal{text-align:center}.invite-code-display{display:flex;flex-direction:column;align-items:center;gap:1rem;margin:2rem 0}.invite-code-large{font-size:2.5rem;font-weight:700;color:#fbbf24;background:rgba(251,191,36,.1);padding:1rem 2rem;border-radius:12px;border:2px dashed #fbbf24;letter-spacing:.3rem}.btn-copy{background:#667eea;color:#fff;border:none;padding:.75rem 2rem;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-copy:hover{background:#5568d3}.btn-copy.copied{background:#10b981}.invite-instructions{color:#aaa;font-size:.9rem;margin-top:1rem}.loading{text-align:center;padding:4rem;font-size:1.2rem;color:#aaa}.error-message{background:rgba(220,38,38,.1);border:2px solid #dc2626;border-radius:8px;padding:2rem;text-align:center;color:#fca5a5}.error-message h3{margin-top:0;color:#dc2626}.error-message button{background:#dc2626;color:#fff;border:none;padding:.5rem 1.5rem;border-radius:6px;cursor:pointer;margin-top:1rem}@media (max-width: 1024px){.campaign-content-grid{grid-template-columns:1fr}}@media (max-width: 768px){.campaign-detail-container{padding:1rem}.header-content{flex-direction:column}.header-actions{width:100%;flex-direction:column}.header-actions button{width:100%}.info-grid{grid-template-columns:1fr}.invite-code-large{font-size:1.8rem;padding:.75rem 1.5rem}}.session-card-detail{background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1rem;cursor:pointer;transition:all .2s}.session-card-detail:hover{background:rgba(0,0,0,.4);border-color:var(--primary-color);transform:translate(4px)}.session-title-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.session-number{background:var(--primary-color);color:#000;font-weight:700;padding:.25rem .6rem;border-radius:4px;font-size:.85rem}.session-title{font-weight:700;color:#fff;font-size:1.1rem}.session-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.session-date{color:#ffffffb3;font-size:.9rem}.session-duration{color:#fff9;font-size:.85rem;display:block;margin-top:.25rem}.session-summary{color:#ffffffd9;margin:.5rem 0 0;font-size:.95rem;line-height:1.5}.session-highlights-preview{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.1)}.highlights-label{color:var(--primary-color);font-size:.85rem;font-weight:600}.btn-add-small{background:var(--primary-color);color:#000;border:none;padding:.4rem .8rem;border-radius:6px;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s}.btn-add-small:hover{background:var(--primary-hover);transform:translateY(-2px)}.session-modal{max-width:700px}.char-count{display:block;text-align:right;font-size:.75rem;color:#ffffff80;margin-top:.25rem}.highlights-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.btn-add-highlight{background:rgba(255,215,0,.2);border:1px solid rgba(255,215,0,.3);color:var(--primary-color);padding:.4rem .8rem;border-radius:6px;font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s}.btn-add-highlight:hover{background:rgba(255,215,0,.3);border-color:var(--primary-color)}.no-highlights{color:#ffffff80;font-style:italic;font-size:.9rem;margin:0}.highlights-list{display:flex;flex-direction:column;gap:.5rem}.highlight-item{display:flex;gap:.5rem;align-items:center}.highlight-item input{flex:1;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:.5rem;color:#fff;font-size:.95rem}.highlight-item input:focus{outline:none;border-color:var(--primary-color)}.btn-remove-highlight{background:rgba(239,68,68,.2);border:1px solid rgba(239,68,68,.3);color:#ef4444;width:32px;height:32px;border-radius:4px;font-size:1.2rem;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-remove-highlight:hover{background:rgba(239,68,68,.3);border-color:#ef4444}.session-detail-modal{max-width:800px;max-height:85vh;overflow-y:auto}.session-detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid rgba(255,255,255,.1)}.session-number-large{background:var(--primary-color);color:#000;font-weight:700;padding:.4rem 1rem;border-radius:6px;font-size:1rem;display:inline-block;margin-bottom:.5rem}.session-detail-header h3{margin:.5rem 0 0;color:#fff;font-size:1.8rem}.session-actions{display:flex;gap:.5rem}.btn-edit-session,.btn-delete-session{padding:.5rem 1rem;border-radius:6px;border:none;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-edit-session{background:rgba(59,130,246,.2);border:1px solid rgba(59,130,246,.3);color:#3b82f6}.btn-edit-session:hover{background:rgba(59,130,246,.3);border-color:#3b82f6}.btn-delete-session{background:rgba(239,68,68,.2);border:1px solid rgba(239,68,68,.3);color:#ef4444}.btn-delete-session:hover:not(:disabled){background:rgba(239,68,68,.3);border-color:#ef4444}.btn-delete-session:disabled{opacity:.5;cursor:not-allowed}.session-detail-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:.75rem;background:rgba(0,0,0,.2);border-radius:6px}.meta-item{color:#ffffffe6;font-size:.95rem;font-weight:600}.meta-secondary{color:#fff9;font-weight:400;font-style:italic}.session-detail-section{margin-bottom:1.5rem}.session-detail-section h4{color:var(--primary-color);margin:0 0 .75rem;font-size:1.1rem}.session-detail-text{color:#ffffffe6;line-height:1.7;margin:0;white-space:pre-wrap}.notes-text{background:rgba(0,0,0,.2);padding:1rem;border-radius:6px;border-left:3px solid var(--primary-color)}.highlights-display{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.highlights-display li{background:rgba(255,215,0,.1);border:1px solid rgba(255,215,0,.3);border-radius:6px;padding:.75rem 1rem;color:#ffffffe6;line-height:1.5}.btn-campaign-chat{background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);color:#fff;border:none;padding:.7rem 1.3rem;border-radius:6px;cursor:pointer;font-weight:600;font-size:.95rem;transition:all .2s ease;position:relative;display:flex;align-items:center;gap:.5rem}.btn-campaign-chat:hover{transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf666}.btn-campaign-chat .chat-badge{background:#ef4444;color:#fff;border-radius:12px;padding:.15rem .5rem;font-size:.75rem;font-weight:700;min-width:20px;text-align:center}.campaign-chat-modal{width:90%;max-width:700px;height:80vh;max-height:700px;display:flex;flex-direction:column}.campaign-chat-participants{padding:.75rem 1.5rem;background:rgba(139,92,246,.1);border-bottom:1px solid rgba(139,92,246,.3);font-size:.9rem;color:#fffc}.campaign-chat-participants strong{color:#8b5cf6;margin-right:.5rem}.campaign-chat-messages{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.campaign-chat-messages .no-messages{text-align:center;color:#ffffff80;margin:auto;font-style:italic}.chat-message{display:flex;flex-direction:column;gap:.25rem;max-width:70%}.chat-message.own-message{align-self:flex-end}.chat-message .message-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;font-size:.85rem}.chat-message .message-header strong{color:#8b5cf6}.chat-message.own-message .message-header strong{color:#06b6d4}.chat-message .message-time{color:#ffffff80;font-size:.75rem}.chat-message .message-content{background:rgba(139,92,246,.2);border:1px solid rgba(139,92,246,.3);padding:.75rem 1rem;border-radius:12px;color:#ffffffe6;word-wrap:break-word;line-height:1.4}.chat-message.own-message .message-content{background:rgba(6,182,212,.2);border-color:#06b6d44d}.campaign-chat-input-form{display:flex;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.2)}.campaign-chat-input{flex:1;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:#fff;padding:.75rem 1rem;border-radius:6px;font-size:.95rem}.campaign-chat-input:focus{outline:none;border-color:#8b5cf6;background:rgba(255,255,255,.08)}.btn-send-message{background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s ease}.btn-send-message:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf666}.btn-send-message:disabled{opacity:.5;cursor:not-allowed}.login-page{min-height:calc(100vh - 200px);display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%)}.login-container{background:rgba(26,26,46,.95);border:2px solid #4a5568;border-radius:12px;padding:2.5rem;max-width:450px;width:100%;box-shadow:0 10px 40px #00000080}.login-header{text-align:center;margin-bottom:2rem}.login-header h1{font-size:2rem;color:#e0e0e0;margin-bottom:.5rem;font-family:Cinzel,serif}.login-header p{color:#a0a0a0;font-size:.95rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.form-group input[type=email],.form-group input[type=password]{padding:.75rem;background:rgba(255,255,255,.05);border:1px solid #4a5568;border-radius:6px;color:#e0e0e0;font-size:1rem;transition:all .3s ease}.form-group input[type=email]:focus,.form-group input[type=password]:focus{outline:none;border-color:#667eea;background:rgba(255,255,255,.08);box-shadow:0 0 0 3px #667eea1a}.login-footer{text-align:center;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #4a5568}.login-footer p{color:#a0a0a0;font-size:.95rem}.login-footer a{color:#667eea;text-decoration:none;font-weight:500;transition:color .3s ease}.login-footer a:hover{color:#764ba2;text-decoration:underline}@media (max-width: 600px){.login-page{padding:1rem}.login-container{padding:1.5rem}.login-header h1{font-size:1.5rem}}.register-page{min-height:calc(100vh - 200px);display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%)}.register-container{background:rgba(26,26,46,.95);border:2px solid #4a5568;border-radius:12px;padding:2.5rem;max-width:500px;width:100%;box-shadow:0 10px 40px #00000080}.register-header{text-align:center;margin-bottom:2rem}.register-header h1{font-size:2rem;color:#e0e0e0;margin-bottom:.5rem;font-family:Cinzel,serif}.register-header p{color:#a0a0a0;font-size:.95rem}.register-form{display:flex;flex-direction:column;gap:1.25rem}.form-group input[type=text],.form-group input[type=email],.form-group input[type=password]{padding:.75rem;background:rgba(255,255,255,.05);border:1px solid #4a5568;border-radius:6px;color:#e0e0e0;font-size:1rem;transition:all .3s ease}.form-group input[type=text]:focus,.form-group input[type=email]:focus,.form-group input[type=password]:focus{outline:none;border-color:#667eea;background:rgba(255,255,255,.08);box-shadow:0 0 0 3px #667eea1a}.form-group input.error{border-color:#ef4444}.form-group input:disabled{opacity:.6;cursor:not-allowed}.error-message{color:#ef4444;font-size:.85rem;margin-top:-.25rem}.checkbox-group{gap:.25rem}.checkbox-group label{display:flex;align-items:flex-start;gap:.5rem;cursor:pointer;font-weight:400}.checkbox-group input[type=checkbox]{margin-top:.25rem;cursor:pointer;width:18px;height:18px}.checkbox-group span{color:#e0e0e0}.btn-primary{margin-top:.5rem;padding:.875rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.register-footer{text-align:center;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #4a5568}.register-footer p{color:#a0a0a0;font-size:.95rem}.register-footer a{color:#667eea;text-decoration:none;font-weight:500;transition:color .3s ease}.register-footer a:hover{color:#764ba2;text-decoration:underline}@media (max-width: 600px){.register-page{padding:1rem}.register-container{padding:1.5rem}.register-header h1{font-size:1.5rem}}.profile-page{min-height:calc(100vh - 200px);padding:2rem;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 100%)}.profile-container{max-width:900px;margin:0 auto;background:rgba(26,26,46,.95);border:2px solid #4a5568;border-radius:12px;overflow:hidden;box-shadow:0 10px 40px #00000080}.profile-header{display:flex;align-items:center;gap:2rem;padding:2.5rem;background:linear-gradient(135deg,rgba(102,126,234,.1) 0%,rgba(118,75,162,.1) 100%);border-bottom:2px solid #4a5568}.profile-avatar{flex-shrink:0}.profile-avatar img,.avatar-placeholder{width:120px;height:120px;border-radius:50%;border:3px solid #667eea;object-fit:cover}.avatar-placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);font-size:3rem;font-weight:700;color:#fff}.profile-info h1{font-size:2rem;color:#e0e0e0;margin-bottom:.5rem;font-family:Cinzel,serif}.profile-info .username{color:#a0a0a0;font-size:1.1rem;margin-bottom:.5rem}.gm-badge{display:inline-block;padding:.25rem .75rem;background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%);color:#fff;border-radius:20px;font-size:.85rem;font-weight:600}.profile-tabs{display:flex;gap:0;background:rgba(0,0,0,.3);border-bottom:2px solid #4a5568}.tab{flex:1;padding:1rem;background:transparent;border:none;color:#a0a0a0;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease;border-bottom:3px solid transparent}.tab:hover{background:rgba(255,255,255,.05);color:#e0e0e0}.tab.active{color:#667eea;border-bottom-color:#667eea;background:rgba(102,126,234,.1)}.profile-content{padding:2.5rem}.profile-form,.security-form{display:flex;flex-direction:column;gap:1.5rem}.profile-form h2,.security-form h2{color:#e0e0e0;font-size:1.5rem;margin-bottom:.5rem;font-family:Cinzel,serif}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:#e0e0e0;font-weight:500;font-size:.95rem}.form-group input,.form-group textarea{padding:.75rem;background:rgba(255,255,255,.05);border:1px solid #4a5568;border-radius:6px;color:#e0e0e0;font-size:1rem;transition:all .3s ease;font-family:inherit}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#667eea;background:rgba(255,255,255,.08);box-shadow:0 0 0 3px #667eea1a}.form-group input.error,.form-group textarea.error{border-color:#ef4444}.form-group input:disabled,.form-group textarea:disabled{opacity:.6;cursor:not-allowed}.form-group textarea{resize:vertical;min-height:100px}.form-group small{color:#a0a0a0;font-size:.85rem}.checkbox-group{padding:1rem;background:rgba(102,126,234,.1);border-radius:8px;border:1px solid rgba(102,126,234,.3)}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;margin-bottom:.5rem}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:#667eea}.checkbox-label span{font-size:1rem;color:#e0e0e0;font-weight:500}.checkbox-group small{display:block;margin-left:2rem;color:#a0a0a0;font-size:.85rem;line-height:1.4}.error-message{color:#ef4444;font-size:.85rem}.btn-primary{padding:.875rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:.5rem}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.stats-section h2{color:#e0e0e0;font-size:1.5rem;margin-bottom:2rem;font-family:Cinzel,serif}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:3rem}.stat-card{background:rgba(102,126,234,.1);border:2px solid #4a5568;border-radius:8px;padding:1.5rem;text-align:center;transition:all .3s ease}.stat-card:hover{border-color:#667eea;transform:translateY(-5px);box-shadow:0 5px 20px #667eea4d}.stat-value{font-size:2rem;font-weight:700;color:#667eea;margin-bottom:.5rem}.stat-label{color:#a0a0a0;font-size:.95rem;text-transform:uppercase;letter-spacing:1px}.account-info{background:rgba(0,0,0,.3);border:2px solid #4a5568;border-radius:8px;padding:2rem}.account-info h3{color:#e0e0e0;font-size:1.25rem;margin-bottom:1.5rem;font-family:Cinzel,serif}.info-row{display:flex;justify-content:space-between;padding:1rem 0;border-bottom:1px solid #4a5568}.info-label{color:#a0a0a0;font-weight:500}.info-value{color:#e0e0e0}.notifications-form{max-width:700px}.notifications-form h2{color:#e0e0e0;font-size:1.75rem;margin-bottom:1rem;font-family:Cinzel,serif}.notifications-description{color:#a0a0a0;font-size:.95rem;line-height:1.6;margin-bottom:2rem;padding:1rem;background:rgba(102,126,234,.1);border-left:3px solid #667eea;border-radius:4px}.notification-option{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem;background:rgba(0,0,0,.3);border:2px solid #4a5568;border-radius:8px;margin-bottom:1rem;transition:all .3s ease}.notification-option:hover{border-color:#667eea;background:rgba(102,126,234,.05)}.notification-option.master-toggle{border-color:#667eea;background:rgba(102,126,234,.15);margin-bottom:2rem}.notification-option input[type=checkbox]{width:20px;height:20px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color:#667eea}.notification-option input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.notification-option label{flex:1;cursor:pointer;display:flex;flex-direction:column;gap:.25rem}.notification-option input[type=checkbox]:disabled+label{opacity:.5;cursor:not-allowed}.notification-option label strong{color:#e0e0e0;font-size:1rem;font-weight:600}.notification-option .option-description{color:#a0a0a0;font-size:.875rem;line-height:1.5}.notification-options-group{margin-bottom:2rem}.notification-options-group h3{color:#e0e0e0;font-size:1.25rem;margin-bottom:1rem;font-family:Cinzel,serif;padding-left:.5rem}.notifications-form .btn-primary{margin-top:1rem}@media (max-width: 768px){.profile-page{padding:.5rem}.profile-header{flex-direction:column;text-align:center;padding:1.5rem 1rem;gap:1rem}.profile-avatar img,.avatar-placeholder{width:100px;height:100px}.profile-info h1{font-size:1.5rem}.profile-content{padding:1rem}.stats-grid{grid-template-columns:1fr;gap:1rem}.profile-tabs{flex-direction:column;gap:0}.tab{border-radius:0;border-bottom:1px solid #4a5568}.tab:first-child{border-radius:0}.tab:last-child{border-radius:0}.form-group input,.form-group textarea{font-size:1rem}.btn-primary{width:100%;padding:1rem}}@media (max-width: 480px){.profile-page{padding:.25rem}.profile-header{padding:1rem .5rem}.profile-content{padding:.75rem}.profile-info h1{font-size:1.25rem}}.friends-container{max-width:1200px;margin:0 auto;padding:2rem}.friends-container h2{margin-bottom:2rem;color:var(--blood-red)}.friends-message{padding:1rem;border-radius:8px;margin-bottom:1rem;animation:slideDown .3s ease-out}.friends-message.success{background-color:#10b9811a;border:1px solid #10b981;color:#10b981}.friends-message.error{background-color:#ef44441a;border:1px solid #ef4444;color:#ef4444}.friends-tabs{display:flex;gap:1rem;margin-bottom:2rem;border-bottom:2px solid rgba(139,0,0,.3)}.tab-btn{padding:.75rem 1.5rem;background:none;border:none;color:#ccc;font-size:1rem;cursor:pointer;position:relative;transition:color .3s}.tab-btn:hover{color:#fff}.tab-btn.active{color:#fbbf24}.tab-btn.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:#fbbf24}.empty-message{text-align:center;color:#999;padding:2rem;font-style:italic}.friends-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.friend-card{background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1.5rem;transition:transform .2s,border-color .2s}.friend-card:hover{transform:translateY(-2px);border-color:#8b000080}.friend-header{display:flex;gap:1rem;align-items:center;margin-bottom:1rem}.friend-avatar{width:60px;height:60px;border-radius:50%;object-fit:cover}.friend-info h3{margin:0;color:#fff;font-size:1.1rem}.friend-username{color:#999;font-size:.9rem;margin:.25rem 0}.gm-badge{display:inline-block;background:rgba(139,0,0,.5);color:#fbbf24;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:700;margin-left:.5rem}.friend-bio{color:#ccc;font-size:.9rem;margin-bottom:1rem;line-height:1.4}.friend-actions{display:flex;gap:.5rem}.friend-actions button{flex:1;padding:.5rem;font-size:.9rem}.requests-section h3{color:#fbbf24;margin-bottom:1rem}.requests-list{display:flex;flex-direction:column;gap:1rem}.request-card{background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1rem;display:flex;justify-content:space-between;align-items:center}.request-card.sent{opacity:.7}.request-info{display:flex;gap:1rem;align-items:center;flex:1}.request-avatar{width:50px;height:50px;border-radius:50%;object-fit:cover}.request-info h4{margin:0;color:#fff}.request-username{color:#999;font-size:.9rem;margin:.25rem 0}.request-bio{color:#ccc;font-size:.85rem;margin:.5rem 0}.request-time{color:#777;font-size:.8rem;margin:0}.request-actions{display:flex;gap:.5rem}.btn-accept{background:#10b981;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background .3s}.btn-accept:hover{background:#059669}.btn-decline{background:#6b7280;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background .3s}.btn-decline:hover{background:#4b5563}.btn-danger{background:#ef4444;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:background .3s}.btn-danger:hover{background:#dc2626}.pending-badge{background:rgba(251,191,36,.2);color:#fbbf24;padding:.5rem 1rem;border-radius:4px;font-size:.9rem}.search-box{margin-bottom:1.5rem}.search-input{width:100%;padding:1rem;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:1rem}.search-input:focus{outline:none;border-color:#8b000080}.search-results{display:flex;flex-direction:column;gap:1rem}.search-result-card{background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1rem;display:flex;justify-content:space-between;align-items:center}.result-info{display:flex;gap:1rem;align-items:center;flex:1}.result-avatar{width:50px;height:50px;border-radius:50%;object-fit:cover}.result-info h4{margin:0;color:#fff}.result-username{color:#999;font-size:.9rem;margin:.25rem 0}.result-bio{color:#ccc;font-size:.85rem;margin:.5rem 0}.result-actions{display:flex;gap:.5rem}.status-badge{padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500}.status-badge.friend{background:rgba(16,185,129,.2);color:#10b981}.status-badge.pending{background:rgba(251,191,36,.2);color:#fbbf24}.friend-characters-modal{max-width:800px;max-height:80vh;overflow-y:auto}.friend-characters-modal h3{margin-bottom:1.5rem;color:#fbbf24}.friend-characters-list{display:grid;gap:1rem}.friend-character-card{background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1rem}.friend-character-card h4{color:#fff;margin-top:0;margin-bottom:1rem}.character-details{display:flex;flex-direction:column;gap:.5rem}.character-details p{margin:0;color:#ccc;font-size:.9rem}.character-attributes{display:flex;gap:1rem;margin-top:.5rem;padding:.5rem;background:rgba(255,255,255,.05);border-radius:4px}.character-attributes span{color:#fbbf24;font-weight:500}.character-campaigns{margin-top:.5rem}.campaign-tag{display:inline-block;background:rgba(139,0,0,.3);color:#fbbf24;padding:.25rem .75rem;border-radius:4px;font-size:.85rem;margin:.25rem .5rem .25rem 0}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.friends-grid{grid-template-columns:1fr}.request-card,.search-result-card{flex-direction:column;align-items:flex-start;gap:1rem}.result-actions,.request-actions{width:100%}.result-actions button,.request-actions button{flex:1}}.modules-container{padding:2rem;max-width:1400px;margin:0 auto}.modules-container h2{color:var(--primary);text-align:center;margin-bottom:1rem}.modules-intro{text-align:center;color:var(--alpha);max-width:800px;margin:0 auto 2rem;font-size:1.1rem}.modules-filters{display:flex;justify-content:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.filter-btn{padding:.75rem 1.5rem;background:rgba(140,84,255,.1);border:2px solid var(--primary);border-radius:6px;color:var(--light);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.filter-btn:hover{background:rgba(140,84,255,.3);transform:translateY(-2px)}.filter-btn.active{background:var(--primary);color:var(--dark)}.modules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem;margin-bottom:2rem}.module-card{background:rgba(0,0,0,.6);border:2px solid var(--primary);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .3s ease;position:relative}.module-card:hover{transform:translateY(-8px);box-shadow:0 12px 24px #8c54ff66;border-color:var(--secondary)}.module-card.classified{opacity:.85;cursor:not-allowed}.module-card.classified:hover{transform:translateY(-4px);box-shadow:0 8px 16px #dc262666;border-color:#dc262699}.classified-banner{position:absolute;top:50px;right:-80px;background:repeating-linear-gradient(45deg,rgba(220,38,38,.8),rgba(220,38,38,.8) 20px,rgba(185,28,28,.8) 20px,rgba(185,28,28,.8) 40px);color:#fff;padding:8px 100px;transform:rotate(45deg);font-weight:700;font-size:1rem;letter-spacing:3px;text-align:center;z-index:10;box-shadow:0 4px 12px #0009;border-top:2px solid rgba(255,255,255,.3);border-bottom:2px solid rgba(0,0,0,.4);pointer-events:none;opacity:.75}.classified-banner span{text-shadow:0 2px 4px rgba(0,0,0,.5);font-family:Courier New,monospace}.coming-soon-banner{position:absolute;top:50px;right:-80px;background:repeating-linear-gradient(45deg,rgba(220,38,38,.9),rgba(220,38,38,.9) 20px,rgba(185,28,28,.9) 20px,rgba(185,28,28,.9) 40px);color:#fff;padding:8px 100px;transform:rotate(45deg);font-weight:700;font-size:.9rem;letter-spacing:2px;text-align:center;z-index:10;box-shadow:0 4px 12px #00000080;border-top:2px solid rgba(255,255,255,.3);border-bottom:2px solid rgba(0,0,0,.3);pointer-events:none}.coming-soon-banner span{text-shadow:1px 1px 3px rgba(0,0,0,.8)}.coming-soon-banner-modal{position:absolute;top:80px;right:-60px;background:repeating-linear-gradient(45deg,rgba(220,38,38,.95),rgba(220,38,38,.95) 20px,rgba(185,28,28,.95) 20px,rgba(185,28,28,.95) 40px);color:#fff;padding:10px 80px;transform:rotate(45deg);font-weight:700;font-size:1rem;letter-spacing:3px;text-align:center;z-index:100;box-shadow:0 4px 16px #0009;border-top:2px solid rgba(255,255,255,.4);border-bottom:2px solid rgba(0,0,0,.4);pointer-events:none}.coming-soon-banner-modal span{text-shadow:2px 2px 4px rgba(0,0,0,.9)}.module-thumbnail{height:200px;background:linear-gradient(135deg,rgba(140,84,255,.2) 0%,rgba(237,174,73,.2) 100%);display:flex;align-items:center;justify-content:center;border-bottom:2px solid var(--primary)}.module-placeholder{font-size:4rem;opacity:.5}.module-content{padding:1.5rem}.module-content h3{color:var(--secondary);margin-top:0;margin-bottom:1rem}.module-description{color:var(--alpha);line-height:1.6;margin-bottom:1rem;font-size:1rem}.module-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid rgba(140,84,255,.3)}.module-meta span{font-size:.9rem;color:var(--alpha)}.module-difficulty{font-weight:700;text-transform:uppercase;letter-spacing:.5px}.module-tags{display:flex;flex-wrap:wrap;gap:.5rem}.module-tag{background:rgba(237,174,73,.2);color:var(--secondary);padding:.25rem .75rem;border-radius:12px;font-size:.85rem;border:1px solid var(--secondary)}.download-count{margin-top:1rem;padding-top:.75rem;border-top:1px solid rgba(140,84,255,.2);font-size:.85rem;color:var(--alpha);text-align:center}.loading-message{grid-column:1 / -1;text-align:center;padding:3rem;color:var(--alpha);font-size:1.2rem}.no-modules{text-align:center;padding:3rem;color:var(--alpha);grid-column:1 / -1}.module-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;z-index:2000;padding:2rem;overflow-y:auto}.module-modal-content{background:var(--dark);border:2px solid var(--primary);border-radius:12px;padding:2rem;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.close-modal{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--light);font-size:2rem;cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease}.close-modal:hover{background:rgba(140,84,255,.3);color:var(--primary)}.module-modal-content h2{color:var(--secondary);margin-top:0;margin-bottom:1rem}.modal-meta{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid rgba(140,84,255,.3);color:var(--alpha)}.module-full-description h3{color:var(--primary);margin-top:2rem;margin-bottom:1rem}.module-full-description p{color:var(--alpha);line-height:1.8;margin-bottom:1.5rem}.module-full-description ul{list-style:none;padding:0;margin-bottom:2rem}.module-full-description li{color:var(--alpha);padding:.5rem 0 .5rem 1.5rem;position:relative}.module-full-description li:before{content:"✓";position:absolute;left:0;color:var(--secondary);font-weight:700}.module-actions{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:2px solid var(--primary);border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;font-family:inherit}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--dark)}.btn-primary:hover:not(:disabled){background:var(--light);border-color:var(--light);transform:translateY(-2px)}.btn-secondary{background:transparent;color:var(--primary)}.btn-secondary:hover{background:rgba(140,84,255,.2);transform:translateY(-2px)}@media (max-width: 768px){.modules-page{padding:1rem}.modules-header h1{font-size:2rem}.modules-grid{grid-template-columns:1fr;gap:1.5rem}.modules-filters{flex-direction:column;align-items:stretch;gap:.75rem}.filter-btn{width:100%;padding:.75rem;font-size:1rem}.module-card{padding:1.5rem}.module-modal{padding:.5rem;align-items:flex-start}.module-modal-content{padding:1.5rem;max-width:100%;max-height:90vh;overflow-y:auto}.module-actions{flex-direction:column;gap:.75rem}.btn-primary,.btn-secondary{width:100%;padding:.875rem;font-size:1rem}.module-meta{flex-wrap:wrap;gap:.5rem}.module-description{font-size:.95rem}}@media (max-width: 480px){.modules-page{padding:.5rem}.modules-header h1{font-size:1.75rem}.module-card{padding:1rem}.classified-banner span{font-size:2.5rem}}.classified-modal{background:linear-gradient(135deg,#1a0000 0%,#0a0a0a 100%);border:3px solid #dc2626;max-width:500px;animation:classifiedPulse 2s ease-in-out infinite}.classified-note{color:#888;font-size:.9rem;font-style:italic;margin-bottom:2rem}.module-viewer{max-width:min(1200px,100vw - 4rem);margin:0 auto;padding:clamp(1rem,3vw,2rem);background:linear-gradient(135deg,#1e1e2e 0%,#1a2332 100%);color:#f0f0f0;font-family:Georgia,Times New Roman,serif;line-height:1.7;min-height:100vh}.module-viewer.loading,.module-viewer.error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,215,0,.3);border-top-color:gold;border-radius:50%;animation:spin 1s linear infinite}.module-header{background:linear-gradient(135deg,#0f3460 0%,#16213e 100%);padding:2rem;border-radius:12px;box-shadow:0 8px 32px #00000080;margin-bottom:2rem;border:2px solid rgba(255,215,0,.2);overflow:visible;min-height:fit-content}.back-button{background:rgba(255,215,0,.1);border:1px solid rgba(255,215,0,.3);color:#ffeb3b;padding:.5rem 1rem;min-height:44px;border-radius:6px;cursor:pointer;font-size:.95rem;transition:all .2s ease}.back-button:hover{background:rgba(255,215,0,.2);border-color:#ffeb3b;transform:translate(-3px)}.back-button:active{transform:translate(-1px);box-shadow:inset 0 2px 4px #0000004d}.back-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.header-actions{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.print-button{background:rgba(100,200,100,.15);border:1px solid rgba(100,200,100,.4);color:#7ed87e;padding:.5rem 1rem;min-height:44px;border-radius:6px;cursor:pointer;font-size:.95rem;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.print-button:hover{background:rgba(100,200,100,.25);border-color:#7ed87e;transform:translateY(-2px);box-shadow:0 4px 12px #64c8644d}.print-button:active{transform:translateY(0);box-shadow:inset 0 2px 4px #0000004d}.print-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.download-pdf-button{background:rgba(102,126,234,.15);border:1px solid rgba(102,126,234,.4);color:#7e95ea;padding:.5rem 1rem;min-height:44px;border-radius:6px;cursor:pointer;font-size:.95rem;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.download-pdf-button:hover{background:rgba(102,126,234,.25);border-color:#7e95ea;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.download-pdf-button:active{transform:translateY(0);box-shadow:inset 0 2px 4px #0000004d}.download-pdf-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.module-title-block{margin-bottom:1.5rem;overflow:visible}.module-title{font-size:clamp(2rem,8vw,3rem);font-weight:700;color:#ffeb3b;text-shadow:2px 2px 8px rgba(0,0,0,.8);margin:0;letter-spacing:.05em;text-transform:uppercase;line-height:1.2}.module-subtitle{font-size:1.2rem;color:#d0d0d0;font-style:italic;margin:.5rem 0 0}.module-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.meta-badge{background:rgba(255,255,255,.1);padding:.4rem .8rem;border-radius:20px;font-size:.9rem;border:1px solid rgba(255,255,255,.2);font-family:Arial,sans-serif;color:#e0e0e0}.meta-badge.difficulty{background:rgba(255,0,0,.2);border-color:#f006;color:#ff6b6b;font-weight:700;text-transform:uppercase}.module-tone{margin-bottom:1rem;font-size:1rem;color:#d4af37}.module-themes{display:flex;flex-wrap:wrap;gap:.5rem}.theme-tag{background:rgba(212,175,55,.15);color:#d4af37;padding:.3rem .7rem;border-radius:15px;font-size:.85rem;border:1px solid rgba(212,175,55,.3)}.module-section{background:rgba(22,33,62,.6);padding:2rem;border-radius:10px;margin-bottom:2rem;border:1px solid rgba(255,215,0,.15);box-shadow:0 4px 16px #0000004d}.module-section h2{font-size:2rem;color:gold;margin-top:0;margin-bottom:1.5rem;border-bottom:2px solid rgba(255,215,0,.3);padding-bottom:.5rem;text-transform:uppercase;letter-spacing:1.5px}.collapsible-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .3s ease}.collapsible-header:hover{color:#ffed4e}.overview .tagline{font-size:1.5rem;font-style:italic;color:#d4af37;margin-bottom:1.5rem;text-align:center;padding:1rem;background:rgba(212,175,55,.1);border-radius:8px;border-left:4px solid #d4af37}.synopsis,.premise{font-size:1.1rem;line-height:1.8;margin-bottom:1rem;text-indent:2rem}.faction-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.faction-card{background:rgba(15,52,96,.5);padding:1.5rem;border-radius:8px;border:2px solid rgba(255,215,0,.2);transition:transform .3s ease,box-shadow .3s ease}.faction-card:hover{transform:translateY(-5px);box-shadow:0 8px 24px #ffd70033}.faction-card h3{color:gold;margin-top:0;font-size:1.5rem;border-bottom:1px solid rgba(255,215,0,.3);padding-bottom:.5rem}.faction-detail{margin-bottom:.75rem;font-size:.95rem}.faction-detail strong{color:#d4af37}.recruitment-pitch{margin-top:1rem;padding:1rem;background:rgba(0,0,0,.3);border-left:3px solid #d4af37;font-style:italic;color:silver}.module-search{margin:1.5rem 0;padding:1rem;background:rgba(15,52,96,.3);border-radius:8px;border:1px solid rgba(255,235,59,.2)}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-input{width:100%;padding:.75rem 2.5rem .75rem 1rem;background:rgba(0,0,0,.4);border:2px solid rgba(255,235,59,.3);border-radius:6px;color:var(--text-primary, #f0f0f0);font-size:1rem;font-family:inherit;transition:all .2s ease}.search-input:focus{outline:none;border-color:var(--gold-bright, #ffeb3b);box-shadow:0 0 12px #ffeb3b4d}.search-input::placeholder{color:#f0f0f080}.search-clear{position:absolute;right:.5rem;background:rgba(255,235,59,.2);border:none;color:var(--gold-bright, #ffeb3b);width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:all .2s ease}.search-clear:hover{background:rgba(255,235,59,.3);transform:scale(1.1)}.search-clear:active{transform:scale(.95)}.search-clear:focus-visible{outline:2px solid var(--focus-color, #ffeb3b);outline-offset:2px}.search-results-info{margin-top:.75rem;color:var(--gold-bright, #ffeb3b);font-size:.9rem;font-style:italic}.search-highlight{background:rgba(255,235,59,.4);color:var(--text-primary, #f0f0f0);padding:.1em .2em;border-radius:2px;font-weight:500}.no-results{padding:2rem;text-align:center;color:#f0f0f099;font-style:italic;font-size:1.1rem}.sessions-nav{background:rgba(15,52,96,.4)}.session-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.session-button-wrapper{display:flex;align-items:center;gap:.75rem}.session-checkbox-label{position:relative;display:inline-flex;align-items:center;cursor:pointer;flex-shrink:0}.session-checkbox{position:absolute;opacity:0;width:0;height:0}.checkbox-custom{width:24px;height:24px;border:2px solid var(--gold-bright, #ffeb3b);border-radius:4px;background:rgba(0,0,0,.3);display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.session-checkbox:checked+.checkbox-custom{background:var(--gold-bright, #ffeb3b);border-color:var(--gold-bright, #ffeb3b)}.session-checkbox:checked+.checkbox-custom:after{content:"✓";color:var(--bg-dark, #0a0a0a);font-weight:700;font-size:16px;line-height:1}.session-checkbox:focus-visible+.checkbox-custom{outline:3px solid var(--focus-color, #ffeb3b);outline-offset:2px}.session-checkbox-label:hover .checkbox-custom{border-color:var(--gold-bright, #ffeb3b);box-shadow:0 0 8px #ffeb3b4d}.session-button{background:rgba(255,215,0,.1);border:2px solid rgba(255,215,0,.3);color:gold;padding:1rem;border-radius:8px;cursor:pointer;font-size:1rem;font-family:Georgia,serif;transition:all .3s ease;text-align:left;flex:1;min-height:44px}.session-button:hover{background:rgba(255,215,0,.2);transform:translateY(-3px);box-shadow:0 6px 20px #ffd7004d}.session-button.active{background:rgba(255,215,0,.3);border-color:gold;font-weight:700}.session-button.completed{opacity:.7;background:rgba(76,175,80,.15);border-color:#4caf5080}.session-button.completed:hover{opacity:.85}.session-detail{background:linear-gradient(135deg,rgba(15,52,96,.7) 0%,rgba(22,33,62,.7) 100%);border:2px solid rgba(255,215,0,.4)}.session-content h2{color:#ffed4e}.session-meta{font-size:1.1rem;margin-bottom:1rem;color:#d4af37}.session-summary{font-size:1.1rem;margin-bottom:1.5rem;font-style:italic;padding:1rem;background:rgba(0,0,0,.3);border-radius:8px}.session-header-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.session-header-nav h2{flex:1;text-align:center;margin:0}.session-nav-btn{background:rgba(255,235,59,.15);border:2px solid rgba(255,235,59,.3);color:var(--gold-bright, #ffeb3b);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:500;min-height:44px;min-width:100px;transition:all .2s ease}.session-nav-btn:hover:not(:disabled){background:rgba(255,235,59,.25);border-color:var(--gold-bright, #ffeb3b);transform:translate(-2px)}.session-nav-btn.next:hover:not(:disabled){transform:translate(2px)}.session-nav-btn:active:not(:disabled){transform:scale(.98)}.session-nav-btn:disabled{opacity:.3;cursor:not-allowed}.session-nav-btn:focus-visible{outline:3px solid var(--focus-color, #ffeb3b);outline-offset:2px}.session-hooks{margin-bottom:2rem}.session-hooks h3{color:gold;font-size:1.4rem;margin-bottom:1rem}.hook-card{background:rgba(212,175,55,.1);padding:1rem;border-radius:8px;border-left:4px solid #d4af37;margin-bottom:1rem}.hook-card h4{color:gold;margin-top:0}.scenes{margin-top:2rem}.scenes h3{color:gold;font-size:1.5rem;margin-bottom:1.5rem}.scene-card{background:rgba(0,0,0,.4);padding:1.5rem;border-radius:8px;margin-bottom:2rem;border:1px solid rgba(255,215,0,.2)}.scene-card h4{color:#ffed4e;font-size:1.3rem;margin-top:0;margin-bottom:1rem;border-bottom:1px solid rgba(255,215,0,.3);padding-bottom:.5rem}.scene-location,.scene-opening{margin-bottom:1rem;font-size:.95rem}.scene-location strong{color:#d4af37}.scene-atmosphere{background:rgba(212,175,55,.1);padding:.75rem;border-radius:6px;margin-bottom:1rem;border-left:3px solid #d4af37;color:#e0e0e0;font-style:italic}.scene-clues{margin:1.5rem 0}.scene-clues h5{color:gold;margin-bottom:.75rem}.clues-table{width:100%;border-collapse:collapse;background:rgba(0,0,0,.3);border-radius:6px;overflow:hidden}.clues-table th{background:rgba(255,215,0,.2);color:gold;padding:.75rem;text-align:left;font-weight:700;border-bottom:2px solid rgba(255,215,0,.4)}.clues-table td{padding:.75rem;border-bottom:1px solid rgba(255,215,0,.1)}.clues-table tr:hover{background:rgba(255,215,0,.05)}.bloodline-triggers{margin:1.5rem 0}.bloodline-triggers h5{color:gold;margin-bottom:1rem}.trigger-card{background:rgba(139,0,0,.2);padding:1rem;border-radius:6px;border-left:4px solid #8b0000;margin-bottom:1rem}.trigger-card strong{color:#ff6b6b;font-size:1.1rem}.mechanical-effect{margin-top:.5rem;padding:.5rem;background:rgba(0,0,0,.3);border-radius:4px;color:silver;font-size:.9rem}.combat-encounter,.combat-encounter-detailed,.boss-encounter{background:rgba(139,0,0,.2);padding:1rem;border-radius:8px;border:2px solid rgba(255,0,0,.3);margin:1.5rem 0}.combat-encounter h5,.combat-encounter-detailed h5,.boss-encounter h5{color:#ff6b6b;margin-top:0;margin-bottom:1rem}.enemy-info,.enemy-block{margin-bottom:1rem}.enemy-info strong,.enemy-block strong{color:#ff6b6b;font-size:1.1rem}.boss-stats h6{color:#f44;font-size:1.3rem;margin:0 0 .75rem}.abilities,.weaknesses,.tactics,.battlefield,.minions{margin:.75rem 0}.abilities ul,.weaknesses ul,.battlefield ul{margin:.5rem 0;padding-left:1.5rem}.minion-tag{display:inline-block;background:rgba(0,0,0,.4);padding:.3rem .6rem;border-radius:4px;margin-right:.5rem;margin-bottom:.5rem;font-size:.9rem;border:1px solid rgba(255,0,0,.3)}.skill-challenges{margin:1.5rem 0}.skill-challenges h5{color:gold;margin-bottom:1rem}.challenge-card{background:rgba(0,100,150,.2);padding:1rem;border-radius:6px;border-left:4px solid #4a9eff;margin-bottom:1rem}.challenge-card strong{color:#4a9eff;font-size:1.05rem}.scene-choices,.decision-point{margin:1.5rem 0}.scene-choices h5{color:gold;margin-bottom:1rem}.choice-card{background:rgba(218,165,32,.1);padding:1rem;border-radius:6px;border-left:4px solid #daa520;margin-bottom:1rem}.choice-card strong{color:#daa520;font-size:1.05rem}.npcs-present{margin:1.5rem 0}.npcs-present h5{color:gold;margin-bottom:.75rem}.npc-present{margin-bottom:.75rem}.npc-present strong{color:#d4af37}.session-end{margin-top:2rem;padding:1.5rem;background:rgba(139,0,0,.3);border-radius:8px;border:2px solid rgba(255,0,0,.4)}.session-end h3{color:#ff6b6b;margin-top:0}.cliffhanger{background:rgba(0,0,0,.5);padding:1rem;border-radius:6px;margin-bottom:1rem;border-left:4px solid #ff4444}.cliffhanger p{font-style:italic;font-size:1.05rem;margin:.5rem 0 0}.xp-reward{color:#d4af37;font-weight:700}.epilogue{margin-top:2rem;padding:2rem;background:rgba(212,175,55,.2);border-radius:8px;border:2px solid #d4af37}.epilogue h3{color:gold;margin-top:0}.final-rewards{margin-top:1rem}.final-rewards ul{list-style-type:none;padding:0}.final-rewards li{padding:.5rem;margin-bottom:.5rem;background:rgba(0,0,0,.3);border-radius:4px;border-left:3px solid #ffd700}.npc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1.5rem}.npc-card{background:rgba(15,52,96,.4);padding:1.5rem;border-radius:8px;border:2px solid rgba(255,215,0,.2);transition:transform .3s ease}.npc-card:hover{transform:translateY(-5px);box-shadow:0 8px 24px #0006}.npc-card h3{color:gold;margin-top:0;font-size:1.4rem}.npc-faction{color:#d4af37;font-size:.9rem;margin-bottom:1rem}.npc-personality,.npc-backstory{margin:1rem 0}.npc-personality strong,.npc-backstory strong{color:#d4af37}.npc-stats{background:rgba(0,0,0,.3);padding:1rem;border-radius:6px;margin:1rem 0}.npc-stats ul{list-style:none;padding:0;margin:.5rem 0 0}.npc-stats li{margin-bottom:.3rem}.npc-quotes{margin-top:1rem}.npc-quotes ul{list-style:none;padding:0}.npc-quotes li{padding:.5rem;margin-bottom:.5rem;background:rgba(0,0,0,.3);border-left:3px solid #d4af37;border-radius:4px;font-style:italic;color:silver}.location-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.location-card{background:rgba(15,52,96,.4);padding:1.5rem;border-radius:8px;border:2px solid rgba(74,158,255,.3)}.location-card h3{color:#4a9eff;margin-top:0}.location-atmosphere{margin:1rem 0;padding:.75rem;background:rgba(74,158,255,.1);border-left:3px solid #4a9eff;border-radius:4px}.location-secrets,.location-hazards{margin:1rem 0}.location-secrets strong,.location-hazards strong{color:#d4af37}.handout-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.handout-card{background:rgba(218,165,32,.15);padding:1rem;border-radius:8px;border:2px solid rgba(218,165,32,.3);font-family:Courier New,monospace}.handout-card h4{color:#daa520;margin-top:0;font-family:Georgia,serif}.handout-image,.handout-map{margin:1rem 0;text-align:center}.handout-image img,.handout-map img{max-width:100%;height:auto;border-radius:6px;border:2px solid rgba(218,165,32,.4);box-shadow:0 4px 12px #00000080}.map-image{cursor:zoom-in;transition:transform .3s ease}.map-image:hover{transform:scale(1.02)}.clickable-image{cursor:zoom-in;transition:transform .3s ease}.clickable-image:hover{transform:scale(1.02)}.image-caption,.map-caption{font-size:.85rem;color:#daa520;font-style:italic;margin-top:.5rem}.newspaper-handout{background:linear-gradient(to bottom,#f4f1e8 0%,#e8e5d8 100%);border:3px solid #8b7355;box-shadow:0 6px 20px #0009;font-family:Georgia,Times New Roman,serif;color:#2c2416;padding:1.5rem;margin-bottom:1.5rem;width:100%;max-width:100%}.newspaper-handout h4{font-family:Georgia,Times New Roman,serif;font-size:1.1rem;color:#2c2416;text-align:center;border-bottom:2px solid #8b7355;padding-bottom:.5rem;margin-bottom:1rem;text-transform:uppercase;letter-spacing:1px}.newspaper-handout .handout-content{line-height:1.8;text-align:justify;column-count:1;font-size:.95rem}.handout-gm-notes{margin-top:1.5rem;padding:1rem;background:rgba(139,0,0,.1);border:2px solid rgba(139,0,0,.3);border-radius:6px}.handout-gm-notes h5{color:#8b0000;margin-top:0;font-size:.9rem;text-transform:uppercase}.handout-gm-notes p{color:#e0e0e0;font-size:.9rem;line-height:1.6}.reward-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.reward-card{background:rgba(139,0,139,.2);padding:1rem;border-radius:8px;border:2px solid rgba(186,85,211,.4)}.reward-card h4{color:#ba55d3;margin-top:0}.reward-type{color:#d4af37;font-size:.85rem;text-transform:uppercase;margin-bottom:.5rem}.reward-description{font-style:italic;color:silver;margin-top:.5rem}.guidance-content{display:grid;gap:1.5rem}.guidance-block h4{color:gold;margin-top:0;margin-bottom:.75rem}.guidance-block{background:rgba(0,0,0,.3);padding:1rem;border-radius:6px;border-left:4px solid #d4af37}.module-footer{text-align:center;padding:2rem;color:#888;font-size:.9rem;border-top:1px solid rgba(255,215,0,.2);margin-top:2rem}.scene-gm-guidance{margin-top:1rem;padding:.75rem;background:rgba(0,150,0,.1);border-left:4px solid #4caf50;border-radius:4px}.scene-gm-guidance strong{color:#4caf50}.gm-guidance .collapsible-header{cursor:pointer}.gm-guidance .collapsible-header:hover{color:gold}.module-section.gm-guidance:has(.collapsible-header:not([onclick])) .collapsible-header{cursor:not-allowed;opacity:.6}.module-section.gm-guidance .collapsible-header{position:relative}.module-section.gm-guidance .collapsible-header:before{content:"";position:absolute;left:-2rem;top:50%;transform:translateY(-50%);font-size:1.2rem}@media (max-width: 768px){.module-viewer{padding:.5rem}.module-header{padding:1rem}.module-title{font-size:2rem;letter-spacing:1px}.module-meta{gap:.5rem}.meta-badge{font-size:.75rem;padding:.3rem .6rem}.module-section{padding:1rem;margin-bottom:1rem}.faction-grid,.npc-grid,.location-grid,.handout-grid,.reward-grid{grid-template-columns:1fr;gap:1rem}.session-buttons{grid-template-columns:1fr;gap:.75rem}.session-button{padding:1rem;font-size:.95rem}.clues-table{font-size:.85rem;display:block;overflow-x:auto}.clues-table th,.clues-table td{padding:.5rem;font-size:.85rem}.npc-card,.faction-card,.location-card{padding:1rem}.back-button,.print-button{padding:.5rem .75rem;font-size:.85rem}}@media (max-width: 480px){.module-viewer{padding:.25rem}.module-header{padding:.75rem}.module-title{font-size:1.5rem;letter-spacing:.5px}.module-subtitle{font-size:.9rem}.module-section h2{font-size:1.25rem}.module-section h3{font-size:1.1rem}.session-button{padding:.875rem;font-size:.9rem}.theme-tag{font-size:.75rem;padding:.25rem .5rem}}.image-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.95);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:2000;padding:2rem;animation:fadeIn .3s ease}.image-modal-content{background:linear-gradient(135deg,#1e1e2e 0%,#1a2332 100%);border-radius:12px;max-width:min(95vw,1400px);max-height:min(95vh,900px);display:flex;flex-direction:column;box-shadow:0 20px 60px #000c;border:2px solid rgba(255,235,59,.3);position:relative;overflow:hidden}.image-modal-close{position:absolute;top:1rem;right:1rem;background:rgba(139,0,0,.8);border:none;color:#fff;font-size:1.5rem;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10}.image-modal-close:hover{background:rgba(139,0,0,1);transform:rotate(90deg)}.image-modal-close:active{transform:rotate(90deg) scale(.95)}.image-modal-header{padding:1.5rem 2rem;border-bottom:2px solid rgba(255,235,59,.3);display:flex;justify-content:space-between;align-items:center;background:rgba(0,0,0,.3);gap:1rem;flex-wrap:wrap}.image-modal-header h3{margin:0;color:#ffeb3b;font-size:1.3rem;text-shadow:0 0 10px rgba(255,235,59,.5)}.image-download-btn{background:linear-gradient(135deg,#4a148c 0%,#7b1fa2 100%);color:#fff;border:2px solid rgba(255,235,59,.3);padding:.6rem 1.2rem;min-height:44px;border-radius:6px;cursor:pointer;font-size:.95rem;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.image-download-btn:hover{background:linear-gradient(135deg,#6a1b9a 0%,#9c27b0 100%);border-color:#ffeb3b;box-shadow:0 0 15px #ffeb3b66;transform:translateY(-2px)}.image-download-btn:active{transform:translateY(0)}.image-download-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.image-modal-body{padding:2rem;overflow:auto;display:flex;justify-content:center;align-items:center;flex:1}.image-modal-body img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 8px 32px #0009}@media print{.no-print,.back-button,.print-button,.header-actions,.session-button,.collapsible-header,.screen-only,.back-to-top{display:none!important}.print-only-sessions,.print-only-npcs{display:block!important}.module-section{page-break-before:auto;page-break-after:auto}.module-section.sessions,.module-section.npcs,.module-section.locations,.module-section.handouts,.module-section.gm-guidance{page-break-before:always}.session-card,.npc-card,.location-card,.handout,.reward-item,.guidance-block{page-break-inside:avoid}.print-section-title{font-size:1.8rem;margin:2rem 0 1rem;page-break-before:always;page-break-after:avoid;border-bottom:2px solid #000;padding-bottom:.5rem}.print-npc-card{page-break-inside:avoid;margin-bottom:2rem;border:1px solid #000;padding:1rem}.module-viewer{background:white!important;color:#000!important;padding:0;max-width:100%;min-height:auto}.module-header{background:white!important;color:#000!important;box-shadow:none!important;border:none!important;page-break-after:avoid;margin-bottom:1rem;padding:1rem 0}.module-title{color:#000!important;text-shadow:none!important;font-size:2rem}.module-subtitle{color:#333!important}.module-section{background:white!important;color:#000!important;box-shadow:none!important;border:none!important;padding:.5rem 0;page-break-inside:avoid}.module-section h2{color:#000!important;border-bottom:2px solid #000!important;page-break-after:avoid;font-size:1.5rem}.module-section h3{color:#222!important;page-break-after:avoid}.module-section h4,.module-section h5{color:#333!important;page-break-after:avoid}.faction-card,.npc-card,.location-card,.scene-card,.hook-card,.challenge-card,.choice-card{background:white!important;border:1px solid #ccc!important;color:#000!important;page-break-inside:avoid;margin-bottom:.5rem}.clues-table{background:white!important;border:1px solid #000}.clues-table th{background:#f0f0f0!important;color:#000!important;border-bottom:2px solid #000!important}.clues-table td{color:#000!important;border-bottom:1px solid #ccc!important}p,li,span,em,strong{color:#000!important}.meta-badge,.theme-tag,.reward-type,.minion-tag{background:#f0f0f0!important;color:#000!important;border:1px solid #ccc!important}.tagline{background:#f9f9f9!important;color:#000!important;border-left:4px solid #000!important}.scene-atmosphere,.location-atmosphere{background:#f9f9f9!important;color:#000!important;border-left:3px solid #666!important}.combat-encounter,.combat-encounter-detailed,.boss-encounter{background:#fff5f5!important;border:2px solid #000!important;color:#000!important}.cliffhanger{background:#fff5f5!important;border-left:4px solid #000!important;color:#000!important}.recruitment-pitch,.npc-quotes li{background:#f9f9f9!important;color:#000!important;border-left:3px solid #666!important}.npcs,.locations,.handouts,.rewards,.guidance-content{display:block!important}.session-detail{display:block!important;background:white!important;border:none!important}.module-footer{color:#666!important;border-top:1px solid #ccc!important}.session-content{page-break-before:always}.session-content:first-child{page-break-before:avoid}body{font-size:11pt;line-height:1.5}*{box-shadow:none!important;text-shadow:none!important}}.npc-card.clickable{cursor:pointer;transition:all .3s ease;position:relative}.npc-card.clickable:hover{transform:translateY(-4px);box-shadow:0 8px 24px #d4af374d;border-color:var(--gold)}.npc-card .npc-preview{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-clamp:3;overflow:hidden;text-overflow:ellipsis}.npc-click-hint{color:var(--gold);font-size:.9rem;margin-top:.5rem;text-align:right;font-style:italic}.npc-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.9);display:flex;justify-content:center;align-items:center;z-index:9999;padding:2rem;overflow-y:auto;animation:fadeIn .3s ease}.npc-modal-content{background:linear-gradient(135deg,#1a1a1a 0%,#0f0f0f 100%);border:2px solid var(--gold);border-radius:8px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 0 40px #d4af3766;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close{position:sticky;top:1rem;right:1rem;float:right;background:rgba(212,175,55,.2);border:1px solid var(--gold);color:var(--gold);font-size:2rem;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;z-index:10;transition:all .2s ease}.modal-close:hover{background:var(--gold);color:var(--dark-bg);transform:rotate(90deg)}.modal-navigation{display:flex;justify-content:center;align-items:center;gap:2rem;padding:1rem;background:rgba(0,0,0,.5);border-bottom:1px solid rgba(212,175,55,.3);position:sticky;top:0;z-index:5}.modal-nav-btn{background:rgba(212,175,55,.2);border:1px solid var(--gold);color:var(--gold);font-size:2rem;width:50px;height:50px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.modal-nav-btn:hover{background:var(--gold);color:var(--dark-bg);transform:scale(1.1)}.modal-counter{color:var(--gold);font-size:1.1rem;font-weight:700;min-width:80px;text-align:center}.npc-modal-body{padding:2rem}.npc-modal-header{text-align:center;border-bottom:2px solid var(--gold);padding-bottom:1.5rem;margin-bottom:2rem}.npc-modal-header h2{color:var(--gold);font-size:2.5rem;margin:0 0 .5rem;text-shadow:0 0 10px rgba(212,175,55,.5)}.npc-modal-subtitle{color:#ccc;font-size:1.1rem;font-style:italic}.npc-modal-section{margin-bottom:2rem;padding:1.5rem;background:rgba(0,0,0,.3);border-left:3px solid var(--gold);border-radius:4px}.npc-modal-section h3{color:var(--gold);font-size:1.5rem;margin:0 0 1rem;text-transform:uppercase;letter-spacing:1px}.npc-modal-section p,.npc-modal-section li{color:#e0e0e0;line-height:1.8;font-size:1.05rem}.npc-attributes{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1rem}.attribute-box{background:rgba(212,175,55,.1);border:2px solid var(--gold);border-radius:8px;padding:1rem;text-align:center;transition:all .2s ease}.attribute-box:hover{background:rgba(212,175,55,.2);transform:scale(1.05)}.attribute-label{display:block;color:var(--gold);font-size:.9rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:.5rem}.attribute-value{display:block;color:#fff;font-size:2rem;font-weight:700}.npc-competencies{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.competency-tag{background:rgba(212,175,55,.2);border:1px solid var(--gold);color:var(--gold);padding:.5rem 1rem;border-radius:20px;font-size:.9rem;transition:all .2s ease}.competency-tag:hover{background:var(--gold);color:var(--dark-bg)}.npc-talents-list{list-style:none;padding:0;margin-top:1rem}.npc-talents-list li{background:rgba(0,0,0,.3);padding:.75rem 1rem;margin-bottom:.5rem;border-left:3px solid rgba(212,175,55,.5);border-radius:4px}.combat-stats-section{background:rgba(139,0,0,.1);border-left-color:#8b0000}.combat-stats-section h3{color:#ff6b6b}.wound-track{margin:1rem 0;padding:1rem;background:rgba(0,0,0,.5);border-radius:4px}.wound-track h4{color:var(--gold);margin:0 0 1rem;font-size:1.1rem}.wound-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.wound-location{display:flex;align-items:center;gap:.75rem}.location-label{color:var(--gold);font-weight:700;min-width:60px;font-size:.95rem}.wound-boxes{display:flex;gap:.25rem}.wound-box{display:inline-block;width:24px;height:24px;border:2px solid var(--gold);background:rgba(212,175,55,.1);text-align:center;line-height:20px;font-size:1.2rem;border-radius:2px}.stat-line{padding:.75rem 0;border-bottom:1px solid rgba(212,175,55,.2)}.stat-line:last-child{border-bottom:none}.stat-line strong{color:var(--gold);margin-right:.5rem}.special-ability{background:rgba(212,175,55,.1);padding:1rem;border-radius:4px;border:1px solid var(--gold);margin-top:1rem}.secrets-section{background:rgba(139,0,0,.2);border-left-color:#8b0000}.secrets-section h3{color:#ff6b6b}.secrets-section ul{list-style:none;padding:0}.secrets-section li{padding:.75rem;margin-bottom:.5rem;background:rgba(0,0,0,.4);border-left:3px solid #8b0000;border-radius:4px}.quotes-section blockquote{background:rgba(0,0,0,.4);border-left:4px solid var(--gold);padding:1rem 1.5rem;margin:.5rem 0;font-style:italic;color:#f0f0f0;border-radius:4px;position:relative}.quotes-section blockquote:before{content:'"';position:absolute;left:.5rem;top:-.5rem;font-size:3rem;color:var(--gold);opacity:.3}@media (max-width: 768px){.npc-modal-overlay{padding:1rem}.npc-modal-content{max-height:95vh}.npc-modal-body{padding:1rem}.npc-modal-header h2{font-size:1.8rem}.npc-attributes,.wound-grid{grid-template-columns:1fr}.modal-nav-btn{width:40px;height:40px;font-size:1.5rem}.modal-navigation{gap:1rem}}@media print{.npc-modal-overlay{display:none!important}.npc-click-hint{display:none}}@media (max-width: 768px){button,.clickable-image,[role=button]{min-height:44px;min-width:44px}.header-actions{flex-direction:column;width:100%}.back-button,.print-button,.download-pdf-button{width:100%;justify-content:center}.module-title{font-size:clamp(1.5rem,6vw,2.5rem)}.module-header,.module-viewer,.module-section{padding:1rem}.image-modal-overlay{padding:.5rem}.image-modal-header{padding:1rem;flex-direction:column;align-items:flex-start}.image-download-btn{width:100%;justify-content:center}.collapsible-header{font-size:1.3rem}}@media (min-width: 769px) and (max-width: 1024px){.module-viewer{padding:1.5rem}.module-title{font-size:2.5rem}}.back-to-top{position:fixed;bottom:2rem;right:2rem;width:50px;height:50px;background:var(--gold-bright, #ffeb3b);color:var(--bg-dark, #0a0a0a);border:2px solid var(--gold-bright, #ffeb3b);border-radius:50%;font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1000;opacity:.9;transition:all .3s ease;box-shadow:0 4px 12px #ffeb3b4d;animation:fadeInUp .3s ease}.back-to-top:hover{opacity:1;transform:translateY(-3px);box-shadow:0 6px 20px #ffeb3b80}.back-to-top:active{transform:translateY(-1px);box-shadow:0 3px 8px #ffeb3b66}.back-to-top:focus-visible{outline:3px solid var(--focus-color, #ffeb3b);outline-offset:3px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:.9;transform:translateY(0)}}.pdf-progress-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease}.pdf-progress-content{background:var(--bg-darker, #1a1a1a);border:2px solid var(--gold-bright, #ffeb3b);border-radius:12px;padding:2rem 3rem;text-align:center;box-shadow:0 10px 40px #00000080}.pdf-progress-spinner{width:50px;height:50px;border:4px solid var(--border-color, #333);border-top-color:var(--gold-bright, #ffeb3b);border-radius:50%;margin:0 auto 1rem;animation:spin .8s linear infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pdf-progress-content p{margin:0;color:var(--text-primary, #f0f0f0);font-size:1.1rem;font-weight:500}@media (max-width: 768px){.back-to-top{bottom:1rem;right:1rem;width:44px;height:44px;font-size:1.3rem}.pdf-progress-content{padding:1.5rem 2rem;margin:0 1rem}}.terms-page{min-height:100vh;background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);padding:2rem 1rem}.terms-container{max-width:900px;margin:0 auto;background:rgba(0,0,0,.6);border:2px solid var(--gold, #d4af37);border-radius:8px;padding:3rem;box-shadow:0 8px 32px #000c}.back-button{background:transparent;border:1px solid var(--gold, #d4af37);color:var(--gold, #d4af37);padding:.5rem 1rem;border-radius:4px;cursor:pointer;margin-bottom:2rem;font-size:.9rem;transition:all .3s ease}.back-button:hover{background:var(--gold, #d4af37);color:#000}.terms-header{text-align:center;border-bottom:2px solid var(--gold, #d4af37);padding-bottom:2rem;margin-bottom:3rem}.terms-header h1{color:var(--gold, #d4af37);font-size:3rem;margin:0 0 .5rem;text-shadow:0 0 20px rgba(212,175,55,.5)}.terms-subtitle{color:#ccc;font-size:1.3rem;margin:.5rem 0;font-style:italic}.copyright{color:#888;font-size:.9rem;margin-top:1rem}.terms-content{color:#e0e0e0;line-height:1.8}.terms-intro{margin-bottom:3rem;padding:1.5rem;background:rgba(212,175,55,.05);border-left:4px solid var(--gold, #d4af37);border-radius:4px}.terms-intro p{margin:.75rem 0;font-size:1.05rem}.terms-section{margin-bottom:3rem;padding:2rem;background:rgba(0,0,0,.3);border-radius:8px;border:1px solid rgba(212,175,55,.2)}.terms-section h2{color:var(--gold, #d4af37);font-size:1.8rem;margin:0 0 1.5rem;text-transform:uppercase;letter-spacing:2px;border-bottom:1px solid rgba(212,175,55,.3);padding-bottom:.5rem}.terms-section p{margin:1rem 0;font-size:1.05rem}.terms-section ul{margin:1rem 0;padding-left:2rem}.terms-section li{margin:.75rem 0;font-size:1.05rem}.terms-section strong{color:var(--gold, #d4af37);font-weight:600}.attribution-box,.info-box,.contact-box{background:rgba(0,0,0,.5);border:2px solid var(--gold, #d4af37);border-radius:8px;padding:1.5rem;margin:1.5rem 0}.attribution-box h4,.info-box h4,.contact-box h4{color:var(--gold, #d4af37);margin:0 0 1rem;font-size:1.1rem}.attribution-box blockquote{margin:0;padding:1rem;background:rgba(212,175,55,.1);border-left:4px solid var(--gold, #d4af37);font-style:italic;color:#f0f0f0;font-family:Georgia,serif}.info-box ul{margin:0;padding-left:1.5rem}.contact-box p{margin:.5rem 0;font-size:1rem}.contact-box a{color:var(--gold, #d4af37);text-decoration:none;transition:all .3s ease}.contact-box a:hover{color:#fff;text-shadow:0 0 10px rgba(212,175,55,.5)}.warning{background:rgba(220,38,38,.1);border-left:4px solid #dc2626;padding:1rem;margin:1.5rem 0;border-radius:4px;color:#fca5a5}.commercial-section{border:2px solid #dc2626;background:rgba(139,0,0,.1)}.commercial-section h2{color:#ff6b6b;border-bottom-color:#dc2626}.trademark-list{columns:2;-webkit-columns:2;-moz-columns:2}.revocation-section{border:2px solid #dc2626;background:rgba(139,0,0,.15)}.revocation-section h2{color:#ff6b6b}.contact-section{background:rgba(212,175,55,.05);border:2px solid var(--gold, #d4af37)}.contact-info{padding:1rem;background:rgba(0,0,0,.3);border-radius:4px;margin-top:1rem}.contact-info p{margin:.75rem 0}.contact-info a{color:var(--gold, #d4af37);text-decoration:none;transition:all .3s ease}.contact-info a:hover{color:#fff;text-shadow:0 0 10px rgba(212,175,55,.5)}.terms-footer{text-align:center;margin-top:3rem;padding-top:2rem;border-top:2px solid rgba(212,175,55,.3);color:#888;font-size:.9rem}.terms-footer p{margin:.5rem 0}@media (max-width: 768px){.terms-container{padding:2rem 1.5rem}.terms-header h1{font-size:2rem}.terms-subtitle{font-size:1.1rem}.terms-section{padding:1.5rem}.terms-section h2{font-size:1.4rem}.trademark-list{columns:1;-webkit-columns:1;-moz-columns:1}.attribution-box,.info-box,.contact-box{padding:1rem}}@media print{.terms-page{background:white}.terms-container{background:white;border:1px solid #000;box-shadow:none}.back-button{display:none}.terms-header h1,.terms-section h2{color:#000;text-shadow:none}.terms-content,.terms-section p,.terms-section li{color:#000}.attribution-box,.info-box,.contact-box,.warning{background:#f5f5f5;border-color:#000}a{color:#000;text-decoration:underline}}main{margin:0 auto;max-width:90%;padding:50px 30px}@media (max-width: 768px){main{max-width:100%;padding:20px 15px}}:root{--noir-black: #0a0a0a;--noir-charcoal: #1a1a1a;--noir-ash: #2d2d2d;--noir-smoke: #4a4a4a;--noir-fog: #5a5a5a;--blood-red: #8b0000;--blood-red-light: #a01a1a;--mystic-purple: #4a2c5e;--mystic-purple-light: #6b4487;--brass: #b8860b;--brass-light: #d4a574;--verdigris: #2c5f4f;--verdigris-light: #3d5a4a;--primary: var(--brass);--secondary: var(--noir-ash);--tertiary: var(--blood-red);--light: #e8e8e8;--dark: var(--noir-charcoal);--darker: var(--noir-black);--alpha: rgba(232, 232, 232, .8);--error: var(--blood-red-light);--text-primary: #e8e8e8;--text-secondary: #c0c0c0;--text-tertiary: #999999;--text-muted: #6a6a6a;--gold-bright: var(--brass-light);--gold-standard: var(--brass);--gold-dark: #8b6914;--fog-overlay: rgba(200, 200, 210, .03);--shadow-light: rgba(0, 0, 0, .3);--shadow-medium: rgba(0, 0, 0, .5);--shadow-heavy: rgba(0, 0, 0, .8);--glow-occult: rgba(75, 44, 94, .4);--glow-danger: rgba(139, 0, 0, .3);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--spacing-one: var(--space-sm);--spacing-two: var(--space-md);--spacing-five: 2.5rem;--focus-color: var(--brass-light);--focus-width: 2px;--focus-offset: 2px}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;padding:0 0 0 250px;font-weight:400;line-height:1.6;font-size:clamp(16px,1.125rem,18px);letter-spacing:.02em;background:var(--noir-black);background-image:radial-gradient(ellipse at top,rgba(75,44,94,.08) 0%,transparent 50%),url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIj48ZmlsdGVyIGlkPSJhIj48ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iLjc1IiBzdGl0Y2hUaWxlcz0ic3RpdGNoIi8+PGZlQ29sb3JNYXRyaXggdHlwZT0ic2F0dXJhdGUiIHZhbHVlcz0iMCIvPjwvZmlsdGVyPjxwYXRoIGZpbHRlcj0idXJsKCNhKSIgb3BhY2l0eT0iLjA1IiBkPSJNMCAwaDMwMHYzMDBIMHoiLz48L3N2Zz4=);color:var(--text-primary);font-family:Courier Prime,Courier New,monospace;overflow-x:hidden}@media (max-width: 768px){body{padding-left:0}}*:focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:var(--focus-width) solid var(--focus-color);outline-offset:var(--focus-offset)}*:focus:not(:focus-visible){outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}h1,h2,h3,h4,h5,h6{font-family:Bebas Neue,Oswald,Impact,sans-serif;font-weight:700;margin:5px 0;line-height:1.2;letter-spacing:.05em;text-transform:uppercase}h1{font-size:5rem;margin:50px 20px;text-shadow:3px 3px 0px var(--shadow-heavy),5px 5px 20px var(--glow-occult);color:var(--text-primary)}@media (max-width: 768px){h1{font-size:2.5rem;margin:20px 10px}h2{font-size:1.75rem}h3{font-size:1.5rem}}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{font-size:1.25rem;margin:20px 0;line-height:2rem}a{color:var(--light);text-decoration:none;opacity:.5}a:hover{opacity:1;transition:all .2s ease-in-out}header{background:var(--dark)}header a{color:var(--light)}button{font-size:1rem;font-weight:600;text-decoration:none;border-radius:2px;border:1px solid var(--noir-smoke);color:var(--text-primary);outline:none;cursor:pointer;margin:0 1px;background:linear-gradient(180deg,var(--noir-ash) 0%,var(--noir-charcoal) 100%);padding:10px 15px;opacity:.9;box-shadow:0 2px 4px var(--shadow-medium),inset 0 1px #ffffff1a;transition:all .2s ease;text-transform:uppercase;letter-spacing:.05em;font-family:Bebas Neue,Oswald,sans-serif}button:hover{opacity:1;background:linear-gradient(180deg,var(--noir-smoke) 0%,var(--noir-ash) 100%);border-color:var(--brass);box-shadow:0 4px 8px var(--shadow-medium),0 0 12px var(--glow-occult),inset 0 1px #ffffff26}button[disabled]{cursor:default;opacity:.8}img{max-width:100%}span[role=img]{cursor:default}form{width:40%}input{margin:10px 0;font-size:1rem;padding:.5rem;width:600px;border:1px solid var(--noir-smoke);outline:none;border-radius:2px;transition:all .2s;background:var(--noir-charcoal);color:var(--text-primary);font-family:Courier Prime,Courier New,monospace;box-shadow:inset 0 2px 4px var(--shadow-light)}input:focus{border:1px solid var(--brass);box-shadow:inset 0 2px 4px var(--shadow-light),0 0 8px var(--glow-occult);background:var(--noir-ash)}label{margin-right:10px}li{list-style:none}header{height:200px;position:relative;overflow:hidden;z-index:2}header h1{position:relative;z-index:2;text-align:center}header img{z-index:0;position:absolute;top:0;left:0;height:auto;opacity:.75}nav:not(.items-nav):not(.rules-nav):not(.lore-nav){position:fixed;left:0;top:0;height:100vh;width:250px;font-family:Bebas Neue,Oswald,sans-serif;font-size:1.5rem;margin:0;padding:2rem 1rem;background:linear-gradient(180deg,var(--noir-black) 0%,var(--noir-charcoal) 100%);border-right:2px solid var(--brass);box-shadow:inset -20px 0 40px var(--shadow-heavy),4px 0 12px var(--shadow-heavy);overflow-y:auto;z-index:1000}nav:not(.items-nav):not(.rules-nav):not(.lore-nav) ul{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;margin:0;padding:0;list-style:none}nav:not(.items-nav):not(.rules-nav):not(.lore-nav) a:hover{text-decoration:none}nav:not(.items-nav):not(.rules-nav):not(.lore-nav) li{cursor:pointer;text-shadow:2px 2px 10px rgba(0,0,0,.5);margin:.75rem 0;list-style:none;text-align:left;width:100%}ul.skills{line-height:2rem}ul.skills li{list-style-type:circle}footer{font-size:48px;justify-content:center;flex-wrap:wrap;gap:10px}.footer-links{width:100%;text-align:center;margin-bottom:10px}.footer-link{color:var(--gold);text-decoration:none;font-size:14px;opacity:.8;transition:all .3s ease;font-family:inherit}.footer-link:hover{opacity:1;text-shadow:0 0 10px rgba(212,175,55,.5)}footer a{color:var(--light);opacity:.5;margin:10px 20px;transition:all .3s ease-in-out}footer a:hover{opacity:1}textarea{width:600px;height:200px;border:3px solid #cccccc;padding:5px;margin-top:10px}.container{width:85%;max-width:1200px;margin-left:auto;margin-right:auto}.flex-row{display:flex;flex-wrap:wrap;align-items:center}.space-between{justify-content:space-between}.search-container{position:relative;margin-left:0;margin-bottom:1.5rem;flex-shrink:0;width:100%;order:-2}.search-input{padding:.5rem 1rem;background:var(--noir-charcoal);border:1px solid var(--noir-smoke);border-radius:2px;color:var(--text-primary);font-size:.9rem;font-family:Courier Prime,Courier New,monospace;width:100%;transition:all .3s ease;box-shadow:inset 0 2px 4px var(--shadow-light)}.search-input:focus{width:100%;background:var(--noir-ash);border-color:var(--brass);box-shadow:inset 0 2px 4px var(--shadow-light),0 0 12px var(--glow-occult);outline:none}.search-input::placeholder{color:var(--alpha)}.search-section{position:relative}.search-results{position:absolute;top:100%;left:0;right:0;margin-top:.5rem;background:var(--dark);border:2px solid var(--primary);border-radius:8px;width:100%;max-height:400px;overflow-y:auto;z-index:1000;box-shadow:0 8px 16px #00000080}.search-result-item{padding:1rem;border-bottom:1px solid rgba(184,134,11,.25);cursor:pointer;transition:background .2s ease}.search-result-item:hover{background:rgba(184,134,11,.25)}.search-result-item:last-child{border-bottom:none}.search-result-item.no-results{cursor:default;text-align:center;color:var(--alpha)}.search-result-item.no-results:hover{background:transparent}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.result-title{font-size:1.1rem;font-weight:700;color:var(--primary)}.result-type{font-size:.85rem;color:var(--alpha);background:rgba(184,134,11,.25);padding:.25rem .75rem;border-radius:12px}.result-description{font-size:.9rem;color:var(--alpha);line-height:1.4;margin:0}.auth-container{margin-left:0;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:2px solid rgba(184,134,11,.35);display:flex;flex-direction:column;align-items:stretch;flex-shrink:0;width:100%;order:-1}.auth-buttons{display:flex;flex-direction:column;gap:.75rem;align-items:stretch;width:100%}.btn-auth{padding:.6rem 1rem;background:rgba(184,134,11,.25);border:2px solid var(--primary);border-radius:6px;color:var(--light);font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .3s ease;white-space:nowrap;width:100%}.btn-auth:hover{background:var(--primary);color:var(--dark);box-shadow:0 4px 8px #b8860b59;transform:translateY(-2px)}.btn-signup{background:var(--primary);color:var(--dark)}.btn-signup:hover{background:var(--light);border-color:var(--light)}.user-menu{display:flex;flex-direction:column;align-items:stretch;gap:.75rem;width:100%}.btn-campaign{background:var(--secondary);border-color:var(--secondary)}.btn-discord{background:linear-gradient(135deg,#5865F2 0%,#7289DA 100%);border-color:#5865f2;color:#fff;font-weight:700;position:relative;overflow:hidden}.btn-discord:before{content:"🎮 ";margin-right:.25rem}.btn-discord:hover{background:linear-gradient(135deg,#7289DA 0%,#5865F2 100%);border-color:#7289da;color:#fff;box-shadow:0 4px 12px #5865f280}@media only screen and (max-width: 600px){.btn-discord{font-size:.8rem;padding:.5rem .75rem}.btn-discord:before{margin-right:.15rem}}.btn-campaign:hover{background:var(--tertiary);border-color:var(--tertiary)}.username{color:var(--secondary);font-weight:600;font-size:1rem;text-align:center;padding:.5rem;background:rgba(237,174,73,.1);border-radius:6px}.auth-modal{max-width:450px;width:90%}.auth-form{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.5rem}.auth-form .form-group{display:flex;flex-direction:column}.auth-form .form-group label{color:var(--light);font-weight:600;margin-bottom:.5rem;font-size:.95rem}.auth-form .form-group input{padding:.75rem;background:rgba(0,0,0,.3);border:2px solid rgba(184,134,11,.5);border-radius:6px;color:var(--light);font-size:1rem;font-family:inherit;transition:all .3s ease}.auth-form .form-group input:focus{border-color:var(--primary);background:rgba(0,0,0,.5);outline:none;box-shadow:0 0 8px #b8860b59}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{width:100%;padding-right:3rem}.toggle-password{position:absolute;right:.5rem;background:transparent;border:none;color:var(--alpha);font-size:1.25rem;cursor:pointer;padding:.5rem;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.toggle-password:hover{color:var(--light);transform:scale(1.1)}.auth-error{background:rgba(177,39,4,.2);border:2px solid var(--tertiary);border-radius:6px;padding:.75rem;color:var(--tertiary);font-size:.95rem;text-align:center;margin:-.5rem 0}.auth-submit{padding:.875rem;font-size:1.05rem;font-weight:600;margin-top:.5rem}.auth-toggle{text-align:center;margin-top:.5rem}.auth-toggle p{color:var(--alpha);font-size:.95rem;margin:0}.btn-link{background:none;border:none;color:var(--primary);font-weight:600;cursor:pointer;text-decoration:underline;font-size:inherit;font-family:inherit;padding:0;transition:color .2s ease}.btn-link:hover{color:var(--light)}.campaign-modal{max-width:550px;width:90%}.campaign-modal.join-modal{max-width:400px}.campaign-form{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.5rem}.campaign-form .form-group{display:flex;flex-direction:column}.campaign-form label{color:var(--primary);font-weight:600;margin-bottom:.5rem;font-size:.95rem}.campaign-form input,.campaign-form textarea{padding:.75rem;border:2px solid var(--alpha);background:var(--dark);color:var(--light);border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .2s ease}.campaign-form input:focus,.campaign-form textarea:focus{outline:none;border-color:var(--primary)}.campaign-form textarea{resize:vertical;min-height:100px}.invite-code-display{text-align:center;padding:1.5rem 0}.invite-code-display h4{color:var(--secondary);margin-bottom:1rem}.invite-code-display p{color:var(--alpha);margin-bottom:1.5rem}.invite-code-box{background:rgba(237,174,73,.1);border:2px solid var(--secondary);border-radius:8px;padding:1.5rem;margin:1.5rem 0;display:flex;align-items:center;justify-content:center;gap:1rem}.invite-code{font-size:2rem;font-weight:700;color:var(--secondary);letter-spacing:4px;font-family:Courier New,monospace}.btn-copy{background:var(--secondary);color:var(--dark);border:none;padding:.5rem 1.5rem;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-copy:hover{background:var(--tertiary);transform:translateY(-2px)}.btn-submit{background:var(--primary);color:var(--dark);border:2px solid var(--primary);padding:.75rem 1.5rem;border-radius:6px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease;margin-top:.5rem}.btn-submit:hover{background:var(--light);border-color:var(--light);transform:translateY(-2px)}.campaigns-list-modal{max-width:700px;width:90%;max-height:80vh;overflow-y:auto}.no-campaigns{text-align:center;color:var(--alpha);padding:2rem;font-size:1.1rem}.campaigns-list{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.campaign-item{background:rgba(237,174,73,.05);border:2px solid var(--alpha);border-radius:8px;padding:1.25rem;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.campaign-item:hover{border-color:var(--secondary);background:rgba(237,174,73,.1);transform:translateY(-2px)}.campaign-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.campaign-item-header h4{margin:0;color:var(--primary);font-size:1.3rem}.role-badge{padding:.35rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.role-badge.gm{background:var(--secondary);color:var(--dark)}.role-badge.player{background:var(--primary);color:var(--dark)}.campaign-item-info{display:flex;gap:.75rem;align-items:center;color:var(--alpha);font-size:.95rem;margin-bottom:.5rem}.campaign-item-description{color:var(--light);font-size:.95rem;margin:.75rem 0 0;line-height:1.4}.campaign-detail-container{padding:2rem;max-width:1200px;margin:0 auto}.campaign-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}.campaign-header h1{flex:1;color:var(--primary);margin:0}.btn-back{background:var(--alpha);color:var(--light);border:2px solid var(--alpha);padding:.5rem 1.25rem;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-back:hover{background:var(--light);color:var(--dark);border-color:var(--light)}.campaign-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.info-card{background:rgba(237,174,73,.05);border:2px solid var(--alpha);border-radius:8px;padding:1.5rem}.info-card h3{color:var(--secondary);margin:0 0 1rem;font-size:1.3rem}.info-row{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.1)}.info-row:last-child{border-bottom:none}.info-row .label{color:var(--alpha);font-weight:600}.info-row .value{color:var(--light);font-weight:500}.info-row .value.status{text-transform:capitalize;color:var(--secondary)}.info-row .value.invite-code{font-family:Courier New,monospace;letter-spacing:2px;font-size:1.1rem;color:var(--secondary)}.description-card p{color:var(--light);line-height:1.6;margin:0}.participants-section{margin:2.5rem 0}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{color:var(--primary);margin:0}.btn-assign-character{background:var(--secondary);color:var(--dark);border:2px solid var(--secondary);padding:.6rem 1.25rem;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-assign-character:hover{background:var(--tertiary);border-color:var(--tertiary);transform:translateY(-2px)}.gm-card{background:rgba(237,174,73,.1);border:2px solid var(--secondary);border-radius:8px;padding:1.25rem;text-align:center}.gm-name{color:var(--secondary);font-size:1.3rem;font-weight:700}.no-players{text-align:center;color:var(--alpha);padding:2rem;font-size:1.1rem}.players-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.player-card{background:rgba(255,255,255,.05);border:2px solid var(--alpha);border-radius:8px;padding:1.25rem;transition:all .2s ease}.player-card:hover{border-color:var(--primary);transform:translateY(-2px)}.player-info{display:flex;flex-direction:column;gap:.5rem}.player-name{color:var(--primary);font-size:1.1rem;font-weight:700}.character-name{color:var(--light);font-size:.95rem}.no-character{color:var(--alpha);font-style:italic;font-size:.9rem}.sessions-section{margin:2.5rem 0}.sessions-section h2{color:var(--primary);margin-bottom:1.5rem}.sessions-list{display:flex;flex-direction:column;gap:1rem}.session-card{background:rgba(255,255,255,.05);border:2px solid var(--alpha);border-radius:8px;padding:1.25rem}.session-date{color:var(--secondary);font-weight:600;font-size:1.05rem}.session-summary{color:var(--light);margin:.5rem 0 0;line-height:1.5}.assign-character-modal{max-width:500px;width:90%}.assign-character-form{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.5rem}.assign-character-form label{color:var(--primary);font-weight:600;font-size:1rem}.character-select{padding:.75rem;border:2px solid var(--alpha);background:var(--dark);color:var(--light);border-radius:6px;font-size:1rem;font-family:inherit;cursor:pointer;transition:border-color .2s ease}.character-select:focus{outline:none;border-color:var(--primary)}.character-select option{background:var(--dark);color:var(--light);padding:.5rem}.search-results::-webkit-scrollbar{width:8px}.search-results::-webkit-scrollbar-track{background:rgba(0,0,0,.3);border-radius:4px}.search-results::-webkit-scrollbar-thumb{background:var(--primary);border-radius:4px}.search-results::-webkit-scrollbar-thumb:hover{background:rgba(184,134,11,.8)}.flex-end{justify-content:flex-end}.flex-center{justify-content:center}.mx-1{margin-right:var(--spacing-one);margin-left:var(--spacing-one)}.mx-2{margin-right:var(--spacing-two);margin-left:var(--spacing-two)}.my-1{margin-top:var(--spacing-one);margin-bottom:var(--spacing-one)}.my-2{margin-top:var(--spacing-two);margin-bottom:var(--spacing-two)}.my-5{margin-top:var(--spacing-five);margin-bottom:var(--spacing-five)}.px-1{padding-right:var(--spacing-one);padding-left:var(--spacing-one)}.px-2{padding-right:var(--spacing-two);padding-left:var(--spacing-two)}.py-1{padding-top:var(--spacing-one);padding-bottom:var(--spacing-one)}.py-2{padding-top:var(--spacing-two);padding-bottom:var(--spacing-two)}.card{width:25%;text-align:center;background:linear-gradient(135deg,var(--noir-charcoal) 0%,var(--noir-ash) 100%);border:1px solid var(--noir-smoke);border-left:3px solid var(--brass);border-radius:2px;padding:1.5rem;box-shadow:4px 4px 12px var(--shadow-heavy),inset 0 1px #ffffff0d;transition:all .3s ease;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--brass),transparent);opacity:.3}.card:hover{transform:translateY(-4px);border-left-color:var(--blood-red);box-shadow:6px 6px 20px var(--shadow-heavy),0 0 20px var(--glow-occult),inset 0 1px #ffffff1a}.project{position:relative;width:100%;max-width:500px;height:300px;margin:30px}.project-bg{position:relative;width:100%;height:100%}.project-text{color:var(--secondary);position:absolute;top:0;bottom:0;left:0;right:0;padding:50px;z-index:900;opacity:0;transition:all .5s ease-in-out}#profilePic{max-height:250px;max-width:auto}#aboutMe{display:flex;flex-direction:row}.project-text:hover{background-color:var(--alpha);opacity:1;border:10px solid var(--secondary)}.project-text h3{font-size:2.5rem}.project-text a{text-decoration:none;font-weight:700;color:var(--dark);transition:all .3s ease-in-out}.project-text a:hover{color:var(--darker)}.navActive{color:var(--secondary);cursor:default;text-shadow:3px 3px 15px rgba(255,255,255,.5)}.about-header{text-align:center;margin-bottom:3rem;padding:2rem;background:rgba(184,134,11,.15);border-radius:8px;border:2px solid var(--primary)}.about-header h2{font-size:3rem;color:var(--primary);margin-bottom:1rem}.subtitle{font-size:1.5rem;color:var(--alpha);font-style:italic}.about-content{max-width:900px;margin:0 auto}.about-description{background:rgba(255,255,255,.05);padding:2rem;border-radius:8px;margin-top:2rem;border-left:4px solid var(--primary)}.about-description h3{color:var(--primary);margin-top:2rem;margin-bottom:1rem;font-size:1.8rem}.about-description h3:first-child{margin-top:0}.about-description ul{list-style-position:inside;margin-left:1rem}.about-description li{margin-bottom:1rem;line-height:1.8}.version-info{text-align:center;margin-top:2rem;padding-top:2rem;border-top:2px solid var(--secondary);color:var(--alpha)}.lore-container{max-width:1200px;margin:0 auto}.lore-section{margin-bottom:3rem;padding:2rem;background:rgba(255,255,255,.05);border-radius:8px;border-left:4px solid var(--primary)}.lore-section h3{color:var(--primary);margin-bottom:1.5rem;font-size:2rem}.lore-content p{margin-bottom:1rem;line-height:1.8}.lore-description{font-style:italic;color:var(--alpha)}.organizations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-top:2rem}.organization-card{background:rgba(0,0,0,.3);padding:1.5rem;border-radius:8px;border:2px solid var(--secondary);transition:all .3s ease;text-align:left}.org-button{width:100%;cursor:pointer;color:var(--light);font-family:inherit;font-size:inherit;position:relative}.organization-card:hover{transform:translateY(-5px);border-color:var(--primary);box-shadow:0 5px 20px #b8860b59}.organization-card h4{color:var(--primary);margin-bottom:1rem}.org-role{font-weight:700;margin-bottom:.5rem;color:var(--secondary)}.org-tone{color:var(--alpha);margin-bottom:1rem;font-style:italic}.click-hint{margin-top:1rem;color:var(--primary);font-size:.9rem;font-weight:700;text-align:center}.org-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.9);display:flex;justify-content:center;align-items:center;z-index:2000;padding:2rem;overflow-y:auto}.org-modal-content{background:var(--darker);border:3px solid var(--primary);border-radius:12px;max-width:1000px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 10px 50px #b8860b80}.org-modal-close{position:sticky;top:1rem;right:1rem;float:right;background:var(--tertiary);color:var(--light);border:none;font-size:2rem;width:40px;height:40px;border-radius:50%;cursor:pointer;transition:all .3s ease;z-index:10;line-height:1}.org-modal-close:hover{background:var(--primary);transform:rotate(90deg)}.org-modal-header{padding:2rem;border-bottom:2px solid var(--primary);background:rgba(184,134,11,.15)}.org-modal-header h2{color:var(--primary);font-size:2.5rem;margin-bottom:.5rem}.org-modal-motto{font-size:1.3rem;font-style:italic;color:var(--secondary);margin:1rem 0}.org-modal-founded{color:var(--alpha);font-size:.95rem}.org-modal-body{padding:2rem}.org-modal-section{margin-bottom:2.5rem}.org-modal-section h3{color:var(--primary);font-size:1.8rem;margin-bottom:1rem;border-bottom:2px solid var(--secondary);padding-bottom:.5rem}.org-modal-section p{line-height:1.8;margin-bottom:1rem}.org-philosophy-list,.org-methods-list,.org-locations-list,.org-secrets-list{list-style:none;padding:0}.org-philosophy-list li,.org-methods-list li,.org-locations-list li{padding:.75rem;margin-bottom:.5rem;background:rgba(255,255,255,.05);border-left:3px solid var(--primary);border-radius:4px}.org-secrets-list li{padding:.75rem;margin-bottom:.5rem;background:rgba(178,34,34,.2);border-left:3px solid var(--tertiary);border-radius:4px;color:#f99}.org-structure-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-top:1rem}.org-structure-item{background:rgba(184,134,11,.15);padding:1rem;border-radius:6px;border:1px solid var(--primary)}.org-structure-item h4{color:var(--secondary);margin-bottom:.5rem;font-size:1.1rem}.org-structure-item p{font-size:.95rem;line-height:1.6;margin:0}.org-npcs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1rem}.org-npc-card{background:rgba(0,0,0,.4);padding:1.5rem;border-radius:8px;border:2px solid var(--secondary);transition:all .3s ease}.org-npc-card:hover{border-color:var(--primary);transform:translateY(-3px)}.org-npc-card h4{color:var(--primary);margin-bottom:.5rem;font-size:1.3rem}.npc-role{color:var(--secondary);font-weight:700;margin-bottom:.75rem;font-size:.95rem}.npc-description{line-height:1.7;color:var(--alpha)}.org-secrets-section{background:rgba(139,0,0,.15);padding:1.5rem;border-radius:8px;border:2px solid var(--tertiary)}.secrets-warning{color:#f66;font-size:1.1rem;margin-bottom:1rem;text-align:center}.org-gm-notes{background:rgba(184,134,11,.1);padding:1.5rem;border-radius:8px;border:2px solid var(--primary)}.org-gm-notes p{margin-bottom:1.5rem}.org-gm-notes p:last-child{margin-bottom:0}.org-gm-notes strong{color:var(--primary)}.lore-menu button.classified-btn{background:rgba(178,34,34,.2);border:2px solid #dc2626;color:#f99;font-family:Courier New,monospace}.lore-menu button.classified-btn:hover{background:rgba(178,34,34,.3);border-color:#dc2626;box-shadow:0 0 10px #dc262666}.lore-menu button.classified-btn.active{background:#dc2626;border-color:#dc2626;color:#fff}.classified-modal{background:linear-gradient(135deg,#1a0000 0%,#0a0a0a 100%);border:3px solid #dc2626;max-width:600px;animation:classifiedPulse 2s ease-in-out infinite}@keyframes classifiedPulse{0%,to{box-shadow:0 0 20px #dc262666}50%{box-shadow:0 0 40px #dc262699}}.classified-modal-body{text-align:center;padding:2rem}.classified-icon{font-size:4rem;margin-bottom:1rem;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.classified-modal h2{color:#dc2626;font-size:2rem;margin-bottom:1rem;letter-spacing:4px;font-family:Courier New,monospace;text-shadow:0 0 10px rgba(220,38,38,.5)}.classified-message{color:#e5e5e5;font-size:1.1rem;margin-bottom:1rem;line-height:1.6}.classified-submessage{color:#a8a8a8;margin-bottom:1.5rem;font-family:Courier New,monospace}.clearance-level{color:#dc2626;font-weight:700;padding:.25rem .75rem;background:rgba(220,38,38,.1);border:1px solid #dc2626;border-radius:4px;letter-spacing:2px}.classified-note{color:#888;font-size:.95rem;font-style:italic;margin-bottom:1.5rem;line-height:1.6}.classified-warning{color:#f66;font-size:1rem;margin-bottom:2rem;padding:1rem;background:rgba(220,38,38,.15);border:1px solid #dc2626;border-radius:4px}.classified-warning strong{color:#dc2626}.classified-btn{background:#dc2626!important;border-color:#dc2626!important;color:#fff!important;padding:.75rem 2rem;font-family:Courier New,monospace;letter-spacing:2px;text-transform:uppercase}.classified-btn:hover{background:#b91c1c!important;border-color:#b91c1c!important;box-shadow:0 0 20px #dc262699}.classified-header{margin-bottom:2rem}.classified-warning-banner{background:linear-gradient(135deg,#1a0000 0%,#330000 100%);border:2px solid #dc2626;padding:1rem;text-align:center;border-radius:6px;margin-top:1rem;animation:bannerPulse 2s ease-in-out infinite}@keyframes bannerPulse{0%,to{box-shadow:0 0 15px #dc26264d}50%{box-shadow:0 0 25px #dc262680}}.classified-warning-banner span{color:#dc2626;font-family:Courier New,monospace;font-weight:700;letter-spacing:3px;font-size:1.1rem}.pillars-grid{display:grid;gap:1.5rem;margin-top:2rem}.pillar-card{background:rgba(0,0,0,.4);border:2px solid var(--secondary);border-radius:8px;overflow:hidden;transition:all .3s ease}.pillar-card:hover{border-color:var(--primary);box-shadow:0 5px 20px #b8860b4d}.pillar-header{background:rgba(184,134,11,.15);padding:1.5rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--secondary);transition:all .3s ease}.pillar-header:hover{background:rgba(184,134,11,.25)}.pillar-header h4{color:var(--primary);margin:0;font-size:1.5rem}.expand-icon{color:var(--primary);font-size:2rem;font-weight:700;line-height:1}.pillar-content{padding:2rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.pillar-core{font-size:1.1rem;color:var(--secondary);font-style:italic;margin-bottom:1.5rem;padding:1rem;background:rgba(184,134,11,.1);border-left:4px solid var(--primary);border-radius:4px}.pillar-subsection{margin-bottom:1.5rem}.pillar-subsection h5{color:var(--primary);font-size:1.2rem;margin-bottom:.75rem;border-bottom:1px solid var(--secondary);padding-bottom:.5rem}.pillar-subsection p{line-height:1.8;margin-bottom:0}.secrets-subsection,.connections-subsection{background:rgba(178,34,34,.1);padding:1rem;border-radius:6px;border:1px solid #dc2626}.secrets-list,.story-hooks-list,.connections-list{list-style:none;padding:0;margin:0}.secrets-list li,.story-hooks-list li,.connections-list li{padding:.75rem;margin-bottom:.5rem;background:rgba(255,255,255,.05);border-left:3px solid var(--primary);border-radius:4px;line-height:1.6}.secrets-subsection .secrets-list li{background:rgba(220,38,38,.1);border-left-color:#dc2626;color:#f99}.connections-subsection .connections-list li{background:rgba(184,134,11,.1);border-left-color:var(--primary)}.gm-final-notes{margin-top:3rem;padding:2rem;background:rgba(184,134,11,.15);border:2px solid var(--primary);border-radius:8px}.gm-final-notes h4{color:var(--primary);font-size:1.5rem;margin-bottom:1rem}.gm-final-notes p{line-height:1.8;margin-bottom:1rem}.gm-final-notes p:last-child{margin-bottom:0}.front-detail{margin-bottom:1.5rem;padding:1rem;background:rgba(0,0,0,.2);border-left:3px solid var(--secondary);border-radius:4px}.front-detail h6{color:var(--secondary);font-size:1.1rem;margin-bottom:.5rem}.front-detail p{margin-bottom:.75rem}.front-detail:last-child{margin-bottom:0}.mandate-detail{margin-bottom:2rem;padding:1.5rem;background:rgba(184,134,11,.1);border:2px solid var(--primary);border-radius:6px}.mandate-detail h6{color:var(--primary);font-size:1.2rem;margin-bottom:.75rem}.mandate-detail p{margin-bottom:.75rem;line-height:1.7}.mandate-detail p:last-child{margin-bottom:0}.mandate-detail em{color:var(--secondary);font-size:1.05rem}.lore-container{display:flex;gap:2rem;max-width:1400px;margin:0 auto;width:100%}.lore-nav{flex-shrink:0;width:250px;position:sticky;top:20px;height:fit-content}.lore-nav h3{color:var(--primary);margin-bottom:1rem}.lore-menu{list-style:none;padding:0}.lore-menu li{margin-bottom:.5rem}.lore-menu button{width:100%;text-align:left;padding:.75rem 1rem;background:rgba(255,255,255,.05);border:2px solid transparent;color:var(--light);cursor:pointer;border-radius:4px;transition:all .3s ease;font-size:1rem}.lore-menu button:hover{background:rgba(255,255,255,.1);border-color:var(--primary)}.lore-menu button.active{background:var(--primary);border-color:var(--primary)}.lore-content{flex:1;min-width:0;background:rgba(255,255,255,.05);padding:2rem;border-radius:8px;overflow-x:hidden}.lore-subsection{margin-top:2rem;padding:1.5rem;background:rgba(0,0,0,.2);border-radius:4px}.lore-subsection h4{color:var(--primary);margin-bottom:1rem}.lore-description{font-size:1.1rem;line-height:1.8;margin-bottom:2rem}.emphasis-text{color:var(--secondary);font-size:1.2rem;margin-top:1.5rem;text-align:center}.rules-container{display:flex;gap:2rem;max-width:1400px;margin:0 auto;width:100%}.rules-nav{flex-shrink:0;width:250px;position:sticky;top:20px;height:fit-content}.rules-nav h3{color:var(--primary);margin-bottom:1rem}.rules-menu{list-style:none;padding:0}.rules-menu li{margin-bottom:.5rem}.rules-menu button{width:100%;text-align:left;padding:.75rem 1rem;background:rgba(255,255,255,.05);border:2px solid transparent;color:var(--light);cursor:pointer;border-radius:4px;transition:all .3s ease;font-size:1rem}.rules-menu button:hover{background:rgba(255,255,255,.1);border-color:var(--primary)}.rules-menu button.active{background:var(--primary);border-color:var(--primary)}.rules-content{flex:1;min-width:0;background:rgba(255,255,255,.05);padding:2rem;border-radius:8px;overflow-x:hidden}.rules-subsection{margin-top:2rem;padding:1.5rem;background:rgba(0,0,0,.2);border-radius:4px}.rules-subsection h4,.rules-subsection h5{color:var(--primary);margin-bottom:1rem}.rules-description{font-size:1.1rem;line-height:1.8;margin-bottom:2rem}.rules-note{font-style:italic;color:var(--alpha);margin-top:1rem}.attribute-card{border-left:3px solid var(--primary)}.example-box{background:rgba(184,134,11,.15);border:2px solid var(--primary)}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;margin-top:1.5rem}.class-card{background:rgba(0,0,0,.3);padding:1.5rem;border-radius:6px;border:2px solid var(--secondary);transition:all .3s ease}.class-card:hover{border-color:var(--primary);transform:translateY(-3px)}.class-card h4{color:var(--primary);margin-bottom:.5rem}.class-die{color:var(--secondary);font-weight:700}.archetype-table,.wounds-table,.mini-table,.items-table{width:100%;margin-top:1rem;border-collapse:collapse}.archetype-table th,.archetype-table td,.wounds-table th,.wounds-table td,.mini-table th,.mini-table td,.items-table th,.items-table td{padding:.75rem;border:1px solid var(--secondary);text-align:left}.archetype-table th,.wounds-table th,.mini-table th,.items-table th{background:var(--primary);color:var(--light)}.archetype-table tr:nth-child(2n),.wounds-table tr:nth-child(2n),.items-table tr:nth-child(2n){background:rgba(255,255,255,.03)}.bloodline-section{margin-top:2rem;padding:2rem;background:rgba(184,134,11,.1);border-radius:8px;border:2px solid var(--primary)}.bloodline-section h4{color:var(--primary);font-size:1.8rem;margin-bottom:1rem}.bloodline-passive{background:rgba(255,255,255,.1);padding:.75rem;border-radius:4px;margin:1rem 0}.branch-card{background:rgba(0,0,0,.2);padding:1.5rem;margin-top:1.5rem;border-radius:6px;border-left:3px solid var(--secondary)}.branch-card h5{color:var(--secondary);font-size:1.4rem}.level-power{margin:1rem 0;padding-left:1rem}.passive-ability,.signature-ability{color:var(--primary)}.drawback{color:var(--tertiary);font-style:italic;margin-top:1rem;padding:.75rem;background:rgba(177,39,4,.1);border-radius:4px}.backgrounds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;margin-top:2rem}.background-card{background:rgba(0,0,0,.3);padding:1.5rem;border-radius:8px;border:2px solid var(--secondary)}.background-card h4{color:var(--primary);margin-bottom:1rem}.bg-level{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--secondary)}.talent-card{background:rgba(0,0,0,.2);padding:1.5rem;margin-top:1rem;border-radius:6px;border-left:3px solid var(--primary)}.talent-card h5{color:var(--primary);margin-bottom:.75rem}.rank-info{margin:.5rem 0;padding:.5rem;background:rgba(255,255,255,.05);border-radius:4px}.advancement-info{margin-top:1.5rem}.combat-action-card{background:rgba(0,0,0,.2);padding:1.5rem;margin-top:1rem;border-radius:6px;border-left:3px solid var(--secondary)}.combat-action-card h4{color:var(--secondary);margin-bottom:1rem}.severity-card{background:rgba(0,0,0,.3);padding:1rem;margin-top:1rem;border-radius:4px;border-left:3px solid var(--tertiary)}.severity-card h5{color:var(--tertiary)}.formula-text{font-size:1.3rem;font-weight:700;color:var(--primary);text-align:center;padding:1rem;background:rgba(184,134,11,.15);border-radius:4px}.character-sheet-container{max-width:1600px;margin:0 auto;padding:1rem}.sheet-controls{display:flex;gap:1rem;margin-bottom:2rem;flex-wrap:wrap;align-items:center}.save-message{color:var(--secondary);font-weight:700;font-size:1rem;padding:.5rem 1rem;background:rgba(237,174,73,.2);border-radius:4px}.auto-save-status,.draft-save-status{display:flex;align-items:center;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:600}.draft-save-status{background-color:#fbbf241a;border:1px solid rgba(251,191,36,.3)}.status-saving{color:#3b82f6;display:flex;align-items:center;gap:.5rem}.status-saved{color:#10b981}.status-draft{color:#fbbf24;font-size:.85rem;font-weight:400}.status-error{color:#ef4444}.status-auto{color:#6b7280;font-size:.85rem;font-weight:400}.spinner{width:12px;height:12px;border:2px solid rgba(59,130,246,.3);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--darker);padding:2rem}.error-boundary-content{max-width:600px;background:rgba(255,255,255,.05);border:2px solid rgba(239,68,68,.5);border-radius:12px;padding:3rem;text-align:center}.error-boundary-content h1{color:#ef4444;margin:0 0 1rem;font-size:2.5rem}.error-message{color:#aaa;font-size:1.1rem;margin-bottom:2rem}.error-details{text-align:left;background:rgba(0,0,0,.3);padding:1rem;border-radius:8px;margin-bottom:2rem;border:1px solid rgba(255,255,255,.1)}.error-details summary{cursor:pointer;color:#fbbf24;font-weight:600;margin-bottom:.5rem}.error-details summary:hover{color:#f59e0b}.error-stack{color:#ef4444;font-size:.85rem;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word;margin:1rem 0 0}.error-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.error-actions button{padding:.75rem 2rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease}.floating-dice-btn{position:fixed;bottom:2rem;left:2rem;width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;color:#fff;font-size:2rem;cursor:pointer;box-shadow:0 8px 24px #667eea80;transition:all .3s ease;z-index:1000;display:flex;align-items:center;justify-content:center}.floating-dice-btn:hover{transform:translateY(-4px) rotate(15deg);box-shadow:0 12px 32px #667eea99}.floating-dice-btn:active{transform:translateY(-2px) rotate(15deg)}@media (max-width: 768px){.floating-dice-btn{bottom:1rem;right:1rem;width:56px;height:56px;font-size:1.75rem}}.btn-primary,.btn-secondary,.btn-add{padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:700;transition:all .3s ease}.btn-small{padding:.5rem 1rem;font-size:.9rem}.btn-danger{background:var(--tertiary);color:var(--light);border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:700;transition:all .3s ease}.btn-danger:hover{background:#c72704}.btn-primary{background:var(--primary);color:var(--light)}.btn-primary:hover{background:#7342cc}.btn-secondary{background:var(--secondary);color:var(--light)}.btn-secondary:hover{background:#454952}.btn-add{background:rgba(184,134,11,.25);color:var(--primary);border:2px solid var(--primary);padding:.5rem 1rem;font-size:.9rem}.btn-add:hover{background:var(--primary);color:var(--light)}.btn-remove{background:var(--tertiary);color:var(--light);border:none;border-radius:50%;width:24px;height:24px;cursor:pointer;font-weight:700;margin-left:1rem}.btn-remove:hover{background:#d62e05}.sheet-section{background:rgba(255,255,255,.05);padding:1rem 1.5rem;margin-bottom:1rem;border-radius:4px;border-left:3px solid var(--primary)}.sheet-section h3{color:var(--primary);margin-bottom:1rem;font-size:1.3rem}.campaigns-list{display:flex;flex-wrap:wrap;gap:.75rem}.campaign-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:rgba(102,126,234,.1);border:1px solid rgba(102,126,234,.3);border-radius:20px;transition:all .2s ease}.campaign-badge:hover{background:rgba(102,126,234,.15);border-color:#667eea80}.campaign-name{color:#fff;font-weight:600;font-size:.9rem}.campaign-status{padding:.15rem .5rem;border-radius:10px;font-size:.75rem;font-weight:700;text-transform:uppercase}.campaign-status.status-planning{background:rgba(59,130,246,.2);color:#3b82f6}.campaign-status.status-active{background:rgba(16,185,129,.2);color:#10b981}.campaign-status.status-completed{background:rgba(156,163,175,.2);color:#9ca3af}.campaign-status.status-on-hold{background:rgba(245,158,11,.2);color:#f59e0b}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:.35rem;color:var(--alpha);font-weight:700;font-size:.9rem}.form-group input,.form-group select,textarea{padding:.5rem .75rem;background:rgba(0,0,0,.3);border:1px solid var(--secondary);border-radius:2px;color:var(--light);font-size:.95rem}.form-group input:focus,.form-group select:focus,textarea:focus{outline:none;border-color:var(--primary)}.attributes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.attribute-box{text-align:center;padding:1rem;background:rgba(0,0,0,.3);border-radius:4px;border:2px solid var(--secondary)}.attribute-box label{display:block;color:var(--primary);font-weight:700;margin-bottom:.35rem;font-size:1rem;text-transform:uppercase;letter-spacing:.05em}.attribute-box input{width:100%;padding:.4rem;text-align:center;font-size:1.3rem;font-weight:700}.modifier{margin-top:.35rem;color:var(--alpha);font-size:.9rem}.attribute-note{margin-top:1rem;font-size:1.1rem;color:var(--primary);text-align:center}.wounds-tracker{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.wound-location{background:rgba(0,0,0,.3);padding:.75rem;border-radius:4px;border:1px solid var(--secondary)}.wound-location h4{color:var(--primary);margin-bottom:.5rem;text-align:center;text-transform:capitalize;font-size:.95rem}.wound-boxes{display:flex;flex-direction:column;gap:.5rem}.wound-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer}.wound-checkbox input[type=checkbox]{width:20px;height:20px;cursor:pointer}.item-list{list-style:none;padding:0;margin-top:1rem}.item-list li{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;margin-bottom:.4rem;background:rgba(0,0,0,.3);border-radius:2px;border-left:2px solid var(--primary)}textarea{width:100%;min-height:150px;font-family:inherit;resize:vertical}.items-container{max-width:1200px;margin:0 auto;width:100%}.items-nav{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;border-bottom:2px solid var(--secondary);padding-bottom:1rem;position:relative;z-index:1;align-items:center}.items-nav button{padding:.75rem 1.5rem;background:rgba(255,255,255,.05);border:2px solid transparent;color:var(--light);cursor:pointer;border-radius:4px;transition:all .3s ease;font-size:1rem;white-space:nowrap;flex-shrink:0}.items-nav button:hover{background:rgba(255,255,255,.1);border-color:var(--primary)}.items-nav button.active{background:var(--primary);border-color:var(--primary);font-weight:700}.items-content{width:100%;overflow-x:auto}.items-section{margin-bottom:3rem}.items-section h3{color:var(--primary);font-size:2rem;margin-bottom:1.5rem;margin-top:0}.items-section h4{color:var(--secondary);margin-top:2rem;margin-bottom:1rem;font-size:1.5rem}.items-section h5{color:var(--light);margin:.5rem 0;font-size:1.1rem}.items-section ul{margin-left:1.5rem;line-height:1.8}.items-section table{margin-bottom:2rem}.section-note{font-style:italic;color:var(--alpha);margin-bottom:1rem;font-size:.95rem}.reference-box{background:rgba(184,134,11,.15);padding:1.5rem;border-radius:8px;margin-top:2rem;border:2px solid var(--primary)}.armor-grid,.equipment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;margin-top:1.5rem}.armor-card,.equipment-card{background:rgba(0,0,0,.3);padding:1.5rem;border-radius:6px;border:2px solid var(--secondary);transition:all .3s ease}.armor-card:hover,.equipment-card:hover{border-color:var(--primary);transform:translateY(-3px)}.armor-card h4,.equipment-card h5{color:var(--primary);margin-bottom:.75rem}.armor-protection{color:var(--secondary);font-weight:700;margin-bottom:.5rem}.equipment-category{margin-top:2rem}.equipment-category h4{color:var(--primary);margin-bottom:1rem}.item-notes{font-size:.9rem;color:var(--alpha);margin-top:.5rem}.item-price{color:var(--secondary);font-weight:700;margin-bottom:.5rem}@media only screen and (max-width: 1300px){body{padding-left:220px}nav:not(.items-nav):not(.rules-nav):not(.lore-nav){width:220px;font-size:1.3rem;padding:1.5rem .75rem}header h1{display:block;height:30px}.rules-container{flex-direction:column}.rules-nav{width:100%;position:static}.rules-menu{display:flex;flex-wrap:wrap;gap:.5rem}.lore-container{flex-direction:column}.lore-nav{width:100%;position:static}.lore-menu{display:flex;flex-wrap:wrap;gap:.5rem}.rules-menu li{margin:0}.rules-menu button{width:auto}.items-nav{gap:.75rem;flex-direction:row}.items-nav button{font-size:.9rem;padding:.6rem 1.2rem}.armor-grid,.equipment-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media only screen and (max-width: 1024px){body{padding-left:200px}nav:not(.items-nav):not(.rules-nav):not(.lore-nav){width:200px;font-size:1.2rem;padding:1rem .5rem}.rules-container{gap:1.5rem}.rules-content{padding:1.5rem}.lore-container{gap:1.5rem}.lore-content{padding:1.5rem}.search-input{font-size:.85rem}.btn-auth{font-size:.85rem;padding:.5rem .75rem}.items-nav{flex-direction:row}.items-table{font-size:.9rem}.items-table th,.items-table td{padding:.5rem}}@media only screen and (max-width: 900px){body{padding-left:0}nav:not(.items-nav):not(.rules-nav):not(.lore-nav){position:fixed;top:0;left:0;right:0;width:100%;height:auto;border-right:none;border-bottom:2px solid var(--primary);padding:1rem;font-size:1.1rem;z-index:1000;background:rgba(0,0,0,.9)}nav:not(.items-nav):not(.rules-nav):not(.lore-nav) ul{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem}nav:not(.items-nav):not(.rules-nav):not(.lore-nav) ul li{width:auto;text-align:center;margin:0}nav:not(.items-nav):not(.rules-nav):not(.lore-nav) a{padding:.5rem .75rem;display:inline-block}main{margin-left:0;padding-top:200px}.container{margin-left:auto;width:90%}.rules-container{gap:1rem}.rules-content{padding:1rem}.lore-container{gap:1rem}.lore-content{padding:1rem}.search-container{width:100%;order:-2;margin-bottom:1rem}.auth-container{width:100%;order:-1;margin-bottom:1rem;padding-bottom:1rem}.auth-buttons{flex-direction:row;justify-content:center}.btn-auth{flex:1;max-width:200px}.user-menu{flex-direction:row;justify-content:center;align-items:center}header h1{display:block;margin:5px 10px;height:15px;width:100%;text-align:center;font-size:2.3rem}.organizations-grid,.classes-grid,.backgrounds-grid,.form-grid{grid-template-columns:1fr}.attributes-grid{grid-template-columns:repeat(2,1fr)}.wounds-tracker,.boons-grid{grid-template-columns:1fr}.items-nav button{font-size:.85rem;padding:.5rem 1rem}.armor-grid,.equipment-grid{grid-template-columns:1fr}.items-table{font-size:.85rem}}@media only screen and (max-width: 600px){nav:not(.items-nav):not(.rules-nav):not(.lore-nav){position:fixed;top:0;left:0;right:0;width:100%;height:auto;min-height:auto;max-height:auto;overflow-y:visible;overflow-x:hidden;font-size:.85rem;padding:.75rem .5rem;z-index:1000;border-right:none;border-bottom:2px solid var(--primary);box-sizing:border-box}nav:not(.items-nav):not(.rules-nav):not(.lore-nav) ul{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem;padding:0;margin:0;width:100%;box-sizing:border-box}nav:not(.items-nav):not(.rules-nav):not(.lore-nav) li:not(.search-container):not(.auth-container){order:0;margin:0;box-sizing:border-box}nav:not(.items-nav):not(.rules-nav):not(.lore-nav) a{padding:.4rem .6rem;display:inline-block;text-align:center;font-size:.85rem;box-sizing:border-box}.auth-container{width:100%;margin:.5rem 0 0;padding:.5rem .25rem 0;border-top:1px solid rgba(184,134,11,.35);border-bottom:none;order:2;box-sizing:border-box}.search-container{width:100%;order:1;margin:.5rem 0;padding:0 .25rem;box-sizing:border-box}.search-input{font-size:.85rem;padding:.4rem;width:100%;box-sizing:border-box}.auth-buttons{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.35rem;padding:0;width:100%;box-sizing:border-box}.btn-auth{padding:.5rem .75rem;font-size:.8rem;width:auto;max-width:none;white-space:nowrap;flex:0 1 auto;box-sizing:border-box}.user-menu{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.35rem;width:100%;box-sizing:border-box}.username{width:100%;font-size:.85rem;padding:.3rem;margin-bottom:.25rem}.container{width:95%;margin-left:0;padding-top:0}main{margin-left:0;padding-top:180px;padding-left:10px;padding-right:10px}body{font-size:16px}p{font-size:1rem;line-height:1.6rem}button{min-height:44px;min-width:44px}header h1{font-size:1.8rem}.attributes-grid{grid-template-columns:1fr}}.boons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-top:1rem}.boon-card{background:rgba(184,134,11,.15);border:2px solid var(--primary);border-radius:8px;padding:1.5rem;transition:transform .2s ease,box-shadow .2s ease}.boon-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #b8860b59}.boon-card h5{color:var(--primary);margin-top:0;margin-bottom:.5rem;font-size:1.25rem}.boon-card p{margin:0;font-size:1rem;line-height:1.6;color:var(--alpha)}.npc-schema-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin:1.5rem 0}.schema-item{background:rgba(237,174,73,.05);border:2px solid var(--alpha);border-radius:8px;padding:1.25rem}.schema-item strong{color:var(--secondary);display:block;margin-bottom:.75rem;font-size:1.1rem}.schema-item ul{list-style:none;padding:0;margin:.5rem 0 0}.schema-item li{padding:.5rem 0;color:var(--light);border-bottom:1px solid rgba(255,255,255,.1)}.schema-item li:last-child{border-bottom:none}.npcs-list{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.npc-card{background:rgba(255,255,255,.03);border:2px solid var(--alpha);border-radius:8px;overflow:hidden;transition:all .2s ease}.npc-card:hover{border-color:var(--secondary)}.npc-header{padding:1.25rem;cursor:pointer;position:relative;background:rgba(237,174,73,.03)}.npc-header:hover{background:rgba(237,174,73,.08)}.npc-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.npc-title-row h5{margin:0;color:var(--primary);font-size:1.4rem}.tier-badge{padding:.35rem .75rem;border-radius:12px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.tier-badge.minion{background:#666;color:#fff}.tier-badge.standard{background:var(--primary);color:var(--dark)}.tier-badge.elite{background:var(--secondary);color:var(--dark)}.tier-badge.boss{background:#c41e3a;color:#fff}.npc-quick-info{display:flex;gap:.75rem;flex-wrap:wrap}.faction-tag,.role-tag{padding:.25rem .75rem;background:rgba(0,0,0,.3);border-radius:4px;font-size:.9rem;color:var(--alpha)}.faction-tag{border-left:3px solid var(--secondary)}.role-tag{border-left:3px solid var(--primary)}.expand-btn{position:absolute;top:1.25rem;right:1.25rem;width:32px;height:32px;border-radius:50%;background:var(--secondary);color:var(--dark);border:none;font-size:1.5rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.expand-btn:hover{background:var(--tertiary);transform:scale(1.1)}.npc-details{padding:1.5rem;background:rgba(0,0,0,.2);border-top:2px solid var(--alpha)}.npc-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.detail-section{background:rgba(255,255,255,.03);padding:1rem;border-radius:6px;border-left:3px solid var(--primary)}.detail-section.full-width{grid-column:1 / -1}.detail-section h6{margin:0 0 .75rem;color:var(--secondary);font-size:1.1rem;text-transform:uppercase;letter-spacing:1px}.detail-section p{margin:.5rem 0;color:var(--light);line-height:1.6}.attributes-display{display:flex;flex-direction:column;gap:.5rem}.attributes-display span{color:var(--light);padding:.5rem;background:rgba(237,174,73,.1);border-radius:4px}.tags-list{display:flex;flex-wrap:wrap;gap:.5rem}.tag{padding:.4rem .8rem;background:rgba(0,156,255,.2);border:1px solid rgba(0,156,255,.4);border-radius:4px;font-size:.9rem;color:var(--primary)}.boon-tag{background:rgba(237,174,73,.2);border-color:#edae4966;color:var(--secondary)}.talents-list{list-style:none;padding:0;margin:0}.talents-list li{padding:.5rem;margin-bottom:.5rem;background:rgba(0,0,0,.2);border-radius:4px;color:var(--light)}.notes-text,.tactics-text,.story-hooks-text{color:var(--alpha);font-style:italic;line-height:1.6;margin-top:.5rem}.tactics-text{color:var(--light);font-style:normal}.monster-schema-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin:1.5rem 0}.monster-filter{display:flex;align-items:center;gap:1rem;margin:1.5rem 0;padding:1rem;background:rgba(237,174,73,.05);border-radius:8px}.monster-filter label{color:var(--primary);font-weight:600}.category-filter-select{padding:.6rem 1rem;background:var(--dark);border:2px solid var(--alpha);color:var(--light);border-radius:6px;font-size:1rem;cursor:pointer;transition:border-color .2s ease}.category-filter-select:focus{outline:none;border-color:var(--primary)}.category-filter-select option{background:var(--dark);color:var(--light)}.monsters-list{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.monster-card{background:rgba(255,255,255,.03);border:2px solid var(--alpha);border-radius:8px;overflow:hidden;transition:all .2s ease}.monster-card:hover{border-color:#c41e3a}.monster-header{padding:1.25rem;cursor:pointer;position:relative;background:rgba(196,30,58,.05)}.monster-header:hover{background:rgba(196,30,58,.1)}.monster-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;flex-wrap:wrap;gap:.75rem}.monster-title-row h5{margin:0;color:#ff6b6b;font-size:1.5rem;flex:1}.monster-badges{display:flex;gap:.5rem;flex-wrap:wrap}.threat-badge{padding:.35rem .75rem;border-radius:12px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.threat-badge.minion{background:#888;color:#fff}.threat-badge.standard{background:#ff9800;color:var(--dark)}.threat-badge.elite{background:#c41e3a;color:#fff}.threat-badge.boss{background:#8b0000;color:#fff;box-shadow:0 0 10px #8b000080}.threat-badge.ancient{background:linear-gradient(135deg,#8b0000,#2c003e);color:#fff;box-shadow:0 0 15px #8b0000b3}.category-badge{padding:.35rem .75rem;background:rgba(0,0,0,.4);border:1px solid var(--alpha);border-radius:12px;font-size:.8rem;color:var(--secondary);text-transform:capitalize}.monster-origin{color:var(--alpha);font-style:italic;margin:.5rem 0 0;line-height:1.4;padding-right:3rem}.monster-details{padding:1.5rem;background:rgba(0,0,0,.3);border-top:2px solid var(--alpha)}.monster-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.abilities-list{display:flex;flex-direction:column;gap:1rem}.ability-item{background:rgba(196,30,58,.1);border-left:3px solid #c41e3a;padding:1rem;border-radius:6px}.ability-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}.ability-header strong{color:#ff6b6b;font-size:1.1rem}.ability-type{padding:.25rem .6rem;border-radius:8px;font-size:.75rem;font-weight:600;text-transform:uppercase}.ability-type.passive{background:rgba(0,156,255,.3);color:var(--primary)}.ability-type.active{background:rgba(237,174,73,.3);color:var(--secondary)}.ability-item p{color:var(--light);margin:0;line-height:1.6}.weaknesses-list{list-style:none;padding:0;margin:.5rem 0 0}.weaknesses-list li{padding:.75rem;margin-bottom:.5rem;background:rgba(237,174,73,.1);border-left:3px solid var(--secondary);border-radius:4px;color:var(--light)}.weaknesses-list li:last-child{margin-bottom:0}.attacks-list{display:flex;flex-direction:column;gap:1rem}.attack-item{background:rgba(0,0,0,.2);border-left:3px solid var(--primary);padding:1rem;border-radius:6px}.attack-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}.attack-header strong{color:var(--primary);font-size:1.1rem}.attack-range{padding:.25rem .6rem;background:rgba(0,156,255,.2);border-radius:8px;font-size:.8rem;color:var(--primary);text-transform:capitalize}.attack-item p{color:var(--light);margin:.25rem 0}.wound-notes{color:var(--alpha);font-style:italic;margin-top:.5rem}.boon-selector{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}.boon-category-select,.boon-select{padding:.75rem;background:rgba(0,0,0,.3);border:2px solid var(--primary);color:var(--light);border-radius:4px;font-size:1rem;cursor:pointer;font-family:inherit}.boon-category-select{flex:0 0 150px}.boon-select{flex:1;min-width:250px}.boon-category-select option,.boon-select option{background:var(--dark);color:var(--light)}.boon-list li{flex-direction:column;align-items:flex-start}.boon-item{width:100%;cursor:pointer;transition:all .2s ease}.boon-item:hover{transform:translate(4px)}.boon-item strong{color:var(--primary);font-size:1.1rem}.boon-item:hover strong{color:var(--light)}.boon-category{color:var(--alpha);font-size:.9rem;font-style:italic;text-transform:capitalize}.boon-item p{margin:.5rem 0 0;font-size:1rem;color:var(--alpha);line-height:1.5}.boon-list .btn-remove{align-self:flex-end;margin-top:-2rem}.talents-display{display:flex;flex-direction:column;gap:2rem;margin-top:1.5rem}.talent-detail-card{background:rgba(184,134,11,.1);border:2px solid var(--primary);border-radius:8px;padding:1.5rem}.talent-detail-card h4{color:var(--primary);margin-top:0;font-size:1.75rem}.talent-description{color:var(--light);margin:1rem 0;font-size:1.1rem}.talent-effects{margin-top:1rem}.talent-effects ul{margin-top:.5rem;padding-left:1.5rem}.talent-effects li{color:var(--alpha);margin-bottom:.5rem}.sub-talents{margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(184,134,11,.35)}.sub-talents>strong{color:var(--primary);font-size:1.2rem}.sub-talent-card{background:rgba(0,0,0,.3);border-left:3px solid var(--primary);padding:1rem;margin:1rem 0;border-radius:4px}.sub-talent-card h5{color:var(--light);margin-top:0;font-size:1.2rem}.sub-talent-card p{color:var(--alpha);margin:.5rem 0}.sub-talent-card ul{margin-top:.5rem;padding-left:1.5rem}.sub-talent-card li{color:var(--alpha);font-size:.95rem;margin-bottom:.3rem}.talent-selector{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}.talent-select{padding:.75rem;background:rgba(0,0,0,.3);border:2px solid var(--primary);color:var(--light);border-radius:4px;font-size:1rem;cursor:pointer;font-family:inherit;flex:1;min-width:250px}.talent-select option{background:var(--dark);color:var(--light)}.talent-list li{flex-direction:row;align-items:center;justify-content:space-between}.talent-item{display:flex;width:100%;justify-content:space-between;align-items:center}.talent-info{cursor:pointer;flex:1;transition:color .2s ease}.talent-info:hover{color:var(--primary)}.talent-info strong{color:var(--light);font-size:1.1rem}.talent-info:hover strong{color:var(--primary)}.talent-category{color:var(--alpha);font-size:.9rem;font-style:italic}.talent-controls{display:flex;gap:.5rem;align-items:center}.btn-applied{padding:.5rem 1rem;background:rgba(0,0,0,.3);border:2px solid var(--alpha);color:var(--alpha);border-radius:4px;cursor:pointer;font-family:inherit;font-size:.9rem;transition:all .3s ease}.btn-applied:hover{border-color:var(--primary);color:var(--primary)}.btn-applied.active{background:var(--primary);border-color:var(--primary);color:var(--light);font-weight:700}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;justify-content:center;align-items:center;z-index:2000}.modal-content{background:var(--dark);border:2px solid var(--primary);border-radius:12px;padding:2rem;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;position:relative;box-shadow:0 8px 32px #8c54ff66}.modal-close{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:var(--light);font-size:2rem;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease}.modal-close:hover{background:rgba(255,255,255,.1);color:var(--primary)}.modal-content h3{color:var(--primary);margin-top:0;font-size:2rem}.talent-modal-category{color:var(--alpha);font-style:italic;margin:.5rem 0 1rem;font-size:1rem}.talent-modal-description{color:var(--light);font-size:1.1rem;line-height:1.6;margin:1rem 0}.talent-modal-effects{margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(184,134,11,.35)}.talent-modal-effects h4{color:var(--primary);font-size:1.3rem;margin-bottom:.5rem}.talent-modal-effects ul{padding-left:1.5rem;margin:0}.talent-modal-effects li{color:var(--alpha);margin-bottom:.75rem;line-height:1.6}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:rgba(0,0,0,.3);border-radius:4px}.modal-content::-webkit-scrollbar-thumb{background:var(--primary);border-radius:4px}.modal-content::-webkit-scrollbar-thumb:hover{background:rgba(184,134,11,.8)}.equipment-modal-selector{margin-bottom:1.5rem}.equipment-modal-selector label{display:block;color:var(--primary);font-weight:700;margin-bottom:.5rem;font-size:1.1rem}.equipment-category-select,.equipment-item-select{width:100%;padding:.75rem;background:rgba(0,0,0,.3);border:2px solid var(--primary);color:var(--light);border-radius:4px;font-size:1rem;cursor:pointer;font-family:inherit}.equipment-category-select option,.equipment-item-select option{background:var(--dark);color:var(--light)}.equipment-modal-info{background:rgba(184,134,11,.15);border-left:3px solid var(--primary);padding:1rem;border-radius:4px;margin-top:1rem}.equipment-modal-info p{margin:0;color:var(--alpha);font-size:1rem;line-height:1.6}.equipment-modal-info strong{color:var(--primary)}.competency-list li{display:flex;justify-content:space-between;align-items:center}.competency-info{cursor:pointer;flex:1;transition:color .2s ease}.competency-info:hover{color:var(--primary)}.competency-info strong{color:var(--light);font-size:1.1rem}.competency-info:hover strong{color:var(--primary)}.competency-category{color:var(--alpha);font-size:.9rem;font-style:italic}.competency-select{width:100%;padding:.75rem;background:rgba(0,0,0,.3);border:2px solid var(--primary);color:var(--light);border-radius:4px;font-size:1rem;cursor:pointer;font-family:inherit}.competency-select option{background:var(--dark);color:var(--light)}.bloodline-select-btn{width:100%;padding:.75rem;background:rgba(184,134,11,.15);border:2px solid var(--primary);color:var(--light);border-radius:4px;font-size:1rem;cursor:pointer;font-family:inherit;transition:all .3s ease;text-align:left}.bloodline-select-btn:hover{background:rgba(184,134,11,.25);border-color:var(--light)}.bloodline-section{background:rgba(184,134,11,.1);border:2px solid var(--primary)}.bloodline-section h3{color:var(--primary);margin-top:0}.bloodline-drawback{background:rgba(177,39,4,.2);border-left:3px solid var(--tertiary);padding:1rem;margin-bottom:1.5rem;border-radius:4px}.bloodline-drawback h4{color:var(--tertiary);margin-top:0;font-size:1.2rem}.bloodline-drawback p{margin:.5rem 0 0;color:var(--alpha)}.bloodline-abilities h4,.bloodline-future h4{color:var(--primary);font-size:1.3rem;margin-bottom:1rem}.bloodline-ability{background:rgba(0,0,0,.3);border-left:2px solid var(--primary);padding:.65rem .85rem;margin-bottom:.5rem;border-radius:2px;transition:all .3s ease}.bloodline-ability.unlocked{border-left-color:var(--primary)}.bloodline-ability.locked{border-left-color:var(--alpha);opacity:.6}.ability-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem;flex-wrap:wrap;gap:.4rem}.ability-name{font-weight:700;color:var(--light);font-size:.95rem}.ability-type{background:rgba(184,134,11,.35);padding:.2rem .6rem;border-radius:10px;font-size:.75rem;color:var(--light);text-transform:capitalize}.ability-level{background:rgba(0,0,0,.4);padding:.2rem .6rem;border-radius:10px;font-size:.75rem;color:var(--alpha)}.ability-effect{margin:0;color:var(--alpha);line-height:1.5;font-size:.9rem}.bloodline-future{margin-top:1.5rem;padding-top:.75rem;border-top:1px solid rgba(184,134,11,.35)}.bloodline-future h4{color:var(--primary);font-size:1.1rem;margin-bottom:.75rem}.bloodline-modal{max-width:700px}.bloodline-category-select,.bloodline-branch-select{width:100%;padding:.75rem;background:rgba(0,0,0,.3);border:2px solid var(--primary);color:var(--light);border-radius:4px;font-size:1rem;cursor:pointer;font-family:inherit}.bloodline-category-select option,.bloodline-branch-select option{background:var(--dark);color:var(--light)}.bloodline-description{background:rgba(184,134,11,.15);padding:1rem;border-radius:4px;margin:1rem 0;border-left:3px solid var(--primary)}.bloodline-description h4{color:var(--primary);margin:.5rem 0;font-size:1.1rem}.bloodline-description p{margin:.5rem 0;color:var(--alpha);line-height:1.6}.bloodline-branch-details{background:rgba(0,0,0,.3);padding:1rem;border-radius:4px;margin-top:1rem}.bloodline-branch-details h4{color:var(--primary);margin-top:0}.bloodline-branch-details>p{color:var(--alpha);margin-bottom:1rem}.bloodline-drawback-preview{background:rgba(177,39,4,.2);border-left:3px solid var(--tertiary);padding:.75rem;margin:1rem 0;border-radius:4px}.bloodline-drawback-preview h5{color:var(--tertiary);margin:0 0 .5rem}.bloodline-drawback-preview p{margin:0;color:var(--alpha);font-size:.95rem}.bloodline-progression-preview{margin-top:1rem}.bloodline-progression-preview h5{color:var(--primary);margin-bottom:.75rem}.ability-preview{background:rgba(184,134,11,.15);padding:.75rem;margin-bottom:.75rem;border-radius:4px;border-left:3px solid var(--primary)}.ability-preview strong{color:var(--light);display:block;margin-bottom:.25rem}.ability-preview p{margin:0;color:var(--alpha);font-size:.9rem;line-height:1.5}.class-modal{max-width:700px}.class-select{width:100%;padding:.75rem;background:rgba(0,0,0,.3);border:2px solid var(--primary);color:var(--light);border-radius:4px;font-size:1rem;cursor:pointer;font-family:inherit}.class-select option{background:var(--dark);color:var(--light)}.class-modal-details{margin-top:1rem}.class-description{background:rgba(184,134,11,.15);padding:1rem;border-radius:4px;margin-bottom:1rem;border-left:3px solid var(--primary)}.class-description h4{color:var(--primary);margin:0 0 .5rem;font-size:1.1rem}.class-description p{margin:0 0 1rem;color:var(--alpha);line-height:1.6}.class-stats{display:flex;flex-direction:column;gap:.5rem}.class-stats p{margin:0;color:var(--alpha);font-size:.95rem}.class-stats strong{color:var(--light)}.class-progression-preview{background:rgba(0,0,0,.3);padding:1rem;border-radius:4px}.class-progression-preview h4{color:var(--primary);margin:0 0 .75rem}.progression-ability-preview{background:rgba(184,134,11,.15);padding:.75rem;margin-bottom:.75rem;border-radius:4px;border-left:3px solid var(--primary)}.progression-ability-preview strong{color:var(--light);display:block;margin-bottom:.25rem}.progression-ability-preview p{margin:0;color:var(--alpha);font-size:.9rem;line-height:1.5}.background-section{background:linear-gradient(135deg,rgba(237,174,73,.1),rgba(0,0,0,.2));border:2px solid var(--secondary);border-radius:8px;padding:1.5rem}.background-section h3{color:var(--secondary);margin:0 0 1rem;font-size:1.5rem}.background-info{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid rgba(237,174,73,.3)}.background-description{color:var(--alpha);font-size:1rem;line-height:1.6;margin-bottom:1rem}.background-perk{background:rgba(237,174,73,.1);padding:1rem;border-radius:4px;border-left:3px solid var(--secondary)}.background-perk h4{color:var(--secondary);margin:0 0 .5rem;font-size:1.1rem}.background-perk p{margin:0;color:var(--alpha);line-height:1.6}.background-abilities{margin-bottom:1.5rem}.background-abilities h4{color:var(--secondary);margin:0 0 1rem;font-size:1.2rem}.background-ability{background:rgba(0,0,0,.3);padding:1rem;margin-bottom:.75rem;border-radius:4px;border-left:3px solid var(--secondary);transition:all .3s ease}.background-ability.unlocked{border-left-color:var(--secondary);background:rgba(237,174,73,.1)}.background-ability.locked{opacity:.6;border-left-color:var(--alpha)}.background-future h4{color:var(--alpha);margin:1.5rem 0 1rem;font-size:1.2rem}.background-modal{max-width:700px}.background-select{width:100%;padding:.75rem;background:rgba(0,0,0,.3);border:2px solid var(--secondary);color:var(--light);border-radius:4px;font-size:1rem;cursor:pointer;font-family:inherit}.background-select option{background:var(--dark);color:var(--light)}.background-modal-details{margin-top:1rem}.background-modal-details .background-description{background:rgba(237,174,73,.1);padding:1rem;border-radius:4px;margin-bottom:1rem;border-left:3px solid var(--secondary)}.background-modal-details .background-description h4{color:var(--secondary);margin:0 0 .5rem;font-size:1.1rem}.background-modal-details .background-description p{margin:0 0 1rem;color:var(--alpha);line-height:1.6}.background-stats{display:flex;flex-direction:column;gap:.75rem}.background-stats p{margin:0;color:var(--alpha);font-size:.95rem}.background-stats strong{color:var(--light)}.starting-talents,.starting-perk{margin-top:.75rem;padding:.75rem;background:rgba(0,0,0,.2);border-radius:4px}.background-progression-preview{background:rgba(0,0,0,.3);padding:1rem;border-radius:4px;margin-top:1rem}.background-progression-preview h4{color:var(--secondary);margin:0 0 .75rem}.load-character-modal{max-width:600px;max-height:80vh;overflow-y:auto}.no-characters{text-align:center;color:var(--alpha);padding:2rem;font-size:1.1rem}.saved-characters-list{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.saved-character-item{background:rgba(184,134,11,.15);border:2px solid var(--primary);border-radius:8px;padding:1rem;display:flex;justify-content:space-between;align-items:center;transition:all .3s ease}.saved-character-item:hover{background:rgba(184,134,11,.25);box-shadow:0 4px 8px #b8860b59}.character-info{flex:1}.character-info h4{color:var(--primary);margin:0 0 .5rem;font-size:1.3rem}.character-info p{margin:.25rem 0;color:var(--alpha);font-size:.95rem}.character-date{font-size:.85rem;font-style:italic}.character-actions{display:flex;gap:.75rem;flex-shrink:0}.class-section{background:linear-gradient(135deg,rgba(184,134,11,.15),rgba(0,0,0,.2));border:2px solid var(--primary);border-radius:8px;padding:1.5rem}.class-section h3{color:var(--primary);margin:0 0 1rem;font-size:1.5rem}.class-info{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid rgba(184,134,11,.35)}.class-info p{margin:0;color:var(--alpha);font-size:1rem}.class-info strong{color:var(--light)}.class-abilities{margin-bottom:1.5rem}.class-abilities h4{color:var(--primary);margin:0 0 1rem;font-size:1.2rem}.class-ability{background:rgba(0,0,0,.3);padding:1rem;margin-bottom:.75rem;border-radius:4px;border-left:3px solid var(--primary);transition:all .3s ease}.class-ability.unlocked{border-left-color:var(--secondary);background:rgba(237,174,73,.1)}.class-ability.locked{opacity:.6;border-left-color:var(--alpha)}.class-ability .ability-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}.class-ability .ability-name{color:var(--light);font-weight:700;font-size:1.1rem}.class-ability .ability-type{background:var(--primary);color:var(--dark);padding:.25rem .75rem;border-radius:4px;font-size:.85rem;text-transform:uppercase;font-weight:700}.class-ability .ability-level{color:var(--secondary);font-weight:700;font-size:.9rem}.class-ability .ability-effect{margin:0;color:var(--alpha);line-height:1.6}.class-future h4{color:var(--alpha);margin:1.5rem 0 1rem;font-size:1.2rem}.classes-detailed{display:flex;flex-direction:column;gap:2rem;margin-top:2rem}.class-detail-card{background:rgba(184,134,11,.1);border:2px solid var(--primary);border-radius:8px;padding:1.5rem;transition:all .3s ease}.class-detail-card:hover{background:rgba(184,134,11,.15);box-shadow:0 4px 12px #b8860b40}.class-detail-card h4{color:var(--primary);margin:0 0 1rem;font-size:1.5rem}.class-detail-card .class-description{background:rgba(0,0,0,.3);padding:1rem;border-radius:4px;margin-bottom:1rem;border-left:3px solid var(--primary)}.class-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-bottom:1.5rem}.class-stat{background:rgba(0,0,0,.3);padding:.75rem;border-radius:4px;font-size:.95rem}.class-stat strong{color:var(--light);display:block;margin-bottom:.25rem}.class-progression{background:rgba(0,0,0,.3);padding:1rem;border-radius:4px}.class-progression h5{color:var(--primary);margin:0 0 1rem;font-size:1.2rem}.progression-ability{background:rgba(184,134,11,.15);padding:.75rem;margin-bottom:.75rem;border-radius:4px;border-left:3px solid var(--secondary)}.progression-ability:last-child{margin-bottom:0}.progression-ability .ability-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}.progression-ability .ability-name{color:var(--light);font-size:1.1rem}.progression-ability .ability-meta{display:flex;gap:.75rem;align-items:center}.progression-ability .ability-type{background:var(--primary);color:var(--dark);padding:.25rem .75rem;border-radius:4px;font-size:.85rem;text-transform:uppercase;font-weight:700}.progression-ability .ability-level{color:var(--secondary);font-weight:700;font-size:.9rem}.progression-ability .ability-effect{margin:0;color:var(--alpha);line-height:1.6;font-size:.95rem}.equipment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-top:1.5rem}.equipment-card{background:rgba(0,0,0,.4);border:2px solid var(--secondary);border-radius:8px;padding:1.5rem;transition:all .3s ease}.equipment-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #b8860b40}.weapon-card{border-left:4px solid var(--tertiary)}.item-card{border-left:4px solid var(--secondary)}.equipment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid rgba(255,255,255,.1)}.equipment-header strong{color:var(--primary);font-size:1.2rem}.btn-remove-card{background:transparent;border:2px solid var(--tertiary);color:var(--tertiary);width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-remove-card:hover{background:var(--tertiary);color:#fff}.weapon-stats{display:flex;flex-direction:column;gap:.75rem}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:rgba(255,255,255,.03);border-radius:4px}.stat-label{color:var(--text-secondary);font-weight:600;font-size:.9rem}.stat-value{color:var(--text-primary);font-weight:700}.weapon-strength .stat-value{color:var(--tertiary);font-size:1.3rem}.ammo-tracker{background:rgba(177,39,4,.1);border:2px solid rgba(177,39,4,.3);border-radius:6px;padding:1rem;margin-top:.5rem}.ammo-tracker label{display:block;color:var(--text-secondary);margin-bottom:.5rem;font-size:.9rem}.ammo-controls{display:flex;gap:.5rem;align-items:center}.btn-ammo{background:var(--secondary);border:none;color:#fff;width:32px;height:32px;border-radius:4px;cursor:pointer;font-size:1.2rem;font-weight:700;transition:all .2s ease}.btn-ammo:hover:not(:disabled){background:var(--primary)}.btn-ammo:disabled{opacity:.3;cursor:not-allowed}.ammo-input{width:60px;text-align:center;padding:.5rem;background:rgba(0,0,0,.5);border:2px solid var(--secondary);border-radius:4px;color:#fff;font-size:1rem;font-weight:700}.btn-reload{background:var(--tertiary);border:none;color:#fff;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-weight:700;flex:1;transition:all .2s ease}.btn-reload:hover{background:#d62e05;box-shadow:0 2px 8px #b1270466}.weapon-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.weapon-tag{background:rgba(184,134,11,.25);border:1px solid rgba(140,84,255,.4);color:var(--primary);padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:uppercase}.special-ability{background:rgba(255,235,59,.1);border-left:3px solid var(--gold-standard);padding:.75rem;margin-top:.5rem;border-radius:4px;font-size:.9rem}.special-ability strong{color:var(--gold-bright)}.weapon-notes{margin-top:.5rem;padding:.75rem;background:rgba(255,255,255,.05);border-radius:4px;font-size:.9rem;color:var(--text-tertiary);font-style:italic}.item-info{padding:.5rem 0}.item-price{color:var(--gold-standard);font-size:1.1rem;font-weight:700;margin-bottom:.5rem}.item-notes{color:var(--text-tertiary);font-size:.9rem;line-height:1.4}.empty-message{text-align:center;color:var(--text-tertiary);font-style:italic;padding:2rem;background:rgba(255,255,255,.03);border-radius:6px;margin-top:1rem}.armor-summary{display:flex;gap:2rem;padding:1.5rem;background:rgba(177,39,4,.15);border:2px solid rgba(177,39,4,.3);border-radius:8px;margin-bottom:1.5rem}.armor-stat{display:flex;flex-direction:column;gap:.5rem}.armor-stat strong{color:var(--text-secondary);font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.dr-value{color:var(--tertiary);font-size:2rem;font-weight:700}.penalty-value{color:var(--gold-standard);font-size:1.2rem;font-weight:700}.add-armor-controls{display:flex;gap:1rem;margin-bottom:1.5rem}.add-armor-controls select{flex:1}.armor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-top:1.5rem}.armor-card{background:rgba(0,0,0,.4);border:2px solid var(--secondary);border-left:4px solid var(--tertiary);border-radius:8px;padding:1.5rem;transition:all .3s ease}.armor-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #b8860b40}.armor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid rgba(255,255,255,.1)}.armor-header strong{color:var(--primary);font-size:1.2rem}.armor-stats{display:flex;flex-direction:column;gap:.75rem}.armor-dr .stat-value{color:var(--tertiary);font-size:1.3rem}.armor-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.armor-tag{background:rgba(177,39,4,.2);border:1px solid rgba(177,39,4,.4);color:var(--tertiary);padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:uppercase}.armor-notes{margin-top:.75rem;padding:.75rem;background:rgba(255,255,255,.05);border-radius:4px;font-size:.9rem;color:var(--text-tertiary);font-style:italic;line-height:1.4}.curse-warning{color:var(--tertiary);font-weight:700;margin-top:.5rem}.spell-browser-toggle{margin-bottom:1.5rem}.btn-toggle-browser{background:linear-gradient(135deg,var(--primary),var(--secondary));border:none;color:#fff;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:700;font-size:1rem;transition:all .3s ease}.btn-toggle-browser:hover{transform:translateY(-2px);box-shadow:0 4px 12px #b8860b59}.spell-browser{background:rgba(0,0,0,.3);border:2px solid var(--primary);border-radius:8px;padding:1.5rem;margin-bottom:2rem}.spell-browser-controls{margin-bottom:1.5rem}.spell-category-filter{width:100%;max-width:300px;padding:.75rem;background:rgba(0,0,0,.5);border:2px solid var(--secondary);border-radius:6px;color:#fff;font-size:1rem}.spell-library{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem;max-height:600px;overflow-y:auto;padding:1rem}.spell-browser-card{background:rgba(0,0,0,.5);border:2px solid rgba(184,134,11,.35);border-radius:8px;padding:1.25rem;transition:all .3s ease}.spell-browser-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #b8860b59;transform:translateY(-2px)}.spell-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.spell-card-header h4{color:var(--primary);margin:0;font-size:1.2rem}.btn-add-small{background:var(--tertiary);border:none;color:#fff;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-weight:700;font-size:.9rem;transition:all .2s ease}.btn-add-small:hover{background:#d62e05;box-shadow:0 2px 8px #b1270466}.spell-card-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.spell-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:uppercase}.spell-badge.category{background:rgba(184,134,11,.25);border:1px solid rgba(140,84,255,.4);color:var(--primary)}.spell-badge.type{background:rgba(255,215,0,.2);border:1px solid rgba(255,215,0,.4);color:var(--gold-bright)}.spell-badge.cost{background:rgba(177,39,4,.2);border:1px solid rgba(177,39,4,.4);color:var(--tertiary)}.spell-card-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:.75rem}.spell-stat{display:flex;flex-direction:column;gap:.25rem}.spell-stat .label{color:var(--text-secondary);font-size:.8rem;font-weight:700;text-transform:uppercase}.spell-stat .value{color:var(--text-primary);font-size:.95rem}.spell-card-effect{margin-top:.75rem;padding:.75rem;background:rgba(255,255,255,.05);border-radius:4px}.spell-card-effect strong{color:var(--gold-standard);display:block;margin-bottom:.5rem}.spell-card-effect p{margin:0;color:var(--text-primary);line-height:1.5}.spell-card-components{margin-top:.5rem;font-size:.9rem;color:var(--text-secondary)}.spell-card-notes{margin-top:.5rem;padding:.5rem;background:rgba(255,235,59,.1);border-left:3px solid var(--gold-standard);font-size:.9rem;color:var(--text-tertiary)}.known-spells-section{margin-top:2rem}.known-spells-section h4{color:var(--primary);margin-bottom:1rem;font-size:1.3rem}.known-spells-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.known-spell-card{background:rgba(0,0,0,.4);border:2px solid var(--secondary);border-left:4px solid var(--primary);border-radius:8px;padding:1rem;cursor:pointer;transition:all .3s ease}.known-spell-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #b8860b40;transform:translateY(-2px)}.known-spell-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.known-spell-header strong{color:var(--primary);font-size:1.1rem}.known-spell-quick-stats{display:flex;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.quick-stat{display:flex;align-items:center;gap:.25rem;color:var(--text-secondary);font-size:.9rem}.quick-stat .icon{font-size:1rem}.quick-stat.cost{color:var(--tertiary);font-weight:700}.known-spell-effect{color:var(--text-tertiary);font-size:.9rem;line-height:1.4;margin:0}.spell-click-hint{display:block;text-align:center;margin-top:.75rem;color:var(--text-secondary);font-size:.75rem;font-style:italic}
