:root{color-scheme:light;--bg: #f6f2e8;--bg-strong: #efe6d3;--panel: rgba(255, 252, 246, .92);--panel-strong: #fff9ee;--ink: #1d2731;--muted: #5d6774;--line: rgba(29, 39, 49, .12);--accent: #c8553d;--accent-soft: rgba(200, 85, 61, .14);--shadow: 0 24px 60px rgba(29, 39, 49, .12);--radius-lg: 28px;--radius-md: 18px;--radius-sm: 12px;font-family:Aptos,BIZ UDPGothic,Yu Gothic UI,sans-serif;line-height:1.5;font-weight:400;color:var(--ink);background:radial-gradient(circle at top left,rgba(217,143,43,.22),transparent 30%),radial-gradient(circle at bottom right,rgba(74,124,89,.18),transparent 26%),linear-gradient(180deg,#f9f5ed,#f1e6d6)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.eyebrow{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;color:var(--muted)}.app-shell{--side-nav-width: 320px;display:grid;grid-template-columns:var(--side-nav-width) minmax(0,1fr);min-height:100vh}.app-shell--nav-collapsed{--side-nav-width: 76px}.side-nav{--side-nav-bg: linear-gradient(180deg, rgba(27, 37, 48, .96), rgba(39, 53, 67, .94));position:sticky;top:0;align-self:start;display:flex;flex-direction:column;padding:0;border-right:1px solid var(--line);background:var(--side-nav-bg);color:#f8efe1}.side-nav-toggle-bar{position:absolute;top:.75rem;right:1.4rem;left:1.4rem;display:flex;justify-content:flex-end;z-index:3;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .14s ease,visibility .14s ease}.side-nav:hover .side-nav-toggle-bar,.side-nav:focus-within .side-nav-toggle-bar{opacity:1;visibility:visible;pointer-events:auto}.side-nav.is-collapsed .side-nav-toggle-bar{left:.65rem;right:.65rem;justify-content:center}.side-nav-body{padding:1rem 1.4rem 2rem}.side-nav-brand{display:flex;gap:1rem;align-items:center;padding:0 .8rem .75rem}.side-nav-brand .eyebrow{color:#f8efe18c;text-transform:none;letter-spacing:.06em}.side-nav-brand h2{margin:0;font-family:BIZ UDPGothic,Yu Gothic UI,Meiryo,sans-serif;font-size:1.35rem;line-height:1.35;font-weight:600;font-synthesis:none;color:#f8efe1;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto;text-shadow:none;letter-spacing:.02em}.side-nav-brand>div{min-width:0;position:relative;z-index:1}.brand-mark{display:block;flex-shrink:0;border-radius:12px;overflow:hidden}.side-nav-links{display:grid;gap:.85rem;align-content:start}.nav-link{display:flex;align-items:flex-start;gap:.6rem;padding:.75rem 1rem;border-radius:var(--radius-md);text-decoration:none;color:#f8efe1d1;border:1px solid rgba(255,255,255,.06);transition:transform .12s ease,background .12s ease}.nav-link-icon{flex-shrink:0;opacity:.75;margin-top:.15rem}.nav-link-text{display:flex;flex-direction:column;min-width:0}.nav-link:hover,.nav-link.active{transform:translate(4px);background:#fff9ee14;color:#fff}.nav-link-label{font-size:1.05rem;font-weight:700}.nav-link-description{font-size:.88rem;color:inherit;opacity:.78}.side-nav.is-collapsed{overflow:visible;z-index:30}.side-nav.is-collapsed .side-nav-body{padding:0 .65rem 1.25rem;overflow:visible}.side-nav.is-collapsed .side-nav-brand{justify-content:center;padding:0}.side-nav.is-collapsed .nav-link{position:relative;justify-content:center;padding:.75rem .5rem;align-items:center;overflow:visible}.side-nav.is-collapsed .nav-link-icon{margin-top:0}.side-nav.is-collapsed .nav-link:hover,.side-nav.is-collapsed .nav-link.active{transform:none}.side-nav.is-collapsed .nav-link.active{background:#fff9ee33;border-color:#fff9ee8c;box-shadow:inset 0 0 0 1px #fff9ee47,0 0 0 2px #c8553d59;color:#fff}.side-nav.is-collapsed .nav-link.active .nav-link-icon{opacity:1;color:#fff7ed;filter:drop-shadow(0 0 6px rgba(255,249,238,.65))}.side-nav.is-collapsed .nav-link-text{position:absolute;left:calc(100% + .55rem);top:50%;z-index:40;display:none;flex-direction:column;gap:.2rem;min-width:11rem;max-width:16rem;padding:.7rem .9rem;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);background:#1b2530fa;box-shadow:0 12px 32px #00000047;color:#f8efe1;white-space:normal;pointer-events:none;transform:translateY(-50%)}.side-nav.is-collapsed .nav-link:hover .nav-link-text,.side-nav.is-collapsed .nav-link:focus-visible .nav-link-text{display:flex}.side-nav.is-collapsed .nav-link:hover .nav-link-label,.side-nav.is-collapsed .nav-link:focus-visible .nav-link-label{font-size:.95rem}.side-nav.is-collapsed .nav-link:hover .nav-link-description,.side-nav.is-collapsed .nav-link:focus-visible .nav-link-description{opacity:.82}.side-nav.is-collapsed .nav-link-icon{opacity:1}.side-nav-toggle{display:flex;align-items:center;justify-content:center;width:auto;min-width:2.25rem;padding:.45rem .55rem;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);background:#1b2530f5;box-shadow:0 8px 20px #00000038;color:#f8efe1e6;transition:background .12s ease,color .12s ease}.side-nav.is-collapsed .side-nav-toggle{width:100%}.side-nav-toggle:hover{background:#273543fa;color:#fff}@media(hover:none){.side-nav-toggle-bar{opacity:1;visibility:visible;pointer-events:auto}}.app-main{padding:1.5rem 1.5rem 3rem}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.6rem}.topbar-heading{display:grid;gap:.45rem}.topbar-kicker{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.topbar-title{margin:0;font-size:clamp(1.7rem,2.6vw,2.6rem)}.topbar-actions{display:flex;gap:.8rem;align-items:center}.identity-card{display:grid;gap:.15rem;padding:.8rem 1rem;border-radius:999px;background:#fff9eea6;border:1px solid var(--line)}.identity-name{font-weight:700}.identity-role{color:var(--muted);font-size:.82rem}.page-stack{display:grid;gap:1.4rem}.page-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end}.page-header h2,.section-title,.forbidden-card h2,.login-card h1{margin:0}.page-description{max-width:520px;margin:0;color:var(--muted)}.filter-bar,.table-card,.summary-card,.upload-card,.upload-result-card,.forbidden-card,.login-card,.empty-state,.error-state{background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);box-shadow:var(--shadow)}.filter-bar{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem 1.2rem;border-radius:var(--radius-md)}.upload-card,.upload-result-card{padding:1.2rem 1.3rem;border-radius:var(--radius-md)}.filter-bar label,.login-form label{display:grid;gap:.4rem;color:var(--muted);font-size:.95rem}.filter-bar input,.filter-bar select,.login-form input,.upload-card input,.upload-card select{min-width:180px;padding:.8rem .95rem;border-radius:12px;border:1px solid rgba(29,39,49,.15);background:#ffffffe0}.dashboard-period-bar{align-items:end}.dashboard-monthly-generate{display:grid;gap:.4rem;color:var(--muted);font-size:.95rem}.dashboard-monthly-feedback{padding:.85rem 1.1rem}.dashboard-monthly-links{margin-top:-.35rem}.actuals-filter-bar label{flex:1 1 calc(50% - .5rem);max-width:calc(50% - .5rem);min-width:10rem}.actuals-filter-bar input,.actuals-filter-bar select{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.registration-request-detail{margin-left:5px;padding:1.15rem 1.2rem 1.2rem;overflow:visible}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{flex:1;padding-right:4.5rem;min-width:0}.password-toggle{position:absolute;right:.5rem;background:none;border:none;cursor:pointer;font-size:.8rem;color:var(--muted, #6b7280);padding:.25rem .4rem;box-shadow:none}.upload-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.upload-card label{display:grid;gap:.4rem;color:var(--muted);font-size:.95rem}.worker-preferences-card{display:grid;gap:.85rem;padding:1rem;border-radius:var(--radius-md);background:#fff9eeb8;border:1px solid var(--line)}.worker-preferences-header,.worker-preferences-footer{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;flex-wrap:wrap}.worker-preferences-header p,.worker-preferences-footer{margin:0;color:var(--muted);font-size:.9rem}.worker-preferences-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.65rem}.worker-preference-item{display:grid;gap:.2rem;padding:.8rem .9rem;border-radius:var(--radius-sm);background:#fffc;border:1px solid var(--line)}.worker-preference-label{font-size:.8rem;color:var(--muted)}.upload-file-field input[type=file]{min-width:0;padding:.75rem}.upload-help,.upload-selected-file,.upload-result-label{color:var(--muted)}.upload-help,.upload-selected-file{margin:.9rem 0 0}.upload-actions{margin-top:1rem;display:flex;justify-content:flex-start}.upload-result-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.upload-result-header h3,.upload-message-block h4{margin:0}.upload-result-grid{margin-top:1rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}.upload-result-grid>div{display:grid;gap:.3rem;padding:.9rem 1rem;border-radius:14px;background:#ffffff94;border:1px solid rgba(29,39,49,.08)}.upload-result-grid strong{font-size:1.6rem}.upload-message-block{margin-top:1rem;padding:1rem 1.1rem;border-radius:16px}.upload-message-block ul{margin:.65rem 0 0;padding-left:1.2rem}.upload-message-block.warning{background:#d98f2b24;border:1px solid rgba(217,143,43,.18)}.upload-message-block.error{background:#c8553d1a;border:1px solid rgba(200,85,61,.18)}.summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}.summary-card{padding:1.25rem;border-radius:var(--radius-md);border-top:4px solid var(--accent)}.summary-card p{margin:0 0 .8rem;color:var(--muted)}.summary-card strong{font-size:2rem}.two-column-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.table-card{overflow:hidden;border-radius:var(--radius-lg)}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:.95rem 1rem;text-align:left;border-bottom:1px solid rgba(29,39,49,.08);vertical-align:top}.data-table th{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#efe6d38c}.data-table--striped tbody tr:nth-child(2n){background:#1d273109}.data-table--striped tbody tr:nth-child(2n) td{border-bottom-color:#1d27310f}.status-badge{display:inline-flex;padding:.3rem .65rem;border-radius:999px;font-size:.82rem;font-weight:700}.status-badge.positive{background:#4a7c5924;color:#2f6541}.status-badge.active{background:#1e5fa824;color:#1a4f8a}.status-badge.inactive{background:#dc262624;color:#b91c1c}.status-badge.attention{background:#d98f2b2e;color:#9a5a00}.status-badge.closed,.status-badge.neutral{background:#2a6f9729;color:#1f5572}.pagination-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.pagination-actions{display:flex;gap:.75rem}.ghost-button,.primary-button{padding:.6rem 1rem;border-radius:10px;border:none;font-size:.85rem;font-weight:500;letter-spacing:.02em;transition:opacity .15s,box-shadow .15s}.ghost-button{background:#1d273117;color:var(--ink)}.ghost-button:hover:not(:disabled){background:#1d273126}.primary-button{background:linear-gradient(135deg,#c8553d,#d98f2b);color:#fff;font-weight:600;box-shadow:0 2px 8px #c8553d40}.primary-button:hover:not(:disabled){opacity:.9;box-shadow:0 4px 16px #c8553d59}.ghost-button:disabled,.primary-button:disabled{opacity:.45;cursor:not-allowed}.btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 1.1rem;border-radius:10px;border:none;font-size:.875rem;font-weight:500;letter-spacing:.02em;cursor:pointer;transition:opacity .15s,box-shadow .15s,background .15s;text-decoration:none}.btn-primary{background:linear-gradient(135deg,#c8553d,#d98f2b);color:#fff;font-weight:600;box-shadow:0 2px 8px #c8553d38}.btn-primary:hover:not(:disabled){opacity:.9;box-shadow:0 4px 16px #c8553d52}.btn-ghost{background:#1d273112;color:var(--ink);border:1px solid rgba(29,39,49,.13)}.btn-ghost:hover:not(:disabled){background:#1d273121}.btn-danger{background:linear-gradient(135deg,#b42318,#d92d20);color:#fff;font-weight:600;box-shadow:0 2px 8px #b4231838}.btn-danger:hover:not(:disabled){opacity:.92;box-shadow:0 4px 16px #b423184d}.btn-sm{padding:.3rem .7rem;font-size:.8rem;border-radius:7px}.btn:disabled{opacity:.45;cursor:not-allowed}.registration-link-card{position:relative;overflow:hidden;border:1px solid rgba(200,85,61,.12);background:linear-gradient(180deg,#fffcf6f5,#fff7ebf0),linear-gradient(135deg,#c8553d14,#d98f2b0f)}.registration-link-card:before{content:"";position:absolute;inset:0 auto auto 0;width:180px;height:180px;background:radial-gradient(circle,rgba(217,143,43,.16),transparent 68%);pointer-events:none}.registration-action-row{display:flex;gap:.75rem;flex-wrap:wrap}.registration-action-button{min-height:44px;padding:.65rem 1.15rem;border-radius:14px}.ocr-upload-link-form{display:grid;gap:1rem}.ocr-upload-link-form .form-field{display:grid;gap:.4rem;color:var(--muted);font-size:.95rem}.ocr-upload-link-form .form-field input,.ocr-upload-link-form .form-field select,.ocr-upload-link-form .form-field textarea{width:100%}.ocr-upload-link-form-actions{align-items:flex-end;display:flex;flex-wrap:nowrap;gap:.75rem}.ocr-upload-link-form-expiry input{max-width:6rem}.ocr-upload-link-form-expiry input[type=date]{max-width:11rem}.ocr-upload-link-expiry-mode select{min-width:6.5rem}.ocr-upload-link-panel.page-stack{gap:.6rem;padding:.8rem .95rem}.ocr-upload-link-title{font-size:1rem;margin:0}.ocr-upload-link-intro{font-size:.84rem;line-height:1.45;margin:0}.ocr-upload-link-panel .public-form-limit-note{margin:0;font-size:.82rem;line-height:1.4}.ocr-upload-link-panel .ocr-upload-link-form{gap:.5rem;grid-template-columns:repeat(2,minmax(0,1fr))}.ocr-upload-link-panel .ocr-upload-link-form .form-field{gap:.25rem;font-size:.84rem}.ocr-upload-link-panel .ocr-upload-link-form .form-field input,.ocr-upload-link-panel .ocr-upload-link-form .form-field select{padding:.38rem .55rem;font-size:.88rem;min-height:34px;box-sizing:border-box}.ocr-upload-link-panel .ocr-upload-link-form-actions{grid-column:1 / -1;gap:.5rem}.ocr-upload-link-panel .ocr-upload-link-form-actions .registration-action-button{flex:0 0 auto;margin-left:.15rem;white-space:nowrap}.ocr-upload-link-panel .registration-action-button{min-height:34px;padding:.4rem .8rem;font-size:.88rem}.ocr-upload-link-panel .upload-actions{margin:0}.ocr-upload-link-links-table-wrap{max-height:8.5rem;overflow:auto}.ocr-upload-link-panel .ocr-upload-link-table th,.ocr-upload-link-panel .ocr-upload-link-table td{padding:.35rem .5rem;font-size:.8rem}@media(max-width:720px){.ocr-upload-link-panel .ocr-upload-link-form{grid-template-columns:1fr}.ocr-upload-link-panel .ocr-upload-link-form-actions{flex-wrap:wrap}}.dashboard-action-row{display:flex;gap:.75rem;flex-wrap:wrap}.dashboard-action-button{min-height:44px;padding:.68rem 1.15rem;border-radius:14px}.dashboard-selection-button,.dashboard-chip-link{border-radius:999px}.dashboard-selection-button{background:linear-gradient(180deg,#fffffffa,#f5ecddf5);border-color:#c8553d29;box-shadow:0 10px 22px #1d273114}.dashboard-selection-button:hover:not(:disabled),.dashboard-chip-link:hover:not(:disabled){transform:translateY(-1px)}.dashboard-chip-link{min-height:38px}.price-view-switcher{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.price-view-button{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.8rem 1.2rem;border-radius:999px;border:1px solid rgba(29,39,49,.12);background:linear-gradient(180deg,#fffffff0,#f5ecddeb);color:var(--ink);font-weight:700;letter-spacing:.02em;box-shadow:0 10px 24px #1d273114;transition:transform .14s ease,box-shadow .14s ease,background .14s ease,color .14s ease,border-color .14s ease}.price-view-button:hover{transform:translateY(-1px);box-shadow:0 14px 26px #1d27311f;border-color:#c8553d47}.price-view-button.active{border-color:#c8553d47;background:linear-gradient(135deg,#c8553d,#d98f2b);color:#fffdf8;box-shadow:0 14px 32px #c8553d4d}.price-reset-button,.price-edit-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.65rem 1rem;border-radius:12px;border:1px solid rgba(29,39,49,.14);background:#ffffffe6;color:var(--ink);font-weight:700;transition:transform .14s ease,background .14s ease,box-shadow .14s ease,border-color .14s ease}.price-reset-button:hover,.price-edit-button:hover{transform:translateY(-1px);background:#fff9eefa;border-color:#c8553d3d;box-shadow:0 10px 22px #1d27311a}.price-reset-button{background:linear-gradient(180deg,#fffffff2,#efe6d3eb)}.price-edit-button{min-height:36px;padding:.45rem .85rem;border-radius:999px;background:#c8553d14;color:var(--accent);border-color:#c8553d2e}.price-edit-button:hover{background:#c8553d24}.empty-state,.error-state,.forbidden-card{padding:1.4rem;border-radius:var(--radius-md)}.error-state{border-color:#c8553d40}.topbar-version{display:inline-flex;align-items:center;gap:.5rem}.topbar-version-label{font-size:.76rem;color:var(--accent, #c86d3a);font-variant-numeric:tabular-nums;letter-spacing:.05em;padding:.35rem .7rem;border-radius:999px;background:#c86d3a14;border:1px solid rgba(200,109,58,.18);font-weight:800}.topbar-version-update{padding:.35rem .85rem;border-radius:999px;border:1.5px solid var(--primary, #2563eb);background:transparent;color:var(--primary, #2563eb);font-size:.75rem;font-weight:700;cursor:pointer;transition:background .15s,color .15s;animation:pulse-border 1.5s ease-in-out infinite}.topbar-version-update:hover{background:var(--primary, #2563eb);color:#fff}@keyframes pulse-border{0%,to{box-shadow:0 0 #2563eb4d}50%{box-shadow:0 0 0 4px #2563eb00}}.loading-overlay{min-height:220px;display:grid;place-content:center;gap:.9rem;color:var(--muted)}.loading-spinner{width:42px;height:42px;border-radius:50%;border:4px solid rgba(29,39,49,.12);border-top-color:var(--accent);animation:spin .9s linear infinite}.public-ocr-upload-card.is-uploading{opacity:.72;pointer-events:none}.public-ocr-upload-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:grid;place-items:center;padding:1.5rem;background:#0f172a94;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.public-ocr-upload-overlay-panel{width:min(100%,20rem);padding:1.75rem 1.5rem;border-radius:1.25rem;background:#fff;box-shadow:0 24px 60px #0f172a47;text-align:center}.public-ocr-upload-spinner{margin:0 auto;width:52px;height:52px;border-width:5px}.public-ocr-upload-overlay-title{margin:1rem 0 .35rem;color:#0f172a;font-size:1.1rem;font-weight:700}.public-ocr-upload-overlay-note{margin:0;color:#64748b;font-size:.92rem;line-height:1.5}.public-form-limit-note,.ocr-limit-accent{color:#b42318;font-weight:600}.public-form-limit-note{margin:0 0 .75rem;font-size:.92rem;line-height:1.5}.ocr-upload-link-limit-note{margin-top:.35rem}.public-ocr-upload-summary{display:grid;gap:.65rem;padding:.85rem 1rem;border-radius:12px;border:1px solid rgba(29,39,49,.1);background:#fffcf6e6}.public-ocr-upload-summary-headline{margin:0;font-size:1rem;font-weight:700;color:var(--ink)}.public-ocr-upload-failure-list{margin:0;padding-left:1.1rem;display:grid;gap:.45rem;color:#b42318;font-size:.9rem;line-height:1.45}.public-ocr-upload-failure-list li{display:grid;gap:.15rem}.public-ocr-upload-failure-list strong{color:#7f1d1d;font-weight:700}.public-ocr-upload-overlay-error{color:#b42318;font-weight:600}.public-ocr-upload-overlay-panel.is-error .public-ocr-upload-overlay-title{color:#b42318}.public-form-page{margin:0 auto;max-width:40rem;padding:1.25rem 1rem 2rem;padding-left:calc(1rem + 3px)}.public-form-page h1{margin:0 0 .75rem}.public-ocr-upload-label{margin:0 0 .5rem;color:#2563eb;font-size:1.05rem;font-weight:700;line-height:1.45}.public-ocr-upload-memo{margin:0 0 1rem;color:#0f172a;font-size:.98rem;font-weight:700;line-height:1.55}.public-ocr-upload-limit-note-bottom{margin:1rem 0 0}.public-ocr-upload-expiry{margin:.75rem 0 0;color:var(--muted);font-size:.88rem;line-height:1.5}.public-form-lead{color:var(--muted);margin:0 0 1rem}.public-form-note{color:var(--muted);font-size:.92rem;line-height:1.55}.public-form-note p{margin:0 0 .45rem}.public-ocr-upload-card .form-field{display:grid;gap:.4rem;color:var(--muted);font-size:.95rem}.public-ocr-upload-card .form-field input,.public-ocr-upload-card .form-field select{width:100%;padding:.8rem calc(.95rem + 3px);border-radius:12px;border:1px solid rgba(29,39,49,.15);background:#fff}.form-success{color:#027a48;margin:0}.login-screen{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(100%,460px);padding:2rem;border-radius:32px}.login-copy,.form-error{color:var(--muted)}.login-version-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.9rem;color:var(--muted);font-size:.9rem}.login-version-label{font-weight:600}.login-build-label{margin:.2rem 0 0;color:var(--muted);font-size:.78rem}.login-version-refresh{border:0;background:transparent;color:var(--accent);font:inherit;padding:0;cursor:pointer}.form-error{color:#9d2f23}.login-form{display:grid;gap:1rem;margin-top:1.2rem}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1100px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-column-grid{grid-template-columns:1fr}.upload-form-grid,.upload-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.app-shell,.app-shell--nav-collapsed{--side-nav-width: 100%;grid-template-columns:1fr}.side-nav{position:static;border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}.side-nav-toggle-bar{top:.75rem;right:1rem;left:1rem;opacity:1;visibility:visible;pointer-events:auto}.side-nav-body{padding:0 1rem 1.25rem}.side-nav.is-collapsed .side-nav-toggle-bar{left:1rem;right:1rem}.side-nav.is-collapsed .side-nav-body{padding:0 1rem 1.25rem}.side-nav.is-collapsed .side-nav-brand{justify-content:flex-start}.side-nav.is-collapsed .nav-link{justify-content:flex-start;padding:1rem}.side-nav.is-collapsed .nav-link-text{position:static;display:flex;min-width:0;max-width:none;padding:0;border:none;border-radius:0;background:transparent;box-shadow:none;transform:none;pointer-events:auto}.side-nav.is-collapsed .nav-link:hover .nav-link-text,.side-nav.is-collapsed .nav-link:focus-visible .nav-link-text{display:flex}.side-nav.is-collapsed .nav-link:hover,.side-nav.is-collapsed .nav-link.active{transform:translate(4px)}}@media(max-width:640px){.app-main{padding:1rem 1rem 2rem}.topbar-kicker,.topbar-version{align-items:flex-start}.topbar,.page-header,.pagination-bar{flex-direction:column;align-items:stretch}.summary-grid,.upload-form-grid,.upload-result-grid{grid-template-columns:1fr}.data-table th,.data-table td{padding:.75rem;font-size:.92rem}}.ocr-upload-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.15fr);gap:1rem;align-items:start}.ocr-upload-main{min-width:0}.ocr-drop-zone{border:1.5px dashed var(--line);border-radius:var(--radius-md);padding:1rem;background:#ffffff73}.ocr-drop-zone.drag-over{border-color:var(--accent);background:var(--accent-soft)}.ocr-drop-zone-header h3{margin:0 0 .25rem}.ocr-drop-zone-header p,.ocr-empty-hint{margin:0;color:var(--muted);font-size:.92rem}.ocr-drop-zone-input{display:block;margin:1rem 0;padding:.9rem 1rem;border-radius:var(--radius-sm);background:var(--panel-strong);text-align:center;cursor:pointer}.ocr-drop-zone-input input{display:none}.ocr-file-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.ocr-file-list li{display:grid;grid-template-columns:64px 1fr auto;gap:.75rem;align-items:center}.ocr-file-list .ocr-image-preview-trigger{width:64px;max-width:64px}.ocr-file-list .ocr-image-thumb-frame{width:64px;height:64px;overflow:hidden;border-radius:8px}.ocr-thumb{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}.ocr-image-thumb-frame{position:relative;display:inline-flex;flex-shrink:0}.ocr-image-thumb-frame .ocr-thumb,.ocr-image-thumb-frame .ocr-thumb-loading,.ocr-image-thumb-frame .ocr-thumb-fallback{width:100%;height:100%;object-fit:cover}.ocr-image-thumb-uploaded-at{position:absolute;left:0;right:0;bottom:0;padding:.12rem .2rem;background:#0f172ab8;color:#fff;font-size:.58rem;line-height:1.2;text-align:center;border-radius:0 0 8px 8px;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ocr-thumb-loading,.ocr-thumb-fallback{display:flex;align-items:center;justify-content:center;background:var(--panel-strong);color:var(--muted);font-size:.75rem}.ocr-image-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.ocr-image-card{display:flex;flex-direction:column;gap:.65rem;min-width:0;padding:.85rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffff8c}.ocr-image-card.is-duplicate{border-color:#f59e0b;background:#fffbeb}.ocr-image-card-top{display:flex;align-items:flex-start;gap:.65rem}.ocr-image-card .ocr-thumb{width:88px;height:88px;flex-shrink:0}.ocr-image-card-top .ocr-image-thumb-frame{width:88px;height:88px;overflow:hidden;border-radius:8px}.ocr-image-card-body{display:flex;flex-direction:column;gap:.35rem;min-width:0}.ocr-image-card-body strong{display:block;font-size:.92rem;line-height:1.35;word-break:break-all}.ocr-image-source{color:var(--muted);font-size:.84rem;line-height:1.35}.ocr-image-status-row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.ocr-image-meta{color:var(--muted);font-size:.8rem;white-space:nowrap}.ocr-image-card-select{display:flex;align-items:flex-start;padding-top:.15rem;flex-shrink:0}.ocr-select-all{display:inline-flex;align-items:center;gap:.4rem;margin-right:.75rem}.ocr-duplicate-badge{color:#b45309;font-size:.82rem;font-weight:600;margin:0}.ocr-image-error{margin:0;color:#b91c1c;font-size:.78rem;line-height:1.45;word-break:break-word}.ocr-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.ocr-section-header .page-header{flex:1;min-width:0}.ocr-section-toggle{flex-shrink:0;margin-top:.25rem}.ocr-image-toolbar{align-items:end}.ocr-image-toolbar-summary{color:var(--muted);font-size:.88rem;align-self:center}.ocr-image-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.ocr-image-row{display:grid;grid-template-columns:auto 1fr auto;gap:.65rem 1rem;align-items:center;padding:.65rem .75rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffff8c}.ocr-image-row.is-duplicate{border-color:#f59e0b;background:#fffbeb}.ocr-image-row:has(.ocr-image-error){grid-template-columns:auto 1fr auto;grid-template-rows:auto auto}.ocr-image-row .ocr-image-error{grid-column:2 / -1}.ocr-image-row-select{display:flex;align-items:center}.ocr-image-row-main{display:flex;flex-wrap:wrap;gap:.35rem 1rem;align-items:baseline;min-width:0}.ocr-image-row-name{font-weight:600;word-break:break-all}.ocr-image-row-meta{color:var(--muted);font-size:.84rem;white-space:nowrap}.ocr-image-row-status{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;justify-content:flex-end}.ocr-duplicate-badge-inline{color:#b45309;font-size:.78rem;font-weight:600}.ocr-external-badge-inline{color:#1d4ed8;font-size:.78rem;font-weight:600}.ocr-image-uploader-label{color:#334155;font-size:.82rem;font-weight:600;white-space:nowrap}.ocr-filename-display{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;min-width:0}.ocr-filename-display strong,.ocr-filename-preview-link{font-size:.92rem;line-height:1.35;word-break:break-all}.ocr-filename-preview-link{color:var(--accent);cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:.15em}.ocr-filename-clamp-2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:11rem;word-break:break-all}.ocr-image-preview-trigger{position:relative;display:inline-flex;max-width:100%}.ocr-image-preview-button{display:inline-flex;padding:0;border:none;background:transparent;cursor:zoom-in;line-height:0}.ocr-image-preview-trigger--filename .ocr-image-preview-button{line-height:inherit;cursor:zoom-in}.ocr-image-preview-popover{position:absolute;z-index:30;left:calc(100% + .5rem);top:50%;transform:translateY(-50%);padding:.35rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:0 10px 28px #0f172a2e;pointer-events:none}.ocr-image-preview-trigger--above .ocr-image-preview-popover{left:0;top:auto;bottom:calc(100% + .5rem);transform:none}.ocr-image-preview-popover img{display:block;width:100%;max-width:min(360px,70vw);max-height:min(480px,60vh);object-fit:contain;border-radius:6px}.ocr-image-preview-popover--portal{position:fixed;padding:.35rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:0 10px 28px #0f172a2e;pointer-events:none}.ocr-image-preview-popover--portal img{display:block;width:100%;max-width:min(360px,70vw);max-height:min(480px,60vh);object-fit:contain;border-radius:6px}.ocr-image-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#0f172ab8}.ocr-image-lightbox-panel{position:relative;max-width:min(96vw,1200px);max-height:92vh;padding:.75rem;background:#fff;border-radius:var(--radius-sm);box-shadow:0 24px 48px #0f172a47}.ocr-image-lightbox-image{display:block;max-width:min(94vw,1180px);max-height:calc(92vh - 2rem);object-fit:contain;border-radius:6px}.ocr-image-lightbox-close{position:absolute;top:.35rem;right:.35rem;width:2rem;height:2rem;border:none;border-radius:999px;background:#0f172a14;color:var(--text);font-size:1.25rem;line-height:1;cursor:pointer}.ocr-image-lightbox-close:hover{background:#0f172a24}.ocr-row-review-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172ab8}.ocr-row-review-panel{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:0;width:min(96vw,1320px);max-height:92vh;background:#fff;border-radius:var(--radius-sm);box-shadow:0 24px 48px #0f172a47;overflow:hidden}.ocr-row-review-close{position:absolute;top:.5rem;right:.5rem;z-index:2;width:2rem;height:2rem;border:none;border-radius:999px;background:#0f172a14;color:var(--text);font-size:1.25rem;line-height:1;cursor:pointer}.ocr-row-review-close:hover{background:#0f172a24}.ocr-row-review-image-pane{position:relative;display:flex;align-items:center;justify-content:center;min-height:280px;padding:1rem;background:#f8fafc;overflow:auto}.ocr-row-review-image{display:block;max-width:100%;max-height:calc(92vh - 2rem);object-fit:contain;border-radius:6px}.ocr-row-review-image-fallback{color:var(--muted);font-size:.95rem}.ocr-row-review-data-pane{display:flex;flex-direction:column;gap:0;min-height:0;max-height:92vh;padding:0;overflow:hidden;border-left:1px solid var(--border)}.ocr-row-review-data-header{flex-shrink:0;display:flex;flex-direction:column;gap:.75rem;padding:1rem 1rem .5rem}.ocr-row-review-data-body{flex:1;min-height:0;overflow-y:auto;padding:0 1rem}.ocr-row-review-data-footer{flex-shrink:0;display:flex;flex-direction:column;gap:.5rem;padding:.75rem 1rem 1.25rem;border-top:1px solid var(--border);background:#fff}.ocr-row-review-data-pane h3{margin:0;padding-right:2rem;font-size:1.05rem}.ocr-row-review-edit-heading{margin:.25rem 0 0;font-size:.92rem;color:var(--muted)}.ocr-row-review-summary{display:flex;flex-direction:column;gap:.5rem}.ocr-row-review-filename{margin:0;font-size:.85rem;color:var(--muted);word-break:break-all}.ocr-row-review-badges{display:flex;flex-wrap:wrap;gap:.35rem}.ocr-row-review-validation{margin:0;font-size:.88rem;max-height:3.2em;overflow-y:auto;line-height:1.45}.ocr-row-review-validation--ok{color:var(--positive)}.ocr-confirmed-text{color:#14532d;font-weight:600}.ocr-row-review-readonly{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .75rem;margin:0;padding:.65rem .75rem;font-size:.85rem;background:#f8fafc;border-radius:var(--radius-sm)}.ocr-row-review-fields{display:flex;flex-direction:column;gap:0;margin:.25rem 0 .5rem;padding:.35rem .5rem;background:#f8fafc;border-radius:var(--radius-sm)}.ocr-row-review-field-row{display:grid;grid-template-columns:minmax(6.5rem,7.5rem) minmax(0,1fr) auto;align-items:center;gap:.5rem .65rem;padding:.45rem .35rem;border-bottom:1px solid var(--border);font-size:.88rem}.ocr-row-review-field-row:last-child{border-bottom:none}.ocr-row-review-field-row--editing{grid-template-columns:minmax(6.5rem,7.5rem) minmax(0,1fr) auto}.ocr-row-review-field-row--terminal-id-edit{grid-template-columns:minmax(6.5rem,7.5rem) minmax(0,1fr);align-items:start}.ocr-row-review-field-row--terminal-id-edit .ocr-row-review-field-actions{grid-column:2;justify-content:flex-end;margin-top:.35rem}.ocr-row-review-field-editor{grid-column:2 / -1;min-width:0}.ocr-row-review-field-label{color:var(--muted);font-weight:500;white-space:nowrap}.ocr-row-review-field-value{min-width:0;word-break:break-word}.ocr-row-review-field-value--mono,.ocr-row-review-field-input--mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem}.ocr-row-review-field-input{width:100%;min-width:0;padding:.3rem .45rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.88rem}.ocr-row-review-field-actions{display:flex;gap:.25rem;flex-shrink:0}.ocr-row-review-field-edit{flex-shrink:0;padding-inline:.55rem;font-size:.82rem}.ocr-row-review-dirty-note{margin:0;font-size:.82rem;color:var(--muted)}.ocr-row-review-readonly div{min-width:0}.ocr-row-review-readonly dt{margin:0;color:var(--muted);font-weight:500}.ocr-row-review-readonly dd{margin:.1rem 0 0;word-break:break-word}.ocr-row-review-uuid{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}.ocr-row-review-actions{margin-top:0;flex-wrap:wrap}.ocr-terminal-id-segment-input{display:flex;flex-direction:column;gap:.35rem;width:100%}.ocr-terminal-id-segment-input-row{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem}.ocr-terminal-id-segment-input-group{display:inline-flex;align-items:center;gap:.1rem}.ocr-terminal-id-segment-input-field{width:3.1rem;padding:.28rem .35rem;border:1px solid var(--border);border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;text-transform:lowercase}.ocr-terminal-id-segment-input-row:first-child .ocr-terminal-id-segment-input-group:first-child .ocr-terminal-id-segment-input-field{width:4.6rem}.ocr-terminal-id-segment-input-row:last-child .ocr-terminal-id-segment-input-group:last-child .ocr-terminal-id-segment-input-field{width:6.8rem}.ocr-terminal-id-segment-input-sep{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;-webkit-user-select:none;user-select:none}.ocr-terminal-id-segment-input-hint{margin:0;font-size:.78rem;color:var(--muted)}.ocr-row-review-confirmed-note{align-self:center;color:var(--positive);font-size:.9rem;font-weight:600}.ocr-row-review-readonly-wide{grid-column:1 / -1}.ocr-field-confidence-legend{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:center;font-size:.78rem}.ocr-field-confidence-legend-title{color:var(--muted)}.ocr-field-confidence{display:inline-flex;align-items:baseline;gap:.35rem;font-weight:600}.ocr-field-confidence--high{color:var(--text)}.ocr-field-confidence--medium{color:#2563eb}.ocr-field-confidence--low{color:#ea580c}.ocr-field-confidence-badge{font-size:.72rem;font-weight:500;opacity:.85}.ocr-terminal-id-cell{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}.ocr-terminal-id-display{display:flex;flex-direction:column;gap:.12rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:inherit;font-weight:inherit;line-height:1.4;word-break:normal}.ocr-terminal-id-display-line{display:block;white-space:nowrap}.ocr-field-confidence:has(.ocr-terminal-id-display){align-items:flex-start;gap:.35rem .5rem}.ocr-saved-data-confidence-legend{margin-bottom:.75rem}.ocr-terminal-id-edit-preview{display:flex;flex-direction:column;gap:.1rem;margin-bottom:.35rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:inherit}.ocr-partial-extract-badge{border:1px solid #ea580c;border-radius:999px;background:#ea580c14;color:#c2410c;cursor:default;font-size:.72rem;font-weight:600;line-height:1.2;padding:.15rem .55rem}.ocr-row-review-panel--reparsing .ocr-row-review-image{opacity:.55;filter:grayscale(.15)}.ocr-row-review-reparse-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65rem;background:#ffffffb8;color:var(--accent);font-size:.95rem;font-weight:600}.ocr-row-review-reparse-spinner{width:2rem;height:2rem;border:3px solid rgba(200,85,61,.2);border-top-color:var(--accent);border-radius:50%;animation:ocr-reparse-spin .9s linear infinite}.ocr-reparse-button--active{animation:ocr-parse-pulse 1.2s ease-in-out infinite}@keyframes ocr-reparse-spin{to{transform:rotate(360deg)}}@media(max-width:900px){.ocr-row-review-panel{grid-template-columns:1fr;max-height:96vh;overflow:auto}.ocr-row-review-data-pane{border-left:none;border-top:1px solid var(--border)}.ocr-row-review-image{max-height:42vh}}.ocr-filename-edit{font-size:.78rem;padding:.1rem .35rem}.ocr-filename-editor{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;min-width:0}.ocr-filename-editor input{min-width:8rem;flex:1 1 8rem}.ocr-image-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:.5rem}.ocr-warning-text{color:#9a3412;font-size:.9rem}.ocr-muted-text{color:var(--muted)}.ocr-row-labels{display:flex;flex-wrap:wrap;gap:.25rem}.ocr-quality-badge{display:inline-flex;align-items:center;padding:.1rem .45rem;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.ocr-quality-badge--warning{background:#ffedd5;color:#9a3412}.ocr-quality-badge--danger{background:#fee2e2;color:#b91c1c}.ocr-quality-badge--info{background:#dbeafe;color:#1d4ed8}.ocr-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172a73}.ocr-modal-card{width:min(560px,100%);background:#fff;border-radius:var(--radius-md);border:1px solid var(--line);padding:1rem 1.1rem;box-shadow:0 16px 40px #0f172a2e}.ocr-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1rem 0}.ocr-edit-grid label{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem}.ocr-modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.ocr-saved-status-filter-toggle.is-active{border-color:#c8553d59;background:#c8553d1f;color:#9a3412}.ocr-sort-button{display:inline-flex;align-items:center;gap:.25rem;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer}.ocr-sort-button:hover{color:var(--accent, #2563eb)}.ocr-sort-indicator{font-size:.72rem;opacity:.75}.ocr-row-actions,.ocr-image-row-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.ocr-inline-delete{color:#b91c1c}.ocr-saved-data-tabs{display:flex;flex-wrap:wrap;gap:.4rem;align-items:flex-end;padding:.5rem .55rem 0;border:1.5px solid #475569;border-bottom:2px solid #334155;border-radius:.65rem .65rem 0 0;background:linear-gradient(180deg,#edf1f5,#e2e8f0)}.ocr-data-section-tabs{margin-top:.25rem}.ocr-data-section-shell{border:1.5px solid #475569;border-radius:.65rem;overflow:hidden;background:#fff}.ocr-data-section-shell .ocr-data-section-tabs,.ocr-data-section-shell .ocr-source-type-tabs{margin-top:0;border:none;border-radius:0;background:linear-gradient(180deg,#edf1f5,#e2e8f0)}.ocr-data-section-shell .ocr-saved-data-tab{margin-bottom:0}.ocr-data-section-shell .ocr-saved-data-tab.is-active{border-bottom-color:#fff;margin-bottom:-1px;padding-bottom:calc(.52rem + 1px);z-index:1}.ocr-data-section-panel,.ocr-source-type-panel{background:#fff;padding:1rem 1.2rem 1.2rem;margin:0;border:none;border-radius:0;box-shadow:none}.ocr-source-type-shell .ocr-source-type-tabs{margin-bottom:0}.ocr-saved-data-tab{display:inline-flex;align-items:center;gap:.45rem;border:1.5px solid #64748b;border-bottom:none;border-radius:.45rem .45rem 0 0;background:#d8dee8;color:#334155;cursor:pointer;font:inherit;font-size:.92rem;font-weight:600;margin-bottom:-2px;padding:.52rem .95rem;transition:background .15s ease,color .15s ease,border-color .15s ease}.ocr-saved-data-tab:hover:not(.is-active){background:#eef2f6;border-color:#475569;color:#0f172a}.ocr-saved-data-tab.is-active{background:#fff;border-color:#334155;border-bottom-color:#fff;color:#0f172a;padding-bottom:calc(.52rem + 2px);position:relative;z-index:1}.ocr-saved-data-tab:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.ocr-saved-data-tab-count{background:#f1f5f9;border-radius:999px;color:#475569;font-size:.78rem;font-weight:500;line-height:1;padding:.2rem .45rem}.ocr-saved-data-tab.is-active .ocr-saved-data-tab-count{background:#e0e7ff;color:#3730a3}.filter-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end}.filter-row label{display:flex;flex-direction:column;gap:.35rem;min-width:140px}@media(max-width:900px){.ocr-upload-layout{grid-template-columns:1fr}}.app-notification-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:radial-gradient(circle at top,rgba(200,85,61,.12),transparent 42%),#0f172a85;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:app-notification-fade-in .18s ease-out}.app-notification-card{width:min(460px,100%);display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;padding:1.35rem 1.4rem 1.15rem;border-radius:calc(var(--radius-md) + 4px);border:1px solid rgba(29,39,49,.08);background:linear-gradient(180deg,#fffcf6fa,#fff9eefa);box-shadow:0 24px 60px #1d27312e,inset 0 1px #ffffffbf;animation:app-notification-rise-in .22s cubic-bezier(.22,1,.36,1)}.app-notification-icon{width:3rem;height:3rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;color:var(--notification-accent);background:var(--notification-soft)}.app-notification-icon svg{width:1.45rem;height:1.45rem}.app-notification-body{min-width:0}.app-notification-eyebrow{margin:0 0 .2rem;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--notification-accent)}.app-notification-title{margin:0;font-size:1.2rem;line-height:1.35;color:var(--ink)}.app-notification-message{margin:.55rem 0 0;color:var(--muted);line-height:1.6}.app-notification-detail{margin:.65rem 0 0;padding:.7rem .8rem;border-radius:var(--radius-sm);background:#1d27310a;color:#475467;font-size:.86rem;line-height:1.5;word-break:break-word}.app-notification-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;margin-top:.55rem}.app-notification-button{min-width:7rem}@keyframes app-notification-fade-in{0%{opacity:0}to{opacity:1}}@keyframes app-notification-rise-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.ocr-parse-progress{margin-top:.85rem;padding:.95rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:linear-gradient(180deg,#fffcf6f5,#fff9eeeb)}.ocr-parse-progress-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.55rem}.ocr-parse-progress-header strong{color:var(--ink)}.ocr-parse-progress-header span{color:var(--muted);font-size:.92rem}.ocr-parse-progress--active .ocr-parse-progress-header strong:after{content:"";display:inline-block;width:.45rem;height:.45rem;margin-left:.35rem;border-radius:50%;background:var(--accent);vertical-align:.05em;animation:ocr-parse-pulse 1.2s ease-in-out infinite}.ocr-parse-progress-bar{position:relative;height:.65rem;border-radius:999px;background:#1d273114;overflow:hidden}.ocr-parse-progress-bar--active{background:#1d27311a}.ocr-parse-progress-fill{position:relative;height:100%;border-radius:inherit;background:linear-gradient(90deg,#c8553d,#d98f2b);transition:width .24s ease}.ocr-parse-progress-fill--active:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(-45deg,#fff0 0,#fff0 8px,#ffffff38 8px,#ffffff38 16px);background-size:22.6px 22.6px;animation:ocr-parse-stripe .75s linear infinite}.ocr-parse-progress-indeterminate{position:absolute;top:0;bottom:0;left:0;width:35%;border-radius:inherit;background:linear-gradient(90deg,#fff0,#ffffff59,#fff0);animation:ocr-parse-shimmer 1.4s ease-in-out infinite;pointer-events:none}@keyframes ocr-parse-stripe{0%{background-position:0 0}to{background-position:22.6px 0}}@keyframes ocr-parse-shimmer{0%{transform:translate(-120%);opacity:.4}50%{opacity:.85}to{transform:translate(320%);opacity:.4}}@keyframes ocr-parse-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.ocr-parse-progress--active .ocr-parse-progress-header strong:after,.ocr-parse-progress-fill--active:after,.ocr-parse-progress-indeterminate{animation:none}.ocr-parse-progress--active .ocr-parse-progress-header strong:after{opacity:.85}}.ocr-parse-progress-meta{margin:.55rem 0 0;color:var(--muted);font-size:.88rem}.ocr-parse-progress-errors,.ocr-parse-result-errors{margin:.55rem 0 0;padding-left:1.1rem;color:#b42318;font-size:.88rem}.ocr-parse-progress-errors li+li,.ocr-parse-result-errors li+li{margin-top:.35rem}.ocr-parse-progress-trigger{position:relative;display:inline-flex;align-items:center;gap:.35rem}.ocr-parse-progress-trigger--active .primary-button,.ocr-parse-progress-trigger--active .ghost-button{box-shadow:0 0 0 2px #c8553d47}.ocr-parse-progress-trigger-hint{font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--accent);text-transform:uppercase;animation:ocr-parse-pulse 1.2s ease-in-out infinite}.ocr-parse-progress-popover--portal{padding:0;border:none;background:transparent;pointer-events:auto}.ocr-parse-progress-popover--portal .ocr-parse-progress{margin-top:0;box-shadow:0 12px 32px #1d273129}.ocr-parse-actions{flex-wrap:wrap;align-items:center;gap:.75rem}.ocr-parse-actions-hover{display:inline-flex;align-items:center;gap:.35rem}.ocr-parse-actions-hint{font-size:.82rem;color:var(--muted);cursor:help}.confirm-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172ab8}.confirm-dialog-panel{width:min(92vw,420px);padding:1.25rem;background:#fff;border-radius:var(--radius-sm);box-shadow:0 24px 48px #0f172a47}.confirm-dialog-panel h3{margin:0 0 .75rem;font-size:1.05rem}.confirm-dialog-message{margin:0 0 1rem;white-space:pre-line;line-height:1.5}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}.confirm-dialog-danger{background:#c8553d;border-color:#c8553d}.ocr-row-review-filename-row{display:flex;flex-direction:column;gap:.35rem}.ocr-row-review-filename-input{width:100%;padding:.35rem .5rem;border:1px solid var(--border);border-radius:4px;font-size:.85rem}.ocr-row-review-filename-edit{align-self:flex-start;padding-inline:0;font-size:.82rem}.ocr-row-review-filename-hint{margin:0;font-size:.78rem;color:var(--muted)}.ocr-row-review-sibling-progress{margin:0;font-size:.82rem;color:var(--muted)}.ocr-filename-tidy-badge{display:inline-flex;align-items:center;padding:.1rem .45rem;border-radius:999px;font-size:.72rem;font-weight:600;color:#8a5a00;background:#fff4d6;border:1px solid #f0d48a}.ocr-rename-prompt-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1400;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0f172ab8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ocr-rename-prompt-panel{position:relative;width:min(92vw,34rem);padding:1.35rem 1.5rem;border-radius:var(--radius-sm);background:#fff;border:1px solid rgba(29,39,49,.1);box-shadow:0 24px 48px #0f172a47;color:var(--ink)}.ocr-rename-prompt-panel h3{margin:0 0 .5rem;font-size:1.1rem;font-weight:700;color:var(--ink)}.ocr-rename-prompt-lead,.ocr-rename-prompt-meta{margin:0 0 .75rem;font-size:.92rem;line-height:1.5;color:var(--muted)}.ocr-rename-prompt-names{margin:0 0 1.1rem;display:grid;gap:.75rem}.ocr-rename-prompt-names div{display:grid;gap:.35rem;padding:.65rem .75rem;border-radius:8px;background:#f7f4ee;border:1px solid var(--line)}.ocr-rename-prompt-names dt{font-size:.75rem;font-weight:600;color:var(--muted)}.ocr-rename-prompt-names dd{margin:0;font-size:.9rem;font-weight:600;line-height:1.45;word-break:break-all;color:var(--ink)}.ocr-rename-prompt-edit{display:grid;gap:.35rem;margin-bottom:1rem;font-size:.82rem;color:var(--ink)}.ocr-rename-prompt-edit input{width:100%;padding:.55rem .65rem;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff;color:var(--ink)}.ocr-rename-prompt-footnote{margin:0 0 1rem;font-size:.82rem;line-height:1.45;color:var(--muted)}.ocr-filename-tidy-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding:.85rem 1rem;border-radius:var(--radius-sm);background:#fff4d6;border:1px solid #f0d48a}.ocr-filename-tidy-banner-text{display:grid;gap:.25rem;font-size:.88rem;line-height:1.45;color:var(--ink)}.ocr-filename-tidy-banner-actions{display:flex;flex-wrap:wrap;gap:.5rem}.ocr-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;margin-left:.35rem;padding:0 .35rem;border-radius:999px;font-size:.72rem;font-weight:700;line-height:1;color:#8a5a00;background:#fff4d6;border:1px solid #f0d48a}.ocr-saved-row-filename-cell{display:grid;gap:.25rem;justify-items:start}.ocr-saved-row-filename-action{padding-inline:0;font-size:.78rem}.ocr-row-review-filename-actions{display:flex;flex-wrap:wrap;gap:.35rem}.ocr-rename-prompt-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;padding-top:.25rem;border-top:1px solid var(--line)}
