:root{color-scheme:light;--ink:#182024;--muted:#607078;--line:#d8e0e2;--paper:#f7f8f4;--panel:#ffffff;--accent:#287c6b;--accent-strong:#17614f;--rose:#b94f65;--gold:#c4902f;--shadow:0 18px 60px rgba(24,32,36,0.12)}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(247,248,244,.94)),var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,textarea{font:inherit}button{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);cursor:pointer;display:inline-flex;font-weight:700;gap:8px;justify-content:center;min-height:44px;padding:0 14px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}button:hover:not(:disabled){border-color:var(--accent);box-shadow:0 8px 20px rgba(40,124,107,.16);transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.45}.app-shell{margin:0 auto;max-width:1280px;min-height:100vh;padding:32px}.topbar{align-items:end;display:flex;gap:24px;justify-content:space-between;margin-bottom:24px}.eyebrow{color:var(--rose);font-size:.78rem;font-weight:800;margin:0 0 6px;text-transform:uppercase}.eyebrow,h1,h2{letter-spacing:0}h1,h2{margin:0}h1{font-size:clamp(2rem,4vw,4.25rem);line-height:.98}h2{font-size:1.2rem}.status-strip{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.status-strip span{background:#f0f4f3;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.9rem;font-weight:700;padding:8px 12px}.workspace{display:grid;grid-gap:24px;gap:24px;grid-template-columns:minmax(320px,.85fr) minmax(420px,1.15fr)}.editor-panel,.upload-panel{background:rgba(255,255,255,.86);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);min-width:0}.upload-panel{display:grid;grid-gap:16px;gap:16px;padding:16px}.drop-zone{align-items:center;aspect-ratio:4/5;background:linear-gradient(0deg,rgba(40,124,107,.05),rgba(40,124,107,.05)),#ffffff;border:1px dashed #aac0bd;border-radius:8px;cursor:pointer;display:flex;justify-content:center;overflow:hidden;position:relative}.drop-zone input{inset:0;opacity:0;position:absolute}.drop-zone img{height:100%;object-fit:contain;width:100%}.empty-state{align-items:center;color:var(--muted);display:grid;grid-gap:10px;gap:10px;justify-items:center;padding:24px;text-align:center}.empty-state strong{color:var(--ink);font-size:1.1rem}.toolbar{display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) auto auto}.provider-badge{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;display:flex;gap:10px;min-height:44px;min-width:0;padding:0 12px}.provider-badge span{color:var(--muted);font-size:.82rem;font-weight:800}.provider-badge strong{color:var(--ink);font-weight:800;min-width:0}.primary{background:var(--accent);border-color:var(--accent);color:white}.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.file-row{align-items:center;background:#fff8e9;border:1px solid rgba(196,144,47,.3);border-radius:8px;color:#665024;display:flex;gap:8px;min-width:0;padding:10px 12px}.file-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-panel{display:grid;grid-template-rows:auto minmax(420px,1fr) auto;padding:18px}.editor-header{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:14px}.icon-actions{display:flex;gap:8px}.icon-actions button{min-height:42px;padding:0;width:42px}textarea{background:repeating-linear-gradient(#ffffff,#ffffff 31px,rgba(40,124,107,.12) 32px);border:1px solid var(--line);border-radius:8px;color:var(--ink);line-height:32px;min-height:420px;outline:none;padding:16px;resize:vertical;width:100%}textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(40,124,107,.12)}.message{color:var(--muted);font-size:.92rem;margin:12px 0 0}.spin{animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:900px){.app-shell{padding:20px}.topbar{align-items:start;flex-direction:column}.status-strip{justify-content:flex-start}.workspace{grid-template-columns:1fr}.editor-panel{grid-template-rows:auto minmax(360px,1fr) auto}}@media (max-width:560px){.app-shell{padding:14px}.toolbar{grid-template-columns:1fr}.editor-header{align-items:start;flex-direction:column}}