@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--bg-primary:#0a0a0f;--bg-secondary:#12121e;--bg-tertiary:#1b1b2f;--border-color:#ffffff14;--border-hover:#ffffff29;--text-primary:#f5f5f7;--text-secondary:#a0a0b0;--text-muted:#62627a;--accent-character:#00e5ff;--accent-character-rgb:0, 229, 255;--accent-location:#d500f9;--accent-location-rgb:213, 0, 249;--accent-plot:#ff9100;--accent-plot-rgb:255, 145, 0;--accent-note:#00e676;--accent-note-rgb:0, 230, 118;--color-danger:#ff1744;--color-warning:#ffea00;--color-info:#2979ff;--font-heading:"Outfit", sans-serif;--font-body:"Inter", sans-serif;--glass-bg:#12121eb3;--glass-border:#ffffff0f;--glass-shadow:0 8px 32px 0 #0000005e;--transition-smooth:all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}input,textarea,button,select{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-container{background:radial-gradient(circle at 50% 50%, #15152a 0%, var(--bg-primary) 80%);width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-right:1px solid var(--glass-border);z-index:10;flex-direction:column;flex-shrink:0;width:320px;height:100%;display:flex}.sidebar-header{border-bottom:1px solid var(--border-color);padding:24px}.app-logo{font-family:var(--font-heading);background:linear-gradient(135deg,#00e5ff 0%,#d500f9 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;align-items:center;gap:10px;font-size:1.5rem;font-weight:800;display:flex}.user-selector{border:1px solid var(--border-color);background:#ffffff08;border-radius:8px;justify-content:space-between;align-items:center;margin-top:16px;padding:10px;display:flex}.user-selector span{color:var(--text-secondary);font-size:.8rem}.user-selector select{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;border-radius:6px;outline:none;padding:4px 8px;font-size:.85rem}.sidebar-menu{flex:1;padding:20px 16px;overflow-y:auto}.menu-section-title{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-top:24px;margin-bottom:12px;padding-left:8px;font-size:.75rem}.menu-section-title:first-child{margin-top:0}.menu-item{cursor:pointer;color:var(--text-secondary);transition:var(--transition-smooth);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:10px 12px;font-weight:500;display:flex}.menu-item:hover{color:var(--text-primary);background:#ffffff0a}.menu-item.active{color:var(--text-primary);background:#ffffff14}.menu-item-label{align-items:center;gap:12px;font-size:.9rem;display:flex}.badge{border-radius:4px;padding:2px 6px;font-size:.7rem;font-weight:700}.badge.pending{color:var(--accent-plot);background:#ff910026;border:1px solid #ff91004d;animation:2s infinite pulse}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.sidebar-footer{border-top:1px solid var(--border-color);color:var(--text-secondary);background:#0000001a;justify-content:space-between;align-items:center;padding:16px 24px;font-size:.8rem;display:flex}.sync-status{align-items:center;gap:6px;display:flex}.sync-dot{background:var(--accent-note);width:8px;height:8px;box-shadow:0 0 8px var(--accent-note);border-radius:50%}.main-content{flex-direction:column;flex:1;height:100%;display:flex;position:relative;overflow:hidden}.top-header{border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5;background:#0a0a0f66;justify-content:space-between;align-items:center;height:70px;padding:0 32px;display:flex}.section-title{font-family:var(--font-heading);align-items:center;gap:12px;font-size:1.4rem;font-weight:700;display:flex}.header-actions{align-items:center;gap:16px;display:flex}.presence-list{align-items:center;gap:4px;display:flex}.user-avatar{border:2px solid var(--bg-primary);color:#fff;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;font-weight:700;transition:transform .2s;display:flex;position:relative}.user-avatar:hover{z-index:10;transform:translateY(-2px)scale(1.1)}.user-avatar.user-A{background:linear-gradient(135deg,#00e5ff,#00838f)}.user-avatar.user-B{background:linear-gradient(135deg,#d500f9,#7b1fa2)}.user-status-dot{border:2px solid var(--bg-primary);border-radius:50%;width:10px;height:10px;position:absolute;bottom:0;right:0}.user-status-dot.online{background:var(--accent-note)}.user-status-dot.offline{background:var(--text-muted)}.btn{cursor:pointer;transition:var(--transition-smooth);border:1px solid #0000;border-radius:8px;outline:none;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:600;display:flex}.btn-primary{color:#050510;background:linear-gradient(135deg,#00e5ff,#00b0ff)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 0 15px #00e5ff66}.btn-secondary{border-color:var(--border-color);color:var(--text-primary);background:#ffffff0d}.btn-secondary:hover{border-color:var(--text-muted);background:#ffffff1a}.btn-danger{color:var(--color-danger);background:#ff174426;border-color:#ff17444d}.btn-danger:hover{background:#ff174440}.btn-success{color:var(--accent-note);background:#00e67626;border-color:#00e6764d}.btn-success:hover{background:#00e67640}.content-body{flex:1;padding:32px;position:relative;overflow-y:auto}.wiki-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.wiki-card{background:var(--bg-secondary);border:1px solid var(--border-color);cursor:pointer;transition:var(--transition-smooth);border-radius:12px;padding:20px;position:relative;overflow:hidden}.wiki-card:hover{border-color:var(--border-hover);transform:translateY(-2px);box-shadow:0 10px 20px #0003}.wiki-card:before{content:"";width:4px;height:100%;position:absolute;top:0;left:0}.wiki-card.character:before{background:var(--accent-character)}.wiki-card.location:before{background:var(--accent-location)}.wiki-card.plot:before{background:var(--accent-plot)}.wiki-card.note:before{background:var(--accent-note)}.wiki-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.wiki-card-title{font-family:var(--font-heading);font-size:1.15rem;font-weight:600}.wiki-card-snippet{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:16px;font-size:.85rem;line-height:1.5;display:-webkit-box;overflow:hidden}.wiki-card-footer{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.wiki-details-container{grid-template-columns:1fr 340px;gap:32px;height:100%;display:grid;overflow:hidden}.wiki-details-main{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;flex-direction:column;height:100%;display:flex;overflow:hidden}.wiki-details-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:24px 32px;display:flex}.wiki-details-title-wrapper{align-items:center;gap:16px;display:flex}.type-indicator{text-transform:uppercase;letter-spacing:.05em;border-radius:6px;padding:4px 8px;font-size:.7rem;font-weight:700}.type-indicator.character{color:var(--accent-character);background:#00e5ff26}.type-indicator.location{color:var(--accent-location);background:#d500f926}.type-indicator.plot{color:var(--accent-plot);background:#ff910026}.type-indicator.note{color:var(--accent-note);background:#00e67626}.wiki-details-body{flex:1;padding:32px;font-size:1.05rem;line-height:1.7;overflow-y:auto}.wiki-details-body h1,.wiki-details-body h2,.wiki-details-body h3{font-family:var(--font-heading);margin-top:24px;margin-bottom:12px}.wiki-details-body p{color:#e2e2e8;margin-bottom:16px}.wiki-link{color:var(--accent-character);transition:var(--transition-smooth);cursor:pointer;border-bottom:1px dashed #00e5ff66;padding:0 2px;font-weight:600;text-decoration:none}.wiki-link:hover{background:#00e5ff1a;border-bottom-style:solid}.wiki-details-aside{flex-direction:column;gap:24px;height:100%;display:flex;overflow-y:auto}.aside-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:20px}.aside-title{font-family:var(--font-heading);color:var(--text-primary);align-items:center;gap:8px;margin-bottom:12px;font-size:.95rem;font-weight:700;display:flex}.approval-banner{background:#ff910014;border:1px solid #ff910040;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:16px 20px;display:flex}.approval-banner-info{align-items:flex-start;gap:12px;display:flex}.approval-banner-title{color:var(--accent-plot);margin-bottom:4px;font-size:.9rem;font-weight:600}.approval-banner-desc{color:var(--text-secondary);font-size:.8rem}.approval-banner-actions{gap:8px;display:flex}.diff-container{background:#0d0d14;border:1px solid #ffffff0a;border-radius:8px;flex-direction:column;gap:12px;margin-top:16px;padding:16px;display:flex}.diff-title{color:var(--text-muted);text-transform:uppercase;font-size:.8rem;font-weight:700}.diff-content{font-family:var(--font-body);white-space:pre-wrap;font-size:.95rem;line-height:1.6}.diff-added{color:#69f0ae;background:#00e67626;border-bottom:1px solid #00e6764d;border-radius:4px;padding:2px 4px;text-decoration:none}.diff-removed{color:#ff5252;background:#ff174426;border-bottom:1px solid #ff17444d;border-radius:4px;padding:2px 4px;text-decoration:line-through}.editor-form{flex-direction:column;flex:1;gap:16px;padding:24px;display:flex;overflow-y:auto}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.form-input{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);transition:var(--transition-smooth);border-radius:8px;outline:none;padding:12px;font-size:.95rem}.form-input:focus{border-color:var(--accent-character);box-shadow:0 0 8px #00e5ff33}.form-textarea{resize:vertical;min-height:250px}.editor-footer{border-top:1px solid var(--border-color);background:#0000001a;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.comments-container{flex-direction:column;gap:12px;max-height:240px;margin-bottom:12px;display:flex;overflow-y:auto}.comment-card{border:1px solid var(--border-color);background:#ffffff05;border-radius:8px;flex-direction:column;gap:4px;padding:10px;display:flex}.comment-header{justify-content:space-between;align-items:center;display:flex}.comment-user{align-items:center;gap:6px;font-size:.75rem;font-weight:700;display:flex}.comment-time{color:var(--text-muted);font-size:.65rem}.comment-text{color:var(--text-secondary);font-size:.8rem;line-height:1.4}.comment-form{gap:8px;display:flex}.comment-input{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:6px;outline:none;flex:1;padding:6px 10px;font-size:.8rem}.relation-web-container{border:1px solid var(--border-color);background:radial-gradient(circle,#112 0%,#050508 100%);border-radius:16px;width:100%;height:100%;position:relative;overflow:hidden}.relation-canvas{cursor:grab;width:100%;height:100%;display:block}.relation-canvas:active{cursor:grabbing}.relation-web-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-color);pointer-events:none;background:#0a0a0fcc;border-radius:8px;flex-direction:column;gap:6px;padding:12px;font-size:.8rem;display:flex;position:absolute;top:20px;left:20px}.legend-item{align-items:center;gap:8px;display:flex}.legend-color{border-radius:50%;width:10px;height:10px}.relation-web-toolbar{gap:8px;display:flex;position:absolute;top:20px;right:20px}.relationship-details-drawer{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--accent-character);z-index:10;background:#12121ef2;border-radius:12px;flex-direction:column;gap:8px;width:480px;max-width:90%;padding:16px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00e5ff40}.relationship-header{font-family:var(--font-heading);justify-content:space-between;align-items:center;font-size:1.05rem;font-weight:700;display:flex}.timeline-container{flex-direction:column;gap:20px;padding:8px;display:flex}.timeline-scroll{flex-direction:column;margin-top:10px;padding-left:32px;display:flex;position:relative}.timeline-line{background:linear-gradient(180deg, var(--accent-plot) 0%, var(--accent-character) 100%);border-radius:1px;width:2px;position:absolute;top:0;bottom:0;left:10px}.timeline-node{margin-bottom:24px;position:relative}.timeline-dot{background:var(--bg-primary);border:3px solid var(--accent-plot);z-index:2;width:14px;height:14px;transition:var(--transition-smooth);border-radius:50%;position:absolute;top:6px;left:-28px}.timeline-node:hover .timeline-dot{box-shadow:0 0 10px var(--accent-plot);transform:scale(1.3)}.timeline-card{background:var(--bg-secondary);border:1px solid var(--border-color);transition:var(--transition-smooth);cursor:pointer;border-radius:12px;padding:18px}.timeline-card:hover{border-color:var(--accent-plot);transform:translate(4px)}.timeline-date{font-family:var(--font-heading);color:var(--accent-plot);margin-bottom:4px;font-size:.8rem;font-weight:700}.timeline-title{font-family:var(--font-heading);margin-bottom:6px;font-size:1.05rem;font-weight:600}.timeline-desc{color:var(--text-secondary);font-size:.85rem;line-height:1.5}@media (width<=768px){.app-container{position:relative;overflow:hidden;flex-direction:column!important}.sidebar{z-index:999;width:280px;transition:transform .3s cubic-bezier(.4,0,.2,1);top:0;left:-320px;box-shadow:10px 0 30px #00000080;height:100vh!important;position:fixed!important}.sidebar.open{transform:translate(320px)}.main-content{flex-direction:column;display:flex;overflow:hidden;width:100vw!important;height:100vh!important}.mobile-menu-btn,.mobile-close-btn{display:flex!important}.user-greeting,.sign-out-btn,.user-greeting-avatar,.sign-in-btn,.user-profile-header{display:none!important}.top-header{padding:0 12px!important}.section-title{text-overflow:ellipsis!important;white-space:nowrap!important;max-width:45%!important;font-size:1.1rem!important;overflow:hidden!important}.section-title span{text-overflow:ellipsis!important;white-space:nowrap!important;overflow:hidden!important}.wiki-grid{grid-template-columns:1fr!important;padding:12px!important}.wiki-details-container{position:relative;overflow-x:hidden;flex-direction:column!important;height:100%!important;display:flex!important}.wiki-details-main{border-bottom:1px solid var(--border-color);border-right:none!important;flex:1!important;width:100%!important;height:100%!important;padding:16px!important}.wiki-details-aside{z-index:999;width:300px;transition:transform .3s cubic-bezier(.4,0,.2,1);top:0;right:-320px;box-shadow:-10px 0 30px #00000080;background:var(--bg-secondary)!important;border-left:1px solid var(--border-color)!important;flex-direction:column!important;height:100vh!important;padding:20px!important;display:flex!important;position:fixed!important}.wiki-details-aside.open{transform:translate(-320px)}.mobile-comments-toggle{display:flex!important}.relation-web-canvas{height:60vh!important}.approval-banner{flex-direction:column!important;align-items:stretch!important;gap:16px!important;padding:16px!important}.approval-banner-info{align-items:flex-start!important}.approval-banner-actions{gap:8px!important;width:100%!important;display:flex!important}.approval-banner-actions .btn{text-align:center!important;flex:1!important;justify-content:center!important}}@media (width>=769px){.mobile-menu-btn,.mobile-close-btn{display:none!important}}
