.combat-index{display:flex;flex-direction:column;min-height:100vh;background:#1a1a1a;color:#fff}.combat-index-header{background:#0d0d0d;padding:1.5rem 2rem;border-bottom:2px solid #333;display:flex;align-items:baseline;gap:1rem}.combat-index-header h1{margin:0;font-size:2rem;font-weight:700}.combat-index-count{font-size:.9rem;color:#888}.combat-index-status{padding:3rem 2rem;text-align:center;font-size:1.1rem;color:#aaa}.combat-index-error{color:#ff6b6b}.combat-list{list-style:none;padding:1.5rem 2rem;margin:0;display:flex;flex-direction:column;gap:.75rem;flex:1}.combat-list-item{background:#2a2a2a;border-radius:4px;border-left:3px solid #4a9eff;transition:background .15s}.combat-list-item{display:flex;align-items:stretch}.combat-list-item:hover{background:#333}.combat-list-delete-btn{background:#5c1a1a;color:#ff6b6b;border:none;border-left:1px solid #7a2222;border-radius:0 4px 4px 0;padding:0 .85rem;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.combat-list-delete-btn:hover{background:#7a2222;color:#fff}.combat-list-link{display:flex;flex-direction:column;gap:.15rem;padding:1rem 1.25rem;text-decoration:none;color:inherit;flex:1}.combat-list-name{font-size:1.05rem;font-weight:600;color:#fff}.combat-list-desc{font-size:.85rem;color:#888}.combat-list-count{font-size:.8rem;color:#4a9eff}.combat-pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem 2rem 2rem;flex-wrap:wrap}.pagination-pages{display:flex;gap:.25rem;flex-wrap:wrap;justify-content:center}.pagination-btn{background:#2a2a2a;color:#fff;border:1px solid #444;border-radius:4px;padding:.4rem .8rem;font-size:.9rem;cursor:pointer;transition:background .15s,border-color .15s}.pagination-btn:hover:not(:disabled){background:#383838;border-color:#4a9eff}.pagination-btn:disabled{opacity:.35;cursor:not-allowed}.new-campaign-btn{background:#4a9eff;color:#000;border:none;border-radius:4px;padding:.4rem .85rem;font-size:.85rem;font-weight:600;cursor:pointer;margin-left:auto;transition:opacity .15s}.new-campaign-btn:hover{opacity:.85}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#2a2a2a;border-radius:8px;padding:1.5rem 2rem;width:440px;max-width:90vw;max-height:85vh;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.modal-title{margin:0 0 .5rem;font-size:1.3rem;font-weight:700}.modal-label{font-size:.85rem;color:#aaa;margin-top:.25rem}.modal-input,.modal-textarea{width:100%;background:#1a1a1a;border:1px solid #444;border-radius:4px;padding:.5rem .75rem;color:#fff;font-size:.9rem;outline:none;box-sizing:border-box}.modal-textarea{resize:vertical;font-family:inherit}.modal-input:focus,.modal-textarea:focus{border-color:#4a9eff}.modal-invite{position:relative}.modal-dropdown{position:absolute;top:100%;left:0;right:0;z-index:10;list-style:none;margin:.25rem 0 0;padding:0;background:#2a2a2a;border:1px solid #444;border-radius:4px;max-height:180px;overflow-y:auto}.modal-dropdown-empty{padding:.75rem 1rem;color:#888;font-size:.85rem;text-align:center}.modal-dropdown-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;cursor:pointer;transition:background .1s;gap:.75rem;font-size:.9rem}.modal-dropdown-item:hover{background:#333}.modal-dropdown-email{font-size:.8rem;color:#888;white-space:nowrap}.modal-selected-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.35rem}.modal-selected-item{display:flex;align-items:center;gap:.3rem;background:#4a9eff22;border:1px solid #4a9eff44;border-radius:4px;padding:.2rem .5rem;font-size:.85rem}.modal-selected-remove{background:none;border:none;color:#ff6b6b;cursor:pointer;font-size:1rem;line-height:1;padding:0}.modal-error{font-size:.85rem;color:#ff6b6b}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem}.modal-btn{padding:.5rem 1.25rem;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s}.modal-btn:disabled{opacity:.5;cursor:not-allowed}.modal-btn--cancel{background:#444;color:#fff}.modal-btn--cancel:hover:not(:disabled){background:#555}.modal-btn--create{background:#4a9eff;color:#000}.modal-btn--create:hover:not(:disabled){opacity:.85}.pagination-num.active{background:#4a9eff;border-color:#4a9eff;color:#000;font-weight:700}.campaign-detail{display:flex;flex-direction:column;min-height:100vh;background:#1a1a1a;color:#fff}.campaign-detail-header{background:#0d0d0d;padding:1.5rem 2rem;border-bottom:2px solid #333}.campaign-detail-header h1{margin:.25rem 0 0;font-size:1.75rem;font-weight:700}.campaign-detail-description{margin:.5rem 0 0;color:#888;font-size:.95rem}.campaign-back-link{display:inline-block;color:#4a9eff;text-decoration:none;font-size:.9rem}.campaign-back-link:hover{text-decoration:underline}.campaign-detail-status{padding:3rem 2rem;text-align:center;font-size:1.1rem;color:#aaa}.campaign-detail-error{color:#ff6b6b}.campaign-members-section,.campaign-combats-section{padding:1.5rem 2rem}.campaign-members-section h2,.campaign-combats-section h2{margin:0 0 .75rem;font-size:1.2rem;font-weight:600}.campaign-member-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.35rem}.campaign-member-item{display:flex;align-items:center;justify-content:space-between;background:#2a2a2a;border-radius:4px;padding:.6rem 1rem}.campaign-member-info{display:flex;flex-direction:column;gap:.1rem}.campaign-member-name{font-size:.95rem;font-weight:600;color:inherit;text-decoration:none}.campaign-member-name:hover{color:#4a9eff}.campaign-member-email{font-size:.8rem;color:#888}.campaign-member-actions{display:flex;align-items:center;gap:.5rem}.campaign-member-role{font-size:.75rem;padding:.2rem .5rem;border-radius:3px;font-weight:600;white-space:nowrap}.campaign-member-remove-btn{background:#5c1a1a;color:#ff6b6b;border:1px solid #7a2222;border-radius:4px;padding:.25rem .6rem;font-size:.78rem;cursor:pointer;transition:all .15s}.campaign-member-remove-btn:hover:not(:disabled){background:#7a2222;border-color:#ff6b6b}.campaign-member-remove-btn:disabled{opacity:.5;cursor:default}.campaign-new-combat-btn{margin-bottom:.75rem;background:#4a9eff;color:#000;border:none;border-radius:4px;padding:.5rem 1rem;font-weight:600;cursor:pointer;transition:background .15s}.campaign-new-combat-btn:hover{background:#6db5ff}.campaign-member-role--gm{color:gold;background:#ffd70022;border:1px solid #ffd70044}.campaign-member-role--player{color:#4a9eff;background:#4a9eff22}.campaign-invite{position:relative;margin-top:.75rem}.campaign-invite-search{display:flex;align-items:center;gap:.5rem}.campaign-invite-input{flex:1;min-width:200px;background:#1a1a1a;border:1px solid #444;border-radius:4px;padding:.5rem .75rem;color:#fff;font-size:.9rem;outline:none}.campaign-invite-input:focus{border-color:#4a9eff}.campaign-invite-spinner{font-size:.85rem;color:#4a9eff;white-space:nowrap}.campaign-invite-dropdown{position:absolute;top:100%;left:0;right:0;z-index:10;list-style:none;margin:.25rem 0 0;padding:0;background:#2a2a2a;border:1px solid #444;border-radius:4px;max-height:220px;overflow-y:auto}.campaign-invite-dropdown-empty{padding:.75rem 1rem;color:#888;font-size:.85rem;text-align:center}.campaign-invite-dropdown-item{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;cursor:pointer;transition:background .1s;gap:1rem}.campaign-invite-dropdown-item:hover{background:#333}.campaign-invite-dropdown-name{font-size:.9rem;font-weight:600}.campaign-invite-dropdown-email{font-size:.8rem;color:#888;white-space:nowrap}.campaign-invite-error{margin-top:.25rem;font-size:.85rem;color:#ff6b6b}.campaign-combat-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.campaign-combat-item{display:flex;align-items:center;justify-content:space-between;background:#2a2a2a;border-radius:4px;border-left:3px solid #4a9eff;padding:.75rem 1rem;transition:background .15s}.campaign-combat-item--archived{border-left-color:#666;opacity:.6}.campaign-combat-item:hover{background:#333}.campaign-combat-info{display:flex;align-items:center;gap:.6rem}.campaign-combat-archived-badge{font-size:.7rem;color:#888;background:#444;padding:.15rem .45rem;border-radius:3px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.campaign-combat-actions{display:flex;align-items:center;gap:.4rem}.campaign-combat-delete-btn{background:#5c1a1a;color:#ff6b6b;border:1px solid #7a2222;border-radius:4px;padding:.25rem .6rem;font-size:.78rem;cursor:pointer;transition:all .15s}.campaign-combat-delete-btn:hover:not(:disabled){background:#7a2222;border-color:#ff6b6b}.campaign-combat-delete-btn:disabled{opacity:.5;cursor:default}.campaign-combat-link{text-decoration:none;color:inherit}.campaign-combat-name{font-size:1rem;font-weight:600}.campaign-combat-view-link{font-size:.8rem;color:#aaa;text-decoration:none;padding:.2rem .5rem;border:1px solid #555;border-radius:3px;transition:all .15s}.campaign-combat-view-link:hover{background:#383838;border-color:#aaa;color:#fff}.campaign-combat-admin-link{font-size:.8rem;color:#4a9eff;text-decoration:none;padding:.2rem .5rem;border:1px solid #4a9eff;border-radius:3px;transition:background .15s}.campaign-combat-admin-link:hover{background:#4a9eff;color:#000}.modal-pc-list{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.modal-pc-checkbox{display:flex;align-items:center;gap:.5rem;background:#2a2a2a;border-radius:4px;padding:.5rem .75rem;cursor:pointer;font-size:.95rem;-webkit-user-select:none;user-select:none}.modal-pc-checkbox input[type=checkbox]{accent-color:#4a9eff}.modal-pc-empty{font-size:.85rem;color:#888;text-align:center;padding:.5rem}.user-detail{display:flex;flex-direction:column;min-height:100vh;background:#1a1a1a;color:#fff}.user-detail-header{background:#0d0d0d;padding:1.5rem 2rem;border-bottom:2px solid #333;display:flex;flex-direction:column;gap:.25rem}.user-detail-header-row{display:flex;align-items:center;gap:.75rem}.user-detail-header-row h1{margin:0;font-size:1.75rem;font-weight:700}.user-detail-edit-btn{background:#2a2a2a;color:#fff;border:1px solid #444;border-radius:4px;padding:.25rem .7rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.user-detail-edit-btn:hover{background:#383838;border-color:#4a9eff}.user-detail-edit{background:#0d0d0d;padding:1.5rem 2rem;border-bottom:2px solid #333;display:flex;flex-direction:column;gap:.35rem}.user-detail-edit-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.user-detail-edit .modal-label{font-size:.85rem;color:#aaa;margin-top:.25rem}.user-detail-edit .modal-input,.user-detail-edit .modal-textarea{width:100%;background:#1a1a1a;border:1px solid #444;border-radius:4px;padding:.5rem .75rem;color:#fff;font-size:.9rem;outline:none;box-sizing:border-box;font-family:inherit}.user-detail-edit .modal-textarea{resize:vertical;min-height:80px}.user-detail-edit .modal-input:focus,.user-detail-edit .modal-textarea:focus{border-color:#4a9eff}.user-detail-edit .modal-input--disabled,.user-detail-edit .modal-input--disabled:focus{color:#666;cursor:not-allowed}.user-detail-edit .modal-error{font-size:.85rem;color:#ff6b6b}.user-detail-edit .modal-btn{padding:.5rem 1.25rem;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s}.user-detail-edit .modal-btn:disabled{opacity:.5;cursor:not-allowed}.user-detail-edit .modal-btn--cancel{background:#444;color:#fff}.user-detail-edit .modal-btn--cancel:hover:not(:disabled){background:#555}.user-detail-edit .modal-btn--create{background:#4a9eff;color:#000}.user-detail-edit .modal-btn--create:hover:not(:disabled){opacity:.85}.user-detail-about{background:#0d0d0d;padding:1.5rem 2rem;border-bottom:2px solid #333}.user-detail-about h2{margin:0 0 .5rem;font-size:1.2rem;font-weight:600}.user-detail-about-text{margin:0;color:#ccc;font-size:.95rem;line-height:1.5;white-space:pre-wrap}.user-detail-email{margin:0;color:#888;font-size:.95rem}.user-detail-badge{display:inline-block;width:fit-content;font-size:.75rem;padding:.2rem .5rem;border-radius:3px;font-weight:600;color:gold;background:#ffd70022;border:1px solid #ffd70044}.user-detail-badge--you{color:#4a9eff;background:#4a9eff22;border-color:#4a9eff44}.user-detail-status{padding:3rem 2rem;text-align:center;font-size:1.1rem;color:#aaa}.user-detail-error{color:#ff6b6b}.user-campaigns,.user-characters{padding:1.5rem 2rem}.user-campaigns h2,.user-characters h2{margin:0;font-size:1.2rem;font-weight:600}.user-characters-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.user-campaign-list,.user-character-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.user-campaign-item,.user-character-item{background:#2a2a2a;border-radius:4px;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.user-campaign-item{border-left:3px solid #4a9eff}.user-campaign-link{text-decoration:none;color:inherit;flex:1;display:flex;flex-direction:column;gap:.15rem}.user-campaign-link:hover .user-campaign-name{color:#4a9eff}.user-campaign-name{font-size:1rem;font-weight:600;transition:color .15s}.user-campaign-desc{font-size:.8rem;color:#888}.user-character-name{font-size:1rem;font-weight:600;color:#fff;text-decoration:none;transition:color .15s}.user-character-name:hover{color:#4a9eff}.user-character-hp{font-size:.85rem;color:#888;white-space:nowrap}.user-character-delete-btn{background:#5c1a1a;color:#ff6b6b;border:1px solid #7a2222;border-radius:4px;padding:.25rem .6rem;font-size:.78rem;cursor:pointer;transition:all .15s;white-space:nowrap}.user-character-delete-btn:hover:not(:disabled){background:#7a2222;border-color:#ff6b6b}.user-character-delete-btn:disabled{opacity:.5;cursor:default}.combat-dashboard{display:flex;flex-direction:column;height:100vh;background:#1a1a1a;color:#fff}.combat-header{background:#0d0d0d;padding:1.5rem;border-bottom:2px solid #333;text-align:center}.combat-header h1{margin:0;font-size:2.5rem;font-weight:700}.combat-archived-notice{display:block;margin-top:.5rem;font-size:.9rem;color:#888;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.combat-content--archived{filter:grayscale(1);pointer-events:none;position:relative}.combat-archived-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:10}.combat-content{display:flex;flex:1;overflow:hidden}.combat-section{flex:1;padding:2rem;overflow-y:auto}.combat-section.left{border-right:2px solid #333}.combat-section h2{margin:0 0 1.5rem;font-size:1.8rem;font-weight:600;color:#fff}.character-list{display:flex;flex-direction:column;gap:1rem;overflow:visible}.character-item{position:relative;background:#2a2a2a;padding:1rem;border-radius:4px;border-left:3px solid #4a9eff;cursor:pointer;transition:background .2s}.character-item:hover{background:#333}.character-item--active{background:#1e1a0e;border-left:4px solid #c9a84c;padding:1.25rem 1rem 1.25rem 1.25rem}.character-item--active:hover{background:#26200f}.character-item--down{opacity:.35;border-left-color:#2a2a2a;cursor:default}.character-item--critical{animation:blink-red .8s ease-in-out infinite;border-left-color:#ff2020!important}.character-item--loop{opacity:.15;border-left-color:#222;cursor:default;pointer-events:none}.character-item--queued{padding-left:2rem;border-left-color:#3a3a3a}.now-up-label{font-family:Cinzel,Times New Roman,serif;font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:#c9a84c;margin-bottom:.4rem}.up-next-label{font-family:Cinzel,Times New Roman,serif;font-size:.65rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#7a9ab0;margin-bottom:.3rem}.character-name{font-size:1.1rem;font-weight:600;color:#fff;display:flex;align-items:center;gap:.3rem}.character-item--active .character-name{font-size:2rem;font-weight:700;color:#f0e0b0;animation:pulse-gold 2.5s ease-in-out infinite}@keyframes pulse-gold{0%,to{text-shadow:0 0 8px rgba(201,168,76,.3),0 0 16px rgba(201,168,76,.1)}50%{text-shadow:0 0 16px rgba(201,168,76,.7),0 0 32px rgba(201,168,76,.3),0 0 48px rgba(201,168,76,.1)}}.health-list{display:flex;flex-direction:column;gap:1.5rem}.health-list--grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.health-item{background:#2a2a2a;padding:1rem;border-radius:4px}.health-name{font-size:1rem;font-weight:600;color:#fff;margin-bottom:.4rem;display:flex;align-items:center;gap:.35rem}.skull-icon{font-size:.85em;line-height:1}.participant-icon{font-size:.85em;line-height:1;flex-shrink:0}.health-item--downed{opacity:.45;filter:grayscale(.7)}.health-item--critical{animation:blink-red .8s ease-in-out infinite}@keyframes blink-red{0%,to{background:#2a1515;box-shadow:0 0 8px 2px #ff282866}50%{background:#1a0a0a;box-shadow:0 0 4px 1px #ff282826}}.health-item--poisoned{animation:blink-green .8s ease-in-out infinite}@keyframes blink-green{0%,to{background:#1a2a1a;box-shadow:0 0 8px 2px #3cb43c73}50%{background:#0d1a0d;box-shadow:0 0 4px 1px #3cb43c26}}.health-item--downed .health-name{color:#777}@keyframes glow-damage{0%{box-shadow:0 0 #d2323200}20%{box-shadow:0 0 14px 6px #dc3c3cbf}to{box-shadow:0 0 #d2323200}}@keyframes glow-heal{0%{box-shadow:0 0 #32be5000}20%{box-shadow:0 0 14px 6px #3cd25abf}to{box-shadow:0 0 #32be5000}}.health-item--glow-damage{animation:glow-damage 1.2s ease-out forwards}.health-item--glow-heal{animation:glow-heal 1.2s ease-out forwards}@keyframes glow-death{0%{box-shadow:0 0 #dc141400}10%{box-shadow:0 0 50px 25px #ff1414}35%{box-shadow:0 0 20px 8px #c8141473}60%{box-shadow:0 0 40px 18px #f01414cc}to{box-shadow:0 0 #dc141400}}.health-item--glow-death{animation:glow-death 1.8s ease-out forwards}.health-gauge-track{width:100%;height:10px;background:#2e2e2e;border-radius:5px;overflow:hidden}.health-gauge-fill{height:100%;border-radius:5px;transition:width .4s ease,background .4s ease}.health-gauge-label{margin-top:.3rem;font-size:.78rem;color:#888;letter-spacing:.03em}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}@keyframes event-log-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.event-log{position:fixed;bottom:3rem;left:50%;transform:translate(-50%);z-index:200;text-align:center;pointer-events:none;animation:event-log-in .25s ease-out}.event-log-text{font-family:PT Mono,monospace;font-size:1.4rem;font-weight:700;line-height:1.9;color:#fff;margin:0;white-space:pre-wrap;word-break:break-word;text-shadow:0 0 12px rgba(0,0,0,.9),0 0 4px rgba(0,0,0,.8)}.event-log-cursor{animation:blink-cursor .7s step-end infinite;color:#fff}.loading,.error{display:flex;align-items:center;justify-content:center;height:100%;font-size:1.2rem;color:#aaa}.error{color:#ff6b6b}.status-badges{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.25rem;margin-bottom:.1rem}.status-badge{font-family:Cinzel,Times New Roman,serif;font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.1rem .4rem;border-radius:2px;border:1px solid currentColor}@keyframes shake{0%{transform:translate(0)}10%{transform:translate(-6px)}20%{transform:translate(6px)}30%{transform:translate(-5px)}40%{transform:translate(5px)}50%{transform:translate(-4px)}60%{transform:translate(4px)}70%{transform:translate(-3px)}80%{transform:translate(3px)}90%{transform:translate(-2px)}to{transform:translate(0)}}.health-item--shake{animation:shake .5s ease-in-out}.combatant-remove-btn{position:absolute;top:.25rem;right:.25rem;width:1.2rem;height:1.2rem;padding:0;background:transparent;border:1px solid #5a2a2a;border-radius:3px;color:#8a4a4a;font-size:.65rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s}.combatant-remove-btn:hover{background:#4a1515;color:#f0b0b0;border-color:#8a3a3a}.admin-panel{background:#130808;border-bottom:1px solid #5c1a1a;padding:.55rem 1.5rem;display:flex;align-items:center;gap:.75rem}.admin-panel-icon{font-size:1rem;color:#c94a4a;line-height:1}.admin-panel-text{display:flex;align-items:baseline;gap:.6rem}.admin-panel-title{font-family:Cinzel,Times New Roman,serif;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#c94a4a}.admin-panel-subtitle{font-size:.7rem;letter-spacing:.06em;color:#7a4040}.done-btn{margin-top:.85rem;width:100%;padding:.5rem 1rem;background:transparent;border:1px solid #c9a84c;border-radius:3px;color:#c9a84c;font-family:Cinzel,Times New Roman,serif;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.done-btn:hover{background:#c9a84c;color:#120f04}.done-btn:active{background:#a88a38;border-color:#a88a38;color:#120f04}.health-item-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.3rem}.health-item-actions{display:flex;gap:.4rem}.damage-btn{padding:.25rem .65rem;background:transparent;border:1px solid #6a2a2a;border-radius:3px;color:#b06060;font-family:Cinzel,Times New Roman,serif;font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.damage-btn:hover{background:#4a1515;color:#f0b0b0;border-color:#8a3a3a}.heal-btn:disabled,.damage-btn:disabled{opacity:.25;cursor:not-allowed}.heal-btn:disabled:hover,.damage-btn:disabled:hover{background:transparent;color:inherit;border-color:inherit}.damage-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000c7;display:flex;align-items:center;justify-content:center;z-index:100}.damage-dialog{background:#130808;border:1px solid #5c1a1a;border-radius:6px;padding:2rem;width:90%;max-width:340px;display:flex;flex-direction:column;gap:1rem}.damage-dialog-title{font-size:1.1rem;font-weight:700;color:#c94a4a;margin:0}.damage-dialog-char{color:#d0c0a0;font-size:.95rem;margin:0}.damage-dialog-input{background:#1a1010;border:1px solid #5c1a1a;border-radius:4px;color:#fff;font-size:2rem;padding:.4rem .75rem;text-align:center;width:100%;outline:none;transition:border-color .15s}.damage-dialog-input:focus{border-color:#c94a4a}.damage-dialog-input::-webkit-outer-spin-button,.damage-dialog-input::-webkit-inner-spin-button{-webkit-appearance:none}.damage-dialog-input[type=number]{-moz-appearance:textfield}.damage-dialog-actions{display:flex;gap:.75rem;justify-content:flex-end}.damage-dialog-cancel{padding:.5rem 1rem;background:transparent;border:1px solid #444;border-radius:3px;color:#888;font-family:Cinzel,Times New Roman,serif;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s}.damage-dialog-cancel:hover{background:#2a2a2a;color:#ccc}.damage-dialog-apply{padding:.5rem 1.2rem;background:#5c1a1a;border:1px solid #8a2a2a;border-radius:3px;color:#f0a0a0;font-family:Cinzel,Times New Roman,serif;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .15s,border-color .15s}.damage-dialog-apply:hover{background:#7a2020;border-color:#aa3a3a}.enemy-combat-section{border-top:1px solid #2a1a1a;border-left:none}.ready-btn{margin-left:1rem;padding:.4rem 1rem;background:transparent;border:1px solid #4ac94a;border-radius:3px;color:#4ac94a;font-family:Cinzel,Times New Roman,serif;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s}.ready-btn:hover{background:#4ac94a;color:#000}.ready-btn:disabled{opacity:.35;cursor:not-allowed}.ready-btn:disabled:hover{background:transparent;color:#4ac94a}.pause-btn{margin-left:1rem;padding:.4rem 1rem;background:transparent;border:1px solid #c9a44a;border-radius:3px;color:#c9a44a;font-family:Cinzel,Times New Roman,serif;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s}.pause-btn:hover{background:#c9a44a;color:#000}.pause-dialog-text{color:#c9a44a;font-family:Crimson Text,Georgia,serif;font-size:.9rem;margin:.5rem 0 1rem;padding:0 .25rem}.enemy-combat-heading{color:#c94a4a!important}.revive-btn{padding:.25rem .65rem;background:transparent;border:1px solid #1a5c5c;border-radius:3px;color:#4ac9c9;font-family:Cinzel,Times New Roman,serif;font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.revive-btn:hover{background:#0f3030;color:#a0f0f0;border-color:#2a8a8a}.heal-btn{padding:.25rem .65rem;background:transparent;border:1px solid #2a5a2a;border-radius:3px;color:#60b060;font-family:Cinzel,Times New Roman,serif;font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.heal-btn:hover{background:#153a15;color:#b0f0b0;border-color:#3a8a3a}.damage-dialog--heal{background:#081308;border-color:#1a5c1a}.damage-dialog--heal .damage-dialog-title{color:#4ac94a}.damage-dialog--heal .damage-dialog-input{background:#0e1a0e;border-color:#1a5c1a}.damage-dialog--heal .damage-dialog-input:focus{border-color:#4ac94a}.damage-dialog-apply--heal{background:#1a5c1a;border-color:#2a8a2a;color:#a0f0a0}.damage-dialog-apply--heal:hover{background:#207a20;border-color:#3aaa3a}.damage-dialog--revive{background:#081313;border-color:#1a5c5c}.damage-dialog--revive .damage-dialog-title{color:#4ac9c9}.damage-dialog--revive .damage-dialog-input{background:#0e1a1a;border-color:#1a5c5c}.damage-dialog--revive .damage-dialog-input:focus{border-color:#4ac9c9}.damage-dialog-hint{font-size:.8rem;color:#5a8a8a;margin:-.25rem 0 0}.damage-dialog-apply--revive{background:#1a5c5c;border-color:#2a8a8a;color:#a0f0f0}.damage-dialog-apply--revive:hover{background:#207a7a;border-color:#3aaaaa}.status-toggles{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.6rem}.status-toggle{padding:.18rem .45rem;border-radius:3px;font-family:Lora,Georgia,serif;font-size:.6rem;font-weight:600;border:1px solid #333;background:transparent;color:#444;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.status-toggle:hover:not(.status-toggle--active){border-color:#555;color:#777}.status-toggle--active{font-weight:700}.character-item--draggable{cursor:grab}.character-item--draggable:active{cursor:grabbing}.health-item--draggable{cursor:grab;position:relative}.health-item--draggable:active{cursor:grabbing}.health-item--draggable:after{content:"⠿";position:absolute;top:.3rem;right:.5rem;font-size:.7rem;color:#5c5c3a;pointer-events:none}.character-item--drag-over{border-top:2px solid #c9a84c!important}.combat-order-add-zone{margin-top:.5rem;min-height:2.5rem;border:1px dashed #4a4a4a;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s}.combat-order-add-zone--drag-over{border-color:#c9a84c;background:#c9a84c0f}.combat-order-add-zone--empty{min-height:4rem;border-color:#5a5a3a}.combat-order-add-hint{color:#5a5a5a;font-family:Cinzel,Times New Roman,serif;font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;pointer-events:none}.combat-order-add-zone--drag-over .combat-order-add-hint{color:#c9a84c}.add-enemy-btn{margin-top:.75rem;width:100%;padding:.5rem 1rem;background:transparent;border:1px dashed #8a2a2a;border-radius:4px;color:#c94a4a;font-family:Cinzel,Times New Roman,serif;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.add-enemy-btn:hover{background:#4a1515;color:#f0b0b0;border-color:#aa3a3a;border-style:solid}.order-btn{margin-left:.5rem;padding:.4rem 1rem;background:transparent;border:1px solid #c9a84c;border-radius:3px;color:#c9a84c;font-family:Cinzel,Times New Roman,serif;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s}.order-btn:hover{background:#c9a84c;color:#000}.view-combat-btn{margin-left:1rem;padding:.4rem 1rem;background:transparent;border:1px solid #4a7aff;border-radius:3px;color:#4a9eff;font-family:Cinzel,Times New Roman,serif;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:background .15s,color .15s}.view-combat-btn:hover{background:#4a9eff;color:#000}.edit-order-dialog{background:#130808;border:1px solid #5c1a1a;border-radius:6px;padding:2rem;width:90%;max-width:400px;display:flex;flex-direction:column;gap:1rem}.edit-order-list{display:flex;flex-direction:column;gap:.5rem;max-height:60vh;overflow-y:auto}.edit-order-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.4rem .6rem;background:#1a1010;border:1px solid #2a1a1a;border-radius:4px}.edit-order-name{display:flex;align-items:center;gap:.5rem;color:#d0c0a0;font-size:.9rem}.edit-order-select{background:#1a1010;border:1px solid #5c1a1a;border-radius:3px;color:#fff;font-size:.9rem;padding:.25rem .5rem;cursor:pointer;outline:none;min-width:3rem;text-align:center}.edit-order-select:focus{border-color:#c9a84c}.edit-order-error{color:#c94a4a;font-size:.85rem;margin:0;padding:.5rem;background:#c94a4a1a;border:1px solid rgba(201,74,74,.3);border-radius:3px}.npc-edit-btn{margin-left:.4rem;padding:.1rem .4rem;background:transparent;border:1px solid #5c3a1a;border-radius:3px;color:#b08040;font-family:Cinzel,Times New Roman,serif;font-size:.55rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s,border-color .15s;vertical-align:middle}.npc-edit-btn:hover{background:#3a2a10;color:#e0b060;border-color:#8a5a2a}.health-edit-input{background:#1a1a1a;border:1px solid #4a9eff;border-radius:3px;color:#fff;font-size:inherit;outline:none;padding:.15rem .3rem}.health-edit-input--name{font-size:1rem;font-weight:600;max-width:180px}.health-edit-input--hp{width:60px;text-align:center;font-size:.85rem}.manage-pcs-btn{margin-top:.35rem}.manage-pcs-dialog{max-width:420px}.manage-pcs-section{margin:.5rem 0}.manage-pcs-heading{font-family:Cinzel,Times New Roman,serif;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#c9a84c;margin:0 0 .5rem}.manage-pcs-list{display:flex;flex-direction:column;gap:.35rem;max-height:200px;overflow-y:auto}.manage-pcs-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .5rem;background:#1a1010;border:1px solid #2a1a1a;border-radius:4px}.manage-pcs-name{color:#d0c0a0;font-size:.9rem}.manage-pcs-empty{color:#5a5a5a;font-style:italic;font-size:.85rem;margin:0;padding:.5rem 0}.manage-pcs-divider{height:1px;background:#2a1a1a;margin:.5rem 0}.manage-pcs-remove-btn{padding:.2rem .5rem;background:transparent;border:1px solid #6a2a2a;border-radius:3px;color:#b06060;font-family:Cinzel,Times New Roman,serif;font-size:.6rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.manage-pcs-remove-btn:hover{background:#4a1515;color:#f0b0b0;border-color:#8a3a3a}.manage-pcs-remove-btn:disabled{opacity:.25;cursor:not-allowed}.manage-pcs-add-btn{padding:.2rem .5rem;background:transparent;border:1px solid #2a5a2a;border-radius:3px;color:#60b060;font-family:Cinzel,Times New Roman,serif;font-size:.6rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.manage-pcs-add-btn:hover{background:#153a15;color:#b0f0b0;border-color:#3a8a3a}.manage-pcs-add-btn:disabled{opacity:.25;cursor:not-allowed}.login-page{display:flex;justify-content:center;align-items:center;height:100vh;background:#1a1a1a}.login-form{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:360px;padding:2rem;background:#222;border:1px solid #333;border-radius:8px}.login-form h1{font-size:1.5rem;text-align:center;color:#c9a84c;margin-bottom:.25rem}.login-form h2{font-size:1.1rem;text-align:center;color:#888;margin-bottom:.5rem}.login-error{background:#3a1515;color:#f55;padding:.5rem .75rem;border-radius:4px;font-size:.9rem}.login-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:#aaa}.login-form input{padding:.6rem .75rem;background:#111;border:1px solid #444;border-radius:4px;color:#fff;font-size:1rem;outline:none;transition:border-color .2s}.login-form input:focus{border-color:#c9a84c}.login-form button{padding:.7rem;background:#c9a84c;border:none;border-radius:4px;color:#111;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;margin-top:.5rem}.login-form button:hover{background:#dbb85c}.login-footer{text-align:center;font-size:.85rem;color:#666}.login-footer a{color:#c9a84c;text-decoration:none}.login-footer a:hover{text-decoration:underline}.signup-page{display:flex;justify-content:center;align-items:center;height:100vh;background:#1a1a1a}.signup-form{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:360px;padding:2rem;background:#222;border:1px solid #333;border-radius:8px}.signup-form h1{font-size:1.5rem;text-align:center;color:#c9a84c;margin-bottom:.25rem}.signup-form h2{font-size:1.1rem;text-align:center;color:#888;margin-bottom:.5rem}.signup-error{background:#3a1515;color:#f55;padding:.5rem .75rem;border-radius:4px;font-size:.9rem}.signup-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:#aaa}.signup-form input,.signup-form select{padding:.6rem .75rem;background:#111;border:1px solid #444;border-radius:4px;color:#fff;font-size:1rem;outline:none;transition:border-color .2s}.signup-form input:focus,.signup-form select:focus{border-color:#c9a84c}.signup-form select{cursor:pointer}.signup-form select option{background:#222}.signup-form button{padding:.7rem;background:#c9a84c;border:none;border-radius:4px;color:#111;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;margin-top:.5rem}.signup-form button:hover{background:#dbb85c}.signup-footer{text-align:center;font-size:.85rem;color:#666}.signup-footer a{color:#c9a84c;text-decoration:none}.signup-footer a:hover{text-decoration:underline}.user-admin{display:flex;flex-direction:column;min-height:100vh;background:#1a1a1a;color:#fff}.user-admin-header{background:#0d0d0d;padding:1.5rem 2rem;border-bottom:2px solid #333;display:flex;align-items:baseline;gap:1rem}.user-admin-header h1{margin:0;font-size:2rem;font-weight:700}.user-admin-count{padding:.75rem 2rem 0;font-size:.85rem;color:#888}.user-admin-status{padding:3rem 2rem;text-align:center;font-size:1.1rem;color:#aaa}.user-admin-error{color:#ff6b6b}.user-admin-create-btn{background:#c9a84c;color:#000;border:none;border-radius:4px;padding:.4rem .85rem;font-size:.85rem;font-weight:600;cursor:pointer;margin-left:auto;transition:opacity .15s}.user-admin-create-btn:hover{opacity:.85}.user-admin-table{width:100%;border-collapse:collapse;margin:1rem 2rem;width:calc(100% - 4rem)}.user-admin-th{text-align:left;padding:.6rem .75rem;font-size:.85rem;color:#888;border-bottom:1px solid #333;font-weight:700;text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none}.user-admin-th--sortable{cursor:pointer;transition:color .15s}.user-admin-th--sortable:hover{color:#fff}.user-admin-th--active{color:#c9a84c}.user-admin-td{padding:.6rem .75rem;font-size:.9rem;border-bottom:1px solid #222}.user-admin-row:hover{background:#222}.user-admin-empty{padding:2rem;text-align:center;color:#888}.user-admin-actions{display:flex;gap:.5rem}.user-admin-action-btn{background:#2a2a2a;color:#fff;border:1px solid #444;border-radius:4px;padding:.3rem .7rem;font-size:.8rem;cursor:pointer;transition:all .15s}.user-admin-action-btn:hover{background:#383838;border-color:#4a9eff}.user-admin-action-btn--delete{color:#ff6b6b}.user-admin-action-btn--delete:hover{border-color:#ff6b6b;background:#2a1515}.user-admin-pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem 2rem 2rem;flex-wrap:wrap}.pagination-ellipsis{padding:.4rem;color:#888}.modal-input--disabled,.modal-input--disabled:focus{color:#666;cursor:not-allowed}.character-page{display:flex;justify-content:center;min-height:100vh;background:#1a1a1a;color:#fff;padding:2rem}.character-status{padding:3rem 2rem;text-align:center;font-size:1.1rem;color:#aaa}.character-status--error{color:#ff6b6b}.character-profile{background:#222;border:1px solid #333;border-radius:12px;max-width:520px;width:100%;overflow:hidden;box-shadow:0 4px 24px #00000080}.character-header{background:#0d0d0d;padding:2rem;display:flex;gap:1.5rem;align-items:center;border-bottom:2px solid #333}.character-sprite{background:#1a1a1a;border:2px solid #444;border-radius:8px;padding:.5rem;flex-shrink:0;line-height:0}.character-header-info{display:flex;flex-direction:column;gap:.3rem;min-width:0}.character-name{font-size:1.75rem;font-weight:700;margin:0;color:#c9a84c;word-wrap:break-word}.character-meta{font-size:.9rem;color:#888}.character-owner{display:inline-block}.character-link{color:#4a9eff;text-decoration:none}.character-link:hover{text-decoration:underline}.character-stats{padding:1.5rem 2rem;display:flex;flex-direction:column;gap:.75rem}.character-stat{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#2a2a2a;border-radius:6px;border-left:3px solid #c9a84c}.character-stat-label{font-size:.85rem;color:#888;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.character-stat-value{font-size:1.1rem;font-weight:600;color:#fff}.character-footer{padding:1rem 2rem 1.5rem;display:flex;justify-content:center}.character-back-btn{display:inline-block;padding:.5rem 1.25rem;background:#2a2a2a;color:#fff;border:1px solid #444;border-radius:4px;font-size:.9rem;text-decoration:none;transition:all .15s}.character-back-btn:hover{background:#383838;border-color:#4a9eff}.character-edit-btn{align-self:flex-start;background:#2a2a2a;color:#4a9eff;border:1px solid #4a9eff;border-radius:4px;padding:.35rem .8rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}.character-edit-btn:hover{background:#4a9eff;color:#000}.character-edit-input{background:#1a1a1a;border:1px solid #4a9eff;border-radius:4px;color:#fff;font-size:inherit;outline:none;padding:.3rem .5rem;width:100%;box-sizing:border-box}.character-edit-input--name{font-size:1.75rem;font-weight:700}.character-edit-input--hp{width:80px;text-align:center;font-size:1.1rem;font-weight:600}.character-edit-actions{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:0 2rem 1rem}.character-edit-error{font-size:.85rem;color:#ff6b6b;text-align:center}.confirm-email-page{display:flex;justify-content:center;align-items:center;height:100vh;background:#1a1a1a}.confirm-email-card{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:400px;padding:2rem;background:#222;border:1px solid #333;border-radius:8px;text-align:center}.confirm-email-card h1{font-size:1.5rem;color:#c9a84c;margin-bottom:.25rem}.confirm-email-card h2{font-size:1.1rem;color:#888;margin:0}.confirm-email-spinner{width:32px;height:32px;border:3px solid #444;border-top-color:#c9a84c;border-radius:50%;animation:spin .8s linear infinite;margin:1rem 0}@keyframes spin{to{transform:rotate(360deg)}}.confirm-email-success{color:#4caf50!important}.confirm-email-error{color:#f55!important}.confirm-email-message{color:#ccc;font-size:.95rem;line-height:1.5;margin:.5rem 0}.confirm-email-button{display:inline-block;padding:.7rem 1.5rem;background:#c9a84c;border-radius:4px;color:#111;font-size:1rem;font-weight:600;text-decoration:none;transition:background .2s;margin-top:.5rem}.confirm-email-button:hover{background:#dbb85c}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}body{background:#000;color:#fff;font-family:Lora,Georgia,serif}h1,h2,h3,h4,h5,h6{font-family:Cinzel,Times New Roman,serif}button,input,select,textarea{font-family:inherit}.top-nav{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 1.5rem;background:#111;border-bottom:1px solid #333}.top-nav-brand{font-family:Cinzel,Times New Roman,serif;font-size:1.1rem;color:#c9a84c;text-decoration:none;font-weight:700}.top-nav-links{display:flex;align-items:center;gap:1rem}.top-nav-link{color:#aaa;text-decoration:none;font-size:.9rem;transition:color .2s}.top-nav-link:hover{color:#fff}.top-nav-user{color:#aaa;font-size:.85rem;text-decoration:none;transition:color .2s}.top-nav-user:hover{color:#fff}.top-nav-user--admin{color:#c9a84c}.top-nav-user--admin:hover{color:#c9a84c;text-decoration:underline}.top-nav-btn{background:none;border:1px solid #555;color:#aaa;padding:.3rem .7rem;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .2s}.top-nav-btn:hover{border-color:#c9a84c;color:#c9a84c}
