:root{--bg-top:#f3ede2;--bg-bottom:#eef3f1;--panel-bg:#fffcf6b8;--panel-soft:#fff8eec7;--panel-line:#1b2c3a1f;--panel-shadow:0 18px 60px #242d3414, 0 6px 18px #242d340f;--text:#5e676b;--text-strong:#10212c;--accent:#d35d29;--sans:"Avenir Next", "Segoe UI Variable", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", sans-serif;--heading:"Iowan Old Style", "Palatino Linotype", "Songti SC", serif;font-family:var(--sans);color:var(--text);background:radial-gradient(circle at top left, #f3794729, transparent 28%), radial-gradient(circle at top right, #0c908924, transparent 24%), linear-gradient(180deg, var(--bg-top), var(--bg-bottom));font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.55}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;color:var(--text);margin:0}body:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff14 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px);background-size:48px 48px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#0000004d,#0000 85%);mask-image:linear-gradient(#0000004d,#0000 85%)}#root{min-height:100vh}h1,h2,h3{color:var(--text-strong);margin:0}h1{font-family:var(--heading);letter-spacing:-.04em;max-width:12ch;font-size:clamp(2.8rem,4vw,4.6rem);line-height:.98}h2{letter-spacing:-.03em;font-size:1.2rem}h3{letter-spacing:-.02em;font-size:1rem}p{margin:0}button,input,select{font:inherit}img{max-width:100%}.app-shell{width:min(1480px,100vw - 32px);margin:0 auto;padding:32px 0 56px}.app-header{align-items:center;gap:14px;margin-bottom:20px;display:flex}.brand-mark{background:linear-gradient(135deg,#f379472e,#0c908929);border:1px solid #f3794729;border-radius:18px;place-items:center;width:52px;height:52px;display:grid;box-shadow:0 14px 28px #10212c14}.brand-mark img{width:30px;height:30px;display:block}.brand-copy{gap:4px;display:grid}.brand-copy h1{color:var(--text-strong);margin:0;font-size:28px;line-height:1.1}.brand-copy p{color:var(--text);margin:0;font-size:13px}.layout-grid{grid-template-columns:320px minmax(0,1fr);align-items:start;gap:20px;display:grid}.panel{background:var(--panel-bg);border:1px solid var(--panel-line);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:28px}.control-panel{gap:18px;padding:24px;display:grid;position:sticky;top:20px}.preview-stack{gap:20px;display:grid}.preview-panel{gap:18px;padding:24px;display:grid}.panel-heading{gap:8px;display:grid}.panel-heading p{max-width:64ch}.field{gap:10px;display:grid}.field>span{color:var(--text-strong);font-size:14px}.field input[type=file],.field input[type=number]{box-sizing:border-box;border:1px solid var(--panel-line);width:100%;color:var(--text-strong);font:inherit;background:#fffc;border-radius:16px;padding:12px 14px}.field.compact{gap:8px}.segmented,.preset-grid,.replacement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.preset-grid,.replacement-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.replacement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.segmented button,.preset-grid button,.replacement-grid button,.primary-action,.secondary-action,.tertiary-action,.ghost-action{border:1px solid var(--panel-line);font:inherit;cursor:pointer;border-radius:16px;transition:transform .16s,border-color .16s,background .16s,color .16s}.segmented button,.preset-grid button,.replacement-grid button{color:var(--text-strong);background:#ffffffb8;padding:12px 14px;font-size:13px;font-weight:500;line-height:1.3}.segmented button.active,.preset-grid button.active,.replacement-grid button.active{background:linear-gradient(135deg,#f3794726,#0c908924);border-color:#f3794766}.range-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.range-row strong{color:var(--text-strong);text-align:right;min-width:54px}input[type=range]{accent-color:var(--accent)}.advanced-panel{border:1px solid var(--panel-line);background:#ffffff70;border-radius:20px;padding:14px 14px 4px}.advanced-panel summary{cursor:pointer;color:var(--text-strong);margin-bottom:12px}.toggle-card{border:1px solid var(--panel-line);cursor:pointer;background:#ffffff8f;border-radius:20px;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px;display:flex}.toggle-copy{gap:6px;display:grid}.toggle-copy strong{color:var(--text-strong);font-size:14px}.toggle-copy p{color:var(--text);margin:0;font-size:13px;line-height:1.5}.toggle-card input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);margin-top:2px}.sample-card{background:var(--panel-soft);border:1px solid var(--panel-line);border-radius:20px;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.sample-label{letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:12px}.color-chip{border:2px solid #ffffffeb;border-radius:999px;width:44px;height:44px;box-shadow:0 10px 24px #10212c2e}.sample-point-list{gap:10px;display:grid}.sample-point-item{border:1px solid var(--panel-line);background:#ffffffb8;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.sample-point-meta{align-items:center;gap:12px;min-width:0;display:flex}.sample-point-meta div{gap:4px;min-width:0;display:grid}.sample-point-meta strong{color:var(--text-strong);font-size:14px}.sample-point-meta span:last-child{color:var(--text);font-size:12px}.sample-point-chip{border:2px solid #ffffffeb;border-radius:999px;flex:none;width:18px;height:18px;box-shadow:0 6px 16px #10212c29}.button-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.primary-action,.secondary-action,.tertiary-action,.ghost-action,.mini-ghost-action{padding:14px 18px;font-size:13px;font-weight:500;line-height:1.3}.primary-action{color:#fff7f3;background:linear-gradient(135deg,#f37947,#df5339);border-color:#0000}.secondary-action{color:var(--text-strong);background:#ffffffb3}.tertiary-action{color:var(--text-strong);background:linear-gradient(135deg,#0c90891f,#3972de1f)}.ghost-action{color:var(--text-strong);background:#ffffffbd;border-radius:14px;padding:8px 12px}.mini-ghost-action{color:var(--text-strong);border:1px solid var(--panel-line);cursor:pointer;background:#ffffffc7;border-radius:12px;padding:6px 10px;font-size:12px;font-weight:500}.primary-action:disabled,.secondary-action:disabled,.tertiary-action:disabled,.ghost-action:disabled,.mini-ghost-action:disabled,.replacement-grid button:disabled{opacity:.45;cursor:not-allowed}.primary-action:not(:disabled):hover,.secondary-action:not(:disabled):hover,.tertiary-action:not(:disabled):hover,.ghost-action:not(:disabled):hover,.mini-ghost-action:not(:disabled):hover,.segmented button:hover,.preset-grid button:hover,.replacement-grid button:hover{transform:translateY(-1px)}.error-text{color:#ad2e2a;margin:0;font-size:14px}.helper-text{color:var(--text);margin:0;font-size:13px}.notice-card{border:1px solid var(--panel-line);background:#ffffffa8;border-radius:22px;gap:10px;padding:16px 18px;display:grid}.notice-card.success{background:linear-gradient(135deg,#0c90891f,#3972de1a)}.notice-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.notice-heading strong{color:var(--text-strong);font-size:14px}.notice-badge{color:var(--text-strong);white-space:nowrap;background:#ffffffc2;border:1px solid #0c90892e;border-radius:999px;padding:5px 10px;font-size:12px}.notice-card p{color:var(--text);margin:0;font-size:13px;line-height:1.6}.notice-meta{color:var(--text);flex-wrap:wrap;gap:8px 14px;font-size:12px;display:flex}.text-selection-panel{border:1px solid var(--panel-line);background:#ffffff80;border-radius:20px;gap:12px;padding:14px;display:grid}.text-selection-toolbar{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.text-selection-toolbar strong{color:var(--text-strong);font-size:13px;line-height:1.5}.text-selection-actions{flex-wrap:wrap;gap:8px;display:flex}.selectable-text-list{gap:10px;max-height:280px;display:grid;overflow:auto}.selectable-text-item{border:1px solid var(--panel-line);cursor:pointer;background:#ffffffb8;border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;padding:12px 14px;transition:transform .16s,border-color .16s,background .16s;display:grid}.selectable-text-item:hover{transform:translateY(-1px)}.selectable-text-item.selected{background:linear-gradient(135deg,#f379471f,#0c90891a);border-color:#f379475c}.selectable-text-item.edited{box-shadow:inset 0 0 0 1px #0c908938}.selectable-text-item input[type=checkbox]{accent-color:var(--accent);margin-top:3px}.text-line-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.text-line-copy{color:var(--text-strong);word-break:break-word;line-height:1.5}.text-line-editor{gap:8px;margin-top:10px;display:grid}.text-line-editor span{color:var(--text);font-size:12px}.text-line-input{box-sizing:border-box;border:1px solid var(--panel-line);width:100%;color:var(--text-strong);font:inherit;background:#ffffffe6;border-radius:14px;padding:10px 12px}.text-line-input:focus{border-color:#f379476b;outline:2px solid #f3794733}.text-line-meta{color:var(--text);word-break:break-word;margin-top:4px;font-size:12px;line-height:1.5}.preview-frame,.result-card{border:1px solid var(--panel-line);background:#f8f6efc2;border-radius:24px;min-height:320px;overflow:hidden}.source-frame{padding:12px}.preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.result-card{gap:14px;padding:16px;display:grid}.result-card h3{margin:0;font-size:16px}.image-stage{place-items:center;min-height:320px;display:grid;position:relative}.image-stage img,.result-image{object-fit:contain;width:100%;height:100%;display:block}.sample-target{pointer-events:none;background:#f3794740;border:2px solid #fff7f3;border-radius:999px;width:18px;height:18px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 6px #f379471f,0 12px 22px #07121c38}.sample-target:before,.sample-target:after{content:"";background:#fff7f3;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sample-target:before{width:2px;height:30px}.sample-target:after{width:30px;height:2px}.sample-target-label{color:#fff7f3;font-size:11px;font-weight:700;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-state{text-align:center;place-content:center;gap:10px;min-height:100%;padding:28px;display:grid}.empty-state.compact{min-height:220px}.empty-state strong{color:var(--text-strong)}.checkerboard{background-image:linear-gradient(45deg,#11223114 25%,#0000 25%),linear-gradient(-45deg,#11223114 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#11223114 75%),linear-gradient(-45deg,#0000 75%,#11223114 75%);background-position:0 0,0 12px,12px -12px,-12px 0;background-size:24px 24px}.stats-section{gap:18px;margin-top:20px;padding:24px;display:grid}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.ocr-result-panel{background:var(--panel-soft);border:1px solid var(--panel-line);border-radius:22px;gap:12px;padding:18px;display:grid}.text-block-list{gap:10px;max-height:320px;display:grid;overflow:auto}.text-block-item{border:1px solid var(--panel-line);background:#ffffffad;border-radius:16px;gap:6px;padding:12px 14px;display:grid}.text-block-item strong{color:var(--text-strong);font-size:13px}.text-block-item span,.meta-line{font-size:14px}.stat-card{background:var(--panel-soft);border:1px solid var(--panel-line);border-radius:22px;gap:8px;padding:16px;display:grid}.stat-card span{color:var(--text);font-size:13px}.stat-card strong{color:var(--text-strong);font-size:20px}.stat-card.accent{background:linear-gradient(135deg,#f3794724,#0c908929)}@media (width<=1200px){.layout-grid{grid-template-columns:1fr}.control-panel{position:static}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.app-shell{width:min(100vw - 20px,1480px);padding:20px 0 36px}.app-header{margin-bottom:16px}.brand-mark{border-radius:16px;width:46px;height:46px}.brand-copy h1{font-size:22px}.preview-grid,.button-row,.stats-grid,.mineru-grid,.preset-grid,.replacement-grid,.segmented{grid-template-columns:1fr}.text-selection-toolbar,.toggle-card,.notice-heading{flex-direction:column}.panel,.preview-panel,.control-panel,.stats-section{border-radius:22px}}
