:root{--bg:#f5f6fb;--panel:#fff;--ink:#1d2130;--muted:#6b7183;--line:#e4e7ef;--accent:#4f46e5;--accent-ink:#fff;--accent-soft:#eef0ff;--ok:#15803d;--ok-soft:#e7f6ec;--warn:#b45309;--warn-soft:#fff4e5;--danger:#c0392b;--radius:12px;--shadow:0 1px 2px #1018280d, 0 8px 24px #1018280f;color:var(--ink);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}*{box-sizing:border-box}body{margin:0}h1,h2,h3{margin:0 0 .5rem;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.2rem}h3{font-size:1rem}p{margin:0 0 .75rem}a{color:var(--accent)}code,pre,textarea.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}button,.button{font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;align-items:center;gap:.35rem;padding:.55rem .95rem;text-decoration:none;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--accent);color:var(--accent-ink)}.primary:hover:not(:disabled){background:#4338ca}.ghost{color:var(--ink);border-color:var(--line);background:0 0}.ghost:hover:not(:disabled){background:#f0f2f8}.ghost.on{background:var(--accent-soft);color:var(--accent);border-color:#c7caff}button.small{padding:.35rem .65rem}.wide{justify-content:center;width:100%}input,textarea,select{font:inherit;color:inherit;border:1px solid var(--line);background:#fff;border-radius:10px;outline:none;width:100%;padding:.6rem .75rem}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}label{gap:.3rem;font-size:.9rem;font-weight:500;display:grid}label.check{align-items:center;gap:.5rem;font-weight:400;display:flex}label.check input{width:auto}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.error{color:var(--danger);font-size:.9rem}.ok-text{color:var(--ok)}.hint{color:var(--muted);margin:-.4rem 0 0;font-size:.8rem}.break{word-break:break-all}.row{align-items:center;gap:.5rem;display:flex}.row.between{justify-content:space-between}.stack{gap:1.25rem;display:grid}.centered{text-align:center;place-items:center;min-height:100vh;padding:2rem;display:grid}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;margin:1rem auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.topbar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:1.25rem;padding:.7rem 1.25rem;display:flex}.brand{color:var(--ink);align-items:center;gap:.45rem;font-weight:700;text-decoration:none;display:inline-flex}.brand.big{margin-bottom:1rem;font-size:1.25rem}.topbar nav{gap:1rem;display:flex}.topbar nav a{color:var(--muted);font-weight:500;text-decoration:none}.topbar nav a:hover{color:var(--ink)}.topbar-right{align-items:center;gap:.5rem;margin-left:auto;display:flex}.pill{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:.3rem .7rem;font-size:.85rem;font-weight:600}.page{max-width:1100px;margin:0 auto;padding:2rem 1.25rem 4rem}.banner{background:var(--accent-soft);color:#3730a3;padding:.6rem 1.25rem;font-size:.9rem}.banner.warn{background:var(--warn-soft);color:var(--warn)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.tag{color:var(--muted);background:#eef0f5;border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.tag.ok{background:var(--ok-soft);color:var(--ok)}.auth{background:radial-gradient(1200px 600px at 10% -10%, #e0e3ff, transparent), var(--bg);place-items:center;min-height:100vh;padding:2rem;display:grid}.auth-card{background:var(--panel);width:min(420px,100%);box-shadow:var(--shadow);border:1px solid var(--line);border-radius:18px;gap:.9rem;padding:2rem;display:grid}.hero-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;grid-template-columns:1fr 220px;gap:1.5rem;padding:1.5rem;display:grid}.hero-card form{margin-top:1rem}.budget-box{background:var(--accent-soft);border-radius:14px;align-content:center;gap:.35rem;padding:1rem;display:grid}.budget-big{color:var(--accent);font-size:2rem;font-weight:700}.meter{background:#dfe2f3;border-radius:99px;height:8px;overflow:hidden}.meter span{background:var(--accent);border-radius:99px;height:100%;display:block}.meter.thin{width:120px;height:5px;margin-top:.25rem}.meter.low span{background:var(--danger)}.project-card{gap:.8rem;display:grid}.project-link{color:inherit;align-items:center;gap:.8rem;text-decoration:none;display:flex}.project-thumb{color:#fff;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:1.2rem;font-weight:700;display:grid}.project-name{font-weight:600}@media (width<=700px){.hero-card{grid-template-columns:1fr}}.builder{flex-direction:column;height:100vh;display:flex}.builder-top{gap:.75rem}.project-title{border-color:#0000;font-weight:600}.name-input{width:260px}.builder-body{flex:1;grid-template-columns:minmax(320px,400px) 1fr;min-height:0;display:grid}.chat{border-right:1px solid var(--line);background:var(--panel);flex-direction:column;min-height:0;display:flex}.chat-scroll{flex-direction:column;flex:1;gap:.8rem;padding:1rem;display:flex;overflow-y:auto}.chat-empty{gap:.5rem;margin-top:1rem;display:grid}.idea{text-align:left;white-space:normal;background:var(--bg);border:1px solid var(--line);color:var(--ink)}.idea:hover:not(:disabled){background:var(--accent-soft);border-color:#c7caff}.msg{gap:.25rem;display:grid}.msg.user{justify-items:end}.bubble{white-space:pre-wrap;word-wrap:break-word;border-radius:14px;max-width:92%;padding:.6rem .85rem;font-size:.95rem}.msg.user .bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.msg.assistant .bubble{background:var(--bg);border:1px solid var(--line);border-bottom-left-radius:4px}.msg.error-msg .bubble{color:var(--danger);background:#fdecea;border-color:#f5c2bd}.status{color:var(--muted);align-items:center;gap:.4rem;font-size:.8rem;display:flex}.dot{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.25}}.composer{border-top:1px solid var(--line);gap:.5rem;padding:.75rem;display:grid}.composer textarea{resize:none}.workspace{background:#eceef5;flex-direction:column;min-width:0;min-height:0;display:flex}.workspace-bar{background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.tabs{background:var(--bg);border-radius:10px;gap:.25rem;padding:.2rem;display:flex}.tabs button{color:var(--muted);background:0 0;padding:.35rem .8rem}.tabs button.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px #00000014}.preview-wrap{flex:1;justify-content:center;min-height:0;padding:.75rem;display:flex;position:relative}.preview-frame{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;height:100%}.preview-wrap.mobile .preview-frame{border-width:8px;border-color:#1d2130;border-radius:28px;width:390px;max-width:100%}.preview-loading{color:var(--muted);place-content:center;justify-items:center;display:grid;position:absolute;inset:0}.preview-error{border:1px solid #f5c2bd;border-left:4px solid var(--danger);box-shadow:var(--shadow);background:#fff;border-radius:10px;gap:.6rem;padding:.8rem 1rem;display:grid;position:absolute;bottom:1.25rem;left:1.25rem;right:1.25rem}.preview-error pre{white-space:pre-wrap;color:var(--danger);max-height:120px;margin:.4rem 0 0;font-size:.8rem;overflow:auto}.code{background:var(--panel);flex:1;grid-template-columns:220px 1fr;min-height:0;display:grid}.file-list{border-right:1px solid var(--line);align-content:start;gap:2px;padding:.5rem;display:grid;overflow-y:auto}.file-list button{text-align:left;color:var(--muted);white-space:normal;word-break:break-all;background:0 0;justify-content:flex-start;padding:.35rem .5rem;font-family:ui-monospace,Menlo,monospace;font-size:.8rem}.file-list button.active{background:var(--accent-soft);color:var(--accent)}.editor{flex-direction:column;min-height:0;display:flex}.editor-bar{border-bottom:1px solid var(--line);padding:.5rem .75rem}.editor textarea{resize:none;tab-size:2;background:#fbfbfe;border:0;border-radius:0;flex:1;padding:1rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85rem;line-height:1.55}.editor textarea:focus{box-shadow:none}@media (width<=860px){.builder-body{grid-template-rows:45vh 1fr;grid-template-columns:1fr}.chat{border-right:0;border-bottom:1px solid var(--line)}.topbar-right .pill{display:none}}.modal-bg{z-index:50;background:#11142073;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border-radius:16px;gap:.9rem;width:min(520px,100%);max-height:90vh;padding:1.5rem;display:grid;overflow-y:auto;box-shadow:0 20px 60px #0003}.list{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.list li{border-bottom:1px solid var(--line);padding:.55rem 0}.share{background:var(--ok-soft);word-break:break-all;border-radius:10px;align-items:center;gap:.5rem;padding:.6rem .8rem;display:flex}.export-option{border:1px solid var(--line);border-radius:12px;gap:.6rem;padding:1rem;display:grid}.gallery-card{color:inherit;gap:.3rem;text-decoration:none;display:grid}.gallery-thumb{background:var(--accent-soft);height:160px;color:var(--accent);border-radius:10px;place-items:center;margin-bottom:.4rem;font-size:2rem;display:grid;position:relative;overflow:hidden}.gallery-thumb iframe{transform-origin:0 0;pointer-events:none;border:0;width:200%;height:200%;position:absolute;top:0;left:0;transform:scale(.5)}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.admin-grid .card{align-content:start;gap:.7rem;display:grid}.stat span{font-size:1.8rem;font-weight:700}.toggle-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.switch{background:#d4d8e4;border-radius:99px;flex-shrink:0;width:46px;height:26px;padding:3px}.switch span{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;display:block;box-shadow:0 1px 2px #0003}.switch.on{background:var(--ok)}.switch.on span{transform:translate(20px)}.switch.off-danger{background:var(--danger)}.search{width:260px}.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);background:#fafbfe;padding:.7rem .8rem;font-size:.8rem;font-weight:600}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:.65rem .8rem}tr:last-child td{border-bottom:0}.actions{flex-wrap:wrap;gap:.3rem;display:flex}.writing-badge{background:var(--panel);border:1px solid var(--line);color:var(--muted);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .8rem;font-size:.8rem;display:flex;position:absolute;top:1.25rem;right:1.25rem}.slug-field{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:stretch;display:flex;overflow:hidden}.slug-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.slug-field input{border:0;border-radius:0;min-width:0;font-weight:600;box-shadow:none!important}.slug-affix{color:var(--muted);white-space:nowrap;background:#f4f5fa;align-items:center;padding:0 .7rem;font-size:.9rem;display:flex}.slug-status{min-height:1.3em;margin-top:-.4rem}.link-btn{color:var(--accent);font-size:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.warn-text{color:var(--warn)}
