.home{padding:1rem;max-width:900px;margin:0 auto}.home-header{margin-bottom:2rem}.home-header h1{text-align:center;color:var(--text-primary, #213547)}.home-projects{margin-bottom:2rem}.home-projects h2{color:var(--text-primary, #2c3e50);margin:0 0 .75rem;font-size:1.1rem}.project-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem}.project-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:12px;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s,border-color .2s}.project-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a;border-color:var(--primary, #4a90d9)}.project-card-icon{font-size:2rem;flex-shrink:0}.project-card-body{display:flex;flex-direction:column;min-width:0;gap:.25rem}.project-card-title{font-weight:600;font-size:1.05rem;color:var(--text-primary, #2c3e50)}.project-card-desc{font-size:.85rem;color:var(--text-secondary, #666);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-recent h2{color:var(--text-primary, #2c3e50);margin:0}.home-recent-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.home-recent-controls{display:flex;align-items:center;gap:.75rem}.limit-select{display:flex;gap:.25rem}.limit-btn{background:none;border:1px solid var(--border-color, #ddd);padding:.35rem .6rem;border-radius:4px;cursor:pointer;font-size:.85rem;color:var(--text-tertiary, #888);transition:all .2s;min-width:2rem;text-align:center}.limit-btn:hover{background:var(--bg-hover, #ecf0f1);color:var(--text-primary, #333)}.limit-btn.active{background:var(--primary, #3498db);color:#fff;border-color:var(--primary, #3498db)}.home-empty{text-align:center;padding:3rem;color:var(--text-tertiary, #888);background:var(--bg-secondary, #f8f9fa);border-radius:8px}.home-empty a{color:var(--primary, #3498db)}.loading{text-align:center;padding:2rem;color:var(--text-secondary, #666)}.recent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.recent-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.recent-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.recent-card-icon{font-size:1.5rem;flex-shrink:0}.recent-card-content{display:flex;flex-direction:column;min-width:0}.recent-card-title{font-weight:600;color:var(--text-primary, #2c3e50);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-card-type{font-size:.8rem;color:var(--text-tertiary, #888)}.recent-card-world{font-size:.75rem;color:var(--text-muted, #999);font-style:italic}.recent-card-time{font-size:.75rem;color:var(--text-muted, #aaa)}.recent-list{display:flex;flex-direction:column;gap:.5rem}.recent-list-item{display:flex;align-items:center;gap:1rem;padding:.5rem .75rem;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:6px;text-decoration:none;color:inherit;transition:background .2s,border-color .2s}.recent-list-item:hover{background:var(--bg-hover, #f8f9fa);border-color:var(--primary, #3498db)}.recent-list-icon{font-size:1.25rem;width:1.5rem;text-align:center;flex-shrink:0}.recent-list-title{flex:1;font-weight:500;color:var(--text-primary, #2c3e50);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-list-type{width:100px;text-align:center;font-size:.85rem;color:var(--text-tertiary, #888)}.recent-list-world{width:120px;text-align:center;font-size:.8rem;color:var(--text-muted, #999);font-style:italic}.recent-list-time{width:80px;text-align:right;font-size:.8rem;color:var(--text-muted, #aaa);flex-shrink:0}.view-toggle{display:flex;gap:.25rem}.view-toggle-btn{background:none;border:1px solid var(--border-color, #ddd);padding:.35rem .6rem;border-radius:4px;cursor:pointer;font-size:1rem;color:var(--text-tertiary, #888);transition:all .2s;line-height:1}.view-toggle-btn:hover{background:var(--bg-hover, #ecf0f1);color:var(--text-primary, #333)}.view-toggle-btn.active{background:var(--primary, #3498db);color:#fff;border-color:var(--primary, #3498db)}.recent-card-wrapper .recent-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.recent-list-item-wrapper{display:flex;align-items:center;gap:.25rem}.recent-list-item-wrapper .recent-list-item{flex:1;display:flex;align-items:center;gap:1rem;padding:.5rem .75rem;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:6px;text-decoration:none;color:inherit;transition:background .2s,border-color .2s}.recent-list-item-wrapper .recent-list-item:hover{background:var(--bg-hover, #f8f9fa);border-color:var(--primary, #3498db)}.favorite-btn{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--text-muted, #ccc);padding:.25rem;line-height:1;transition:color .2s,transform .2s;flex-shrink:0}.favorite-btn:hover{transform:scale(1.2);color:#f1c40f}.quick-create{margin-bottom:2rem;padding:1rem;background:var(--card-bg, #f9f9f9);border-radius:8px;border:1px solid var(--border, #e0e0e0)}.quick-create h2{margin:0 0 .75rem;font-size:1.1rem;color:var(--text, #333)}.quick-create-form{display:flex;flex-direction:column;gap:.5rem}.quick-create-input{padding:.5rem;border:1px solid var(--border, #ddd);border-radius:4px;font-size:.9rem;resize:vertical;min-height:44px;font-family:inherit;background:var(--input-bg, #fff);color:var(--text, #333)}.quick-create-controls{display:flex;gap:.5rem;align-items:center}.quick-create-type-row{display:flex;align-items:center;gap:.35rem;flex:0 0 auto}.quick-create-type-icon{width:1.1em;height:1.1em;flex-shrink:0}.quick-create-select{padding:.4rem;border:1px solid var(--border, #ddd);border-radius:4px;font-size:.9rem;background:var(--input-bg, #fff);color:var(--text, #333);flex:0 0 auto}.quick-create-btn{padding:.4rem 1rem;background:var(--accent, #3498db);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;white-space:nowrap}.quick-create-btn:disabled{opacity:.5;cursor:default}.quick-create-checkbox{display:flex;align-items:center;gap:.4rem;margin-top:.5rem;font-size:.85rem;color:var(--text-muted, #999);cursor:pointer}.quick-create-checkbox input{margin:0}.quick-create-list{margin-top:.75rem;display:flex;flex-direction:column;gap:.4rem}.quick-create-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;background:var(--input-bg, #fff);border-radius:4px;border:1px solid var(--border, #eee);font-size:.9rem}.quick-create-item.done{opacity:.6;border-color:var(--accent, #3498db)}.quick-create-item.error{border-color:var(--danger, #e74c3c)}.quick-create-item-icon{font-size:1rem;flex-shrink:0}.quick-create-item-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text, #333)}.quick-create-item-type{font-size:.75rem;color:var(--text-muted, #999);flex-shrink:0}.quick-create-item-error{font-size:.75rem;color:var(--danger, #e74c3c);flex-shrink:0}.quick-create-item-link{font-size:.8rem;color:var(--accent, #3498db);text-decoration:none;flex-shrink:0}.quick-create-item-btn{padding:.2rem .5rem;background:var(--accent, #3498db);color:#fff;border:none;border-radius:3px;cursor:pointer;font-size:.8rem;flex-shrink:0}.quick-create-item-btn.delete{background:transparent;color:var(--text-muted, #999);padding:.2rem .3rem}.quick-create-create-all{margin-top:.5rem;padding:.3rem .75rem;background:transparent;border:1px dashed var(--border, #ddd);border-radius:4px;cursor:pointer;font-size:.85rem;color:var(--text-muted, #999)}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.main-nav{background:var(--nav-bg, #2c3e50);color:var(--nav-text, white);width:100%;overflow:visible}.main-nav--two-line{display:flex;flex-direction:column;gap:0;overflow:visible}.nav-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;gap:1rem;flex-wrap:wrap;overflow:visible}.nav-row--top{min-height:52px}.nav-row--bottom{padding-top:.15rem;padding-bottom:.4rem;border-top:1px solid rgba(255,255,255,.08);overflow-x:auto;overflow-y:visible;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}.nav-row--bottom::-webkit-scrollbar{height:6px}.nav-row--bottom::-webkit-scrollbar-track{background:transparent}.nav-row--bottom::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:3px}.nav-row-group{display:flex;align-items:center;gap:.75rem;overflow:visible;position:relative;flex-wrap:nowrap}.nav-row-group--left{flex:0 0 auto}.nav-row-group--middle{flex:1 1 auto;justify-content:center}.nav-row-group--right{flex:0 0 auto;justify-content:flex-end}.nav-row-group--full{width:100%;justify-content:center;overflow-x:auto;overflow-y:visible;flex-wrap:nowrap;gap:.4rem}.nav-left{display:flex;align-items:center;gap:1rem}.nav-logo{font-size:1.25rem;font-weight:700;color:var(--nav-text, white);text-decoration:none;white-space:nowrap}.nav-logo:hover{color:var(--nav-accent, #3498db)}.nav-logo-icon{color:var(--nav-icon-color, #e07020)}.hierarchy-selects{display:flex;align-items:center;gap:.25rem}.hierarchy-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23ecf0f1' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right center;padding:.3rem 1.2rem .3rem 0;max-width:none;color:var(--nav-text, white);font-size:.95rem;font-weight:600;cursor:pointer}.hierarchy-select:hover{color:var(--nav-accent, #3498db)}.hierarchy-select:focus{outline:none}.entity-icon{font-size:1.5em;margin-right:.3rem}.universe-select-wrapper{display:flex;align-items:center;gap:.25rem}.universe-select-icon{display:inline-flex;align-items:center;font-size:1.1em;line-height:1;flex-shrink:0}.hierarchy-add-btn{background:transparent;color:var(--nav-text, white);border:none;border-radius:4px;width:28px;height:28px;cursor:pointer;font-size:1rem;transition:background .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.hierarchy-add-btn:hover{background:#ffffff26}.hierarchy-edit-btn{background:transparent;color:var(--nav-text, white);border:none;border-radius:4px;width:28px;height:28px;cursor:pointer;font-size:1rem;transition:background .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.hierarchy-edit-btn:hover{background:#ffffff26}.small-modal{max-width:350px;padding:1.25rem}.small-modal h3{margin-top:0;margin-bottom:1rem;color:var(--text-primary, #2c3e50)}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.btn-cancel{background:var(--nav-divider, #95a5a6);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.btn-submit{background:var(--nav-accent, #3498db);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.btn-submit:hover{background:var(--nav-accent-hover, #2980b9)}.btn-submit:disabled{background:#bdc3c7;cursor:not-allowed;color:#666}.nav-center{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.nav-center a{color:var(--nav-text, #ecf0f1);text-decoration:none;padding:.3rem .5rem;border-radius:4px;transition:background .2s;font-size:.9rem}.nav-center a:hover{background:var(--nav-input-bg, #34495e)}.nav-center .menu-divider{color:var(--nav-divider, #7f8c8d);padding:0 .25rem}.nav-center .nav-item-icon{width:1.1em;height:1.1em;object-fit:contain;vertical-align:middle;margin-right:.15em}.nav-right{display:flex;align-items:center;gap:.75rem}.nav-right a{color:var(--nav-text, #ecf0f1);text-decoration:none;font-size:.9rem}.nav-right a:hover{color:var(--nav-accent, #3498db)}.nav-right select{padding:.3rem .5rem;border-radius:4px;border:1px solid var(--nav-divider, #7f8c8d);background:var(--nav-input-bg, #34495e);color:var(--nav-text, white);font-size:.85rem}.search-bar-container{position:relative;margin-left:auto}.search-bar-input{padding:.35rem .75rem;border-radius:4px;border:1px solid var(--nav-divider, #7f8c8d);background:var(--nav-input-bg, #34495e);color:var(--nav-text, #ecf0f1);font-size:.85rem;width:180px;transition:width .2s,border-color .2s}.search-bar-input:focus{outline:none;border-color:var(--nav-accent, #3498db);width:240px}.search-bar-input::placeholder{color:var(--nav-text-muted, #95a5a6)}.search-bar-spinner{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);width:14px;height:14px;border:2px solid var(--nav-divider, #7f8c8d);border-top-color:var(--nav-accent, #3498db);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}.search-bar-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--nav-bg, #2c3e50);border:1px solid var(--nav-input-bg, #34495e);border-radius:4px}.version{color:var(--nav-text-muted, #bdc3c7);font-size:.8rem;padding:.3rem .5rem;white-space:nowrap}.main-content{flex:1;padding:1rem;max-width:1400px;margin:0 auto;width:100%}.main-content--full{max-width:none;padding:0;display:flex;flex-direction:column;overflow:hidden;height:calc(100vh - var(--nav-height));height:calc(100dvh - var(--nav-height))}.main-content--auth{max-width:none;padding:0;margin:0}@media (max-width: 1024px){.nav-row{flex-wrap:wrap}.nav-row-group--middle{order:3;width:100%;justify-content:flex-start}}@media (max-width: 768px){.nav-row{padding:.4rem .75rem;gap:.5rem}.nav-row-group{gap:.5rem}.nav-group{flex-wrap:wrap}.nav-row--bottom{padding-top:.1rem;padding-bottom:.3rem}.nav-row-group--full{gap:.3rem;justify-content:flex-start}.nav-row--bottom a{font-size:.85rem;padding:.2rem .35rem}}.ui-svg-icon{width:1em;height:1em;vertical-align:-.125em;flex-shrink:0}.nav-icon-btn .ui-svg-icon{width:1.1em;height:1.1em}.nav-icon-btn{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:.25rem;color:var(--nav-icon-color, #e07020);display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0}.nav-group{display:flex;align-items:center;gap:6px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:2px 6px 2px 4px;overflow:visible}.nav-group-actions{display:flex;align-items:center;gap:2px}.nav-dropdown{position:relative;display:flex;align-items:center;overflow:visible}.nav-icon-btn--active{background:var(--hover-bg, rgba(255,255,255,.08))}.nav-dropdown-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:210px;background:var(--dropdown-bg, var(--bg-secondary, #1f1f1f));border:1px solid var(--border-color, #333);border-radius:8px;box-shadow:0 10px 30px #00000059;padding:6px;display:flex;flex-direction:column;gap:2px;z-index:9999}.nav-dropdown-menu--right{right:0}.nav-dropdown-item{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:6px;color:inherit;text-decoration:none;background:none;border:none;text-align:left;font:inherit;cursor:pointer}.nav-dropdown-item:hover{background:var(--hover-bg, rgba(255,255,255,.06))}.nav-dropdown-item .ui-icon,.nav-dropdown-item svg{width:18px;height:18px;flex:0 0 18px}.nav-user-btn{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--nav-text, #ecf0f1);cursor:pointer;padding:6px 8px;border-radius:6px;font:inherit}.nav-user-btn:hover,.nav-user-btn--active{background:var(--hover-bg, rgba(255,255,255,.06))}.nav-user-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-user-caret{font-size:10px;opacity:.7}.nav-dropdown-item--button{width:100%}.nav-search-popover{position:absolute;top:calc(100% + 6px);right:0;width:min(320px,90vw);background:var(--dropdown-bg, var(--bg-secondary, #1f1f1f));border:1px solid var(--border-color, #333);border-radius:10px;box-shadow:0 12px 40px #0006;padding:8px;display:flex;flex-direction:column;gap:6px;z-index:9999}.nav-search-input{width:100%;padding:7px 10px;border-radius:8px;border:1px solid var(--nav-divider, #7f8c8d);background:var(--nav-input-bg, #2b3b4d);color:var(--nav-text, #ecf0f1);font:inherit}.nav-search-input:focus{outline:none;border-color:var(--nav-accent, #3498db)}.nav-search-hint{padding:6px 8px;opacity:.7;font-size:.9rem}.nav-search-list{display:flex;flex-direction:column;gap:2px}.nav-search-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;border-radius:6px;background:none;border:none;color:inherit;text-align:left;cursor:pointer;font:inherit}.nav-search-item:hover{background:var(--hover-bg, rgba(255,255,255,.06))}.nav-search-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-search-item-type{opacity:.6;font-size:.85rem}.nav-icon-btn svg,.nav-icon-btn .ui-svg-icon,.nav-icon-btn img{width:20px;height:20px;display:block}.nav-row--bottom a{color:var(--nav-text, #ecf0f1);text-decoration:none;padding:.25rem .4rem;border-radius:4px;font-size:.9rem;white-space:nowrap;display:inline-flex;align-items:center;gap:.3rem}.nav-row--bottom a:hover{background:var(--nav-input-bg, #34495e);color:var(--nav-text, #ecf0f1)}.nav-row--bottom a:hover svg,.nav-row--bottom a:hover .ui-svg-icon,.nav-row--bottom a:hover .nav-item-icon{color:var(--nav-icon-color, #e07020);filter:brightness(1.1)}.nav-row--bottom .menu-divider{color:var(--nav-divider, #7f8c8d);padding:0 .25rem;white-space:nowrap}.nav-row--bottom .nav-item-icon{width:1.1em;height:1.1em;object-fit:contain;vertical-align:middle;flex-shrink:0}.nav-row--bottom .ui-svg-icon{width:1.1em;height:1.1em;flex-shrink:0}.bell-button svg,.bell-button .ui-svg-icon{width:20px;height:20px;color:var(--nav-icon-color, #e07020);display:block}.current-article-badge{display:inline-flex;align-items:center;gap:.5rem;font-size:.9em;margin-top:.5rem}.article-unlink-btn{background:none;border:none;cursor:pointer;font-size:.85em;padding:0 .25rem;line-height:1}.icon-catalog{display:flex;flex-direction:column;min-height:0;flex:1}.icon-catalog-page{padding:16px}.icon-catalog-toolbar{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 8px}.icon-catalog-page .icon-catalog-toolbar{padding-left:0;padding-right:0}.icon-catalog-search{flex:1;min-width:180px;padding:6px 10px;border:1px solid var(--border, #ddd);border-radius:6px;background:var(--bg-primary, #fff);color:inherit}.icon-catalog-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}.icon-catalog-page .icon-catalog-chips{padding-left:0;padding-right:0}.icon-catalog-chip{padding:4px 12px;border:1px solid var(--border, #ddd);border-radius:999px;background:var(--bg-primary, #fff);color:var(--text-secondary, #666);cursor:pointer;font-size:.85em;transition:border-color .15s,color .15s,background .15s}.icon-catalog-chip:hover{color:inherit}.icon-catalog-chip.active{border-color:var(--accent, #2f6fed);background:#2f6fed1f;color:var(--accent, #2f6fed)}.icon-catalog-body{padding:0 16px 16px;overflow-y:auto;flex:1}.icon-catalog-page .icon-catalog-body{padding-left:0;padding-right:0}.icon-catalog-empty{text-align:center;color:var(--text-secondary, #888);padding:24px 0}.icon-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:8px}.icon-catalog-more{width:100%;margin-top:12px;padding:10px;border:1px dashed var(--border, #ddd);border-radius:8px;background:transparent;color:var(--text-secondary, #666);cursor:pointer}.icon-catalog-more:hover{border-color:var(--accent, #3388ff);color:var(--accent, #3388ff)}.icon-catalog-item{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;padding:8px;border:1px solid var(--border, #ddd);border-radius:8px;background:var(--bg-primary, #fff);cursor:pointer;transition:box-shadow .15s,border-color .15s}.icon-catalog-item:hover{box-shadow:0 2px 8px #0000001f}.icon-catalog-item.is-selected,.icon-catalog-item.is-copied{border-color:var(--accent, #2f6fed);box-shadow:0 0 0 2px var(--accent, #2f6fed)}.icon-catalog-item .ui-svg-icon,.icon-catalog-item .entity-image-icon{width:28px;height:28px}.icon-catalog-item .entity-image-icon{object-fit:contain}.icon-catalog-copied{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#2f6fede6;color:#fff;font-size:.6em;font-weight:600;border-radius:6px;pointer-events:none}.media-library-page{padding:16px}.media-library-header{margin-bottom:12px}.media-library-header h2{margin:8px 0 4px}.media-library-stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.stat-chip{background:var(--bg-secondary, #f0f0f0);border:1px solid var(--border, #ddd);border-radius:999px;padding:4px 12px;font-size:.85em}.stat-referenced{color:var(--accent, #2f6fed)}.stat-orphan{color:#c0392b}.stat-missing{color:#b7791f}.media-library-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.media-library-search{flex:1;min-width:200px;padding:6px 10px;border:1px solid var(--border, #ddd);border-radius:6px;background:var(--bg-primary, #fff);color:inherit}.media-library-toolbar select{padding:6px 10px;border:1px solid var(--border, #ddd);border-radius:6px;background:var(--bg-primary, #fff);color:inherit}.media-library-import-btn{white-space:nowrap}.media-library-error{background:#fdecea;border:1px solid #f5c6c0;border-radius:8px;padding:8px 12px;font-size:.9em;margin-bottom:12px;word-break:break-all}.media-library-success{background:#e6f4ea;border:1px solid #b7e1c3;border-radius:8px;padding:10px 12px;margin-bottom:16px;font-size:.9em}.media-library-field-label{display:block;font-size:.85em;margin:10px 0 4px;opacity:.9}.media-library-field-label .media-library-rename-input{margin-top:4px}.media-library-textarea{resize:vertical;min-height:60px}.media-library-duplicate-warning{background:#fdecea;border:1px solid #f5c6c0;border-radius:8px;padding:10px 12px;font-size:.95em;word-break:break-all}.media-library-duplicate-actions{flex-wrap:nowrap}.media-library-duplicate-actions .btn{white-space:nowrap}.media-library-duplicate-previews{display:flex;gap:12px;margin-bottom:12px}.media-library-duplicate-preview{flex:1 1 0;min-width:0;margin:0;text-align:center}.media-library-duplicate-preview img{width:100%;height:96px;object-fit:contain;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--input-bg, #fff)}.media-library-duplicate-preview figcaption{font-size:.75em;color:var(--text-secondary, #666);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px}.media-library-warning{background:#fff8e1;border:1px solid #f0d98a;border-radius:8px;padding:10px 12px;margin-bottom:16px;font-size:.9em}.media-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.media-library-card{border:1px solid var(--border, #ddd);border-radius:8px;overflow:hidden;background:var(--bg-primary, #fff);display:flex;flex-direction:column;transition:box-shadow .15s}.media-library-card:hover{box-shadow:0 2px 8px #0000001f}.media-library-card.is-orphan{border-style:dashed;opacity:.75}.media-library-thumb{height:110px;background:var(--bg-secondary, #f5f5f5);display:flex;align-items:center;justify-content:center;overflow:hidden}.media-library-thumb img{width:100%;height:100%;object-fit:cover}.media-library-file-icon{font-size:2.2em}.media-library-card-body{padding:8px 10px;display:flex;flex-direction:column;gap:6px;flex:1}.media-library-card-name{font-size:.85em;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-library-card-meta{display:flex;flex-wrap:wrap;gap:4px;font-size:.75em}.media-library-cat{opacity:.7}.badge{border-radius:999px;padding:1px 8px;font-size:.75em;white-space:nowrap}.badge-db{background:#e3e9fb;color:#2f6fed}.badge-ref{background:#e6f4ea;color:#1e8e3e}.badge-orphan{background:#fdecea;color:#c0392b}.media-library-card-footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:.75em;opacity:.7}.media-library-open{text-decoration:none;font-size:1.1em}.media-library-actions{display:flex;gap:4px}.media-library-btn{background:var(--bg-secondary, #f0f0f0);border:1px solid var(--border, #ddd);border-radius:6px;padding:2px 6px;font-size:.95em;cursor:pointer;color:inherit;text-decoration:none;line-height:1.4}.media-library-btn:hover{background:var(--bg-hover, #e6e6e6)}.media-library-btn-danger:hover{background:#fdecea;border-color:#c0392b}.media-library-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.media-library-modal{background:var(--bg-primary, #fff);border:1px solid var(--border, #ddd);border-radius:10px;padding:20px;max-width:460px;width:90%;box-shadow:0 8px 30px #00000040}.media-library-modal--wide{max-width:620px}.media-library-modal h3{margin:0 0 8px}.media-library-modal-path{font-size:.85em;opacity:.7;word-break:break-all;margin:0 0 12px}.media-library-rename-input{width:100%;padding:8px 10px;border:1px solid var(--border, #ddd);border-radius:6px;background:var(--bg-primary, #fff);color:inherit;box-sizing:border-box}.media-library-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.media-library-delete-warning{background:#fdecea;border:1px solid #f5c6c0;border-radius:8px;padding:10px 12px;font-size:.9em}.media-library-delete-warning ul{margin:6px 0;padding-left:18px}.media-library-delete-warning-note{font-size:.85em;opacity:.8;margin:6px 0 0}.btn-primary,.btn-secondary,.btn-danger{border:1px solid var(--border, #ddd);border-radius:6px;padding:7px 14px;font-size:.9em;cursor:pointer}.btn-primary{background:var(--accent, #2f6fed);border-color:var(--accent, #2f6fed);color:#fff}.btn-primary:hover{background:#2458c7}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--bg-secondary, #f0f0f0);color:inherit}.btn-secondary:hover{background:var(--bg-hover, #e6e6e6)}.btn-danger{background:#c0392b;border-color:#c0392b;color:#fff}.btn-danger:hover{background:#a93226}.media-library-empty{opacity:.7;text-align:center;padding:32px 0}.media-form-import-row{display:flex;align-items:center;gap:10px;margin:12px 0;font-size:.9em}.media-picker-dropzone,.media-picker-icon-dropzone{margin:12px 16px;padding:14px;border:2px dashed var(--border, #bbb);border-radius:8px;text-align:center;transition:border-color .15s,background .15s}.media-picker-dropzone p,.media-picker-icon-dropzone p{margin:0 0 8px;font-size:.9em;color:var(--text-secondary, #666)}.media-picker-dropzone.is-drag-over,.media-picker-icon-dropzone.is-drag-over{border-color:var(--accent, #2f6fed);background:#2f6fed14}.media-picker-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:12000}.media-picker-modal{width:min(720px,92vw);max-height:80vh;display:flex;flex-direction:column;background:var(--bg-primary, #fff);border:1px solid var(--border, #ddd);border-radius:10px;box-shadow:0 8px 32px #00000040;overflow:hidden}.media-picker-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border, #ddd)}.media-picker-header h3{margin:0}.media-picker-close{border:none;background:none;font-size:1.1em;cursor:pointer;color:inherit;padding:4px 8px;border-radius:6px}.media-picker-close:hover{background:var(--bg-secondary, #f0f0f0)}.media-picker-tabs{display:flex;gap:4px;padding:0 16px;border-bottom:1px solid var(--border, #ddd)}.media-picker-tab{padding:10px 16px;border:none;border-bottom:2px solid transparent;background:none;color:var(--text-secondary, #666);cursor:pointer;font-size:.95em;margin-bottom:-1px}.media-picker-tab:hover{color:inherit}.media-picker-tab.active{border-bottom-color:var(--accent, #2f6fed);color:var(--accent, #2f6fed);font-weight:600}.media-picker-error{margin:0 16px 4px}.media-picker-toolbar{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 8px}.media-picker-search{flex:1;min-width:180px;padding:6px 10px;border:1px solid var(--border, #ddd);border-radius:6px;background:var(--bg-primary, #fff);color:inherit}.media-picker-toolbar select{padding:6px 10px;border:1px solid var(--border, #ddd);border-radius:6px;background:var(--bg-primary, #fff);color:inherit}.media-picker-body{padding:0 16px 16px;overflow-y:auto}.media-picker-empty{text-align:center;color:var(--text-secondary, #888);padding:24px 0}.media-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.media-picker-item{display:flex;flex-direction:column;border:1px solid var(--border, #ddd);border-radius:8px;overflow:hidden;background:var(--bg-primary, #fff);cursor:pointer;padding:0;text-align:left;transition:box-shadow .15s,border-color .15s}.media-picker-item:hover{box-shadow:0 2px 8px #0000001f}.media-picker-item.is-selected{border-color:var(--accent, #2f6fed);box-shadow:0 0 0 2px var(--accent, #2f6fed)}.media-picker-thumb{height:80px;background:var(--bg-secondary, #f5f5f5);display:flex;align-items:center;justify-content:center;overflow:hidden}.media-picker-thumb img{width:100%;height:100%;object-fit:cover}.media-picker-item-name{padding:6px 8px;font-size:.8em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-top:1px solid var(--border, #eee)}.welcome-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:2rem}.welcome-container{max-width:500px;width:100%;padding:2.5rem;background:var(--bg-secondary);border-radius:12px;box-shadow:0 4px 20px #0000001a}.welcome-container h1{text-align:center;margin-bottom:.5rem;color:var(--text-primary)}.welcome-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:.5rem;font-size:1.1rem}.welcome-note{text-align:center;color:var(--text-secondary);font-size:.9rem;margin-bottom:2rem}.welcome-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group.optional{opacity:.8}.form-group label{font-weight:500;color:var(--text-primary)}.form-group.optional label{font-weight:400;font-size:.9rem}.form-group input{padding:.75rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:1rem}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #6366f133}.form-actions{display:flex;gap:1rem;margin-top:1rem}.btn-skip,.btn-create{flex:1;padding:.75rem 1.5rem;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-skip{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.btn-skip:hover{background:var(--bg-primary);color:var(--text-primary)}.btn-create{background:var(--primary);border:none;color:#fff}.btn-create:hover{opacity:.9}.btn-create:disabled,.btn-skip:disabled{opacity:.6;cursor:not-allowed}.error-message{padding:.75rem;background:#fee2e2;color:#dc2626;border-radius:6px;margin-bottom:1rem;text-align:center}.delete-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.delete-dialog{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0003;max-width:400px;width:90%}.delete-dialog-header{padding:1rem;border-bottom:1px solid #eee}.delete-dialog-header h3{margin:0;color:#e74c3c}.delete-dialog-body{padding:1.5rem}.delete-dialog-warning{color:#e74c3c;font-weight:500;margin-bottom:1rem}.delete-dialog-item{background:#f8f9fa;padding:.75rem;border-radius:4px;margin-bottom:1rem}.delete-dialog-input-group{display:flex;flex-direction:column;gap:.5rem}.delete-dialog-input-group label{font-size:.9rem;color:#555}.delete-dialog-input-group input{padding:.75rem;border:2px solid #ddd;border-radius:4px;font-size:1rem}.delete-dialog-input-group input:focus{outline:none;border-color:#e74c3c}.delete-dialog-references{background:#fdecea;border:1px solid #f5c6c0;border-radius:4px;padding:.75rem;margin-bottom:1rem;font-size:.9rem}.delete-dialog-references-title{margin:0 0 .25rem;font-weight:600;color:#c0392b}.delete-dialog-references ul{margin:.25rem 0;padding-left:1.25rem}.delete-dialog-references-note{margin:.5rem 0 0;font-size:.85rem;color:#666}.delete-dialog-footer{padding:1rem;border-top:1px solid #eee;display:flex;justify-content:flex-end;gap:.5rem}.btn-cancel{padding:.5rem 1rem;background:#95a5a6;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-cancel:hover{background:#7f8c8d}.btn-delete{padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-delete:hover{background:#c0392b}.btn-delete:disabled{background:#bdc3c7;cursor:not-allowed}.grid-list{padding:1rem}.grid-list-header{margin-bottom:1.5rem}.grid-list-title-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.grid-list-title-icon{font-size:1.4rem;line-height:1}.grid-list-title-row h2{margin:0;color:var(--primary-color, #2c3e50);font-size:1.3rem}.grid-list-header-extra{margin-left:auto;display:flex;align-items:center;gap:.75rem}.grid-list-controls{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.grid-list-search,.grid-list-filter,.grid-list-group,.grid-list-sort{padding:.4rem .6rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.85rem;background:var(--input-bg, white);color:var(--text-primary, #333)}.grid-list-sort{cursor:pointer;white-space:nowrap}.grid-list-search{flex:1;min-width:200px}.grid-list-search:focus,.grid-list-filter:focus,.grid-list-group:focus,.grid-list-sort:focus{outline:none;border-color:var(--primary, #3498db)}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.grid-card{display:flex;flex-direction:column;padding:1rem;background:var(--card-bg, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;text-decoration:none;color:inherit;transition:all .2s ease;position:relative}.grid-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:#3498db}.grid-card-icon{font-size:2rem;margin-bottom:.5rem;text-align:center;padding:.5rem;display:flex;align-items:center;justify-content:center}.grid-card-icon-img{width:48px;height:48px;object-fit:contain;border-radius:4px}.grid-card-content{flex:1}.grid-card-title{margin:0 0 .5rem;font-size:1.1rem;color:var(--text-primary, #2c3e50)}.grid-card-desc{margin:0;font-size:.85rem;color:var(--text-secondary, #666);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.grid-card-type{display:inline-block;margin-top:.5rem;padding:.2rem .5rem;background:var(--bg-secondary, #ecf0f1);border-radius:4px;font-size:.75rem;color:var(--text-secondary, #555)}.grid-card-delete{position:absolute;top:.5rem;right:.5rem;padding:.3rem .6rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;font-size:.75rem;cursor:pointer;opacity:0;transition:opacity .2s}.grid-card:hover .grid-card-delete{opacity:1}.grid-card-delete:hover{background:#c0392b}.view-toggle{display:flex;gap:.25rem;background:var(--bg-secondary, #ecf0f1);border-radius:4px;padding:.25rem}.view-toggle-btn{padding:.4rem .6rem;border:none;background:transparent;border-radius:3px;cursor:pointer;font-size:1rem;color:#7f8c8d;transition:all .2s}.view-toggle-btn:hover{color:#2c3e50}.view-toggle-btn.active{background:var(--input-bg, white);color:var(--text-primary, #2c3e50);box-shadow:0 1px 3px #0000001a}.list-view{display:flex;flex-direction:column;gap:.5rem}.list-item{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--card-bg, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;text-decoration:none;color:inherit;transition:all .2s ease}.list-item:hover{border-color:var(--primary, #3498db);box-shadow:0 2px 8px #00000014}.list-item-icon{font-size:1.5rem;min-width:40px;text-align:center}.list-item-content{flex:1;min-width:0}.list-item-title{margin:0;font-size:1rem;color:var(--text-primary, #2c3e50)}.list-item-desc{margin:.25rem 0 0;font-size:.85rem;color:var(--text-secondary, #666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item-type{padding:.2rem .5rem;background:var(--bg-secondary, #ecf0f1);border-radius:4px;font-size:.75rem;color:var(--text-secondary, #555)}.list-item-delete{padding:.3rem .6rem;background:var(--danger, #e74c3c);color:#fff;border:none;border-radius:4px;font-size:.75rem;cursor:pointer;opacity:0;transition:opacity .2s}.list-item:hover .list-item-delete{opacity:1}.list-item-delete:hover{background:#c0392b}.grid-card-fav{position:absolute;top:.5rem;left:.5rem;background:none;border:none;font-size:1.2rem;cursor:pointer;color:#ccc;transition:color .2s,transform .2s;padding:0;line-height:1;z-index:1}.grid-card-fav:hover{transform:scale(1.2)}.grid-card-fav.fav{color:#f1c40f}.list-item-fav{background:none;border:none;font-size:1.1rem;cursor:pointer;color:#ccc;transition:color .2s,transform .2s;padding:0;margin-left:-.25rem;flex-shrink:0;line-height:1}.list-item-fav:hover{transform:scale(1.2)}.list-item-fav.fav{color:#f1c40f}.grid-list-fav-filter{padding:.5rem .75rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.9rem;background:var(--input-bg, white);color:var(--text-tertiary, #888);cursor:pointer;transition:all .2s;white-space:nowrap}.grid-list-fav-filter:hover{border-color:#f1c40f;color:#333}.grid-list-fav-filter.active{border-color:#f1c40f;background:#fef9e7;color:#f39c12}.grid-list-groups{display:flex;flex-direction:column;gap:2rem}.grid-list-group{margin-bottom:1rem}.grid-group-title{margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid var(--primary, #3498db);color:var(--text-primary, #2c3e50);font-size:1.2rem}.grid-list-empty{text-align:center;padding:3rem;color:var(--text-secondary, #666);font-style:italic}.grid-list-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.75rem;padding:1.25rem 0 .5rem;margin-top:.5rem}.grid-load-more,.grid-load-all{padding:.5rem 1.1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s}.grid-load-more{background:var(--accent, #3498db);color:#fff;border:1px solid var(--accent, #3498db)}.grid-load-more:hover{background:#2980b9}.grid-load-all{background:transparent;color:var(--accent, #3498db);border:1px solid var(--accent, #3498db)}.grid-load-all:hover{background:#eaf2fb}.grid-list-pagination-count{font-size:.85rem;color:var(--text-muted, #666)}.grid-list-loading,.grid-list-error{text-align:center;padding:2rem}.grid-list-error{color:#e74c3c}.grid-card-create,.list-item-create{border:2px dashed var(--border-color, #ccc);cursor:pointer;display:flex;align-items:center;justify-content:center;min-height:120px;transition:all .2s ease;background:var(--card-bg, #fafafa)}.grid-card-create:hover,.list-item-create:hover{border-color:#3498db;background:#f0f7ff;transform:none;box-shadow:none}.create-card-plus{font-size:2rem;color:#3498db;font-weight:300}.create-card-title{color:#3498db;font-weight:400;text-align:center}.list-item-create{min-height:auto}@media (max-width: 600px){.grid-cards{grid-template-columns:1fr}.grid-list-controls{flex-direction:column}.grid-list-search{min-width:100%}}.visibility-badge{font-size:.85rem;margin-left:.4rem;flex-shrink:0}.grid-card-meta-row,.list-item-meta-row{display:flex;align-items:flex-start;gap:.25rem}.grid-card-desc,.list-item-desc{flex:1;min-width:0}.grid-card-extra-fields{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.list-item-extra-fields{display:flex;flex-wrap:wrap;gap:.25rem;margin-left:auto;flex-shrink:0}.extra-field-badge{display:inline-block;padding:.15rem .4rem;border-radius:3px;font-size:.7rem;line-height:1.3;background:#e8f4fd;color:#2980b9;white-space:nowrap}.extra-field-number{background:#fef3e2;color:#d35400}.extra-field-boolean{background:#eafaf1;color:#27ae60}.extra-field-select{background:#f0e6ff;color:#8e44ad}.grid-card-check,.list-item-check{position:absolute;top:.5rem;right:.5rem;z-index:2;cursor:pointer;display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--input-bg, rgba(255,255,255,.9));border-radius:4px;border:1px solid var(--border-color, #ddd)}.grid-card-check input,.list-item-check input{margin:0;cursor:pointer}.grid-compare-bar{position:sticky;bottom:0;display:flex;align-items:center;justify-content:center;gap:1rem;padding:.75rem 1rem;background:var(--card-bg, #fff);border-top:2px solid var(--accent, #3498db);box-shadow:0 -4px 12px #00000014;margin-top:1rem;z-index:10}.grid-compare-count{font-size:.9rem;color:var(--text, #333);font-weight:600}.grid-compare-btn{padding:.5rem 1.25rem;background:var(--accent, #3498db);color:#fff;border:none;border-radius:6px;font-size:.9rem;cursor:pointer;font-weight:600}.grid-compare-btn:disabled{opacity:.5;cursor:default}.btn-compare-toggle{padding:.3rem .6rem;border:1px solid var(--border, #ddd);border-radius:4px;background:transparent;color:var(--text, #333);cursor:pointer;font-size:.8rem;transition:all .15s}.btn-compare-toggle.active{background:var(--accent, #3498db);color:#fff;border-color:var(--accent, #3498db)}.tiptap-toolbar{display:flex;gap:5px;background-color:var(--bg-secondary, #f0f0f0);border-radius:5px 5px 0 0;padding:5px;border:1px solid var(--border-color, #ccc);-webkit-user-select:none;user-select:none}.tiptap-toolbar button{background:none;border:none;padding:5px 8px;font-weight:600;cursor:pointer;border-radius:4px;color:var(--text-primary, #444);transition:background-color .2s,color .2s}.tiptap-toolbar button:hover{background-color:var(--bg-hover, #ddd)}.tiptap-toolbar button.is-active{background-color:var(--primary, #bbb);color:#fff}.tiptap-toolbar button:disabled{opacity:.25;cursor:not-allowed}.tiptap-editor{border:1px solid var(--border-color, #ddd);border-radius:0 0 5px 5px}.tiptap-toolbar .write-export-group{position:relative;display:inline-block}.tiptap-toolbar .write-export-dropdown{position:absolute;top:100%;right:0;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #ddd);border-radius:6px;box-shadow:0 4px 12px #0000001f;z-index:10;min-width:100px}.tiptap-toolbar .write-export-dropdown button{display:block;width:100%;text-align:left;padding:.4rem .75rem;border:none;background:none;cursor:pointer;font-size:.85rem;color:var(--text-primary, #000)}.tiptap-toolbar .write-export-dropdown button:hover{background:var(--bg-hover, #e8e8e8)}.tiptap-toolbar .write-export-dropdown button:first-child{border-radius:6px 6px 0 0}.tiptap-toolbar .write-export-dropdown button:last-child{border-radius:0 0 6px 6px}.article-toolbox{position:fixed;top:170px;right:10px;z-index:1000;width:280px;max-height:70vh;overflow-y:auto;background-color:#3cc2a0f2;color:#fff;padding:1rem;border-radius:8px;box-shadow:0 4px 12px #0000004d;font-size:14px;display:flex;flex-direction:column}.article-toolbox h3{margin-top:0;margin-bottom:.5rem;font-weight:700;font-size:1.2rem}.toolbox-group h4{margin-bottom:.25rem;margin-top:1rem;font-size:1rem;border-bottom:1px solid #ccc}.toolbox-group ul{padding-left:1rem;margin:0}.toolbox-group li{list-style:none;margin:.25rem 0}.article-toolbox p{flex-grow:1;margin:.5rem 0}.article-toolbox button{background:#000;border:none;color:#fff;padding:.5rem 1rem;border-radius:5px;cursor:pointer;font-weight:600;transition:background .3s ease}.article-toolbox button:hover{background:#333}.broken-links-warning{background:#ff50504d;border:1px solid #ff4444;border-radius:4px;padding:.5rem;margin:.5rem 0}.broken-links-warning p{margin:0 0 .25rem;font-weight:700}.broken-links-warning ul{margin:0;padding-left:1rem}.broken-links-warning li{list-style:disc;margin:.15rem 0}.find-replace-bar{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--bg-secondary, #f5f5f5);border:1px solid var(--border-color, #ddd);border-radius:6px;margin-bottom:.5rem;flex-wrap:wrap}.find-replace-input-group{display:flex;align-items:center;gap:.25rem}.find-replace-input{padding:.35rem .5rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.85rem;width:140px;background:var(--bg-primary, #fff);color:var(--text-primary, #333)}.find-replace-input:focus{outline:none;border-color:var(--accent-color, #4a90d9)}.find-replace-count{font-size:.8rem;color:var(--text-secondary, #666);min-width:3rem;text-align:center}.find-replace-btn{padding:.3rem .5rem;border:1px solid var(--border-color, #ddd);border-radius:4px;background:var(--bg-primary, #fff);cursor:pointer;font-size:.8rem;color:var(--text-primary, #333);white-space:nowrap}.find-replace-btn:hover:not(:disabled){background:var(--bg-hover, #e8f4fd)}.find-replace-btn:disabled{opacity:.4;cursor:not-allowed}.find-replace-close{margin-left:auto;padding:.3rem .5rem;border:none;background:none;cursor:pointer;font-size:1rem;color:var(--text-secondary, #666)}.find-replace-close:hover{color:var(--text-primary, #333)}.search-highlight{background:#ff05;border-radius:2px;padding:0 1px}.search-highlight-active{background:#fa05;border-radius:2px;padding:0 1px;box-shadow:0 0 0 1px #f80}.mention-popup{background:#222;border-radius:8px;padding:8px;box-shadow:0 4px 20px #0000004d;min-width:280px;max-width:440px;z-index:2100}.mention-popup-list{margin:0;padding:0;list-style:none;max-height:280px;overflow-y:auto}.mention-popup-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:4px;cursor:pointer;color:#ddd;font-size:14px}.mention-popup-item:hover,.mention-popup-item.selected{background:#4298f6;color:#fff}.mention-item-icon{flex-shrink:0;font-size:16px}.mention-item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mention-item-type{flex-shrink:0;font-size:11px;color:#aaa;background:#333;border:1px solid #444;border-radius:4px;padding:1px 6px;text-transform:uppercase}.mention-popup-item.selected .mention-item-type{color:#fff;background:#ffffff26;border-color:#fff6}.mention-popup-item.selected .tag-option-pill{box-shadow:0 0 0 2px #4298f6}.tag-mention{display:inline-block;padding:.1em .45em;margin:0 .15em;border-radius:.35em;color:#fff;font-size:.92em;font-weight:500;line-height:1.4;cursor:pointer;vertical-align:baseline;white-space:nowrap}.tag-mention:hover{filter:brightness(1.1)}.tag-option-pill{display:inline-block;padding:.2rem .6rem;border-radius:12px;color:#fff;font-size:.9rem;font-weight:500;line-height:1.4;white-space:nowrap}.article-detail-wrapper{display:flex}.article-main{flex:1;padding:1rem}.article-header-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.article-icon-preview{font-size:1.5rem;line-height:1;width:2rem;text-align:center}.article-icon-image{width:2rem;height:2rem;object-fit:cover;border-radius:4px}.article-icon-input{width:3rem;text-align:center;font-size:1rem;padding:.25rem;border:1px solid var(--border-color, #ddd);border-radius:4px}.article-name-input{flex:1;font-size:1.1rem;font-weight:600;padding:.4rem .5rem;border:1px solid var(--border-color, #ddd);border-radius:4px}.article-editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.article-back-btn{background:none;border:none;cursor:pointer;font-size:.85rem;color:var(--link-color, #4a90d9);padding:.3rem .5rem;border-radius:4px;transition:background .2s}.article-back-btn:hover{background:var(--bg-hover, #e8f4fd)}.article-save-status{font-size:.9rem;line-height:1}.article-meta-row{display:flex;gap:.5rem;margin-bottom:.5rem}.article-type-input,.article-tags-input{flex:1;padding:.35rem .5rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.9rem}.article-save-btn{width:100%;padding:.6rem;margin-top:.5rem;background:var(--accent-color, #4a90d9);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.article-save-btn:hover{background:var(--accent-hover, #357abd)}.article-save-btn:disabled{opacity:.6;cursor:not-allowed}.article-icon{max-width:64px;height:auto}.status-icon{width:24px;height:24px;object-fit:contain;display:inline-block;vertical-align:middle;margin-right:.5em}.tiptap-mention-link,.mention-link,.mention a{color:var(--link-color, #0077cc);text-decoration:underline;cursor:pointer}.mention,.mention-list li{background-color:var(--primary-light, #e0f0ff);border-radius:4px;padding:0 4px;color:var(--link-color, #007acc);cursor:pointer;text-decoration:underline}.mention-list{background:#222;color:#fff;border-radius:6px;font-size:1em;max-height:200px;overflow-y:auto;box-shadow:0 4px 16px #00000026;margin:0;padding:0;list-style:none}.mention-list li{padding:.25em .5em;cursor:pointer}.mention-list li:hover,.mention-list li[data-selected=true],.mention-list li.selected{background-color:#4298f6;color:#fff}.error-message{color:red}.mention-list ul{margin:0;padding:0;list-style:none}.media-upload-section{display:flex;gap:1rem;margin:1rem 0;padding:1rem;background:var(--bg-secondary, #f9f9f9);border-radius:8px}.media-upload-field{flex:1;display:flex;flex-direction:column;gap:.5rem}.media-upload-field label{font-weight:700;color:var(--text-primary, #333)}.media-upload-field input[type=file]{padding:.5rem;border:1px solid var(--border-color, #ddd);border-radius:4px;background:var(--bg-primary, white)}.media-preview{position:relative;display:inline-block;width:80px;height:80px;border:2px solid var(--border-color, #ddd);border-radius:8px;overflow:hidden}.media-preview img{width:100%;height:100%;object-fit:contain}.media-preview button{position:absolute;top:-8px;right:-8px;width:20px;height:20px;padding:0;border:none;border-radius:50%;background:#e74c3c;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center}.media-preview button:hover{background:#c0392b}.article-link{color:var(--link-color, #0077cc);text-decoration:underline;cursor:pointer}.article-link:hover{color:var(--primary-hover, #005999)}.quick-link-popup{background:#222;border-radius:8px;padding:8px;box-shadow:0 4px 20px #0000004d;min-width:280px}.quick-link-input{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid #555;border-radius:4px;background:#333;color:#fff;font-size:14px;outline:none}.quick-link-input::placeholder{color:#888}.quick-link-input:focus{border-color:#4298f6}.quick-link-results{margin:4px 0 0;padding:0;list-style:none;max-height:280px;overflow-y:auto}.quick-link-result-item{padding:6px 10px;border-radius:4px;cursor:pointer;color:#ddd;font-size:14px;display:flex;align-items:center;gap:6px}.quick-link-icon{width:1.1em;height:1.1em;object-fit:contain;flex-shrink:0;filter:brightness(0) invert(1)}.quick-link-result-item:hover,.quick-link-result-item.selected{background:#4298f6;color:#fff}.quick-link-empty{padding:6px 10px;color:#888;font-size:13px;font-style:italic}.quick-link-create-action{border-top:1px solid #444;margin-top:2px;color:#4caf50}.quick-link-create-action.selected{background:#4caf50;color:#fff}.quick-link-type-header{padding:6px 10px 10px;color:#aaa;font-size:13px;border-bottom:1px solid #444;margin-bottom:4px;list-style:none}.article-schema-section{margin:1rem 0;padding:1rem;background:var(--bg-secondary, #f5f5f5);border-radius:8px;border:1px solid var(--border-color, #e0e0e0)}.article-schema-select{width:100%;padding:.5rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.9rem;margin-bottom:.75rem;background:var(--bg-primary, #fff)}.article-toolbox-hidden{display:none}.article-toolbox-extra{padding:.5rem;margin-bottom:.5rem;background:var(--bg-secondary, #f0f0f0);border-radius:6px}.zen-toggle-btn{width:100%;padding:.4rem;border:1px solid var(--border-color, #ddd);border-radius:4px;background:var(--bg-primary, #fff);cursor:pointer;font-size:.85rem;margin-bottom:.4rem}.zen-toggle-btn:hover{background:var(--bg-hover, #e8f4fd)}.bg-color-label{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;color:var(--text-secondary, #666)}.bg-color-label input[type=color]{width:2rem;height:1.6rem;border:1px solid var(--border-color, #ddd);border-radius:4px;cursor:pointer;padding:0}.editor-wrapper-zen{min-height:80vh}.tiptap [data-type=spoiler]{background:#ffd70022;border-bottom:2px solid #d4a800;cursor:pointer}.article-detail-container.zen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;overflow-y:auto;background:var(--bg-primary, #fff);transition:all .3s ease;display:flex;justify-content:center}.article-detail-container.zen .article-editor-header,.article-detail-container.zen .article-header-row,.article-detail-container.zen .article-meta-row,.article-detail-container.zen .article-toolbar,.article-detail-container.zen .article-media-upload,.article-detail-container.zen .article-schema-section,.article-detail-container.zen .article-save-btn,.article-detail-container.zen .article-toolbox-panel{display:none!important}.article-detail-container.zen .article-editor-panel{width:100%;max-width:var(--zen-max-width, 720px);margin-top:10vh;padding:0 1.5rem;background:none;border:none;box-shadow:none}.article-detail-container.zen .editor-wrapper{min-height:80vh;padding:0}.article-detail-container.zen .editor-wrapper .tiptap{font-size:var(--editor-font-size, 1.15rem);line-height:1.8}.editor-wrapper .tiptap{font-size:var(--editor-font-size, inherit)}.zen-floating-exit{position:fixed;top:1rem;right:1rem;z-index:1001;opacity:.25;padding:.35rem .7rem;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--bg-secondary, #f0f0f0);cursor:pointer;font-size:.8rem;color:var(--text-primary, #333);transition:opacity .2s}.zen-floating-exit:hover{opacity:1}.article-attachments-section{margin:1rem 0;padding:1rem;background:var(--bg-secondary, #f5f5f5);border-radius:8px;border:1px solid var(--border-color, #e0e0e0)}.article-attachments-section h4{margin:0 0 .75rem;font-size:.95rem;color:var(--text-primary, #333)}.article-attachments-upload{margin-bottom:.75rem}.article-attachments-add-btn{padding:.4rem .8rem;border:1px solid var(--border-color, #ddd);border-radius:4px;background:var(--bg-primary, #fff);cursor:pointer;font-size:.85rem;color:var(--text-primary, #333)}.article-attachments-add-btn:hover:not(:disabled){background:var(--bg-hover, #e8f4fd)}.article-attachments-add-btn:disabled{opacity:.6;cursor:not-allowed}.article-attachments-empty{font-size:.85rem;color:var(--text-secondary, #888);font-style:italic;margin:.5rem 0}.article-attachments-list{list-style:none;margin:0;padding:0}.article-attachments-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:4px;transition:background .15s}.article-attachments-item:hover{background:var(--bg-hover, #f0f0f0)}.article-attachments-icon{font-size:1.1rem;width:1.5rem;text-align:center}.article-attachments-name{flex:1;background:none;border:none;padding:0;font:inherit;text-align:left;cursor:pointer;color:var(--link-color, #4a90d9);text-decoration:none;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.article-attachments-name:hover{text-decoration:underline}.article-attachments-size{font-size:.8rem;color:var(--text-secondary, #888);white-space:nowrap}.article-attachments-delete{padding:.2rem .4rem;border:none;background:none;cursor:pointer;color:var(--text-secondary, #999);font-size:.85rem;border-radius:4px;opacity:.6}.article-attachments-delete:hover{opacity:1;color:#e74c3c;background:#fee}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.filter-panel{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:1rem;overflow:hidden}.filter-panel-header{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:none;border:none;width:100%;cursor:pointer;font-size:.95rem;font-weight:500;color:var(--text-primary);text-align:left}.filter-panel-header:hover{background:var(--bg-tertiary, rgba(0,0,0,.05))}.filter-toggle{font-size:.8rem;color:var(--text-secondary)}.filter-title{flex:1}.filter-count{color:var(--primary);margin-left:.25rem}.filter-summary{font-size:.85rem;color:var(--text-secondary);font-weight:400;max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filter-panel-content{padding:1rem;border-top:1px solid var(--border-color)}.filter-empty{color:var(--text-secondary);font-style:italic;text-align:center;padding:.5rem;margin:0}.filter-list{display:flex;flex-direction:column;gap:.5rem}.filter-row{display:flex;align-items:flex-start;gap:.5rem}.filter-connector{display:flex;align-items:center;padding-top:.5rem}.filter-connector select{padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:.85rem;font-weight:500}.filter-row-content{flex:1;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.5rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px}.filter-field,.filter-operator,.filter-value{padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:.85rem}.filter-field{min-width:120px;flex:1}.filter-operator-wrapper{display:flex;align-items:center;gap:.25rem;position:relative}.filter-operator{min-width:100px}.operator-info{cursor:help;font-size:.85rem;opacity:.6;transition:opacity .2s;position:relative}.operator-info:hover{opacity:1}.operator-info:after{content:attr(data-tooltip);position:absolute;bottom:125%;left:50%;transform:translate(-50%);background:#333;color:#fff;padding:.4rem .6rem;border-radius:4px;font-size:.8rem;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:100;box-shadow:0 2px 8px #0003}.operator-info:hover:after{opacity:1;visibility:visible}.filter-value{min-width:100px;flex:1}.filter-value[type=number]{width:100px}.filter-value[type=text]{flex:2}.filter-remove{padding:.4rem .6rem;background:transparent;border:1px solid var(--border-color);border-radius:4px;color:#dc2626;cursor:pointer;font-size:.85rem;transition:all .2s}.filter-remove:hover{background:#fee2e2;border-color:#dc2626}.filter-actions{display:flex;gap:.5rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.filter-add{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.filter-add:hover{opacity:.9}.filter-clear{padding:.5rem 1rem;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:.9rem}.filter-clear:hover{background:var(--bg-primary);color:var(--text-primary)}@media (max-width: 768px){.filter-row-content{flex-direction:column;align-items:stretch}.filter-field,.filter-operator,.filter-value,.filter-remove,.filter-operator-wrapper{width:100%}.operator-info{position:absolute;right:.5rem;top:50%;transform:translateY(-50%)}}.create-entity-modal{max-width:680px;width:90%;max-height:90vh;overflow-y:auto;overflow-x:hidden;padding:0}.create-entity-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border-color)}.create-entity-modal .modal-header h3{margin:0;display:flex;align-items:center;gap:.5rem}.create-entity-modal-icon{flex-shrink:0}.modal-close-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.25rem .5rem;color:var(--text-secondary);transition:color .2s}.modal-close-btn:hover{color:var(--text-primary)}.create-entity-modal .modal-body{padding:1rem}.create-entity-modal .form-group{margin-bottom:1rem}.create-entity-modal .form-group label{display:block;margin-bottom:.5rem;font-weight:500}.create-entity-modal .form-group input,.create-entity-modal .form-group select,.create-entity-modal .form-group textarea{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:.9rem;background:var(--bg-primary);color:var(--text-primary)}.create-entity-modal .form-group textarea{resize:vertical}.create-entity-modal .form-actions{display:flex;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.create-entity-modal .btn-primary{padding:.75rem 1.5rem;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer}.create-entity-modal .btn-primary:hover{opacity:.9}.create-entity-modal .btn-secondary{padding:.75rem 1.5rem;background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer}.visibility-selector{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.25rem}.visibility-option{flex:1 1 140px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;border:2px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s;text-align:center}.visibility-option input{display:none}.visibility-option:hover{border-color:var(--primary);background:var(--bg-secondary)}.visibility-option.selected{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent)}.visibility-option-icon{font-size:1.5rem}.visibility-option-label{font-weight:600;font-size:.9rem}.visibility-option-help{font-size:.75rem;color:var(--text-secondary);overflow-wrap:anywhere}.entity-list-page{padding:1rem 2rem;max-width:1400px;margin:0 auto}.entity-count{color:var(--text-secondary);font-size:.9rem;white-space:nowrap}.btn-edit-type{padding:.5rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:.85rem;white-space:nowrap}.btn-edit-type:hover{background:var(--bg-primary);border-color:var(--primary)}.entity-list-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:2px solid var(--border-color)}.tab-btn{padding:.6rem 1.5rem;background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:.95rem;color:var(--text-secondary);transition:all .2s}.tab-btn:hover{color:var(--text-primary);border-bottom-color:var(--border-color)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.discover-tab{padding:0}.discover-controls{display:flex;gap:.75rem;margin-bottom:1rem;align-items:center}.discover-search{display:flex;gap:.5rem;flex:1}.discover-search input{flex:1;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary)}.discover-search button{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer}.discover-filter{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary)}.discover-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.discover-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.5rem;transition:border-color .2s}.discover-card:hover{border-color:var(--primary)}.discover-card-header{display:flex;align-items:center;gap:.5rem}.discover-card-icon{font-size:1.3rem}.discover-card-name{font-weight:600;font-size:1rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.discover-imported-badge{color:#22c55e;font-weight:700;font-size:1.1rem}.discover-card-desc{color:var(--text-secondary);font-size:.85rem;margin:0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.discover-card-meta{font-size:.8rem;color:var(--text-tertiary)}.discover-card-actions{margin-top:auto;padding-top:.5rem}.btn-import,.btn-reimport{padding:.4rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;width:100%;transition:opacity .2s}.btn-import:disabled,.btn-reimport:disabled{opacity:.6;cursor:not-allowed}.btn-import{background:var(--primary);color:#fff}.btn-import:hover:not(:disabled){opacity:.9}.btn-reimport{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-reimport:hover:not(:disabled){border-color:var(--primary)}.discover-loading,.discover-empty{padding:2rem;text-align:center;color:var(--text-secondary)}.btn-gedcom-import{padding:.5rem .75rem;background:transparent;border:1px solid var(--border-color, #ddd);border-radius:4px;cursor:pointer;font-size:.85rem;white-space:nowrap}.btn-gedcom-import:hover{background:var(--bg-secondary, #f0f0f0);border-color:var(--primary)}.btn-gedcom-import:disabled{opacity:.6;cursor:not-allowed}.gedcom-result{margin-left:.5rem;font-size:.85rem;color:var(--text-secondary, #666)}.btn-entity-info{background:none;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:1rem;padding:.25rem .5rem;line-height:1;transition:background .2s,border-color .2s}.btn-entity-info:hover{background:var(--bg-secondary);border-color:var(--primary)}.entity-type-info-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center}.entity-type-info-modal{background:var(--bg-primary);border-radius:12px;max-width:480px;width:90vw;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.entity-type-info-header{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.entity-type-info-icon{font-size:1.5rem}.entity-type-info-header h3{flex:1;margin:0;font-size:1.1rem}.entity-type-info-close{background:none;border:none;font-size:1.25rem;cursor:pointer;color:var(--text-secondary);padding:.25rem;line-height:1}.entity-type-info-close:hover{color:var(--text-primary)}.entity-type-info-body{padding:1.25rem 1.5rem}.entity-type-info-body h4{font-size:.9rem;margin:1rem 0 .5rem;color:var(--text-primary)}.entity-type-info-body h4:first-child{margin-top:0}.entity-type-info-what{color:var(--text-secondary);line-height:1.5;margin:0}.entity-type-info-inspiration{margin:0;padding-left:1.25rem;color:var(--text-secondary);font-size:.9rem;line-height:1.6}.entity-type-info-attributes{color:var(--text-secondary);font-size:.9rem;margin:0}.entity-type-info-desc{color:var(--text-secondary);font-size:.9rem;line-height:1.4;margin:0}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.map-detail__container{display:flex;flex-direction:column;flex:1;width:100%;overflow:hidden}.map-detail__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;background:var(--bg-secondary, #2a2a2a);border-bottom:1px solid var(--border-color, #444);flex-shrink:0;z-index:100}.map-detail__header-left{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.map-detail__sidebar-toggle{background:none;border:1px solid var(--border-color, #555);color:var(--text-primary, #eee);padding:.25rem .5rem;border-radius:4px;cursor:pointer;font-size:1rem;line-height:1;flex-shrink:0}.map-detail__sidebar-toggle:hover{background:var(--bg-hover, #3a3a3a)}.map-detail__title{margin:0;font-size:1.1rem;color:var(--text-primary, #eee);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-detail__title-input{width:100%;padding:.4rem .6rem;border:1px solid var(--border-color, #555);border-radius:4px;font-size:1.1rem;font-weight:600;background:var(--bg-primary, #222);color:var(--text-primary, #eee)}.map-detail__header-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.map-detail__world-selector{display:flex;align-items:center;gap:.5rem}.map-detail__world-selector label{font-size:.85rem;font-weight:500;color:var(--text-secondary, #aaa);white-space:nowrap}.map-detail__world-selector select{padding:.25rem .5rem;border:1px solid var(--border-color, #555);border-radius:4px;font-size:.85rem;background:var(--bg-primary, #222);color:var(--text-primary, #eee)}.map-detail__body{display:flex;flex:1;overflow:hidden;position:relative}.map-detail__sidebar{width:300px;flex-shrink:0;overflow-y:auto;overflow-x:hidden;background:var(--bg-secondary, #2a2a2a);border-right:1px solid var(--border-color, #444);transition:width .3s ease,padding .3s ease,border-color .3s ease;padding:0}.map-detail__sidebar.collapsed{width:0;border-right-color:transparent;overflow:hidden}.map-detail__edit-form{position:absolute;top:10px;right:10px;width:340px;max-height:calc(100% - 20px);overflow-y:auto;z-index:1000;background:var(--bg-secondary, #2a2a2a);border:1px solid var(--border-color, #555);border-radius:8px;padding:1rem;box-shadow:0 4px 16px #0006}.map-detail__edit-form .form-actions{display:flex;gap:.5rem;margin-top:1rem}.map-detail__current-image{display:flex;align-items:center;gap:.5rem}.map-detail__current-image img{max-width:120px;max-height:60px;border-radius:4px;object-fit:cover}.map-detail__maparea{position:relative;flex:1;overflow:hidden}.map-detail__maparea .leaflet-container{position:absolute!important;top:0;left:0;right:0;bottom:0;width:100%!important;height:100%!important;min-height:0;z-index:1}@media (max-width: 1024px){.map-detail__sidebar{position:absolute;top:0;left:0;bottom:0;z-index:50;box-shadow:2px 0 12px #0006}.map-detail__sidebar.collapsed{box-shadow:none}}@media (max-width: 640px){.map-detail__header{flex-wrap:wrap;gap:.5rem}.map-detail__world-selector label{display:none}.map-detail__edit-form{width:calc(100% - 20px);right:10px;top:10px}}.map-detail__map-wrapper{position:relative;flex:1;overflow:hidden;display:flex;flex-direction:column}.path-drawing-toolbar{position:absolute;bottom:50px;left:50%;transform:translate(-50%);z-index:2000;background:var(--bg-secondary, #2a2a2a);border:1px solid var(--border-color, #555);border-radius:8px;padding:10px 16px;display:flex;align-items:center;gap:16px;box-shadow:0 4px 16px #00000080}.path-drawing-toolbar span{color:var(--text-primary, #eee);font-size:.9rem;white-space:nowrap}.path-drawing-toolbar__actions{display:flex;gap:8px}.path-drawing-toolbar__actions button{padding:6px 14px;border:1px solid var(--border-color, #555);background:var(--bg-primary, #333);color:var(--text-primary, #eee);border-radius:4px;cursor:pointer;font-size:.85rem}.path-drawing-toolbar__actions button:hover:not(:disabled){background:var(--bg-hover, #3a3a3a)}.path-drawing-toolbar__actions button:disabled{opacity:.4;cursor:default}.path-drawing-toolbar__cancel{color:#e74c3c!important}.btn--active{background:var(--accent-color, #4a9eff)!important;border-color:var(--accent-color, #4a9eff)!important;color:#fff!important}.marker-context-menu{position:fixed;z-index:3000;background:var(--bg-secondary, #2a2a2a);border:1px solid var(--border-color, #555);border-radius:6px;box-shadow:0 4px 16px #00000080;padding:4px 0;min-width:140px;display:flex;flex-direction:column}.marker-context-menu button{background:none;border:none;color:var(--text-primary, #eee);padding:8px 16px;text-align:left;cursor:pointer;font-size:.9rem;width:100%}.marker-context-menu button:hover{background:var(--bg-hover, #3a3a3a)}.marker-context-menu__delete{color:#e74c3c!important}.marker-context-menu__delete:hover{background:#e74c3c26!important}.map-detail__zoom-badge{position:absolute;bottom:10px;right:10px;z-index:1000;background:#0009;color:#fff;padding:.25rem .6rem;border-radius:4px;font-size:.8rem;font-family:monospace;pointer-events:none;-webkit-user-select:none;user-select:none}.layer-panel{border-bottom:1px solid var(--border-color, #555);padding-bottom:.5rem;margin-bottom:.5rem;width:100%;box-sizing:border-box}.layer-panel__header{display:flex;align-items:center;cursor:pointer;padding:.25rem 0;-webkit-user-select:none;user-select:none}.layer-panel__toggle{font-size:.75rem;margin-right:.5rem;width:1rem}.layer-panel__title{font-weight:600;flex:1;color:var(--text-primary, #eee)}.layer-panel__count{background:var(--primary-color, #3388ff);color:#fff;border-radius:50%;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;font-size:.7rem}.layer-panel__content{padding:.25rem 0}.layer-panel__list{list-style:none;padding:0;margin:0}.layer-panel__item{display:flex;align-items:center;justify-content:space-between;padding:.25rem 0;gap:.25rem}.layer-panel__layer-row{display:flex;align-items:center;gap:.35rem;flex:1}.layer-panel__color-dot{width:.75rem;height:.75rem;border-radius:50%;flex-shrink:0}.layer-panel__visibility-btn{background:none;border:none;cursor:pointer;font-size:.9rem;padding:0;line-height:1;opacity:.7;transition:opacity .2s;color:var(--text-primary, #eee)}.layer-panel__visibility-btn:hover{opacity:1}.layer-panel__visibility-btn--hidden{opacity:.3}.layer-panel__name{flex:1;font-size:.9rem;color:var(--text-primary, #eee)}.layer-panel__marker-count{font-size:.75rem;color:var(--text-secondary, #aaa)}.layer-panel__actions{display:flex;gap:.25rem;opacity:0;transition:opacity .2s}.layer-panel__item:hover .layer-panel__actions{opacity:1}.layer-panel__btn{background:none;border:none;cursor:pointer;padding:.15rem .25rem;font-size:.8rem;border-radius:3px}.layer-panel__btn:hover{background:#ffffff1a}.layer-panel__btn--delete:hover{background:#f003}.layer-panel__btn--save{color:#4caf50}.layer-panel__btn--cancel{color:#ef5350}.layer-panel__edit-form{display:flex;align-items:center;gap:.25rem;flex:1}.layer-panel__color-input{width:1.5rem;height:1.5rem;border:none;padding:0;cursor:pointer}.layer-panel__name-input{flex:1;padding:.2rem .35rem;border:1px solid var(--border-color, #555);border-radius:3px;font-size:.85rem;background:var(--bg-primary, #222);color:var(--text-primary, #eee)}.layer-panel__add-form{display:flex;gap:.25rem;margin-top:.35rem;padding-top:.35rem;border-top:1px dashed var(--border-color, #555)}.layer-panel__add-input{flex:1;padding:.25rem .35rem;border:1px solid var(--border-color, #555);border-radius:3px;font-size:.8rem;background:var(--bg-primary, #222);color:var(--text-primary, #eee)}.layer-panel__btn--add{background:var(--primary-color, #3388ff);color:#fff;border:none;border-radius:3px;padding:.25rem .5rem;font-size:.75rem;cursor:pointer}.layer-panel__btn--add:hover{opacity:.9}.layer-panel__default-row{display:flex;align-items:center;gap:.35rem;margin-top:.5rem;padding-top:.35rem;border-top:1px dashed var(--border-color, #555)}.layer-panel__btn--default{background:transparent;color:var(--text-secondary, #aaa);border:1px solid var(--border-color, #555);border-radius:3px;padding:.25rem .5rem;font-size:.75rem;cursor:pointer;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-panel__btn--default:hover{color:var(--text-primary, #eee);border-color:var(--primary-color, #3388ff)}.layer-panel__btn--default-active{color:var(--primary-color, #3388ff);border-color:var(--primary-color, #3388ff)}.layer-panel__btn--default-reset{background:transparent;color:var(--text-secondary, #aaa);border:1px solid var(--border-color, #555);border-radius:3px;padding:.25rem .5rem;font-size:.75rem;cursor:pointer}.layer-panel__btn--default-reset:hover{color:#e74c3c;border-color:#e74c3c}.layer-panel__item--active{background-color:#3388ff1a;border-radius:4px;padding-left:.25rem;padding-right:.25rem}.layer-panel__name--clickable{cursor:pointer}.layer-panel__name--clickable:hover{text-decoration:underline}.layer-panel__active-badge{color:#f5a623;font-size:.9rem;margin-left:.25rem}.layer-panel__locked-badge{font-size:.75rem;margin-left:.2rem}.layer-panel__drag-handle{cursor:grab;color:var(--text-secondary, #666);font-size:.85rem;padding:0 .2rem;-webkit-user-select:none;user-select:none}.layer-panel__drag-handle:active{cursor:grabbing}.layer-panel__item--dragging{opacity:.4;background:#3388ff0d}.layer-panel__edit-inline-wrap{list-style:none;padding:.5rem .5rem .75rem 1.25rem;background:#3388ff0d;border-left:2px solid var(--primary-color, #3388ff);margin:0 0 .25rem;border-radius:0 4px 4px 0}.layer-edit-inline{width:100%}.layer-edit-inline__fields{display:flex;flex-direction:column;gap:.6rem}.layer-edit-inline__fields .form-group{margin-bottom:0}.layer-edit-inline__fields .form-group label{display:block;margin-bottom:.2rem;font-weight:500;font-size:.8rem;color:var(--text-primary, #eee)}.layer-edit-inline__fields .form-input{width:100%;padding:.3rem .4rem;border:1px solid var(--border-color, #555);border-radius:3px;font-size:.8rem;background:var(--bg-primary, #222);color:var(--text-primary, #eee);box-sizing:border-box}.layer-edit-inline__actions{display:flex;gap:.4rem;margin-top:.6rem;padding-top:.5rem;border-top:1px solid var(--border-color, #555)}.layer-edit-inline .layer-edit-modal__slider{height:4px;max-width:100%;box-sizing:border-box}.layer-edit-inline .layer-edit-modal__color-picker{width:2rem;height:2rem}.layer-edit-inline .layer-edit-modal__bg-preview-img{max-width:80px;max-height:60px}.layer-edit-inline h4{margin:0 0 .5rem;font-size:.85rem;color:var(--text-primary, #eee)}.layer-edit-inline .layer-edit-modal__divider{margin:.3rem 0}.layer-edit-modal{max-width:480px!important}.layer-edit-modal .form-group{margin-bottom:1rem}.layer-edit-modal .form-group label{display:block;margin-bottom:.35rem;font-weight:500;color:var(--text-primary, #eee)}.layer-edit-modal .form-input{width:100%;padding:.45rem .5rem;border:1px solid var(--border-color, #555);border-radius:4px;font-size:.9rem;background:var(--bg-primary, #222);color:var(--text-primary, #eee);box-sizing:border-box}.layer-edit-modal__color-row{display:flex;align-items:center;gap:.5rem}.layer-edit-modal__color-picker{width:2.5rem;height:2.5rem;border:none;padding:0;cursor:pointer;border-radius:4px}.layer-edit-modal__color-hex{font-family:monospace;font-size:.85rem;color:var(--text-secondary, #aaa)}.layer-edit-modal__slider{width:100%;cursor:pointer}.layer-edit-modal__checkbox-label{display:flex!important;align-items:center;gap:.5rem;cursor:pointer}.layer-edit-modal__roles-list{display:flex;flex-direction:column;gap:.35rem;margin-top:.3rem}.layer-edit-modal__checkbox-label input[type=checkbox]{width:1.1rem;height:1.1rem;cursor:pointer}.layer-edit-modal__zoom-row{display:flex;align-items:center;gap:.4rem}.layer-edit-modal__zoom-input{width:7rem!important}.layer-edit-modal__zoom-sep{color:var(--text-secondary, #aaa)}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem;border-top:1px solid var(--border-color, #555)}.layer-edit-modal__divider{border:none;border-top:1px solid var(--border-color, #555);margin:1rem 0}.layer-edit-modal h4{margin:0 0 .75rem;color:var(--text-primary, #eee);font-size:1rem}.layer-edit-modal__bg-preview{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.layer-edit-modal__bg-preview-img{max-width:120px;max-height:80px;border-radius:4px;border:1px solid var(--border-color, #555);object-fit:cover}.layer-edit-modal__mode-row{display:flex;gap:.4rem;flex-wrap:wrap}.layer-edit-modal__mode-row .btn{flex:1;min-width:0;white-space:nowrap;font-size:.8rem;padding:.4rem .5rem}.map-toolbox{width:100%;min-height:0;background:var(--bg-secondary, #2a2a2a);padding:12px 8px;display:flex;flex-direction:column;align-items:stretch;box-sizing:border-box;color:var(--text-primary, #eee)}.map-toolbox__title{font-weight:700;margin-bottom:10px;font-size:15px;text-align:center;display:flex;align-items:center;justify-content:center;gap:8px}.map-toolbox__zoom{font-size:12px;background:var(--bg-tertiary, rgba(0,0,0,.08));color:var(--text-secondary);padding:2px 8px;border-radius:10px;font-weight:400;white-space:nowrap}.map-toolbox__instruction{font-size:12px;margin-bottom:14px;color:var(--text-secondary, #aaa);text-align:center}.map-toolbox__icon{width:48px;height:48px;cursor:grab;-webkit-user-select:none;user-select:none;opacity:1;transition:opacity .2s ease;display:flex;justify-content:center;align-items:center}.map-toolbox__icon--dragging{opacity:.5}.map-toolbox__icon img{max-width:100%;max-height:100%;object-fit:contain}.map-toolbox__marker-list{list-style:none;width:100%;margin:0;padding:0;box-sizing:border-box}.map-toolbox__marker-item{display:flex;align-items:center;gap:6px;padding:4px;border-radius:4px;cursor:pointer;color:var(--text-primary, #eee)}.map-toolbox__marker-item:hover{background-color:#ffffff1a}.map-toolbox__marker-item--empty{font-style:italic;color:var(--text-secondary, #aaa);text-align:center;padding:10px 0}.map-toolbox__section-title{padding:15px 0 10px;color:var(--text-primary, #eee)}.map-toolbox__section-header{display:flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:.25rem 0;border-radius:4px}.map-toolbox__section-header:hover{background:#ffffff0f}.map-toolbox__section-toggle{font-size:.75rem;width:1rem;margin-right:.5rem;flex-shrink:0;color:var(--text-secondary, #aaa)}.map-toolbox__section-title-text{flex:1;font-weight:600;color:var(--text-primary, #eee)}.map-toolbox__section-count{background:var(--primary-color, #3388ff);color:#fff;border-radius:50%;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;font-size:.7rem}.map-toolbox__child-map-list{list-style:none;width:100%;margin:0;padding:0;box-sizing:border-box}.map-toolbox__child-map-item{display:flex;align-items:center;gap:8px;padding:6px 4px;border-radius:4px;cursor:pointer;color:var(--text-primary, #eee)}.map-toolbox__child-map-item:hover{background:#ffffff1a}.map-toolbox__child-map-thumb{width:36px;height:36px;border-radius:4px;object-fit:cover;flex-shrink:0;border:1px solid var(--border-color, #555)}.map-toolbox__child-map-thumb--placeholder{background:var(--bg-primary, #222)}.map-toolbox__child-map-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-toolbox__icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:12px;width:100%;box-sizing:border-box}.map-toolbox__recent-empty{padding:10px;color:var(--text-secondary, #aaa);display:flex;flex-direction:column;gap:10px;align-items:center}.map-toolbox__recent-empty p{margin:0;font-style:italic}.map-toolbox__recent-pick{cursor:pointer}.map-toolbox__recent-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;padding:8px 4px 4px}.map-toolbox__recent-clear{cursor:pointer}.map-toolbox__show-all{background:none;border:none;color:var(--text-secondary, #aaa);cursor:pointer;padding:6px;margin-top:6px;width:100%;text-align:center}.map-toolbox__show-all:hover{color:var(--text-primary, #eee);text-decoration:underline}.map-toolbox__add-location{padding:4px 8px}.map-toolbox__add-location-btn{width:100%;padding:8px;background:var(--bg-primary, #333);border:1px dashed var(--border-color, #555);border-radius:4px;color:var(--text-primary, #eee);cursor:pointer;font-size:.85rem;transition:background .2s}.map-toolbox__add-location-btn:hover{background:var(--primary, #4a90d9);border-style:solid}.marker-edit-panel{position:absolute;top:80px;left:50%;transform:translate(-50%);min-width:350px;max-width:90vw;width:380px;background:#a07e51;box-shadow:0 6px 24px #0000001a;border-radius:8px;padding:24px;z-index:2000;max-height:calc(100vh - 100px);overflow-y:auto}@media (max-width: 640px){.marker-edit-panel{top:10px;left:10px;right:10px;transform:none;min-width:0;width:auto;max-height:calc(100vh - 20px)}}.marker-edit-panel h2{margin-top:0}.marker-edit-panel label{display:block;margin-bottom:12px}.marker-edit-panel input,.marker-edit-panel textarea,.marker-edit-panel select{width:100%;padding:8px;margin-top:4px;box-sizing:border-box}.marker-edit-panel__checkbox{display:flex;align-items:center;gap:8px}.marker-edit-panel__checkbox input{width:auto;margin:0}.marker-edit-panel__actions{display:flex;gap:12px;margin-top:16px}.marker-edit-panel button{padding:8px 18px}.marker-edit-panel__entity-link{margin-bottom:12px}.marker-edit-panel__entity-link label{display:block;margin-bottom:4px}.marker-edit-panel__entity-search{position:relative}.marker-edit-panel__entity-results{position:absolute;top:100%;left:0;right:0;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #ccc);border-radius:4px;max-height:200px;overflow-y:auto;z-index:2100;box-shadow:0 4px 12px #00000026}.marker-edit-panel__entity-result-item{padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:8px;color:var(--text-primary, #333);font-size:14px}.marker-edit-panel__entity-result-item:hover{background:var(--bg-secondary, #f0f0f0)}.marker-edit-panel__entity-icon{font-size:16px;flex-shrink:0}.marker-edit-panel__entity-type-badge{margin-left:auto;font-size:11px;opacity:.6;background:var(--bg-secondary, #eee);padding:1px 6px;border-radius:3px}.marker-edit-panel__entity-empty{padding:12px;color:var(--text-secondary, #888);font-size:13px;text-align:center}.marker-edit-panel__entity-selected{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-secondary, #f0f0f0);border-radius:4px}.marker-edit-panel__entity-name{flex:1;font-weight:500}.marker-edit-panel__entity-remove{background:none;border:none;cursor:pointer;font-size:16px;padding:2px 6px;opacity:.6}.marker-edit-panel__entity-remove:hover{opacity:1}.marker-edit-panel__icon{margin-top:8px}.marker-edit-panel__icon-row{display:flex;align-items:center;gap:8px;margin-top:4px}.marker-edit-panel__icon-preview{width:32px;height:32px;border:1px solid var(--border, #ddd);border-radius:4px;object-fit:contain;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-secondary, #f0f0f0);font-size:14px}.entity-picker{position:relative;width:100%}.entity-picker__search{width:100%;padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:.9rem}.entity-picker__search:focus{outline:none;border-color:var(--link-color, #4a9eff)}.entity-picker__dropdown{position:absolute;top:100%;left:0;right:0;margin-top:2px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 12px #00000026;z-index:100;max-height:240px;overflow-y:auto}.entity-picker__empty{padding:.75rem;text-align:center;color:var(--text-secondary);font-size:.85rem}.entity-picker__result{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;font-size:.9rem}.entity-picker__result:hover,.entity-picker__result.highlighted{background:var(--bg-hover, var(--bg-secondary))}.entity-picker__result-icon{flex-shrink:0}.entity-picker__result-icon .entity-emoji-icon{font-size:1rem}.entity-picker__result-icon .entity-image-icon{width:1.2rem;height:1.2rem;border-radius:50%;object-fit:cover}.entity-picker__result-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-picker__result-type{font-size:.75rem;color:var(--text-secondary);background:var(--bg-secondary);padding:.1rem .4rem;border-radius:3px;flex-shrink:0}.entity-picker__selected{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px}.entity-picker__selected-icon{flex-shrink:0}.entity-picker__selected-icon .entity-emoji-icon{font-size:1rem}.entity-picker__selected-icon .entity-image-icon{width:1.4rem;height:1.4rem;border-radius:50%;object-fit:cover}.entity-picker__selected-name{flex:1;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--link-color, #4a9eff);text-decoration:none}.entity-picker__selected-name:hover{text-decoration:underline}.entity-picker__selected-type{font-size:.7rem;color:var(--text-secondary);background:var(--bg-primary);padding:.1rem .35rem;border-radius:3px;flex-shrink:0}.entity-picker__remove{background:none;border:none;cursor:pointer;color:var(--text-secondary);font-size:.85rem;padding:0 .2rem;line-height:1}.entity-picker__remove:hover{color:#ef4444}.entity-picker__tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.35rem}.entity-picker__tag{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .4rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;font-size:.8rem}.entity-picker__tag-icon{flex-shrink:0;font-size:.9rem}.entity-picker__tag-name{color:var(--link-color, #4a9eff);text-decoration:none;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-picker__tag-name:hover{text-decoration:underline}.entity-picker__tag-remove{background:none;border:none;cursor:pointer;color:var(--text-secondary);font-size:.75rem;padding:0 .1rem;line-height:1}.entity-picker__tag-remove:hover{color:#ef4444}.entity-detail-page{padding:1rem 2rem;max-width:800px;margin:0 auto}.entity-detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem}.back-link{color:var(--text-secondary);text-decoration:none;font-size:.9rem;margin-bottom:.5rem;display:block}.back-link:hover{color:var(--primary)}.entity-detail-header h1{margin:0;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.entity-type-icon{line-height:1}.entity-token-icon{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid var(--border-color, #ddd)}.entity-schema-badge{font-size:.75rem;font-weight:400;padding:.15rem .5rem;background:var(--bg-secondary, #f0f0f0);border:1px solid var(--border-color, #ddd);border-radius:12px;color:var(--text-secondary, #666);white-space:nowrap}.entity-detail-header .favorite-btn{background:none;border:none;font-size:1.3rem;cursor:pointer;color:#ccc;padding:0;line-height:1;transition:color .2s,transform .2s}.entity-detail-header .favorite-btn:hover{transform:scale(1.2);color:#f1c40f}.entity-form{background:var(--bg-secondary);border-radius:8px;padding:1.5rem}.form-section{margin-bottom:2rem}.form-section h3{margin-top:0;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500}.form-group label .required{color:#dc2626;margin-left:.25rem}.form-group input[type=text],.form-group input[type=number],.form-group input[type=date],.form-group select,.form-group textarea{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:.9rem;background:var(--bg-primary);color:var(--text-primary)}.form-group textarea{resize:vertical}.input-with-unit{display:flex;align-items:center;gap:.5rem}.input-with-unit input{flex:1}.unit-suffix{font-size:.9rem;color:var(--text-secondary);font-weight:500}.field-info{cursor:help;margin-left:.25rem;font-size:.85rem;opacity:.7;position:relative;display:inline-block}.field-info:after{content:attr(data-tooltip);position:absolute;bottom:125%;left:50%;transform:translate(-50%);background:#333;color:#fff;padding:.5rem;border-radius:4px;font-size:.8rem;white-space:nowrap;max-width:250px;white-space:normal;opacity:0;visibility:hidden;transition:opacity .1s,visibility .1s;z-index:100;box-shadow:0 2px 8px #0003}.field-info:hover:after{opacity:1;visibility:visible}.checkbox-field{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-field input{width:auto}.list-field{display:flex;flex-direction:column;gap:.5rem}.list-item{display:flex;gap:.5rem}.list-item input{flex:1}.list-item button{padding:.5rem;background:transparent;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;color:#dc2626}.btn-add-item{padding:.5rem;background:transparent;border:1px dashed var(--border-color);border-radius:4px;cursor:pointer;color:var(--text-secondary)}.btn-add-item:hover{border-color:var(--primary);color:var(--primary)}.form-actions{display:flex;gap:.75rem;padding-top:1rem;border-top:1px solid var(--border-color)}.form-actions .btn-primary{padding:.75rem 1.5rem}.form-actions .btn-secondary{padding:.75rem 1.5rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;text-decoration:none;color:inherit}.btn-delete{padding:.5rem 1rem;background:transparent;color:#dc2626;border:1px solid #dc2626;border-radius:4px;cursor:pointer}.btn-delete:hover{background:#fee2e2}.header-actions{display:flex;align-items:center;gap:.5rem}.btn-gedcom-export{padding:.5rem .75rem;background:transparent;color:var(--text-primary, #333);border:1px solid var(--border-color, #ddd);border-radius:4px;cursor:pointer;font-size:.85rem}.btn-gedcom-export:hover{background:var(--bg-secondary, #f0f0f0)}.btn-gedcom-export:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.entity-detail-header{flex-direction:column}.entity-form{padding:1rem}}.relationship-section{margin-top:2rem;padding:1.5rem;background:var(--bg-secondary);border-radius:8px}.relationship-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.relationship-header h3{margin:0;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.btn-add-relationship{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-add-relationship:hover{opacity:.9}.no-relationships{color:var(--text-secondary);font-style:italic}.relationship-groups{display:flex;flex-direction:column;gap:1rem}.relationship-group h4{margin:0 0 .5rem;font-size:1rem}.relationship-list{list-style:none;padding:0;margin:0}.relationship-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:var(--bg-primary);border-radius:4px;margin-bottom:.25rem}.relationship-target{display:flex;align-items:center;gap:.5rem}.relationship-type-label{font-size:.8rem;color:var(--text-secondary)}.btn-remove-relationship{padding:.25rem .5rem;background:transparent;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;color:#dc2626;font-size:.8rem}.btn-remove-relationship:hover{background:#fee2e2}.form-group-embed{margin-bottom:1.5rem}.embed-selector{margin-bottom:.5rem;display:flex;gap:.5rem;align-items:center}.embed-selector select{flex:1}.btn-add-embed{padding:.5rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:1rem;color:var(--text-secondary);transition:all .2s}.btn-add-embed:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.no-embed-hint{font-size:.85rem;color:var(--text-secondary);margin:.5rem 0}.no-embed-hint button{background:none;border:none;color:var(--primary);cursor:pointer;text-decoration:underline;font-size:inherit}.no-embed-hint button:hover{color:var(--text-primary)}.embed-selector select{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:.9rem;background:var(--bg-primary);color:var(--text-primary)}.loading-small{margin-left:.5rem;font-size:.85rem;color:var(--text-secondary)}.embed-preview{margin-top:.75rem;border:1px dashed var(--border-color);border-radius:8px;padding:.5rem;background:var(--bg-primary)}.embed-wrapper{margin:.5rem 0}.no-embed{color:var(--text-secondary);font-style:italic;font-size:.9rem;padding:.5rem;background:var(--bg-primary);border-radius:4px;text-align:center}.target-selectors{display:flex;gap:.5rem}.target-selectors select{flex:1}.map-select-row{display:flex;align-items:center;gap:.5rem}.map-select-row select{flex:1}.map-select-row .btn{padding:.35rem .6rem;font-size:.9rem;border:1px solid var(--border-color, #ddd);border-radius:4px;background:var(--bg-primary, #fff);color:var(--text-primary, #333);cursor:pointer;text-decoration:none;white-space:nowrap}.map-select-row .btn:hover{background:var(--primary, #1a73e8);color:#fff;border-color:var(--primary, #1a73e8)}.maps-section{margin-bottom:2rem}.map-entry{border:1px solid var(--border-color, #ddd);border-radius:6px;margin-bottom:.5rem;overflow:hidden}.map-entry-header{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;background:var(--bg-secondary, #f5f5f5)}.map-entry-header.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.map-entry-header.clickable:hover{background:var(--primary-light, #e8f0fe)}.toggle-icon{font-size:.75rem;width:1rem;flex-shrink:0}.map-entry-name{flex:1;font-weight:500}.map-entry-link{font-size:.85rem;color:var(--primary, #1a73e8);text-decoration:none;white-space:nowrap}.map-entry-link:hover{text-decoration:underline}.map-entry-content{padding:.5rem}.loading-text{padding:2rem;text-align:center;color:var(--text-secondary, #666)}.share-section{margin-top:.5rem}.share-list{list-style:none;padding:0;margin:0 0 .5rem}.share-item{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.9rem}.share-item .share-permissions{font-size:.8rem;color:var(--text-secondary)}.btn-unshare{background:none;border:1px solid var(--danger, #e74c3c);color:var(--danger, #e74c3c);padding:.15rem .5rem;border-radius:4px;cursor:pointer;font-size:.75rem;margin-left:auto}.share-form{display:flex;flex-direction:column;gap:.5rem;padding:.5rem;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--bg-secondary, #f9f9f9)}.share-permissions-select{display:flex;gap:1rem}.share-permissions-select label{display:flex;align-items:center;gap:.3rem;font-size:.9rem;cursor:pointer}.share-form-actions{display:flex;gap:.5rem}.form-help{font-size:.85rem;color:var(--text-secondary);margin-top:-.25rem;margin-bottom:.5rem}.layer-edit-modal__roles-list{display:flex;flex-wrap:wrap;gap:.5rem}.layer-edit-modal__checkbox-label{display:flex;align-items:center;gap:.35rem;cursor:pointer;font-size:.9rem;padding:.25rem .5rem;border:1px solid var(--border-color);border-radius:4px;transition:all .2s}.layer-edit-modal__checkbox-label:hover{border-color:var(--primary);background:var(--bg-primary)}.layer-edit-modal__checkbox-label input[type=checkbox]{width:auto;margin:0}.discover-shared-check{display:flex;align-items:center;gap:.3rem;font-size:.85rem;cursor:pointer;white-space:nowrap}.schema-fields-inline{padding:.75rem;margin-bottom:1rem;background:var(--bg-secondary, #f9f9f9);border:1px solid var(--border-color, #e0e0e0);border-radius:6px}.schema-selector{display:flex;gap:.5rem;align-items:center}.family-tree-section{margin:1.5rem 0;padding:1rem;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;background:var(--bg-primary, #fff)}.family-tree-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.family-tree-header h3{margin:0;font-size:1.1rem}.btn-add-family{padding:.35rem .75rem;background:var(--accent-color, #4a90d9);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem}.btn-add-family:hover{background:var(--accent-hover, #357abd)}.family-tree-groups{display:flex;flex-direction:column;gap:1rem}.family-group{border:1px solid var(--border-color, #eee);border-radius:6px;padding:.75rem;background:var(--bg-secondary, #fafafa)}.family-group-title{margin:0 0 .5rem;font-size:.9rem;color:var(--text-secondary, #666)}.family-members{display:flex;flex-wrap:wrap;gap:.5rem}.family-member-card{display:flex;align-items:center;gap:.3rem;padding:.35rem .6rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #ddd);border-radius:6px}.family-member-link{display:flex;align-items:center;gap:.3rem;text-decoration:none;color:var(--text-primary, #333);font-size:.85rem}.family-member-link:hover{color:var(--link-color, #4a90d9)}.family-member-icon{font-size:1rem;line-height:1}.family-member-name{font-weight:500}.btn-remove-family{background:none;border:none;cursor:pointer;color:#dc2626;font-size:.75rem;padding:.1rem .2rem;line-height:1}.btn-remove-family:hover{color:#b91c1c}.no-relationships{color:var(--text-secondary, #888);font-style:italic;font-size:.9rem}.species-info-card{background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #dee2e6);border-radius:8px;margin-top:1rem;overflow:hidden}.species-info-card.loading{padding:1rem;text-align:center;color:var(--text-secondary, #888)}.species-info-header{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-primary, #fff);border-bottom:1px solid var(--border-color, #dee2e6)}.species-info-icon{font-size:2rem}.species-info-title{display:flex;flex-direction:column;gap:.2rem}.species-info-name{font-size:1.1rem;font-weight:600;color:var(--primary, #3b82f6);text-decoration:none}.species-info-name:hover{text-decoration:underline}.species-info-meta{font-size:.85rem;color:var(--text-secondary, #666)}.species-info-body{padding:.75rem 1rem}.species-info-block{margin-bottom:.75rem}.species-info-block h4{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #666);margin:0 0 .4rem}.species-info-text{margin:0;font-size:.9rem;line-height:1.5}.ability-score-grid{display:flex;gap:.3rem;flex-wrap:wrap}.ability-score-item{display:flex;flex-direction:column;align-items:center;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #dee2e6);border-radius:4px;padding:.25rem .45rem;min-width:2.5rem}.ability-score-label{font-size:.7rem;font-weight:600;text-transform:uppercase;color:var(--text-secondary, #666)}.ability-score-value{font-size:.95rem;font-weight:700}.ability-score-value.positive{color:#22c55e}.ability-score-value.negative{color:#ef4444}.species-traits{display:flex;flex-direction:column;gap:.5rem}.species-trait{display:flex;gap:.5rem;align-items:flex-start;padding:.4rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #dee2e6);border-radius:4px}.species-trait-icon{font-size:1.1rem;flex-shrink:0;margin-top:.1rem}.species-trait-content strong{display:block;font-size:.9rem;margin-bottom:.15rem}.species-trait-content p{margin:0;font-size:.85rem;color:var(--text-secondary, #666);line-height:1.4}.species-subraces{display:flex;flex-direction:column;gap:.3rem}.species-subrace{background:var(--bg-primary, #fff);border:1px solid var(--border-color, #dee2e6);border-radius:4px;padding:.4rem}.species-subrace summary{cursor:pointer;display:flex;align-items:center;gap:.4rem;font-weight:500;font-size:.9rem}.species-subrace-icon{font-size:1rem}.species-subrace-body{padding:.5rem 0 .25rem .5rem;font-size:.85rem}.species-subrace-body p{margin:0 0 .5rem;color:var(--text-secondary, #666)}.subrace-abilities{margin-bottom:.5rem}.species-info-footer p{margin:.2rem 0;font-size:.85rem;color:var(--text-secondary, #666)}.item-info-card{background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #dee2e6);border-radius:8px;margin-top:1rem;overflow:hidden}.item-info-card .item-info-header{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-primary, #fff);border-bottom:1px solid var(--border-color, #dee2e6)}.item-info-icon{font-size:2rem}.item-info-title{font-size:1.1rem;font-weight:600}.item-info-body{padding:.75rem 1rem;display:flex;flex-direction:column}.item-info-row{display:flex;align-items:flex-start;padding:.4rem 0;border-bottom:1px solid var(--border-color, #eee);gap:.75rem}.item-info-row:last-child{border-bottom:none}.item-info-label{flex:0 0 140px;font-size:.85rem;font-weight:600;color:var(--text-secondary, #666)}.item-info-value{flex:1;font-size:.9rem}.item-info-badge{display:inline-block;background:var(--primary-light, #e8f0fe);color:var(--primary, #3b82f6);padding:2px 10px;border-radius:12px;font-size:.85rem;font-weight:500}.item-info-number{font-weight:600;font-variant-numeric:tabular-nums}.item-info-empty{color:var(--text-secondary, #aaa)}.item-info-text{margin:0;font-size:.9rem;line-height:1.4;white-space:pre-wrap}.schema-info-card{background:var(--bg-secondary, #f8f9fa);border:1px solid var(--border-color, #dee2e6);border-radius:8px;margin-top:1rem;overflow:hidden}.schema-info-card .schema-info-header{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-primary, #fff);border-bottom:1px solid var(--border-color, #dee2e6)}.schema-info-icon{font-size:2rem}.schema-info-title{font-size:1.1rem;font-weight:600}.schema-info-body{padding:.75rem 1rem;display:flex;flex-direction:column}.schema-info-row{display:flex;align-items:flex-start;padding:.4rem 0;border-bottom:1px solid var(--border-color, #eee);gap:.75rem}.schema-info-row:last-child{border-bottom:none}.schema-info-label{flex:0 0 140px;font-size:.85rem;font-weight:600;color:var(--text-secondary, #666)}.schema-info-value{flex:1;font-size:.9rem}.schema-info-badge{display:inline-block;background:var(--primary-light, #e8f0fe);color:var(--primary, #3b82f6);padding:2px 10px;border-radius:12px;font-size:.85rem;font-weight:500}.schema-info-number{font-weight:600;font-variant-numeric:tabular-nums}.schema-info-empty{color:var(--text-secondary, #aaa)}.schema-info-text{margin:0;font-size:.9rem;line-height:1.4;white-space:pre-wrap}.marker-popup__desc p{margin:4px 0;font-size:13px}.marker-popup__icon{width:24px;height:24px;margin-right:8px;cursor:pointer;opacity:.88;transition:opacity .2s}.marker-popup__actions>span:last-child .marker-popup__icon{margin-right:0}.marker-popup__icon:hover{opacity:1}.marker-popup__entity-link{margin-top:6px}.marker-popup__entity-link-a{font-size:13px;color:var(--text-primary, #333);text-decoration:underline;opacity:.85}.marker-popup__entity-link-a:hover{opacity:1}.marker-popup__map-preview{margin-top:6px;cursor:pointer;border-radius:4px;overflow:hidden;border:1px solid var(--border-color, #ccc);max-width:160px}.marker-popup__map-preview-img{display:block;width:100%;height:auto;max-height:80px;object-fit:cover}.marker-popup__map-preview--placeholder{display:flex;align-items:center;justify-content:center;height:48px;background:var(--bg-secondary, #f0f0f0)}.marker-popup__map-preview-name{font-size:12px;color:var(--text-secondary, #666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px}.leaflet-toolbar-0{list-style:none;padding-left:0;border:2px solid rgba(0,0,0,.2);border-radius:4px}.leaflet-toolbar-0>li{position:relative}.leaflet-toolbar-0>li>.leaflet-toolbar-icon{display:block;width:30px;height:30px;line-height:30px;margin-right:0;padding-right:0;border-right:0;text-align:center;text-decoration:none;background-color:#fff}.leaflet-toolbar-0>li>.leaflet-toolbar-icon:hover{background-color:#f4f4f4}.leaflet-toolbar-0 .leaflet-toolbar-1{display:none;list-style:none}.leaflet-toolbar-tip-container{margin:-16px auto 0;height:16px;position:relative;overflow:hidden}.leaflet-toolbar-tip{width:16px;height:16px;margin:-8px auto 0;background-color:#fff;border:2px solid rgba(0,0,0,.2);background-clip:content-box;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);border-radius:4px}.leaflet-control-toolbar .leaflet-toolbar-1>li:last-child>.leaflet-toolbar-icon,.leaflet-popup-toolbar>li:last-child>.leaflet-toolbar-icon{border-top-right-radius:4px;border-bottom-right-radius:4px}.leaflet-control-toolbar>li>.leaflet-toolbar-icon{border-bottom:1px solid #ccc}.leaflet-control-toolbar>li:first-child>.leaflet-toolbar-icon{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-control-toolbar>li:last-child>.leaflet-toolbar-icon{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom-width:0}.leaflet-control-toolbar .leaflet-toolbar-1{margin:0;padding:0;position:absolute;left:30px;top:0;white-space:nowrap;height:30px}.leaflet-control-toolbar .leaflet-toolbar-1>li{display:inline-block}.leaflet-control-toolbar .leaflet-toolbar-1>li>.leaflet-toolbar-icon{display:block;background-color:#919187;border-left:1px solid #aaa;color:#fff;font:11px/19px Helvetica Neue,Arial,Helvetica,sans-serif;line-height:30px;text-decoration:none;padding-left:10px;padding-right:10px;height:30px}.leaflet-control-toolbar .leaflet-toolbar-1>li>.leaflet-toolbar-icon:hover{background-color:#a0a098}.leaflet-popup-toolbar{position:relative;box-sizing:content-box}.leaflet-popup-toolbar>li{float:left}.leaflet-popup-toolbar>li>.leaflet-toolbar-icon{border-right:1px solid #ccc}.leaflet-popup-toolbar>li:first-child>.leaflet-toolbar-icon{border-top-left-radius:4px;border-bottom-left-radius:4px}.leaflet-popup-toolbar>li:last-child>.leaflet-toolbar-icon{border-bottom-width:0;border-right:none}.leaflet-popup-toolbar .leaflet-toolbar-1{position:absolute;top:30px;left:0;padding-left:0}.leaflet-popup-toolbar .leaflet-toolbar-1>li>.leaflet-toolbar-icon{position:relative;float:left;width:30px;height:30px}.ldi .leaflet-popup-toolbar{width:max-content!important}.ldi .leaflet-pane .leaflet-overlay-pane img{pointer-events:all!important}.ldi .leaflet-pane .leaflet-overlay-pane img.disabled{cursor:default}.ldi img.leaflet-image-layer.collected{box-shadow:0 0 0 12px #ffea00}.ldi-icon{width:18px;height:18px;vertical-align:middle;fill:#0078a8}.ldi-icon.ldi-delete_forever{fill:#c10d0d}.ldi-icon.ldi-keyboard_open{fill:#000}input.ldi{position:absolute;top:-100px}.ldi .leaflet-toolbar-icon{box-sizing:initial}.ldi .leaflet-toolbar-tip{box-sizing:border-box}.ldi-keymapper{background-color:#fff;color:#000;padding:8px;font-size:13px;letter-spacing:.2px;line-height:1.3;height:auto;width:235px;border-radius:21px;overflow:hidden}.ldi #keymapper-wrapper{position:relative;width:100%;overflow-x:hidden;overflow-y:auto;max-height:186px;min-height:186px}.ldi .left{width:46%}.ldi .left span{overflow-wrap:break-word}.ldi .right{display:flex;max-width:40%;flex-wrap:wrap;margin-left:20px;align-items:flex-start}.ldi #keymapper-hr{transform:rotate(90deg);position:relative;transform-origin:0px;left:50%;margin:-2px;width:200%}.ldi-keymapper tr{display:block}.ldi-keymapper td{padding:.2rem;display:flex;width:100%}.ldi-keymapper kbd{padding:.2rem .4rem;color:#000;background-color:#f7f7f7;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;-moz-box-shadow:0 1px 0px rgba(0,0,0,.2),0 0 0 2px #ffffff inset;-webkit-box-shadow:0 1px 0px rgba(0,0,0,.2),0 0 0 2px #ffffff inset;box-shadow:0 1px 1px #0003,0 2px #ffffffb3 inset;text-shadow:0 .5px 0 #fff}#toggle-keymapper{background-color:#fff;padding:0;width:30px;height:30px;border-radius:4px;right:16px;cursor:pointer;background-position:50% 50%;background-repeat:no-repeat;display:block;text-align:center;text-decoration:none;border:2px solid rgba(184,178,173,.9);line-height:30px}#toggle-keymapper:hover{background-color:#f4f4f4}.close-icon#toggle-keymapper{text-transform:uppercase;width:254px;font-size:11px;border:1px solid lightgray;margin:0;padding:0;background-color:#f5f5f5;border-radius:0 0 21px 21px;position:relative;height:21px;line-height:22px;color:gray;top:10px;left:-10px}.close-icon#toggle-keymapper:hover{background-color:#efefef}a.leaflet-toolbar-icon.rotate,a.leaflet-toolbar-icon.rotate.selected-mode,a.leaflet-toolbar-icon.freeRotate.selected-mode{background-color:transparent;border:transparent}a.leaflet-toolbar-icon.rotate.selected-mode .ldi-icon,a.leaflet-toolbar-icon.freeRotate.selected-mode .ldi-icon,a.leaflet-toolbar-icon.drag.selected-mode .ldi-icon{fill:transparent}a.leaflet-toolbar-icon.drag.selected-mode{background-color:#099b38bf;border:inset .5px lightgray}a.leaflet-toolbar-icon.distort.selected-mode,a.leaflet-toolbar-icon.scale.selected-mode{background-color:transparent;border:transparent}a.leaflet-toolbar-icon.distort.selected-mode .ldi-icon,a.leaflet-toolbar-icon.scale.selected-mode .ldi-icon{fill:#fff}a.leaflet-toolbar-icon.lock.selected-mode{background-color:#030303bf;border:inset .5px lightgray}li.disabled{cursor:auto}a.leaflet-toolbar-icon.disabled{filter:grayscale(1);pointer-events:none}a.leaflet-toolbar-icon.lock.selected-mode .ldi-icon{fill:#fff}a.leaflet-toolbar-icon[title="Loading..."]{background-color:#f5f5f5;pointer-events:none;cursor:default}.ldi-icon.loader{-webkit-animation:ldi-spin 1.1s infinite;animation:ldi-spin 1.1s infinite;fill:#000;width:22px;height:22px}#cancel{fill:#c10d0d}input[type=text]::-webkit-input-placeholder{color:#979797}@keyframes ldi-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}10%{-webkit-transform:rotate(36deg);transform:rotate(36deg)}20%{-webkit-transform:rotate(72deg);transform:rotate(72deg)}30%{-webkit-transform:rotate(108deg);transform:rotate(108deg)}40%{-webkit-transform:rotate(144deg);transform:rotate(144deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}60%{-webkit-transform:rotate(216deg);transform:rotate(216deg)}70%{-webkit-transform:rotate(252deg);transform:rotate(252deg)}80%{-webkit-transform:rotate(288deg);transform:rotate(288deg)}90%{-webkit-transform:rotate(324deg);transform:rotate(324deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes ldi-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}10%{-webkit-transform:rotate(36deg);transform:rotate(36deg)}20%{-webkit-transform:rotate(72deg);transform:rotate(72deg)}30%{-webkit-transform:rotate(108deg);transform:rotate(108deg)}40%{-webkit-transform:rotate(144deg);transform:rotate(144deg)}50%{-webkit-transform:rotate(180deg);transform:rotate(180deg)}60%{-webkit-transform:rotate(216deg);transform:rotate(216deg)}70%{-webkit-transform:rotate(252deg);transform:rotate(252deg)}80%{-webkit-transform:rotate(288deg);transform:rotate(288deg)}90%{-webkit-transform:rotate(324deg);transform:rotate(324deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.leaflet-toolbar-0>li>.leaflet-toolbar-icon{background-color:transparent!important}.leaflet-popup-toolbar>li>.leaflet-toolbar-icon{border-right:none!important}.leaflet-toolbar-0{border:none!important}.leaflet-toolbar-tip{display:none}.iconStyle{width:30px;height:30px;border-radius:50%;background:#fff;display:flex;justify-content:center;align-items:center}a.leaflet-toolbar-icon.rotate.selected-mode .iconStyle{background-color:#000;border:none}a.leaflet-toolbar-icon.rotate.selected-mode .iconStyle svg g path{fill:#fff}a.leaflet-toolbar-icon.rotate .iconStyle svg g path{fill:#000}a.leaflet-toolbar-icon.scale.selected-mode .iconStyle{background-color:#000;border:none}a.leaflet-toolbar-icon.scale.selected-mode .iconStyle svg path{fill:#fff}a.leaflet-toolbar-icon.scale .iconStyle svg path{fill:#000}a.leaflet-toolbar-icon .iconStyle.opacityIconStyle{background-color:#fff;border:none}a.leaflet-toolbar-icon .iconStyle.opacityIconStyle svg path{fill:#000}.path-edit-panel{position:absolute;top:80px;right:10px;width:360px;max-width:90vw;max-height:calc(100vh - 100px);overflow-y:auto;background:var(--bg-secondary, #2a2a2a);border:1px solid var(--border-color, #555);border-radius:8px;padding:20px;z-index:2000;box-shadow:0 4px 16px #0006}.path-edit-panel h2{margin:0 0 16px;font-size:1.1rem;color:var(--text-primary, #eee)}.path-edit-panel label{display:block;margin-bottom:12px;font-size:.9rem;color:var(--text-secondary, #aaa)}.path-edit-panel input[type=text],.path-edit-panel select{width:100%;padding:8px;margin-top:4px;box-sizing:border-box;background:var(--bg-primary, #222);border:1px solid var(--border-color, #555);border-radius:4px;color:var(--text-primary, #eee)}.path-edit-panel__color-row{display:flex;align-items:center;gap:8px;margin-top:4px}.path-edit-panel__color-picker{width:40px;height:36px;border:1px solid var(--border-color, #555);border-radius:4px;padding:2px;cursor:pointer;background:var(--bg-primary, #222)}.path-edit-panel__color-hex{font-family:monospace;font-size:.85rem;color:var(--text-primary, #eee)}.path-edit-panel__width-value{display:inline-block;margin-left:8px;font-family:monospace;font-size:.85rem;color:var(--text-primary, #eee);min-width:30px}.path-edit-panel__icons{border:1px solid var(--border-color, #555);border-radius:4px;padding:10px 12px;margin-bottom:12px}.path-edit-panel__icons legend{font-size:.85rem;color:var(--text-secondary, #aaa);padding:0 4px}.path-edit-panel__checkbox{display:flex;align-items:center;gap:8px;margin-bottom:6px}.path-edit-panel__checkbox input{width:auto;margin:0}.path-edit-panel__actions{display:flex;gap:6px;margin-top:16px}.path-edit-panel button{padding:6px 12px;font-size:.85rem;background:var(--bg-primary, #333);border:1px solid var(--border-color, #555);color:var(--text-primary, #eee);border-radius:4px;cursor:pointer}.path-edit-panel button:first-child{flex:1}.path-edit-panel .btn-danger{padding:6px 10px;font-size:.85rem;background:#a33;border-color:#c44;color:#fff}.path-edit-panel .btn-danger:hover{background:#c44}.path-edit-panel__entity-link{margin-bottom:12px}.path-edit-panel__entity-link label{display:block;margin-bottom:4px}.path-edit-panel__entity-search{position:relative}.path-edit-panel__entity-results{position:absolute;top:100%;left:0;right:0;background:var(--bg-primary, #222);border:1px solid var(--border-color, #555);border-radius:4px;max-height:200px;overflow-y:auto;z-index:2100;box-shadow:0 4px 12px #0000004d}.path-edit-panel__entity-result-item{padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:8px;color:var(--text-primary, #eee);font-size:14px}.path-edit-panel__entity-result-item:hover{background:var(--bg-hover, #3a3a3a)}.path-edit-panel__entity-icon{font-size:16px;flex-shrink:0}.path-edit-panel__entity-type-badge{margin-left:auto;font-size:11px;opacity:.6;background:var(--bg-secondary, #444);padding:1px 6px;border-radius:3px}.path-edit-panel__entity-empty{padding:12px;color:var(--text-secondary, #888);font-size:13px;text-align:center}.path-edit-panel__entity-selected{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-primary, #333);border-radius:4px}.path-edit-panel__entity-name{flex:1;font-weight:500}.path-edit-panel__entity-remove{background:none!important;border:none!important;cursor:pointer;font-size:16px;padding:2px 6px!important;opacity:.6}.path-edit-panel__entity-remove:hover{opacity:1}@media (max-width: 640px){.path-edit-panel{top:10px;right:10px;left:10px;width:auto;max-height:calc(100vh - 20px)}}.timeline-canvas-wrapper{position:relative;padding:2rem 0;min-height:300px}.timeline-canvas-empty{text-align:center;padding:3rem 1rem;color:#888;font-style:italic}.timeline-actions{display:flex;justify-content:flex-end;margin-bottom:1rem}.timeline-orientation-btn{background:var(--bg-secondary, #f0f0f0);border:1px solid var(--border-color, #ddd);border-radius:6px;padding:.4rem 1rem;cursor:pointer;font-size:.85rem;color:var(--text-primary, #333);transition:background .2s}.timeline-orientation-btn:hover{background:var(--bg-hover, #e0e0e0)}.timeline-line{position:absolute;background:var(--timeline-line-color, #4a90d9)}.timeline-horizontal .timeline-line{top:50%;left:0;right:0;height:3px;transform:translateY(-50%)}.timeline-vertical .timeline-line{left:50%;top:0;bottom:0;width:3px;transform:translate(-50%)}.timeline-entries{position:relative;display:flex}.timeline-horizontal .timeline-entries{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;padding:3.5rem 0;scroll-snap-type:x mandatory;align-items:flex-start}.timeline-vertical .timeline-entries{flex-direction:column;padding:0 1rem}.timeline-entry{position:relative;display:flex;align-items:flex-start;scroll-snap-align:start}.timeline-horizontal .timeline-entry{flex-direction:column;align-items:center;min-width:220px;max-width:260px;flex-shrink:0}.timeline-horizontal .timeline-entry-even{margin-top:60px}.timeline-horizontal .timeline-entry-odd{margin-bottom:60px;flex-direction:column-reverse}.timeline-vertical .timeline-entry{flex-direction:row;align-items:center;width:100%}.timeline-vertical .timeline-entry-even{flex-direction:row;justify-content:flex-start;padding-left:calc(50% + 1rem)}.timeline-vertical .timeline-entry-odd{flex-direction:row-reverse;justify-content:flex-start;padding-right:calc(50% + 1rem)}.timeline-dot{width:16px;height:16px;border-radius:50%;border:3px solid var(--bg-primary, #fff);box-shadow:0 0 0 2px var(--timeline-line-color, #4a90d9);z-index:1;flex-shrink:0}.timeline-horizontal .timeline-dot{margin:0 auto}.timeline-vertical .timeline-entry-even .timeline-dot{order:-1;margin-right:.5rem}.timeline-vertical .timeline-entry-odd .timeline-dot{order:1;margin-left:.5rem}.timeline-card{background:var(--bg-card, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:.75rem 1rem;box-shadow:0 2px 8px #00000014;transition:box-shadow .2s;position:relative}.timeline-card:hover{box-shadow:0 4px 16px #0000001f}.timeline-horizontal .timeline-entry-even .timeline-card:after{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid var(--bg-card, #fff)}.timeline-horizontal .timeline-entry-odd .timeline-card:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid var(--bg-card, #fff)}.timeline-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.timeline-icon{font-size:1.2rem;line-height:1}.timeline-date{font-size:.8rem;font-weight:600;color:var(--timeline-line-color, #4a90d9);background:var(--bg-secondary, #f0f0f0);padding:.15rem .5rem;border-radius:4px;white-space:nowrap}.timeline-card-actions{margin-left:auto;display:flex;gap:.25rem;opacity:0;transition:opacity .2s}.timeline-card:hover .timeline-card-actions{opacity:1}.timeline-edit-btn,.timeline-delete-btn{background:none;border:none;cursor:pointer;padding:.15rem .3rem;font-size:.85rem;border-radius:4px;transition:background .2s}.timeline-edit-btn:hover{background:var(--bg-hover, #e8f4fd)}.timeline-delete-btn:hover{background:var(--bg-error-light, #fde8e8)}.timeline-title{margin:0 0 .3rem;font-size:1rem;font-weight:600;color:var(--text-primary, #333)}.timeline-description{margin:0;font-size:.85rem;color:var(--text-secondary, #666);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.timeline-entity-link{display:inline-block;margin-top:.4rem;font-size:.8rem;color:var(--link-color, #4a90d9);text-decoration:none}.timeline-entity-link:hover{text-decoration:underline}.timeline-entry-wrapper{position:relative;display:flex;scroll-snap-align:start}.timeline-horizontal .timeline-entry-wrapper{flex-direction:column;align-items:center;min-width:220px;max-width:260px;flex-shrink:0}.timeline-entry{cursor:default;transition:opacity .2s,transform .2s}.timeline-entry.dragging{opacity:.4}.timeline-entry[draggable=true]{cursor:grab}.timeline-entry[draggable=true]:active{cursor:grabbing}.timeline-drag-handle{cursor:grab;font-size:1.1rem;color:var(--text-secondary, #999);padding:0 .15rem;-webkit-user-select:none;user-select:none}.timeline-drag-handle:active{cursor:grabbing}.timeline-insert-zone{display:flex;align-items:center;justify-content:center;transition:all .2s;position:relative;z-index:2;flex-shrink:0}.timeline-horizontal .timeline-insert-zone{flex-direction:column;min-width:36px;align-self:stretch;margin:0 .5rem}.timeline-vertical .timeline-insert-zone{flex-direction:row;min-height:36px;width:100%;margin:.5rem 0}.timeline-insert-zone.drag-over{background:#4a90d91f;border-radius:8px}.timeline-horizontal .timeline-insert-zone.drag-over{min-width:48px;border-left:3px dashed var(--timeline-line-color, #4a90d9);border-right:3px dashed var(--timeline-line-color, #4a90d9)}.timeline-vertical .timeline-insert-zone.drag-over{min-height:48px;border-top:3px dashed var(--timeline-line-color, #4a90d9);border-bottom:3px dashed var(--timeline-line-color, #4a90d9)}.insert-hint{font-size:.8rem;color:var(--timeline-line-color, #4a90d9);font-style:italic;white-space:nowrap}.insert-btn{width:28px;height:28px;border-radius:50%;border:2px solid var(--border-color, #ccc);background:var(--bg-primary, #fff);color:var(--text-tertiary, #bbb);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;opacity:.35;box-shadow:0 1px 4px #0000000f}.timeline-insert-zone:hover .insert-btn{opacity:1;border-color:var(--accent-color, #4a90d9);color:var(--accent-color, #4a90d9);box-shadow:0 2px 8px #4a90d926}.insert-btn:hover{background:var(--accent-color, #4a90d9);color:#fff!important;border-style:solid;transform:scale(1.1)}.timeline-era{font-size:.75rem;color:var(--text-secondary, #888);font-style:italic;margin-left:.25rem}.timeline-view-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;flex-wrap:wrap}.timeline-view-toggle{display:flex;gap:.5rem}.timeline-view-btn{background:var(--bg-secondary, #f0f0f0);border:1px solid var(--border-color, #ddd);border-radius:6px;padding:.4rem 1rem;cursor:pointer;font-size:.85rem;color:var(--text-primary, #333);transition:all .2s}.timeline-view-btn:hover{background:var(--bg-hover, #e0e0e0)}.timeline-view-btn.active{background:var(--accent-color, #4a90d9);color:#fff;border-color:var(--accent-color, #4a90d9)}.timeline-density-toggle{display:flex;align-items:center;gap:.4rem;margin-right:1rem}.timeline-density-label{font-size:.85rem;color:var(--text-secondary, #666)}.timeline-density-btn{padding:.3rem .7rem;font-size:.8rem}.timeline-filter-toggle{display:flex;align-items:center}.timeline-filter-label{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-secondary, #666);cursor:pointer;-webkit-user-select:none;user-select:none}.timeline-filter-label input[type=checkbox]{cursor:pointer}.timeline-entry.overlap{border-left:3px solid #e74c3c}.timeline-card.overlap-indicator{box-shadow:0 2px 8px #e74c3c33;border-color:#e74c3c}.timeline-table-wrapper{overflow-x:auto;margin-top:1rem}.timeline-table{width:100%;border-collapse:collapse;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;overflow:hidden}.timeline-table thead{background:var(--bg-secondary, #f5f5f5)}.timeline-table th{padding:.6rem .8rem;text-align:left;font-size:.8rem;font-weight:600;color:var(--text-secondary, #666);border-bottom:2px solid var(--border-color, #e0e0e0);white-space:nowrap}.timeline-table td{padding:.5rem .8rem;font-size:.85rem;color:var(--text-primary, #333);border-bottom:1px solid var(--border-color, #eee);vertical-align:middle}.timeline-table tbody tr:hover{background:var(--bg-hover, #f8f9fa)}.timeline-table tbody tr:last-child td{border-bottom:none}.th-icon,.td-icon{width:36px;text-align:center}.timeline-table-icon{font-size:1.2rem;line-height:1}.td-date{white-space:nowrap}.timeline-table-date{font-weight:600;color:var(--timeline-line-color, #4a90d9);font-size:.8rem;background:var(--bg-secondary, #f0f0f0);padding:.15rem .4rem;border-radius:4px}.timeline-table-sort-date{display:block;font-size:.7rem;color:var(--text-tertiary, #999);margin-top:.15rem}.td-title{min-width:150px}.timeline-table-title{font-weight:600}.td-desc{max-width:300px}.timeline-table-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--text-secondary, #666);font-size:.8rem}.td-entity{white-space:nowrap}.timeline-table-entity-link{text-decoration:none;color:var(--link-color, #4a90d9);font-size:.8rem}.timeline-table-entity-link:hover{text-decoration:underline}.timeline-table-no-entity{color:var(--text-tertiary, #ccc)}.th-actions,.td-actions{width:80px;text-align:right;white-space:nowrap}.timeline-table-edit-btn,.timeline-table-delete-btn{background:none;border:none;cursor:pointer;padding:.2rem .4rem;font-size:.85rem;border-radius:4px;transition:background .2s}.timeline-table-edit-btn:hover{background:var(--bg-hover, #e8f4fd)}.timeline-table-delete-btn:hover{background:var(--bg-error-light, #fde8e8)}.timeline-table-empty{text-align:center;padding:3rem 1rem;color:#888;font-style:italic}.timeline-table-row-overlap{background:#e74c3c0a;border-left:3px solid #e74c3c}.timeline-table-row-overlap:hover{background:#e74c3c14!important}.timeline-parallel{margin-top:1rem}.timeline-parallel-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem;padding:.6rem 1rem;background:var(--bg-secondary, #f5f5f5);border-radius:8px;border:1px solid var(--border-color, #e0e0e0)}.timeline-parallel-label{font-size:.85rem;font-weight:600;color:var(--text-primary, #333);white-space:nowrap}.timeline-parallel-selector{display:flex;gap:.4rem;flex-wrap:wrap}.timeline-parallel-add-btn{background:var(--bg-primary, #fff);border:1px solid var(--border-color, #ddd);border-radius:6px;padding:.3rem .7rem;cursor:pointer;font-size:.8rem;color:var(--accent-color, #4a90d9);transition:all .2s;white-space:nowrap}.timeline-parallel-add-btn:hover{background:var(--accent-color, #4a90d9);color:#fff;border-color:var(--accent-color, #4a90d9)}.timeline-parallel-none{font-size:.8rem;color:var(--text-tertiary, #999);font-style:italic}.timeline-parallel-clear-btn{margin-left:auto;background:none;border:none;cursor:pointer;font-size:.8rem;color:var(--text-secondary, #888);padding:.3rem .6rem;border-radius:4px;transition:background .2s}.timeline-parallel-clear-btn:hover{background:var(--bg-error-light, #fde8e8);color:#e74c3c}.timeline-parallel-columns{display:flex;gap:1rem;overflow-x:auto}.timeline-parallel-column{flex:1;min-width:0;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;overflow:hidden}.timeline-parallel-column-compare{background:var(--bg-secondary, #fafafa)}.timeline-parallel-column-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:var(--bg-secondary, #f0f0f0);border-bottom:1px solid var(--border-color, #e0e0e0)}.timeline-parallel-column-name{font-size:.85rem;font-weight:600;color:var(--text-primary, #333)}.timeline-parallel-remove-btn{background:none;border:none;cursor:pointer;font-size:.85rem;color:var(--text-tertiary, #999);padding:.15rem .3rem;border-radius:4px;transition:all .2s}.timeline-parallel-remove-btn:hover{background:var(--bg-error-light, #fde8e8);color:#e74c3c}.timeline-parallel-column-scroll{overflow-x:auto;max-height:500px;overflow-y:auto}.timeline-parallel-loading{text-align:center;padding:2rem;color:var(--text-secondary, #888);font-style:italic}.editable-name{display:inline-block;margin:0;padding:0 .25rem;cursor:pointer;border-bottom:2px dashed transparent;transition:border-color .15s ease;border-radius:2px}.editable-name:hover{border-bottom-color:var(--accent)}.editable-name:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.editable-name--static{cursor:default}.editable-name--static:hover{border-bottom-color:transparent}.editable-name__input{display:inline-block;width:auto;max-width:100%;margin:0;padding:.1rem .25rem;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--accent);border-radius:4px;outline:none;font-family:inherit;font-weight:700;line-height:1.2}.editable-name__input--h1{font-size:2rem}.editable-name__input--h2{font-size:1.5rem}.editable-name__input--h3{font-size:1.17rem}.backup-settings{padding:1rem}.backup-settings h2{margin-bottom:1.5rem;color:var(--text-primary, #333)}.backup-info{margin-top:.5rem;color:var(--text-tertiary, #666);font-size:.9rem}.backup-world-selector{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--bg-secondary, #f5f5f5);border-radius:8px}.backup-world-selector label{font-weight:500;color:var(--text-primary, #333)}.backup-world-selector select{flex:1;max-width:300px;padding:.5rem;border:1px solid var(--border-color, #ccc);border-radius:4px;font-size:1rem}.backup-section{background:var(--card-bg, white);padding:1.5rem;border-radius:8px;margin-bottom:1.5rem;box-shadow:0 2px 8px #0000001a}.backup-section h3{margin-top:0;margin-bottom:1rem;color:var(--text-primary, #333);font-size:1.1rem}.backup-setting label{font-weight:500;min-width:120px;color:var(--text-primary, #333)}.backup-media-toggle{margin-bottom:.75rem}.backup-upload-btn{background:#455a64!important}.backup-upload-btn:hover:not(:disabled){background:#37474f!important}.backup-btn-row{display:flex;gap:.75rem;align-items:center;margin-bottom:.75rem}.backup-upload-label{display:inline-block;cursor:pointer}.backup-upload-label:has(input:disabled) .backup-upload-btn{background:#ccc!important;cursor:not-allowed}.backup-info-message{text-align:center;color:#d32f2f;font-size:1.1rem;padding:2rem}.backup-setting select,.backup-setting input{padding:.5rem;border:1px solid var(--border-color, #ccc);border-radius:4px}.backup-create-btn{padding:.75rem 1.5rem;background:#1976d2;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.backup-create-btn:hover:not(:disabled){background:#1565c0}.backup-create-btn:disabled{background:#ccc;cursor:not-allowed}.backup-message{margin-top:1rem;color:#2e7d32;font-weight:500}.backup-message.test-email-error,.backup-message--error{color:#c62828}.backup-table{width:100%;border-collapse:collapse}.backup-table th,.backup-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border-color, #eee)}.backup-table th{font-weight:600;color:var(--text-primary, #333);background:var(--bg-secondary, #f5f5f5)}.backup-table td{color:var(--text-primary, #333)}.backup-world-name{font-weight:500;text-transform:capitalize}.backup-table .backup-actions{text-align:right;white-space:nowrap}.backup-table .backup-actions .backup-download,.backup-table .backup-actions .backup-delete{margin-left:.5rem}.backup-download{padding:.4rem .75rem;background:#4caf50;color:#fff;text-decoration:none;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.backup-download:disabled{opacity:.6;cursor:wait}.backup-auto-badge{display:inline-block;margin-left:.5rem;padding:.1rem .5rem;border-radius:10px;font-size:.75rem;background:var(--bg-hover, rgba(0, 0, 0, .08));color:var(--text-secondary, #666)}.backup-download:hover{background:#43a047}.backup-import{padding:.4rem .75rem;background:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.backup-import:hover{background:#1976d2}.backup-delete{padding:.4rem .75rem;background:#f44336;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.backup-delete:hover{background:#e53935}.empty{color:var(--text-tertiary, #666);font-style:italic}.backup-settings .modal-content{background:var(--card-bg, #fff);padding:1.5rem;border-radius:8px;width:90%;max-width:500px;max-height:80vh;overflow-y:auto;box-shadow:0 4px 20px #00000026;color:var(--text-primary, #333)}.backup-settings .modal-content p,.backup-settings .modal-content li{color:var(--text-primary, #333)}.backup-settings .modal-content select{color:var(--text-primary, #333);background:var(--input-bg, #fff)}.backup-settings .modal-content h2{margin-top:0;margin-bottom:1rem;color:var(--text-primary, #2c3e50)}.admin-settings .modal-content{max-width:500px;max-height:80vh;overflow-y:auto}.backup-preview{margin:1rem 0;color:var(--text-primary, #333)}.backup-preview p{margin:.5rem 0;color:var(--text-primary, #333)}.backup-preview h3{margin-top:1rem;margin-bottom:.5rem;color:var(--text-primary, #333)}.backup-preview ul{list-style:none;padding:0}.backup-preview li{padding:.25rem 0;color:var(--text-primary, #333)}.backup-warning{background:#fff3cd;border:1px solid #ffc107;padding:.75rem;border-radius:4px;color:#856404;margin:1rem 0}.backup-warning-info{background:#e0f2f1;border-color:#26a69a;color:#00695c}.import-options{margin:1rem 0}.import-as-new{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:var(--text-primary, #333)}.import-as-new input{width:18px;height:18px}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer;border:none}.btn-primary{background:var(--primary, #3498db);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover, #2980b9)}.btn-primary:disabled{background:var(--text-tertiary, #bdc3c7);cursor:not-allowed}.btn-secondary{background:var(--bg-secondary, #ecf0f1);color:var(--text-primary, #333)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover, #bdc3c7)}.import-options .backup-setting{padding:.5rem 0}.import-options .backup-setting select{padding:.4rem;border:1px solid var(--border-color, #ccc);border-radius:4px;min-width:200px}.admin-role-list{display:flex;flex-direction:column;gap:.6rem;margin:.8rem 0;max-height:40vh;overflow-y:auto}.admin-role-row{border:1px solid var(--border-color, #ccc);border-radius:6px;padding:.6rem .8rem;background:var(--bg-primary, #fff)}.admin-role-user{font-weight:600;margin-bottom:.4rem;display:flex;align-items:center;gap:.4rem}.admin-role-meta{font-weight:400;opacity:.7;font-size:.85em}.admin-role-options{display:flex;gap:1rem;flex-wrap:wrap}.admin-role-radio{display:flex;align-items:center;gap:.3rem;cursor:pointer;font-size:.9em}.admin-role-hint{color:var(--text-secondary, #666);font-size:.9em}.admin-role-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.8rem}.backup-verify{padding:.4rem .75rem;background:#9c27b0;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.backup-verify:hover{background:#7b1fa2}.backup-table .backup-actions .backup-verify{margin-left:.5rem}.backup-verify-issues{margin:.75rem 0;max-height:240px;overflow-y:auto}.backup-verify-issues ul{list-style:none;padding:0;margin:0}.backup-verify-issues li{padding:.3rem 0;font-size:.9rem;color:var(--text-primary, #333)}.verify-modal{max-width:650px}.verify-modal table{table-layout:fixed;width:100%}.verify-modal table td:last-child{word-break:break-all;overflow-wrap:break-word}.verify-summary{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.verify-summary-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;border-radius:12px;font-size:.85rem;font-weight:600}.verify-summary-pill--error{background:#ef444426;color:var(--color-danger, #ef4444)}.verify-summary-pill--warning{background:#f59e0b26;color:var(--color-warning, #f59e0b)}.verify-summary-pill--info{background:#3b82f626;color:var(--color-info, #3b82f6)}.verify-issue{display:flex;align-items:flex-start;gap:.4rem;border-left:3px solid transparent;padding:.35rem 0 .35rem .5rem;font-size:.9rem}.verify-issue--critical,.verify-issue--error{border-left-color:var(--color-danger, #ef4444)}.verify-issue--warning{border-left-color:var(--color-warning, #f59e0b)}.verify-issue--info{border-left-color:var(--color-info, #3b82f6)}.verify-issue-icon{flex-shrink:0;line-height:1.2}.verify-issue-text{flex:1;color:var(--text-primary, #333)}.verify-issue-location{color:var(--text-tertiary, #888);font-size:.85rem}.verify-expandable{background:none;border:none;color:var(--color-info, #3b82f6);cursor:pointer;font-size:.85rem;padding:.3rem 0;text-decoration:underline}.verify-expandable:hover{color:var(--color-info-hover, #2563eb)}.verify-no-issues{padding:.75rem;background:#22c55e1a;border-radius:6px;color:var(--color-success, #22c55e);font-weight:600;text-align:center}.settings-page{padding:2rem;max-width:1200px;margin:0 auto}.settings-page h1{margin-bottom:2rem}.settings-tabs{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;border-bottom:2px solid var(--border-color, #e0e0e0);padding-bottom:1rem}.settings-tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--bg-secondary, #f5f5f5);border:2px solid var(--border-color, #e0e0e0);border-radius:8px;cursor:pointer;font-size:1rem;color:var(--text-primary, #333);transition:all .2s}.settings-tab:hover{background:var(--hover-bg, #e8e8e8)}.settings-tab.active{background:var(--primary, #4a90d9);color:#fff;border-color:var(--primary, #4a90d9)}.settings-tab .tab-icon{font-size:1.25rem;color:var(--settings-icon-color)}.settings-tab.active .tab-icon{color:#fff}.settings-content{min-height:400px}.logs-settings h2{margin-bottom:1.5rem}.logs-container{display:grid;grid-template-columns:300px 1fr;gap:1.5rem;min-height:500px}.logs-list{background:var(--bg-secondary, #f9f9f9);border-radius:8px;padding:1rem}.logs-list h3{margin-bottom:1rem;font-size:1rem;color:var(--text-secondary, #666)}.logs-list ul{list-style:none;padding:0}.backup-info{font-size:.85em;color:var(--text-tertiary, #888);margin-top:.5rem}.logs-list li{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:6px;cursor:pointer;transition:background .2s}.logs-list li:hover{background:var(--bg-hover, #e8e8e8)}.logs-list li.selected{background:var(--primary-light, #d4e8f7)}.log-icon{font-size:1.25rem}.log-info{display:flex;flex-direction:column}.log-name{font-weight:500;font-size:.875rem;color:var(--text-primary, #333)}.log-date{font-size:.75rem;color:var(--text-tertiary, #888)}.logs-detail{background:var(--bg-secondary, #f9f9f9);border-radius:8px;padding:1rem;overflow:auto}.logs-detail h3{margin-bottom:1rem;font-size:1rem;color:var(--text-secondary, #666);word-break:break-all}.log-content{background:#242424;color:#e0e0e0;padding:1rem;border-radius:6px;overflow:auto;white-space:pre-wrap;font-family:monospace;font-size:.875rem;line-height:1.5}.logs-placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary, #888);font-style:italic}@media (max-width: 768px){.logs-container{grid-template-columns:1fr}}.invitations-settings{display:flex;flex-direction:column;gap:2rem}.invitations-section h2{margin-bottom:1rem;font-size:1.1rem;color:var(--text-primary)}.empty-message{color:var(--text-secondary);font-style:italic}.invitations-table{width:100%;border-collapse:collapse;font-size:.9rem}.invitations-table th,.invitations-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border-color)}.invitations-table th{background:var(--bg-primary);font-weight:600;color:var(--text-secondary)}.invitations-table tr:hover{background:var(--bg-primary)}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500}.status-pending{background:var(--warning-light, #fef3c7);color:var(--warning, #92400e)}.status-accepted{background:var(--success-light, #d1fae5);color:var(--success, #065f46)}.status-declined{background:var(--danger-light, #fee2e2);color:var(--danger, #991b1b)}.invitation-actions{display:flex;gap:.5rem}.btn-small{padding:.25rem .5rem;font-size:.75rem;border-radius:4px;border:none;cursor:pointer}.btn-accept.btn-small{background:var(--primary);color:#fff}.btn-accept.btn-small:hover:not(:disabled){opacity:.9}.btn-decline.btn-small{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.btn-decline.btn-small:hover:not(:disabled){background:var(--bg-primary)}.btn-small:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.invitations-table{display:block;overflow-x:auto}}.entity-types-settings{padding:1rem 0}.entity-types-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.entity-types-header h2{margin:0}.entity-types-settings .description{color:var(--text-secondary);margin-bottom:1.5rem}.entity-types-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.entity-types-sections{display:flex;flex-direction:column;gap:1.25rem;margin-top:1rem}.entity-type-section{border:1px solid var(--border-color, #ddd);border-radius:8px;padding:1rem;background:var(--card-bg, #fff)}.entity-type-section-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.entity-type-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.entity-type-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.entity-type-icon{font-size:1.5rem}.entity-type-icon .entity-image-icon{width:1.5rem;height:1.5rem}.entity-type-info{flex:1}.entity-type-section-header .entity-type-info{min-width:0;overflow:hidden}.entity-type-section-header .entity-type-info h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-type-info h3{margin:0;font-size:1rem}.entity-type-slug{font-size:.75rem;color:var(--text-secondary)}.badge-standard{background:var(--primary);color:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.7rem}.entity-type-fields{font-size:.85rem;margin-bottom:.75rem}.entity-type-fields ul{margin:.5rem 0 0 1rem;padding:0}.entity-type-settings{border-top:1px solid var(--border-color);padding-top:.75rem;margin-bottom:.75rem}.entity-type-settings>strong{display:block;font-size:.85rem;margin-bottom:.5rem}.entity-type-settings .entity-settings-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}.entity-type-settings .entity-settings-fields .form-group{margin:0}.entity-type-settings .entity-settings-fields .entity-nav-toggle{grid-column:1 / -1;margin-bottom:.25rem}.entity-type-settings .entity-settings-fields .entity-nav-toggle .toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0;font-size:.8rem;color:var(--text-primary)}.entity-type-collapse-toggle{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:.25rem;border-radius:4px;flex-shrink:0;line-height:0;display:inline-flex;align-items:center;justify-content:center}.entity-type-collapse-toggle:hover{background:var(--hover-bg);color:var(--text-primary)}.entity-type-collapse-toggle.is-expanded .ui-svg-icon{transform:rotate(180deg)}.entity-type-section-actions{display:flex;align-items:center;gap:.5rem;min-width:0}.entity-type-section-header .entity-nav-toggle{margin:0;min-width:0}.entity-type-section-header .entity-nav-toggle .toggle-row{display:flex;align-items:center;gap:.5rem;margin:0}.entity-type-section-header .entity-nav-toggle .toggle-row>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-type-section-header .toggle-track{width:36px;height:20px}.entity-type-section-header .toggle-thumb{width:16px;height:16px}.entity-type-section-header .toggle-row input:checked+.toggle-track .toggle-thumb{transform:translate(16px)}.entity-type-settings .entity-settings-fields label{font-size:.75rem;margin-bottom:.2rem;display:block;color:var(--text-secondary)}.entity-type-settings .entity-settings-fields select{width:100%;padding:.3rem;border:1px solid var(--border-color);border-radius:4px;font-size:.8rem;background:var(--bg-primary);color:var(--text-primary)}.entity-type-settings .entity-settings-fields input[type=text]{width:100%;padding:.3rem;border:1px solid var(--border-color);border-radius:4px;font-size:.8rem;background:var(--bg-primary);color:var(--text-primary);box-sizing:border-box}.entity-type-settings .entity-settings-fields .nav-icon-row{display:flex;align-items:center;gap:.35rem}.entity-type-settings .entity-settings-fields .nav-icon-row input[type=text]{flex:1;min-width:0}.entity-type-settings .entity-settings-fields .nav-icon-preview{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;height:1.6rem;font-size:1rem}.entity-type-settings .entity-settings-fields .nav-icon-preview .entity-image-icon{width:1.4rem;height:1.4rem;object-fit:contain}.entity-type-settings .entity-settings-fields .nav-icon-pick,.entity-type-settings .entity-settings-fields .nav-icon-reset{padding:.25rem .5rem;font-size:.8rem;white-space:nowrap}.entity-type-fields li{margin-bottom:.25rem}.entity-type-fields .required{color:#dc2626}.entity-type-actions{display:flex;gap:.5rem}.entity-type-actions button{padding:.4rem .75rem;border-radius:4px;border:none;cursor:pointer;font-size:.8rem}.btn-edit{background:var(--primary);color:#fff}.btn-delete{background:transparent;color:#dc2626;border:1px solid #dc2626}div.entity-type-form.modal-content{max-width:min(1200px,95vw);max-height:90vh;overflow-y:auto;color:var(--text-primary)}.entity-type-form h3{margin-bottom:1.5rem}.entity-type-form .form-group{margin-bottom:1rem}.entity-type-form label{display:block;margin-bottom:.25rem;font-weight:500;color:var(--text-primary)}.entity-type-form input[type=text],.entity-type-form input[type=number],.entity-type-form select,.entity-type-form textarea{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:.9rem;background:var(--bg-primary);color:var(--text-primary)}.entity-type-form small{font-size:.75rem;color:var(--text-secondary)}.icon-picker{display:flex;flex-wrap:wrap;gap:.5rem}.icon-option{width:2.5rem;height:2.5rem;font-size:1.25rem;border:2px solid var(--border-color);border-radius:4px;background:var(--bg-primary);cursor:pointer}.icon-option.selected{border-color:var(--primary);background:rgba(var(--primary-rgb),.1)}.icon-picker-url-row{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.icon-picker-preview{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding:0 .5rem;border:1px solid var(--border-color);border-radius:4px;font-size:1.1rem}.icon-picker-preview .entity-image-icon{width:1.5rem;height:1.5rem;object-fit:contain}.ui-icon-settings-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.ui-icon-settings-row{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:8px;background:var(--card-bg)}.ui-icon-settings-preview{min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:1.4rem}.ui-icon-settings-preview .entity-image-icon{max-width:36px;max-height:36px;object-fit:contain}.ui-icon-settings-meta{flex:1;min-width:0;display:flex;flex-direction:column}.ui-icon-settings-meta code{font-size:.7rem;color:var(--text-secondary)}.ui-icon-settings-row input[type=text]{max-width:220px}.ui-icon-settings-row .ui-icon-pick{flex-shrink:0}.ui-icon-settings-row .ui-icon-reset{flex-shrink:0;background:none;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;padding:.2rem .5rem}.form-section{margin:1.5rem 0;padding:1rem;background:var(--bg-primary);border-radius:8px}.form-section h4{margin-top:0;margin-bottom:1rem}.field-row{display:grid;grid-template-columns:1fr 1fr 100px auto auto;gap:.5rem;align-items:center;margin-bottom:.5rem}.field-row-extended{display:grid;grid-template-columns:1fr 1fr 140px 80px 50px;gap:.5rem;align-items:center;margin-bottom:.5rem}.field-row-extended input.full-width{grid-column:span 1}.field-row input[type=text]{padding:.4rem;border:1px solid var(--border-color);border-radius:4px;font-size:.85rem;background:var(--bg-primary);color:var(--text-primary)}.field-row-extended input[type=text],.field-row-extended select{padding:.4rem;border:1px solid var(--border-color);border-radius:4px;font-size:.85rem;background:var(--bg-primary);color:var(--text-primary);width:100%;box-sizing:border-box}.field-row select{padding:.4rem;border:1px solid var(--border-color);border-radius:4px;font-size:.85rem}.checkbox-label{display:flex;align-items:center;gap:.25rem;font-size:.8rem;white-space:nowrap;min-width:70px}.embed-config{display:flex;gap:.25rem;grid-column:span 3;padding:.25rem 0}.field-config-entity-ref{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;padding:.4rem 0 .25rem;margin-top:-.25rem}.field-config-entity-ref .checkbox-label{min-width:auto}.field-filter-types{flex:1;min-width:180px;padding:.4rem;border:1px solid var(--border-color);border-radius:4px;font-size:.85rem;background:var(--bg-primary);color:var(--text-primary);box-sizing:border-box}.btn-add-field{margin-top:.5rem;padding:.4rem .75rem;background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:4px;cursor:pointer;color:var(--text-secondary)}.btn-add-field:hover{border-color:var(--primary);color:var(--primary)}.btn-remove-field{padding:.25rem .5rem;background:transparent;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;color:#dc2626}.form-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.5rem}.btn-primary{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-secondary{padding:.5rem 1rem;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer}@media (max-width: 768px){.field-row{grid-template-columns:1fr 1fr}.field-row input[type=text]:first-child{grid-column:1 / -1}.field-row-extended{grid-template-columns:1fr 1fr}.field-row-extended input:first-of-type,.field-row-extended input:nth-of-type(2),.field-row-extended select:first-of-type,.field-row-extended .checkbox-label,.field-row-extended input.full-width{grid-column:1 / -1}}.color-picker{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.color-option{width:2rem;height:2rem;border:2px solid transparent;border-radius:50%;cursor:pointer;transition:transform .2s}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:var(--text-primary, #333);box-shadow:0 0 0 2px var(--bg-primary, white)}.color-preview{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.color-preview input[type=color]{width:2rem;height:2rem;padding:0;border:2px solid var(--border-color);border-radius:4px;cursor:pointer}.color-preview span{font-family:monospace;font-size:.85rem;color:var(--text-secondary)}.relationship-types-settings{padding:1rem 0}.entity-type-description{font-size:.85rem;color:var(--text-secondary);margin:.5rem 0}.admin-settings{padding:1rem 0}.admin-section{margin-bottom:2rem}.admin-section h3{margin-bottom:1rem;font-size:1.1rem;color:var(--text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1rem}.stat-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:1rem;text-align:center}.stat-value{display:block;font-size:1.75rem;font-weight:700;color:var(--primary)}.stat-label{display:block;font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}.admin-users-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-users-table th,.admin-users-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border-color)}.admin-users-table th{background:var(--bg-primary);font-weight:600;color:var(--text-secondary)}.admin-users-table tr:hover{background:var(--bg-primary)}.role-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.role-owner{background:var(--warning-light, #fef3c7);color:var(--warning, #92400e)}.role-viewer{background:var(--bg-secondary, #e5e7eb);color:var(--text-secondary, #374151)}.admin-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:var(--success-light, #d1fae5);color:var(--success, #065f46)}.no-admin-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;color:var(--text-secondary)}.user-actions{display:flex;gap:.5rem}.btn-toggle-admin{padding:.25rem .5rem;font-size:.75rem;border-radius:4px;border:1px solid var(--primary);background:transparent;color:var(--primary);cursor:pointer}.btn-toggle-admin:hover{background:var(--primary);color:#fff}.settings-description{color:var(--text-secondary);margin-bottom:2rem;font-size:.9rem}.permissions-grid{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem}.perm-row{display:grid;grid-template-columns:120px repeat(6,1fr);align-items:center;gap:.25rem}.perm-header{font-weight:600;font-size:.85rem;color:var(--text-secondary, #666);padding-bottom:.5rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.perm-action-header{text-align:center;font-size:.75rem;text-transform:uppercase}.perm-resource{font-size:.9rem;text-transform:capitalize;color:var(--text-primary, #444)}.perm-toggle{background:none;border:1px solid var(--border-color, #ddd);border-radius:4px;cursor:pointer;padding:.25rem;font-size:.85rem;text-align:center;width:100%;transition:background .15s}.perm-toggle:hover{background:var(--hover-bg, #f0f0f0)}.perm-toggle.active{border-color:var(--success, #4caf50);background:var(--success-light, #e8f5e9)}.badge-system{background:var(--primary-light, #e3f2fd);color:var(--primary, #1565c0);padding:.15rem .5rem;border-radius:4px;font-size:.8rem;margin-left:.5rem}.badge-members{background:var(--primary-light, #f3e5f5);color:var(--primary, #7b1fa2);padding:.15rem .5rem;border-radius:4px;font-size:.8rem;margin-left:.5rem}.tag-manager{padding:1rem 0}.tag-form{margin-bottom:2rem}.form-row{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap}.color-picker{display:flex;gap:.4rem}.color-swatch{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.color-swatch.active{border-color:#333;transform:scale(1.15)}.tag-list{display:flex;flex-direction:column;gap:.5rem}.tag-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-card, #f8f9fa);border:1px solid var(--border-color, #e0e0e0);border-radius:8px}.tag-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}.tag-name{flex:1;font-weight:500}.tag-actions{display:flex;gap:.4rem}.tag-manager .tag-list{flex-direction:row;flex-wrap:wrap;gap:.5rem;padding:0;border:none;cursor:default;min-height:0;background:none}.tag-manager .tag-list:hover{border-color:transparent}.tag-manager .tag-name{flex:0 1 auto}.tag-manager .tag-card{padding:.4rem .6rem;border-radius:6px}.tag-manager .tag-actions .btn-sm,.tag-manager .tag-actions .btn-danger{padding:.3rem .5rem;font-size:.9rem;line-height:1.1}.tag-picker{position:relative;min-width:200px;flex:1}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;padding:.5rem;border:1px solid var(--border-color, #d0d0d0);border-radius:6px;cursor:text;min-height:38px;align-items:center;background:var(--bg-card, #fff)}.tag-list:hover{border-color:var(--text-tertiary, #888)}.tag-placeholder{color:var(--text-muted, #999);font-size:.9rem}.tag-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:12px;color:#fff;font-size:.85rem;font-weight:500}.tag-remove{background:none;border:none;color:#fffc;cursor:pointer;padding:0;font-size:1rem;line-height:1}.tag-remove:hover{color:#fff}.tag-dropdown{position:absolute;top:100%;left:0;right:0;z-index:100;background:var(--bg-card, #fff);border:1px solid var(--border-color, #d0d0d0);border-radius:6px;box-shadow:0 4px 12px #0000001a;margin-top:2px}.tag-search{width:100%;padding:.6rem;border:none;border-bottom:1px solid var(--border-color, #e0e0e0);outline:none;font-size:.9rem;box-sizing:border-box;background:var(--bg-card, #fff);color:var(--text-primary, #333)}.tag-options{max-height:200px;overflow-y:auto}.tag-option{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;font-size:.9rem;transition:background .15s}.tag-option:hover{background:var(--bg-hover, #f0f0f0)}.tag-option-create{color:#6366f1;font-style:italic;border-top:1px solid var(--border-color, #e0e0e0)}.sync-settings,.import-result{padding:1rem 0}.import-result{background:var(--success-light, #e8f5e9);border:1px solid var(--border-color, #c8e6c9);border-radius:8px;padding:1rem;margin-bottom:1rem;cursor:pointer}.import-error-details{margin-top:.75rem;background:var(--warning-light, #fff3e0);border:1px solid var(--warning, #ffe0b2);border-radius:6px;padding:.75rem;cursor:auto}.import-error-details summary{font-weight:600;color:var(--warning, #e65100);cursor:pointer}.import-error-details ul{margin:.5rem 0 0;padding-left:1.25rem}.import-error-details li{margin-bottom:.4rem;font-size:.9rem;line-height:1.4}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.sync-create-form{background:var(--card-bg, #f8f9fa);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.form-hint{display:block;color:var(--text-tertiary, #888);font-size:.85rem;margin-top:.3rem}.sync-new-world-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.sync-new-world-row select{flex:1;min-width:180px}.sync-checkbox-label{display:flex;align-items:center;gap:.4rem;cursor:pointer;white-space:nowrap;font-weight:500}.sync-new-world-input{margin-top:.5rem;width:100%}.connection-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:2rem}.connection-card{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--card-bg, #f8f9fa);border:1px solid var(--border-color, #e0e0e0);border-radius:8px}.connection-card.error{border-color:var(--danger, #ef5350);background:var(--danger-light, #ffebee)}.connection-info{display:flex;align-items:center;gap:.75rem}.connection-icon{font-size:1.5rem}.connection-meta{display:block;font-size:.8rem;color:var(--text-tertiary, #888)}.connection-error{font-size:.8rem;color:var(--danger, #ef5350);margin-top:.3rem}.connection-actions{display:flex;gap:.5rem}.import-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center}.import-modal{background:var(--card-bg, #fff);border-radius:12px;padding:2rem;width:500px;max-width:90vw;max-height:80vh;overflow-y:auto}.import-preview{background:var(--primary-light, #e3f2fd);border:1px solid var(--border-color, #bbdefb);border-radius:8px;padding:1rem;margin-bottom:1rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.sync-logs{margin-top:2rem}.log-table{width:100%;border-collapse:collapse}.log-table th,.log-table td{padding:.6rem .8rem;text-align:left;border-bottom:1px solid var(--border-color, #e0e0e0)}.log-table th{font-weight:600;background:var(--bg-secondary, #f5f5f5)}.log-row-running td{background:var(--warning-light, #fff3e0)}.log-row-completed td{background:var(--success-light, #e8f5e9)}.log-row-partial td{background:var(--warning-light, #fff8e1)}.log-row-error td{background:var(--danger-light, #ffebee)}.badge-running{background:var(--warning-light, #fff3e0);color:var(--warning, #e65100);padding:.2rem .5rem;border-radius:4px}.badge-completed{background:var(--success-light, #e8f5e9);color:var(--success, #2e7d32);padding:.2rem .5rem;border-radius:4px}.badge-partial{background:var(--warning-light, #fff8e1);color:var(--warning, #f57f17);padding:.2rem .5rem;border-radius:4px}.badge-error{background:var(--danger-light, #ffebee);color:var(--danger, #c62828);padding:.2rem .5rem;border-radius:4px}.objects-modal .modal-content{max-width:620px}.objects-list{list-style:none;margin:.75rem 0;padding:0;max-height:50vh;overflow-y:auto}.objects-list li+li{margin-top:.35rem}.objects-list-item{display:flex;align-items:center;gap:.6rem;padding:.45rem .6rem;border-radius:6px;text-decoration:none;color:var(--text-primary, #213547)}.objects-list-item:hover{background:var(--hover-bg, #f0f0f0)}.objects-list-item .ui-svg-icon,.objects-list-item .entity-image-icon{width:1.2rem;height:1.2rem;flex-shrink:0}.objects-list-item>span:nth-child(2){flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.objects-type-badge{font-size:.7rem;text-transform:uppercase;letter-spacing:.02em;background:var(--bg-secondary, #f5f5f5);border:1px solid var(--border-color, #e0e0e0);color:var(--text-secondary, #666);padding:.15rem .45rem;border-radius:999px;flex-shrink:0}.entity-tags-row{margin:.5rem 0 .75rem}.shortcuts-settings{padding:1rem 0}.shortcuts-settings h2{margin-bottom:.5rem}.shortcuts-table-wrapper{overflow-x:auto}.shortcuts-table{width:100%;border-collapse:collapse;font-size:.9rem}.shortcuts-table th,.shortcuts-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color)}.shortcuts-table th{font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.shortcuts-table tr:last-child td{border-bottom:none}.shortcut-keys-cell{display:flex;gap:.5rem;flex-wrap:wrap}.shortcut-kbd{display:inline-block;padding:.2rem .5rem;font-size:.8rem;font-family:monospace;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);box-shadow:0 1px 0 var(--border-color);white-space:nowrap}.shortcut-context{color:var(--text-secondary);font-size:.85rem}.appearance-settings{padding:1rem 0}.appearance-settings h2{margin-bottom:.5rem}.ghostview-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.5rem;margin-top:.75rem}.ghostview-settings-grid .form-group{margin-bottom:0}.ghostview-settings-value{margin-left:.5rem;color:var(--text-secondary)}.theme-options{display:flex;gap:1rem;margin-top:.75rem}.theme-option{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem 1.75rem;border:2px solid var(--border-color);border-radius:12px;cursor:pointer;transition:all .2s;background:var(--bg-primary)}.theme-option:hover{border-color:var(--primary);background:var(--bg-secondary)}.theme-option.active{border-color:var(--primary);background:rgba(var(--primary-rgb),.08)}.theme-option input{display:none}.theme-option-icon{font-size:1.75rem}.theme-option-label{font-weight:500;font-size:.9rem;color:var(--text-primary)}.toggle-row{display:flex;align-items:center;gap:1rem;margin-top:.75rem;cursor:pointer}.toggle-row input{display:none}.toggle-track{position:relative;width:44px;height:24px;background:var(--border-color);border-radius:12px;transition:background .2s;flex-shrink:0}.toggle-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle-row input:checked+.toggle-track{background:var(--primary)}.toggle-row input:checked+.toggle-track .toggle-thumb{transform:translate(20px)}.backup-setting{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.backup-toggle{display:flex!important;align-items:center;gap:.5rem;cursor:pointer;min-width:auto!important}.backup-toggle input[type=checkbox]{width:20px;height:20px;cursor:pointer}.backup-setting select,.backup-setting input{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary)}.log-preview{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:.75rem;font-family:monospace;font-size:.8rem;line-height:1.5;color:var(--text-primary);max-height:300px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.skins-settings{padding:1rem 0}.skins-settings h2{margin-bottom:.5rem}.skins-description{color:var(--text-secondary);font-size:.9rem;margin-bottom:1.5rem}.skins-upload-row{margin-bottom:1.5rem}.skins-upload-row .btn-primary{display:inline-flex;align-items:center;gap:.4rem}.skins-upload-row .btn-primary:disabled{opacity:.6;cursor:not-allowed}.skins-upload-row .btn-primary .ui-icon,.skins-upload-row .btn-primary svg{width:16px;height:16px}.skins-message{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem}.skins-active-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-hover);border:1px solid var(--border-color);border-radius:8px;margin-bottom:1.5rem}.skins-active-label{color:var(--text-secondary);font-size:.9rem}.skins-active-banner .btn-secondary{margin-left:auto;display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.8rem}.skins-empty{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.skins-empty svg{width:48px;height:48px;margin-bottom:1rem;opacity:.4}.skins-empty p{margin:.5rem 0}.skins-list{display:flex;flex-direction:column;gap:.75rem}.skin-card{padding:1rem;background:var(--bg-primary, #f8f9fa);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;transition:border-color .2s}.skin-card:hover{border-color:var(--text-tertiary, #999)}.skin-card.skin-active{border-color:var(--primary);background:rgba(var(--primary-rgb, 59, 130, 246),.04)}.skin-card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.skin-card-title{display:flex;align-items:baseline;gap:.5rem}.skin-card-version{font-size:.8rem;color:var(--text-tertiary, #999)}.skin-card-author{font-size:.85rem;color:var(--text-secondary)}.skin-card-desc{font-size:.9rem;color:var(--text-secondary);margin:.25rem 0 .75rem}.skin-card-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.skin-badge{display:inline-block;padding:.15rem .5rem;background:var(--bg-hover, #f0f0f0);border-radius:4px;font-size:.75rem;color:var(--text-secondary)}.skin-card-actions{display:flex;gap:.5rem;align-items:center}.skin-card-actions .btn-primary,.skin-card-actions .btn-secondary,.skin-card-actions .btn-danger{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.8rem}.skin-card-actions .btn-danger{padding:.3rem .5rem}.skin-card-actions .btn-primary .ui-icon,.skin-card-actions .btn-primary svg,.skin-card-actions .btn-secondary .ui-icon,.skin-card-actions .btn-secondary svg,.skin-card-actions .btn-danger .ui-icon,.skin-card-actions .btn-danger svg{width:14px;height:14px}.skin-guide{margin-top:1.5rem;border:1px solid var(--border-color, #e0e0e0);border-radius:8px;background:var(--bg-primary, #fff)}.skin-guide summary{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;cursor:pointer;font-weight:500;color:var(--text-primary);list-style:none}.skin-guide summary::-webkit-details-marker{display:none}.skin-guide summary:before{content:"▶";font-size:.7rem;transition:transform .2s}.skin-guide[open] summary:before{transform:rotate(90deg)}.skin-guide-content{padding:0 1rem 1rem;font-size:.9rem;line-height:1.6}.skin-guide-content h3{margin:1rem 0 .5rem;font-size:.95rem;color:var(--text-primary)}.skin-guide-content pre{background:var(--bg-secondary, #f5f5f5);border:1px solid var(--border-color, #e0e0e0);border-radius:6px;padding:.75rem 1rem;font-size:.8rem;overflow-x:auto;margin:.5rem 0;white-space:pre}.skin-guide-content code{background:var(--bg-secondary, #f0f0f0);padding:.1rem .3rem;border-radius:3px;font-size:.85em}.skin-guide-content ul,.skin-guide-content ol{padding-left:1.5rem;margin:.5rem 0}.skin-guide-content li{margin-bottom:.25rem}.skin-guide-content p{margin:.5rem 0;color:var(--text-secondary)}.skin-guide-vars{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.3rem;margin:.5rem 0}.skin-guide-vars div{font-size:.85rem;color:var(--text-secondary)}.skin-guide-vars code{font-weight:500;color:var(--primary)}.btn-danger{padding:.5rem 1rem;background:#dc2626;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-danger:hover{background:#b91c1c}.btn-small{padding:.25rem .5rem;font-size:.8rem}.schema-manager{max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.schemas-type-sections{display:flex;flex-direction:column;gap:1.25rem;margin-top:1rem}.schema-type-section{border:1px solid var(--border-color, #ddd);border-radius:8px;padding:1rem;background:var(--card-bg, #fff)}.schema-type-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.schema-type-header h3{margin:0;flex:1}.schema-type-icon{font-size:1.4rem}.schema-new-btn{margin-top:.75rem}.schema-manager-body{padding:1rem}.schema-list{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem}.schema-card{border:1px solid var(--border-color, #ddd);border-radius:6px;padding:.75rem;background:var(--card-bg, #fff)}.schema-card-header{display:flex;align-items:center;gap:.5rem}.schema-icon{font-size:1.3rem}.schema-name{font-weight:600;flex:1}.schema-badge{font-size:.7rem;padding:.15rem .4rem;border-radius:3px;background:var(--primary-light, #e3f2fd);color:var(--primary, #1976d2)}.schema-count{font-size:.7rem;padding:.15rem .4rem;border-radius:10px;background:#0000000f;color:var(--text-secondary, #666);flex-shrink:0}.schema-collapse-toggle{background:none;border:none;cursor:pointer;color:var(--text-secondary, #666);padding:.25rem;border-radius:4px;flex-shrink:0;line-height:0;display:inline-flex;align-items:center;justify-content:center}.schema-collapse-toggle:hover{background:var(--hover-bg, #f0f0f0);color:var(--text-primary, #333)}.schema-collapse-toggle .ui-svg-icon{transition:transform .2s ease}.schema-collapse-toggle.is-expanded .ui-svg-icon{transform:rotate(180deg)}.schema-desc{color:var(--text-secondary, #666);font-size:.85rem;margin:.25rem 0 0}.schema-card-actions{display:flex;gap:.5rem;margin-top:.5rem}.schema-card-main{display:flex;align-items:center;gap:.5rem;min-width:0}.schema-card-main .schema-icon{flex-shrink:0}.schema-card-main .schema-name{flex:0 1 auto;min-width:0}.schema-card-main .schema-desc{flex:1 1 40%;min-width:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schema-card-main .schema-card-actions{flex-shrink:0;margin-left:auto;margin-top:0}.schema-form{margin-top:1rem}.schema-selector{display:flex;gap:.5rem;align-items:flex-end}.schema-selector select{flex:1}.field-editor{max-width:700px;width:90%;max-height:85vh;overflow-y:auto}.field-editor-embedded{margin-top:1rem;border-top:1px solid var(--border-color, #ddd);padding-top:1rem}.field-editor-embedded h4{margin:0 0 .75rem}.field-editor-body{padding:1rem}.field-form{border:1px solid var(--border-color, #ddd);border-radius:6px;padding:1rem;margin-bottom:1rem;background:var(--input-bg, #fafafa)}.field-form-row{display:flex;gap:.75rem;flex-wrap:wrap}.field-form-row .form-group{flex:1;min-width:150px}.field-form-checkboxes{display:flex;gap:1.5rem;margin:.75rem 0;flex-wrap:wrap}.field-list h4{margin:0 0 .5rem}.field-row-display{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-bottom:1px solid var(--border-color, #eee)}.field-row-display:hover{background:var(--hover-bg, #f5f5f5)}.field-icon{font-size:1.1rem;width:1.5rem;text-align:center}.field-label{flex:1;font-weight:500}.field-type-badge{font-size:.75rem;padding:.1rem .35rem;border-radius:3px;background:var(--badge-bg, #e8e8e8);color:var(--text-secondary, #666)}.field-required{color:var(--danger, #e74c3c);font-weight:700;margin-left:.25rem}.field-list-badge{font-size:.7rem;padding:.1rem .3rem;border-radius:3px;background:var(--success-light, #e8f5e9);color:var(--success, #2e7d32)}.field-actions{display:flex;gap:.25rem}.dynamic-fields{margin-top:.5rem}.dynamic-fields .schema-field{margin-bottom:.75rem}.dynamic-fields .schema-field-boolean{display:flex;align-items:center;gap:.5rem}.dynamic-fields .schema-field-boolean input[type=checkbox]{width:auto}.color-input-wrapper{display:flex;gap:.5rem;align-items:center}.color-input-wrapper input[type=color]{width:40px;height:36px;padding:2px;border:1px solid var(--border-color, #ddd);border-radius:4px;cursor:pointer}.color-input-wrapper input[type=text]{flex:1}.schema-field-input{width:100%}.notifications-bell{position:relative}.bell-button{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.5rem;position:relative;display:flex;align-items:center;justify-content:center}.bell-button:hover{opacity:.8}.badge{position:absolute;top:0;right:0;background:#ef4444;color:#fff;font-size:.65rem;font-weight:700;padding:.1rem .3rem;border-radius:10px;min-width:16px;text-align:center}.notifications-dropdown{position:absolute;top:100%;right:0;width:320px;max-width:calc(100vw - 2rem);max-height:400px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;overflow:hidden}@media (max-width: 480px){.notifications-dropdown{position:fixed;top:60px;left:.5rem;right:.5rem;width:auto;max-height:calc(100vh - 100px);z-index:9999}.notifications-list{max-height:calc(100vh - 160px)}.notification-item{background:var(--bg-secondary)}.notification-item.unread{background:#6366f11a}}.dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.dropdown-header h3{margin:0;font-size:.9rem;font-weight:600}.mark-all-read{background:none;border:none;color:var(--primary);font-size:.75rem;cursor:pointer}.mark-all-read:hover{text-decoration:underline}.notifications-list{max-height:340px;overflow-y:auto}.notifications-list .loading,.notifications-list .empty{padding:2rem;text-align:center;color:var(--text-secondary);font-size:.9rem}.notification-item{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color);cursor:pointer;transition:background .2s;position:relative}.notification-item:hover{background:var(--bg-primary)}.notification-item.unread{background:#6366f10d}.notification-item.unread:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--primary)}.notification-icon{font-size:1.2rem;flex-shrink:0}.notification-content{flex:1;min-width:0}.notification-title{font-size:.85rem;font-weight:500;color:var(--text-primary)}.notification-message{font-size:.8rem;color:var(--text-secondary);margin-top:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-time{font-size:.7rem;color:var(--text-secondary);margin-top:.3rem}.delete-btn{background:none;border:none;color:var(--text-secondary);font-size:1.2rem;cursor:pointer;padding:0;line-height:1;opacity:0;transition:opacity .2s}.notification-item:hover .delete-btn{opacity:1}.delete-btn:hover{color:#ef4444}.notification-link{display:flex;align-items:flex-start;gap:.5rem;flex:1;text-decoration:none;color:inherit}.dice-panel{display:flex;flex-direction:column;gap:1rem}.dice-quick-section h3,.dice-custom-section h3,.dice-history-section h3{margin:0 0 .5rem;font-size:.9rem;color:var(--text-muted, #666);text-transform:uppercase;letter-spacing:.5px}.dice-quick-grid{display:flex;flex-wrap:wrap;gap:.4rem}.dice-quick-btn{padding:.5rem .75rem;border:1px solid var(--border, #ddd);border-radius:6px;background:var(--input-bg, #f9f9f9);color:var(--text, #333);cursor:pointer;font-size:.85rem;font-weight:600;transition:background .15s,border-color .15s}.dice-quick-btn:hover{background:var(--accent, #3498db);color:#fff;border-color:var(--accent, #3498db)}.dice-custom-row{display:flex;gap:.4rem}.dice-custom-input{flex:1;padding:.45rem .6rem;border:1px solid var(--border, #ddd);border-radius:4px;font-size:.9rem;background:var(--input-bg, #fff);color:var(--text, #333);font-family:monospace}.dice-custom-btn{padding:.45rem 1rem;background:var(--accent, #3498db);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;white-space:nowrap}.dice-custom-btn:disabled{opacity:.5;cursor:default}.dice-history-list{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto}.dice-history-item{padding:.5rem;background:var(--input-bg, #f9f9f9);border-radius:6px;border:1px solid var(--border, #eee)}.dice-history-rolls{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.25rem}.dice-history-meta{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-muted, #999)}.dice-history-formula{font-family:monospace}.dice-history-total{font-weight:700;color:var(--text, #333)}.dice-history-empty{font-size:.85rem;color:var(--text-muted, #999);text-align:center;padding:1rem 0}.dice-result-display{padding:.75rem;background:var(--input-bg, #f9f9f9);border-radius:8px;border:1px solid var(--border, #eee);text-align:center}.dice-result-rolls{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:.5rem}.dice-result-formula{font-size:.85rem;color:var(--text-muted, #999);margin-bottom:.25rem}.dice-result-total{font-size:1.3rem;font-weight:700;color:var(--text, #333)}.dice-face{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:44px;border-radius:8px;background:var(--dice-bg, #3498db);color:var(--dice-text, #fff);font-weight:700;font-size:.85rem;line-height:1;position:relative;transition:transform .2s}.dice-face-label{font-size:1rem}.dice-face-sides{font-size:.55rem;opacity:.7;margin-top:1px}.dice-face.rolling{animation:dice-roll .4s ease-out}@keyframes dice-roll{0%{transform:scale(.6) rotate(-180deg);opacity:.2;filter:blur(2px)}40%{transform:scale(1.15) rotate(20deg);opacity:.8;filter:blur(0)}70%{transform:scale(.95) rotate(-10deg)}to{transform:scale(1) rotate(0);opacity:1}}.dice-history-header{display:flex;justify-content:space-between;align-items:center}.dice-clear-btn{background:none;border:none;font-size:.75rem;color:var(--text-muted, #999);cursor:pointer;padding:.2rem .4rem}.dice-clear-btn:hover{color:#e74c3c}.dice-settings-grid{display:flex;flex-direction:column;gap:.4rem}.dice-settings-row{display:flex;align-items:center;gap:.5rem;padding:.3rem 0}.dice-settings-row .dice-face{flex-shrink:0}.dice-settings-row label{font-size:.85rem;color:var(--text, #333);min-width:2.5rem}.dice-settings-row input[type=color]{width:36px;height:28px;padding:1px;border:1px solid var(--border, #ddd);border-radius:4px;cursor:pointer;background:none}.tool-sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:899;background:#0000004d}.tool-sidebar{position:fixed;top:0;right:0;bottom:0;width:320px;z-index:900;background:var(--bg-primary, #fff);border-left:1px solid var(--border-color, #ddd);box-shadow:-4px 0 12px #00000026;display:flex;flex-direction:column;overflow:hidden}.tool-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #e0e0e0);background:var(--bg-secondary, #f5f5f5);flex-shrink:0}.tool-sidebar-header h2{margin:0;font-size:1rem;color:var(--text-primary, #213547)}.tool-sidebar-close{background:none;border:none;cursor:pointer;font-size:1rem;padding:.25rem;color:var(--text-muted, #999)}.tool-sidebar-close:hover{color:var(--text-primary, #213547)}.tool-sidebar-body{flex:1;overflow-y:auto;display:flex;flex-direction:column}.tool-section-header{display:flex;align-items:center;gap:.4rem;padding:.6rem 1rem;cursor:pointer;border-bottom:1px solid var(--border-color, #e0e0e0);background:var(--bg-secondary, #f5f5f5);-webkit-user-select:none;user-select:none;transition:background .15s}.tool-section-header:hover{background:var(--bg-hover, #e8e8e8)}.tool-section-icon{font-size:1rem;flex-shrink:0}.tool-section-title{flex:1;font-size:.9rem;font-weight:600;color:var(--text-primary, #213547)}.tool-section-pin{background:none;border:none;cursor:pointer;font-size:.85rem;padding:.15rem;opacity:.4;transition:opacity .15s;color:var(--text-muted, #999);line-height:1}.tool-section-pin:hover{opacity:.8}.tool-section-pin.pinned{opacity:1;color:var(--accent, #3498db)}.tool-section-arrow{font-size:.7rem;color:var(--text-muted, #999);transition:transform .2s}.tool-section-arrow.expanded{transform:rotate(180deg)}.tool-section-content{border-bottom:1px solid var(--border-color, #e0e0e0);padding:.75rem 1rem;background:var(--bg-primary, #fff)}.currency-panel{display:flex;flex-direction:column;gap:.5rem}.currency-panel-converter{display:flex;flex-direction:column;gap:.35rem}.currency-panel-converter select,.currency-panel-converter input{padding:.35rem .5rem;border:1px solid var(--border-color, #e0e0e0);border-radius:4px;font-size:.85rem;background:var(--bg-primary, #fff);color:var(--text-primary, #213547)}.currency-panel-converter button{padding:.35rem 1rem;background:var(--accent, #3498db);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem}.currency-panel-converter button:disabled{opacity:.5}.currency-panel-result{font-size:.85rem;padding:.5rem;background:var(--bg-secondary, #f5f5f5);border-radius:4px;color:var(--text-primary, #213547)}.currency-panel-path{font-size:.75rem;color:var(--text-muted, #999);margin-top:.25rem}.currency-panel-link,.quick-random-link{display:block;text-align:center;font-size:.8rem;color:var(--accent, #3498db);text-decoration:none;padding:.35rem;border:1px solid var(--border-color, #e0e0e0);border-radius:4px;margin-top:.25rem}.currency-panel-link:hover,.quick-random-link:hover{background:var(--bg-hover, #e8e8e8)}.quick-random-panel{display:flex;flex-direction:column;gap:.5rem}.quick-random-panel select{padding:.35rem .5rem;border:1px solid var(--border-color, #e0e0e0);border-radius:4px;font-size:.85rem;background:var(--bg-primary, #fff);color:var(--text-primary, #213547)}.quick-random-roll-btn{padding:.35rem 1rem;background:var(--accent, #3498db);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem}.quick-random-roll-btn:disabled{opacity:.5}.quick-random-result{display:flex;flex-direction:column;gap:.35rem;padding:.5rem;background:var(--bg-secondary, #f5f5f5);border-radius:4px}.quick-random-text{font-size:.9rem;color:var(--text-primary, #213547)}.quick-random-copy-btn{background:none;border:1px solid var(--border-color, #e0e0e0);border-radius:4px;cursor:pointer;font-size:.8rem;padding:.25rem .5rem;color:var(--text-primary, #213547);align-self:flex-start}.quick-random-copy-btn:hover{background:var(--bg-hover, #e8e8e8)}.embed-container{position:relative;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--bg-primary)}.embed-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.embed-title{font-weight:500;font-size:.9rem;color:var(--text-primary)}.embed-external-link{color:var(--text-secondary);text-decoration:none;font-size:1rem;opacity:.5;transition:opacity .2s;padding:.25rem}.embed-external-link:hover{opacity:1;color:var(--primary)}.embed-external-link-mini{position:absolute;bottom:8px;right:8px;color:var(--text-secondary);text-decoration:none;font-size:1rem;opacity:.5;transition:opacity .2s;padding:.25rem;background:#ffffffe6;border-radius:4px}.embed-external-link-mini:hover{opacity:1;color:var(--primary)}.embed-content{height:calc(100% - 40px);width:100%}.embed-loading,.embed-error{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-style:italic}.embed-error{color:var(--error, #dc2626)}.embed-container .leaflet-container{height:100%;width:100%;background:#f0f0f0}.embed-container .leaflet-popup-content-wrapper{font-size:.85rem}.embed-container .leaflet-popup-content{margin:.5rem}.timeline-embed .embed-content{overflow:auto;padding:1rem}.calendar-embed .embed-content{overflow:auto}.article-embed .embed-content{padding:1rem;overflow:auto}.article-embed .embed-content img{max-width:100%;height:auto}.article-embed .embed-content a{color:var(--primary)}.article-embed .embed-content code{background:var(--bg-secondary);padding:.2rem .4rem;border-radius:4px;font-family:monospace}.article-embed .embed-content pre{background:var(--bg-secondary);padding:1rem;border-radius:8px;overflow-x:auto}.embed-timeline-entries{list-style:none;padding:0;margin:0}.embed-timeline-entry{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.4rem .6rem;margin-bottom:.2rem;border-left:3px solid #4a90d9;border-radius:3px;background:#ffffff05;font-size:.85rem}.embed-timeline-entry:hover{background:#ffffff0d}.embed-entry-icon{font-size:1rem;flex-shrink:0}.embed-entry-date{font-family:monospace;font-size:.78rem;color:var(--text-muted, #888);min-width:6rem;flex-shrink:0}.embed-entry-title{font-weight:500;flex:1}.embed-entry-desc{width:100%;font-size:.8rem;color:var(--text-secondary, #aaa);margin:.15rem 0 0}.embed-empty{text-align:center;color:var(--text-muted, #888);padding:1rem;font-style:italic}[data-type=spoiler]{background:#1a1a2e;border-radius:3px;padding:0 2px;cursor:pointer;transition:background .3s}[data-type=spoiler]:not(.revealed){color:transparent;filter:blur(4px);-webkit-user-select:none;user-select:none}[data-type=spoiler].revealed{background:#ffd70022;color:inherit;filter:none}.ghostview-panel{position:fixed;z-index:2000;display:flex;flex-direction:column;border-radius:12px;box-shadow:0 8px 32px #00000040;overflow:hidden;isolation:isolate;min-width:300px;min-height:200px;cursor:default}.ghostview-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-primary, #fff);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:0;pointer-events:none}.ghostview-content-wrapper{position:relative;z-index:1;display:flex;flex-direction:column;flex:1;overflow:hidden;padding:1rem 1.25rem}.ghostview-header{display:flex;justify-content:space-between;align-items:center;padding:0;margin-bottom:.75rem;cursor:grab}.ghostview-header:active{cursor:grabbing}.ghostview-header h3{margin:0;font-size:1.1rem;color:var(--text-primary, #000)}.ghostview-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-secondary, #666);padding:.25rem;line-height:1}.ghostview-close:hover{color:var(--text-primary, #000)}.ghostview-header-actions{display:flex;align-items:center;gap:.25rem}.ghostview-pin{background:none;border:none;font-size:1rem;cursor:pointer;padding:.2rem;line-height:1;opacity:.4;transition:opacity .15s;color:var(--text-secondary, #666)}.ghostview-pin:hover{opacity:.8}.ghostview-pin.pinned{opacity:1;color:var(--accent, #3498db)}.ghostview-search{display:flex;gap:.5rem;margin-bottom:.5rem}.ghostview-search-input{flex:1;padding:.5rem .75rem;border:1px solid var(--border-color, #ddd);border-radius:6px;font-size:.9rem;background:var(--bg-secondary, #f5f5f5);color:var(--text-primary, #000)}.ghostview-clear-btn{padding:.5rem .75rem;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--bg-secondary, #f5f5f5);cursor:pointer;font-size:.85rem;white-space:nowrap;color:var(--text-primary, #000)}.ghostview-searching,.ghostview-loading{padding:.5rem 0;color:var(--text-secondary, #666);font-size:.85rem}.ghostview-results{max-height:200px;overflow-y:auto;margin-bottom:.5rem}.ghostview-result-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.4rem .5rem;border:none;background:none;border-radius:6px;cursor:pointer;text-align:left;font-size:.9rem;color:var(--text-primary, #000)}.ghostview-result-item:hover{background:var(--bg-secondary, #f5f5f5)}.ghostview-result-icon{width:24px;height:24px;border-radius:50%;object-fit:cover}.ghostview-result-type{font-size:.85rem;opacity:.7}.ghostview-result-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ghostview-opacity{margin-bottom:.5rem}.ghostview-opacity label{font-size:.85rem;color:var(--text-secondary, #666);display:block;margin-bottom:.25rem}.ghostview-opacity-slider{width:100%;accent-color:var(--primary, #4a90d9)}.ghostview-content{flex:1;overflow-y:auto;font-size:.9rem;line-height:1.5}.ghostview-entity-icon{width:48px;height:48px;object-fit:cover;border-radius:8px;margin-bottom:.5rem}.ghostview-entity-icon-emoji{font-size:2rem;display:block;margin-bottom:.5rem}.ghostview-entity-header{margin-bottom:.75rem}.ghostview-entity-type{font-size:.75rem;color:var(--text-secondary, #666);text-transform:uppercase;letter-spacing:.5px}.ghostview-entity-name{margin:.15rem 0 0;font-size:1.1rem}.ghostview-content-html{font-size:.9rem;line-height:1.6;color:var(--text-primary, #000);margin-bottom:.75rem}.ghostview-content-html img{max-width:100%;height:auto;border-radius:6px}.ghostview-section-label{font-weight:600;font-size:.8rem;color:var(--text-secondary, #666);display:block;margin:.5rem 0 .2rem}.ghostview-map-section{margin-top:.3rem}.ghostview-map-name{font-size:.9rem;color:var(--link-color, #4a90d9)}.ghostview-map-list{list-style:none;padding:0;margin:.2rem 0}.ghostview-map-item{font-size:.85rem;color:var(--link-color, #4a90d9);padding:.15rem 0}.ghostview-attachments-section{margin-top:.5rem}.ghostview-attachments-list{list-style:none;padding:0;margin:.2rem 0;display:flex;flex-wrap:wrap;gap:.4rem}.ghostview-attachment-item{display:flex;align-items:center;gap:.3rem;font-size:.8rem;padding:.25rem .5rem;background:var(--bg-secondary, #f5f5f5);border-radius:4px}.ghostview-attachment-thumb{width:24px;height:24px;object-fit:cover;border-radius:3px}.ghostview-map-container{margin-bottom:.75rem;border-radius:8px;overflow:hidden;border:1px solid var(--border-color, #ddd);aspect-ratio:1/1;cursor:default}.ghostview-map-container .embed-content{height:100%}.ghostview-media-preview{margin-bottom:.75rem}.ghostview-media-image{width:100%;max-height:240px;object-fit:contain;border-radius:8px;background:var(--bg-secondary, #f5f5f5)}.ghostview-field-value-image{display:block}.ghostview-field-image{max-width:100%;max-height:120px;object-fit:contain;border-radius:4px;margin:.25rem 0;background:var(--bg-secondary, #f5f5f5)}.ghostview-field-link{color:var(--link-color, #4a90d9);font-size:.85rem;word-break:break-all}.ghostview-field-array{font-size:.85rem}.ghostview-field-array-summary{cursor:pointer;color:var(--text-secondary, #666);font-size:.85rem}.ghostview-field-array-list{margin:.25rem 0 0;padding-left:1rem}.ghostview-field-array-list li{font-size:.8rem;color:var(--text-primary, #000);margin:.1rem 0}.ghostview-content-description{white-space:pre-wrap;color:var(--text-primary, #000)}.ghostview-content-fields{margin-top:.75rem;display:flex;flex-direction:column;gap:.3rem}.ghostview-field{display:flex;gap:.5rem;font-size:.85rem}.ghostview-field-key{font-weight:600;color:var(--text-secondary, #666);min-width:100px}.ghostview-field-value{color:var(--text-primary, #000)}.ghostview-resize-handle{position:absolute;bottom:0;right:0;width:24px;height:24px;cursor:nwse-resize;z-index:2;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--text-secondary, #999);-webkit-user-select:none;user-select:none}.ghostview-resize-handle:hover{color:var(--text-primary, #000)}.project-list{padding:1rem}.project-list h2{margin-bottom:1rem;color:var(--primary-color, #333)}.project-loading,.project-error,.project-empty{padding:1rem;text-align:center}.project-error{color:var(--danger, #dc2626)}.project-empty{color:var(--text-secondary, #666);font-style:italic}.project-items{list-style:none;padding:0;margin:0}.project-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;margin-bottom:.5rem;background:var(--card-bg, #f5f5f5);border-radius:4px;transition:background .2s}.project-item:hover{background:var(--card-bg-hover, #e8e8e8)}.project-link{flex:1;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:.25rem}.project-name{font-weight:600;font-size:1.1rem}.project-description{font-size:.9rem;color:var(--text-secondary, #666)}.project-delete{padding:.4rem .8rem;background:var(--danger, #dc2626);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .2s}.project-delete:hover{background:var(--danger-hover, #b91c1c)}.project-form-container{padding:1rem;margin-bottom:1rem;background:var(--bg-card, #fafafa);border-radius:4px;border:1px solid var(--border-color, #ddd)}.project-form-container h3{margin-top:0;margin-bottom:1rem}.project-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group label{font-weight:500;font-size:.9rem}.form-group input,.form-group textarea{padding:.5rem;border:1px solid var(--border-color, #ccc);border-radius:4px;font-size:1rem}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color, #1976d2)}.form-error{color:#d32f2f;font-size:.9rem}.form-submit{padding:.6rem 1.2rem;background:var(--primary-color, #1976d2);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background .2s}.form-submit:hover{background:var(--primary-hover, #1565c0)}.form-submit:disabled{background:#ccc;cursor:not-allowed}.project-detail{padding:1rem}.project-view h2{margin-top:0}.project-view-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.project-visibility-badge{padding:.2rem .6rem;background:var(--bg-secondary, #f0f0f0);border-radius:4px;font-size:.85rem;white-space:nowrap}.project-view .project-description{font-size:1.1rem;line-height:1.6;margin:1rem 0}.project-meta{font-size:.85rem;color:var(--text-secondary, #666);margin-bottom:1rem}.btn-edit{padding:.5rem 1rem;background:var(--secondary-color, #666);color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-edit:hover{background:var(--secondary-hover, #444)}.project-edit{max-width:500px}.project-edit h3{margin-top:0}.btn-save{padding:.5rem 1rem;background:#2e7d32;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-save:hover{background:#1b5e20}.btn-save:disabled{background:#ccc}.btn-cancel{padding:.5rem 1rem;background:#666;color:#fff;border:none;border-radius:4px;cursor:pointer}.btn-cancel:hover{background:#444}.project-notfound{padding:2rem;text-align:center;color:var(--text-secondary, #666)}.project-description-article{margin:1rem 0;padding:1rem;background:var(--card-bg, #f8f9fa);border:1px solid var(--border-color, #e0e0e0);border-radius:8px}.project-description-article h4{margin:0 0 .5rem}.project-description-article .article-content{font-size:1rem;line-height:1.6}.project-description-article .article-content p{margin:.5rem 0}.project-entities-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px}.project-entities-left,.project-entities-right{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.project-new-entity,.project-export{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.project-new-entity:hover:not(:disabled),.project-export:hover:not(:disabled){background:var(--primary-hover)}.project-export:disabled{opacity:.5;cursor:not-allowed}.project-type-picker,.project-tag-add-menu{position:absolute;top:100%;left:0;z-index:50;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 12px #00000026;max-height:280px;overflow-y:auto;min-width:180px}.project-entities-left{position:relative}.project-type-option,.project-tag-add-option{padding:8px 12px;cursor:pointer;font-size:.9rem;color:var(--text-primary);display:flex;align-items:center;gap:6px}.project-type-option:hover,.project-tag-add-option:hover{background:var(--bg-hover)}.project-type-icon{display:inline-flex;align-items:center;flex-shrink:0}.project-type-icon .ui-svg-icon,.project-type-icon .entity-image-icon{width:1rem;height:1rem}.tag-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.project-tag-create-option{padding:8px 12px;cursor:pointer;font-size:.9rem;color:var(--primary);border-top:1px solid var(--border-color)}.project-tag-create-option:hover{background:var(--bg-hover)}.project-tag-create-row{padding:6px 8px;border-top:1px solid var(--border-color)}.project-tag-create-input{width:100%;padding:.4rem .55rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-card);color:var(--text-primary);font-size:.85rem;box-sizing:border-box}.project-tag-create-input:focus{outline:none;border-color:var(--primary)}.project-search{padding:.45rem .7rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-card);color:var(--text-primary);min-width:160px}.project-sort{padding:.45rem .5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-card);color:var(--text-primary)}.project-mode-toggle{display:inline-flex;gap:4px;border:1px solid var(--border-color);border-radius:4px;padding:2px;background:var(--bg-card)}.project-mode-option{display:inline-flex;align-items:center;gap:4px;padding:.3rem .6rem;border-radius:3px;cursor:pointer;font-size:.85rem;color:var(--text-secondary)}.project-mode-option:has(input:checked){background:var(--bg-hover);color:var(--text-primary)}.project-mode-option input{margin:0}.project-type-counts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.project-count-chip{padding:4px 12px;border-radius:14px;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;font-size:.85rem}.project-count-chip:hover{background:var(--bg-hover)}.project-count-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.project-entity-group{margin-bottom:16px}.project-entity-group-header{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:.95rem;color:var(--text-secondary)}.project-entity-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.project-entity-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px}.project-entity-card-main{display:flex;flex-direction:column;gap:8px}.project-entity-card-link{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--text-primary);min-width:0}.project-entity-card-link:hover{color:var(--link-color)}.project-entity-card-icon{font-size:1.1rem;flex-shrink:0}.project-entity-card-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.project-entity-card-tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.project-entity-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;color:#fff;font-size:.75rem}.project-entity-tag-remove{background:transparent;border:none;color:#fff;cursor:pointer;padding:0;font-size:.9rem;line-height:1;opacity:.8}.project-entity-tag-remove:hover{opacity:1}.project-entity-tag-add-wrap{position:relative}.project-entity-tag-add{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border-radius:50%;border:1px dashed var(--border-color);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.85rem;line-height:1}.project-entity-tag-add:hover{border-color:var(--primary);color:var(--primary)}.project-tags-section .tag-picker{position:relative;min-width:200px;max-width:720px}.project-tags-section .tag-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:6px;align-items:center;padding:.5rem .6rem;min-height:38px;border:1px solid var(--border-color);border-radius:6px;cursor:text;background:var(--bg-card)}.project-tags-section .tag-list:hover{border-color:var(--text-tertiary)}.project-tags-section .tag-placeholder{color:var(--text-muted);font-size:.9rem}.project-tags-section .tag-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;color:#fff;font-size:.85rem;font-weight:500}.project-tags-section .tag-remove{background:none;border:none;color:#ffffffd9;cursor:pointer;padding:0;font-size:1rem;line-height:1}.project-tags-section .tag-remove:hover{color:#fff}.project-tags-section .tag-saving{font-size:.8em;color:var(--text-tertiary);margin-left:8px}.project-tags-section .tag-dropdown{position:absolute;top:100%;left:0;right:0;z-index:100;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 12px #00000026;margin-top:2px}.project-tags-section .tag-search{width:100%;padding:.6rem;border:none;border-bottom:1px solid var(--border-color);outline:none;font-size:.9rem;box-sizing:border-box;background:var(--bg-card);color:var(--text-primary)}.project-tags-section .tag-options{max-height:200px;overflow-y:auto}.project-tags-section .tag-option{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:.9rem;color:var(--text-primary);transition:background .15s}.project-tags-section .tag-option:hover{background:var(--bg-hover)}.project-tags-section .tag-option-create{color:var(--primary);font-style:italic;border-top:1px solid var(--border-color)}.project-tags-section .tag-option-empty{padding:8px;color:var(--text-tertiary);font-size:.85em}.project-batch-hint{margin:6px 0 12px;font-size:.82em;color:var(--text-tertiary)}.project-entities-list{max-height:60vh;overflow-y:auto;padding-right:4px}.world-list{margin-top:1rem}.world-list h2{margin-bottom:1rem}.world-items{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.world-item{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1rem;transition:box-shadow .2s}.world-item:hover{box-shadow:0 2px 8px #0000001a}.world-link{text-decoration:none;color:inherit;display:block}.world-name{font-weight:700;font-size:1.1rem;display:block;margin-bottom:.5rem}.world-description{color:var(--text-secondary);font-size:.9rem}.world-delete{background:var(--danger);color:#fff;border:none;padding:.3rem .6rem;border-radius:4px;cursor:pointer;margin-top:.5rem}.world-delete:hover{background:var(--danger-hover)}.world-loading,.world-error,.world-empty{padding:2rem;text-align:center;color:var(--text-secondary)}.world-error{color:var(--danger)}.world-form-container{background:var(--bg-secondary);padding:1.5rem;border-radius:8px;margin-bottom:1.5rem}.world-form-container h3{margin-top:0;margin-bottom:1rem}.world-form .form-group{margin-bottom:1rem}.world-form label{display:block;margin-bottom:.5rem;font-weight:500}.world-form input,.world-form textarea{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;background:var(--input-bg);color:var(--text-primary)}.world-form input::placeholder,.world-form textarea::placeholder{color:var(--text-muted)}.world-form input:focus,.world-form textarea:focus{outline:none;border-color:var(--accent)}.form-submit{background:var(--accent);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem}.form-submit:hover{background:var(--accent-hover)}.form-submit:disabled{background:var(--bg-hover);color:var(--text-muted);cursor:not-allowed}.world-detail{padding:1.5rem}.world-view h2{margin-top:0}.world-view .world-description{margin:1rem 0;font-size:1.1rem}.world-meta{color:var(--text-secondary);font-size:.9rem}.btn-edit{background:var(--accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.btn-edit:hover{background:var(--accent-hover)}.world-edit h3{margin-top:0}.edit-actions{display:flex;gap:.5rem;margin-top:1rem}.btn-save{background:var(--success);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.btn-save:hover{background:var(--success-hover)}.btn-cancel:hover{background:var(--bg-hover)}.world-view-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.world-view-header h2{margin:0}.world-visibility-badge{display:inline-block;padding:.2rem .6rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-size:.85rem;margin-bottom:.5rem}.world-stats{margin-top:2rem}.world-stats h2,.world-recent h2,.world-actions h2{color:var(--text-primary);margin-bottom:1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.stat-card{display:flex;flex-direction:column;align-items:center;padding:1.25rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.stat-icon{font-size:1.75rem;margin-bottom:.5rem}.stat-count{font-size:2rem;font-weight:700;color:var(--accent)}.stat-label{font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}.world-recent{margin-top:2rem}.world-recent .recent-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.world-recent .recent-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.world-recent .recent-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.world-recent .recent-card-icon{font-size:1.5rem;flex-shrink:0}.world-recent .recent-card-content{display:flex;flex-direction:column;min-width:0}.world-recent .recent-card-title{font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.world-recent .recent-card-type{font-size:.8rem;color:var(--text-tertiary)}.world-recent .recent-card-time{font-size:.75rem;color:var(--text-muted)}.world-actions{margin-top:2rem}.actions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.action-card{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;text-decoration:none;color:inherit;transition:background .2s,border-color .2s}.action-card:hover{background:var(--bg-hover);border-color:var(--accent)}.action-card .icon{font-size:1.5rem}.action-card .label{font-weight:500;color:var(--text-primary)}.world-description-article,.project-description-article{margin:1rem 0;padding:1rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px}.world-description-article h4,.project-description-article h4{margin:0 0 .5rem}.world-description-article .article-content,.project-description-article .article-content{font-size:1rem;line-height:1.6}.world-description-article .article-content p,.project-description-article .article-content p{margin:.5rem 0}.article-link{color:var(--link-color);text-decoration:none}.article-link:hover{text-decoration:underline}.recent-card-wrapper{position:relative}.recent-card-wrapper .recent-card{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.recent-card-wrapper .recent-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.favorite-btn{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--text-tertiary);padding:.25rem;line-height:1;transition:color .2s,transform .2s;flex-shrink:0}.favorite-btn:hover{transform:scale(1.2);color:var(--warning)}.calendars-page{padding:1rem}.calendar-page{max-width:800px;margin:0 auto}.calendar-form{background:var(--bg-card);padding:1.5rem;border-radius:8px;margin-bottom:1rem;box-shadow:0 2px 8px #0000001a;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.calendar-form h3{margin:0;margin-right:1rem;color:var(--text-primary)}.calendar-form input,.calendar-form select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;background:var(--bg-card);color:var(--text-primary)}.calendar-form input:focus,.calendar-form select:focus{outline:none;border-color:var(--primary)}.calendar-form button{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.calendar-form button:hover{background:var(--primary-hover)}.calendar-detail{padding:1rem;max-width:800px;margin:0 auto}.calendar-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;background:var(--primary-hover);padding:1rem;border-radius:8px}.calendar-header h2{margin:0;color:#fff}.calendar-type{padding:.25rem .75rem;background:var(--primary);color:#fff;border-radius:12px;font-size:.85rem}.calendar-config{background:var(--bg-card);padding:1.5rem;border-radius:8px;margin-bottom:1rem;box-shadow:0 2px 8px #0000001a}.calendar-config h3{margin-top:0;margin-bottom:1rem;color:var(--text-primary)}.calendar-config p{margin:.5rem 0;color:var(--text-primary)}.config-section{margin:1.5rem 0}.config-section h4{margin:0 0 .5rem;color:var(--text-primary);font-size:1rem}.config-hint{font-size:.85rem;color:var(--text-secondary);margin:0 0 .75rem;font-style:italic}.month-sum{margin-left:1rem;font-size:.9rem;font-weight:500;color:var(--success-text)}.month-sum.over{color:var(--danger-text)}.event-link{color:var(--primary-text);text-decoration:none;font-size:.85rem}.event-link:hover{text-decoration:underline}.event-links-form{display:flex;flex-direction:column;gap:.5rem;width:100%}.event-link-row{display:flex;gap:.5rem;align-items:center}.event-link-row select{flex:1;padding:.4rem;border:1px solid var(--border-color);border-radius:4px}.remove-link-btn{padding:.25rem .5rem;background:var(--danger);color:#fff;border:none;border-radius:4px;cursor:pointer}.add-link-btn{padding:.4rem .75rem;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem}.event-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.event-form input,.event-form select{padding:.5rem;border:1px solid var(--border-color);border-radius:4px}.config-list{list-style:none;padding:0;margin:0;background:var(--bg-secondary);padding:.5rem;border-radius:4px;margin-bottom:.5rem}.config-item{display:flex;gap:.5rem;align-items:center;margin-bottom:.5rem;flex-wrap:wrap}.config-item span{color:var(--text-primary);padding:.25rem .5rem;background:var(--bg-hover);border-radius:4px}.config-item label{font-size:.9rem;color:var(--text-secondary)}.config-item input{padding:.4rem .6rem;border:1px solid var(--text-muted)!important;border-radius:4px;font-size:.9rem;background:var(--bg-hover)!important;color:var(--text-primary)!important}.config-item input:focus{background:var(--bg-card)!important;border-color:var(--primary)!important;outline:none}.config-item input::placeholder{color:var(--text-tertiary)!important}.config-item input[type=number]{width:60px}.config-item button{padding:.25rem .5rem;background:var(--danger);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem}.config-item button:hover{background:var(--danger-hover)}.config-item button.save-btn{background:var(--success)}.config-item button.save-btn:hover{background:var(--success-hover)}.config-item button.cancel-btn{background:#757575}.config-item button.cancel-btn:hover{background:#616161}.config-item button:first-of-type{background:var(--primary);margin-left:.5rem}.config-item button:first-of-type:hover{background:var(--primary-hover)}.add-btn{padding:.4rem .75rem;background:var(--success);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;margin-top:.5rem}.add-btn:hover{background:var(--success-hover)}.save-config-btn{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;margin-top:1rem}.save-config-btn:hover{background:var(--primary-hover)}.save-config-btn:disabled{background:var(--bg-hover);cursor:not-allowed}.save-message{margin-left:1rem;color:var(--success-text);font-weight:500}.calendar-events{background:var(--bg-card);padding:1.5rem;border-radius:8px;margin-bottom:1rem;box-shadow:0 2px 8px #0000001a}.calendar-events h3{margin-top:0;margin-bottom:1rem;color:var(--text-primary)}.event-form{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.event-form input,.event-form select{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:4px;font-size:.9rem;background:var(--bg-card);color:var(--text-primary)}.event-form input[type=text]{flex:1;min-width:150px}.event-form button{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer}.event-form button:hover{background:var(--primary-hover)}.events-list{list-style:none;padding:0}.event-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--bg-secondary);border-radius:4px;margin-bottom:.5rem}.event-info{display:flex;gap:1rem;align-items:center;color:var(--text-primary)}.event-info strong{color:var(--text-primary)}.event-date{color:var(--primary-text);font-weight:500}.event-type{padding:.125rem .5rem;background:var(--bg-elevated);border-radius:4px;font-size:.75rem;color:var(--text-primary)}.delete-btn{padding:.25rem .5rem;background:var(--danger);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem}.delete-btn:hover{background:var(--danger-hover)}.back-link{display:inline-block;margin-top:1rem;color:var(--primary-text);text-decoration:none}.back-link:hover{text-decoration:underline}.empty{color:var(--text-secondary);font-style:italic}.error{color:var(--danger-text);background:var(--danger-light);padding:.5rem;border-radius:4px}.calendar-items{list-style:none;padding:0}.calendar-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;margin-bottom:.5rem;background:var(--bg-card);border-radius:8px;box-shadow:0 2px 4px #0000001a}.calendar-item a{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit;flex:1}.calendar-icon{font-size:1.5rem}.calendar-name{font-weight:600;color:var(--text-primary)}.calendar-item .calendar-type{font-size:.85rem;padding:.125rem .5rem;background:var(--bg-elevated);border-radius:4px;color:var(--text-primary)}.calendar-item .delete-btn{padding:.5rem 1rem;background:var(--danger);color:#fff;border:none;border-radius:4px;cursor:pointer}.calendar-tabs{display:flex;gap:.5rem;margin-bottom:1rem;border-bottom:2px solid var(--border-color);padding-bottom:.5rem}.tab-btn{padding:.5rem 1rem;background:transparent;border:none;border-radius:4px 4px 0 0;cursor:pointer;font-size:1rem;color:var(--text-secondary);transition:all .2s}.tab-btn:hover{background:var(--bg-secondary)}.tab-btn.active{background:var(--primary);color:#fff}.calendar-monthly{margin-top:1rem}.month-navigation{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem}.month-navigation button{padding:.5rem 1rem;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer}.month-navigation h3{margin:0;min-width:200px;text-align:center}.weekstart-select{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem}.weekstart-select select{padding:.4rem;border:1px solid var(--border-color);border-radius:4px}.month-grid{display:grid;grid-template-columns:repeat(var(--weekday-count, 7),1fr);gap:2px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:4px;overflow:hidden}.weekday-header{background:var(--primary-hover);color:#fff;padding:.5rem;text-align:center;font-weight:600}.month-day{background:var(--bg-card);min-height:80px;padding:.25rem}.month-day.empty-day{background:var(--bg-secondary)}.day-number{font-weight:600;color:var(--text-primary);font-size:.9rem}.day-events{margin-top:.25rem;display:flex;flex-direction:column;gap:2px}.day-event{font-size:.7rem;padding:2px 4px;border-radius:2px;background:var(--primary-light);color:var(--primary-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-event.birthday{background:var(--danger-light);color:var(--danger-text)}.day-event.holiday{background:var(--success-light);color:var(--success-text)}.day-event.historical{background:var(--warning-light);color:var(--warning-text)}.more-events{font-size:.65rem;color:var(--text-secondary);text-align:center}@media (max-width: 600px){.month-grid{grid-template-columns:repeat(var(--weekday-count, 7),1fr);font-size:.85rem}.month-day{min-height:60px}}.entity-events-section{margin-top:2rem;padding:1.5rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.entity-events-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.entity-events-header h3{margin:0}.btn-add-event{padding:.4rem .8rem;background:var(--accent, #4a90d9);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem}.btn-add-event:hover{opacity:.9}.entity-events-empty{color:var(--text-muted, #888);text-align:center;padding:1rem}.entity-events-list{list-style:none;padding:0;margin:0}.entity-event-item{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .75rem;margin-bottom:.25rem;background:var(--bg-item, rgba(255,255,255,.03));border-radius:4px;border-left:3px solid #4a90d9}.entity-event-item:hover{background:var(--bg-item-hover, rgba(255,255,255,.06))}.entity-event-icon{font-size:1.2rem;width:1.5rem;text-align:center;flex-shrink:0}.entity-event-date{font-size:.8rem;color:var(--text-muted, #888);font-family:monospace;min-width:7rem;flex-shrink:0}.entity-event-title{font-weight:500;flex:1}.entity-event-desc{width:100%;font-size:.85rem;color:var(--text-secondary, #aaa);margin:.25rem 0 0}.entity-event-actions{display:flex;gap:.25rem;flex-shrink:0}.btn-icon{background:none;border:none;cursor:pointer;padding:2px 4px;font-size:.85rem;opacity:.6}.btn-icon:hover{opacity:1}.entity-event-form{padding:1rem;margin-bottom:1rem;background:var(--bg-primary);border-radius:6px;border:1px solid var(--border-color)}.entity-event-form .form-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.entity-event-form .btn-cancel,.entity-event-form .btn-submit{padding:.4rem 1rem;border-radius:4px;border:none;cursor:pointer}.entity-event-form .btn-cancel{background:var(--bg-muted, #333);color:var(--text, #ddd)}.entity-event-form .btn-submit{background:var(--accent, #4a90d9);color:#fff}.entity-event-form .btn-submit:disabled{opacity:.6;cursor:not-allowed}.entity-events-timeline{margin-bottom:1rem}.entity-events-timeline-link{display:inline-block;margin-top:.5rem;font-size:.85rem;color:var(--accent, #4a90d9);text-decoration:none}.entity-events-timeline-link:hover{text-decoration:underline}.entity-calendar-events{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.entity-calendar-events h4{font-size:.9rem;margin:0 0 .5rem;color:var(--text-muted, #888)}.entity-event-item.calendar-event{border-left-color:#f39c12;opacity:.8}.icon-picker{display:flex;flex-wrap:wrap;gap:4px}.icon-option{font-size:1.1rem;padding:4px 6px;border:1px solid transparent;border-radius:4px;cursor:pointer;background:none}.icon-option.selected{border-color:var(--accent, #4a90d9);background:#4a90d926}.color-picker{display:flex;gap:6px;flex-wrap:wrap}.color-option{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer}.color-option.selected{border-color:#fff}.rel-node{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:2px solid;border-radius:10px;background:var(--bg-primary);min-width:140px;max-width:200px;position:relative;cursor:pointer;transition:box-shadow .2s}.rel-node:hover{box-shadow:0 4px 12px #00000026}.rel-node--center{box-shadow:0 0 0 2px gold,0 4px 12px #ffd7004d}.rel-node-center-star{position:absolute;top:-8px;right:-6px;font-size:.9rem;color:gold;text-shadow:0 1px 2px rgba(0,0,0,.3)}.rel-node-icon{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:6px;flex-shrink:0;font-size:1.2rem}.rel-node-image{width:1.5rem;height:1.5rem;border-radius:4px;object-fit:cover}.rel-node-content{min-width:0}.rel-node-name{font-size:.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rel-node-type{font-size:.65rem;border:1px solid;border-radius:3px;padding:0 .3rem;display:inline-block;margin-top:2px}.rel-node-campaigns{position:absolute;bottom:-8px;left:50%;transform:translate(-50%);display:flex;gap:2px}.rel-node-campaign-badge{font-size:.6rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center}.rel-handle{width:8px;height:8px;background:var(--border-color);border:1px solid var(--bg-primary)}.rel-node-link{position:absolute;top:-6px;right:-4px;font-size:.65rem;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color);border-radius:50%;background:var(--bg-primary);cursor:pointer;opacity:0;transition:opacity .15s;z-index:2;padding:0;line-height:1}.rel-node:hover .rel-node-link{opacity:1}.rel-node-link:hover{border-color:var(--link-color, #4a9eff);background:var(--bg-hover)}.rel-edge-path{stroke-linecap:round}.rel-edge-interaction{pointer-events:stroke;cursor:pointer}.rel-edge-label{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;height:100%;font-size:11px;font-weight:500;pointer-events:none;white-space:nowrap}.rel-edge-label .rel-edge-icon,.rel-edge-label .rel-edge-name{flex-shrink:1}.rel-edge-label .rel-edge-icon,.rel-edge-label .entity-image-icon.rel-edge-icon{width:12px;height:12px}.rel-edge-label .rel-edge-icon.ui-svg-icon{position:static}.rel-type-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#00000080;display:flex;align-items:center;justify-content:center}.rel-type-modal{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:24px;width:380px;max-height:80vh;display:flex;flex-direction:column;gap:16px}.rel-type-modal h3{margin:0;font-size:1.1rem}.rel-type-modal-subtitle{margin:0;font-size:.85rem;color:var(--text-secondary)}.rel-type-modal-loading{text-align:center;color:var(--text-secondary);padding:24px}.rel-type-modal-list{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.rel-type-modal-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border:2px solid transparent;border-radius:8px;background:var(--bg-secondary);cursor:pointer;text-align:left;transition:background .15s,border-color .15s}.rel-type-modal-item:hover,.rel-type-modal-item.selected{background:var(--bg-hover)}.rel-type-modal-icon{font-size:1.2rem;width:24px;text-align:center}.rel-type-modal-name{flex:1;font-size:.9rem}.rel-type-modal-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.rel-type-modal-actions{display:flex;gap:8px;justify-content:flex-end}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.graph-canvas{position:relative;flex:1;min-height:0;overflow:hidden}.graph-canvas .react-flow{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important}.rel-graph-page{display:flex;flex:1;min-height:0;position:relative}.rel-graph-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000}.rel-graph-sidebar{width:280px;border-right:1px solid var(--border-color);background:var(--bg-secondary);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0}.rel-graph-sidebar-header{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border-bottom:1px solid var(--border-color)}.rel-graph-title{margin:0;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rel-graph-filters{padding:.75rem;display:flex;flex-direction:column;gap:1rem}.rel-filter-group{display:flex;flex-direction:column;gap:.4rem}.rel-filter-group-header{display:flex;align-items:center;justify-content:space-between}.rel-filter-group label{font-size:.8rem;font-weight:600;color:var(--text-secondary)}.rel-depth-slider{width:100%;accent-color:var(--link-color, #4a9eff)}.rel-depth-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-secondary)}.rel-depth-labels .active{color:var(--link-color, #4a9eff);font-weight:700}.rel-filter-chip{border:1px solid var(--border-color);border-radius:4px;padding:.2rem .5rem;font-size:.75rem;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;text-align:left;transition:all .15s}.rel-filter-chip.active{background:var(--link-color, #4a9eff);color:#fff;border-color:var(--link-color, #4a9eff)}.rel-tree-chip{width:100%;text-align:center;font-weight:600;padding:.4rem .5rem;border-style:dashed}.rel-tree-chip.active{border-style:solid;background:#2e7d32;border-color:#2e7d32}.rel-filter-reset{padding:.3rem .6rem;font-size:.75rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;align-self:flex-start;transition:all .15s}.rel-filter-reset:hover{border-color:#ef4444;color:#ef4444}.rel-filter-mode-btn{font-size:.6rem;padding:.1rem .3rem;border:1px solid var(--border-color);border-radius:3px;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;line-height:1}.rel-filter-mode-btn:hover{background:var(--link-color, #4a9eff);color:#fff;border-color:var(--link-color, #4a9eff)}.rel-graph-stats{padding:.75rem;font-size:.75rem;color:var(--text-secondary);border-top:1px solid var(--border-color);margin-top:auto}.rel-graph-hint{padding:.5rem .75rem;font-size:.7rem;color:var(--text-secondary);opacity:.7;font-style:italic}.rel-graph-loading,.rel-graph-error,.rel-graph-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:1rem}.rel-graph-error{color:#ef4444}.rel-graph-empty{color:var(--text-secondary)}.react-flow__minimap{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;border-radius:8px!important}.react-flow__controls{border:1px solid var(--border-color)!important;border-radius:8px!important;box-shadow:none!important}.react-flow__controls button{background:var(--bg-secondary)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}.react-flow__controls button:hover{background:var(--bg-hover, rgba(255,255,255,.05))!important}.relationships-page{padding:1.5rem;max-width:1400px;margin:0 auto}.relationships-page.rel-graph-view{padding:0;max-width:none;margin:0;flex:1;min-height:0;height:auto;display:flex;flex-direction:column;overflow:hidden}.relationships-header h1{margin:0 0 1rem}.relationships-tabs{display:flex;gap:0;border-bottom:2px solid var(--border-color);margin-bottom:1.5rem}.tab-btn{padding:.6rem 1.2rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:.9rem;color:var(--text-secondary);transition:color .2s,border-color .2s}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--link-color, #4a9eff);border-bottom-color:var(--link-color, #4a9eff)}.rel-list-tab{display:flex;flex-direction:column;gap:1rem}.rel-list-filters{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.rel-search{width:250px}.rel-world-filter{width:200px}.rel-type-toggles{display:flex;flex-wrap:wrap;gap:.4rem}.rel-type-toggle{border:1px solid var(--border-color);border-radius:4px;padding:.25rem .6rem;font-size:.8rem;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .2s}.rel-type-toggle.active{background:var(--link-color, #4a9eff);color:#fff;border-color:var(--link-color, #4a9eff)}.rel-entity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.rel-entity-card{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s}.rel-entity-card:hover{border-color:var(--link-color, #4a9eff);box-shadow:0 2px 8px #4a9eff1a}.rel-entity-icon{font-size:1.5rem;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rel-entity-icon .entity-image-icon{width:2rem;height:2rem;border-radius:4px;object-fit:cover}.rel-entity-info{min-width:0}.rel-entity-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rel-entity-type{font-size:.75rem;color:var(--text-secondary)}.rel-empty{grid-column:1 / -1;text-align:center;padding:3rem;color:var(--text-secondary)}.rel-graph-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--bg-primary);display:flex;flex-direction:column}.rel-graph-header{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);z-index:10}.loading{text-align:center;padding:3rem;color:var(--text-secondary)}.compare-page{padding:1.5rem;max-width:1200px;margin:0 auto}.compare-loading,.compare-empty{padding:3rem;text-align:center;color:var(--text-muted, #999)}.compare-back-link{display:inline-block;margin-top:1rem;color:var(--accent, #3498db);text-decoration:none}.compare-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.compare-back{color:var(--accent, #3498db);text-decoration:none;font-size:.9rem;white-space:nowrap}.compare-header h1{margin:0;font-size:1.3rem;color:var(--text, #333)}.compare-table-wrap{overflow-x:auto}.compare-table{width:100%;border-collapse:collapse;font-size:.9rem}.compare-table th,.compare-table td{padding:.6rem .75rem;border:1px solid var(--border, #e0e0e0);text-align:left;vertical-align:top}.compare-table thead th{background:var(--bg-secondary, #f5f5f5);font-weight:600;color:var(--text, #333);min-width:180px}.compare-table thead th a{color:var(--accent, #3498db);text-decoration:none}.compare-table thead th a:hover{text-decoration:underline}.compare-label-col{width:160px;min-width:140px;background:var(--card-bg, #fafafa);position:sticky;left:0;z-index:2}.compare-label{font-weight:600;color:var(--text-muted, #666);background:var(--card-bg, #fafafa);white-space:nowrap;position:sticky;left:0;z-index:1}.compare-value{color:var(--text, #333)}.compare-value.empty{color:var(--text-muted, #bbb);font-style:italic}.compare-value.diff{background:rgba(var(--accent-rgb, 52, 152, 219),.08)}.compare-row-diff{background:rgba(var(--accent-rgb, 52, 152, 219),.03)}.compare-entity-header{display:flex;align-items:center;gap:.4rem}.compare-entity-icon{font-size:1.2rem;line-height:1}.compare-count{font-size:.85rem;color:var(--text-muted, #999);font-weight:400;white-space:nowrap}.currency-page{padding:1rem 2rem;max-width:800px;margin:0 auto}.currency-page h1{margin-bottom:1.5rem}.currency-no-world{color:var(--text-secondary, #666);font-style:italic}.currency-section{margin-bottom:2rem;background:var(--bg-secondary, #f9f9f9);border:1px solid var(--border-color, #eee);border-radius:8px;padding:1rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.section-header h2{margin:0;font-size:1.1rem}.currency-inline-form{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem;padding:.75rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #ddd);border-radius:6px}.currency-inline-form input,.currency-inline-form select{padding:.35rem .5rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.85rem;background:var(--bg-primary, #fff);color:var(--text-primary, #000)}.currency-list{display:flex;flex-direction:column;gap:.35rem}.currency-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #eee);border-radius:4px;font-size:.9rem}.currency-item-symbol{font-size:1.1rem;min-width:1.5rem;text-align:center}.currency-item-name{flex:1;font-weight:500}.currency-item-code{color:var(--text-secondary, #666);font-size:.8rem}.currency-rates-list{display:flex;flex-direction:column;gap:.35rem}.rate-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #eee);border-radius:4px;font-size:.9rem}.rate-arrow{color:var(--text-secondary, #666)}.rate-value{margin-left:auto;font-weight:600;color:var(--primary, #4a90d9);font-size:.85rem}.currency-converter{background:var(--bg-primary, #fff);border:1px solid var(--border-color, #ddd);border-radius:8px;padding:1rem}.conv-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.conv-row select{flex:1;min-width:120px;padding:.5rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.9rem;background:var(--bg-primary, #fff);color:var(--text-primary, #000)}.conv-amount{width:80px;padding:.5rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.9rem;text-align:center;background:var(--bg-primary, #fff);color:var(--text-primary, #000)}.conv-btn{padding:.5rem 1rem;background:var(--primary, #4a90d9);color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;min-width:40px}.conv-btn:hover{opacity:.9}.conv-btn:disabled{opacity:.5;cursor:default}.conv-result{margin-top:.75rem;padding:.75rem;background:var(--bg-success, #e8f5e9);border:1px solid var(--border-success, #c8e6c9);border-radius:6px;font-size:1.05rem;text-align:center;color:var(--conv-result-text, #213547)}.conv-path{margin-top:.35rem;font-size:.8rem;color:var(--text-secondary, #666)}.btn-icon{background:none;border:none;cursor:pointer;color:var(--text-secondary, #999);font-size:.85rem;padding:.15rem .3rem;line-height:1}.btn-icon:hover{color:var(--danger, #e53935)}.write-list{padding:1.5rem 2rem;max-width:900px;margin:0 auto}.write-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.write-list-header h2{margin:0;font-size:1.3rem;color:var(--text-primary, #000)}.write-list-actions{display:flex;gap:.5rem;align-items:center}.write-list-new{font-weight:600}.write-list-import,.write-list-template{font-weight:500}.write-list-empty{text-align:center;padding:3rem 1rem;color:var(--text-muted, #888);font-size:.95rem}.write-list-loading{text-align:center;padding:3rem;color:var(--text-muted, #888)}.write-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.write-list-card{display:block;text-decoration:none;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #ddd);border-radius:8px;padding:.75rem 1rem;transition:box-shadow .2s,border-color .2s}.write-list-card:hover{border-color:var(--primary, #4a90d9);box-shadow:0 2px 8px #00000014}.write-list-card-header{display:flex;justify-content:space-between;align-items:flex-start}.write-list-card-title{margin:0 0 .3rem;font-size:1rem;color:var(--text-primary, #000);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.write-list-card-delete{background:none;border:none;cursor:pointer;color:var(--text-muted, #aaa);font-size:.8rem;padding:.1rem .25rem;flex-shrink:0}.write-list-card-delete:hover{color:var(--error, #dc2626)}.write-list-card-meta{display:flex;gap:.75rem;font-size:.78rem;color:var(--text-muted, #888);margin-bottom:.4rem}.write-list-card-tags{display:flex;flex-wrap:wrap;gap:.3rem}.write-list-tag{font-size:.7rem;padding:.1rem .4rem;background:var(--bg-secondary, #f0f0f0);border-radius:4px;color:var(--text-secondary, #666)}.write-back-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.write-back-link{font-size:.82rem;color:var(--link-color, #4a90d9);text-decoration:none}.write-back-link:hover{text-decoration:underline}.write-delete-btn{background:none;border:none;cursor:pointer;font-size:.85rem;padding:.1rem .25rem;opacity:.4;transition:opacity .2s}.write-delete-btn:hover{opacity:1}.write-delete-confirm{font-size:.8rem;color:var(--error, #dc2626);display:flex;align-items:center;gap:.3rem}.write-delete-confirm button{background:var(--error, #dc2626);color:#fff;border:none;border-radius:4px;padding:.15rem .5rem;cursor:pointer;font-size:.78rem}.write-delete-confirm button:last-child{background:var(--bg-secondary, #f0f0f0);color:var(--text-primary, #000)}.write-container{display:flex;height:100%;position:relative;gap:0}.write-main{flex:1;min-width:0;display:flex;flex-direction:column;padding:1rem 1.5rem;overflow-y:auto}.write-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.write-color-picker-group{position:relative;flex-shrink:0}.write-color-btn{width:22px;height:22px;border-radius:50%;border:2px solid var(--border-color, #ddd);cursor:pointer;padding:0;transition:border-color .15s}.write-color-btn:hover{border-color:var(--text-muted, #888)}.write-color-picker{position:absolute;top:100%;left:0;margin-top:4px;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #ddd);border-radius:8px;padding:.4rem;display:grid;grid-template-columns:repeat(5,1fr);gap:3px;box-shadow:0 4px 12px #0000001f;z-index:20}.write-color-option{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.write-color-option:hover{border-color:var(--text-muted, #888)}.write-color-option.selected{border-color:var(--text-primary, #000);box-shadow:0 0 0 1px var(--bg-primary, #fff)}.write-color-clear{grid-column:1 / -1;background:none;border:1px solid var(--border-color, #ddd);border-radius:4px;padding:.15rem;cursor:pointer;font-size:.7rem;color:var(--text-muted, #888);margin-top:2px}.write-color-clear:hover{background:var(--bg-hover, #e8e8e8);color:var(--text-primary, #000)}.write-title-input{flex:1;font-size:1.4rem;font-weight:600;border:none;background:transparent;color:var(--text-primary, #000);outline:none;padding:.25rem 0}.write-title-input::placeholder{color:var(--text-muted, #aaa);font-weight:400}.write-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.write-btn{background:none;border:1px solid var(--border-color, #ddd);border-radius:6px;padding:.3rem .6rem;cursor:pointer;font-size:.85rem;color:var(--text-primary, #000)}.write-btn:hover{background:var(--bg-secondary, #f0f0f0)}.write-export-group{position:relative;display:inline-block}.write-export-dropdown{position:absolute;top:100%;right:0;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #ddd);border-radius:6px;box-shadow:0 4px 12px #0000001f;z-index:10;min-width:100px}.write-export-dropdown button{display:block;width:100%;text-align:left;padding:.4rem .75rem;border:none;background:none;cursor:pointer;font-size:.85rem;color:var(--text-primary, #000)}.write-export-dropdown button:hover{background:var(--bg-hover, #e8e8e8)}.write-export-dropdown button:first-child{border-radius:6px 6px 0 0}.write-export-dropdown button:last-child{border-radius:0 0 6px 6px}.write-tags-row{margin-bottom:.5rem}.write-tags-input{width:100%;font-size:.85rem;border:none;background:transparent;color:var(--text-muted, #888);outline:none;padding:.15rem 0}.write-tags-input::placeholder{color:var(--text-muted, #aaa)}.write-goal-row{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem;font-size:.82rem;flex-wrap:wrap}.write-goal-label{font-size:.9rem;flex-shrink:0}.write-goal-input{width:70px;padding:.2rem .4rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.8rem;background:var(--bg-primary, #fff);color:var(--text-primary, #000)}.write-goal-bar-bg{width:80px;height:6px;background:var(--bg-hover, #e8e8e8);border-radius:3px;overflow:hidden}.write-goal-bar-fill{height:100%;background:var(--primary, #4a90d9);border-radius:3px;transition:width .3s}.write-goal-text{font-size:.78rem;color:var(--text-muted, #888);white-space:nowrap}.write-goal-remaining{font-size:.78rem;color:var(--primary, #4a90d9);white-space:nowrap}.write-goal-sep{color:var(--border-color, #ddd);margin:0 .2rem}.write-story-goals{margin-bottom:.5rem}.write-goals-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem}.write-goals-title{font-size:.82rem;font-weight:600;color:var(--text-primary, #000)}.write-goals-add-btn{font-size:.9rem;background:none;border:1px solid var(--border-color, #ddd);border-radius:4px;cursor:pointer;padding:0 .4rem;color:var(--text-muted, #888);line-height:1.4}.write-goals-add-btn:hover{background:var(--bg-hover, #f0f0f0);color:var(--text-primary, #000)}.write-goals-add-trigger{font-size:.82rem;background:none;border:1px dashed var(--border-color, #ddd);border-radius:4px;cursor:pointer;padding:.2rem .6rem;color:var(--text-muted, #888);width:100%;text-align:center}.write-goals-add-trigger:hover{background:var(--bg-hover, #f0f0f0);color:var(--text-primary, #000)}.write-goals-add-form{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.4rem;padding:.4rem;background:var(--bg-secondary, #fafafa);border-radius:4px;font-size:.82rem}.write-goals-add-form select,.write-goals-add-form input{font-size:.82rem;padding:.2rem .4rem;border:1px solid var(--border-color, #ddd);border-radius:4px;background:var(--bg-primary, #fff);color:var(--text-primary, #000)}.write-goals-add-actions{display:flex;gap:.3rem}.write-btn-sm{font-size:.78rem;padding:.2rem .5rem}.write-goals-list{display:flex;flex-direction:column;gap:.35rem}.write-goal-card{padding:.35rem .5rem;border:1px solid var(--border-color, #ddd);border-radius:4px;background:var(--bg-primary, #fff)}.write-goal-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.2rem}.write-goal-type{font-size:.78rem;color:var(--text-muted, #888)}.write-goal-enddate{font-size:.75rem;color:var(--text-muted, #888)}.write-goal-delete{background:none;border:none;cursor:pointer;font-size:.78rem;color:var(--text-muted, #888);padding:0;line-height:1}.write-goal-delete:hover{color:var(--error, #dc2626)}.write-goal-card-info{display:flex;align-items:center;justify-content:space-between;margin-top:.15rem}.write-goal-card-progress{font-size:.75rem;color:var(--text-muted, #888)}.write-goal-percentage{font-size:.78rem;font-weight:600;color:var(--primary, #4a90d9)}.write-goal-done{color:var(--success, #22c55e)}.write-deadline-label{font-size:.78rem;color:var(--text-muted, #888);white-space:nowrap}.write-deadline-input{padding:.2rem .4rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.8rem;background:var(--bg-primary, #fff);color:var(--text-primary, #000)}.write-deadline-clear{background:none;border:none;cursor:pointer;color:var(--text-muted, #aaa);font-size:.85rem;padding:0;line-height:1}.write-deadline-clear:hover{color:var(--error, #dc2626)}.write-deadline-countdown{font-size:.82rem;font-weight:600;white-space:nowrap}.write-deadline-calendar-link{font-size:1rem;text-decoration:none;opacity:.7;transition:opacity .15s}.write-deadline-calendar-link:hover{opacity:1}.write-deadline-safe{color:var(--success, #22c55e)}.write-deadline-warning{color:var(--warning, #f59e0b)}.write-deadline-danger{color:var(--error, #dc2626)}.write-deadline-overdue{color:var(--error, #dc2626);animation:write-deadline-pulse 2s infinite}@keyframes write-deadline-pulse{0%,to{opacity:1}50%{opacity:.5}}.write-deadline-required{font-size:.78rem;color:var(--text-muted, #888);white-space:nowrap}.focus-timer{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.82rem;padding:.35rem .6rem;border:1px solid var(--border-color, #ddd);border-radius:6px;background:var(--bg-secondary, #f8f8f8);transition:border-color .3s}.focus-timer.work.running{border-color:var(--primary, #4a90d9)}.focus-timer.break.running{border-color:#22c55e}.focus-timer-label{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #888);min-width:3em}.focus-timer-display{font-size:1.2rem;font-weight:700;font-variant-numeric:tabular-nums;min-width:4em;text-align:center;color:var(--text-primary, #000)}.focus-timer-controls{display:flex;gap:.15rem}.focus-timer-btn{background:none;border:1px solid var(--border-color, #ddd);border-radius:4px;width:24px;height:24px;cursor:pointer;font-size:.75rem;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--text-primary, #000);padding:0}.focus-timer-btn:hover{background:var(--bg-hover, #e8e8e8)}.focus-timer-duration{display:flex;align-items:center;gap:.2rem}.focus-timer-duration--break .focus-timer-min{color:var(--accent)}.focus-timer-adj{background:none;border:1px solid transparent;border-radius:3px;width:18px;height:18px;cursor:pointer;font-size:.75rem;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted, #888);padding:0}.focus-timer-adj:hover{border-color:var(--border-color, #ddd);background:var(--bg-hover, #e8e8e8);color:var(--text-primary, #000)}.focus-timer-min{font-size:.78rem;color:var(--text-muted, #888);min-width:2em;text-align:center}.focus-timer-sessions{font-size:.75rem;color:var(--text-muted, #888);margin-left:auto;white-space:nowrap}.write-toolbar{display:flex;align-items:center;gap:.2rem;padding:.4rem 0;border-bottom:1px solid var(--border-color, #eee);margin-bottom:.75rem;flex-wrap:wrap}.write-toolbar button{background:none;border:1px solid transparent;border-radius:4px;padding:.25rem .5rem;cursor:pointer;font-size:.85rem;color:var(--text-primary, #000);line-height:1}.write-toolbar button:hover{background:var(--bg-secondary, #f0f0f0)}.write-toolbar button.is-active{background:var(--primary, #4a90d9);color:#fff}.write-toolbar-sep{width:1px;height:20px;background:var(--border-color, #ddd);margin:0 .25rem}.write-editor-wrapper{flex:1;min-height:300px}.write-editor-wrapper .tiptap{min-height:300px;font-size:var(--editor-font-size, 1.05rem);line-height:1.7;outline:none;color:var(--text-primary, #000)}.write-editor-wrapper .tiptap p.is-editor-empty:first-child:before{color:var(--text-muted, #aaa);content:attr(data-placeholder);float:left;height:0;pointer-events:none}.write-editor-wrapper .tiptap a{color:var(--link-color, #4a90d9);text-decoration:underline}.write-editor-wrapper .tiptap blockquote{border-left:3px solid var(--border-color, #ddd);padding-left:1rem;margin-left:0;color:var(--text-secondary, #666)}.write-editor-wrapper .tiptap ul,.write-editor-wrapper .tiptap ol{padding-left:1.5rem}.write-editor-wrapper .tiptap pre{background:var(--bg-secondary, #f5f5f5);padding:.75rem;border-radius:6px;overflow-x:auto}.write-save-status{font-size:.9rem;width:1.2rem;text-align:center}.write-wordcounter{display:flex;gap:.5rem;font-size:.78rem;color:var(--text-muted, #888);align-items:center}.write-wordcounter-sep{color:var(--border-color, #ddd)}.write-sidebar{width:260px;flex-shrink:0;border-left:1px solid var(--border-color, #ddd);background:var(--bg-secondary, #f8f8f8);display:flex;flex-direction:column;padding:.75rem;overflow-y:auto;font-size:.85rem}.write-sidebar-title{margin:0 0 .5rem;font-size:.95rem;color:var(--text-primary, #000)}.write-sidebar-filter{width:100%;padding:.4rem .5rem;border:1px solid var(--border-color, #ddd);border-radius:6px;font-size:.8rem;background:var(--bg-primary, #fff);color:var(--text-primary, #000);box-sizing:border-box;margin-bottom:.4rem}.write-sidebar-count{font-size:.75rem;color:var(--text-muted, #888);margin-bottom:.5rem}.write-sidebar-loading{color:var(--text-muted, #888);font-style:italic;padding:.5rem 0}.write-sidebar-types{flex:1;overflow-y:auto}.write-sidebar-type{margin-bottom:.25rem}.write-type-header{display:flex;align-items:center;gap:.3rem;width:100%;padding:.3rem .4rem;border:none;background:none;cursor:pointer;border-radius:4px;font-size:.85rem;text-align:left;color:var(--text-primary, #000)}.write-type-header:hover{background:var(--bg-hover, #e8e8e8)}.write-type-toggle{font-size:.6rem;width:.8rem;flex-shrink:0}.write-type-icon{font-size:.9rem;flex-shrink:0}.write-type-label{flex:1}.write-type-count{color:var(--text-muted, #888);font-size:.75rem}.write-type-items{display:flex;flex-direction:column;gap:.15rem;padding-left:.5rem}.write-mini-card{display:flex;align-items:center;gap:.4rem;padding:.25rem .4rem;border-radius:4px;cursor:pointer}.write-mini-card:hover{background:var(--bg-hover, #e8e8e8)}.write-mini-icon{font-size:.9rem;width:20px;text-align:center;flex-shrink:0}.write-mini-img{width:20px;height:20px;border-radius:3px;object-fit:cover}.write-mini-name{font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary, #000)}.write-mini-pin{background:none;border:none;cursor:pointer;font-size:.7rem;padding:0;flex-shrink:0;opacity:.3;transition:opacity .2s;line-height:1}.write-mini-pin:hover,.write-mini-pin.pinned{opacity:1}.write-sidebar-pinned{margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color, #ddd)}.write-sidebar-pinned-header{font-size:.78rem;color:var(--text-muted, #888);margin-bottom:.3rem}.write-sidebar-context{margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color, #ddd)}.write-sidebar-context-header{font-size:.78rem;color:var(--text-muted, #888);margin-bottom:.3rem}.write-sidebar-context .write-mini-card{border-left:2px solid var(--accent-color, #4a90d9)}.write-sidebar-note-section{margin-top:.75rem;border-top:1px solid var(--border-color, #ddd);padding-top:.5rem}.write-sidebar-note-label{font-size:.78rem;color:var(--text-muted, #888);display:block;margin-bottom:.3rem}.write-sidebar-note{width:100%;box-sizing:border-box;border:1px solid var(--border-color, #ddd);border-radius:6px;padding:.4rem;font-size:.8rem;resize:vertical;background:var(--bg-primary, #fff);color:var(--text-primary, #000);font-family:inherit}.write-container.zen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:var(--bg-primary, #fff);overflow-y:auto}.write-container.zen .write-sidebar-view-toggle,.write-container.zen .write-sidebar,.write-container.zen .story-tree,.write-container.zen .corkboard{display:none!important}.write-container.zen .write-main{max-width:var(--zen-max-width, 720px);margin:5vh auto;padding:0 1.5rem}.write-container.zen .write-toolbar{opacity:.15;transition:opacity .3s}.write-container.zen .write-toolbar:hover{opacity:1}.write-container.zen .write-header-actions .write-export-group,.write-container.zen .write-header-actions .write-btn:not(:last-child),.write-container.zen .write-tags-row,.write-container.zen .focus-timer{opacity:.2;transition:opacity .3s}.write-container.zen .write-header-actions .write-export-group:hover,.write-container.zen .write-header-actions .write-btn:not(:last-child):hover,.write-container.zen .write-tags-row:hover,.write-container.zen .focus-timer:hover{opacity:1}.write-container.zen .tiptap{font-size:1.15rem;line-height:1.8}.write-sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--border-color, #ddd);background:var(--bg-secondary, #f8f8f8)}.write-sidebar-header{display:flex;gap:2px;padding:.35rem .5rem;border-bottom:1px solid var(--border-color, #ddd)}.write-sidebar-view-toggle{background:none;border:1px solid transparent;border-radius:4px;padding:.2rem .45rem;cursor:pointer;font-size:.9rem;line-height:1;opacity:.4;transition:opacity .15s,border-color .15s}.write-sidebar-view-toggle:hover{opacity:.7}.write-sidebar-view-toggle.active{opacity:1;border-color:var(--border-color, #ddd);background:var(--bg-hover, #e8e8e8)}.corkboard{display:flex;flex-direction:column;overflow-y:auto;font-size:.82rem;flex:1}.corkboard-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem}.corkboard-label{font-weight:600;color:var(--text-primary, #000);font-size:.85rem}.corkboard-add{background:none;border:1px solid var(--border-color, #ddd);border-radius:4px;width:22px;height:22px;cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--text-primary, #000)}.corkboard-add:hover{background:var(--bg-hover, #e8e8e8)}.corkboard-loading{padding:1rem .75rem;color:var(--text-muted, #888);font-style:italic}.corkboard-empty{padding:1rem .75rem;color:var(--text-muted, #888)}.corkboard-error{padding:1rem .75rem;color:var(--danger)}.corkboard-grid{display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem;align-content:flex-start}.corkboard-card{width:calc(50% - .25rem);background:var(--bg-primary, #fff);border:1px solid var(--border-color, #ddd);border-radius:6px;padding:.5rem .6rem;cursor:pointer;transition:box-shadow .15s,border-color .15s,opacity .2s;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;gap:.2rem;min-height:60px}.corkboard-card:hover{box-shadow:0 1px 4px #00000014;border-color:var(--primary, #4a90d9)}.corkboard-card.active{border-color:var(--primary, #4a90d9);background:var(--primary-bg, #eef4fb)}.corkboard-card.dragging{opacity:.4}.corkboard-card.chapter{width:100%;background:var(--bg-secondary, #f8f8f8);border-left:3px solid var(--primary, #4a90d9)}.corkboard-card.scene{border-left:3px solid var(--border-color, #ddd)}.corkboard-card-header{display:flex;align-items:center;gap:.3rem;min-width:0}.corkboard-card-icon{font-size:.75rem;flex-shrink:0}.corkboard-card-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--text-primary, #000);font-size:.8rem}.corkboard-card-bar{height:3px;background:var(--border-color, #eee);border-radius:2px;overflow:hidden}.corkboard-card-bar-fill{height:100%;background:var(--primary, #4a90d9);border-radius:2px;transition:width .3s}.corkboard-card-meta{font-size:.65rem;color:var(--text-muted, #888)}.corkboard-card-snippet{font-size:.7rem;color:var(--text-muted, #666);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.story-tree{display:flex;flex-direction:column;overflow-y:auto;font-size:.82rem;flex:1}.story-tree-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;border-bottom:1px solid var(--border-color, #ddd)}.story-tree-label{font-weight:600;color:var(--text-primary, #000);font-size:.85rem}.story-tree-add{background:none;border:1px solid var(--border-color, #ddd);border-radius:4px;width:22px;height:22px;cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--text-primary, #000)}.story-tree-add:hover{background:var(--bg-hover, #e8e8e8)}.story-tree-loading{padding:1rem .75rem;color:var(--text-muted, #888);font-style:italic}.story-tree-empty{padding:1rem .75rem;color:var(--text-muted, #888)}.story-tree-error{padding:1rem .75rem;color:var(--danger)}.story-tree-nodes{flex:1;overflow-y:auto;padding:.25rem 0}.story-tree-branch{position:relative}.story-tree-item{display:flex;align-items:center;gap:.3rem;padding:.3rem .5rem;cursor:pointer;border-radius:0;transition:background .15s;-webkit-user-select:none;user-select:none;position:relative}.story-tree-item:hover{background:var(--bg-hover, #e8e8e8)}.story-tree-item.active{background:var(--primary, #4a90d9);color:#fff}.story-tree-item.active .story-tree-title{color:#fff}.story-tree-item.active .story-tree-wc{color:#ffffffb3}.story-tree-icon{font-size:.85rem;flex-shrink:0;width:16px;text-align:center}.story-tree-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary, #000)}.story-tree-wc{font-size:.7rem;color:var(--text-muted, #888);flex-shrink:0}.story-tree-bar{position:absolute;bottom:0;left:0;height:2px;background:var(--primary, #4a90d9);opacity:.25;border-radius:0 1px 0 0;pointer-events:none}.story-tree-item.active .story-tree-bar{background:#fff6}.story-tree-add-scene{position:absolute;right:.25rem;top:.15rem;background:none;border:none;cursor:pointer;color:var(--text-muted, #aaa);font-size:.85rem;line-height:1;padding:.1rem .3rem;opacity:0;transition:opacity .15s}.story-tree-branch:hover>.story-tree-add-scene{opacity:1}.story-tree-add-scene:hover{color:var(--primary, #4a90d9)}.write-onboarding{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background:var(--bg-primary, #fff);border:1px solid var(--primary, #4a90d9);border-radius:8px;padding:.75rem 1rem;box-shadow:0 4px 16px #00000026;z-index:1000;font-size:.85rem;max-width:400px;color:var(--text-primary, #000)}.write-onboarding-close{background:none;border:none;cursor:pointer;font-size:.8rem;color:var(--primary, #4a90d9);padding:.25rem 0;text-decoration:underline}.write-stats{margin:0 1rem .5rem}.write-stats-toggle{background:var(--bg-secondary, #f0f0f0);border:1px solid var(--border-color, #ddd);border-radius:6px;padding:.3rem .6rem;cursor:pointer;font-size:.8rem;width:100%;text-align:left;color:var(--text-primary, #000)}.write-stats-toggle:hover{background:var(--bg-hover, #e8e8e8)}.write-stats-panel{background:var(--bg-secondary, #f8f8f8);border:1px solid var(--border-color, #ddd);border-top:none;border-radius:0 0 6px 6px;padding:.6rem;font-size:.8rem}.write-stats-loading{text-align:center;color:var(--text-muted, #888);padding:.5rem}.write-stats-summary{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-bottom:.6rem}.write-stats-stat{text-align:center;padding:.3rem;background:var(--bg-primary, #fff);border-radius:4px}.write-stats-stat-value{display:block;font-size:1.1rem;font-weight:600;color:var(--text-primary, #000)}.write-stats-stat-label{display:block;font-size:.7rem;color:var(--text-muted, #888);margin-top:.1rem}.write-stats-section{margin-top:.5rem}.write-stats-section-title{font-size:.75rem;font-weight:600;color:var(--text-muted, #888);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.5px}.write-stats-bars{display:flex;align-items:flex-end;gap:2px;height:70px;padding:.3rem 0}.write-stats-bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.write-stats-bar{width:100%;min-height:4px;background:var(--primary, #4a90d9);border-radius:2px 2px 0 0;opacity:.6;transition:opacity .2s}.write-stats-bar-wrap:hover .write-stats-bar{opacity:1}.write-stats-bar.today{opacity:1;background:var(--accent-color, #e67e22)}.write-stats-bar-label{font-size:.55rem;color:var(--text-muted, #888);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.write-stats-bar-label.timer-label{font-size:.45rem}.write-stats-bar.hour{background:var(--accent-color, #e67e22)}.write-stats-empty{font-size:.75rem;color:var(--text-muted, #888);padding:.5rem 0;text-align:center}.write-stats-chapters{max-height:200px;overflow-y:auto}.write-stats-chapter{display:flex;align-items:center;gap:.3rem;padding:.15rem 0;font-size:.75rem}.write-stats-chapter-dot{width:8px;height:8px;border-radius:50%;background:var(--primary, #4a90d9);flex-shrink:0}.write-stats-chapter-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary, #000)}.write-stats-chapter-words{color:var(--text-muted, #888);font-size:.7rem;flex-shrink:0}.write-stats-projection{background:var(--bg-primary, #fff);border-radius:6px;padding:.4rem .5rem;font-size:.78rem}.write-stats-projection-inputs{display:flex;gap:.75rem;margin-bottom:.3rem}.write-stats-projection-inputs label{display:flex;align-items:center;gap:.3rem;color:var(--text-primary, #000);font-size:.78rem}.write-stats-projection-input{width:70px;padding:.15rem .3rem;border:1px solid var(--border-color, #ddd);border-radius:4px;font-size:.78rem;background:var(--bg-primary, #fff);color:var(--text-primary, #000)}.write-stats-projection-result{color:var(--text-secondary, #666);font-size:.78rem}.write-stats-projection-result strong{color:var(--text-primary, #000)}.write-stats-chapter-projection{font-size:.65rem;color:var(--text-muted, #888)}.write-stats-today-remaining{font-size:.82rem;color:var(--text-primary, #000);padding:.3rem 0}.write-stats-deadline{display:flex;gap:.5rem;align-items:center;font-size:.85rem;padding:.3rem 0}.write-stats-deadline-days{font-weight:600}.write-stats-deadline-required{font-size:.78rem;color:var(--text-muted, #888)}.write-container.zen .write-stats{display:none}.write-versions-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center}.write-versions-modal{background:var(--bg-primary, #fff);border-radius:12px;padding:1.5rem;max-width:480px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.write-versions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.write-versions-header h3{margin:0;font-size:1rem;color:var(--text-primary, #000)}.write-versions-close{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--text-muted, #888);padding:.2rem;line-height:1}.write-versions-loading,.write-versions-empty{padding:1rem;text-align:center;color:var(--text-muted, #888);font-size:.9rem}.write-versions-error{padding:1rem;text-align:center;color:var(--danger);font-size:.9rem}.write-versions-list{display:flex;flex-direction:column;gap:.4rem}.write-versions-item{padding:.6rem .75rem;border:1px solid var(--border-color, #ddd);border-radius:8px;background:var(--bg-secondary, #f8f8f8);cursor:pointer;transition:border-color .15s}.write-versions-item:hover{border-color:var(--primary, #4a90d9)}.write-versions-item.current{border-color:var(--primary, #4a90d9);background:var(--primary-bg, #eef4fb)}.write-versions-item-meta{display:flex;gap:.75rem;font-size:.75rem;color:var(--text-muted, #888);margin-bottom:.15rem}.write-versions-item-title{font-size:.85rem;color:var(--text-primary, #000);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.write-versions-item-action{font-size:.7rem;color:var(--link-color, #4a90d9);margin-top:.2rem;opacity:0;transition:opacity .15s}.write-versions-item:hover .write-versions-item-action{opacity:1}:root{--diff-added-bg: #dcfce7;--diff-removed-bg: #fee2e2;--diff-added-text: var(--success, #22c55e);--diff-removed-text: var(--error, #dc2626);--diff-same-bg: var(--bg-primary, #fff);--diff-line-text: var(--text-primary, #000);--diff-empty-bg: var(--bg-secondary, #f5f5f5);--diff-col-header-bg: var(--bg-secondary, #f5f5f5)}.dark{--diff-added-bg: #064e3b;--diff-removed-bg: #7f1d1d;--diff-added-text: #6ee7b7;--diff-removed-text: #fca5a5;--diff-same-bg: #1e1e3a;--diff-line-text: #e0e0e0;--diff-empty-bg: #16162b;--diff-col-header-bg: #1a1a35}.write-diff{max-width:900px;margin:0 auto;padding:1.5rem 2rem}.write-diff-loading,.write-diff-error{text-align:center;padding:3rem;color:var(--text-muted, #888)}.write-diff-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;flex-wrap:wrap}.write-diff-back{font-size:.85rem;color:var(--link-color, #4a90d9);text-decoration:none}.write-diff-back:hover{text-decoration:underline}.write-diff-title{font-size:1.1rem;font-weight:600;color:var(--text-primary, #000);flex:1}.write-diff-meta{font-size:.8rem;color:var(--text-muted, #888)}.write-diff-stats{font-size:.85rem;font-weight:600}.write-diff-restore{background:var(--warning, #f59e0b);color:#fff;border:none;border-radius:6px;padding:.3rem .75rem;cursor:pointer;font-size:.8rem;font-weight:600;margin-left:auto}.write-diff-restore:hover{background:var(--warning, #d97706)}.write-diff-restore:disabled{opacity:.6;cursor:default}.write-diff-added{color:var(--diff-added-text)}.write-diff-removed{color:var(--diff-removed-text)}.write-diff-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.write-diff-toggle-group{display:flex;border:1px solid var(--border-color, #ddd);border-radius:6px;overflow:hidden}.write-diff-toggle-btn{background:var(--bg-primary, #fff);border:none;padding:.3rem .75rem;font-size:.8rem;cursor:pointer;color:var(--text-primary, #000);transition:background .15s}.write-diff-toggle-btn.active{background:var(--primary, #4a90d9);color:#fff}.write-diff-toggle-btn:not(.active):hover{background:var(--bg-secondary, #f0f0f0)}.write-diff-html-toggle{font-size:.8rem;color:var(--text-muted, #888);cursor:pointer;display:flex;align-items:center;gap:.3rem}.write-diff-content{font-size:.85rem;line-height:1.6;border:1px solid var(--border-color, #ddd);border-radius:8px;overflow:hidden}.write-diff-content .write-diff-line-text p,.write-diff-content .write-diff-line-text h1,.write-diff-content .write-diff-line-text h2,.write-diff-content .write-diff-line-text h3,.write-diff-content .write-diff-line-text h4,.write-diff-content .write-diff-line-text h5,.write-diff-content .write-diff-line-text h6{margin:0;font-size:inherit}.write-diff-line{display:flex;align-items:flex-start;padding:.1rem .5rem}.write-diff-same{background:var(--diff-same-bg)}.write-diff-added{background:var(--diff-added-bg)}.write-diff-removed{background:var(--diff-removed-bg)}.write-diff-line-num{width:3rem;flex-shrink:0;text-align:right;padding-right:.75rem;color:var(--text-muted, #888);-webkit-user-select:none;user-select:none;font-family:monospace}.write-diff-line-text{white-space:pre-wrap;word-break:break-word;color:var(--diff-line-text);flex:1}.write-diff-empty{min-height:1.6em;display:block;background:var(--diff-empty-bg)}.write-diff-content.side-by-side{display:flex;gap:0}.write-diff-column{flex:1;width:50%;min-width:0}.write-diff-column-left{border-right:2px solid var(--border-color, #ddd)}.write-diff-column-header{position:sticky;top:0;z-index:2;background:var(--diff-col-header-bg);padding:.35rem .5rem;font-weight:600;font-size:.8rem;border-bottom:1px solid var(--border-color, #ddd);color:var(--text-primary, #000)}.write-diff-column .write-diff-line-num{font-family:monospace}.write-right-sidebar{width:260px;flex-shrink:0;border-left:1px solid var(--border-color, #ddd);background:var(--bg-secondary, #f8f8f8);display:flex;flex-direction:column;overflow-y:auto}.write-right-sidebar-tabs{display:flex;gap:2px;padding:.35rem .5rem;border-bottom:1px solid var(--border-color, #ddd);flex-shrink:0}.write-right-sidebar-tab{background:none;border:1px solid transparent;border-radius:4px;padding:.2rem .45rem;cursor:pointer;font-size:.8rem;line-height:1;opacity:.4;transition:opacity .15s,border-color .15s;color:var(--text-primary, #000)}.write-right-sidebar-tab:hover{opacity:.7}.write-right-toggle{background:none;border:1px solid transparent;border-radius:4px;padding:.2rem .3rem;cursor:pointer;font-size:.7rem;line-height:1;opacity:.4;transition:opacity .15s;color:var(--text-primary, #000);margin-left:auto}.write-right-toggle:hover{opacity:1}.write-right-toggle.collapsed{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:5;background:var(--bg-secondary, #f0f0f0);border:1px solid var(--border-color, #ddd);border-right:none;border-radius:6px 0 0 6px;padding:.4rem .2rem;opacity:.4}.write-right-toggle.collapsed:hover{opacity:1}.write-right-sidebar-tab.active{opacity:1;border-color:var(--border-color, #ddd);background:var(--bg-hover, #e8e8e8)}.write-comments{display:flex;flex-direction:column;overflow-y:auto;flex:1;font-size:.82rem}.write-comments-header{padding:.6rem .75rem;border-bottom:1px solid var(--border-color, #ddd)}.write-comments-label{font-weight:600;color:var(--text-primary, #000);font-size:.85rem;display:flex;align-items:center;gap:.4rem}.write-comments-count{background:var(--primary, #4a90d9);color:#fff;font-size:.65rem;padding:.05rem .35rem;border-radius:8px;font-weight:600}.write-comments-new{padding:.5rem .75rem;border-bottom:1px solid var(--border-color, #ddd);display:flex;flex-direction:column;gap:.3rem}.write-comments-snippet{font-size:.75rem;color:var(--text-muted, #888);font-style:italic;padding:.2rem .4rem;background:var(--bg-hover, #e8e8e8);border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.write-comments-input{width:100%;box-sizing:border-box;border:1px solid var(--border-color, #ddd);border-radius:6px;padding:.4rem;font-size:.8rem;resize:vertical;background:var(--bg-primary, #fff);color:var(--text-primary, #000);font-family:inherit}.write-comments-add{background:var(--primary, #4a90d9);color:#fff;border:none;border-radius:4px;padding:.3rem .6rem;cursor:pointer;font-size:.78rem;align-self:flex-end}.write-comments-add:disabled{opacity:.5;cursor:default}.write-comments-list{flex:1;overflow-y:auto;padding:.25rem 0}.write-comments-loading,.write-comments-empty{padding:1rem .75rem;color:var(--text-muted, #888);font-style:italic;text-align:center}.write-comments-error{padding:1rem .75rem;color:var(--danger);text-align:center}.write-comment{padding:.5rem .75rem;border-bottom:1px solid var(--border-color, #eee)}.write-comment.resolved{opacity:.5}.write-comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.15rem}.write-comment-author{font-weight:600;font-size:.75rem;color:var(--text-primary, #000)}.write-comment-date{font-size:.65rem;color:var(--text-muted, #888)}.write-comment-snippet{font-size:.72rem;color:var(--text-muted, #666);font-style:italic;background:var(--bg-hover, #e8e8e8);border-radius:3px;padding:.1rem .3rem;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.write-comment-text{font-size:.82rem;color:var(--text-primary, #000);line-height:1.4;margin-bottom:.3rem}.write-comment-actions{display:flex;gap:.5rem}.write-comment-resolve,.write-comment-delete{background:none;border:none;cursor:pointer;font-size:.7rem;padding:0;color:var(--text-muted, #888)}.write-comment-resolve:hover{color:var(--success, #22c55e)}.write-comment-delete:hover{color:var(--error, #dc2626)}.write-comment-highlight{background:#fef3c7;border-bottom:2px solid var(--warning, #f59e0b);cursor:pointer}.write-template-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center}.write-template-modal{background:var(--bg-primary, #fff);border-radius:12px;padding:1.5rem;max-width:480px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.write-template-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.write-template-header h3{margin:0;font-size:1rem;color:var(--text-primary, #000)}.write-template-close{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--text-muted, #888);padding:.2rem;line-height:1}.write-template-grid{display:flex;flex-direction:column;gap:.5rem}.write-template-card{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;border:1px solid var(--border-color, #ddd);border-radius:8px;background:var(--bg-secondary, #f8f8f8);cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.write-template-card:hover{border-color:var(--primary, #4a90d9);background:var(--bg-hover, #eef4fb)}.write-template-icon{font-size:1.4rem;flex-shrink:0}.write-template-name{font-weight:600;font-size:.85rem;color:var(--text-primary, #000);display:block}.write-template-desc{font-size:.75rem;color:var(--text-muted, #888);display:block}.write-template-section{margin-bottom:1rem}.write-template-section-title{font-size:.8rem;font-weight:600;color:var(--text-muted, #888);margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.5px}.write-template-card-wrap{display:flex;align-items:center;gap:.25rem}.write-template-card-wrap .write-template-card{flex:1}.write-template-delete{background:none;border:1px solid var(--border-color, #ddd);border-radius:6px;cursor:pointer;font-size:.8rem;color:var(--error, #dc2626);padding:.5rem;line-height:1;opacity:.5;transition:opacity .15s;flex-shrink:0}.write-template-delete:hover{opacity:1;border-color:var(--error, #dc2626)}.write-template-loading{text-align:center;padding:1rem;color:var(--text-muted, #888);font-size:.85rem}.write-template-error{text-align:center;padding:1rem;color:var(--danger);font-size:.85rem}.write-save-template-modal{background:var(--bg-primary, #fff);border-radius:12px;padding:1.5rem;max-width:400px;width:90%;box-shadow:0 8px 32px #0003}.write-save-template-body{display:flex;flex-direction:column;gap:1rem}.write-save-template-label{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;color:var(--text-primary, #000);font-weight:500}.write-save-template-input{padding:.5rem .7rem;border:1px solid var(--border-color, #ddd);border-radius:6px;font-size:.9rem;background:var(--bg-primary, #fff);color:var(--text-primary, #000)}.write-save-template-actions{display:flex;gap:.5rem;justify-content:flex-end}.print-preview{max-width:800px;margin:0 auto;padding:2rem 1.5rem;min-height:100vh}.print-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color, #ddd)}.print-back{color:var(--primary, #4a90d9);text-decoration:none;font-size:.9rem}.print-back:hover{text-decoration:underline}.print-btn{background:var(--primary, #4a90d9);color:#fff;border:none;border-radius:6px;padding:.5rem 1rem;cursor:pointer;font-size:.9rem;display:flex;align-items:center;gap:.4rem}.print-btn:hover{opacity:.9}.print-content{line-height:1.8;color:var(--text-primary, #000)}.print-title{font-size:1.8rem;font-weight:700;margin-bottom:.25rem;line-height:1.2}.print-tags{font-size:.8rem;color:var(--text-muted, #888);margin-bottom:1.5rem}.print-body{font-size:1rem}.print-body h1,.print-body h2,.print-body h3,.print-body h4{margin-top:1.5em;margin-bottom:.5em;line-height:1.3}.print-body p{margin-bottom:.8em}.print-body ul,.print-body ol{margin-bottom:.8em;padding-left:1.5em}.print-body blockquote{margin:1em 0;padding-left:1em;border-left:3px solid var(--border-color, #ddd);color:var(--text-muted, #666);font-style:italic}.print-body img{max-width:100%;height:auto}.print-body a{color:var(--primary, #4a90d9)}.print-loading,.print-error{text-align:center;padding:4rem 1rem;color:var(--text-muted, #888)}@media print{.main-nav,.print-toolbar{display:none!important}body,.app,.main-content{margin:0!important;padding:0!important;max-width:none!important;background:#fff!important;box-shadow:none!important;border:none!important}.print-preview{padding:0;max-width:none;min-height:0}.print-title{font-size:1.5rem;page-break-after:avoid}.print-tags{page-break-after:avoid}.print-body{font-size:.9rem;line-height:1.6;font-family:Georgia,Times New Roman,serif}.print-body h1,.print-body h2,.print-body h3,.print-body h4{page-break-after:avoid}.print-body p,.print-body li{orphans:3;widows:3}@page{margin:2cm;size:auto}}.rt-page{display:flex;height:calc(100vh - var(--nav-height));height:calc(100dvh - var(--nav-height));overflow:hidden}.rt-sidebar{width:260px;min-width:260px;border-right:1px solid var(--border-color, #e0e0e0);background:var(--bg-secondary, #f5f5f5);display:flex;flex-direction:column;overflow:hidden}.rt-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.rt-sidebar-header h2{margin:0;font-size:1rem;color:var(--text-primary, #213547)}.rt-add-table-btn{background:var(--accent, #3498db);color:#fff;border:none;border-radius:4px;width:28px;height:28px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.rt-add-table-btn:hover{opacity:.85}.rt-new-table-form{padding:.5rem 1rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.rt-new-table-icon-row{display:flex;gap:.4rem;align-items:center}.rt-new-table-icons{display:none;margin-top:.4rem}.rt-new-table-icons.rt-show{display:block}.rt-new-table-input{flex:1;padding:.35rem .5rem;border:1px solid var(--border-color, #e0e0e0);border-radius:4px;font-size:.85rem;background:var(--bg-primary, #ffffff);color:var(--text-primary, #213547)}.rt-new-table-save{padding:.35rem .6rem;background:var(--accent, #3498db);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.8rem;white-space:nowrap}.rt-table-list{flex:1;overflow-y:auto;padding:.5rem 0}.rt-list-group{margin:.5rem 1rem .25rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, #999)}.rt-table-item{display:block;width:100%;text-align:left;padding:.45rem 1rem;border:none;background:none;cursor:pointer;font-size:.85rem;color:var(--text-primary, #213547);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rt-table-item:hover{background:var(--bg-hover, #e8e8e8)}.rt-table-item.active{background:var(--accent, #3498db);color:#fff}.rt-table-item-row{display:flex;align-items:center}.rt-table-item-row .rt-table-item{flex:1}.rt-table-item-row.active .rt-table-item{background:var(--accent, #3498db);color:#fff}.rt-table-delete{background:none;border:none;cursor:pointer;font-size:.8rem;padding:.25rem .5rem;opacity:0;transition:opacity .15s;color:var(--text-muted, #999)}.rt-table-item-row:hover .rt-table-delete{opacity:1}.rt-table-delete:hover{color:#e74c3c}.rt-tag-filter{position:relative;padding:.5rem 1rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.rt-tag-filter-input{width:100%;padding:.35rem .5rem;border:1px solid var(--border-color, #e0e0e0);border-radius:4px;font-size:.8rem;background:var(--bg-primary, #ffffff);color:var(--text-primary, #213547);box-sizing:border-box}.rt-tag-filter-input::placeholder{color:var(--text-muted, #999)}.rt-tag-filter-clear{position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:.8rem;color:var(--text-muted, #999);padding:.2rem}.rt-tag-filter-clear:hover{color:var(--text-primary, #213547)}.rt-table-tags{display:flex;flex-wrap:wrap;gap:.2rem;margin-top:3px}.rt-table-tags .tag-badge{font-size:.62rem;padding:.05rem .4rem;border-radius:10px;color:#fff}.rt-table-title-area{display:flex;flex-direction:column;gap:.5rem}.rt-tags{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}.rt-main{flex:1;padding:1.5rem 2rem;overflow-y:auto;background:var(--bg-primary, #ffffff)}.rt-placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted, #999);font-size:1.1rem}.rt-table-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;flex-wrap:wrap;gap:.75rem}.rt-table-header h2{margin:0;font-size:1.3rem;color:var(--text-primary, #213547)}.rt-icon-row{position:relative;display:inline-block}.rt-icon-btn{background:none;border:2px solid transparent;border-radius:6px;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:border-color .15s}.rt-icon-btn:hover{border-color:var(--accent, #3498db)}.rt-icon-btn .entity-icon{font-size:1.6rem}.rt-icon-btn img{width:24px;height:24px}.rt-icon-picker-dropdown{position:absolute;top:100%;left:0;z-index:100;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:.5rem;box-shadow:0 4px 12px #00000026;min-width:200px}.rt-name-editable{cursor:pointer;border-bottom:2px dashed transparent;transition:border-color .15s;padding:0 .25rem}.rt-name-editable:hover{border-bottom-color:var(--accent, #3498db)}.rt-name-edit-input{font-size:1.3rem;font-weight:600;padding:.1rem .25rem;border:1px solid var(--accent, #3498db);border-radius:4px;background:var(--bg-primary, #fff);color:var(--text-primary, #213547);outline:none}.rt-table-actions{display:flex;gap:.5rem}.rt-roll-btn,.rt-reroll-btn,.rt-copy-btn{padding:.45rem 1rem;border:1px solid var(--border-color, #e0e0e0);border-radius:6px;background:var(--bg-secondary, #f5f5f5);color:var(--text-primary, #213547);cursor:pointer;font-size:.85rem;transition:background .15s,border-color .15s;white-space:nowrap}.rt-roll-btn:hover,.rt-reroll-btn:hover,.rt-copy-btn:hover{background:var(--accent, #3498db);color:#fff;border-color:var(--accent, #3498db)}.rt-roll-btn:disabled,.rt-reroll-btn:disabled{opacity:.5;cursor:default}.rt-entries{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.rt-entry{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-radius:6px;border:1px solid transparent;transition:background .2s,border-color .2s,box-shadow .2s}.rt-entry:hover{background:var(--hover-bg, rgba(0,0,0,.02))}.rt-entry.rolled{background:var(--primary-light, #e3f2fd);border-color:var(--accent, #3498db);box-shadow:0 0 0 2px #3498db26}.rt-entry.rolling{animation:rt-flash .3s ease-out}@keyframes rt-flash{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}.rt-entry-dice{font-size:1rem;flex-shrink:0}.rt-entry-num{font-size:.8rem;color:var(--text-muted, #999);min-width:2rem;flex-shrink:0}.rt-entry-input{flex:1;border:none;background:transparent;color:var(--text-primary, #213547);font-size:.9rem;padding:.15rem 0;outline:none;font-family:inherit}.rt-entry-input:focus{border-bottom:1px solid var(--accent, #3498db)}.rt-entry-delete{background:none;border:none;cursor:pointer;font-size:.8rem;padding:.15rem;opacity:0;transition:opacity .15s;color:var(--text-muted, #999)}.rt-entry:hover .rt-entry-delete{opacity:1}.rt-entry-delete:hover{color:#e74c3c}.rt-add-entry{padding:.5rem 1rem;border:1px dashed var(--border-color, #e0e0e0);background:transparent;cursor:pointer;border-radius:6px;color:var(--text-muted, #999);font-size:.9rem;width:100%;text-align:center}.rt-add-entry:hover{border-color:var(--accent, #3498db);color:var(--accent, #3498db)}.rt-loading,.rt-empty{padding:1rem;text-align:center;color:var(--text-muted, #999);font-size:.85rem}.session-timeline{margin-bottom:1.5rem;padding:1rem 0}.session-timeline-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.session-timeline-view-toggle{display:flex;gap:.25rem;background:var(--bg-secondary);border-radius:6px;padding:.2rem}.session-timeline-view-btn{background:none;border:none;padding:.3rem .6rem;border-radius:4px;cursor:pointer;font-size:.9rem;color:var(--text-secondary);transition:all .15s ease}.session-timeline-view-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.session-timeline-view-btn.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:0 1px 2px #0000001a}.session-timeline-track-count{font-size:.8rem;color:var(--text-secondary)}.session-timeline-tracks{display:flex;gap:1.5rem}.tracks-horizontal{flex-direction:column}.tracks-vertical{flex-direction:row;overflow-x:auto}.session-timeline-track-group{flex:1;min-width:0}.session-timeline-track-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.4rem;padding-left:.25rem}.track-horizontal{display:flex;align-items:flex-start;min-width:max-content;padding:.5rem 0;position:relative}.track-horizontal:before{content:"";position:absolute;top:18px;left:20px;right:20px;height:2px;background:var(--border-color);z-index:0}.session-timeline-item{display:flex;align-items:flex-start;position:relative;z-index:1}.connector-horizontal{width:30px;height:2px;background:var(--border-color);margin-top:18px;flex-shrink:0}.track-vertical{display:flex;flex-direction:column;align-items:flex-start;padding:.5rem 0 .5rem 1rem;position:relative}.track-vertical:before{content:"";position:absolute;top:0;bottom:0;left:8px;width:2px;background:var(--border-color);z-index:0}.track-vertical .session-timeline-item{flex-direction:row;align-items:center;gap:.75rem;padding:.5rem 0}.connector-vertical{display:none}.track-vertical .session-timeline-node-wrapper{flex-direction:row;align-items:center;gap:.6rem;min-width:0;max-width:none}.track-vertical .session-timeline-label{flex-direction:row;align-items:center;gap:.5rem;margin-top:0;text-align:left}.track-vertical .session-timeline-name{max-width:150px}.session-timeline-node-wrapper{display:flex;flex-direction:column;align-items:center;min-width:80px;max-width:120px}.session-timeline-node{width:18px;height:18px;border-radius:50%;border:2px solid var(--accent-color, #4a9eff);background:var(--bg-primary);cursor:pointer;padding:0;transition:all .15s ease;flex-shrink:0}.session-timeline-node:hover{background:var(--accent-color, #4a9eff);transform:scale(1.2)}.session-timeline-node.expanded{background:var(--accent-color, #4a9eff);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-color, #4a9eff) 30%,transparent)}.session-timeline-label{display:flex;flex-direction:column;align-items:center;margin-top:.4rem;text-align:center;gap:.15rem}.session-timeline-name{font-size:.8rem;color:var(--text-primary);line-height:1.2;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-timeline-date{font-size:.7rem;color:var(--text-secondary)}.session-timeline-card{margin-top:.75rem;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:6px;border:1px solid var(--border-color)}.session-timeline-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.session-timeline-card-link{font-weight:600;color:var(--link-color, #4a9eff);text-decoration:none;font-size:1rem}.session-timeline-card-link:hover{text-decoration:underline}.session-timeline-card-date{font-size:.85rem;color:var(--text-secondary);margin-left:auto}.session-timeline-card-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.85rem;padding:.15rem .35rem;border-radius:3px}.session-timeline-card-close:hover{background:var(--bg-hover);color:var(--text-primary)}.session-timeline-card-summary{color:var(--text-primary);font-size:.9rem;margin:0 0 .4rem;white-space:pre-wrap}.session-timeline-card-details{display:flex;gap:1rem;font-size:.85rem;color:var(--text-secondary)}.session-timeline-card-details strong{color:var(--text-primary)}.track-selector{position:relative;display:flex;align-items:center;gap:.3rem}.track-selector .form-input{flex:1}.track-selector-cancel{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.2rem .4rem;border-radius:3px;font-size:.85rem}.track-selector-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.track-selector-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;padding:.45rem .6rem;color:var(--text-primary);cursor:pointer;font-size:.9rem;text-align:left}.track-selector-trigger:hover{border-color:var(--accent-color, #4a9eff)}.track-selector-empty{color:var(--text-secondary);font-style:italic}.track-selector-arrow{font-size:.7rem;color:var(--text-secondary)}.track-selector-dropdown{position:absolute;top:100%;left:0;right:0;z-index:100;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 12px #00000026;margin-top:2px;max-height:200px;overflow-y:auto}.track-selector-option{display:block;width:100%;padding:.4rem .6rem;background:none;border:none;color:var(--text-primary);cursor:pointer;font-size:.85rem;text-align:left}.track-selector-option:hover{background:var(--bg-hover)}.track-selector-option.selected{font-weight:600;color:var(--accent-color, #4a9eff)}.track-selector-check{color:var(--accent-color, #4a9eff)}.track-selector-new{color:var(--accent-color, #4a9eff);font-style:italic}.track-selector-new:hover{background:color-mix(in srgb,var(--accent-color, #4a9eff) 10%,transparent)}.track-selector-divider{height:1px;background:var(--border-color);margin:.2rem 0}.track-selector-empty-msg{padding:.5rem .6rem;color:var(--text-secondary);font-size:.85rem;text-align:center}.campaign-timeline-dashboard{margin:2rem 0}.campaign-timeline-dashboard-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.campaign-timeline-dashboard-header h2{margin:0;font-size:1.15rem}.campaign-timeline-group{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:.75rem 1rem;margin-bottom:.75rem}.campaign-timeline-group.group-disabled{opacity:.45}.campaign-timeline-group-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.campaign-timeline-group-toggle{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.95rem}.campaign-timeline-group-toggle input[type=checkbox]{cursor:pointer}.campaign-timeline-group-calendar{font-size:.8rem;color:var(--text-secondary);background:var(--bg-primary);padding:.15rem .45rem;border-radius:4px}.campaign-timeline-group-actions{margin-left:auto;display:flex;gap:.3rem}.campaign-timeline-group-actions .btn{font-size:.8rem;padding:.15rem .5rem}.campaign-timeline-selector{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-color)}.campaign-timeline-check-item{display:flex;align-items:center;gap:.3rem;font-size:.85rem;cursor:pointer;padding:.2rem .4rem;border-radius:4px;background:var(--bg-primary);border:1px solid var(--border-color)}.campaign-timeline-check-item:hover{border-color:var(--accent-color, #4a9eff)}.campaign-timeline-check-item input[type=checkbox]{cursor:pointer}.campaign-timeline-color-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.campaign-timeline-remove-timeline{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.7rem;padding:0 .15rem;line-height:1}.campaign-timeline-remove-timeline:hover{color:var(--danger-color, #e74c3c)}.campaign-timeline-add-select{min-width:140px;font-size:.85rem;padding:.2rem .4rem;border-radius:4px}.campaign-timeline-entries{margin-top:.75rem;padding-top:.5rem;border-top:1px solid var(--border-color)}.campaign-timeline-loading,.campaign-timeline-empty{font-size:.85rem;color:var(--text-secondary);text-align:center;padding:1rem 0}.ctd-visual{display:flex;flex-direction:column;gap:1.25rem}.ctd-track{background:var(--bg-primary);border-radius:6px;padding:.5rem .75rem}.ctd-track-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.4rem;padding-left:.25rem}.ctd-track-line{display:flex;align-items:flex-start;min-width:max-content;padding:.5rem 0;position:relative}.ctd-track-line:before{content:"";position:absolute;top:18px;left:20px;right:20px;height:2px;background:var(--border-color);z-index:0}.ctd-node-wrap{display:flex;align-items:flex-start;position:relative;z-index:1}.ctd-connector{width:30px;height:2px;background:var(--border-color);margin-top:18px;flex-shrink:0}.ctd-node-col{display:flex;flex-direction:column;align-items:center;min-width:80px;max-width:130px}.ctd-node{width:18px;height:18px;border-radius:50%;border:2px solid var(--accent-color, #4a9eff);background:var(--bg-primary);cursor:pointer;padding:0;transition:all .15s ease;flex-shrink:0}.ctd-node:hover{transform:scale(1.2)}.ctd-node-expanded{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-color, #4a9eff) 30%,transparent)}.ctd-node-label{display:flex;flex-direction:column;align-items:center;margin-top:.4rem;text-align:center;gap:.15rem}.ctd-node-name{font-size:.8rem;color:var(--text-primary);line-height:1.2;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctd-node-date{font-size:.7rem;color:var(--text-secondary)}.ctd-track-cards{margin-top:.25rem}.ctd-entry-card{margin-top:.5rem;padding:.6rem .75rem;background:var(--bg-secondary);border-radius:6px;border:1px solid var(--border-color)}.ctd-entry-card-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ctd-entry-card-link{font-weight:600;color:var(--link-color, #4a9eff);text-decoration:none;font-size:.9rem}.ctd-entry-card-link:hover{text-decoration:underline}.ctd-entry-card-date{font-size:.8rem;color:var(--text-secondary)}.ctd-entry-card-source{font-size:.75rem;font-style:italic}.ctd-entry-card-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.8rem;padding:.1rem .3rem;border-radius:3px;margin-left:auto}.ctd-entry-card-close:hover{background:var(--bg-hover);color:var(--text-primary)}.ctd-entry-card-description{color:var(--text-primary);font-size:.85rem;margin:.4rem 0 0;white-space:pre-wrap}.ctd-track-actions{margin-top:.5rem}.ctd-add-entry-btn{background:none;border:1px dashed var(--border-color);color:var(--text-secondary);cursor:pointer;font-size:.8rem;padding:.25rem .6rem;border-radius:4px;transition:all .15s ease}.ctd-add-entry-btn:hover{border-color:var(--accent-color, #4a9eff);color:var(--accent-color, #4a9eff)}.ctd-inline-form{display:flex;flex-direction:column;gap:.4rem;padding:.5rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px}.ctd-inline-form .form-input{font-size:.85rem;padding:.35rem .5rem}.ctd-inline-form textarea.form-input{resize:vertical}.ctd-inline-form-actions{display:flex;gap:.4rem}.ctd-inline-form-actions .btn-sm{font-size:.8rem;padding:.25rem .6rem}.ctd-track-drag-handle{font-size:.7rem;color:var(--text-secondary);opacity:0;cursor:grab;transition:opacity .15s ease;-webkit-user-select:none;user-select:none;margin-right:.35rem}.ctd-track-label:hover .ctd-track-drag-handle{opacity:.5}.ctd-track-dragging{opacity:.35}.ctd-tl-track-drop-zone{height:16px;margin:-4px 0;transition:all .15s ease;border-radius:4px;position:relative;z-index:2}.ctd-tl-track-drop-active{background:var(--accent-color, #4a9eff);opacity:.25;height:20px;margin:-6px 0}.campaign-timeline-add-group-btn{margin-top:.5rem}.campaign-timeline-add-group-form{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px}.campaign-timeline-add-group-actions{display:flex;gap:.5rem}.embedded-rel-graph{position:relative;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--bg-secondary)}.embedded-rel-graph .react-flow{height:100%}.embedded-rel-loading,.embedded-rel-error,.embedded-rel-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:.85rem}.embedded-rel-error{color:var(--danger, #ef4444)}.embedded-rel-fullscreen-btn{position:absolute;top:8px;right:8px;z-index:5;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;font-size:1.1rem;text-decoration:none;color:var(--text-secondary);transition:background .15s,color .15s}.embedded-rel-fullscreen-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.char-state-panel{margin:2rem 0}.char-state-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.char-state-header h2{margin:0;font-size:1.15rem}.char-state-add-form{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px}.char-state-search-results{display:flex;flex-direction:column;gap:.25rem;max-height:200px;overflow-y:auto}.char-state-result{display:block;width:100%;text-align:left;background:var(--bg-primary);border:1px solid var(--border-color);padding:.35rem .6rem;border-radius:4px;cursor:pointer;font-size:.9rem;color:var(--text-primary)}.char-state-result:hover{background:var(--bg-hover);border-color:var(--accent-color, #4a9eff)}.char-state-no-results{font-size:.85rem;color:var(--text-secondary)}.char-state-loading,.char-state-empty{font-size:.85rem;color:var(--text-secondary);text-align:center;padding:1rem 0}.char-state-table{width:100%;border-collapse:collapse;font-size:.9rem}.char-state-table th,.char-state-table td{padding:.4rem .6rem;border-bottom:1px solid var(--border-color);text-align:left}.char-state-table th{font-weight:600;font-size:.8rem;color:var(--text-secondary);white-space:nowrap}.char-state-name{font-weight:500;white-space:nowrap}.char-state-icon{margin-right:.3rem}.char-state-hp-group{display:inline-flex;align-items:center;gap:.2rem}.char-state-hp-input{width:50px;font-size:.85rem;padding:.2rem .35rem;text-align:center}.char-state-hp-sep{color:var(--text-secondary);font-size:.85rem}.char-state-status-select{font-size:.85rem;padding:.2rem .35rem;border-radius:4px;min-width:100px}.char-state-actions{display:flex;gap:.3rem;white-space:nowrap}.char-state-actions .btn-sm{font-size:.8rem;padding:.2rem .5rem}.char-state-loc-cell{min-width:160px}.char-state-loc-display{display:inline-flex;align-items:center;gap:.3rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;padding:.2rem .5rem;font-size:.85rem;color:var(--text-primary);cursor:pointer;width:100%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.char-state-loc-display:hover{border-color:var(--accent-color, #4a9eff);background:var(--bg-hover)}.char-state-loc-clear{margin-left:auto;font-size:.75rem;color:var(--text-secondary);padding:0 .15rem;flex-shrink:0}.char-state-loc-clear:hover{color:var(--danger-color, #e74c3c)}.char-state-loc-picker{position:relative}.char-state-loc-input{width:100%;font-size:.85rem;padding:.2rem .35rem;box-sizing:border-box}.char-state-loc-results{position:absolute;z-index:50;top:100%;left:0;right:0;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;max-height:200px;overflow-y:auto;box-shadow:0 4px 12px #00000026}.char-state-loc-result{display:block;width:100%;text-align:left;background:var(--bg-primary);border:none;border-bottom:1px solid var(--border-color);padding:.35rem .6rem;cursor:pointer;font-size:.85rem;color:var(--text-primary)}.char-state-loc-result:last-child{border-bottom:none}.char-state-loc-result:hover{background:var(--bg-hover)}.char-state-loc-result.focused{background:var(--bg-hover);outline:1px solid var(--accent-color, #4a9eff);outline-offset:-1px}.known-rels-section{margin-bottom:1.5rem}.known-rels-loading{padding:1rem;color:var(--text-secondary);text-align:center}.known-rels-group{margin-bottom:1rem}.known-rels-group:last-child{margin-bottom:0}.known-rels-group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.known-rels-group-header h2,.known-rels-group-header h3{margin:0;font-size:1rem;font-weight:600}.known-rels-graph-link{font-size:.8rem;text-decoration:none;color:var(--accent-color, #3b82f6)}.known-rels-graph-link:hover{text-decoration:underline}.known-rels-list{display:flex;flex-direction:column;gap:.35rem}.known-rels-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-radius:6px;text-decoration:none;color:inherit;transition:background .15s}.known-rels-item:hover{background:var(--hover-bg, rgba(128,128,128,.1))}.known-rels-icon{flex-shrink:0;font-size:1.2rem;width:1.5rem;text-align:center}.known-rels-name{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.known-rels-spacer{flex:1;min-width:.5rem}.known-rels-type-badge{display:inline-flex;align-items:center;gap:.25rem;flex-shrink:0;font-size:.75rem;padding:.15rem .5rem;border:1px solid var(--text-secondary);border-radius:999px;white-space:nowrap}.known-rels-type-icon{font-size:.7rem}.known-rels-empty{font-size:.85rem;color:var(--text-secondary);padding:.5rem}.campaign-detail{max-width:900px;margin:0 auto;padding:2rem}.campaign-loading{text-align:center;padding:3rem;color:var(--text-secondary)}.campaign-header{margin-bottom:2rem}.campaign-title-row{display:flex;align-items:flex-start;gap:1rem}.campaign-icon{font-size:2.5rem;flex-shrink:0}.campaign-title-content{flex:1}.campaign-title-content h1{margin:0 0 .5rem;font-size:1.8rem}.campaign-description{color:var(--text-secondary);margin:0 0 1rem;white-space:pre-wrap}.campaign-actions{display:flex;gap:.5rem}.campaign-edit-form{display:flex;flex-direction:column;gap:.75rem}.campaign-name-input{font-size:1.3rem;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary)}.campaign-desc-input{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);resize:vertical}.campaign-checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;color:var(--text-primary)}.campaign-checkbox-label input[type=checkbox]{width:1rem;height:1rem;accent-color:#7c3aed}.campaign-edit-actions{display:flex;gap:.5rem}.campaign-sessions-section{margin-top:2rem}.campaign-sessions-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.campaign-sessions-header h2{margin:0;font-size:1.3rem}.new-session-form{display:flex;gap:.75rem;align-items:flex-start;margin-bottom:1rem;padding:1rem;background:var(--bg-secondary);border-radius:6px;flex-wrap:wrap}.new-session-form .form-input{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);flex:1 1 150px;min-width:120px}.new-session-form input[type=date]{flex:0 0 auto}.new-session-form textarea.form-input{flex:1 1 100%;resize:vertical}.campaign-no-sessions{color:var(--text-secondary);text-align:center;padding:2rem}.campaign-sessions-table{width:100%;border-collapse:collapse}.campaign-sessions-table th,.campaign-sessions-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border-color)}.campaign-sessions-table th{font-weight:600;color:var(--text-secondary);font-size:.85rem;text-transform:uppercase}.session-date-cell{white-space:nowrap;color:var(--text-secondary);width:110px}.session-link{color:var(--link-color, #4a9eff);text-decoration:none}.session-link:hover{text-decoration:underline}.session-actions-cell{display:flex;gap:.35rem;align-items:center}.session-expand-btn{font-size:.8rem;padding:.15rem .4rem}.session-expand-btn.active{background:var(--link-color, #4a9eff);color:#fff}.session-prep-preview-row td{padding:0!important;border-bottom:1px solid var(--border-color)}.session-prep-preview{padding:1rem 1.25rem;background:var(--bg-secondary);display:flex;flex-direction:column;gap:.75rem}.session-prep-preview-block strong{display:block;margin-bottom:.25rem;font-size:.8rem;color:var(--text-secondary);text-transform:uppercase}.session-prep-preview-block p{margin:0;font-size:.9rem;white-space:pre-wrap}.session-prep-preview-checklist{margin:0;padding-left:1.2rem;list-style:none}.session-prep-preview-checklist li{font-size:.9rem;padding:.15rem 0;display:flex;align-items:center;gap:.4rem}.session-prep-preview-checklist li.checked{text-decoration:line-through;color:var(--text-secondary)}.session-prep-preview-checkbox{flex-shrink:0}.session-prep-preview-entities{display:inline-flex;flex-wrap:wrap;gap:.35rem;margin-left:.3rem}.session-prep-preview-entity{display:inline-flex;align-items:center;gap:.25rem;font-size:.8rem;background:var(--bg-primary);padding:.1rem .4rem;border-radius:3px}.session-prep-preview-entity a{color:var(--link-color, #4a9eff);text-decoration:none}.session-prep-preview-entity a:hover{text-decoration:underline}.session-prep-preview-entity-icon .entity-emoji-icon{font-size:.8rem}.session-prep-preview-entity-icon .entity-image-icon{width:1rem;height:1rem;border-radius:50%;object-fit:cover}.session-prep-preview-link{font-size:.85rem;color:var(--link-color, #4a9eff);text-decoration:none}.session-prep-preview-link:hover{text-decoration:underline}.campaign-members-section{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-color)}.campaign-members-header{margin-bottom:1rem}.campaign-members-header h2{margin:0;font-size:1.3rem}.add-member-form{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem}.add-member-form .form-input{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary)}.add-member-form select.form-input{flex:0 0 auto}.add-member-form input.form-input{flex:1}.campaign-no-members{color:var(--text-secondary);text-align:center;padding:2rem}.campaign-members-table{width:100%;border-collapse:collapse}.campaign-members-table th,.campaign-members-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--border-color)}.campaign-members-table th{font-weight:600;color:var(--text-secondary);font-size:.85rem;text-transform:uppercase}.campaign-members-table select{padding:.3rem .5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary)}.campaign-section-title-row{display:flex;align-items:center;gap:.5rem}.campaign-section-title-row h2{margin:0}.section-visibility-toggle{background:none;border:1px solid var(--border-color);border-radius:4px;padding:.2rem .4rem;cursor:pointer;font-size:.9rem;line-height:1;transition:all .15s ease;position:relative}.section-visibility-toggle:hover{border-color:var(--link-color, #4a9eff)}.section-visibility-toggle.visible{color:#22c55e}.section-visibility-toggle.hidden{color:#ef4444}.campaign-inworld-date{display:flex;align-items:center;gap:.5rem;margin:.5rem 0 1rem;padding:.5rem .75rem;background:var(--bg-secondary);border-radius:6px;font-size:.9rem}.campaign-inworld-date-label{color:var(--text-secondary);font-weight:600}.campaign-inworld-date-value{color:var(--text-primary);font-weight:500}.campaign-inworld-date-actions{display:flex;gap:.4rem;margin-left:auto}.campaign-detail .modal-content{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;min-width:300px;max-width:400px;box-shadow:0 4px 20px #00000026}.campaign-detail .modal-content h3{margin:0 0 1rem;font-size:1.2rem}.campaign-detail .modal-content .form-input{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);margin-bottom:1rem}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end}.quest-form{display:flex;flex-direction:column;gap:.5rem;margin:.5rem 0;padding:1rem;background:var(--bg-secondary);border-radius:8px}.quest-form-row{display:flex;gap:.5rem;flex-wrap:wrap}.quest-form-row .form-input{flex:1;min-width:120px}.quest-form-actions{display:flex;gap:.5rem}.quest-list{margin:.5rem 0}.quest-group{margin-bottom:1rem}.quest-group-title{font-size:.9rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:.5rem}.quest-no-items{color:var(--text-secondary);font-style:italic;margin:.5rem 0}.quest-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:.75rem;margin-bottom:.5rem;position:relative}.quest-card.quest-card-editing{padding:1rem;display:flex;flex-direction:column;gap:.5rem}.quest-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.quest-card-icon{font-size:1.1rem}.quest-card-name{font-weight:600;flex:1}.quest-status-select{padding:2px 6px;border-radius:4px;border:1px solid var(--border-color);background:var(--bg-primary);font-size:.8rem;cursor:pointer}.quest-status-badge{padding:2px 8px;border-radius:10px;font-size:.75rem;font-weight:500}.quest-status-active .quest-status-badge,.quest-status-active.quest-ref-name{background:#d4edda;color:#155724}.quest-status-completed .quest-status-badge,.quest-status-completed.quest-ref-name{background:#c3e6cb;color:#0c5460}.quest-status-failed .quest-status-badge,.quest-status-failed.quest-ref-name{background:#f8d7da;color:#721c24}.quest-status-abandoned .quest-status-badge,.quest-status-abandoned.quest-ref-name{background:#e2e3e5;color:#383d41}.quest-card-description{color:var(--text-secondary);font-size:.9rem;margin:.25rem 0}.quest-card-meta{display:flex;gap:1rem;font-size:.85rem;color:var(--text-secondary);margin:.25rem 0}.quest-card-actions{display:flex;gap:.5rem;margin-top:.5rem}.quest-card.quest-status-completed{opacity:.7}.quest-card.quest-status-failed,.quest-card.quest-status-abandoned{opacity:.5}.handouts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem;margin:.5rem 0}.handout-card{padding:.75rem;border-radius:8px;border:1px solid var(--border-color)}.handout-title{display:block;margin-bottom:.25rem}.handout-content{font-size:.9rem;white-space:pre-wrap}.session-recaps-list{display:flex;flex-direction:column;gap:.75rem;margin:.5rem 0}.session-recap-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:.75rem}.session-recap-link{font-weight:600;text-decoration:none;color:var(--accent-color);margin-right:.5rem}.session-recap-link:hover{text-decoration:underline}.session-recap-date{font-size:.85rem;color:var(--text-secondary)}.session-recap-summary{margin:.25rem 0;font-size:.9rem;color:var(--text-secondary)}.session-recap-meta{display:flex;gap:1rem;font-size:.85rem;color:var(--text-secondary)}.quest-giver-picker{flex:1;min-width:150px}.quest-giver-link{text-decoration:none;color:var(--link-color, #4a9eff);display:inline-flex;align-items:center;gap:.3rem}.quest-giver-link:hover{text-decoration:underline}.quest-giver-icon{width:1rem;height:1rem}.recap-export{display:flex;align-items:center;gap:.4rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.recap-export-label{font-weight:600;margin-right:.25rem}.recap-export .btn-sm{padding:.25rem .5rem;font-size:.8rem}.session-detail{max-width:900px;margin:0 auto;padding:2rem}.session-loading{text-align:center;padding:3rem;color:var(--text-secondary)}.session-campaign-badge{margin-bottom:1rem}.campaign-badge-link{display:inline-block;padding:.35rem .75rem;background:var(--bg-secondary);border-radius:6px;font-size:.9rem;color:var(--link-color, #4a9eff);text-decoration:none}.campaign-badge-link:hover{text-decoration:underline}.session-header{margin-bottom:2rem}.session-title-row{display:flex;align-items:flex-start;gap:1rem}.session-icon{font-size:2rem;flex-shrink:0}.session-title-content{flex:1}.session-title-content h1{margin:0 0 .5rem;font-size:1.8rem}.session-date{color:var(--text-secondary);font-size:.95rem;margin:0 0 .5rem}.session-description{color:var(--text-secondary);margin:0 0 1rem;white-space:pre-wrap}.session-actions{display:flex;gap:.5rem}.session-edit-form{display:flex;flex-direction:column;gap:.75rem}.session-edit-form .form-input{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);resize:vertical}.session-edit-actions{display:flex;gap:.5rem}.session-notes-section{margin-top:2rem}.session-notes-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.session-notes-header h2{margin:0;font-size:1.3rem}.session-no-notes{color:var(--text-secondary);text-align:center;padding:2rem}.session-notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.note-card{border-radius:8px;padding:1rem;box-shadow:0 1px 3px #0000001f;display:flex;flex-direction:column;gap:.5rem;color:var(--text-primary-dark, #213547)}.note-card.note-gm{border:2px dashed var(--border-color)}.note-card-header{display:flex;align-items:center;gap:.5rem}.note-visibility-badge{font-size:.85rem;line-height:1}.note-visibility-select{font-size:.85rem;padding:.2rem .4rem;border-radius:4px}.note-title{font-size:1rem}.note-content{margin:0;white-space:pre-wrap;font-size:.9rem;color:var(--text-primary)}.note-card-actions{display:flex;gap:.5rem;margin-top:auto}.note-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem;padding:1rem;background:var(--bg-secondary);border-radius:6px}.note-form .form-input{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);resize:vertical}.note-form-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.note-color-picker{display:flex;gap:.3rem}.note-color-btn{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.note-color-btn.active{border-color:var(--text-primary)}.note-visibility-label{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-secondary)}.note-edit-form{display:flex;flex-direction:column;gap:.75rem}.note-edit-form .form-input{padding:.4rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);resize:vertical}.note-edit-actions{display:flex;gap:.5rem}.session-members-section{margin-top:2rem;padding:1rem;background:var(--bg-secondary);border-radius:6px}.session-members-section h2{margin:0 0 .75rem;font-size:1.1rem}.session-member-list{display:flex;flex-direction:column;gap:.5rem}.session-member-group{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.session-member-role-label{font-size:.85rem;color:var(--text-secondary);font-weight:600;min-width:60px}.session-member-tag{display:inline-block;padding:.2rem .6rem;background:var(--bg-primary);border-radius:4px;font-size:.85rem;border:1px solid var(--border-color)}.session-member-tag.gm-tag{border-color:#f0c040;color:#b8860b}.session-xp-display,.session-loot-display{margin-top:1rem;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:6px;font-size:.95rem}.session-xp-label,.session-loot-label{color:var(--text-secondary);font-weight:600}.session-summary-display{margin-top:1.5rem}.session-summary-display h3{margin:0 0 .5rem;font-size:1.1rem}.session-summary-display p{margin:0;white-space:pre-wrap;color:var(--text-secondary)}.session-recap-section{margin-top:1.5rem;padding:1.5rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.session-recap-section h2{margin:0 0 1rem;font-size:1.3rem}.session-recap-content{display:flex;flex-direction:column;gap:1rem}.recap-block strong{display:block;margin-bottom:.3rem;font-size:.9rem;color:var(--text-secondary);text-transform:uppercase}.recap-block p{margin:0;white-space:pre-wrap}.recap-player-list{margin:0;padding-left:1.2rem}.recap-note{padding:.75rem;border-radius:6px;margin-bottom:.5rem}.recap-note:last-child{margin-bottom:0}.recap-note strong{display:block;margin-bottom:.2rem;text-transform:none;font-size:.9rem}.recap-note p{margin:0;font-size:.9rem}.session-prep-section{margin-top:1.5rem;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.session-prep-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--bg-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.session-prep-header:hover{background:var(--bg-hover, var(--bg-secondary))}.session-prep-header h2{margin:0;font-size:1.2rem}.session-prep-toggle{font-size:.8rem;color:var(--text-secondary);transition:transform .2s ease}.session-prep-toggle.open{transform:rotate(90deg)}.session-prep-content{padding:1.25rem;display:flex;flex-direction:column;gap:1.25rem}.session-prep-progress{display:flex;align-items:center;gap:.75rem}.session-prep-progress-bar{flex:1;height:6px;background:var(--bg-secondary);border-radius:3px;overflow:hidden}.session-prep-progress-fill{height:100%;background:#22c55e;border-radius:3px;transition:width .2s ease}.session-prep-progress-text{font-size:.85rem;color:var(--text-secondary);font-weight:600;min-width:3ch}.session-prep-block strong{display:block;margin-bottom:.5rem;font-size:.9rem;color:var(--text-secondary);text-transform:uppercase}.session-prep-checklist{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.75rem}.session-prep-checklist-item{display:flex;align-items:center;gap:.5rem;padding:.3rem .5rem;border-radius:4px;background:var(--bg-primary)}.session-prep-checklist-item:hover{background:var(--bg-hover, var(--bg-secondary))}.session-prep-checklist-wrapper{display:flex;flex-direction:column;gap:0}.session-prep-checklist-entity-count{font-size:.7rem;background:var(--link-color, #4a9eff);color:#fff;border-radius:50%;width:1.1rem;height:1.1rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.session-prep-link-btn.active{background:var(--link-color, #4a9eff);color:#fff}.session-prep-checklist-entities{width:100%;padding:.5rem .75rem .5rem 2rem;display:flex;flex-direction:column;gap:.5rem;border-left:2px solid var(--border-color);margin-left:.75rem;margin-top:.25rem;box-sizing:border-box}.session-prep-linked-entities{display:flex;flex-direction:column;gap:.35rem}.session-prep-linked-entity{display:flex;align-items:center;gap:.4rem;font-size:.85rem;width:100%}.session-prep-linked-entity-info{flex:1 1 60%;display:flex;align-items:center;gap:.4rem;min-width:0}.session-prep-linked-entity-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--link-color, #4a9eff);text-decoration:none;display:block}.session-prep-linked-entity-name:hover{text-decoration:underline}.session-prep-linked-entity-icon{flex-shrink:0}.session-prep-linked-entity-icon .entity-emoji-icon{font-size:.9rem}.session-prep-linked-entity-icon .entity-image-icon{width:1.1rem;height:1.1rem;border-radius:50%;object-fit:cover}.session-prep-linked-entity-type{font-size:.7rem;color:var(--text-secondary);background:var(--bg-secondary);padding:.1rem .35rem;border-radius:3px}.session-prep-linked-entity-note{flex:0 0 40%;width:auto;min-width:0;padding:.2rem .4rem;font-size:.8rem}.session-prep-checkbox{background:none;border:none;font-size:1.1rem;cursor:pointer;padding:0;line-height:1;color:var(--text-secondary)}.session-prep-checkbox.checked{color:#22c55e}.session-prep-checklist-text{flex:1;font-size:.9rem}.session-prep-checklist-text.checked{text-decoration:line-through;color:var(--text-secondary)}.session-prep-checklist-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .15s ease}.session-prep-checklist-item:hover .session-prep-checklist-actions{opacity:1}.session-prep-add-item{display:flex;gap:.5rem}.session-prep-add-item .form-input{flex:1;padding:.4rem .6rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:.9rem}.session-prep-block .form-input{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);resize:vertical}.quest-refs-list{display:flex;flex-direction:column;gap:.3rem}.quest-ref-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem}.quest-ref-checkbox input[type=checkbox]{cursor:pointer}.quest-ref-name{padding:1px 6px;border-radius:4px;font-size:.85rem}.session-livelog-section{margin:1rem 0}.session-livelog-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.session-livelog-header h2{font-size:1rem;margin:0}.session-livelog-input{width:100%;min-height:80px;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);resize:vertical;font-family:inherit}.session-livelog-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:.75rem;white-space:pre-wrap;font-size:.9rem}.session-livelog-content p{margin:.25rem 0}.recap-livelog{background:var(--bg-secondary);border-radius:4px;padding:.5rem .75rem;white-space:pre-wrap;font-size:.9rem}.recap-livelog p{margin:.25rem 0}.recap-quest-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem}.recap-quest-item{padding:2px 10px;border-radius:10px;font-size:.85rem}.wb-page{display:flex;height:calc(100vh - var(--nav-height));height:calc(100dvh - var(--nav-height));overflow:hidden}.wb-sidebar{width:280px;min-width:280px;border-right:1px solid var(--border-color, #e0e0e0);background:var(--bg-secondary, #f5f5f5);display:flex;flex-direction:column;overflow:hidden}.wb-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.wb-sidebar-header h2{margin:0;font-size:1rem;color:var(--text-primary, #213547)}.wb-save-status{font-size:.72rem;white-space:nowrap;padding:2px 8px;border-radius:10px}.wb-save-status--saving{background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e0e0e0);color:var(--text-secondary, #666)}.wb-save-status--saved{background:var(--success, #27ae60);color:#fff}.wb-save-status--error{background:var(--danger, #e74c3c);color:#fff}.wb-universe-select{padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.wb-universe-select label{display:block;font-size:.75rem;margin-bottom:.3rem;color:var(--text-secondary, #666)}.wb-universe-select select{width:100%;padding:6px 8px;border:1px solid var(--border-color, #e0e0e0);border-radius:4px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #213547)}.wb-empty-hint{font-size:.8rem;color:var(--text-secondary, #666);margin:.4rem 0 0}.wb-overall-progress{padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.wb-progress-label{display:flex;justify-content:space-between;font-size:.78rem;color:var(--text-secondary, #666);margin-bottom:.35rem}.wb-progress-track{height:8px;border-radius:4px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-color, #e0e0e0);overflow:hidden}.wb-progress-fill{height:100%;background:var(--accent, #3498db);transition:width .3s ease}.wb-view-toggle{display:flex;padding:.75rem 1rem;gap:.5rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.wb-view-toggle button{flex:1;padding:6px 8px;border:1px solid var(--border-color, #e0e0e0);border-radius:4px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #213547);cursor:pointer;font-size:.8rem}.wb-view-toggle button.active{background:var(--accent, #3498db);color:#fff;border-color:var(--accent, #3498db)}.wb-category-nav{flex:1;overflow-y:auto;padding:.5rem 0}.wb-level-group{margin-bottom:.5rem}.wb-level-label{padding:.35rem 1rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary, #666)}.wb-cat-link{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.45rem 1rem;border:none;background:none;cursor:pointer;text-align:left;color:var(--text-primary, #213547);font-size:.85rem}.wb-cat-link:hover{background:var(--bg-primary, #ffffff)}.wb-cat-link.active{background:var(--accent, #3498db);color:#fff}.wb-cat-link-title{flex:1}.wb-cat-link-count{font-size:.7rem;opacity:.8;background:var(--bg-primary, #ffffff);color:var(--text-primary, #213547);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:1px 6px}.wb-cat-link.active .wb-cat-link-count{background:#fff3;color:#fff;border-color:transparent}.wb-sidebar-footer{padding:.75rem 1rem;border-top:1px solid var(--border-color, #e0e0e0);display:flex;gap:.5rem}.wb-tips-btn{flex:1;padding:6px 8px;border:1px solid var(--border-color, #e0e0e0);border-radius:4px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #213547);cursor:pointer;font-size:.8rem}.wb-tips-btn:hover{border-color:var(--accent, #3498db)}.wb-main{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;background:var(--bg-primary, #ffffff);color:var(--text-primary, #213547)}.wb-main-header{max-width:860px}.wb-intro{margin:0 0 1.25rem;font-size:.9rem;line-height:1.55;color:var(--text-secondary, #666)}.wb-tips,.wb-extra{max-width:860px;background:var(--bg-secondary, #f5f5f5);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.25rem}.wb-tips h3,.wb-extra h3{margin:0 0 .75rem;font-size:1rem}.wb-tip{margin-bottom:.4rem;border:1px solid var(--border-color, #e0e0e0);border-radius:6px;background:var(--bg-primary, #ffffff)}.wb-tip summary{padding:.55rem .75rem;cursor:pointer;font-weight:500;font-size:.88rem}.wb-tip p{margin:0;padding:0 .75rem .75rem;font-size:.85rem;line-height:1.5;color:var(--text-secondary, #666)}.wb-work-approach{margin-top:1rem!important}.wb-work-steps{margin:.5rem 0 0;padding-left:1.2rem;font-size:.85rem;color:var(--text-secondary, #666)}.wb-extra-group h4{margin:.75rem 0 .35rem;font-size:.9rem}.wb-extra-group ol{margin:0;padding-left:1.2rem;font-size:.85rem;color:var(--text-secondary, #666)}.wb-empty{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--text-secondary, #666);font-size:.9rem}.wb-wizard{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:1rem}.wb-wizard-cat-header h3{margin:.5rem 0 .4rem;font-size:1.25rem}.wb-level-badge{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent, #3498db);border:1px solid var(--accent, #3498db);border-radius:10px;padding:2px 10px}.wb-cat-intro{margin:.4rem 0;font-size:.85rem;color:var(--text-secondary, #666)}.wb-focus-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.wb-focus-chip{font-size:.78rem;padding:4px 10px;border-radius:12px;border:1px solid var(--border-color, #e0e0e0);background:var(--bg-secondary, #f5f5f5);color:var(--text-primary, #213547);line-height:1.4}.wb-focus-chip--roman{border-color:#9b59b6}.wb-focus-chip--rpg{border-color:#e67e22}.wb-q-progress{font-size:.78rem;color:var(--text-secondary, #666);margin-top:.4rem}.wb-question-card{background:var(--bg-secondary, #f5f5f5);border:1px solid var(--border-color, #e0e0e0);border-radius:8px;padding:1.25rem}.wb-question{margin:0 0 .75rem;font-size:1.05rem;font-weight:500;line-height:1.5}.wb-answer{width:100%;padding:.6rem .75rem;border:1px solid var(--border-color, #e0e0e0);border-radius:6px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #213547);font-family:inherit;font-size:.9rem;line-height:1.5;resize:vertical;box-sizing:border-box}.wb-answer:focus{outline:none;border-color:var(--accent, #3498db)}.wb-wizard-nav{display:flex;justify-content:space-between;gap:.5rem}.wb-wizard-nav button{padding:8px 18px;border:1px solid var(--border-color, #e0e0e0);border-radius:6px;background:var(--bg-primary, #ffffff);color:var(--text-primary, #213547);cursor:pointer;font-size:.9rem}.wb-wizard-nav button:hover:not(:disabled){border-color:var(--accent, #3498db)}.wb-wizard-nav button:disabled{opacity:.4;cursor:not-allowed}.wb-wizard-nav .wb-next-btn{background:var(--accent, #3498db);color:#fff;border-color:var(--accent, #3498db)}.wb-overview{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:1.25rem}.wb-ov-level h3{margin:0 0 .6rem;font-size:1.05rem;color:var(--accent, #3498db)}.wb-ov-cat{border:1px solid var(--border-color, #e0e0e0);border-radius:8px;margin-bottom:.75rem;background:var(--bg-secondary, #f5f5f5)}.wb-ov-cat summary{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem;cursor:pointer;font-weight:600;font-size:.95rem}.wb-ov-cat summary::-webkit-details-marker{display:none}.wb-ov-cat[open] summary{border-bottom:1px solid var(--border-color, #e0e0e0)}.wb-ov-cat .wb-cat-intro{padding:.5rem 1rem 0}.wb-ov-cat .wb-focus-chips{padding:0 1rem}.wb-ov-question{padding:.75rem 1rem;border-top:1px dashed var(--border-color, #e0e0e0)}.wb-ov-question p{margin:0 0 .5rem;font-size:.9rem;line-height:1.45}.import-page{padding:1.5rem;max-width:900px;margin:0 auto}.import-page h2{margin-bottom:.25rem}.import-page-desc{margin-top:0;color:var(--text-secondary, #888);margin-bottom:1.5rem}.import-section{display:flex;flex-direction:column;gap:1rem}.import-row{display:flex;flex-wrap:wrap;gap:1.5rem}.import-field{display:flex;flex-direction:column;gap:.35rem;flex:1;min-width:220px}.import-field label{font-weight:600}.import-field select,.import-field input[type=text]{padding:.45rem .6rem;border-radius:6px;border:1px solid var(--border-color, #ccc);background:var(--bg-secondary, #f5f5f5);color:var(--text-primary, inherit)}.import-format-toggle{display:flex;gap:.25rem}.import-format-toggle button{padding:.45rem 1rem;border:1px solid var(--border-color, #ccc);border-radius:6px;background:var(--bg-secondary, #f5f5f5);color:var(--text-primary, inherit);cursor:pointer}.import-format-toggle button.active{background:var(--accent, #4f7cff);color:#fff;border-color:var(--accent, #4f7cff)}.import-checkbox{display:flex;align-items:center;gap:.5rem;font-weight:600}.import-help{margin:0;font-size:.85rem;color:var(--text-secondary, #888)}.import-toolbar{display:flex;justify-content:flex-end}.import-textarea{width:100%;min-height:320px;font-family:monospace;font-size:.85rem;padding:.75rem;border-radius:8px;border:1px solid var(--border-color, #ccc);background:var(--bg-secondary, #f6f8fa);color:var(--text-primary, inherit);resize:vertical;box-sizing:border-box}.import-message{padding:.6rem .9rem;border-radius:6px;background:var(--warning-light, rgba(255, 193, 7, .15));border:1px solid var(--warning, rgba(255, 193, 7, .4))}.import-result{padding:.6rem .9rem;border-radius:6px;background:var(--success-light, rgba(34, 197, 94, .12));border:1px solid var(--success, rgba(34, 197, 94, .4))}.import-result-title{margin:0;font-weight:600}.import-result-errors{margin:.5rem 0 0;padding-left:1.2rem;max-height:150px;overflow-y:auto}.import-actions{display:flex;justify-content:flex-end;margin-top:.5rem}.import-page .btn-primary,.import-page .btn-secondary{padding:.5rem 1.2rem;border-radius:6px;font-size:.9rem;cursor:pointer;border:1px solid transparent}.import-page .btn-primary{background:var(--primary, #4a90d9);color:#fff;border-color:var(--primary, #4a90d9)}.import-page .btn-primary:hover:not(:disabled){background:var(--primary-hover, #2980b9)}.import-page .btn-primary:disabled{opacity:.55;cursor:not-allowed}.import-page .btn-secondary{background:var(--bg-secondary, #f5f5f5);color:var(--text-primary, inherit);border-color:var(--border-color, #ccc)}.import-page .btn-secondary:hover:not(:disabled){background:var(--bg-hover, #e8e8e8)}.import-page .btn-secondary:disabled{opacity:.55;cursor:not-allowed}.mm-node{width:190px;background:var(--bg-primary);border:2px solid;border-radius:10px;box-shadow:0 2px 8px #0000001f;font-size:.8rem;position:relative;transition:box-shadow .15s}.mm-node--selected{box-shadow:0 0 0 2px var(--link-color, #4a9eff),0 4px 12px #0000002e}.mm-node-header{display:flex;align-items:center;gap:.35rem;padding:.3rem .5rem;border-radius:8px 8px 0 0;border-bottom:1px solid var(--border-color)}.mm-node-icon{width:1rem;height:1rem;font-size:.85rem;flex-shrink:0}.mm-node-type{font-size:.62rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mm-node-root{margin-left:auto;color:gold;font-size:.75rem}.mm-node-body{padding:.4rem .5rem;min-height:2rem}.mm-node-text{font-weight:600;white-space:normal;word-break:break-word;cursor:text}.mm-node-placeholder{font-weight:400;font-style:italic;color:var(--text-secondary);opacity:.45}.mm-node-image{display:block;max-width:100%;max-height:48px;object-fit:contain;object-position:left center;border-radius:6px;margin-bottom:.35rem}.mm-node-input{width:100%;border:1px solid var(--link-color, #4a9eff);border-radius:4px;padding:.15rem .3rem;font-size:.8rem;background:var(--bg-primary);color:var(--text-primary)}.mm-node-footer{display:flex;align-items:center;gap:.25rem;padding:.25rem .4rem;border-top:1px solid var(--border-color)}.mm-node-type-select{flex:1;min-width:0;font-size:.62rem;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);padding:.1rem .2rem}.mm-node-linkbtn,.mm-node-iconbtn,.mm-node-imgbtn,.mm-node-del{width:18px;height:18px;font-size:.62rem;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color);border-radius:50%;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;padding:0;line-height:1;flex-shrink:0}.mm-node-linkbtn:hover{border-color:var(--link-color, #4a9eff);color:var(--link-color, #4a9eff)}.mm-node-iconbtn:hover{border-color:#a855f7;color:#a855f7}.mm-node-imgbtn:hover{border-color:#14b8a6;color:#14b8a6}.mm-node-del:hover{border-color:#ef4444;color:#ef4444}.mm-handle{width:8px;height:8px;background:var(--border-color);border:1px solid var(--bg-primary)}.mm-edge-path--selected{stroke-width:3}.mm-edge-interaction,.mm-edge-badge{cursor:pointer}.mm-edge-badge rect{transition:fill .15s}.mm-edge-badge:hover rect{fill:var(--bg-secondary)}.mm-edge-label{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;height:100%;font-size:10px;pointer-events:none;white-space:nowrap}.mm-edge-label .mm-edge-label-name{flex-shrink:1;overflow:hidden;text-overflow:ellipsis}.mm-edge-label .mm-edge-label-icon,.mm-edge-label .entity-image-icon.mm-edge-label-icon{width:12px;height:12px;flex-shrink:0}.mm-edge-label .mm-edge-label-icon.ui-svg-icon{position:static}.mm-edge-toolbar{display:flex;align-items:center;gap:4px;padding:2px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 2px 8px #0000002e;white-space:nowrap}.mm-edge-type-select{font-size:11px;max-width:150px;border:1px solid var(--border-color);border-radius:4px;background:var(--bg-secondary);color:var(--text-primary);padding:2px 4px}.mm-edge-del{width:18px;height:18px;font-size:11px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color);border-radius:50%;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;padding:0;line-height:1;flex-shrink:0}.mm-edge-del:hover{border-color:#ef4444;color:#ef4444}.mm-link-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.mm-link-modal{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;width:420px;max-width:92vw;max-height:85vh;overflow:visible;padding:.9rem 1rem 1.2rem;box-shadow:0 8px 28px #0000004d}.mm-link-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}.mm-link-title{flex:1;font-size:.9rem;color:var(--text-primary)}.mm-link-close{width:26px;height:26px;border:1px solid var(--border-color);border-radius:50%;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:0}.mm-link-close:hover{border-color:#ef4444;color:#ef4444}.mm-link-tabs{display:flex;gap:.35rem;margin-bottom:.75rem}.mm-link-tab{flex:1;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-secondary);padding:.4rem .5rem;font-size:.8rem;cursor:pointer}.mm-link-tab--active{border-color:var(--link-color, #4a9eff);color:var(--link-color, #4a9eff);background:color-mix(in srgb,var(--link-color, #4a9eff) 12%,transparent)}.mm-link-pick{display:flex;flex-direction:column;gap:.6rem}.mm-link-type-filter{border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);padding:.4rem .5rem;font-size:.8rem}.mm-link-create{display:flex;flex-direction:column;gap:.6rem}.entity-modal-form-embedded{border-top:1px solid var(--border-color);padding-top:.6rem;gap:.6rem;display:flex;flex-direction:column;max-height:52vh;overflow-y:auto}.mm-editor{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.mm-editor-header{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--border-color);background:var(--bg-primary);flex-wrap:wrap}.mm-back-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:1rem}.mm-back-btn:hover{border-color:var(--link-color, #4a9eff)}.mm-title-input{flex:1;min-width:160px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);padding:.35rem .6rem;font-size:1rem;font-weight:600}.mm-save-status{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.mm-save-status--saving{color:var(--text-secondary)}.mm-save-status--saved{color:#22c55e}.mm-save-status--error{color:#ef4444}.mm-editor-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.mm-stats{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.mm-action-btn{border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);padding:.35rem .6rem;font-size:.8rem;cursor:pointer;white-space:nowrap}.mm-action-btn:hover{border-color:var(--link-color, #4a9eff);color:var(--link-color, #4a9eff)}.mm-minimap{background:var(--bg-primary)}.mm-hint{position:absolute;bottom:12px;left:12px;z-index:5;font-size:.7rem;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:.25rem .5rem;pointer-events:none;opacity:.85}.mm-loading,.mm-error{padding:2rem;text-align:center;color:var(--text-secondary)}.mm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.mm-modal{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;padding:1.25rem 1.5rem;width:min(480px,90vw);box-shadow:0 8px 30px #00000059}.mm-modal h3{margin:0 0 .5rem}.mm-modal-desc{margin:0 0 1rem;color:var(--text-secondary);font-size:.9rem}.mm-mermaid-textarea{width:100%;min-height:260px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:6px;padding:.5rem;box-sizing:border-box;white-space:pre}.mm-modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.mm-btn{padding:.4rem .9rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer}.mm-btn:hover:not(:disabled){border-color:var(--link-color, #4a9eff)}.mm-btn:disabled{opacity:.6;cursor:not-allowed}.mm-btn-primary{background:var(--link-color, #4a9eff);border-color:var(--link-color, #4a9eff);color:#fff}.mm-materialize-success{color:var(--success-color, #4caf50);font-weight:600;margin-bottom:.5rem}.mm-materialize-error{color:var(--danger-color, #e5484d)}.mm-materialize-skipped{margin:0;padding-left:1.2rem;font-size:.85rem;color:var(--text-secondary);max-height:140px;overflow-y:auto}*,*:before,*:after{box-sizing:border-box}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--text-primary: #213547;--text-secondary: #666666;--text-tertiary: #888888;--text-muted: #999999;--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-card: #ffffff;--bg-hover: #e8e8e8;--border-color: #e0e0e0;--card-bg: var(--bg-card);--card-bg-hover: var(--bg-hover);--input-bg: var(--bg-primary);--hover-bg: var(--bg-hover);--badge-bg: var(--bg-hover);--text: var(--text-primary);--border: var(--border-color);--primary-color: var(--primary);--nav-height: 56px;--nav-bg: #2c3e50;--nav-text: #ecf0f1;--nav-text-muted: #95a5a6;--nav-input-bg: #34495e;--nav-accent: #3498db;--nav-accent-hover: #2980b9;--nav-divider: #7f8c8d;--nav-icon-color: #e07020;--icon-color: var(--text-primary);--settings-icon-color: var(--text-secondary);--primary: #4a90d9;--primary-rgb: 74, 144, 217;--primary-light: #e3f2fd;--primary-hover: #357abd;--accent: #3498db;--accent-hover: #2980b9;--danger: #dc2626;--danger-light: #fee2e2;--success: #22c55e;--success-light: #dcfce7;--warning: #f59e0b;--warning-light: #fef3c7;--danger-hover: #b91c1c;--success-hover: #16a34a;--primary-text: #1565c0;--success-text: #166534;--danger-text: #b91c1c;--warning-text: #92400e;--bg-elevated: #f0f0f0;--link-color: #3498db;--link-hover: #2980b9;--error-color: #e74c3c;color:var(--text-primary);background-color:var(--bg-primary)}:root.dark{--text-primary: rgba(255, 255, 255, .87);--text-secondary: #aaaaaa;--text-tertiary: #888888;--text-muted: #777777;--bg-primary: #1a1a1a;--bg-secondary: #2a2a2a;--bg-card: #242424;--bg-hover: #333333;--border-color: #404040;--nav-bg: #1a1a2e;--nav-text: rgba(255, 255, 255, .87);--nav-text-muted: #777777;--nav-input-bg: #2a2a3e;--nav-accent: #5dade2;--nav-accent-hover: #7fc4e8;--nav-divider: #555555;--nav-icon-color: #f09040;--primary: #4a90d9;--primary-rgb: 74, 144, 217;--primary-light: #1a3a5c;--primary-hover: #5a9fe0;--accent: #5dade2;--accent-hover: #7fc4e8;--danger: #ef4444;--danger-light: #3d1a1a;--success: #22c55e;--success-light: #1a3d1a;--warning: #f59e0b;--warning-light: #3d3d1a;--danger-hover: #dc2626;--success-hover: #16a34a;--primary-text: #90caf9;--success-text: #86efac;--danger-text: #fca5a5;--warning-text: #fcd34d;--bg-elevated: #3a3a3a;--link-color: #5dade2;--link-hover: #7fc4e8;--error-color: #ef4444;color:var(--text-primary);background-color:var(--bg-primary)}:root.colorblind{--danger: #e67e22;--danger-light: #fdebd0;--success: #2980b9;--success-light: #d4e6f1;--warning: #8e44ad;--warning-light: #e8daef;--danger-hover: #b35400;--success-hover: #1f6d94;--danger-text: #7a3c00;--success-text: #14507f;--warning-text: #5b2a86}:root.dark.colorblind{--danger: #f39c12;--danger-light: #3d2a1a;--success: #5dade2;--success-light: #1a2a3d;--warning: #bb8fce;--warning-light: #2a1a3d;--danger-hover: #fb8c00;--success-hover: #85c1e9;--danger-text: #fdebd0;--success-text: #d4e6f1;--warning-text: #e8daef;--primary-text: #90caf9;--bg-elevated: #3a3a3a}html,body{height:100%;width:100%;margin:0;padding:0}#root{min-height:100vh;min-height:100dvh;width:100%;margin:0;padding:0}a{font-weight:500;color:var(--link-color, #646cff);text-decoration:inherit}a:hover{color:var(--link-hover, #535bf2)}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--bg-secondary, #1a1a1a);cursor:pointer;transition:border-color .25s;color:var(--text-primary)}button:hover{border-color:var(--link-color, #646cff)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.error-text{color:var(--error-color, #e74c3c)}.hint-text{color:var(--text-secondary);font-size:.85rem}.full-size{height:100%;width:100%}.cursor-grab{cursor:grab}.cursor-grab:active{cursor:grabbing}.input-narrow{width:60px}nav{color:#01b1a2}.error-boundary{max-width:500px;margin:100px auto;padding:2rem;text-align:center;background:var(--bg-secondary, #f5f5f5);border-radius:8px}.error-boundary h1{font-size:1.5rem;margin-bottom:1rem}.error-boundary button{margin-top:1.5rem;padding:.75rem 1.5rem;background:var(--primary, #4a90d9);color:#fff;border:none;border-radius:4px;cursor:pointer}.auth-container{max-width:400px;margin:100px auto;padding:2rem;background-color:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 8px #0000001a}.auth-container--center{text-align:center}.auth-title{text-align:center;margin-bottom:2rem;font-size:1.5rem}.auth-desc{text-align:center;margin-bottom:2rem;color:var(--text-secondary)}.auth-success-icon{color:var(--success, #22c55e);margin-bottom:1rem}.auth-error{padding:.75rem;background-color:var(--danger-light, #fee2e2);color:var(--danger, #dc2626);border-radius:4px;margin-bottom:1rem}.auth-notice{padding:.75rem;background-color:var(--success-light, #dcfce7);color:var(--success, #16a34a);border-radius:4px;margin-bottom:1rem}.auth-verify-info{padding:.75rem;border:1px solid var(--border-color);border-radius:4px;margin-bottom:1rem}.auth-field{margin-bottom:1rem}.auth-field label{display:block;margin-bottom:.5rem}.auth-field--last{margin-bottom:1.5rem}.auth-input{width:100%;padding:.5rem;border-radius:4px;border:1px solid var(--border-color);box-sizing:border-box}.auth-hint{color:var(--text-secondary);font-size:.85rem}.auth-button{width:100%;padding:.75rem;background-color:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.auth-button:disabled{opacity:.7;cursor:not-allowed}.auth-link-row{text-align:center;margin-top:1rem}.auth-link-row--bottom{margin-top:1.5rem}.auth-link-btn{background:none;border:none;color:var(--primary);cursor:pointer;text-decoration:underline;padding:0;font-size:inherit}.auth-page{--auth-accent: #2e8397;--auth-accent-hover: #266d7e;min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:4rem;padding:3rem 2rem;background:radial-gradient(circle at 85% 15%,var(--primary-light) 0%,transparent 55%),var(--bg-primary)}.auth-page .auth-container{margin:0 auto 0 10%;width:100%;max-width:400px;padding:0;background-color:transparent;box-shadow:none}.auth-page .auth-button{background-color:var(--auth-accent)}.auth-page .auth-button:hover:not(:disabled){background-color:var(--auth-accent-hover)}.auth-page .auth-link-btn{color:var(--auth-accent)}.auth-page .auth-link-btn:hover{color:var(--auth-accent-hover)}.auth-brand{display:flex;flex-direction:column;align-items:center;text-align:center}.auth-logo{width:auto;max-width:min(100%,792px);height:auto;object-fit:contain}@media (max-width: 820px){.auth-page{grid-template-columns:minmax(0,400px);justify-content:center;gap:2rem;padding:2rem 1rem}.auth-page .auth-container{margin:0 auto}.auth-logo{max-width:240px;margin:0 auto}}.toast-stack{position:fixed;top:1rem;right:1rem;z-index:2000;display:flex;flex-direction:column;gap:.5rem;max-width:min(28rem,calc(100vw - 2rem));pointer-events:none}.toast{display:flex;align-items:flex-start;gap:.5rem;padding:.625rem .75rem;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color);border-left-width:4px;border-radius:6px;box-shadow:0 4px 14px #0000002e;pointer-events:auto}.toast--error{border-color:var(--danger)}.toast--success{border-color:var(--success)}.toast--info{border-color:var(--accent)}.toast__icon{flex:none;width:1rem;height:1rem;margin-top:.15rem}.toast--error .toast__icon{color:var(--danger)}.toast--success .toast__icon{color:var(--success)}.toast--info .toast__icon{color:var(--accent)}.toast__msg{flex:1;font-size:.875rem;line-height:1.4;word-break:break-word}.toast__close{display:flex;align-items:center;padding:0;border:none;background:none;color:var(--text-tertiary);cursor:pointer}.toast__close:hover,.toast__close:focus-visible{color:var(--text-primary)}.toast__close-icon{width:1rem;height:1rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-primary, white);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 20px #00000026;min-width:300px;max-width:400px;width:90%;padding:1.5rem}.modal-header{padding:1rem;border-bottom:1px solid var(--border-color, #eee)}.modal-header h3{margin:0;color:var(--danger, #e74c3c)}.modal-body{padding:1.5rem}
