:root{--bg:#0b0f17;--panel:#131a26;--panel-2:#0f1521;--border:#223047;--text:#e7edf5;--muted:#8aa0bd;--accent:#4f9dff;--accent-strong:#2f7ff0;--danger:#ff6b6b;--ok:#46d38a}*{box-sizing:border-box}body,html{padding:0;margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.page{min-height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.topbar{justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);background:var(--panel-2);position:-webkit-sticky;position:sticky;top:0}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px;font-weight:650;font-size:15px}.dot{width:9px;height:9px;border-radius:50%;background:var(--muted);transition:background .2s ease}.dot.saving{background:var(--accent)}.dot.saved{background:var(--ok)}.dot.error{background:var(--danger)}.status{font-size:13px;color:var(--muted);min-width:90px;text-align:right}.editor-wrap{flex:1 1;display:flex;padding:14px 16px 20px}textarea.editor{flex:1 1;width:100%;resize:none;border:1px solid var(--border);border-radius:14px;background:var(--panel);color:var(--text);font-size:16px;line-height:1.5;padding:16px;outline:none;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}textarea.editor:focus{border-color:var(--accent)}.toolbar{display:flex;gap:10px;padding:0 16px 18px}button{font:inherit;cursor:pointer;border-radius:12px;border:1px solid var(--border);background:var(--panel);color:var(--text);padding:12px 16px;font-weight:600;transition:background .15s ease,border-color .15s ease,opacity .15s ease}button:hover{border-color:var(--accent)}button:active{opacity:.85}button.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:white}button.grow{flex:1 1}button.ghost{background:transparent}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:28px 24px}.card h1{margin:0 0 6px;font-size:20px}.card p{margin:0 0 22px;color:var(--muted);font-size:14px}input.field{width:100%;font-size:16px;padding:13px 14px;border-radius:12px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);outline:none;margin-bottom:14px}input.field:focus{border-color:var(--accent)}.error{color:var(--danger);font-size:13px;margin:0 0 14px;min-height:16px}