:root{color:#1c2230;background:#f4f6fb;font-family:system-ui,Segoe UI,Roboto,sans-serif;line-height:1.5}body{min-height:100vh;margin:0}h1,h2{font-weight:600}p{margin:0}:root{--accent:#4f7cff;--accent-d:#3a5fd0;--bg:#f4f6fb;--panel:#fff;--text:#1c2230;--muted:#7a8499;--err:#c0392b}*{box-sizing:border-box}#root{width:100%;min-height:100vh}.auth-view{text-align:center;max-width:420px;margin:8vh auto}.auth-view h1{margin-bottom:4px}.subtitle{color:var(--muted);margin-top:0}.auth-card{background:var(--panel);border-radius:12px;flex-direction:column;gap:12px;margin-top:24px;padding:24px;display:flex;box-shadow:0 4px 20px #0000000f}.auth-tabs{gap:8px;display:flex}.auth-tabs button{cursor:pointer;background:#eef1f7;border:none;border-radius:8px;flex:1;padding:8px}.auth-tabs button.active{background:var(--accent);color:#fff}.auth-err{color:var(--err);font-size:13px}input{border:1px solid #d4dae6;border-radius:8px;padding:10px 12px;font-size:14px}button{cursor:pointer;background:#fff;border:1px solid #d4dae6;border-radius:8px;padding:8px 14px;font-size:14px}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:hover{background:var(--accent-d)}button.big{width:100%;padding:14px;font-size:16px}button.link{color:var(--accent);background:0 0;border:none}.projects-view{max-width:640px;margin:6vh auto}.proj-header{justify-content:space-between;align-items:center;display:flex}.proj-create{gap:8px;margin:12px 0;display:flex}.proj-create input{flex:1}.proj-list{padding:0;list-style:none}.proj-list li{margin-bottom:8px}.proj-item{text-align:left;background:var(--panel);width:100%;padding:14px}.proj-list .empty{color:var(--muted)}.draw-view{flex-direction:column;height:100vh;display:flex}.draw-header{background:var(--panel);border-bottom:1px solid #e4e8f0;align-items:center;gap:16px;padding:10px 16px;display:flex}.draw-header h2{flex:none;margin:0}.status-pills{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.pill{color:var(--muted);background:#eef1f7;border-radius:999px;padding:4px 10px;font-size:12px}.pill.on{color:#1f8a4c;background:#e3f5e8}.pill.gated{color:#b07a00;background:#fff2d6}.pill.busy{color:var(--accent-d);background:#e6ecff}.pill.clarify{color:var(--err);background:#ffe3e3}.draw-body{flex:1;min-height:0;display:flex}.canvas-wrap{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:16px;display:flex;position:relative;overflow:auto}.canvas-svg{max-width:100%;max-height:100%}.plan-banner{background:#eef3ff;border:1px solid #cfdcff;border-radius:8px;max-width:600px;margin-top:12px;padding:8px 12px;font-size:13px}.partial-banner{color:var(--muted);margin-top:8px;font-style:italic}.side-panel{background:var(--panel);border-left:1px solid #e4e8f0;flex-direction:column;gap:12px;width:320px;padding:12px;display:flex}.controls{flex-direction:column;gap:8px;display:flex}.text-fallback{gap:6px;display:flex}.text-fallback input{flex:1}.log{border-top:1px solid #eee;flex-direction:column;flex:1;gap:6px;padding-top:8px;font-size:13px;display:flex;overflow-y:auto}.log-line{gap:6px;display:flex}.log-tag{color:var(--muted);flex:0 0 38px;font-size:11px}.log-line.error .log-tag,.log-line.error span{color:var(--err)}.log-line.plan span:last-child{color:var(--accent-d)}.log-line.user span:last-child{font-weight:600}@keyframes elPop{0%{opacity:.2;filter:drop-shadow(0 0 8px var(--accent))}to{opacity:1;filter:none}}.el-pop{animation:.6s ease-out elPop}
