:root{--ink:#18232d;--muted:#62717d;--line:#d9e1e7;--brand:#126c72;--bg:#f4f7f8;--panel:#fff;--shadow:0 8px 30px rgba(20,38,52,.08)}*{box-sizing:border-box}body{margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg)}header{height:58px;background:#102a34;color:white;display:flex;align-items:center;padding:0 24px;gap:20px}header .brand{font-weight:800;color:white;text-decoration:none;margin-right:auto;font-size:18px}header form{margin:0}.link{border:0;background:none;color:#d8ebee;padding:0}main{padding:28px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:var(--shadow)}.auth,.form-card{max-width:460px;margin:7vh auto}h1{margin:0 0 6px;font-size:28px}h2{font-size:18px}p{color:var(--muted)}input,textarea,select{width:100%;border:1px solid #b9c6ce;border-radius:7px;padding:10px;font:inherit;background:white}button,.button{display:inline-block;border:1px solid #a9bac3;border-radius:7px;padding:9px 13px;background:white;color:var(--ink);font-weight:650;cursor:pointer;text-decoration:none}.primary{background:var(--brand);border-color:var(--brand);color:white}.page-heading,.editor-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.project{text-decoration:none;color:inherit}.project:hover{border-color:#79aeb2;transform:translateY(-1px)}.project h2{margin-bottom:4px}.status{font-size:12px;text-transform:uppercase;color:#27636b}.workspace{display:grid;grid-template-columns:230px minmax(500px,1fr) 300px;height:calc(100vh - 160px);min-height:580px;background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.tools,.inspector{padding:18px;overflow:auto;background:#fff}.tools{border-right:1px solid var(--line)}.inspector{border-left:1px solid var(--line)}.tools button{width:100%;margin-bottom:8px}.tools hr{border:0;border-top:1px solid var(--line);margin:16px 0}.legend{display:grid;grid-template-columns:14px 1fr;gap:9px;align-items:center;color:var(--muted);font-size:13px}.legend i{width:12px;height:12px;border-radius:3px}.problem{background:#dbeafe}.symptom{background:#ede9fe}.possible{background:#fef3c7}.actual{background:#fee2e2}.evidence{background:#dcfce7}.action{background:#cffafe}#canvasWrap{position:relative;overflow:auto;background-color:#f8fafb;background-image:radial-gradient(#cbd5dc 1px,transparent 1px);background-size:22px 22px}#canvas{position:relative;width:1800px;height:1100px}#links{position:absolute;width:1800px;height:1100px;pointer-events:none;z-index:0}.node{position:absolute;width:180px;min-height:74px;padding:11px;border:2px solid #9db0ba;border-radius:8px;box-shadow:0 4px 12px rgba(20,38,52,.11);cursor:grab;z-index:1;background:#fff;user-select:none}.node.selected{outline:3px solid rgba(18,108,114,.25);border-color:var(--brand)}.node b{display:block;font-size:14px}.node small{color:var(--muted)}.node.problem{background:#dbeafe}.node.symptom{background:#ede9fe}.node.possible{background:#fef3c7}.node.actual{background:#fee2e2}.node.evidence{background:#dcfce7}.node.action{background:#cffafe}.presence{display:flex;gap:7px;align-items:center;color:var(--muted)}#syncDot{width:9px;height:9px;background:#f59e0b;border-radius:50%}#syncDot.ok{background:#22c55e}.inspector label{font-size:12px;font-weight:700;display:block;margin:12px 0 4px}.inspector textarea{min-height:80px}.inspector .row{display:flex;gap:7px;margin-top:14px}.inspector .danger{color:#b42318;margin-left:auto}.comment{border-top:1px solid var(--line);padding:8px 0;font-size:13px}.comment p{margin:3px 0;color:var(--ink)}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#132c36;color:white;padding:10px 16px;border-radius:8px;display:none;z-index:20}.notice{padding:9px;background:#eef5f5;border-radius:7px}@media(max-width:1000px){main{padding:14px}.workspace{grid-template-columns:190px 1fr}.inspector{position:fixed;right:0;top:58px;bottom:0;width:310px;z-index:10;box-shadow:var(--shadow)}.inspector.empty{display:none}}

