:root{--bg: #eef1ef;--panel: #ffffff;--ink: #1c2420;--muted: #6a756f;--line: #d7ddd9;--accent: #27624b;--accent-soft: #e5f0ea;--danger: #9b3b2e;--warn: #8a6a2f;--radius: 14px;--font: "Manrope", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font);color:var(--ink);background:radial-gradient(circle at 12% -10%,#d9ebe1 0%,transparent 42%),radial-gradient(circle at 90% 0%,#e7ebf0 0%,transparent 36%),var(--bg)}button,input,textarea,select{font:inherit}a{color:var(--accent)}.gate{min-height:100vh;display:grid;place-items:center;padding:24px}.gate-card{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:32px;box-shadow:0 18px 40px #1c24200f}.gate-card h1{margin:8px 0 12px;font-size:28px;letter-spacing:-.03em}.brand{margin:0;color:var(--accent);font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:lowercase}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:10px 16px;cursor:pointer;text-decoration:none}.btn:hover{border-color:#b7c2bb}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{background:transparent}.btn.danger{color:var(--danger);border-color:#e5c4be}.btn.small{padding:7px 12px;font-size:14px}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;padding:20px 24px 12px}.topbar h1{margin:4px 0 0;font-size:28px;letter-spacing:-.03em}.topbar-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.search{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:8px 12px;min-width:220px}.search input{border:0;outline:0;width:100%;background:transparent}.user-chip{font-size:13px;color:var(--muted)}.banner{margin:0 24px 8px;padding:10px 14px;border-radius:10px}.banner.error{background:#f8e8e5;color:var(--danger)}.workspace{flex:1;display:grid;grid-template-columns:minmax(320px,420px) 1fr;gap:16px;padding:8px 24px 24px;min-height:0}.tree-panel,.detail-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-height:70vh;overflow:auto}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 8px;position:sticky;top:0;background:var(--panel);z-index:1}.panel-head h2{margin:0;font-size:16px}.tree{list-style:none;margin:0;padding:0 8px 16px}.tree-empty{padding:16px}.tree-item{display:grid;grid-template-columns:1fr auto;gap:4px;align-items:center;margin:2px 0;padding-left:calc(var(--depth) * 16px)}.tree-main{display:flex;align-items:center;gap:4px;width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:10px;padding:8px;cursor:pointer;color:inherit}.tree-item.selected .tree-main{background:var(--accent-soft);border-color:#c5d9ce}.tree-item.done .tree-title{text-decoration:line-through;color:var(--muted)}.tree-item.archived .tree-title{color:var(--muted);font-style:italic}.tree-title{flex:1;font-size:14px;line-height:1.35}.count{font-size:11px;color:var(--muted);background:#f1f4f2;border-radius:999px;padding:2px 7px}.twist{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);flex:0 0 auto}.twist.spacer{visibility:hidden}.tree-rank{display:flex;gap:2px;opacity:0}.tree-item:hover .tree-rank,.tree-item.selected .tree-rank{opacity:1}.icon-btn{border:0;background:transparent;color:var(--muted);width:26px;height:26px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{background:#f1f4f2;color:var(--ink)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.empty-detail,.detail{padding:24px}.empty-detail h2,.detail h3{margin-top:0}.detail-head{display:flex;gap:12px;align-items:stretch;margin-bottom:16px}.title-input{flex:1;font-size:24px;font-weight:700;letter-spacing:-.02em;border:1px solid transparent;border-radius:10px;padding:8px 10px;background:#f7f9f8}.title-input:focus,.detail-form textarea:focus,.detail-form input:focus,.detail-form select:focus,.link-form input:focus,.link-form select:focus{outline:2px solid #b7d2c4;border-color:transparent}.detail-form select,.link-form select{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}.block{display:block;margin-bottom:16px;font-size:13px;color:var(--muted)}.block textarea{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:12px;padding:12px;resize:vertical;color:var(--ink)}.people-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.person-fields{margin:0;border:1px solid var(--line);border-radius:12px;padding:12px}.person-fields legend{padding:0 6px;font-size:13px;font-weight:600}.person-fields label{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.person-fields input{display:block;width:100%;margin-top:4px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}.detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.links-section,.children-preview{border-top:1px solid var(--line);padding-top:18px}.links-list,.children-preview ul{list-style:none;margin:0 0 14px;padding:0}.links-list li,.children-preview li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #eef1ef}.links-list a{flex:1;display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:var(--ink)}.links-list a:hover{color:var(--accent)}.kind{font-size:11px;font-weight:600;border-radius:999px;padding:3px 8px;background:#f1f4f2;color:var(--muted);white-space:nowrap}.kind-result{background:#e5f0ea;color:var(--accent)}.kind-example{background:#eef0f7;color:#3d4f7a}.kind-publication{background:#f7f0e5;color:var(--warn)}.link-form{display:grid;grid-template-columns:140px 1fr 1.2fr auto;gap:8px}.link-form input{border:1px solid var(--line);border-radius:10px;padding:8px 10px}.children-preview li{justify-content:space-between}@media(max-width:900px){.workspace{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:stretch}.people-grid,.link-form{grid-template-columns:1fr}.tree-rank{opacity:1}}
