: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,input,select,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:flex-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}.scan-controls{background:#f7faf9;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:14px;gap:14px;padding:12px}.control-header{align-items:center;color:var(--muted);display:flex;font-size:.82rem;font-weight:800;gap:8px;text-transform:uppercase}.crop-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.control-row,.crop-grid label{display:grid;grid-gap:6px;gap:6px}.crop-grid label span{color:var(--ink);font-size:.86rem;font-weight:800;text-transform:capitalize}.scan-controls input[type=range]{accent-color:var(--accent);width:100%}.rotate-row{align-items:center;display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr auto 1fr}.rotate-row span{color:var(--muted);font-size:.86rem;font-weight:800;min-width:56px;text-align:center}.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}.search-box,.subject-select{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}.subject-select span{color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase}.search-box input,.subject-select select{background:transparent;border:0;color:var(--ink);font-weight:750;min-width:0;outline:0;width:100%}.saved-notes-panel{border-top:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;padding-top:16px}.saved-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.saved-header span{background:#eef5f3;border-radius:999px;color:var(--accent-strong);font-size:.82rem;font-weight:800;min-width:32px;padding:6px 10px;text-align:center}.search-box{background:#ffffff;color:var(--muted)}.saved-list{display:grid;grid-gap:8px;gap:8px;max-height:220px;overflow:auto}.saved-list button{align-items:start;display:grid;grid-gap:4px;gap:4px;justify-content:stretch;min-height:58px;padding:10px 12px;text-align:left}.saved-list button span,.saved-list button strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-list button span,.saved-list p{color:var(--muted);font-size:.86rem;margin:0}.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:flex-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:flex-start;flex-direction:column}}