.person-graph-panel svg{display:block;width:100%;max-width:460px;height:auto;margin:0 auto}.person-graph-panel a{cursor:pointer}.persons-panel{margin-bottom:1.5rem}.persons-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.persons-header h2{font-size:0.9rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:0.05rem}.persons-header-right{display:flex;align-items:center;gap:1rem}.persons-count{font-size:0.8rem;color:var(--text-muted)}.persons-back{font-size:0.85rem;color:var(--text-dim);text-decoration:none;padding:0.3rem 0.8rem;border:1px solid var(--border);border-radius:6px;transition:all 0.2s}.persons-back:hover{background:var(--primary-dark);border-color:var(--primary);color:var(--primary-very-light)}.persons-empty{color:var(--text-muted);font-style:italic;text-align:center;padding:2rem}.persons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1rem}.person-tile{aspect-ratio:1;background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.5rem;padding:1rem;transition:all 0.2s;cursor:default}.person-tile:hover{border-color:var(--primary-dark);background:var(--bg-elevated)}.person-avatar{width:3rem;height:3rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:bold;color:white;text-shadow:0 1px 2px rgba(0,0,0,0.3);flex-shrink:0}.person-name{font-size:0.9rem;font-weight:600;color:var(--text);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.person-stat{font-size:0.7rem;color:var(--text-muted)}.person-tile-link{text-decoration:none;color:inherit}.person-tile-active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-dark)}.person-detail{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:1.5rem;margin-bottom:1.5rem}.person-detail-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.2rem}.person-detail-avatar{width:4rem;height:4rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:bold;color:white;text-shadow:0 1px 2px rgba(0,0,0,0.3);flex-shrink:0}.person-detail-info{flex:1}.person-detail-info h2{font-size:1.2rem;margin-bottom:0.2rem}.person-detail-stat{font-size:0.85rem;color:var(--text-dim)}.person-detail-empty{color:var(--text-muted);font-style:italic;text-align:center;padding:1rem}.person-detail-section-title{font-size:0.8rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:0.05rem;margin-bottom:0.8rem}.connections-list{display:flex;flex-direction:column;gap:0.5rem}.connection-item{display:flex;align-items:center;gap:0.8rem;padding:0.6rem 0.8rem;border:1px solid var(--border);border-radius:8px;text-decoration:none;color:inherit;transition:all 0.2s}.connection-item:hover{border-color:var(--primary-dark);background:var(--bg-elevated)}.connection-avatar{width:2.2rem;height:2.2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:bold;color:white;text-shadow:0 1px 2px rgba(0,0,0,0.3);flex-shrink:0}.connection-info{display:flex;flex-direction:column}.connection-name{font-size:0.9rem;font-weight:600}.connection-state{font-size:0.75rem;color:var(--primary);font-weight:500}.connection-state-empty{font-size:0.75rem;color:var(--text-muted)}.person-add-form-wrapper{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.person-add-form{display:flex;gap:0.5rem;align-items:center}.person-add-input{background:var(--bg-input);color:var(--text);border:1px solid var(--border);padding:0.5rem 0.8rem;border-radius:6px;font-family:inherit;font-size:0.9rem;outline:none;min-width:0;flex:0 0 auto;width:10rem}.person-add-description{flex:1 1 auto;width:auto}.person-add-input:focus{border-color:var(--primary-dark)}.person-add-button{background:var(--primary-dark);color:var(--primary-very-light);border:1px solid var(--primary);width:2.2rem;height:2.2rem;border-radius:6px;cursor:pointer;font-size:1.2rem;font-weight:bold;display:flex;align-items:center;justify-content:center;transition:all 0.2s;flex-shrink:0}.person-add-button:hover{background:var(--primary);color:var(--bg)}.person-detail-actions{display:flex;align-items:center;gap:0.5rem;flex-shrink:0}.person-remove-form{margin:0}.person-remove-button{background:none;border:1px solid transparent;border-radius:6px;cursor:pointer;font-size:1rem;padding:0.2rem 0.4rem;opacity:0.5;transition:all 0.2s}.person-remove-button:hover{opacity:1;border-color:#ef4444}.person-detail-description{font-size:0.85rem;color:var(--text-dim);margin-bottom:0.2rem}@media (max-width:480px){.person-add-form{flex-wrap:wrap}.person-add-input{flex:1}.person-add-description{flex-basis:100%;order:3}}.person-suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:0.4rem;margin-top:0.8rem}.person-suggestions-label{font-size:0.8rem;color:var(--text-dim)}.person-suggestion-form{margin:0}.person-suggestion{padding:0.2rem 0.7rem;border-radius:999px;border:1px dashed var(--border-accent);background:transparent;color:var(--text);font-family:inherit;font-size:0.85rem;cursor:pointer}.person-suggestion:hover{background:var(--bg-elevated)}.persons-unknown{margin-top:1rem}.persons-unknown summary{cursor:pointer;color:var(--text-dim);font-size:0.85rem;margin-bottom:0.6rem}.persons-unknown .person-tile{opacity:0.55}.person-known-form{margin:0.8rem 0;font-size:0.85rem;color:var(--text-dim)}.person-known-form select{background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:0.2rem 0.4rem;font-family:inherit}.story-map-panel svg{display:block;width:100%;height:auto}.connection-state-emoji{font-size:1.4rem;line-height:1.2}