.modal-image[data-v-b3c023e5]{max-width:100%;max-height:600px;width:auto;height:auto;object-fit:contain;display:block;margin:0 auto}.modal-content[data-v-b3c023e5]::-webkit-scrollbar{width:8px}.modal-content[data-v-b3c023e5]::-webkit-scrollbar-track{background:var(--input-bg);border-radius:4px}.modal-content[data-v-b3c023e5]::-webkit-scrollbar-thumb{background:#8b6f4780;border-radius:4px}.modal-content[data-v-b3c023e5]::-webkit-scrollbar-thumb:hover{background:#8b6f47b3}.post-image[data-v-b556f531]{width:100%;height:300px;object-fit:cover;object-position:top;display:block}:root[data-theme=dark]{--bg-gradient-1: #2a2a2a;--bg-gradient-2: #1a1a1a;--bg-primary: #2a2a2a;--text-primary: #d4c5b9;--text-secondary: #9a8575;--text-heading: #e8d4a0;--card-bg-1: rgba(40, 40, 40, .9);--card-bg-2: rgba(30, 30, 30, .95);--input-bg: rgba(30, 30, 30, .6);--input-border: #3a3a3a;--border-color: #3a3a3a;--button-secondary-bg: rgba(60, 60, 60, .6);--button-secondary-border: #4a4a4a;--button-secondary-hover: rgba(80, 80, 80, .8);--placeholder-color: #6a6a6a;--hover-bg: rgba(60, 60, 60, .4)}:root[data-theme=light]{--bg-gradient-1: #f5ebe0;--bg-gradient-2: #e8dcc8;--bg-primary: #f5ebe0;--text-primary: #3a2f26;--text-secondary: #6b5d4f;--text-heading: #8b6f47;--card-bg-1: rgba(255, 250, 240, .9);--card-bg-2: rgba(250, 245, 235, .95);--input-bg: rgba(255, 255, 255, .8);--input-border: #d4c5b9;--border-color: #d4c5b9;--button-secondary-bg: rgba(228, 218, 203, .8);--button-secondary-border: #c9b89a;--button-secondary-hover: rgba(212, 197, 185, .9);--placeholder-color: #9a8575;--hover-bg: rgba(228, 218, 203, .5)}:root{--accent-gold-1: #8b6f47;--accent-gold-2: #a88958;--accent-gold-3: #c9a66b;--danger: rgba(139, 69, 69, .9);--danger-light: rgba(139, 69, 69, .2)}*{margin:0;padding:0;box-sizing:border-box}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-col{display:flex;flex-direction:column}.flex-align-center{display:flex;align-items:center}.flex-align-baseline{display:flex;align-items:baseline}.flex-end{display:flex;justify-content:flex-end}.btn-circle{border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.btn-circle-sm{width:24px;height:24px}.btn-circle-md{width:30px;height:30px}.btn-circle-lg{width:40px;height:40px}body{font-family:Crimson Text,serif;background:linear-gradient(135deg,var(--bg-gradient-1) 0%,var(--bg-gradient-2) 50%,var(--bg-gradient-1) 100%);background-attachment:fixed;color:var(--text-primary);min-height:100vh;transition:background .3s ease,color .3s ease}#app{min-height:100vh}.container{max-width:1200px;margin:0 auto;padding:20px}h1,h2,h3,h4,h5,h6{font-family:Cinzel,serif;color:var(--text-heading);text-shadow:1px 1px 2px rgba(0,0,0,.3);transition:color .3s ease}.theme-toggle{background:var(--button-secondary-bg);border:2px solid var(--button-secondary-border);font-size:20px;padding:0;text-transform:none;letter-spacing:normal;transition:all .3s ease}.theme-toggle:hover{background:var(--button-secondary-hover);border-color:var(--accent-gold-2);transform:scale(1.05)}button{cursor:pointer;border:2px solid transparent;padding:8px 16px;border-radius:4px;font-size:14px;font-weight:600;font-family:Cinzel,serif;transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px}button.primary{background:linear-gradient(135deg,var(--accent-gold-1) 0%,#6b5435 100%);color:#f5e6d3;border-color:var(--accent-gold-2);box-shadow:0 2px 8px #8b6f474d}button.primary:hover{background:linear-gradient(135deg,#9d7d52,#7a5f3e);border-color:var(--accent-gold-3);box-shadow:0 4px 12px #8b6f4780;transform:translateY(-1px)}button.primary:disabled{opacity:.5;cursor:not-allowed;transform:none}button.secondary{background:var(--button-secondary-bg);color:var(--text-primary);border-color:var(--button-secondary-border)}button.secondary:hover{background:var(--button-secondary-hover);border-color:var(--accent-gold-2)}input,textarea,select{width:100%;padding:10px;border:2px solid var(--input-border);border-radius:4px;font-size:14px;font-family:Crimson Text,serif;background:var(--input-bg);color:var(--text-primary);transition:all .3s ease}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent-gold-1);background:var(--input-bg);box-shadow:0 0 10px #8b6f474d}input::placeholder,textarea::placeholder{color:var(--placeholder-color)}.card{background:linear-gradient(145deg,var(--card-bg-1) 0%,var(--card-bg-2) 100%);border-radius:8px;border:1px solid rgba(139,111,71,.3);box-shadow:0 4px 12px #0003;padding:16px;margin-bottom:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background .3s ease}.home{min-height:100vh}.header{background:linear-gradient(135deg,var(--card-bg-1) 0%,var(--card-bg-2) 100%);box-shadow:0 4px 12px #0000004d;border-bottom:2px solid rgba(139,111,71,.3);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background .3s ease}.header-content{max-width:1200px;margin:0 auto;padding:16px 20px}.header h1{font-size:28px;color:var(--text-heading);text-shadow:2px 2px 4px rgba(0,0,0,.3);flex-shrink:0}.user-info{gap:16px;color:var(--text-primary);margin-left:auto;flex-shrink:0}.main-content{max-width:1500px;margin:0 auto;padding:20px;display:grid;grid-template-columns:380px 1fr 300px;gap:20px}.campaign-info-column{gap:1rem}.feed{max-width:680px;min-width:0}.sort-controls{gap:8px;margin-bottom:16px;padding:12px;background:var(--card-bg-1);border-radius:8px;border:1px solid rgba(139,111,71,.2);transition:background .3s ease}.sort-label{font-weight:600;color:var(--text-heading);font-size:14px;font-family:Cinzel,serif}.sort-controls button{padding:6px 12px;font-size:12px}.search-input{flex:1;max-width:300px;padding:6px 12px;font-size:12px;border:1px solid rgba(139,111,71,.3);border-radius:4px;background:var(--card-bg-2);color:var(--text-primary);transition:border-color .3s ease,background .3s ease}.search-input:focus{outline:none;border-color:var(--primary-color);background:var(--card-bg-1)}.search-input::placeholder{color:var(--text-secondary);opacity:.7}.loading,.empty-state{text-align:center;padding:40px;color:var(--text-secondary);font-style:italic;font-size:16px}.load-more{text-align:center;margin-top:16px}.load-more button{width:100%}.post-card{scroll-margin-top:80px;position:relative}.post-header{position:relative}.post-header h3{margin-bottom:8px;font-size:20px;color:var(--text-heading)}.delete-button{position:absolute;top:0;right:0;background:transparent;color:#f5e6d3;border:none;width:32px;height:32px;font-size:24px;line-height:1;transition:all .3s;text-transform:none;letter-spacing:normal;padding:0}.delete-button:hover{background:transparent;border:none;transform:scale(1.1)}.post-meta{gap:16px;font-size:12px;color:var(--text-secondary);margin-bottom:12px;font-style:italic}.post-images{margin-bottom:12px}.image-container{position:relative;background:var(--input-bg);border-radius:8px;overflow:hidden;border:1px solid rgba(139,111,71,.2);transition:background .3s ease}.image-container img{width:100%;display:block}.image-controls{position:absolute;bottom:16px;left:50%;transform:translate(-50%);gap:16px;background:var(--card-bg-1);padding:8px 16px;border-radius:20px;border:1px solid rgba(139,111,71,.3)}.nav-button{background:transparent;color:var(--text-heading);font-size:24px;padding:0 8px;border:none;text-transform:none;letter-spacing:normal}.nav-button:hover{background:#8b6f474d;transform:none}.image-counter{color:var(--text-primary);font-size:14px;font-family:Crimson Text,serif}.post-content{white-space:pre-wrap;line-height:1.6;color:var(--text-primary)}.post-title{cursor:pointer;transition:color .2s}.post-title:hover{color:#f5e6d3}.read-more{color:var(--accent-gold-2);cursor:pointer;font-weight:600;margin-left:4px}.read-more:hover{color:var(--accent-gold-3);text-decoration:underline}.modal-overlay,.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:10020}.modal-overlay{padding:20px}.modal-content{background:linear-gradient(145deg,var(--card-bg-1) 0%,var(--card-bg-2) 100%);border-radius:8px;border:2px solid rgba(139,111,71,.4);max-width:800px;width:100%;max-height:90vh;overflow-y:auto;position:relative;padding:24px;box-shadow:0 8px 32px #0006;transition:background .3s ease}.modal-close{position:absolute;top:16px;right:16px;background:var(--button-secondary-bg);border:2px solid var(--button-secondary-border);width:36px;height:36px;font-size:24px;line-height:1;color:var(--text-primary);transition:all .3s;text-transform:none;letter-spacing:normal;padding:0}.modal-close:hover{background:var(--button-secondary-hover);border-color:var(--accent-gold-2);transform:rotate(90deg)}.close-btn{position:absolute;top:16px;right:16px;background:var(--button-secondary-bg);border:2px solid var(--button-secondary-border);font-size:24px;line-height:1;color:var(--text-primary);transition:all .3s;cursor:pointer}.close-btn:hover{background:var(--button-secondary-hover);border-color:var(--accent-gold-2)}.modal-content h2{margin:0 40px 16px 0;font-size:24px;color:var(--text-heading)}.modal-meta{gap:16px;font-size:12px;color:var(--text-secondary);margin-bottom:16px;flex-wrap:wrap;font-style:italic}.modal-images{margin-bottom:16px}.modal-body{white-space:pre-wrap;line-height:1.6;color:var(--text-primary);font-size:15px}.post-creator{margin-bottom:16px}.form-group{margin-bottom:12px}.image-previews{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-bottom:12px}.image-preview{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--input-bg);border:1px solid rgba(139,111,71,.2);transition:background .3s ease}.image-preview img{width:100%;height:100%;object-fit:cover}.remove-image{position:absolute;top:4px;right:4px;background:var(--card-bg-1);color:var(--text-heading);border:1px solid rgba(139,111,71,.3);font-size:20px;line-height:1;transition:all .3s;padding:0;text-transform:none;letter-spacing:normal}.remove-image:hover{background:#8b4545e6;transform:scale(1.1)}.actions{gap:12px}.image-upload-btn{gap:8px;padding:8px 16px;background:var(--button-secondary-bg);border:2px solid var(--button-secondary-border);border-radius:4px;cursor:pointer;transition:all .3s;font-size:14px;font-weight:600;font-family:Cinzel,serif;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.image-upload-btn:hover{background:var(--button-secondary-hover);border-color:var(--accent-gold-2)}.upload-icon{font-size:20px}.sidebar{background:linear-gradient(145deg,var(--card-bg-1) 0%,var(--card-bg-2) 100%);border-radius:8px;border:1px solid rgba(139,111,71,.3);padding:16px;height:fit-content;position:sticky;top:80px;box-shadow:0 4px 12px #0003;transition:background .3s ease;width:300px;min-width:300px;display:flex;flex-direction:column}.sidebar-header{margin-bottom:16px}.sidebar-header h2{font-size:18px;color:var(--text-heading)}.campaign-action-btn{padding:6px 8px;font-size:11px;min-width:60px;text-align:center;white-space:nowrap}.campaigns-tree{max-height:600px;overflow-y:auto}.campaigns-tree::-webkit-scrollbar,.campaign-description-panel .panel-content::-webkit-scrollbar{width:8px}.campaigns-tree::-webkit-scrollbar-track,.campaign-description-panel .panel-content::-webkit-scrollbar-track{background:var(--input-bg);border-radius:4px}.campaigns-tree::-webkit-scrollbar-thumb,.campaign-description-panel .panel-content::-webkit-scrollbar-thumb{background:#8b6f4780;border-radius:4px}.campaigns-tree::-webkit-scrollbar-thumb:hover,.campaign-description-panel .panel-content::-webkit-scrollbar-thumb:hover{background:#8b6f47b3}.campaign-description-panel .panel-content::-webkit-scrollbar{width:6px}.campaign-node{margin-bottom:8px}.campaign-header{padding:8px;cursor:pointer;border-radius:4px;gap:8px;transition:all .3s}.campaign-header:hover{background-color:var(--hover-bg)}.campaign-header.active{background:linear-gradient(90deg,#8b6f474d,#8b6f471a);border-left:3px solid #a88958}.expand-icon{font-size:12px;width:16px;color:var(--accent-gold-2)}.campaign-name{font-weight:600;font-family:Cinzel,serif;color:var(--text-heading)}.posts-list{margin-left:24px;margin-top:4px}.post-item{padding:6px 8px;cursor:pointer;border-radius:4px;font-size:14px;color:var(--text-secondary);transition:all .3s}.post-item:hover{background-color:var(--hover-bg);color:var(--text-primary)}.modal-actions{gap:8px;margin-bottom:16px}.edit-button,.save-button{background:linear-gradient(135deg,var(--accent-gold-1) 0%,#6b5435 100%);color:#f5e6d3;border-color:var(--accent-gold-2);box-shadow:0 2px 8px #8b6f474d}.edit-button{padding:8px 16px;font-size:14px}.edit-button:hover,.save-button:hover:not(:disabled){background:linear-gradient(135deg,#9d7d52,#7a5f3e);border-color:var(--accent-gold-3);box-shadow:0 4px 12px #8b6f4780;transform:translateY(-1px)}.delete-button-modal{background:#8b4545b3;color:#f5e6d3;border:2px solid rgba(139,69,69,.9);padding:8px 16px;font-size:14px}.delete-button-modal:hover{background:#8b4545e6;border-color:#b45a5a;transform:translateY(-1px)}.edit-mode-indicator{background:linear-gradient(90deg,#8b6f474d,#8b6f471a);border-left:3px solid var(--accent-gold-2);padding:8px 12px;margin-bottom:16px;border-radius:4px;font-weight:600;color:var(--accent-gold-2);font-family:Cinzel,serif;font-size:14px}.edit-title{width:100%;min-height:60px;font-size:24px;font-family:Cinzel,serif;font-weight:600;color:var(--text-heading);margin-bottom:16px;resize:vertical}.edit-content{width:100%;min-height:200px;font-size:15px;line-height:1.6;resize:vertical}.edit-actions{gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(139,111,71,.3)}.save-button:disabled{opacity:.5;cursor:not-allowed}.cancel-button,.upload-button{background:var(--button-secondary-bg);color:var(--text-primary);border-color:var(--button-secondary-border)}.upload-button{padding:10px 20px}.cancel-button:hover,.upload-button:hover{background:var(--button-secondary-hover);border-color:var(--accent-gold-2)}.remove-image-button{position:absolute;bottom:60px;left:50%;transform:translate(-50%);background:#8b4545cc;color:#f5e6d3;border:2px solid rgba(139,69,69,.9);padding:8px 16px;font-size:14px}.remove-image-button:hover{background:#8b4545f2;border-color:#b45a5a;transform:translate(-50%) translateY(-2px)}.image-upload{margin-top:12px;text-align:center}.login-container{min-height:100vh}.login-card{background:linear-gradient(145deg,var(--card-bg-1) 0%,var(--card-bg-2) 100%);padding:40px;border-radius:8px;border:2px solid rgba(139,111,71,.4);box-shadow:0 8px 32px #0006;width:100%;max-width:400px;transition:background .3s ease}.login-card h1{text-align:center;margin-bottom:30px;color:var(--text-heading);font-size:32px}.error{color:#d98989;font-size:14px;margin-bottom:16px;padding:8px;background-color:#8b45454d;border:1px solid rgba(139,69,69,.5);border-radius:4px}.login-card button[type=submit]{width:100%;padding:12px;font-size:16px}.toggle{margin-top:16px;text-align:center}.toggle button{width:100%}.login-wrapper .toggle{margin-top:50px}.login-wrapper .toggle button{font-size:10.5px;padding:6px 12px}.language-selector{padding:6px 12px;border:2px solid var(--input-border);border-radius:4px;font-size:14px;cursor:pointer;background:var(--input-bg);color:var(--text-primary);font-family:Crimson Text,serif;transition:all .3s ease;width:auto}.language-selector:focus{outline:none;border-color:var(--accent-gold-1)}.top-controls{position:absolute;top:20px;right:20px;gap:12px;z-index:10}.login-wrapper{min-height:100vh;padding:20px}.logo{max-width:500px;width:100%;height:auto;margin:0 0 -30px;z-index:1}.login-card{background:linear-gradient(145deg,var(--card-bg-1) 0%,var(--card-bg-2) 100%);padding:40px;border-radius:8px;border:2px solid rgba(139,111,71,.4);box-shadow:0 8px 32px #0006;width:100%;max-width:400px;transition:background .3s ease;position:relative;z-index:2}.login-card input{background:#1e1e1ecc;color:#fff;border-color:#8b6f4766}.login-card input::placeholder{color:#ffffff80}.login-card input:focus{background:#1e1e1ee6;color:#fff}.notification-bell{position:relative}.bell-button{position:relative;background:none;border:none;font-size:1.5rem;cursor:pointer;padding:.5rem;border-radius:50%;transition:background-color .2s}.bell-button:hover{background-color:#0000001a}.bell-button.has-notifications{animation:ring 2s ease-in-out infinite}@keyframes ring{0%,to{transform:rotate(0)}10%,30%{transform:rotate(-10deg)}20%,40%{transform:rotate(10deg)}}.badge{position:absolute;top:0;right:0;background-color:#f44;color:#fff;font-size:.75rem;font-weight:700}.dropdown{position:absolute;top:100%;right:0;margin-top:.5rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:350px;max-width:400px;max-height:500px;overflow-y:auto;z-index:1000}.dropdown-header{padding:1rem;border-bottom:1px solid var(--border-color)}.dropdown-header h3{margin:0;font-size:1.1rem}.close-btn{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);padding:0;border-radius:4px}.close-btn:hover{background-color:#0000001a}.invites-list{padding:.5rem}.invite-item{padding:1rem;border-bottom:1px solid var(--border-color)}.invite-item:last-child{border-bottom:none}.invite-content{margin-bottom:.75rem;line-height:1.5}.invite-actions{gap:.5rem}.accept-btn,.reject-btn{flex:1;padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:all .2s}.accept-btn{background-color:#4caf50;color:#fff}.accept-btn:hover{background-color:#45a049}.reject-btn{background-color:#f44336;color:#fff}.reject-btn:hover{background-color:#da190b}.toast-container{position:fixed;bottom:20px;right:20px;z-index:9999;gap:10px;pointer-events:none}.toast{gap:12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:1rem;min-width:300px;max-width:400px;box-shadow:0 4px 12px #00000026;cursor:pointer;pointer-events:all;transition:all .3s ease}.toast:hover{transform:translate(-5px);box-shadow:0 6px 16px #0003}.toast-icon{font-size:1.5rem;flex-shrink:0}.toast-content{flex:1}.toast-title{font-weight:700;margin-bottom:.25rem;color:var(--text-primary)}.toast-message{font-size:.9rem;color:var(--text-secondary)}.toast-close{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);padding:0;border-radius:4px;flex-shrink:0}.toast-close:hover{background-color:#0000001a}.toast-enter-active,.toast-leave-active{transition:all .3s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(100%)}.campaign-group{margin-bottom:1.5rem}.group-title{font-size:.9rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.75rem;padding:0 .5rem}.campaign-header{gap:.5rem}.invite-btn{margin-left:auto;background-color:var(--accent-gold-2);color:#fff;border:none;font-size:1.2rem;font-weight:700;transition:all .2s;opacity:0}.campaign-header:hover .invite-btn{opacity:1}.invite-btn:hover{background-color:var(--accent-gold-3);transform:scale(1.1)}.delete-btn{background-color:#dc3545;color:#fff;border:none;font-size:1.2rem;font-weight:700;transition:all .2s;opacity:0;margin-left:.25rem}.campaign-header:hover .delete-btn{opacity:1}.delete-btn:hover{background-color:#c82333;transform:scale(1.1)}.modal-header{padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h3{margin:0;font-size:1.25rem}.modal-header .close-btn{font-size:2rem;width:32px;height:32px}.modal-body{flex:1;overflow-y:auto;padding:1.5rem}.instruction{margin-bottom:1rem;color:var(--text-secondary);font-size:.9rem}.users-list{gap:.5rem}.user-item{gap:1rem;padding:1rem;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .2s}.user-item:hover{background-color:#0000000d}.user-item.selected{background-color:#4caf501a;border-color:#4caf50}.user-item input[type=checkbox]{cursor:pointer;width:18px;height:18px}.user-item .user-info{flex:1}.username{font-weight:500;margin-bottom:.25rem}.email{font-size:.85rem;color:var(--text-secondary)}.modal-footer{gap:.75rem;padding:1.5rem;border-top:1px solid var(--border-color)}.modal-footer button{padding:.75rem 1.5rem;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.modal-footer button:disabled{opacity:.5;cursor:not-allowed}.modal-footer .primary{background-color:#4caf50;color:#fff}.modal-footer .primary:hover:not(:disabled){background-color:#45a049}.modal-footer .secondary{background-color:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.modal-footer .secondary:hover{background-color:#0000000d}.campaign-description-panel{height:fit-content;width:380px;min-width:380px}.campaign-description-panel .panel-header{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(139,111,71,.3)}.campaign-description-panel .panel-header h3{font-size:16px;color:var(--text-heading);margin:0}.campaign-description-panel .panel-content{padding-right:8px}.campaign-description-panel .description-text{white-space:pre-wrap;line-height:1.6;color:var(--text-primary);font-size:14px;margin:0}.campaign-description-panel .no-description{color:var(--text-secondary);font-style:italic;font-size:14px;margin:0}.campaign-description-panel .edit-description-textarea{width:100%;min-height:300px;font-size:14px;line-height:1.6;resize:vertical;font-family:Crimson Text,serif}.campaign-description-panel .no-campaign-selected{padding:20px 0;text-align:center}.comments-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.comments-header{cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:1rem}.comments-header:hover h4{color:var(--accent-gold-1)}.comments-header h4{margin:0;font-size:1rem;color:var(--text-heading);font-weight:600;transition:color .2s}.toggle-icon{font-size:.8rem;color:var(--text-secondary);transition:color .2s}.comments-header:hover .toggle-icon{color:var(--accent-gold-1)}.comments-list{margin-bottom:1rem}.comment-item{padding:.75rem;margin-bottom:.5rem;background:#f8f9fa00!important;background-image:none!important;border-radius:8px;transition:background-color .2s}.comment-item:hover{background:#f0f1f200!important;background-image:none!important}.comment-content{flex:1;min-width:0}.comment-header{gap:.75rem;margin-bottom:.5rem}.comment-info{gap:.75rem}.comment-author{font-weight:600;color:var(--text-heading);font-size:.9rem}.comment-date{font-size:.75rem;color:var(--text-secondary)}.comment-text{margin:0;color:var(--text-primary);font-size:.9rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.comment-edit-input{width:100%;min-height:60px;padding:.5rem;border:2px solid var(--input-border);border-radius:4px;font-family:inherit;font-size:.9rem;resize:vertical;background:var(--input-bg);color:var(--text-primary);transition:all .3s ease}.comment-actions{gap:.25rem;margin-left:auto;opacity:0;transition:opacity .2s;pointer-events:none}.comment-actions.visible{opacity:1;pointer-events:auto}.comment-action-btn{background:none;border:none;cursor:pointer;padding:.25rem .5rem;font-size:1rem;border-radius:4px;transition:background-color .2s}.comment-action-btn:hover{background-color:var(--hover-bg)}.comment-action-btn.edit-btn{color:var(--accent-gold-2)}.comment-action-btn.save-btn{color:var(--accent-gold-1)}.comment-action-btn.cancel-btn{color:var(--text-secondary)}.comment-action-btn.delete-btn{color:#8b4545e6;font-size:1.2rem}.comment-input-container{position:relative;gap:.5rem}.comment-input{flex:1;min-height:40px;max-height:120px;padding:.5rem;border:2px solid var(--input-border);border-radius:8px;font-family:inherit;font-size:.9rem;resize:vertical;transition:all .3s ease;background:var(--input-bg);color:var(--text-primary)}.comment-input:focus{outline:none;border-color:var(--accent-gold-1);box-shadow:0 0 10px #8b6f474d}.comment-post-btn{cursor:pointer;font-size:18px;padding:6px 12px;transition:opacity .2s;-webkit-user-select:none;user-select:none}.comment-post-btn:hover:not(.disabled){opacity:.7}.comment-post-btn.disabled{opacity:.3;cursor:not-allowed}.campaign-players-panel{margin-bottom:1rem}.campaign-players-panel .panel-content{padding:1rem}.campaign-players-panel .loading{text-align:center;padding:1rem;color:var(--text-secondary)}.campaign-players-panel .players-section,.campaign-players-panel .invites-section{margin-bottom:1.5rem}.campaign-players-panel .invites-section{margin-bottom:0}.campaign-players-panel .section-label{font-size:.9rem;font-weight:600;margin-bottom:.5rem;color:var(--text-primary)}.campaign-players-panel .empty-message{color:var(--text-secondary);font-size:.9rem;font-style:italic}.campaign-players-panel .players-list{gap:.5rem}.campaign-players-panel .player-item{padding:.5rem .75rem;background:var(--hover-bg);border-radius:4px;transition:background .2s}.campaign-players-panel .player-item:hover{background:var(--hover-bg);opacity:.8}.campaign-players-panel .player-item.pending{opacity:.7}.campaign-players-panel .player-name{font-size:.9rem;color:var(--text-primary)}.campaign-players-panel .remove-btn{background:none;border:none;color:#f5e6d3;font-size:1.5rem;line-height:1;padding:0;border-radius:4px;transition:background .2s}.campaign-players-panel .remove-btn:hover{background:transparent;border:none;transform:scale(1.1)}.hidden-file-input{display:none}.confirm-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:10020;padding:20px}.confirm-modal-content{background:linear-gradient(145deg,var(--card-bg-1) 0%,var(--card-bg-2) 100%);border:2px solid rgba(139,111,71,.4);border-radius:8px;padding:2rem;max-width:500px;width:90%;box-shadow:0 8px 32px #0006;transition:background .3s ease}.confirm-modal-title{margin:0 0 1rem;color:var(--text-primary);font-size:1.5rem;text-align:center}.confirm-modal-message{margin:0 0 2rem;color:var(--text-secondary);font-size:1rem;text-align:center;line-height:1.5}.confirm-modal-actions{display:flex;justify-content:center;align-items:center;gap:2rem}.confirm-modal-btn{width:60px;height:60px;border-radius:50%;border:2px solid;background:transparent;font-size:2rem;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.confirm-btn{color:#4ade80;border-color:#4ade80}.confirm-btn:hover{background:#4ade80;color:var(--card-bg-1);transform:scale(1.1)}.cancel-btn{color:#ef4444;border-color:#ef4444}.cancel-btn:hover{background:#ef4444;color:var(--card-bg-1);transform:scale(1.1)}.campaign-players-panel .panel-header{padding:12px 16px;margin-bottom:0;border-bottom:1px solid rgba(139,111,71,.3);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s}.campaign-players-panel .panel-header:hover{background:var(--hover-bg)}.campaign-players-panel .panel-header:hover h3{color:var(--accent-gold-1)}.campaign-players-panel .panel-header h3{font-size:16px;color:var(--text-heading);margin:0;transition:color .2s}.campaign-players-panel .toggle-icon{font-size:.8rem;color:var(--text-secondary);transition:color .2s,transform .2s}.campaign-players-panel .panel-header:hover .toggle-icon{color:var(--accent-gold-1)}.campaign-players-panel .collapse-enter-active,.campaign-players-panel .collapse-leave-active{transition:all .3s ease;overflow:hidden}.campaign-players-panel .collapse-enter-from,.campaign-players-panel .collapse-leave-to{opacity:0;max-height:0}.campaign-players-panel .collapse-enter-to,.campaign-players-panel .collapse-leave-from{opacity:1;max-height:1000px}.campaign-description-panel .campaign-description-menu-container .menu-toggle-btn{opacity:0;transition:opacity .2s,transform .2s}.campaign-description-panel .panel-header:hover .campaign-description-menu-container .menu-toggle-btn{opacity:1}.campaign-description-panel .panel-content.scrollable{max-height:400px;overflow-y:auto}.campaign-characters-panel .character-item{padding:12px;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background-color .2s;gap:12px}.campaign-characters-panel .character-item:hover{background-color:var(--hover-bg)}.campaign-characters-panel .character-item:last-child{border-bottom:none}.campaign-characters-panel .character-portrait{width:60px;height:60px;flex-shrink:0;border-radius:4px;overflow:hidden;border:2px solid var(--border-color)}.campaign-characters-panel .character-portrait img{width:100%;height:100%;object-fit:cover;object-position:top}.campaign-characters-panel .character-portrait .no-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--secondary-bg);font-size:24px;color:var(--text-secondary)}.campaign-characters-panel .character-info{flex:0 0 150px;gap:4px}.campaign-characters-panel .character-name{font-weight:700;font-size:14px}.campaign-characters-panel .character-race,.campaign-characters-panel .character-class{font-size:12px;color:var(--text-secondary)}.campaign-characters-panel .character-description-preview{flex:1;min-width:80px;font-size:13px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaign-characters-panel .character-actions{gap:8px;flex-shrink:0;margin-left:auto}.campaign-characters-panel .character-actions .menu-toggle-btn{opacity:0;transition:opacity .2s,transform .2s}.campaign-characters-panel .character-item:hover .character-actions .menu-toggle-btn{opacity:1}.campaign-characters-panel .character-actions button{background:none;border:none;cursor:pointer;font-size:18px;padding:4px;transition:opacity .2s,transform .2s}.campaign-characters-panel .character-actions button:hover{transform:scale(1.1)}.campaign-characters-panel .empty-message{text-align:center;padding:2rem;color:var(--text-secondary)}.campaign-characters-panel .empty-message .hint{font-size:.9rem;margin-top:.5rem}.character-detail-modal{max-width:600px;width:90%}.character-detail-modal .character-detail-content{display:flex;flex-direction:column;gap:1.5rem}.character-detail-modal .character-header{display:flex;gap:1.5rem;align-items:flex-start}.character-detail-modal .character-image{flex-shrink:0;width:200px;height:300px;border-radius:8px;overflow:hidden;border:3px solid var(--border-color)}.character-detail-modal .character-image img{width:100%;height:100%;object-fit:contain;background-color:var(--secondary-bg)}.character-detail-modal .character-title{flex:1}.character-detail-modal .character-title h2{margin:0 0 .5rem;font-size:24px;color:var(--text-primary)}.character-detail-modal .character-subtitle{display:flex;align-items:center;gap:.5rem;font-size:16px;color:var(--text-secondary)}.character-detail-modal .separator{color:var(--text-tertiary)}.character-detail-modal .character-description h4{margin:0 0 .75rem;font-size:16px;color:var(--text-primary)}.character-detail-modal .character-description p{margin:0;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;word-break:break-all}.character-detail-modal .no-description{text-align:center;padding:2rem;color:var(--text-secondary);font-style:italic}.character-modal{max-width:600px;width:90%}.character-modal .character-form{display:flex;flex-direction:column;gap:1rem}.character-modal .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.character-modal .form-group{display:flex;flex-direction:column;gap:.5rem}.character-modal .form-group label{font-weight:500;font-size:14px}.character-modal .form-group input,.character-modal .form-group textarea{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-family:inherit;font-size:14px}.character-modal .form-group textarea{resize:vertical}.character-modal .image-upload-area{border:2px dashed var(--border-color);border-radius:4px;padding:1rem;text-align:center}.character-modal .image-preview{display:flex;flex-direction:column;align-items:center;gap:1rem}.character-modal .image-preview img{max-width:200px;max-height:200px;border-radius:4px;object-fit:cover}.character-modal .remove-image-btn{padding:.5rem 1rem;background-color:var(--danger-color, #dc3545);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.character-modal .remove-image-btn:hover{opacity:.9}.character-modal .upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:1rem}.character-modal .file-input{display:none}.character-modal .upload-btn{padding:.5rem 1rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.character-modal .upload-btn:hover{opacity:.9}.character-modal .modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem}.file-upload-area{margin:1rem 0}.file-input{display:none}.file-label{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem;border:2px dashed var(--border-color);border-radius:8px;cursor:pointer;transition:all .3s ease;background:var(--input-bg)}.file-label:hover{border-color:var(--accent-gold-2);background:var(--hover-bg)}.file-icon{font-size:3rem}.file-name{font-weight:600;color:var(--text-primary);text-align:center;word-break:break-all}.file-placeholder{color:var(--text-secondary);font-style:italic}.export-btn{margin-left:.25rem;background-color:var(--accent-gold-1);color:#fff;border:none;font-size:1rem;font-weight:700;transition:all .2s;opacity:0}.campaign-header:hover .export-btn{opacity:1}.export-btn:hover{background-color:var(--accent-gold-2);transform:scale(1.1)}.campaign-menu-container{position:relative}.sidebar-header .campaign-menu-container{margin-left:0}.campaign-header .campaign-menu-container{margin-left:auto}.menu-toggle-btn{background:transparent;border:none;font-size:16px;cursor:pointer;padding:4px 8px;color:var(--text-primary);border-radius:4px;transition:all .3s ease;text-transform:none;letter-spacing:normal;font-family:Crimson Text,serif}.campaign-header .menu-toggle-btn{opacity:0}.campaign-header:hover .menu-toggle-btn{opacity:1}.menu-toggle-btn:hover{background:var(--hover-bg);color:var(--text-heading);transform:scale(1.1)}.campaign-actions-menu{position:fixed;background:linear-gradient(145deg,var(--card-bg-1) 0%,var(--card-bg-2) 100%);border:1px solid rgba(139,111,71,.3);border-radius:8px;box-shadow:0 4px 12px #0003;min-width:200px;z-index:10010;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.menu-item{width:100%;display:flex;align-items:center;gap:12px;padding:12px 16px;border:none;background:transparent;cursor:pointer;text-align:left;font-size:14px;font-family:Cinzel,serif;color:var(--text-primary);transition:all .3s ease;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.menu-item:hover{background:var(--hover-bg);color:var(--text-heading)}.menu-item:not(:last-child){border-bottom:1px solid rgba(139,111,71,.2)}.menu-icon{font-size:18px;font-weight:700;width:20px;text-align:center;color:var(--accent-gold-2)}.hamburger-btn{background:transparent;border:none;cursor:pointer;padding:8px;display:flex;flex-direction:column;gap:4px;z-index:10002;transition:all .3s ease}.hamburger-btn span{display:block;width:25px;height:3px;background:var(--text-heading);border-radius:2px;transition:all .3s ease}.hamburger-btn.active span:nth-child(1){transform:rotate(45deg) translate(6px,6px)}.hamburger-btn.active span:nth-child(2){opacity:0}.hamburger-btn.active span:nth-child(3){transform:rotate(-45deg) translate(6px,-6px)}.hamburger-btn:hover span{background:var(--accent-gold-2)}.menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hamburger-menu{position:fixed;top:0;left:0;bottom:0;width:85%;max-width:400px;background:linear-gradient(145deg,var(--card-bg-1) 0%,var(--card-bg-2) 100%);box-shadow:4px 0 20px #0000004d;z-index:10001;overflow-y:auto;border-right:2px solid rgba(139,111,71,.3)}.menu-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:2px solid rgba(139,111,71,.3);position:sticky;top:0;background:linear-gradient(145deg,var(--card-bg-1) 0%,var(--card-bg-2) 100%);z-index:10}.menu-header h2{margin:0;font-size:24px;color:var(--text-heading)}.close-menu-btn{background:transparent;border:none;font-size:32px;color:var(--text-heading);cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;text-transform:none;letter-spacing:normal}.close-menu-btn:hover{color:var(--accent-gold-2);transform:rotate(90deg)}.menu-content{padding:20px;display:flex;flex-direction:column;gap:20px}.menu-section{background:transparent;border-radius:8px;padding:0}.menu-section:has(.card){background:transparent;border:none;padding:0}.menu-controls{display:flex;flex-direction:column;gap:16px;background:linear-gradient(145deg,var(--card-bg-1) 0%,var(--card-bg-2) 100%);border-radius:8px;border:1px solid rgba(139,111,71,.3);padding:16px}.menu-controls h3{margin:0 0 8px;font-size:18px;color:var(--text-heading)}.control-group{display:flex;flex-direction:column;gap:8px}.control-group label{font-size:14px;font-weight:600;color:var(--text-primary);font-family:Cinzel,serif}.logout-btn{width:100%;margin-top:8px}.menu-overlay-enter-active,.menu-overlay-leave-active{transition:opacity .3s ease}.menu-overlay-enter-from,.menu-overlay-leave-to{opacity:0}.menu-slide-enter-active,.menu-slide-leave-active{transition:transform .3s ease}.menu-slide-enter-from,.menu-slide-leave-to{transform:translate(-100%)}.mobile-only{display:none}.desktop-only{display:flex}.mobile-campaigns-tree{display:none;max-width:680px;width:100%}@media (max-width: 1200px) and (max-height: 855px){.mobile-only{display:flex}.desktop-only{display:none!important}.mobile-campaigns-tree{display:block;margin-bottom:20px;max-width:100%}.campaign-info-column .campaign-description-panel{display:none}.hamburger-menu .campaign-description-panel{display:flex}.main-content{grid-template-columns:1fr;padding:10px}.header-content{padding:12px 16px}.header h1{font-size:20px;margin-left:8px}.user-info{gap:12px}.username-label{font-size:14px}.feed{max-width:100%}.sort-controls{flex-wrap:wrap;gap:8px}.search-input{max-width:100%;width:100%}.sidebar{position:static}.hamburger-menu .sidebar{width:100%;min-width:unset;margin-bottom:0}.hamburger-menu .campaign-description-panel{width:100%;min-width:unset}.menu-section .card{margin-bottom:0}}
