body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--primary-black:#0f0f0f;--secondary-black:#1a1a1a;--accent-black:#2d2d2d;--primary-gold:#c9a961;--secondary-gold:#b8941f;--accent-gold:#ddbf5f;--light-gold:#e8d5a3;--metallic-gold:#d4c19c;--dark-gold:#a67c00;--text-primary:#fff;--text-secondary:#e8e8e8;--text-muted:#b8b8b8;--text-gold:var(--metallic-gold);--bg-primary:var(--primary-black);--bg-secondary:var(--secondary-black);--bg-accent:var(--accent-black);--border-gold:var(--metallic-gold);--shadow-gold:0 0 15px #d4c19c66;--shadow-dark:0 4px 8px #00000080;--gradient-gold:linear-gradient(135deg,#d4c19c,#c9a961 25%,#b8941f 50%,#c9a961 75%,#d4c19c);--gradient-gold-reverse:linear-gradient(315deg,#d4c19c,#c9a961 25%,#b8941f 50%,#c9a961 75%,#d4c19c);--gradient-black:linear-gradient(135deg,var(--primary-black),var(--secondary-black));--font-primary:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif;--font-fantasy:"Cinzel",serif;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-xxl:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--transition-fast:0.2s ease;--transition-normal:0.3s ease;--transition-slow:0.5s ease}::-webkit-scrollbar{height:12px;width:12px}::-webkit-scrollbar-track{background:#0f0f0f;background:var(--primary-black);border:1px solid #d4c19c1a;border-radius:6px}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#c9a961,#b8941f);background:linear-gradient(135deg,var(--primary-gold),var(--secondary-gold));border:1px solid #0f0f0f;border:1px solid var(--primary-black);border-radius:6px;box-shadow:0 2px 4px #0000004d,inset 0 1px 1px #fff3}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#b8941f,#ddbf5f);background:linear-gradient(135deg,var(--secondary-gold),var(--accent-gold));box-shadow:0 2px 6px #0006,0 0 8px #d4c19c4d,inset 0 1px 1px #ffffff4d}::-webkit-scrollbar-thumb:active{background:linear-gradient(135deg,#a67c00,#b8941f);background:linear-gradient(135deg,var(--dark-gold),var(--secondary-gold))}::-webkit-scrollbar-corner{background:#0f0f0f;background:var(--primary-black)}*{box-sizing:border-box;margin:0;padding:0;scrollbar-color:#c9a961 #0f0f0f;scrollbar-color:var(--primary-gold) var(--primary-black);scrollbar-width:thin}body{background:#0f0f0f;background:var(--bg-primary);background-image:radial-gradient(circle at 20% 50%,#d4c19c14 0,#0000 50%),radial-gradient(circle at 80% 20%,#c9a9610f 0,#0000 50%),radial-gradient(circle at 40% 80%,#b8941f0d 0,#0000 50%),radial-gradient(circle at 1px 1px,#ffffff05 1px,#0000 0);background-size:100% 100%,100% 100%,100% 100%,3px 3px;color:#fff;color:var(--text-primary);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-family:var(--font-primary);line-height:1.6;min-height:100vh}h1,h2,h3,h4,h5,h6{color:#d4c19c;color:var(--text-gold);font-weight:600;margin-bottom:1rem;margin-bottom:var(--spacing-md)}h1{font-size:2.5rem;text-shadow:2px 2px 4px #00000080}h1,h2{font-family:Cinzel,serif;font-family:var(--font-fantasy)}h2{font-size:2rem}h3{font-size:1.5rem}p{color:#e8e8e8;color:var(--text-secondary);margin-bottom:1rem;margin-bottom:var(--spacing-md)}.container{margin:0 auto;padding:0 1rem;padding:0 var(--spacing-md)}.dashboard-container{background-image:url(/static/media/BlackBackground.cf5d340faace3ea39f25.avif);background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #d4c19c4d;box-shadow:0 0 20px #d4c19c26,0 8px 32px #0006,inset 0 1px 1px #ffffff1a;margin:clamp(1rem,2vw,2rem) auto;max-width:min(1200px,92vw);overflow:hidden;padding:clamp(1.25rem,2vw + 1rem,3rem);position:relative}.dashboard-container,.dashboard-container:before{border-radius:12px;border-radius:var(--radius-lg)}.dashboard-container:before{background:linear-gradient(135deg,#d4c19c66,#d4c19c1a 25%,#d4c19c0d 50%,#d4c19c1a 75%,#d4c19c66);bottom:-1px;content:"";left:-1px;opacity:.7;position:absolute;right:-1px;top:-1px;z-index:-1}.glass-panel{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:8px;border-radius:var(--radius-md);box-shadow:0 8px 32px #0000004d,inset 0 1px 0 #ffffff1a;margin-bottom:1.5rem;margin-bottom:var(--spacing-lg);overflow:hidden;padding:1.5rem;padding:var(--spacing-lg);position:relative}.glass-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.dashboard-panel-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1rem}.dashboard-add-form,.dashboard-form-field{margin-bottom:1rem}.dashboard-form-actions{display:flex;flex-wrap:wrap;gap:1rem}.campaign-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.campaign-card{border:1px solid #d4c19c4d;cursor:pointer;position:relative;transition:transform .2s ease,box-shadow .2s ease}.campaign-card:hover{box-shadow:0 6px 12px #0006,0 0 20px #d4c19c4d;transform:translateY(-2px)}.campaign-card-inner{grid-gap:1rem;align-items:stretch;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.campaign-card-details{display:flex;flex-direction:column;min-width:0}.campaign-card-title{font-size:1.5rem;margin-bottom:.75rem}.campaign-card-description{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;flex:1 1;line-height:1.4;margin-bottom:.5rem;max-height:5.6em;overflow:hidden;text-align:left}.campaign-card-description.is-expanded{-webkit-line-clamp:unset;max-height:none}.campaign-card-paragraph{font-size:.9rem;margin:.5rem 0;text-align:left}.campaign-read-more{align-self:flex-start;background:#0000;border:none;color:#d4c19c;color:var(--text-gold);cursor:pointer;font-size:.85rem;margin-bottom:.5rem;opacity:.8;padding:0;text-decoration:none}.campaign-read-more:focus-visible,.campaign-read-more:hover{opacity:1;text-decoration:underline;text-underline-offset:2px}.campaign-card-meta{font-size:.8rem;margin:0}.campaign-card-characters{border-left:1px solid #d4c19c4d;display:flex;flex-direction:column;min-width:0;padding-left:1rem}.campaign-card-members{display:flex;flex:1 1;flex-direction:column;gap:.5rem}.campaign-member{align-items:center;background:#0000004d;border:1px solid #d4c19c33;border-radius:8px;display:flex;gap:.75rem;min-width:0;padding:.5rem}.campaign-member-avatar{border:2px solid #d4c19c80;border-radius:50%;flex-shrink:0;height:50px;object-fit:cover;width:50px}.campaign-member-text{flex:1 1;min-width:0;text-align:left}.campaign-member-name{color:#e8e8e8;color:var(--text-secondary);font-size:.85rem;font-weight:700}.campaign-member-subtitle{color:#b8b8b8;color:var(--text-muted);font-size:.75rem}.campaign-empty{font-size:.75rem;grid-column:1/-1}.campaign-delete-btn{align-self:flex-start;font-size:.9rem;height:-webkit-fit-content;height:fit-content;min-width:auto;padding:.5rem}.campaign-card-footer{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-top:.5rem}.campaign-cta{font-size:.8rem}.campaign-layout{align-items:flex-start;display:flex;gap:1.5rem;width:100%}.campaign-layout.layout-collapsed{grid-gap:1.5rem;align-items:start;display:grid;gap:1.5rem;grid-template-columns:280px 1fr;grid-template-rows:auto 1fr}.campaign-container{max-width:min(1600px,96vw)}.campaign-sidebar{display:flex;flex:0 0 280px;flex-direction:column;height:auto;position:relative;transition:all .3s ease}.campaign-layout.layout-collapsed .campaign-sidebar{grid-column:1;grid-row:1}.campaign-sidebar.collapsed{flex:0 0 280px}.campaign-sidebar.collapsed .glass-panel{max-height:200px;overflow:hidden}.character-list-collapse-btn{margin:.5rem auto;transition:all .2s ease;width:-webkit-fit-content;width:fit-content}.campaign-main{flex:1 1;min-width:0;transition:all .3s ease}.campaign-layout.layout-collapsed .campaign-content-shell,.campaign-layout.layout-collapsed .campaign-main{display:contents}.campaign-layout.layout-collapsed .campaign-tabs-row{grid-column:2;grid-row:1}.campaign-layout.layout-collapsed .campaign-main-content{grid-column:1/-1;grid-row:2}.campaign-mobile-header{align-items:center;display:none;gap:.75rem;justify-content:space-between;margin-bottom:1rem}.campaign-mobile-title{color:#d4c19c;color:var(--text-gold);flex:1 1;font-size:1rem;font-weight:600;min-width:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.campaign-burger,.campaign-mobile-back,.campaign-mobile-characters,.campaign-mobile-close{align-items:center;background:#ffffff14;border:1px solid #d4c19c4d;border-radius:10px;color:#e8e8e8;color:var(--text-secondary);cursor:pointer;display:inline-flex;justify-content:center;min-height:44px;min-width:44px;padding:.4rem .6rem}.campaign-mobile-overlay{background:#0009;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .2s ease;z-index:998}.campaign-mobile-overlay.open{opacity:1;pointer-events:auto}.campaign-mobile-menu{height:100vh;left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform .25s ease;width:min(82vw,320px);z-index:999}.campaign-mobile-menu.open{transform:translateX(0)}.campaign-mobile-menu-panel{background:#0c0c0cf5;border-right:1px solid #d4c19c4d;display:flex;flex-direction:column;gap:.75rem;height:100%;overflow-y:auto;padding:1rem}.campaign-mobile-menu-header{align-items:center;color:#d4c19c;color:var(--text-gold);display:flex;font-size:1rem;font-weight:600;justify-content:space-between}.campaign-mobile-actions{border-bottom:1px solid #d4c19c33;display:flex;flex-direction:column;gap:.5rem;padding-bottom:.5rem}.campaign-mobile-action{background:#ffffff0d;border:1px solid #d4c19c33;border-radius:10px;color:#e8e8e8;color:var(--text-secondary);cursor:pointer;padding:.6rem .75rem;text-align:left}.campaign-mobile-section{background:#0000;border:none;color:#d4c19c;color:var(--text-gold);cursor:pointer;font-size:.95rem;font-weight:600;padding:.5rem 0;text-align:left}.campaign-mobile-submenu{display:flex;flex-direction:column;gap:.35rem;padding-bottom:.5rem}.campaign-mobile-link{align-items:center;background:#ffffff0a;border:1px solid #d4c19c33;border-radius:10px;color:#e8e8e8;color:var(--text-secondary);cursor:pointer;display:flex;gap:.5rem;padding:.5rem .75rem;text-align:left}.campaign-mobile-link.active{background:#d4c19c26;border-color:#d4c19c99;color:#d4c19c;color:var(--text-gold)}.campaign-mobile-icon{font-size:1rem}.glass-panel.primary{background:#d4c19c26;border:1px solid #d4c19c4d}.glass-panel.success{background:linear-gradient(135deg,#120e0bb3,#d4c19c1f 65%,#d4c19c14);border:1px solid #d4c19c59}.glass-panel.info{background:#d4c19c1a;border:1px solid #d4c19c33}.form-group{margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.form-label{color:#d4c19c;color:var(--text-gold);display:block;font-size:.9rem;font-weight:500;letter-spacing:.5px;margin-bottom:.5rem;margin-bottom:var(--spacing-sm);text-transform:uppercase}.form-input{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#ffffff14;border:1px solid #ffffff26;border-radius:8px;border-radius:var(--radius-md);box-shadow:0 4px 16px #0003,inset 0 1px 0 #ffffff1a;color:#fff;color:var(--text-primary);font-size:1rem;padding:1rem;padding:var(--spacing-md);transition:all .3s ease;transition:all var(--transition-normal);width:100%}.form-input:focus{background:#ffffff1f;border-color:#d4c19c80;box-shadow:0 0 0 2px #d4c19c4d,0 4px 16px #0003,inset 0 1px 0 #ffffff26;outline:none}.form-input::placeholder{color:#b8b8b8;color:var(--text-muted)}.form-input select,select.form-input{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#ffffff14;border:1px solid #ffffff26;border-radius:8px;border-radius:var(--radius-md);color:#fff;color:var(--text-primary);cursor:pointer;font-size:1rem;transition:all .3s ease;transition:all var(--transition-normal)}.form-input select:focus,select.form-input:focus{background:#ffffff1f;border-color:#d4c19c80;box-shadow:0 0 0 2px #d4c19c4d,0 4px 16px #0003;outline:none}.form-input select option,select.form-input option{background:#1a1a1a;background:var(--secondary-black);color:#fff;color:var(--text-primary);padding:.5rem;padding:var(--spacing-sm)}.form-input select option:hover,select.form-input option:hover{background:#d4c19c33;color:#fff;color:var(--text-primary)}.form-input select option:checked,select.form-input option:checked{background:#d4c19c4d;color:#fff;color:var(--text-primary)}.form-input[type=range]{-webkit-appearance:none;appearance:none;background:#0000;height:8px;outline:none;padding:0}.form-input[type=range]::-webkit-slider-track{background:#fff3;border:none;border-radius:4px;height:8px;width:100%}.form-input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#c9a961;background:var(--primary-gold);border:2px solid #0f0f0f;border:2px solid var(--primary-black);border-radius:50%;box-shadow:0 2px 4px #0000004d;cursor:pointer;height:20px;width:20px}.form-input[type=range]::-webkit-slider-thumb:hover{background:#b8941f;background:var(--secondary-gold);box-shadow:0 0 10px #d4c19c80}.form-input[type=range]::-moz-range-track{background:#fff3;border:none;border-radius:4px;height:8px;width:100%}.form-input[type=range]::-moz-range-thumb{background:#c9a961;background:var(--primary-gold);border:2px solid #0f0f0f;border:2px solid var(--primary-black);border-radius:50%;box-shadow:0 2px 4px #0000004d;cursor:pointer;height:20px;width:20px}.form-input textarea,textarea.form-input{font-family:inherit;line-height:1.5;min-height:80px;resize:vertical}input[type=checkbox]{accent-color:#c9a961;accent-color:var(--primary-gold);cursor:pointer;height:16px;margin-right:.5rem;width:16px}label{align-items:center;color:#e8e8e8;color:var(--text-secondary);cursor:pointer;display:flex;transition:color .2s ease;transition:color var(--transition-fast)}label:hover{color:#fff;color:var(--text-primary)}label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}label:has(input[type=checkbox]:disabled){cursor:not-allowed;opacity:.5}.btn{align-items:center;border:none;border-radius:8px;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;justify-content:center;letter-spacing:.5px;min-height:44px;overflow:hidden;padding:1rem 2rem;padding:var(--spacing-md) var(--spacing-xl);position:relative;text-transform:uppercase;transition:all .3s ease;transition:all var(--transition-normal);white-space:nowrap}.btn-primary{box-shadow:0 4px 8px #00000080;box-shadow:var(--shadow-dark);color:#0f0f0f;color:var(--primary-black)}.btn-primary:hover{background:linear-gradient(315deg,#d4c19c,#c9a961 25%,#b8941f 50%,#c9a961 75%,#d4c19c);background:var(--gradient-gold-reverse);box-shadow:0 6px 12px #0006,0 0 20px #d4c19c80;transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:#0000;border:2px solid #d4c19c;border:2px solid var(--border-gold);color:#d4c19c;color:var(--text-gold)}.btn-secondary:hover{background:linear-gradient(135deg,#d4c19c,#c9a961 25%,#b8941f 50%,#c9a961 75%,#d4c19c);background:var(--gradient-gold);box-shadow:0 0 15px #d4c19c66;box-shadow:var(--shadow-gold);color:#0f0f0f;color:var(--primary-black)}.btn-full{width:100%}.btn:disabled{cursor:not-allowed;opacity:.6;transform:none!important}.nav-link{color:#e8e8e8;color:var(--text-secondary);font-size:.9rem;text-decoration:none;transition:color .2s ease;transition:color var(--transition-fast)}.nav-link:hover{color:#d4c19c;color:var(--text-gold)}.alert{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid;border-radius:8px;border-radius:var(--radius-md);box-shadow:0 8px 32px #0000004d,inset 0 1px 0 #ffffff1a;margin-bottom:1.5rem;margin-bottom:var(--spacing-lg);padding:1rem;padding:var(--spacing-md);position:relative}.alert:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.alert-error{background:#dc354526;border-color:#dc354580;color:#ff6b6b}.alert-success{background:#28a74526;border-color:#28a74580;color:#51cf66}.alert-info{background:#d4c19c26;border-color:#d4c19c80;color:#d4c19c;color:var(--text-gold)}.spinner{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:#c9a961;border-top:2px solid var(--primary-gold);display:inline-block;height:20px;margin-right:.5rem;margin-right:var(--spacing-sm);width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.form-input.error{border-color:#dc3545;box-shadow:0 0 0 2px #dc354533}.form-input.success{border-color:#d4c19c;border-color:var(--metallic-gold);box-shadow:0 0 0 2px #d4c19c4d}.validation-message{color:#ff6b6b;font-size:.8rem;margin-top:.25rem;margin-top:var(--spacing-xs)}.app-header{margin-bottom:3rem;margin-bottom:var(--spacing-xxl);text-align:center}.app-title{-webkit-text-fill-color:#0000;margin-bottom:.5rem;margin-bottom:var(--spacing-sm);position:relative;text-shadow:none}.app-title,.app-title:after{background:linear-gradient(135deg,#d4c19c,#c9a961 25%,#b8941f 50%,#c9a961 75%,#d4c19c);background:var(--gradient-gold);-webkit-background-clip:text;background-clip:text}.app-title:after{-webkit-text-fill-color:#0000;bottom:0;content:"";filter:blur(1px);left:0;position:absolute;right:0;top:0;z-index:-1}.app-subtitle{color:#b8b8b8;color:var(--text-muted);font-size:1rem;font-style:italic}.campaign-tabs-desktop{display:flex;flex-direction:column;margin-bottom:1rem;width:100%}.campaign-tabs-desktop>div{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.tab-button{font-size:.85rem;padding:.625rem 1.25rem;transition:all .3s ease;transition:all var(--transition-normal)}.tab-button>span{font-size:.9rem}@media (max-width:1200px){.campaign-tabs-desktop>div{gap:.4rem}.tab-button{font-size:.8rem!important;padding:.5rem 1rem!important}.tab-button>span{font-size:.85rem!important}}@media (max-width:880px){.campaign-tabs-desktop>div{gap:.35rem}.tab-button{font-size:.75rem!important;padding:.4rem .85rem!important}.tab-button>span{font-size:.8rem!important}}@media (max-width:480px){.campaign-tabs-desktop{margin-bottom:.5rem!important}.campaign-tabs-desktop>div{gap:.3rem}.tab-button{border-radius:.75rem!important;padding:.25rem .5rem!important}.tab-button,.tab-button>span{font-size:.65rem!important}}@media (min-width:1600px){.campaign-tabs-desktop>div{gap:.75rem}.tab-button{font-size:.95rem!important;padding:.75rem 1.5rem!important}.tab-button>span{font-size:1.1rem!important}}@media (min-width:1920px){.campaign-tabs-desktop>div{gap:1rem}.tab-button{font-size:1rem!important;padding:.875rem 1.75rem!important}.tab-button>span{font-size:1.2rem!important}}@media (max-width:768px){.container{padding:2rem;padding:var(--spacing-xl)}h1{font-size:2rem}h2{font-size:1.5rem}.campaign-layout{flex-direction:column}.campaign-layout.layout-collapsed{display:flex;flex-direction:column}.campaign-layout.layout-collapsed .campaign-content-shell,.campaign-layout.layout-collapsed .campaign-main{display:block}.campaign-sidebar{display:none;flex:1 1 auto;width:100%}.campaign-sidebar.mobile-open{display:block}.campaign-sidebar.mobile-open.collapsed{align-items:center;display:flex;flex-direction:column;width:100%}.campaign-sidebar.collapsed .glass-panel{max-width:100%;padding:.75rem}.campaign-sidebar .glass-panel{position:static!important;top:auto!important}.campaign-desktop-header,.campaign-tabs-desktop,.campaign-view-switcher,.character-list-collapse-btn{display:none}.campaign-mobile-header{display:flex}.dashboard-panel-header{align-items:flex-start;flex-direction:column}.campaign-card-inner{grid-template-columns:1fr}.campaign-card-characters{border-left:none;border-top:1px solid #d4c19c4d;padding-left:0;padding-top:1rem}.campaign-delete-btn{justify-self:end}}@media (min-width:1400px){.campaign-container{max-width:90vw}.campaign-layout{gap:2rem}.campaign-sidebar{flex:0 0 340px}}@media (max-width:480px){.container{padding:.5rem;padding:var(--spacing-sm)}.dashboard-container{padding:1.5rem;padding:var(--spacing-lg)}h1{font-size:1.8rem}.campaign-card-title{font-size:1.25rem}.campaign-member-avatar{height:40px;width:40px}.dashboard-form-actions{align-items:stretch;flex-direction:column}.character-overview .glass-panel,.character-sheet .glass-panel{padding:.75rem}.character-sheet h6{font-size:1rem!important;margin-bottom:.75rem!important}.campaign-main{padding:0}.campaign-main .glass-panel{border-radius:.75rem}.character-overview-header{margin-bottom:.75rem!important;padding:.75rem!important}.character-overview-header>div:first-child{font-size:1.35rem!important;letter-spacing:1px!important}.character-overview-image{margin-bottom:.75rem}.character-overview-image-asset,.character-overview-image-upload{max-width:240px;width:100%}.character-basic-info-grid{gap:.75rem!important;grid-template-columns:repeat(2,1fr)!important;margin-bottom:1rem!important}.character-basic-info-grid>div{padding:.75rem!important}.character-basic-info-grid>div>div:first-child{font-size:.7rem!important}.character-basic-info-grid>div>div:last-child{font-size:1rem!important}.character-personality-grid{gap:.75rem!important}.character-personality-grid>div>div:last-child{font-size:.85rem!important;padding:.6rem!important}.character-overview-right h6{font-size:.9rem!important}.character-sheet-figure{width:min(100%,200px)!important}.character-sheet-hero{margin-bottom:1rem!important}.character-sheet-abilities{gap:.4rem!important;grid-template-columns:repeat(3,1fr)!important}.character-sheet-abilities>div{padding:.4rem!important}.character-sheet-abilities>div>div:first-child{font-size:.6rem!important}.character-sheet-abilities>div>div:nth-child(2){font-size:1rem!important}.character-sheet-abilities>div>div:last-child{font-size:.7rem!important}.character-sheet-combat{gap:.6rem!important;margin-bottom:.75rem!important}.character-sheet-combat>div{padding:.6rem!important}.character-sheet-combat>div>div:first-child{font-size:1rem!important;margin-bottom:.35rem!important}.character-sheet-combat>div>div:nth-child(2){font-size:1.15rem!important}.character-sheet-combat>div>div:last-child{font-size:.6rem!important;line-height:1.3!important}.character-sheet h6{font-size:.95rem!important;margin-bottom:.6rem!important}}.text-center{text-align:center}.text-gold{color:#d4c19c;color:var(--text-gold)}.text-muted{color:#b8b8b8;color:var(--text-muted)}.mt-lg{margin-top:1.5rem;margin-top:var(--spacing-lg)}.mb-lg{margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.hidden{display:none}.fade-in{animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}.btn-primary{animation:shimmer 3s ease-in-out infinite;background:linear-gradient(135deg,#d4c19c,#c9a961 25%,#b8941f 50%,#c9a961 75%,#d4c19c);background:var(--gradient-gold);background-size:200% 100%}.modal-overlay{align-items:center;animation:fadeInOverlay .3s ease-out;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.modal-container{animation:modalSlideIn .3s ease-out;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#121212f2;border:1px solid #d4c19c4d;border-radius:12px;border-radius:var(--radius-lg);box-shadow:0 25px 50px #00000080,0 0 30px #d4c19c1a,inset 0 1px 0 #ffffff1a;max-height:80vh;max-width:500px;overflow:hidden;width:90%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{align-items:center;background:linear-gradient(135deg,#d4c19c1a,#8b7c5d1a);border-bottom:1px solid #d4c19c33;display:flex;justify-content:space-between;padding:1.5rem;padding:var(--spacing-lg)}.modal-title{color:#d4c19c;color:var(--text-gold);font-size:1.5rem;font-weight:600;margin:0;text-shadow:0 1px 2px #00000080}.modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#b8b8b8;color:var(--text-muted);cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;padding:0;transition:all .3s ease;transition:all var(--transition-normal);width:40px}.modal-close:hover{background:#ffffff1a;transform:scale(1.1)}.modal-close:hover,.modal-content{color:#fff;color:var(--text-primary)}.modal-content{line-height:1.6;padding:1.5rem;padding:var(--spacing-lg)}.confirmation-message{color:#fff;color:var(--text-primary);font-size:1.1rem;margin:0;text-align:center}.modal-actions{background:linear-gradient(135deg,#d4c19c0d,#8b7c5d0d);border-top:1px solid #d4c19c33;display:flex;gap:1rem;gap:var(--spacing-md);justify-content:flex-end;padding:1.5rem;padding:var(--spacing-lg)}.modal-actions .btn{min-width:100px}.btn-danger{background:linear-gradient(135deg,#dc3545,#c82333);border:1px solid #bd2130;color:#fff;transition:all .3s ease;transition:all var(--transition-normal)}.btn-danger:hover{background:linear-gradient(135deg,#c82333,#a71e2a);border-color:#a71e2a;box-shadow:0 8px 20px #dc35454d,0 0 15px #dc354533;transform:translateY(-2px)}.btn-danger:active{transform:translateY(0)}.character-panel{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 2fr;min-height:600px}.character-overview{display:flex;flex-direction:column;gap:1.5rem}.character-overview-grid{grid-gap:2rem;align-items:start;display:grid;gap:2rem;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.character-overview-left,.character-overview-right{display:flex;flex-direction:column;min-width:0}.character-overview-image{display:flex;justify-content:center;margin-bottom:2rem}.character-overview-image-asset,.character-overview-image-upload{aspect-ratio:1/1;background-color:#0000004d;border:3px solid #d4c19c66;border-radius:12px;box-shadow:0 4px 16px #0000004d;height:auto;object-fit:cover;width:min(100%,520px)}.character-overview-image-upload{align-items:center;background:#ffffff0d;border:3px dashed #d4c19c4d;color:#b8b8b8;color:var(--text-muted);cursor:pointer;display:flex;flex-direction:column;gap:1rem;justify-content:center;transition:all .2s ease}.character-backstory-panel{overflow:hidden}.character-panel-tabs{border-bottom:1px solid #d4c19c4d;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1rem;overflow-x:auto}.character-panel-tabs .btn{background:#ffffff1a;border:1px solid #d4c19c33;border-radius:1.5rem;color:#e8e8e8;color:var(--text-secondary);flex-shrink:0;font-size:.85rem;padding:.625rem 1.25rem;text-transform:capitalize;transition:all .3s ease;transition:all var(--transition-normal);white-space:nowrap}.character-panel-tabs .btn.active{background:#d4c19c4d;border:2px solid #c9a961;border:2px solid var(--primary-gold);color:#d4c19c;color:var(--text-gold);font-weight:700}.character-panel-content{flex:1 1;overflow:auto;padding-right:.5rem}@media (max-width:1400px){.character-panel{grid-template-columns:1fr 2fr}}@media (max-width:1200px){.character-panel{gap:1rem;grid-template-columns:1fr}.character-overview-grid{gap:1.5rem;grid-template-columns:1fr}.character-overview-image-asset,.character-overview-image-upload{width:min(100%,380px)}}@media (max-width:768px){.character-overview-header{margin-bottom:1rem!important;padding:1rem!important}.character-overview-header>div:first-child{font-size:1.5rem!important}.character-overview-grid{gap:1rem!important}.character-overview-image{margin-bottom:1rem}.character-overview-image-asset,.character-overview-image-upload{max-width:280px;width:min(100%,280px)}.character-personality-grid{grid-template-columns:1fr!important}.character-backstory-panel{padding:1rem}.character-backstory-content{max-height:360px;overflow:hidden;padding-bottom:1.75rem}.character-backstory-wordcount{bottom:.75rem;right:.75rem}.character-sheet-hero{align-items:center!important;display:flex!important;flex-direction:column!important;gap:1rem!important}.character-sheet-figure{order:1;width:min(100%,240px)!important}.limb-health-overlay{font-size:.6rem!important;min-width:50px!important;padding:.2rem .4rem!important}.limb-health-overlay>div:first-child{font-size:.65rem!important;margin-bottom:.1rem!important}.limb-health-overlay>div:last-child{font-size:.55rem!important}.character-sheet-abilities{grid-gap:.5rem!important;display:grid!important;gap:.5rem!important;grid-template-columns:repeat(3,1fr)!important;max-width:100%!important;order:2;width:100%!important}.character-sheet-abilities>div{padding:.5rem!important}.character-sheet-abilities>div>div:first-child{font-size:.65rem!important;margin-bottom:.15rem!important}.character-sheet-abilities>div>div:nth-child(2){font-size:1.1rem!important;margin-bottom:.1rem!important}.character-sheet-abilities>div>div:last-child{font-size:.75rem!important}.character-sheet-abilities-left{order:2}.character-sheet-abilities-right{order:3}.character-sheet-combat{gap:.75rem!important;grid-template-columns:1fr!important;margin-bottom:1rem!important}.character-sheet-combat>div{padding:.75rem!important}.character-sheet-combat>div>div:first-child{font-size:1.1rem!important}.character-sheet-combat>div>div:nth-child(2){font-size:1.25rem!important}.character-sheet-combat>div>div:last-child{font-size:.65rem!important}.character-sheet-skills{gap:.75rem!important;grid-template-columns:1fr!important}.character-sheet-skills>div{padding:.75rem!important}.character-sheet-skills h6{font-size:.9rem!important;margin-bottom:.5rem!important}.character-panel{gap:.5rem}.character-panel-tabs{flex-wrap:nowrap;gap:.35rem;justify-content:flex-start;overflow-x:auto}.character-panel-tabs .btn{border-radius:.75rem!important;min-width:70px}.character-panel-tabs .btn,.character-panel-tabs .btn.active{font-size:.7rem!important;padding:.4rem .65rem!important}.companion-tab-grid{gap:1.5rem!important;grid-template-columns:1fr!important}.armies-tab-grid,.inventory-tab-grid{gap:1rem!important;grid-template-columns:1fr!important}.inventory-tab-grid{max-height:none!important}.glass-panel>div[style*="display: grid"]{grid-template-columns:1fr!important}}@media (max-width:1024px) and (min-width:769px){.companion-tab-grid{gap:1.5rem!important;grid-template-columns:1fr!important}.armies-tab-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))!important}.inventory-tab-grid{grid-template-columns:1fr!important}}@media (min-width:769px) and (max-width:1024px){.character-panel-tabs{gap:.4rem}.character-panel-tabs .btn{font-size:.78rem!important;padding:.5rem .9rem!important}.character-overview-grid{gap:1.5rem!important;grid-template-columns:1fr!important}}@media (min-width:1025px) and (max-width:1400px){.character-panel-tabs{gap:.5rem}.character-panel-tabs .btn{font-size:.82rem!important;padding:.625rem 1.1rem!important}.character-overview-grid{gap:1.75rem;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}}@media (min-width:1401px) and (max-width:1599px){.character-panel-tabs{gap:.6rem}.character-panel-tabs .btn{font-size:.85rem!important;padding:.625rem 1.25rem!important}.character-overview-grid{gap:2rem;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}}@media (min-width:1600px){.campaign-container{max-width:95vw}.campaign-sidebar{flex:0 0 380px}.campaign-sidebar.collapsed{flex:0 0 60px}.character-panel-tabs{gap:.75rem;justify-content:center}.character-panel-tabs .btn,.character-panel-tabs .btn.active{font-size:.95rem!important;padding:.75rem 1.5rem!important}.character-overview-grid{gap:2.5rem;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.character-overview-image-asset,.character-overview-image-upload{width:min(100%,580px)}.armies-tab-grid{grid-template-columns:repeat(auto-fill,minmax(450px,1fr))!important}.inventory-tab-grid{grid-template-columns:repeat(auto-fill,minmax(500px,1fr))!important}.companion-tab-grid{gap:2.5rem!important;grid-template-columns:1fr 1fr!important}}@media (min-width:1920px){.campaign-container{max-width:2200px}.campaign-sidebar{flex:0 0 400px}.campaign-sidebar.collapsed{flex:0 0 60px}.character-panel-tabs{gap:1rem}.character-panel-tabs .btn,.character-panel-tabs .btn.active{font-size:1rem!important;padding:.875rem 1.75rem!important}.character-overview-grid{gap:3rem;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}.character-overview-image-asset,.character-overview-image-upload{width:min(100%,620px)}.armies-tab-grid{grid-template-columns:repeat(auto-fill,minmax(500px,1fr))!important}.inventory-tab-grid{grid-template-columns:repeat(auto-fill,minmax(520px,1fr))!important}.companion-tab-grid{gap:3rem!important;grid-template-columns:1fr 1fr!important}}.character-figure-container{display:inline-block;position:relative;width:100%}.equipment-slot{align-items:center;background:#0000;border:3px solid #c9a961;border:3px solid var(--primary-gold);border-radius:8px;box-shadow:0 0 10px #d4c19c4d,0 0 15px #d4c19c33;box-sizing:border-box;cursor:pointer;display:flex;font-size:1.2rem;justify-content:center;position:absolute;transition:all .3s ease;transition:all var(--transition-normal);z-index:10}.equipment-slot:hover{border-width:4px;box-shadow:0 0 20px #d4c19c99,0 0 30px #d4c19c4d;transform:scale(1.05)}.equipment-slot.occupied,.equipment-slot:hover{border-color:#b8941f;border-color:var(--secondary-gold)}.equipment-slot.occupied{background:#d4c19c26;border-width:4px}.equipment-slot.occupied:hover{background:#d4c19c40}.equipment-slot.drag-over{border-color:#ddbf5f;border-color:var(--accent-gold);border-width:4px;box-shadow:0 0 25px #d4c19ccc,0 0 35px #d4c19c80;transform:scale(1.08)}.equipment-item.dragging{cursor:grabbing!important;opacity:.5;transform:rotate(2deg)}.equipment-slot.head{border-radius:50%;height:14%;left:43%;top:8%;width:14%}.equipment-slot.chest{border-radius:12px;height:20%;left:37.5%;top:25%;width:25%}.equipment-slot.pelvis{border-radius:8px;height:15%;left:40%;top:48%;width:20%}.equipment-slot.left-hand{border-radius:50%;height:12%;left:10%;top:21%;width:12%}.equipment-slot.right-hand{border-radius:50%;height:12%;right:10%;top:21%;width:12%}.equipment-slot.left-foot{border-radius:6px;height:8%;left:24%;top:85%;width:12%}.equipment-slot.right-foot{border-radius:6px;height:8%;right:24%;top:85%;width:12%}.equipment-slot:before{background:#000000e6;border:1px solid #d4c19c4d;border-radius:4px;bottom:100%;box-shadow:0 4px 12px #00000080;color:#d4c19c;color:var(--text-gold);content:attr(data-slot-name);font-size:.75rem;left:50%;opacity:0;padding:.5rem .75rem;position:absolute;transform:translateX(-50%);transition:all .2s ease;transition:all var(--transition-fast);visibility:hidden;white-space:nowrap;z-index:20}.equipment-slot:hover:before{bottom:calc(100% + 8px);opacity:1;visibility:visible}@media (max-width:1200px){.character-figure-container{max-width:350px}}@media (max-width:768px){.character-figure-container{max-width:300px}.equipment-slot{border-width:2px}.equipment-slot:hover{border-width:3px;transform:scale(1.03)}.equipment-slot:before{font-size:.7rem;padding:.4rem .6rem}.equipment-slot.head{height:14%;width:20%}.equipment-slot.chest{height:22%;width:28%}.equipment-slot.pelvis{height:17%;width:22%}.equipment-slot.left-hand{height:14%;left:10%;top:26%;width:14%}.equipment-slot.right-hand{height:14%;right:10%;top:26%;width:14%}.equipment-slot.left-foot{height:10%;left:26%;width:14%}.equipment-slot.right-foot{height:10%;right:26%;width:14%}.equipment-slot.head .equipment-icon{font-size:2.7rem!important}.equipment-slot.chest .equipment-icon{font-size:3.9rem!important}.equipment-slot.pelvis .equipment-icon{font-size:3rem!important}.equipment-slot.left-hand .equipment-icon,.equipment-slot.right-hand .equipment-icon{font-size:4.5rem!important}.equipment-slot.left-foot .equipment-icon,.equipment-slot.right-foot .equipment-icon{font-size:2.4rem!important}}@media (max-width:480px){.character-figure-container{max-width:250px}.equipment-slot:before{font-size:.65rem;padding:.3rem .5rem}.equipment-slot.head{height:16%;width:22%}.equipment-slot.chest{height:24%;width:30%}.equipment-slot.pelvis{height:19%;width:24%}.equipment-slot.left-hand{height:16%;left:8%;top:24%;width:16%}.equipment-slot.right-hand{height:16%;right:8%;top:24%;width:16%}.equipment-slot.left-foot{height:12%;left:24%;width:16%}.equipment-slot.right-foot{height:12%;right:24%;width:16%}.equipment-slot.head .equipment-icon{font-size:2.4rem!important}.equipment-slot.chest .equipment-icon{font-size:3.6rem!important}.equipment-slot.pelvis .equipment-icon{font-size:2.7rem!important}.equipment-slot.left-hand .equipment-icon,.equipment-slot.right-hand .equipment-icon{font-size:3.9rem!important}.equipment-slot.left-foot .equipment-icon,.equipment-slot.right-foot .equipment-icon{font-size:2.1rem!important}}.equipment-icon{color:#d4c19c;color:var(--text-gold);font-size:1.2rem;text-shadow:0 0 8px #d4c19c80,0 0 12px #d4c19c4d,1px 1px 2px #000c;transition:all .2s ease;transition:all var(--transition-fast)}.equipment-slot:hover .equipment-icon{color:#e8d5a3;color:var(--light-gold);text-shadow:0 0 12px #d4c19ccc,0 0 16px #d4c19c80,1px 1px 3px #000000e6;transform:scale(1.1)}.equipment-slot.head .equipment-icon{font-size:3rem}.equipment-slot.chest .equipment-icon{font-size:4.5rem}.equipment-slot.pelvis .equipment-icon{font-size:3.6rem}.equipment-slot.left-hand .equipment-icon,.equipment-slot.right-hand .equipment-icon{font-size:3.4rem}.equipment-slot.left-foot .equipment-icon,.equipment-slot.right-foot .equipment-icon{font-size:2.7rem}.equipment-tooltip{background:#000000e6;border:1px solid #d4c19c4d;border-radius:6px;box-shadow:0 4px 12px #00000080;color:#fff;color:var(--text-primary);font-size:.8rem;padding:.5rem .75rem;pointer-events:none;top:-40px;white-space:nowrap;z-index:1000}.equipment-tooltip,.equipment-tooltip:after{left:50%;position:absolute;transform:translateX(-50%)}.equipment-tooltip:after{border:6px solid #0000;border-top-color:#000000e6;content:"";top:100%}.inventory-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.filter-button{background:#ffffff1a;border:1px solid #d4c19c4d;border-radius:1rem;color:#e8e8e8;color:var(--text-secondary);cursor:pointer;font-size:.8rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease;transition:all var(--transition-normal)}.filter-button:hover{background:#ffffff26;border-color:#d4c19c80}.filter-button.active{background:#d4c19c33;border-color:#c9a961;border-color:var(--primary-gold);color:#d4c19c;color:var(--text-gold)}.inventory-item.draggable{cursor:grab;-webkit-user-select:none;user-select:none}.inventory-item.draggable:hover{box-shadow:0 4px 12px #0000004d;transform:translateY(-2px)}.inventory-item.dragging{cursor:grabbing!important;opacity:.5;transform:rotate(3deg) scale(.95);z-index:1000}.inventory-item.non-equippable{cursor:default;opacity:.6}.inventory-item.non-equippable:hover{box-shadow:none;transform:none}.unequip-zone{animation:unequipZoneAppear .3s ease-out}@keyframes unequipZoneAppear{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.unequip-zone-text{animation:unequipZonePulse 2s ease-in-out infinite}@keyframes unequipZonePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.army-category-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D4C19C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem;padding-right:2.5rem}.army-category-select option{background-color:#1a1a1a;color:#fff;padding:.5rem}.army-category-select optgroup{background-color:#0f0f0f;color:#d4c19c;color:var(--text-gold);font-weight:700}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.page-flip-forward{animation:pageFlipForward .6s ease-in-out!important}.page-flip-backward{animation:pageFlipBackward .6s ease-in-out!important}@keyframes pageFlipForward{0%{opacity:1;transform:rotateY(0deg) scale(1)}50%{opacity:0;transform:rotateY(-90deg) scale(.9)}51%{opacity:0;transform:rotateY(90deg) scale(.9)}to{opacity:1;transform:rotateY(0deg) scale(1)}}@keyframes pageFlipBackward{0%{opacity:1;transform:rotateY(0deg) scale(1)}50%{opacity:0;transform:rotateY(90deg) scale(.9)}51%{opacity:0;transform:rotateY(-90deg) scale(.9)}to{opacity:1;transform:rotateY(0deg) scale(1)}}@keyframes pulse{0%{box-shadow:0 4px 20px #ef444480,0 0 0 0 #ef4444b3}50%{box-shadow:0 4px 20px #ef4444cc,0 0 0 10px #ef444400}to{box-shadow:0 4px 20px #ef444480,0 0 0 0 #ef444400}}
/*# sourceMappingURL=main.5bb670f1.css.map*/