:root{--stone: #f3ebe0;--stone-deep: #e6d7c4;--ink: #13233f;--ink-soft: #243757;--sea: #1f6f8b;--sea-bright: #2f8fad;--malta-red: #9c2f2f;--brass: #b08a4a;--paper: #fffaf2;--line: rgba(19, 35, 63, .14);--shadow: 0 18px 50px rgba(19, 35, 63, .12);--radius: 18px;--font-display: "Caveat", cursive;--font-serif: "Source Serif 4", Georgia, serif;--font-sans: "Source Sans 3", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);font-family:var(--font-sans);background:radial-gradient(circle at 12% 18%,rgba(47,143,173,.18),transparent 34%),radial-gradient(circle at 88% 8%,rgba(176,138,74,.16),transparent 28%),linear-gradient(160deg,#f7f1e7,#ebe1d2 48%,#e4d5c2)}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:linear-gradient(rgba(19,35,63,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(19,35,63,.03) 1px,transparent 1px);background-size:28px 28px}button,input,textarea{font:inherit}button{cursor:pointer}.app-shell{position:relative;width:min(1680px,calc(100% - 2rem));margin:0 auto;padding:1.5rem 0 3rem}.login-shell{position:relative;min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;width:100%;margin:0;padding:1.5rem;box-sizing:border-box}.login-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;width:min(22rem,100%);text-align:center}.login-brand{margin:0;font-size:clamp(2.6rem,9vw,5.6rem);text-align:center;white-space:nowrap}.login-form{display:grid;gap:.85rem;width:100%;margin-top:.5rem;text-align:left}.login-form .actions{justify-content:center}.login-form .field input{width:100%}.login-form .login-error-label{color:var(--malta-red);font-weight:700}.site-footer{margin-top:2.5rem;text-align:center;font-size:.8rem;color:var(--ink-soft)}.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover{color:var(--sea);text-decoration:underline;text-underline-offset:.15em}.hero{display:grid;gap:.75rem;margin-bottom:1.5rem}.brand{font-family:var(--font-display);font-size:clamp(2.8rem,7vw,4.4rem);line-height:.95;color:var(--ink);letter-spacing:.01em}.brand span{color:var(--sea)}.tagline{max-width:42rem;font-family:var(--font-serif);font-size:1.15rem;color:var(--ink-soft)}.nowrap{white-space:nowrap}.model-link{color:var(--sea);text-decoration:underline;text-underline-offset:.15em}.model-link:hover{color:var(--ink)}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;margin:1.25rem 0 1.75rem}.step{position:relative;padding:.85rem .75rem;border:1px solid var(--line);border-radius:14px;background:#fffaf2b8;text-align:center;color:var(--ink-soft)}.step strong{display:block;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.step span{display:block;margin-top:.25rem;font-family:var(--font-serif);font-size:1.05rem}.step.active{background:var(--ink);color:var(--paper);border-color:transparent;box-shadow:var(--shadow)}.step.done{border-color:#1f6f8b73;background:#1f6f8b1a}.panel{background:#fffaf2e6;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.35rem}.panel h2{margin:0 0 .4rem;font-family:var(--font-serif);font-size:1.55rem}.panel p.lead{margin:0 0 1.1rem;color:var(--ink-soft)}.notice{padding:.85rem 1rem;border-radius:12px;background:#b08a4a1f;border:1px solid rgba(176,138,74,.28);color:var(--ink-soft);margin-bottom:1rem}.notice.warn{background:#9c2f2f14;border-color:#9c2f2f38}.field{display:grid;gap:.4rem;margin-bottom:1rem}.field label{font-weight:600;line-height:1.3;min-height:1.3em}.review-scan-field{margin-bottom:0}.field input,.field textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:.8rem .95rem;background:var(--paper);color:var(--ink)}.field-hint{margin:.35rem 0 0;font-size:.88rem;color:var(--ink-soft)}.linebreak-sample{color:#0b3d91;font-weight:800;font-family:var(--font-sans)}.linebreak-mark{display:inline-block;width:0;overflow:visible;vertical-align:baseline;line-height:inherit;font-size:1em;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none}.linebreak-mark:before{content:"↵";margin-left:.12em;font-family:var(--font-sans);font-weight:800;font-size:.95em;line-height:1;color:#0b3d91}.transcript-shell{position:relative;width:100%}.transcript-backdrop,.field textarea.transcript-editor{width:100%;min-height:7.5rem;margin:0;border:1px solid var(--line);border-radius:12px;padding:.8rem .95rem 1.15rem;line-height:1.45;font-family:var(--font-serif);font-size:1rem;font-weight:400;letter-spacing:normal;word-spacing:normal;tab-size:4;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;box-sizing:border-box}.transcript-backdrop{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;color:var(--ink);background:var(--paper)}.transcript-placeholder{color:#13233f73;font-size:1rem}.field textarea.transcript-editor{position:relative;z-index:1;resize:none;overflow:hidden;background:transparent!important;color:transparent!important;caret-color:var(--ink);-webkit-text-fill-color:transparent}.field textarea.transcript-editor::placeholder{color:transparent;-webkit-text-fill-color:transparent}.actions{display:flex;flex-wrap:wrap;gap:.7rem}.btn{appearance:none;border:none;border-radius:999px;padding:.75rem 1.2rem;background:var(--ink);color:var(--paper);font-weight:700}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.sea{background:var(--sea)}.btn.danger{background:var(--malta-red)}.dropzone{border:2px dashed rgba(31,111,139,.45);border-radius:16px;padding:2rem 1.2rem;text-align:center;background:linear-gradient(180deg,#fffaf2f2,#f3ebe0cc);transition:border-color .16s ease,transform .16s ease}.dropzone.active{border-color:var(--sea);transform:translateY(-1px)}.page-list{display:grid;gap:.8rem;margin-top:1.1rem}.page-card{display:grid;grid-template-columns:88px 1fr auto;gap:.9rem;align-items:center;padding:.8rem;border-radius:14px;border:1px solid var(--line);background:#ffffff8c}.page-card img{width:88px;height:110px;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:#ddd}.page-meta{display:grid;gap:.25rem}.page-stats{list-style:none;margin:.35rem 0 0;padding:0;display:grid;gap:.2rem;font-size:.82rem;color:var(--ink-soft)}.page-stats li{display:flex;flex-wrap:wrap;gap:.35rem .65rem;align-items:baseline}.page-stats li span{min-width:3.4rem}.page-stats li strong{font-weight:650;color:var(--ink);font-family:var(--font-sans)}.review-meta{margin-left:auto;display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.55rem;font-family:var(--font-sans)}.review-page-label{font-weight:700;color:var(--ink)}.review-stats{font-size:.88rem;font-weight:400;color:var(--ink-soft)}.badge{display:inline-flex;align-items:center;width:fit-content;padding:.2rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:#13233f14}.badge.queued{background:#b08a4a2e}.badge.processing{background:#1f6f8b2e;gap:.4rem}.spinner{display:inline-block;width:.85em;height:.85em;border:2px solid rgba(31,111,139,.25);border-top-color:var(--sea);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.spinner-lg{width:1.15rem;height:1.15rem;border-width:2.5px}.processing-banner{display:flex;align-items:center;gap:.65rem;margin:.35rem 0 .75rem;color:var(--ink-soft);font-size:.95rem}.processing-note{margin:.15rem 0 0;font-size:.85rem;color:var(--ink-soft)}@keyframes spin{to{transform:rotate(360deg)}}.badge.failed{background:#9c2f2f29;color:var(--malta-red)}.badge.ready{background:#1f6f8b29;color:var(--sea)}.badge.approved{background:#226e4629;color:#226e46}.progress-bar{height:10px;border-radius:999px;background:#13233f14;overflow:hidden;margin:.8rem 0 1.2rem}.progress-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--sea),var(--sea-bright));transition:width .22s ease}.review-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:1.25rem;align-items:start}.review-scan-field,.viewer-wrap{min-width:0;max-width:100%}.viewer{position:relative;overflow:auto;max-height:70vh;max-width:100%;min-width:0;border-radius:14px;border:1px solid var(--line);background:linear-gradient(180deg,#d9cbb8,#cbb89f);padding:1rem;overscroll-behavior:contain}.viewer-stage{position:relative;margin:0 auto;min-width:100%;box-sizing:border-box}.viewer-stage img{display:block;width:100%;height:auto;max-width:none;margin:0 auto;transform-origin:center center;box-shadow:0 10px 30px #0000002e;-webkit-user-select:none;user-select:none}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.8rem}.unsure{color:var(--malta-red);font-weight:700}.error{color:var(--malta-red);margin:.4rem 0 0}@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}.review-layout,.page-card{grid-template-columns:1fr}.page-card img{width:100%;height:180px}}
