:root{--bg:#f4f5f7;--panel:#ffffff;--border:#e2e4e9;--text:#1c1e26;--muted:#6b7080;--accent:#4a5df9;--accent-dark:#3546d3;--danger:#d64545;--ok:#1e9e5a;--radius:10px}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}a{color:var(--accent);text-decoration:none}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:56px;background:var(--panel);border-bottom:1px solid var(--border)}.topbar .brand{font-weight:700;font-size:17px}.topbar .brand span{color:var(--accent)}.topbar nav{display:flex;gap:18px;align-items:center}.topbar nav a{color:var(--muted);font-weight:500}.topbar nav a:hover{color:var(--text)}.workbench{display:grid;grid-template-columns:minmax(380px,5fr) 7fr;grid-gap:16px;gap:16px;padding:16px 20px;height:calc(100vh - 56px)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;min-height:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);font-weight:600}.panel-head .sub{color:var(--muted);font-weight:400;font-size:13px}.chat-messages{flex:1 1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.msg{max-width:92%;padding:10px 14px;border-radius:var(--radius);white-space:pre-wrap;word-break:break-word}.msg.user{align-self:flex-end;background:var(--accent);color:#fff}.msg.assistant{align-self:flex-start;background:#f0f1f5}.msg.event{align-self:flex-start;color:var(--muted);font-size:12.5px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.msg.error{align-self:stretch;background:#fdecec;color:var(--danger);font-size:13.5px}.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border)}.chat-input textarea{flex:1 1;resize:none;border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;font:inherit;min-height:44px;max-height:140px}.chat-input textarea:focus{outline:2px solid var(--accent);border-color:transparent}.right-col{display:flex;flex-direction:column;gap:16px;min-height:0}.preview-frame{flex:1 1;border:0;width:100%;background:#fff;border-radius:0 0 var(--radius) var(--radius)}.publish-panel{flex:0 0 auto;max-height:42%;overflow-y:auto}.publish-body{padding:12px 16px;display:flex;flex-direction:column;gap:10px}.file-list{margin:0;padding:0;list-style:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.file-list li{padding:2px 0;color:var(--muted)}.file-list .st{display:inline-block;width:18px;font-weight:700}.release-list{margin:0;padding:0;list-style:none;font-size:13px}.release-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid var(--border)}.badge{background:var(--ok);color:#fff;border-radius:999px;font-size:11px;padding:2px 8px;font-weight:600}.btn,button{border:0;border-radius:var(--radius);background:var(--accent);color:#fff;font:inherit;font-weight:600;padding:10px 16px;cursor:pointer}.btn:hover,button:hover{background:var(--accent-dark)}button:disabled{opacity:.5;cursor:default}button.secondary{background:#eef0f4;color:var(--text)}button.secondary:hover{background:#e2e5ec}button.small{padding:5px 10px;font-size:13px}input[type=email],input[type=password],input[type=text],select{border:1px solid var(--border);border-radius:var(--radius);padding:9px 12px;font:inherit;background:#fff}label{font-size:13px;font-weight:600;color:var(--muted)}.field{display:flex;flex-direction:column;gap:4px}.hint{color:var(--muted);font-size:13px}.error-text{color:var(--danger);font-size:13.5px}.ok-text{color:var(--ok);font-size:13.5px}.card-page{display:flex;justify-content:center;padding:48px 20px}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:28px;width:100%;max-width:520px;display:flex;flex-direction:column;gap:16px}.card h1{margin:0;font-size:20px}.card h2{margin:12px 0 0;font-size:16px}