:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#201d1a;background:#f4f0e8;font-synthesis:none;--ink: #201d1a;--muted: #655f58;--paper: #fffdf8;--line: #d8d0c4;--accent: #2f5f4d;--accent-dark: #214537;--warm: #9d4b2f;--error: #8d2525;--success: #22633f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 10% 0%,#fff8e8 0,transparent 32rem),#f4f0e8}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #d47c43;outline-offset:3px}.app-shell{min-height:100vh}.site-header{min-height:4.5rem;padding:.9rem clamp(1rem,4vw,4rem);display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);background:#fffdf8e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}.brand{color:var(--ink);font-family:Georgia,serif;font-size:1.45rem;font-weight:700;text-decoration:none}.session-control{display:flex;align-items:center;justify-content:flex-end;gap:.8rem;color:var(--muted);font-size:.9rem}main{width:min(1180px,calc(100% - 2rem));margin:0 auto}.hero{padding:clamp(3rem,8vw,6rem) 0 2.5rem;max-width:800px}.hero h1{margin:.25rem 0 1rem;max-width:720px;font:700 clamp(2.35rem,7vw,5.2rem)/.98 Georgia,serif;letter-spacing:-.035em}.hero>p:last-child{max-width:660px;font-size:clamp(1rem,2vw,1.2rem);line-height:1.65;color:var(--muted)}.eyebrow{margin:0 0 .4rem;color:var(--warm);font-size:.76rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.primary-button,.secondary-button,.text-button{min-height:2.65rem;border-radius:.45rem;padding:.65rem 1rem;font-weight:750}.primary-button{border:1px solid var(--accent);color:#fff;background:var(--accent);box-shadow:0 2px 0 var(--accent-dark)}.primary-button:hover:not(:disabled){background:var(--accent-dark)}.secondary-button{border:1px solid var(--ink);color:var(--ink);background:transparent}.secondary-button:hover:not(:disabled){background:#eee7dc}.text-button{min-height:auto;border:0;color:var(--accent-dark);background:transparent;text-decoration:underline;text-underline-offset:.2em}.signin-card,.workflow-card,.analysis-panel,.binder-section,.saved-section,.saved-detail{margin-bottom:2rem;padding:clamp(1.1rem,3vw,2rem);border:1px solid var(--line);border-radius:1rem;background:var(--paper);box-shadow:0 10px 35px #372b1d12}.signin-card{max-width:650px;margin-inline:auto;text-align:center}.signin-card p{color:var(--muted);line-height:1.6}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.section-heading h2,.section-heading h3{margin:0;font-family:Georgia,serif}.section-heading.compact{align-items:center}.step-note,.method-tag,.overall-range{padding:.4rem .65rem;border-radius:999px;color:var(--accent-dark);background:#e7efe9;font-size:.82rem;font-weight:700;white-space:nowrap}.capture-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:1.5rem}.capture-side{min-width:0;padding:1rem;border:1px solid var(--line);border-radius:.75rem;background:#faf7f0}.capture-side h3{margin:0;font-size:1.25rem}.guidance{min-height:3.7rem;color:var(--muted);line-height:1.5}.file-control{display:block;padding:1rem;border:2px dashed #989085;border-radius:.6rem;color:var(--accent-dark);background:#fff;font-weight:750;text-align:center;cursor:pointer}.file-control:hover{border-color:var(--accent);background:#f4faf5}.file-control input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.field-hint,.file-name{color:var(--muted);font-size:.82rem;line-height:1.45}.inline-error{color:var(--error);font-weight:700}.capture-preview{position:relative;width:fit-content;max-width:100%;overflow:hidden;margin:1rem auto 0;border:3px solid transparent;border-radius:.45rem;background:#292723}.capture-preview.invalid{border-color:var(--error);box-shadow:0 0 0 3px #8d252533}.capture-preview img{display:block;width:auto;max-width:100%;height:auto;max-height:420px}.capture-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.capture-overlay polygon,.capture-overlay rect{fill:#f4b24d14;stroke:#ffd267;stroke-width:5;vector-effect:non-scaling-stroke;pointer-events:none}.corner-handle{fill:#fffdf8;stroke:#9d4b2f;stroke-width:5;vector-effect:non-scaling-stroke;cursor:grab;pointer-events:all}.corner-handle:active{cursor:grabbing}.corner-handle:focus{outline:none;stroke:#111;stroke-width:8;filter:drop-shadow(0 0 4px #ffd267)}.corner-handle[aria-disabled=true]{cursor:not-allowed;opacity:.55}.geometry-editor{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--line)}.geometry-error{padding:.7rem;border-left:4px solid var(--error);color:#621a1a;background:#faeaea;font-weight:700;line-height:1.4}summary{color:var(--accent-dark);font-weight:750;cursor:pointer}.check-row{display:flex;align-items:center;gap:.6rem;margin:.9rem 0;font-weight:650}.check-row input{width:1.2rem;height:1.2rem}.coordinate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.coordinate-grid fieldset{min-width:0;border:1px solid var(--line)}.coordinate-grid fieldset:disabled{opacity:.6}.coordinate-grid label{display:grid;grid-template-columns:1rem 1fr;align-items:center;gap:.4rem;margin-top:.3rem}.coordinate-grid input{width:100%;min-width:0;padding:.35rem;border:1px solid #928a7f;border-radius:.25rem}.border-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.border-grid label{display:block}.action-row,.save-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.25rem;color:var(--muted);font-size:.9rem}.global-error,.progress-message,.notice,.success-message{display:flex;gap:.65rem;margin:0 0 1.25rem;padding:.9rem 1rem;border-radius:.55rem;line-height:1.45}.global-error{border-left:5px solid var(--error);color:#621a1a;background:#faeaea}.progress-message{align-items:center;border:1px solid #bed0c5;color:var(--accent-dark);background:#eef5f0}.scan-progress{display:flex;align-items:stretch;gap:.75rem;margin-bottom:1.25rem}.scan-progress .progress-message{flex:1;margin:0}.scan-progress .progress-message>span:last-child{display:grid;gap:.2rem}.scan-progress small{color:var(--muted);font-size:.78rem;font-weight:400}.scan-notice{border-left:5px solid var(--accent);background:#eef5f0}.spinner{width:1rem;height:1rem;border:2px solid #9eb4a7;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.spinner{animation:none;border-color:var(--accent)}}.success-message{color:var(--success);background:#eaf6ee;font-weight:700}.assistance-notice{display:block;margin-top:1.2rem;border-left:5px solid #b16d34;background:#fff1df}.retry-button{margin:0 0 1.5rem}.evidence-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}.evidence-figure{margin:0;min-width:0}.evidence-canvas{position:relative;max-width:520px;margin:auto;overflow:hidden;border-radius:.55rem;background:#292723;line-height:0}.evidence-canvas canvas{display:block;width:100%;height:auto}.evidence-box{position:absolute;border:2px solid #fff176;line-height:1.1;pointer-events:none}.evidence-box span{position:absolute;left:-2px;top:-1.25rem;padding:.2rem .3rem;color:#111;background:#fff176;font-size:.7rem;font-weight:800;white-space:nowrap}.grade-box{border-style:dashed;border-color:#61d5ff}.grade-box span{top:auto;bottom:-1.25rem;color:#082630;background:#8be0ff}.evidence-figure figcaption{margin-top:.5rem;color:var(--muted);font-size:.76rem;line-height:1.4}.quality-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem}.quality-card{display:grid;gap:.3rem;padding:.8rem;border-left:4px solid var(--success);border-radius:.4rem;background:#edf6ef;font-size:.82rem}.quality-card.unusable{border-left-color:var(--error);background:#faeaea}.quality-card span{color:var(--muted)}.result-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}.result-section>h3{margin-top:0;font-family:Georgia,serif;font-size:1.35rem}.anchor-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.anchor-list>div{min-width:0;padding:.8rem;border-radius:.5rem;background:#f3eee5}.anchor-list dt{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.anchor-list dd{margin:.35rem 0 0;overflow-wrap:anywhere}.anchor-list .confidence{color:var(--muted);font-size:.75rem}.status-note{padding:.8rem;border-left:4px solid #b16d34;background:#fff4e8}.candidate-list{display:grid;gap:.65rem;margin:1rem 0;padding:0;border:0}.candidate-list legend{margin-bottom:.6rem;font-weight:800}.candidate{display:grid;grid-template-columns:auto auto 1fr;gap:.7rem;align-items:start;padding:.9rem;border:1px solid var(--line);border-radius:.55rem;cursor:pointer}.candidate.selected{border-color:var(--accent);background:#edf5ef;box-shadow:inset 4px 0 var(--accent)}.candidate input{width:1.2rem;height:1.2rem}.candidate-rank{color:var(--warm);font-weight:850}.candidate strong,.candidate small,.evidence-copy{display:block}.candidate small{margin-top:.25rem;color:var(--muted)}.evidence-copy{margin-top:.5rem;font-size:.8rem;line-height:1.45}.confirmation{color:var(--success);font-weight:750}.manual-search{margin:1.25rem 0;padding:1rem;border:1px solid var(--line);border-radius:.65rem;background:#faf7f0}.manual-search h4{margin:0;font:700 1.15rem Georgia,serif}.manual-search>p{color:var(--muted);line-height:1.5}.manual-search-form{display:grid;grid-template-columns:minmax(12rem,2fr) minmax(8rem,1fr) auto;gap:.75rem;align-items:end}.manual-search-form label{display:grid;gap:.35rem;font-weight:750}.manual-search-form input{min-width:0;min-height:2.65rem;padding:.6rem .7rem;border:1px solid #928a7f;border-radius:.45rem;color:var(--ink);background:#fff}.manual-search-form small{color:var(--muted);font-size:.76rem;font-weight:400}.manual-search-feedback{margin-top:.75rem}.manual-search-feedback p{margin-bottom:0}.inline-search-error{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem;border-left:4px solid var(--error);color:#621a1a;background:#faeaea}.manual-result-list{display:grid;gap:.65rem;margin:1rem 0;padding:0;list-style:none}.manual-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:.9rem;border:1px solid var(--line);border-radius:.55rem;background:#fff}.manual-result.selected{border-color:var(--accent);background:#edf5ef;box-shadow:inset 4px 0 var(--accent)}.manual-result strong,.manual-result small{display:block;overflow-wrap:anywhere}.manual-result small{margin-top:.3rem;color:var(--muted)}.manual-pagination{margin-top:.75rem}.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.category-card{min-width:0;padding:1rem;border:1px solid var(--line);border-radius:.65rem}.category-card h4,.category-card h3{margin:0}.grade-range{margin:.5rem 0;color:var(--accent-dark);font:700 1.65rem Georgia,serif}.insufficient{color:var(--warm);font-weight:800}.category-card>p:not(.grade-range,.insufficient),.category-card li{color:var(--muted);font-size:.8rem;line-height:1.4}.category-card ul{padding-left:1.1rem}.ratio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}.ratio-grid>div{padding:1rem;border-radius:.6rem;background:#f3eee5}.ratio-grid h4{margin:0}.ratio-grid ul{margin-bottom:0;padding:0;list-style:none}.ratio-grid li{display:flex;justify-content:space-between;margin-top:.5rem}.save-bar{padding:1rem;border:1px solid var(--line);border-radius:.65rem;background:#f3eee5}.save-bar p{margin:.3rem 0 0}.saved-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;padding:0;list-style:none}.saved-list button{width:100%;padding:1rem;border:1px solid var(--line);border-radius:.55rem;color:var(--ink);background:#fff;text-align:left}.saved-list button:hover{border-color:var(--accent)}.saved-list span,.saved-list small{display:block;overflow-wrap:anywhere}.saved-list span{font-weight:750}.saved-list small{margin-top:.35rem;color:var(--muted)}.empty-state{padding:1.5rem;border:1px dashed #a9a197;border-radius:.55rem;color:var(--muted);text-align:center}.compact-categories{margin-top:1rem}.heading-actions{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.85rem}.binder-form{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(12rem,2fr) auto;gap:.75rem;align-items:center;margin-top:1.25rem}.binder-form label{font-weight:750}.binder-form input,.binder-form select{min-width:0;min-height:2.65rem;padding:.6rem .7rem;border:1px solid #928a7f;border-radius:.45rem;color:var(--ink);background:#fff}.binder-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:1.25rem 0 0;padding:0;list-style:none}.binder-list button{width:100%;min-height:4.5rem;padding:.85rem;border:1px solid var(--line);border-radius:.55rem;color:var(--ink);background:#fff;text-align:left}.binder-list button:hover,.binder-list button.selected{border-color:var(--accent);background:#edf5ef}.binder-list span,.binder-list small{display:block;overflow-wrap:anywhere}.binder-list span{font-weight:800}.binder-list small{margin-top:.3rem;color:var(--muted)}.binder-detail{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}.binder-detail-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.binder-detail-heading h3,.binder-detail-heading p{margin:0}.binder-detail-heading h3{font:700 1.4rem Georgia,serif}.binder-detail-heading p{margin-top:.35rem;color:var(--muted)}.danger-button{min-height:2.65rem;padding:.65rem 1rem;border:1px solid var(--error);border-radius:.45rem;color:var(--error);background:transparent;font-weight:750}.danger-button:hover:not(:disabled){color:#fff;background:var(--error)}.binder-cards{margin:1.25rem 0 0;padding:0;list-style:none}.binder-cards li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.65rem 0;border-bottom:1px solid var(--line)}.binder-card-open{padding:.4rem;border:0;color:var(--ink);background:transparent;text-align:left}.binder-card-open span,.binder-card-open small{display:block;overflow-wrap:anywhere}.binder-card-open span{color:var(--accent-dark);font-weight:800;text-decoration:underline;text-underline-offset:.2em}.binder-card-open small{margin-top:.3rem;color:var(--muted)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;color:var(--muted);font-size:.85rem}.pagination.compact{justify-content:flex-end}footer{padding:2rem 1rem 3rem;color:var(--muted);font-size:.85rem;text-align:center}@media(max-width:820px){.capture-grid,.evidence-layout,.category-grid,.anchor-list{grid-template-columns:1fr 1fr}.session-control>span{display:none}}@media(max-width:600px){main{width:min(100% - 1rem,1180px)}.site-header{padding-inline:.75rem}.hero{padding-top:2.5rem}.capture-grid,.evidence-layout,.category-grid,.ratio-grid,.saved-list,.binder-list{grid-template-columns:1fr}.capture-side,.workflow-card,.analysis-panel,.binder-section,.saved-section,.saved-detail{padding:1rem}.section-heading,.action-row,.save-bar,.binder-detail-heading,.pagination,.scan-progress{align-items:stretch;flex-direction:column}.binder-form,.manual-search-form{grid-template-columns:1fr}.manual-result,.inline-search-error{grid-template-columns:1fr;align-items:stretch}.inline-search-error{display:grid}.pagination.compact{align-items:flex-start}.heading-actions{justify-content:space-between}.section-heading .step-note,.section-heading .method-tag,.section-heading .overall-range{align-self:flex-start}.primary-button,.secondary-button{width:100%}.session-control .primary-button,.session-control .secondary-button{width:auto}.border-grid{grid-template-columns:1fr 1fr}.evidence-box span{font-size:.58rem}}.email-auth-form{display:grid;gap:1rem;max-width:28rem;margin-inline:auto;text-align:left}.email-auth-form label{display:grid;gap:.4rem;font-weight:600}.email-auth-form input{width:100%;box-sizing:border-box;padding:.8rem;border:1px solid #617284;border-radius:.5rem;font:inherit}.email-auth-form p{margin:0}.email-auth-form [role=alert]{color:#a12e2e}
