*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}.splash-screen{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:linear-gradient(#0a14238c,#0a14238c),url(/bluepond.jpg) center / cover no-repeat;transition:opacity .8s ease}.splash-enter,.splash-hold{opacity:1}.splash-exit{opacity:0;pointer-events:none}.splash-content{text-align:center;color:#fff}.splash-title{font-size:clamp(2.5rem,7vw,5rem);font-weight:800;letter-spacing:.18em;text-shadow:0 2px 30px rgba(0,100,180,.5),0 0 60px rgba(50,150,220,.25);animation:splash-title-in .8s cubic-bezier(.16,1,.3,1) both}.splash-subtitle{font-size:clamp(.75rem,2vw,1.1rem);letter-spacing:.35em;text-transform:uppercase;opacity:0;color:#c8e1ffd9;animation:splash-sub-in .6s ease .4s both}.splash-description{font-size:clamp(.65rem,1.5vw,.85rem);letter-spacing:.08em;color:#dcebffd9;opacity:0;margin-top:.5rem;animation:splash-sub-in .6s ease .6s both}.splash-line{width:0;height:2px;margin:1rem auto 0;background:linear-gradient(90deg,transparent,rgba(150,200,255,.6),transparent);animation:splash-line-in .8s ease .6s both}@keyframes splash-title-in{0%{opacity:0;transform:translateY(20px) scale(.92);letter-spacing:.4em}to{opacity:1;transform:translateY(0) scale(1);letter-spacing:.18em}}@keyframes splash-sub-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes splash-line-in{0%{width:0}to{width:min(300px,60vw)}}.bluepond-blue{color:var(--color-primary)}.bluepond-blue-splash{color:#60b5e8}:root{--color-bg: #f0f7fc;--color-surface: #ffffff;--color-surface-rgb: 255, 255, 255;--color-surface-elevated: #f6fbff;--color-border: #b8d4e8;--color-border-light: #daeaf5;--color-text: #1c3348;--color-text-secondary: #4a6d8a;--color-text-tertiary: #7fa3be;--color-primary: #3a9ec9;--color-primary-hover: #2d86ad;--color-primary-light: #e6f3fb;--color-primary-subtle: #bde0f2;--color-secondary: #6a92aa;--color-secondary-hover: #4e7a96;--color-danger: #c44b3f;--color-danger-light: #fdf0ee;--color-success: #2a9a6a;--color-success-light: #eaf8f2;--color-warning: #c8881e;--color-warning-light: #fdf6ea;--color-region: rgba(58, 158, 201, .2);--color-region-selected: rgba(58, 158, 201, .45);--color-glass-bg: rgba(240, 247, 252, .95);--color-glass-border: rgba(184, 212, 232, .7);--color-overlay: rgba(28, 51, 72, .35);--color-spinner-overlay: rgba(255, 255, 255, .6);--color-diff-delete-bg: #fce0dc;--color-diff-delete-text: #7c1d1d;--color-diff-insert-bg: #d0eedc;--color-diff-insert-text: #14532d;--color-diff-accept-bg: #daf2e4;--color-diff-accept-border: #b6dfc5;--color-diff-accept-hover: #b6dfc5;--color-diff-accept-hover-border: #7dd3a3;--color-diff-reject-bg: #f8d8d3;--color-diff-reject-border: #f0b8b0;--color-diff-reject-hover: #f0b8b0;--color-diff-reject-hover-border: #e6938a;--color-grid-line: transparent;--color-accent-glow: rgba(58, 158, 201, .15);--color-md: #3080a8;--radius-sm: 4px;--radius: 8px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05), 0 1px 2px rgba(0, 0, 0, .03);--shadow: 0 2px 6px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);--shadow-focus: 0 0 0 2px rgba(58, 158, 201, .25);--shadow-glow: 0 0 12px rgba(58, 158, 201, .18);--shadow-glow-lg: 0 0 20px rgba(58, 158, 201, .22);--transition-fast: .12s ease;--transition: .18s ease;--transition-slow: .25s ease}[data-theme=dark]{--color-bg: #181a20;--color-surface: #22252d;--color-surface-rgb: 34, 37, 45;--color-surface-elevated: #2a2e38;--color-border: #3a3e48;--color-border-light: #2e323c;--color-text: #e8e6e1;--color-text-secondary: #a8a29e;--color-text-tertiary: #787268;--color-primary: #e6a44c;--color-primary-hover: #d4922e;--color-primary-light: rgba(230, 164, 76, .12);--color-primary-subtle: rgba(230, 164, 76, .2);--color-secondary: #a8a29e;--color-secondary-hover: #d6d3cd;--color-danger: #e57373;--color-danger-light: rgba(229, 115, 115, .12);--color-success: #5cb88a;--color-success-light: rgba(92, 184, 138, .12);--color-warning: #e6a44c;--color-warning-light: rgba(230, 164, 76, .12);--color-region: rgba(230, 164, 76, .22);--color-region-selected: rgba(230, 164, 76, .5);--color-glass-bg: rgba(24, 26, 32, .95);--color-glass-border: rgba(58, 62, 72, .6);--color-overlay: rgba(0, 0, 0, .55);--color-spinner-overlay: rgba(34, 37, 45, .7);--color-diff-delete-bg: rgba(229, 115, 115, .18);--color-diff-delete-text: #f0a8a8;--color-diff-insert-bg: rgba(92, 184, 138, .18);--color-diff-insert-text: #8fd4b0;--color-diff-accept-bg: rgba(92, 184, 138, .12);--color-diff-accept-border: rgba(92, 184, 138, .25);--color-diff-accept-hover: rgba(92, 184, 138, .2);--color-diff-accept-hover-border: rgba(92, 184, 138, .45);--color-diff-reject-bg: rgba(229, 115, 115, .12);--color-diff-reject-border: rgba(229, 115, 115, .25);--color-diff-reject-hover: rgba(229, 115, 115, .2);--color-diff-reject-hover-border: rgba(229, 115, 115, .45);--color-grid-line: transparent;--color-accent-glow: rgba(230, 164, 76, .18);--color-md: #d4922e;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .25);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow: 0 2px 6px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--shadow-focus: 0 0 0 2px rgba(230, 164, 76, .25);--shadow-glow: 0 0 12px rgba(230, 164, 76, .18);--shadow-glow-lg: 0 0 20px rgba(230, 164, 76, .22)}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #4f46e54d}50%{box-shadow:0 0 30px #4f46e580}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}body,.header,.bottom-toolbar,.panel,.text-editor,.image-viewer,.result-panel,.result-sidebar,.preprocess-panel,.footer,.dropzone,.settings-select,.settings-input,.settings-textarea{transition:background-color .3s ease,color .3s ease,border-color .3s ease}body{font-family:Inter,Noto Sans JP,Noto Sans Egyptian Hieroglyphs,Noto Sans Cuneiform,Noto Sans Coptic,Noto Sans Syriac,Noto Sans Gothic,system-ui,-apple-system,sans-serif;background-color:var(--color-bg);color:var(--color-text);min-height:100vh;min-height:100dvh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='900' height='300' viewBox='0 0 900 300'> <g fill='none' stroke='%234a9ec8' stroke-linecap='round' stroke-linejoin='round'> <g transform='translate(380,10)'> <path d='M90 130 C82 110 78 90 82 72 C86 58 95 50 108 48 C120 46 130 52 135 65 C140 80 138 100 132 125 C128 140 120 158 110 170 C100 178 90 175 85 165 C80 155 82 142 90 130Z' stroke-width='3' stroke-opacity='0.75' fill='%234a9ec8' fill-opacity='0.06'/> <path d='M95 80 C100 95 105 115 102 135 C100 148 96 158 92 162' stroke-width='2.5' stroke-opacity='0.4'/> <path d='M105 75 C108 90 110 110 108 130 C106 142 102 155 98 162' stroke-width='2' stroke-opacity='0.3'/> <ellipse cx='100' cy='95' rx='4' ry='3' fill='%234a9ec8' fill-opacity='0.12' stroke='none'/> <ellipse cx='95' cy='110' rx='3' ry='4' fill='%234a9ec8' fill-opacity='0.1' stroke='none'/> <ellipse cx='105' cy='120' rx='3.5' ry='2.5' fill='%234a9ec8' fill-opacity='0.1' stroke='none'/> <ellipse cx='98' cy='140' rx='3' ry='2' fill='%234a9ec8' fill-opacity='0.08' stroke='none'/> <circle cx='108' cy='105' r='2.5' fill='%234a9ec8' fill-opacity='0.09' stroke='none'/> <path d='M90 55 C85 48 80 38 78 28 C76 18 80 10 88 6 C92 4 96 3 100 3 C104 3 108 4 112 8 C118 14 120 24 116 35 C114 42 110 50 105 55' stroke-width='3' stroke-opacity='0.75'/> <path d='M78 28 C82 20 90 14 100 12 C110 14 116 20 118 28' stroke-width='2.5' stroke-opacity='0.6'/> <path d='M82 38 C88 30 96 26 104 28 C110 30 114 35 116 40' stroke-width='2' stroke-opacity='0.55' fill='%234a9ec8' fill-opacity='0.03'/> <path d='M82 42 C86 46 92 48 98 47 C104 46 108 44 112 40' stroke-width='2.5' stroke-opacity='0.6'/> <ellipse cx='88' cy='22' rx='4.5' ry='5' stroke-width='2' stroke-opacity='0.65' fill='%234a9ec8' fill-opacity='0.12'/> <ellipse cx='108' cy='20' rx='4.5' ry='5' stroke-width='2' stroke-opacity='0.65' fill='%234a9ec8' fill-opacity='0.12'/> <circle cx='88' cy='21' r='2' fill='%234a9ec8' fill-opacity='0.4' stroke='none'/> <circle cx='108' cy='19' r='2' fill='%234a9ec8' fill-opacity='0.4' stroke='none'/> <path d='M92 32 L94 35 M98 31 L97 34' stroke-width='1.2' stroke-opacity='0.35'/> <path d='M95 8 C92 -2 88 -10 90 -18 C92 -22 96 -20 95 -14 C94 -8 98 -4 100 0' stroke-width='1.5' stroke-opacity='0.25'/> <path d='M102 5 C105 -5 108 -14 105 -22 C103 -26 99 -24 100 -18 C101 -12 98 -8 96 -2' stroke-width='1.2' stroke-opacity='0.2'/> <path d='M85 68 C72 58 60 48 50 42 C42 38 35 40 32 46 C30 52 35 56 42 55 C48 54 56 50 62 52' stroke-width='3' stroke-opacity='0.65'/> <path d='M32 46 L22 38 M32 46 L20 44 M32 46 L24 52 M32 46 L28 36' stroke-width='2' stroke-opacity='0.5'/> <path d='M22 38 L18 35 M20 44 L15 43 M24 52 L20 55' stroke-width='1.2' stroke-opacity='0.3'/> <path d='M120 72 C132 62 145 55 155 52 C162 50 168 54 166 60 C164 66 158 65 150 62' stroke-width='3' stroke-opacity='0.65'/> <path d='M166 60 L175 55 M166 60 L178 60 M166 60 L174 66 M166 60 L170 52' stroke-width='2' stroke-opacity='0.5'/> <path d='M175 55 L180 52 M178 60 L183 59 M174 66 L178 70' stroke-width='1.2' stroke-opacity='0.3'/> <path d='M88 168 C78 180 68 195 58 210 C52 220 48 228 52 234 C56 240 62 236 64 228 C66 220 62 208 68 198' stroke-width='3' stroke-opacity='0.6'/> <path d='M52 234 L40 238 M52 234 L42 242 M52 234 L46 246 M52 234 L54 244' stroke-width='2' stroke-opacity='0.45'/> <path d='M40 238 L36 240 M42 242 L38 245 M46 246 L43 250' stroke-width='1' stroke-opacity='0.3'/> <path d='M72 190 C68 192 64 195 62 198' stroke-width='1.5' stroke-opacity='0.3'/> <path d='M66 200 C62 202 58 206 56 210' stroke-width='1.5' stroke-opacity='0.3'/> <path d='M115 165 C125 180 135 198 142 212 C148 222 152 230 148 236 C144 242 138 238 136 230 C134 222 138 210 132 200' stroke-width='3' stroke-opacity='0.6'/> <path d='M148 236 L160 240 M148 236 L158 244 M148 236 L154 248 M148 236 L146 246' stroke-width='2' stroke-opacity='0.45'/> <path d='M160 240 L164 242 M158 244 L162 247 M154 248 L157 252' stroke-width='1' stroke-opacity='0.3'/> <path d='M128 195 C132 197 136 200 138 204' stroke-width='1.5' stroke-opacity='0.3'/> <path d='M134 206 C138 208 142 212 144 216' stroke-width='1.5' stroke-opacity='0.3'/> <path d='M55 48 C52 50 50 52 48 55' stroke-width='1' stroke-opacity='0.25'/> <path d='M152 56 C155 58 157 60 158 62' stroke-width='1' stroke-opacity='0.25'/> </g> <g transform='translate(50,20)'> <path d='M140 120 C148 105 150 88 145 72 C140 58 130 50 118 52 C106 54 98 65 96 80 C94 95 98 112 105 125 C110 135 118 140 128 138 C136 136 140 130 140 120Z' stroke-width='3' stroke-opacity='0.7' fill='%234a9ec8' fill-opacity='0.04'/> <path d='M125 65 C122 75 120 88 122 100 C124 108 126 115 128 120' stroke-width='1.5' stroke-opacity='0.3'/> <path d='M118 60 C115 72 114 85 116 98 C118 108 120 118 122 125' stroke-width='1.2' stroke-opacity='0.25'/> <path d='M105 58 C100 55 92 52 85 55 C78 58 74 65 76 72 C78 78 84 82 92 80 C98 78 102 72 104 65' stroke-width='2.8' stroke-opacity='0.7' fill='%234a9ec8' fill-opacity='0.04'/> <ellipse cx='86' cy='65' rx='3' ry='3.5' stroke-width='1.8' stroke-opacity='0.6' fill='%234a9ec8' fill-opacity='0.15'/> <circle cx='86' cy='65' r='1.5' fill='%234a9ec8' fill-opacity='0.4' stroke='none'/> <path d='M76 68 C72 66 68 68 70 72 C72 74 76 74 78 72' stroke-width='2' stroke-opacity='0.55'/> <path d='M78 74 C82 78 86 78 88 76' stroke-width='1.5' stroke-opacity='0.45'/> <path d='M72 67 L60 62 M72 70 L58 70 M72 73 L62 78' stroke-width='1.2' stroke-opacity='0.3'/> <path d='M88 56 C84 42 78 28 72 15 C68 6 62 0 56 2 C52 4 52 10 56 16 C60 22 68 30 74 40 C78 46 82 52 86 56' stroke-width='3' stroke-opacity='0.65' fill='%234a9ec8' fill-opacity='0.03'/> <path d='M82 48 C78 38 74 26 70 18 C68 12 64 8 62 10' stroke-width='1.5' stroke-opacity='0.3'/> <path d='M92 54 C90 40 86 25 82 12 C80 4 76 -2 72 0 C68 2 70 8 74 16 C78 24 84 36 88 48' stroke-width='2.8' stroke-opacity='0.6' fill='%234a9ec8' fill-opacity='0.02'/> <path d='M88 45 C86 35 83 22 80 14' stroke-width='1.2' stroke-opacity='0.25'/> <path d='M95 55 L98 48 M92 52 L90 46 M100 58 L104 52' stroke-width='1.5' stroke-opacity='0.35'/> <path d='M112 62 C108 50 102 38 95 30 C90 24 86 22 84 26 C82 30 86 34 92 38' stroke-width='2.5' stroke-opacity='0.6'/> <path d='M84 26 L78 18 M84 26 L76 24 M84 26 L80 16 M84 26 L86 18' stroke-width='1.8' stroke-opacity='0.45'/> <path d='M78 18 L76 14 M76 24 L72 22 M80 16 L78 12' stroke-width='1' stroke-opacity='0.25'/> <path d='M138 68 C148 58 158 50 168 46 C175 44 180 48 178 54 C176 58 170 58 164 56' stroke-width='2.5' stroke-opacity='0.55'/> <path d='M178 54 L186 50 M178 54 L188 56 M178 54 L184 60' stroke-width='1.8' stroke-opacity='0.4'/> <path d='M108 130 C100 145 92 162 88 178 C85 190 82 200 78 208 C75 215 72 218 70 215 C68 210 72 204 78 196 C82 190 86 180 90 170' stroke-width='2.8' stroke-opacity='0.6'/> <path d='M70 215 L62 220 M70 215 L60 215 M70 215 L64 224' stroke-width='2' stroke-opacity='0.45'/> <path d='M130 132 C138 148 144 168 148 185 C150 195 150 205 146 212 C142 218 138 215 138 208 C138 200 140 190 142 180' stroke-width='2.8' stroke-opacity='0.6'/> <path d='M146 212 L152 220 M146 212 L156 215 M146 212 L150 224' stroke-width='2' stroke-opacity='0.45'/> <path d='M130 75 L134 72 M132 85 L136 82 M128 95 L132 92' stroke-width='1' stroke-opacity='0.2'/> </g> <g transform='translate(700,160)'> <path d='M30 40 C25 32 22 22 26 15 C30 8 40 6 48 10 C55 6 62 10 64 18 C66 26 62 35 55 42 C58 50 56 60 50 65 C44 68 36 66 32 60 C28 54 28 48 30 40Z' stroke-width='2' stroke-opacity='0.5' fill='%234a9ec8' fill-opacity='0.03'/> <circle cx='35' cy='18' r='2.5' stroke-width='1.5' stroke-opacity='0.45' fill='%234a9ec8' fill-opacity='0.1'/> <circle cx='52' cy='16' r='2.5' stroke-width='1.5' stroke-opacity='0.45' fill='%234a9ec8' fill-opacity='0.1'/> <path d='M38 28 C42 32 48 32 52 28' stroke-width='1.5' stroke-opacity='0.4'/> <path d='M28 30 C18 25 10 28 8 34' stroke-width='1.8' stroke-opacity='0.4'/> <path d='M8 34 L2 30 M8 34 L2 36 M8 34 L4 40' stroke-width='1.2' stroke-opacity='0.3'/> <path d='M60 32 C70 28 78 32 80 38' stroke-width='1.8' stroke-opacity='0.4'/> <path d='M80 38 L86 34 M80 38 L86 40 M80 38 L84 44' stroke-width='1.2' stroke-opacity='0.3'/> <path d='M35 62 C28 72 22 82 18 90' stroke-width='1.8' stroke-opacity='0.4'/> <path d='M18 90 L10 92 M18 90 L12 96 M18 90 L16 98' stroke-width='1.2' stroke-opacity='0.3'/> <path d='M50 62 C56 72 62 82 66 90' stroke-width='1.8' stroke-opacity='0.4'/> <path d='M66 90 L74 92 M66 90 L72 96 M66 90 L68 98' stroke-width='1.2' stroke-opacity='0.3'/> </g> <g transform='translate(810,180)'> <path d='M25 45 C20 38 18 28 22 20 C26 14 34 12 40 16 C46 12 52 16 54 22 C56 30 52 40 46 48 C48 55 46 62 42 68 C36 72 28 70 24 64 C20 58 20 52 25 45Z' stroke-width='1.8' stroke-opacity='0.5' fill='%234a9ec8' fill-opacity='0.03'/> <path d='M28 18 C26 6 24 -6 28 -14 C32 -18 36 -14 34 -6 C32 2 30 12 29 18' stroke-width='2' stroke-opacity='0.45'/> <path d='M40 14 C42 2 44 -8 42 -16 C38 -20 34 -16 36 -8 C37 0 38 10 39 14' stroke-width='2' stroke-opacity='0.45'/> <circle cx='32' cy='28' r='2.5' fill='%234a9ec8' fill-opacity='0.2' stroke-width='1.2' stroke-opacity='0.4'/> <path d='M22 32 C20 30 18 32 20 34 C22 36 24 34 24 32' stroke-width='1.2' stroke-opacity='0.4'/> <path d='M20 31 L12 28 M20 33 L10 34 M20 35 L14 40' stroke-width='0.8' stroke-opacity='0.25'/> <path d='M28 60 C22 68 18 76 16 82' stroke-width='1.5' stroke-opacity='0.35'/> <path d='M42 62 C46 70 48 78 48 84' stroke-width='1.5' stroke-opacity='0.35'/> </g> </g> </svg>");background-repeat:repeat;background-size:900px 300px}[data-theme=dark] body{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='900' height='300' viewBox='0 0 900 300'> <g fill='none' stroke='%23b8963a' stroke-linecap='round' stroke-linejoin='round'> <g transform='translate(380,10)'> <path d='M90 130 C82 110 78 90 82 72 C86 58 95 50 108 48 C120 46 130 52 135 65 C140 80 138 100 132 125 C128 140 120 158 110 170 C100 178 90 175 85 165 C80 155 82 142 90 130Z' stroke-width='3' stroke-opacity='0.75' fill='%23b8963a' fill-opacity='0.06'/> <path d='M95 80 C100 95 105 115 102 135 C100 148 96 158 92 162' stroke-width='2.5' stroke-opacity='0.4'/> <path d='M105 75 C108 90 110 110 108 130 C106 142 102 155 98 162' stroke-width='2' stroke-opacity='0.3'/> <ellipse cx='100' cy='95' rx='4' ry='3' fill='%23b8963a' fill-opacity='0.12' stroke='none'/> <ellipse cx='95' cy='110' rx='3' ry='4' fill='%23b8963a' fill-opacity='0.1' stroke='none'/> <ellipse cx='105' cy='120' rx='3.5' ry='2.5' fill='%23b8963a' fill-opacity='0.1' stroke='none'/> <ellipse cx='98' cy='140' rx='3' ry='2' fill='%23b8963a' fill-opacity='0.08' stroke='none'/> <circle cx='108' cy='105' r='2.5' fill='%23b8963a' fill-opacity='0.09' stroke='none'/> <path d='M90 55 C85 48 80 38 78 28 C76 18 80 10 88 6 C92 4 96 3 100 3 C104 3 108 4 112 8 C118 14 120 24 116 35 C114 42 110 50 105 55' stroke-width='3' stroke-opacity='0.75'/> <path d='M78 28 C82 20 90 14 100 12 C110 14 116 20 118 28' stroke-width='2.5' stroke-opacity='0.6'/> <path d='M82 38 C88 30 96 26 104 28 C110 30 114 35 116 40' stroke-width='2' stroke-opacity='0.55' fill='%23b8963a' fill-opacity='0.03'/> <path d='M82 42 C86 46 92 48 98 47 C104 46 108 44 112 40' stroke-width='2.5' stroke-opacity='0.6'/> <ellipse cx='88' cy='22' rx='4.5' ry='5' stroke-width='2' stroke-opacity='0.65' fill='%23b8963a' fill-opacity='0.12'/> <ellipse cx='108' cy='20' rx='4.5' ry='5' stroke-width='2' stroke-opacity='0.65' fill='%23b8963a' fill-opacity='0.12'/> <circle cx='88' cy='21' r='2' fill='%23b8963a' fill-opacity='0.4' stroke='none'/> <circle cx='108' cy='19' r='2' fill='%23b8963a' fill-opacity='0.4' stroke='none'/> <path d='M92 32 L94 35 M98 31 L97 34' stroke-width='1.2' stroke-opacity='0.35'/> <path d='M95 8 C92 -2 88 -10 90 -18 C92 -22 96 -20 95 -14 C94 -8 98 -4 100 0' stroke-width='1.5' stroke-opacity='0.25'/> <path d='M102 5 C105 -5 108 -14 105 -22 C103 -26 99 -24 100 -18 C101 -12 98 -8 96 -2' stroke-width='1.2' stroke-opacity='0.2'/> <path d='M85 68 C72 58 60 48 50 42 C42 38 35 40 32 46 C30 52 35 56 42 55 C48 54 56 50 62 52' stroke-width='3' stroke-opacity='0.65'/> <path d='M32 46 L22 38 M32 46 L20 44 M32 46 L24 52 M32 46 L28 36' stroke-width='2' stroke-opacity='0.5'/> <path d='M22 38 L18 35 M20 44 L15 43 M24 52 L20 55' stroke-width='1.2' stroke-opacity='0.3'/> <path d='M120 72 C132 62 145 55 155 52 C162 50 168 54 166 60 C164 66 158 65 150 62' stroke-width='3' stroke-opacity='0.65'/> <path d='M166 60 L175 55 M166 60 L178 60 M166 60 L174 66 M166 60 L170 52' stroke-width='2' stroke-opacity='0.5'/> <path d='M175 55 L180 52 M178 60 L183 59 M174 66 L178 70' stroke-width='1.2' stroke-opacity='0.3'/> <path d='M88 168 C78 180 68 195 58 210 C52 220 48 228 52 234 C56 240 62 236 64 228 C66 220 62 208 68 198' stroke-width='3' stroke-opacity='0.6'/> <path d='M52 234 L40 238 M52 234 L42 242 M52 234 L46 246 M52 234 L54 244' stroke-width='2' stroke-opacity='0.45'/> <path d='M40 238 L36 240 M42 242 L38 245 M46 246 L43 250' stroke-width='1' stroke-opacity='0.3'/> <path d='M72 190 C68 192 64 195 62 198' stroke-width='1.5' stroke-opacity='0.3'/> <path d='M66 200 C62 202 58 206 56 210' stroke-width='1.5' stroke-opacity='0.3'/> <path d='M115 165 C125 180 135 198 142 212 C148 222 152 230 148 236 C144 242 138 238 136 230 C134 222 138 210 132 200' stroke-width='3' stroke-opacity='0.6'/> <path d='M148 236 L160 240 M148 236 L158 244 M148 236 L154 248 M148 236 L146 246' stroke-width='2' stroke-opacity='0.45'/> <path d='M160 240 L164 242 M158 244 L162 247 M154 248 L157 252' stroke-width='1' stroke-opacity='0.3'/> <path d='M128 195 C132 197 136 200 138 204' stroke-width='1.5' stroke-opacity='0.3'/> <path d='M134 206 C138 208 142 212 144 216' stroke-width='1.5' stroke-opacity='0.3'/> <path d='M55 48 C52 50 50 52 48 55' stroke-width='1' stroke-opacity='0.25'/> <path d='M152 56 C155 58 157 60 158 62' stroke-width='1' stroke-opacity='0.25'/> </g> <g transform='translate(50,20)'> <path d='M140 120 C148 105 150 88 145 72 C140 58 130 50 118 52 C106 54 98 65 96 80 C94 95 98 112 105 125 C110 135 118 140 128 138 C136 136 140 130 140 120Z' stroke-width='3' stroke-opacity='0.7' fill='%23b8963a' fill-opacity='0.04'/> <path d='M125 65 C122 75 120 88 122 100 C124 108 126 115 128 120' stroke-width='1.5' stroke-opacity='0.3'/> <path d='M118 60 C115 72 114 85 116 98 C118 108 120 118 122 125' stroke-width='1.2' stroke-opacity='0.25'/> <path d='M105 58 C100 55 92 52 85 55 C78 58 74 65 76 72 C78 78 84 82 92 80 C98 78 102 72 104 65' stroke-width='2.8' stroke-opacity='0.7' fill='%23b8963a' fill-opacity='0.04'/> <ellipse cx='86' cy='65' rx='3' ry='3.5' stroke-width='1.8' stroke-opacity='0.6' fill='%23b8963a' fill-opacity='0.15'/> <circle cx='86' cy='65' r='1.5' fill='%23b8963a' fill-opacity='0.4' stroke='none'/> <path d='M76 68 C72 66 68 68 70 72 C72 74 76 74 78 72' stroke-width='2' stroke-opacity='0.55'/> <path d='M78 74 C82 78 86 78 88 76' stroke-width='1.5' stroke-opacity='0.45'/> <path d='M72 67 L60 62 M72 70 L58 70 M72 73 L62 78' stroke-width='1.2' stroke-opacity='0.3'/> <path d='M88 56 C84 42 78 28 72 15 C68 6 62 0 56 2 C52 4 52 10 56 16 C60 22 68 30 74 40 C78 46 82 52 86 56' stroke-width='3' stroke-opacity='0.65' fill='%23b8963a' fill-opacity='0.03'/> <path d='M82 48 C78 38 74 26 70 18 C68 12 64 8 62 10' stroke-width='1.5' stroke-opacity='0.3'/> <path d='M92 54 C90 40 86 25 82 12 C80 4 76 -2 72 0 C68 2 70 8 74 16 C78 24 84 36 88 48' stroke-width='2.8' stroke-opacity='0.6' fill='%23b8963a' fill-opacity='0.02'/> <path d='M88 45 C86 35 83 22 80 14' stroke-width='1.2' stroke-opacity='0.25'/> <path d='M95 55 L98 48 M92 52 L90 46 M100 58 L104 52' stroke-width='1.5' stroke-opacity='0.35'/> <path d='M112 62 C108 50 102 38 95 30 C90 24 86 22 84 26 C82 30 86 34 92 38' stroke-width='2.5' stroke-opacity='0.6'/> <path d='M84 26 L78 18 M84 26 L76 24 M84 26 L80 16 M84 26 L86 18' stroke-width='1.8' stroke-opacity='0.45'/> <path d='M78 18 L76 14 M76 24 L72 22 M80 16 L78 12' stroke-width='1' stroke-opacity='0.25'/> <path d='M138 68 C148 58 158 50 168 46 C175 44 180 48 178 54 C176 58 170 58 164 56' stroke-width='2.5' stroke-opacity='0.55'/> <path d='M178 54 L186 50 M178 54 L188 56 M178 54 L184 60' stroke-width='1.8' stroke-opacity='0.4'/> <path d='M108 130 C100 145 92 162 88 178 C85 190 82 200 78 208 C75 215 72 218 70 215 C68 210 72 204 78 196 C82 190 86 180 90 170' stroke-width='2.8' stroke-opacity='0.6'/> <path d='M70 215 L62 220 M70 215 L60 215 M70 215 L64 224' stroke-width='2' stroke-opacity='0.45'/> <path d='M130 132 C138 148 144 168 148 185 C150 195 150 205 146 212 C142 218 138 215 138 208 C138 200 140 190 142 180' stroke-width='2.8' stroke-opacity='0.6'/> <path d='M146 212 L152 220 M146 212 L156 215 M146 212 L150 224' stroke-width='2' stroke-opacity='0.45'/> <path d='M130 75 L134 72 M132 85 L136 82 M128 95 L132 92' stroke-width='1' stroke-opacity='0.2'/> </g> <g transform='translate(700,160)'> <path d='M30 40 C25 32 22 22 26 15 C30 8 40 6 48 10 C55 6 62 10 64 18 C66 26 62 35 55 42 C58 50 56 60 50 65 C44 68 36 66 32 60 C28 54 28 48 30 40Z' stroke-width='2' stroke-opacity='0.5' fill='%23b8963a' fill-opacity='0.03'/> <circle cx='35' cy='18' r='2.5' stroke-width='1.5' stroke-opacity='0.45' fill='%23b8963a' fill-opacity='0.1'/> <circle cx='52' cy='16' r='2.5' stroke-width='1.5' stroke-opacity='0.45' fill='%23b8963a' fill-opacity='0.1'/> <path d='M38 28 C42 32 48 32 52 28' stroke-width='1.5' stroke-opacity='0.4'/> <path d='M28 30 C18 25 10 28 8 34' stroke-width='1.8' stroke-opacity='0.4'/> <path d='M8 34 L2 30 M8 34 L2 36 M8 34 L4 40' stroke-width='1.2' stroke-opacity='0.3'/> <path d='M60 32 C70 28 78 32 80 38' stroke-width='1.8' stroke-opacity='0.4'/> <path d='M80 38 L86 34 M80 38 L86 40 M80 38 L84 44' stroke-width='1.2' stroke-opacity='0.3'/> <path d='M35 62 C28 72 22 82 18 90' stroke-width='1.8' stroke-opacity='0.4'/> <path d='M18 90 L10 92 M18 90 L12 96 M18 90 L16 98' stroke-width='1.2' stroke-opacity='0.3'/> <path d='M50 62 C56 72 62 82 66 90' stroke-width='1.8' stroke-opacity='0.4'/> <path d='M66 90 L74 92 M66 90 L72 96 M66 90 L68 98' stroke-width='1.2' stroke-opacity='0.3'/> </g> <g transform='translate(810,180)'> <path d='M25 45 C20 38 18 28 22 20 C26 14 34 12 40 16 C46 12 52 16 54 22 C56 30 52 40 46 48 C48 55 46 62 42 68 C36 72 28 70 24 64 C20 58 20 52 25 45Z' stroke-width='1.8' stroke-opacity='0.5' fill='%23b8963a' fill-opacity='0.03'/> <path d='M28 18 C26 6 24 -6 28 -14 C32 -18 36 -14 34 -6 C32 2 30 12 29 18' stroke-width='2' stroke-opacity='0.45'/> <path d='M40 14 C42 2 44 -8 42 -16 C38 -20 34 -16 36 -8 C37 0 38 10 39 14' stroke-width='2' stroke-opacity='0.45'/> <circle cx='32' cy='28' r='2.5' fill='%23b8963a' fill-opacity='0.2' stroke-width='1.2' stroke-opacity='0.4'/> <path d='M22 32 C20 30 18 32 20 34 C22 36 24 34 24 32' stroke-width='1.2' stroke-opacity='0.4'/> <path d='M20 31 L12 28 M20 33 L10 34 M20 35 L14 40' stroke-width='0.8' stroke-opacity='0.25'/> <path d='M28 60 C22 68 18 76 16 82' stroke-width='1.5' stroke-opacity='0.35'/> <path d='M42 62 C46 70 48 78 48 84' stroke-width='1.5' stroke-opacity='0.35'/> </g> </g> </svg>")}[data-lang=egy] .header-title-main,[data-lang=egy] .header-title-accent,[data-lang=egy] .header-subtitle,[data-lang=egy] .footer,[data-lang=egy] .panel,[data-lang=egy] .help-panel,[data-lang=egy] .btn{font-family:Noto Sans Egyptian Hieroglyphs,Aegyptus,serif;font-size:1.1em;line-height:1.8;font-feature-settings:"ccmp" 1,"liga" 1}[data-lang=akk] .header-title-main,[data-lang=akk] .footer,[data-lang=akk] .panel,[data-lang=sux] .header-title-main,[data-lang=sux] .footer,[data-lang=sux] .panel,[data-lang=hit] .header-title-main,[data-lang=hit] .footer,[data-lang=hit] .panel{font-family:Noto Sans Cuneiform,serif;font-size:1.1em;line-height:1.8}[data-lang=cop] .header-title-main,[data-lang=cop] .footer,[data-lang=cop] .panel,[data-lang=cop] .btn{font-family:Noto Sans Coptic,serif}[data-lang=syc] .header-title-main,[data-lang=syc] .footer,[data-lang=syc] .panel,[data-lang=syc] .btn{font-family:Noto Sans Syriac,serif}[data-lang=got] .header-title-main,[data-lang=got] .footer,[data-lang=got] .panel,[data-lang=got] .btn{font-family:Noto Sans Gothic,serif}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover);text-decoration:underline}button{cursor:pointer;font-family:inherit;font-size:.875rem;border-radius:var(--radius-sm);border:none;transition:all var(--transition)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.app{display:flex;flex-direction:column;min-height:100vh}.main{flex:1;display:flex;flex-direction:column;min-height:0;width:100%;margin:0 auto;padding:.75rem}.header{background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20'><path d='M20 0H0v20' fill='none' stroke='%234a9ec8' stroke-opacity='0.15' stroke-width='0.7'/></svg>"),var(--color-surface);border-bottom:2px solid var(--color-primary);padding:0 1.5rem;height:52px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}[data-theme=dark] .header{background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20'><path d='M20 0H0v20' fill='none' stroke='%23b8963a' stroke-opacity='0.18' stroke-width='0.7'/></svg>"),var(--color-surface);box-shadow:var(--shadow)}.header-title{display:flex;align-items:center;background:none;border:none;padding:.25rem .5rem;margin:-.25rem -.5rem;cursor:pointer;text-align:left;border-radius:var(--radius);transition:all var(--transition);gap:.15rem}.header-title:hover{background:var(--color-primary-light)}.header-title h1{font-size:1.125rem;font-weight:700;color:var(--color-text);margin:0;letter-spacing:-.02em;position:relative;z-index:1}.header-subtitle{font-size:.72rem;color:var(--color-primary);margin-left:.5rem;white-space:nowrap;font-weight:600;letter-spacing:.04em;opacity:1;padding:.1rem .45rem;background:var(--color-primary-light);border-radius:.3rem;border:1px solid var(--color-primary-subtle)}.header-version{font-size:.6rem;color:var(--color-primary);background:var(--color-primary-light);padding:.15rem .5rem;border-radius:10px;margin-left:.5rem;font-weight:600;letter-spacing:.02em;border:1px solid var(--color-primary-subtle)}.header-actions{display:flex;gap:.4rem;align-items:center;flex-shrink:1;min-width:0}.btn-start-ocr{font-size:.9rem;padding:.4rem 1.1rem}.btn-icon{background:none;font-size:1.1rem;padding:.4rem .5rem;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;transition:all var(--transition);position:relative}.btn-icon:hover{background:var(--color-border-light);transform:scale(1.1);color:var(--color-primary)}.btn-lang{background:var(--color-border-light);color:var(--color-text);padding:.35rem .75rem;font-size:.8rem;transition:all var(--transition)}.btn-lang:hover{background:var(--color-primary-light);color:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.select-lang{font-family:inherit;font-size:.8rem;padding:.35rem .6rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all var(--transition)}.select-lang:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus);outline:none;transform:scale(1.02)}.ocr-mode-toggle{display:inline-flex;align-items:stretch;border-radius:8px;overflow:hidden;border:2px solid var(--color-primary);flex-shrink:0;vertical-align:middle;box-shadow:0 1px 4px #0000001a}.ocr-mode-btn{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;padding:.35rem .7rem;font-size:.8rem;line-height:1.4;background:transparent;color:var(--color-text-secondary);border:none;border-right:1px solid var(--color-primary);cursor:pointer;transition:background .18s,color .18s,box-shadow .18s;white-space:nowrap;font-weight:600}.ocr-mode-btn:last-child{border-right:none}.ocr-mode-btn:hover{background:var(--color-primary-light)}.ocr-mode-btn-active{background:var(--color-primary);color:#fff;box-shadow:inset 0 1px 3px #00000026}.ocr-mode-btn-active:hover{background:var(--color-primary);filter:brightness(1.1)}.ocr-mode-icon{flex-shrink:0}.lang-dropdown-wrap{position:relative}.lang-dropdown-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:0 .55rem;height:1.9rem;box-sizing:border-box;border:1px solid var(--color-border, #ddd);border-radius:6px;background:transparent;color:var(--color-text);font-size:.78rem;line-height:1;cursor:pointer;transition:opacity .2s,border-color .2s,background .2s;white-space:nowrap}.lang-dropdown-toggle:hover,.lang-dropdown-toggle-active{border-color:var(--color-primary);background:var(--color-primary-light)}.lang-dropdown-flag{font-size:1rem;line-height:1;display:inline-flex;align-items:center;height:1rem;overflow:hidden}.lang-dropdown-label{max-width:7rem;overflow:hidden;text-overflow:ellipsis}.lang-dropdown-arrow{transition:transform .2s;flex-shrink:0}.lang-dropdown-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;width:max-content;max-height:320px;overflow-y:auto;background:var(--color-surface, #fff);border:1px solid var(--color-border, #ddd);border-radius:8px;box-shadow:0 4px 16px #0000001f;z-index:200;padding:.3rem 0;display:flex;flex-direction:column}.lang-dropdown-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border:none;background:transparent;color:var(--color-text);font-size:.82rem;cursor:pointer;text-align:left;transition:background .15s}.lang-dropdown-item:hover{background:var(--color-primary-light, #e0f2f1)}.lang-dropdown-item-active{font-weight:700;color:var(--color-primary);background:var(--color-primary-light, #e0f2f1)}.lang-dropdown-item-flag{font-size:1.05rem;width:1.4rem;text-align:center;flex-shrink:0}.lang-dropdown-item-name{white-space:nowrap}.lang-dropdown-item-badge{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .35rem;border-radius:3px;background:var(--color-primary);color:#fff;opacity:.75;margin-left:auto;flex-shrink:0}.lang-dropdown-item-disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.lang-dropdown-item-disabled .lang-dropdown-item-badge{background:var(--color-text-muted, #999)}.lang-dropdown-section-label{padding:.35rem .75rem .15rem;font-size:.7rem;font-weight:600;color:var(--color-text-secondary);text-align:center;user-select:none;letter-spacing:.05em}.lang-ui-icon{flex-shrink:0;opacity:.7}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.5rem 1.25rem;font-weight:600;border-radius:var(--radius-sm);transition:all var(--transition);position:relative;overflow:hidden}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:var(--shadow);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--color-border-light);color:var(--color-text);border:1px solid var(--color-border);transition:all var(--transition)}.btn-secondary:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary);box-shadow:var(--shadow-xs)}.btn-danger{background:var(--color-danger);color:#fff;box-shadow:var(--shadow-sm)}.btn-danger:hover:not(:disabled){box-shadow:var(--shadow);filter:brightness(1.1)}.btn-close{background:none;font-size:1.1rem;padding:.35rem .5rem;color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:all var(--transition)}.btn-close:hover{background:var(--color-border-light);color:var(--color-text);transform:rotate(90deg)}.pending-section{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:2.5rem 1rem;animation:slide-up .4s ease}.pending-grid{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;max-width:960px}.pending-item{display:flex;flex-direction:column;align-items:center;gap:.4rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.6rem;width:160px;box-shadow:var(--shadow-xs);transition:all var(--transition)}.pending-item:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary);transform:translateY(-2px);background:var(--color-primary-light)}.pending-thumb{width:100%;height:120px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg);transition:transform var(--transition)}.pending-item:hover .pending-thumb{transform:scale(1.05)}.pending-item-name{font-size:.7rem;color:var(--color-text-secondary);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%;text-align:center}.pending-hint{font-size:.85rem;color:var(--color-text-secondary)}.upload-section{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:2rem 0;min-height:480px;animation:slide-up .5s ease;background:linear-gradient(#ffffff8c,#ffffff8c),url(/bluepond.jpg) center / cover no-repeat;border-radius:var(--radius-lg);margin:.5rem;position:relative}[data-theme=dark] .upload-section{background:linear-gradient(#14181e99,#14181e99),url(/bluepond.jpg) center / cover no-repeat}.landing-title{text-align:center;margin-bottom:.25rem;background:#ffffffb3;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:var(--radius);padding:.8rem 1.5rem}.landing-title-main{font-size:clamp(1.8rem,5vw,2.8rem);font-weight:800;letter-spacing:.14em;color:#1a3550;margin:0;text-shadow:0 1px 4px rgba(255,255,255,.6)}.landing-title-sub{font-size:clamp(.7rem,1.5vw,.9rem);letter-spacing:.25em;text-transform:uppercase;color:#2d5a7b;margin:.15rem 0 0;text-shadow:0 1px 3px rgba(255,255,255,.5)}.landing-title-desc{font-size:clamp(.72rem,1.3vw,.85rem);color:#34607e;margin:.4rem 0 0;line-height:1.5;text-shadow:0 1px 3px rgba(255,255,255,.5)}[data-theme=dark] .landing-title{background:#0f141ea6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}[data-theme=dark] .landing-title-main{color:#e0ecf5;text-shadow:0 1px 10px rgba(0,0,0,.5)}[data-theme=dark] .landing-title-sub{color:#a0c4dd;text-shadow:0 1px 6px rgba(0,0,0,.4)}[data-theme=dark] .landing-title-desc{color:#90b8d4;text-shadow:0 1px 6px rgba(0,0,0,.4)}.bluepond-credit{position:absolute;bottom:.5rem;right:.75rem;font-size:.65rem;opacity:.55;color:var(--color-text-secondary);pointer-events:none}.dropzone{width:100%;max-width:640px;border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:3rem 2rem;text-align:center;cursor:pointer;transition:all var(--transition);background:var(--color-surface);position:relative;overflow:hidden}.dropzone:hover,.dropzone.dragging{border-color:var(--color-primary);background:var(--color-primary-light);box-shadow:var(--shadow)}.dropzone.disabled{opacity:.5;cursor:not-allowed}.dropzone-icon{font-size:2.2rem;margin-bottom:.75rem;transition:transform var(--transition)}.dropzone:hover .dropzone-icon{transform:scale(1.1)}.dropzone-text{font-size:1rem;color:var(--color-text);margin-bottom:.5rem;font-weight:600;transition:color var(--transition)}.dropzone:hover .dropzone-text,.dropzone.dragging .dropzone-text{color:var(--color-primary)}.dropzone-formats{font-size:.8rem;color:var(--color-text-secondary);transition:color var(--transition)}.dropzone:hover .dropzone-formats,.dropzone.dragging .dropzone-formats{color:var(--color-text)}.dropzone-text-mobile,.dropzone-formats-mobile{display:none}.upload-actions{display:flex;gap:.75rem}@media(max-width:768px){.upload-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.upload-actions .btn{width:100%;font-size:.75rem;padding:.5rem .4rem;min-height:40px;justify-content:center;text-align:center}}.sample-tile-container{margin-top:1rem;text-align:center}.sample-tile-label{font-size:.95rem;color:var(--color-text);font-weight:600;margin-bottom:.6rem;letter-spacing:.02em}.sample-tile-grid{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.sample-tile{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.5rem;border:2px solid var(--border-color);border-radius:.75rem;background:var(--surface-color);cursor:pointer;transition:all .2s ease;max-width:200px;width:180px}.sample-tile:hover:not(:disabled){border-color:var(--primary-color);box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.sample-tile:disabled{opacity:.5;cursor:not-allowed}.sample-tile-image-wrap{position:relative;width:100%;aspect-ratio:3 / 2;border-radius:.5rem;overflow:hidden}.sample-tile-image{width:100%;height:100%;object-fit:cover}.sample-tile-badge{position:absolute;top:.3rem;right:.3rem;font-size:.65rem;font-weight:700;padding:.15rem .4rem;border-radius:.3rem;line-height:1}.sample-tile-badge-modern,.sample-tile-badge-koten{background:var(--color-primary);color:#fff;border:1px solid rgba(255,255,255,.3)}.sample-tile-badge-iiif{background:#2a6496;font-weight:800;letter-spacing:.06em}.sample-tile-badge-kanseki{background:#8b4513;color:#fff;border:1px solid rgba(255,255,255,.3)}.sample-tile-iiif-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;background:linear-gradient(135deg,var(--color-surface) 0%,var(--color-primary-light) 100%);color:var(--color-primary)}.sample-tile-iiif-text{font-size:.7rem;font-weight:700;letter-spacing:.05em;color:var(--color-primary);opacity:.7}.sample-tile-title{font-size:.75rem;font-weight:600;color:var(--text-primary);line-height:1.2}.sample-tile-modern{border-color:color-mix(in srgb,var(--primary-color) 30%,var(--border-color))}.sample-tile-koten{border-color:color-mix(in srgb,#8b5e3c 30%,var(--border-color))}@media(max-width:768px){.sample-tile{width:140px;max-width:140px}}.processing-section{padding:2rem 0;animation:slide-up .4s ease;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(#fff9,#fff9),url(/bluepond.jpg) center / cover no-repeat;border-radius:var(--radius-lg);margin:.5rem}[data-theme=dark] .processing-section{background:linear-gradient(#14181ea6,#14181ea6),url(/bluepond.jpg) center / cover no-repeat}.processing-bluepond-title{text-align:center;margin-bottom:1.5rem;animation:fade-in-down .6s ease}.processing-bluepond-main{display:block;font-size:2.4rem;font-weight:700;letter-spacing:.15em;color:var(--color-primary);text-shadow:0 0 8px rgba(255,255,255,.95),0 0 20px rgba(255,255,255,.8),0 0 40px rgba(255,255,255,.5),0 1px 3px rgba(255,255,255,1)}[data-theme=dark] .processing-bluepond-main{text-shadow:0 0 10px rgba(100,180,255,.6),0 0 25px rgba(50,120,200,.4),0 0 50px rgba(30,80,160,.3),0 1px 3px rgba(0,0,0,.7)}.processing-bluepond-sub{display:block;font-size:.85rem;font-weight:600;letter-spacing:.2em;color:var(--color-text);margin-top:.3rem;text-shadow:0 0 6px rgba(255,255,255,.9),0 0 14px rgba(255,255,255,.6),0 1px 2px rgba(255,255,255,1)}[data-theme=dark] .processing-bluepond-sub{color:#c0d8ee;text-shadow:0 0 8px rgba(60,130,200,.5),0 0 16px rgba(30,80,160,.3),0 1px 2px rgba(0,0,0,.6)}.processing-bluepond-desc{display:block;font-size:.75rem;font-weight:500;color:var(--color-text);opacity:.85;margin-top:.25rem;text-shadow:0 0 5px rgba(255,255,255,.9),0 0 12px rgba(255,255,255,.5),0 1px 2px rgba(255,255,255,1)}[data-theme=dark] .processing-bluepond-desc{color:#a0bcd4;text-shadow:0 0 6px rgba(60,130,200,.4),0 0 14px rgba(30,80,160,.25),0 1px 2px rgba(0,0,0,.5)}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.progress-container{max-width:640px;margin:0 auto}.progress-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0;vertical-align:middle;margin-right:.4rem}@keyframes spin{to{transform:rotate(360deg)}}.progress-files{display:flex;align-items:center;gap:.35rem;font-size:.875rem;color:var(--color-text-secondary);margin-bottom:.5rem}.progress-pct{font-size:.8rem;font-weight:600;color:var(--color-primary);margin-left:auto}.progress-container.error .progress-bar-fill{background:linear-gradient(90deg,var(--color-danger),#dc2626)}.progress-bar-track{background:var(--color-primary-light);border-radius:8px;height:8px;overflow:hidden;position:relative;box-shadow:inset 0 1px 3px #0000001a}[data-theme=dark] .progress-bar-track{box-shadow:inset 0 1px 3px #0000004d}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover),var(--color-primary));background-size:200% 100%;transition:width .3s ease;border-radius:8px;animation:shimmer 2s infinite;box-shadow:0 0 10px #4f46e566}[data-theme=dark] .progress-bar-fill{background:linear-gradient(90deg,var(--color-primary),#fbbf24,var(--color-primary));box-shadow:0 0 10px #fb923c66}.progress-bar-fill.done{background:linear-gradient(90deg,var(--color-success),#6ee7b7);box-shadow:0 0 10px #10b98166;animation:pulse-glow 1.5s ease-in-out}.progress-bar-indeterminate{width:30%!important;animation:indeterminate-slide 1.5s ease-in-out infinite}@keyframes indeterminate-slide{0%{transform:translate(0)}50%{transform:translate(233%)}to{transform:translate(0)}}.progress-first-time-note{font-size:.82rem;color:var(--color-text, #1f2937);margin-top:.75rem;line-height:1.5;padding:.5rem .75rem;background:var(--color-bg-secondary, rgba(0, 0, 0, .05));border-radius:6px;border-left:3px solid var(--color-primary, #3b82f6);font-weight:500}.progress-message{font-size:.8rem;color:var(--color-text-secondary);margin-top:.5rem;min-height:1.2em;animation:slide-up .3s ease}.progress-title{font-size:.9rem;font-weight:700;color:var(--color-text);margin-bottom:1rem}.model-download-bars{display:flex;flex-direction:column;gap:.6rem}.model-download-row{display:flex;flex-direction:column;gap:.2rem}.model-download-label{font-size:.8rem;color:var(--color-text-secondary)}.model-download-bar-wrap{display:flex;align-items:center;gap:.5rem}.model-download-bar-wrap .progress-bar-track{flex:1}.model-download-pct{font-size:.75rem;color:var(--color-text-secondary);min-width:3ch;text-align:right}.file-loading-status{display:flex;align-items:center;gap:.75rem;max-width:640px;margin:0 auto 1.5rem;padding:.75rem 1rem;background:var(--color-primary-light);border-radius:var(--radius);border:1px solid var(--color-primary-subtle);animation:slide-up .3s ease}[data-theme=dark] .file-loading-status{background:#fb923c1a;border-color:#fb923c33}.file-loading-spinner{width:16px;height:16px;border:2px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}[data-theme=dark] .file-loading-spinner{border-color:#fb923c33;border-top-color:var(--color-primary)}.file-loading-text{font-size:.875rem;color:var(--color-text-secondary)}.result-section{display:flex;gap:0;flex:1;min-height:0;animation:slide-up .5s ease}.result-sidebar{width:120px;min-width:120px;background:var(--color-surface);border-right:1px solid var(--color-border);overflow-y:auto;overflow-x:hidden;flex-shrink:0;display:flex;flex-direction:column;gap:0}.result-sidebar-header{padding:1rem;background:linear-gradient(135deg,var(--color-primary-light),var(--color-primary-subtle));border-bottom:1px solid var(--color-border);font-weight:600;color:var(--color-primary)}[data-theme=dark] .result-sidebar-header{background:#fb923c1a;color:var(--color-primary)}.result-thumbnail-list{max-height:400px;overflow-y:auto}.result-thumbnail-item{padding:.5rem;cursor:pointer;border-left:3px solid transparent;transition:all var(--transition);background:var(--color-surface)}.result-thumbnail-item:hover{background:var(--color-border-light);border-left-color:var(--color-primary);transform:translate(4px);box-shadow:inset 0 0 10px #4f46e51a}[data-theme=dark] .result-thumbnail-item:hover{box-shadow:inset 0 0 10px #fb923c1a}.result-thumbnail-item.active{background:var(--color-primary-light);border-left-color:var(--color-primary);box-shadow:inset 0 0 15px #4f46e526}[data-theme=dark] .result-thumbnail-item.active{background:#fb923c26;box-shadow:inset 0 0 15px #fb923c33}.result-thumbnail{width:100%;height:80px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg)}.result-thumbnail-label{font-size:.7rem;color:var(--color-text-secondary);margin-top:.3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-content{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--color-surface);padding:.75rem}.page-nav{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:1.5rem 0;padding:1rem;background:var(--color-border-light);border-radius:var(--radius)}.page-nav button{padding:.4rem .6rem;min-width:2rem;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);transition:all var(--transition)}.page-nav button:hover:not(:disabled){background:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:scale(1.05)}.page-nav button.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:var(--shadow-glow)}.page-info{font-size:.875rem;color:var(--color-text-secondary);margin:1rem 0;padding:.75rem;background:var(--color-border-light);border-radius:var(--radius-sm);text-align:center}.image-viewer{background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);position:relative}.image-canvas{width:100%;height:auto;display:block;background:var(--color-bg)}.image-viewer-wrapper{position:relative;overflow:auto;background:var(--color-bg);border-radius:var(--radius-lg)}.image-viewer-container{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:100%;min-height:100%}.image-loading{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--color-text-secondary);font-size:.9rem}.image-loading:before{content:"";display:inline-block;width:20px;height:20px;margin-right:.5rem;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.result-panel{background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);display:flex;flex-direction:column;height:100%}.result-panel-header{padding:.75rem 1.25rem;background:var(--color-bg);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.result-panel-title{font-weight:600;color:var(--color-text)}.result-panel-content{flex:1;overflow-y:auto}.result-actions{display:flex;gap:.5rem;flex-wrap:wrap;padding:1rem}.result-actions button{padding:.5rem 1rem;font-size:.85rem;border-radius:var(--radius-sm)}.panel{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--color-border);animation:slide-up .3s ease}.panel-overlay{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:200;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:fadeIn .2s ease}.panel-overlay>.panel{max-width:560px;width:90%;max-height:80vh;overflow:hidden;box-shadow:var(--shadow-lg),0 0 40px #00000026;display:flex;flex-direction:column}[data-theme=dark] .panel-overlay>.panel{box-shadow:var(--shadow-lg),0 0 40px #0006}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.panel-header h2{font-size:1.1rem;font-weight:700;margin:0}.panel-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem}.panel-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1.5rem;border-top:1px solid var(--color-border);flex-shrink:0}.settings-mode-toggle{display:flex;gap:.5rem;margin-bottom:1rem}.settings-description{font-size:.8rem;color:var(--color-text-secondary);margin-top:.35rem;line-height:1.5}.settings-connection-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.settings-test-ok{font-size:.85rem;color:var(--color-success);font-weight:600}.settings-test-fail{font-size:.85rem;color:var(--color-danger);font-weight:600}.history-panel{max-width:520px}.history-header-left{display:flex;align-items:center;gap:.5rem;color:var(--color-text)}.history-header-left h2{font-size:1.05rem;font-weight:700;margin:0}.history-header-left svg{color:var(--color-primary);flex-shrink:0}.history-count{font-size:.7rem;font-weight:700;color:var(--color-primary);background:var(--color-primary-light);border:1px solid var(--color-primary-subtle);padding:.1rem .45rem;border-radius:10px;line-height:1.3}.history-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1rem;text-align:center;color:var(--color-text-tertiary)}.history-empty p{font-size:.9rem;font-weight:500;color:var(--color-text-secondary);margin:0}.history-empty span{font-size:.78rem}.history-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.35rem}.history-item{display:flex;align-items:flex-start;gap:.75rem;padding:.65rem .75rem;background:var(--color-bg);border:1px solid var(--color-border-light);border-radius:var(--radius);cursor:pointer;transition:all var(--transition)}.history-item:hover{background:var(--color-primary-light);border-color:var(--color-primary-subtle);box-shadow:var(--shadow-xs)}.history-thumb-wrap{position:relative;flex-shrink:0;width:52px;height:52px}.history-thumb{width:52px;height:52px;object-fit:cover;border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border-light)}.history-thumb-badge{position:absolute;bottom:-3px;right:-3px;font-size:.6rem;font-weight:700;background:var(--color-primary);color:#fff;padding:.05rem .3rem;border-radius:8px;line-height:1.4;box-shadow:var(--shadow-xs)}.history-info{display:flex;flex-direction:column;gap:.2rem;min-width:0;flex:1}.history-info-top{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.history-filename{font-size:.82rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.history-date{font-size:.68rem;color:var(--color-text-tertiary);white-space:nowrap;flex-shrink:0}.history-meta{display:flex;gap:.35rem;flex-wrap:wrap}.history-meta-tag{font-size:.65rem;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border-light);padding:.05rem .4rem;border-radius:4px;white-space:nowrap}.history-preview{font-size:.72rem;color:var(--color-text-tertiary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}.history-footer-hint{font-size:.72rem;color:var(--color-text-tertiary)}.empty-message{color:var(--color-text-tertiary);text-align:center;padding:2rem 1rem;font-style:italic}.modal-overlay{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:200;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:fadeIn .2s ease}.modal-content{background:var(--color-surface);border-radius:var(--radius-lg);padding:2rem;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-lg),0 0 40px #00000026;animation:slide-up .3s ease}[data-theme=dark] .modal-content{box-shadow:var(--shadow-lg),0 0 40px #0006}.modal-header{font-size:1.25rem;font-weight:700;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between}.modal-body{margin-bottom:1.5rem;line-height:1.7}.modal-footer{display:flex;gap:.75rem;justify-content:flex-end}.bug-report-modal{max-width:560px}.bug-report-modal .modal-header h2{font-size:1.1rem;margin:0}.bug-report-modal .modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-light);padding:0 .25rem;line-height:1}.bug-report-form{display:flex;flex-direction:column;gap:.75rem}.bug-report-row{display:flex;flex-direction:column;gap:.3rem}.bug-report-row label{font-size:.78rem;font-weight:600;color:var(--color-text-light)}.bug-report-row-inline{display:flex;gap:.75rem}.bug-report-field{flex:1;display:flex;flex-direction:column;gap:.3rem}.bug-report-field label{font-size:.78rem;font-weight:600;color:var(--color-text-light)}.bug-report-form input[type=text],.bug-report-form input[type=email]{padding:.45rem .6rem;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);font-size:.82rem;background:var(--color-bg);color:var(--color-text)}.bug-report-textarea{padding:.45rem .6rem;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);font-size:.82rem;background:var(--color-bg);color:var(--color-text);resize:vertical;font-family:inherit}.bug-report-browser{font-size:.7rem!important;color:var(--color-text-light)!important;opacity:.7}.bug-report-category-group{display:flex;gap:.5rem}.bug-report-category-option{display:flex;align-items:center;gap:.3rem;font-size:.8rem;cursor:pointer;padding:.3rem .6rem;border-radius:var(--radius-sm, 6px);border:1px solid var(--color-border);transition:all .15s}.bug-report-category-option.active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.bug-report-category-option input[type=radio]{display:none}.bug-report-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.bug-report-actions .preprocess-btn{min-width:5rem}.bug-report-sent{text-align:center;padding:2rem 1rem}.bug-report-sent-icon{font-size:2.5rem;color:var(--color-success, #22c55e);margin-bottom:.75rem}.bug-report-sent p{margin-bottom:1.5rem;color:var(--color-text-light);font-size:.9rem}.bug-report-sent h3{margin-bottom:.5rem}.bug-report-link-buttons{display:flex;flex-direction:column;gap:10px;align-items:center}.bug-report-link-btn{display:inline-block;text-decoration:none;text-align:center;width:260px}.history-section{padding:1.5rem}.history-item-title{font-weight:600;margin-bottom:.25rem}.history-item-time{font-size:.8rem;color:var(--color-text-secondary)}.settings-panel{max-width:640px}.settings-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--color-border)}.settings-section:last-child{border-bottom:none}.settings-section-title{font-size:1rem;font-weight:700;margin-bottom:1rem;color:var(--color-text)}.settings-section-subtitle{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:1rem}.settings-group{margin-bottom:1.5rem}.settings-label{display:block;font-size:.9rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text)}.settings-label-note{display:block;font-size:.8rem;color:var(--color-text-secondary);margin-top:.25rem;font-weight:400}.settings-input,.settings-select,.settings-textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:.9rem;transition:all var(--transition)}.settings-input:focus,.settings-select:focus,.settings-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus),0 0 12px #4f46e526;transform:scale(1.01)}[data-theme=dark] .settings-input:focus,[data-theme=dark] .settings-select:focus,[data-theme=dark] .settings-textarea:focus{box-shadow:var(--shadow-focus),0 0 12px #fb923c33}.settings-textarea{min-height:120px;resize:vertical}.settings-tabs{display:flex;gap:1rem;border-bottom:2px solid var(--color-border);margin-bottom:1.5rem}.settings-tab{padding:.75rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-weight:600;color:var(--color-text-secondary);transition:all var(--transition);margin-bottom:-2px}.settings-tab:hover{color:var(--color-primary)}.settings-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);box-shadow:0 2px 0 0 var(--color-primary)}.settings-button-group{display:flex;gap:.75rem;margin-top:1.5rem}.settings-button-group button{flex:1}.ai-status{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;border-radius:var(--radius);font-size:.8rem;font-weight:600;background:var(--color-border-light);color:var(--color-text-secondary);transition:all var(--transition);white-space:nowrap;flex-shrink:0}.ai-status.connected{background:linear-gradient(135deg,#10b9811a,#34d3991a);color:var(--color-success)}.ai-status-dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}.ai-status.connected .ai-status-dot{animation:pulse 2s ease-in-out infinite}.help-page-modal{background:var(--color-surface);border-radius:var(--radius-lg);max-width:720px;width:92%;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg),0 0 40px #00000026;animation:slide-up .3s ease}[data-theme=dark] .help-page-modal{box-shadow:var(--shadow-lg),0 0 40px #0006}.help-page-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.help-page-title{margin:0;font-size:1.3rem;font-weight:700;color:var(--color-text)}.help-page-close{flex-shrink:0}.help-page-body{padding:1.25rem 1.5rem 1.5rem;overflow-y:auto;flex:1}.help-section{margin-bottom:1.25rem}.help-section:last-child{margin-bottom:0}.help-section-heading{font-size:1rem;font-weight:600;color:var(--color-primary);margin:0 0 .35rem}.help-section-body{font-size:.9rem;line-height:1.65;color:var(--color-text-secondary);margin:0}.ai-help-intro{font-size:.95rem;line-height:1.6;color:var(--color-text);margin:0 0 1.25rem}.ai-help-steps{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.ai-help-step{padding:.65rem .85rem;border-left:3px solid var(--color-primary);background:var(--color-primary-light);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.ai-help-step-label{font-weight:600;font-size:.9rem;color:var(--color-text);margin-bottom:.2rem}.ai-help-step-detail{font-size:.85rem;line-height:1.55;color:var(--color-text-secondary)}.ai-help-providers{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.25rem}.ai-help-provider{display:flex;gap:.75rem;align-items:baseline;font-size:.85rem}.ai-help-provider-name{font-weight:600;color:var(--color-text);white-space:nowrap}.ai-help-provider-desc{color:var(--color-text-secondary)}.ai-help-notes{margin-bottom:1.25rem}.ai-help-note{font-size:.82rem;line-height:1.5;color:var(--color-text-secondary);margin:0 0 .3rem;padding-left:.75rem;border-left:2px solid var(--color-border)}.ai-help-actions{display:flex;gap:.75rem;justify-content:center;padding-top:.5rem}button.ai-status-clickable{border:none;font-family:inherit;cursor:pointer;transition:all var(--transition)}button.ai-status-clickable:hover{filter:brightness(.9);box-shadow:var(--shadow-sm)}button.ai-status-clickable .ai-status-text{text-decoration:underline dotted;text-underline-offset:2px}.footer{background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20'><path d='M20 0H0v20' fill='none' stroke='%234a9ec8' stroke-opacity='0.18' stroke-width='0.7'/></svg>"),var(--color-surface);border-top:1px solid var(--color-border);padding:1rem 1.5rem;text-align:center;font-size:.78rem;color:var(--color-text-secondary);position:relative;z-index:1}[data-theme=dark] .footer{background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20'><path d='M20 0H0v20' fill='none' stroke='%23b8963a' stroke-opacity='0.22' stroke-width='0.7'/></svg>"),var(--color-surface)}.split-view{display:flex;gap:0;flex:1;min-height:0;max-height:calc(100vh - 104px - 5rem);margin:0;padding:0}.split-view>div{flex:1;min-width:0;display:flex;flex-direction:column}.split-divider{width:5px;background:var(--color-border);cursor:col-resize;transition:background var(--transition);position:relative;flex-shrink:0}.split-divider:hover{background:var(--color-primary)}.split-divider-horizontal{width:100%;height:5px;cursor:row-resize}.split-divider-horizontal:hover{background:var(--color-primary)}.split-pane{display:flex;flex-direction:column}.split-pane-active{display:flex}.result-toolbar{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.5rem .75rem;background:var(--color-border-light);border-radius:var(--radius);margin-bottom:.5rem;flex-shrink:0;flex-wrap:wrap}.result-toolbar button{padding:.5rem 1rem;font-size:.85rem}@media(max-width:768px){.result-toolbar{gap:.3rem;padding:.3rem .4rem;margin-bottom:.3rem}.result-toolbar button{padding:.25rem .5rem;font-size:.68rem;min-height:28px;line-height:1.2}.btn-new-file,.btn-bug-report-inline{padding:.2rem .45rem!important;font-size:.65rem!important;min-height:26px!important}.btn-ai{padding:.25rem .55rem;font-size:.68rem;gap:.2rem}.btn-ai svg{width:11px;height:11px}.text-editor-header-buttons{gap:.25rem}.text-editor-header-buttons .btn-ai{padding:.2rem .45rem;font-size:.63rem}.btn-reading-order-action{padding:.25rem .5rem;font-size:.65rem}.reading-order-edit-buttons{gap:.25rem}}.image-panel{display:flex;flex-direction:column;background:var(--color-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}.image-panel-header{padding:1rem;background:linear-gradient(135deg,var(--color-primary-light),var(--color-primary-subtle));border-bottom:1px solid var(--color-border)}[data-theme=dark] .image-panel-header{background:#fb923c1a}.image-panel-content{flex:1;overflow:auto;position:relative}.image-panel-footer{padding:1rem;background:var(--color-border-light);border-top:1px solid var(--color-border);font-size:.85rem;color:var(--color-text-secondary);text-align:center}.zoom-controls{display:flex;align-items:center;gap:.2rem;padding:.3rem .4rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);position:absolute;top:.5rem;left:.5rem;z-index:10;box-shadow:var(--shadow-sm);touch-action:auto;pointer-events:auto}.btn-zoom{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:var(--color-surface);border:1px solid var(--color-border-light);color:var(--color-text);cursor:pointer}.btn-zoom:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary-subtle);color:var(--color-primary)}.btn-zoom:disabled{opacity:.35;cursor:default}.btn-zoom-active{background:var(--color-primary)!important;border-color:var(--color-primary)!important;color:#fff!important}.btn-zoom-reset{font-size:.7rem;font-weight:500}.btn-zoom.btn-zoom-adjust{width:auto!important;height:auto!important;min-width:unset;min-height:28px;display:inline-flex!important;align-items:center;gap:.3rem;padding:.3rem .6rem!important;font-size:.75rem;font-weight:500;white-space:nowrap;overflow:visible}.btn-zoom-label{font-size:.75rem;line-height:1.2;white-space:nowrap}.zoom-level{font-size:.72rem;font-weight:600;color:var(--color-text-secondary);min-width:36px;text-align:center;font-variant-numeric:tabular-nums;user-select:none}.zoom-controls-sep{display:inline-block;width:1px;height:18px;background:var(--color-border-light);margin:0 .1rem;flex-shrink:0}.zoom-percent{display:flex;align-items:center;font-size:.72rem;font-weight:600;color:var(--color-text-secondary);min-width:36px;text-align:center}.text-editor{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);display:flex;flex-direction:column;height:100%}.text-editor.empty{padding:2rem;text-align:center;color:var(--color-text-secondary)}.text-editor-header{padding:.5rem .85rem;background:var(--color-bg);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-shrink:0}.text-editor-header-left{display:flex;align-items:center;gap:.5rem;min-width:0}.text-editor-label{font-size:.82rem;font-weight:600;white-space:nowrap;color:var(--color-text);display:inline-flex;align-items:center;gap:.4rem}.text-editor-unsaved-indicator{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--color-warning);animation:unsavedPulse 1.5s ease-in-out infinite;flex-shrink:0}@keyframes unsavedPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.text-editor-stats{font-size:.7rem;color:var(--color-text-tertiary);white-space:nowrap;background:var(--color-bg);padding:.15rem .5rem;border-radius:10px;border:1px solid var(--color-border-light)}.text-editor-header-buttons{display:flex;gap:.35rem;align-items:center;flex-shrink:0}.text-editor-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.35rem .65rem;background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-shrink:0;gap:.5rem;flex-wrap:wrap}.text-editor-toolbar-group{display:flex;align-items:center;gap:.25rem}.text-editor-toolbar-sep{display:inline-block;width:1px;height:18px;background:var(--color-border);margin:0 .2rem;flex-shrink:0}.export-dropdown-wrapper{position:relative;display:inline-flex}.export-dropdown-menu{position:absolute;top:100%;right:0;z-index:100;min-width:200px;margin-top:4px;padding:.3rem 0;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);box-shadow:0 8px 24px #0000001f,0 2px 8px #0000000f;animation:export-menu-in .12s ease-out}@keyframes export-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.export-dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.45rem .75rem;border:none;background:none;color:var(--color-text);font-size:.8rem;cursor:pointer;text-align:left;transition:background-color .1s}.export-dropdown-item:hover{background:var(--color-primary-light)}.export-dropdown-icon{display:inline-flex;align-items:center;justify-content:center;width:2.8rem;min-width:2.8rem;padding:.15rem .25rem;font-size:.65rem;font-weight:700;letter-spacing:.03em;border-radius:3px;background:var(--color-bg);color:var(--color-text-secondary);border:1px solid var(--color-border)}.export-dropdown-separator{height:1px;background:var(--color-border-light);margin:.3rem 0}.export-dropdown-section-label{padding:.3rem .75rem .15rem;font-size:.68rem;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.05em}.text-editor-search-bar{display:flex;flex-direction:column;gap:.4rem;padding:.5rem .65rem;background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-shrink:0}.text-editor-search-controls,.text-editor-replace-controls{display:flex;gap:.3rem;align-items:center}.text-editor-search-input,.text-editor-replace-input{flex:1;padding:.3rem .55rem;font-size:.8rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-family:Noto Sans Mono,Courier New,monospace;outline:none;transition:border-color var(--transition-fast)}.text-editor-search-input:focus,.text-editor-replace-input:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.text-editor-search-count{font-size:.72rem;color:var(--color-text-secondary);white-space:nowrap;padding:.2rem .4rem;min-width:2rem;text-align:right;font-variant-numeric:tabular-nums}.text-editor-ai-status{display:flex;align-items:center;gap:.5rem;padding:.45rem .85rem;border-bottom:1px solid var(--color-border);flex-shrink:0;background:var(--color-primary-light)}.ai-bar-spinner{width:14px;height:14px;border:2px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.ai-bar-error{font-size:.78rem;color:var(--color-danger);cursor:help;font-weight:500}.ai-bar-hint{font-size:.78rem;color:var(--color-text-secondary)}.text-editor-selection-float{position:absolute;top:.5rem;right:.5rem;left:.5rem;z-index:10;display:flex;align-items:flex-start;gap:.5rem;padding:.45rem .65rem;background:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);backdrop-filter:blur(8px);opacity:.95;max-height:4.5rem;overflow:hidden;pointer-events:none;animation:selection-float-in .2s ease-out}@keyframes selection-float-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:.95;transform:translateY(0)}}.text-editor-selection-float-label{flex-shrink:0;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-warning-dark, #8a6d3b);background:#ffffff80;padding:.1rem .35rem;border-radius:3px;line-height:1.4}[data-theme=dark] .text-editor-selection-float-label{background:#00000040;color:var(--color-warning)}.text-editor-selection-float-text{font-size:.82rem;font-weight:500;color:var(--color-text);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-all}.text-editor-body{flex:1;display:flex;min-height:0;padding:0;position:relative;overflow:hidden}.text-editor-empty-text{color:var(--color-text-tertiary);font-style:italic;padding:1.5rem}.text-editor-textarea{width:100%;height:100%;min-height:calc(70vh - 200px);resize:none;border:none;outline:none;background:transparent;color:var(--color-text);font-family:Noto Sans Mono,Courier New,monospace;font-size:14px;line-height:1.9;padding:.75rem 1rem;overflow-y:auto;box-shadow:inset 0 1px 3px #00000008}[data-theme=dark] .text-editor-textarea{box-shadow:inset 0 1px 3px #00000026}.text-editor-textarea::selection{background:#ffdc328c;color:#000}[data-theme=dark] .text-editor-textarea::selection{background:#ffc828a6;color:#000}.text-editor-textarea-highlighted{animation:highlight-pulse 2s ease-in-out}.text-editor-textarea-highlighted::selection{background:#ff961e99;color:#000}[data-theme=dark] .text-editor-textarea-highlighted::selection{background:#ff961eb3;color:#000}@keyframes highlight-pulse{0%{box-shadow:inset 0 0 0 2px #ffb43299}50%{box-shadow:inset 0 0 0 2px #ffb43233}to{box-shadow:inset 0 0 #ffb43200}}.line-numbers-container{display:flex;width:100%;height:100%}.line-numbers-gutter{display:block;background:var(--color-bg);border-right:1px solid var(--color-border-light);padding:.75rem 0;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none;flex-shrink:0;user-select:none;font-family:Noto Sans Mono,Courier New,monospace}.line-numbers-gutter::-webkit-scrollbar{display:none}.line-number{display:block;text-align:right;color:var(--color-text-tertiary);padding-right:.5rem;padding-left:.5rem;min-width:2.5rem;white-space:nowrap;box-sizing:border-box}.text-editor-statusbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .75rem;background:var(--color-bg);border-top:1px solid var(--color-border);flex-shrink:0;flex-wrap:wrap;font-size:.72rem}.text-editor-statusbar-left,.text-editor-statusbar-right{display:flex;align-items:center;gap:.4rem}.text-editor-stat-item{color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap}.text-editor-stat-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--color-border);flex-shrink:0}.text-editor-stat-modified{color:var(--color-warning);font-weight:600}.text-editor-option-compact{display:flex;align-items:center;gap:.2rem;font-size:.7rem;color:var(--color-text-tertiary);cursor:pointer;user-select:none;white-space:nowrap}.text-editor-option-compact:hover{color:var(--color-text-secondary)}.text-editor-option-compact input[type=checkbox]{cursor:pointer;accent-color:var(--color-primary);width:12px;height:12px}.text-editor-copy-opts-mobile,.bug-report-icon-mobile{display:none}.bug-report-label-desktop{display:inline}.text-editor-option-icon{display:inline-flex;align-items:center;gap:.1rem;cursor:pointer;color:var(--color-text-tertiary);user-select:none}.text-editor-option-icon:hover{color:var(--color-text-secondary)}.text-editor-option-icon input[type=checkbox]{cursor:pointer;accent-color:var(--color-primary);width:10px;height:10px}.text-editor-option-icon svg{flex-shrink:0;opacity:.7}.text-editor-option-icon:has(input:checked) svg{opacity:1;color:var(--color-primary)}.text-editor-font-controls-compact{display:flex;align-items:center;gap:.3rem}.text-editor-font-size-group{display:inline-flex;align-items:center;gap:.2rem;background:var(--color-primary-light);border:1px solid var(--color-primary-subtle);border-radius:.4rem;padding:.15rem .35rem}.text-editor-font-size-icon{color:var(--color-primary);flex-shrink:0}.text-editor-font-size-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--color-border-light);border-radius:.25rem;background:var(--color-surface);color:var(--color-text);font-size:.85rem;font-weight:700;cursor:pointer;line-height:1;padding:0;transition:background .15s,border-color .15s}.text-editor-font-size-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.text-editor-font-value-compact{font-size:.7rem;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;min-width:2.5ch;text-align:right}.text-editor-font-sep-compact{color:var(--color-border-light);font-size:.7rem;margin:0 .1rem}.text-editor-font-label-compact{font-size:.65rem;color:var(--color-text-tertiary);white-space:nowrap}.text-editor-font-slider-compact{width:60px;height:3px;border-radius:2px;background:var(--color-border-light);outline:none;-webkit-appearance:none;appearance:none;cursor:pointer}.text-editor-font-slider-compact::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:10px;height:10px;border-radius:50%;background:var(--color-primary);cursor:pointer}.text-editor-font-slider-compact::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--color-primary);border:none;cursor:pointer}.btn-ai{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:#fff;padding:.4rem 1rem;font-weight:600;font-size:.8rem;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm);letter-spacing:.01em;display:inline-flex;align-items:center;gap:.35rem;position:relative;overflow:hidden}.btn-ai:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:shimmer 3s infinite}.btn-ai:hover:not(:disabled){box-shadow:var(--shadow-md),var(--shadow-glow);transform:translateY(-1px)}.btn-ai:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.btn-ai-spinner{width:13px;height:13px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.text-editor-footer,.text-editor-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .85rem;background:var(--color-bg);border-top:1px solid var(--color-border-light);flex-shrink:0;flex-wrap:wrap}.text-editor-options{display:flex;gap:.75rem}.text-editor-option{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--color-text-secondary);cursor:pointer;user-select:none}.text-editor-option:hover{color:var(--color-text)}.text-editor-option input[type=checkbox]{cursor:pointer;accent-color:var(--color-primary)}.text-editor-font-controls{display:flex;align-items:center;gap:.5rem;margin-left:auto;padding-left:1rem}.text-editor-font-label{font-size:.75rem;color:var(--color-text-secondary);white-space:nowrap}.text-editor-font-slider{width:80px;height:3px;border-radius:2px;background:var(--color-border-light);outline:none;-webkit-appearance:none;appearance:none;cursor:pointer}.text-editor-font-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--color-primary);cursor:pointer;box-shadow:var(--shadow-sm)}.text-editor-font-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--color-primary);border:none;cursor:pointer}.text-editor-font-value{font-size:.72rem;color:var(--color-text-secondary);min-width:2.5rem;text-align:right;font-variant-numeric:tabular-nums}.diff-view{display:flex;flex-direction:column;height:100%;width:100%}.diff-view-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0;flex-wrap:wrap;gap:.4rem}.diff-view-stats{font-size:.8rem;color:var(--color-text-secondary);font-weight:500}.diff-decided-count{font-size:.75rem;color:var(--color-text-tertiary)}.diff-view-actions{display:flex;gap:.35rem}.diff-view-hint{font-size:.7rem;color:var(--color-text-tertiary);margin:0;padding:.3rem .75rem 0;line-height:1.4}.diff-view-body{flex:1;overflow-y:auto;padding:.75rem 1rem;font-family:Noto Sans Mono,Courier New,monospace;font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-all}.diff-equal{color:var(--color-text)}.diff-delete{background:var(--color-diff-delete-bg);color:var(--color-diff-delete-text);text-decoration:line-through;border-radius:3px;padding:0 2px}.diff-insert{background:var(--color-diff-insert-bg);color:var(--color-diff-insert-text);border-radius:3px;padding:0 2px}.diff-change-group{position:relative}.diff-change-group.accepted .diff-delete,.diff-change-group.rejected .diff-insert{opacity:.25;text-decoration:line-through}.diff-decided-hide{opacity:.2;text-decoration:line-through}.diff-change-buttons{display:inline-flex;gap:2px;margin-left:3px;vertical-align:middle}.diff-btn-accept,.diff-btn-reject{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:.65rem;border:1px solid transparent;border-radius:4px;cursor:pointer;line-height:1;padding:0;vertical-align:middle;font-weight:700;transition:all var(--transition-fast)}.diff-btn-accept{background:var(--color-diff-accept-bg);color:var(--color-diff-insert-text);border-color:var(--color-diff-accept-border)}.diff-btn-accept:hover{background:var(--color-diff-accept-hover);border-color:var(--color-diff-accept-hover-border);transform:scale(1.1)}.diff-btn-reject{background:var(--color-diff-reject-bg);color:var(--color-diff-delete-text);border-color:var(--color-diff-reject-border)}.diff-btn-reject:hover{background:var(--color-diff-reject-hover);border-color:var(--color-diff-reject-hover-border);transform:scale(1.1)}.btn-sm{padding:.3rem .65rem;font-size:.78rem;font-weight:500}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.btn-icon:hover:not(:disabled){color:var(--color-text);border-color:var(--color-border);background:var(--color-bg)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.btn-icon-active{background:var(--color-primary-light)!important;color:var(--color-primary)!important;border-color:var(--color-primary-subtle)!important}.btn-text-toggle{font-size:.7rem;font-weight:500;padding:.2rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease;white-space:nowrap;line-height:1.3}.btn-text-toggle:hover{background:var(--color-bg-hover);color:var(--color-text)}.btn-text-toggle-active{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary-subtle)}.result-page-nav{display:flex;align-items:center;justify-content:center;gap:.25rem;flex-wrap:wrap}.page-numbers{display:flex;align-items:center;gap:.15rem}.btn-page-arrow{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:1.2rem;line-height:1;color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.btn-page-arrow:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.btn-page-arrow:disabled{opacity:.35;cursor:default}.btn-page-num{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 .35rem;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);font-size:.82rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.btn-page-num:hover:not(:disabled):not(.btn-page-active){background:var(--color-primary-light);border-color:var(--color-border-light);color:var(--color-primary)}.btn-page-num:disabled{opacity:.35;cursor:default}.btn-page-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600;cursor:default}.btn-page-active:hover{background:var(--color-primary)}.btn-page-num[draggable=true]{cursor:grab}.btn-page-num[draggable=true]:active{cursor:grabbing}.btn-page-num.page-dragging{opacity:.4;background:var(--color-surface)!important;border-color:var(--color-border)!important;color:var(--color-text-secondary)!important}.btn-page-num.page-drag-over{box-shadow:inset -2px 0 0 0 var(--color-primary),inset 2px 0 0 0 var(--color-primary);background:var(--color-primary-light)!important}.page-ellipsis{display:inline-flex;align-items:center;justify-content:center;width:24px;height:30px;font-size:.9rem;color:var(--color-text-secondary);user-select:none}.page-current-label{font-size:.75rem;color:var(--color-text-secondary);margin-left:.5rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:768px){.btn-page-num{min-width:26px;height:26px;font-size:.75rem;padding:0 .2rem}.btn-page-arrow{width:28px;height:28px;font-size:1.1rem}.page-ellipsis{width:18px;height:26px;font-size:.8rem}.page-current-label{display:none}}.btn-new-file{white-space:nowrap;flex-shrink:0}.btn-bug-report-inline{padding:.3rem .6rem!important;font-size:.72rem!important;line-height:1.3;min-width:auto!important;flex-shrink:0;white-space:nowrap}.image-viewer-info{padding:.75rem;font-size:.8rem;color:var(--color-text-secondary);background:var(--color-border-light);text-align:center;border-top:1px solid var(--color-border)}.bottom-toolbar{background:var(--color-surface);border-top:1px solid var(--color-border);padding:.6rem 1.5rem;height:52px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.toolbar-left{display:flex;gap:.75rem;align-items:center}.toolbar-right{display:flex;gap:1.5rem;align-items:center}.toolbar-upload-btn{padding:.5rem 1.25rem;background:var(--color-primary);color:#fff;font-weight:600;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-xs)}.toolbar-upload-btn:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-sm)}.toolbar-info{display:flex;gap:1.5rem;align-items:center;font-size:.85rem;color:var(--color-text-secondary)}.toolbar-stat{display:flex;align-items:center;gap:.5rem}.toolbar-stat-value{font-weight:600;color:var(--color-primary)}[data-theme=dark] .toolbar-stat-value{color:var(--color-primary)}@media(min-width:1024px){.split-view{gap:1rem}}@media(max-width:768px){.main{padding:1rem}.split-view-tablet{flex-direction:column;height:auto;gap:0}.split-view-tablet .split-pane-left,.split-view-tablet .split-pane-right{min-height:250px;flex:none}.split-view-tablet .split-pane-left{height:40vh}.split-view-tablet .split-pane-right{height:50vh}.split-view-tablet .split-divider-horizontal{width:100%;height:6px;cursor:row-resize;touch-action:none}.header{padding:.75rem 1rem}.dropzone{padding:2rem 1.25rem}.dropzone-icon{font-size:2rem}.dropzone-text{font-size:.88rem}.text-editor-header{padding:.75rem 1rem}.text-editor-toolbar{flex-wrap:wrap;gap:.5rem}.text-editor-toolbar .btn-sm{font-size:.8rem;padding:.4rem .6rem}.btn,.btn-icon{min-height:40px;min-width:40px}.btn-sm{min-height:36px}.zoom-controls{top:.25rem;left:.25rem;right:auto;bottom:auto}.zoom-controls .btn-zoom{width:26px;height:26px}.modal-content{width:95%;max-height:90vh}.toolbar-info{gap:.75rem;font-size:.8rem}}@media(max-width:768px){.header{padding:.5rem .75rem;gap:.5rem;height:44px;overflow:hidden}.header-title{order:1;flex:1}.header-title-text{flex-wrap:wrap}.header-title-main{font-size:.82rem}.header-title-accent{font-size:.78rem}.header-version,.header-subtitle{display:none}.header{padding-top:env(safe-area-inset-top,0);padding-left:max(.75rem,env(safe-area-inset-left,0));padding-right:max(.75rem,env(safe-area-inset-right,0));height:calc(44px + env(safe-area-inset-top,0))}.header-actions{position:fixed;top:0;left:0;right:auto;width:80%;max-width:300px;height:100vh;height:100dvh;background:var(--color-surface);box-shadow:4px 0 16px #00000026;z-index:1000;flex-direction:column;align-items:stretch;gap:0;padding:1.25rem 1rem;padding-top:max(1.25rem,env(safe-area-inset-top,0));padding-left:max(1rem,env(safe-area-inset-left,0));padding-bottom:max(1rem,env(safe-area-inset-bottom,0));overflow-y:auto;transform:translate(-100%);transition:transform .3s ease;pointer-events:none}.header-actions-open{transform:translate(0);pointer-events:auto}.header-actions-group{flex-direction:column;gap:.25rem;padding:.5rem 0}.header-actions-group+.header-actions-group{border-left:none;margin-left:0;padding-left:0;border-top:1px solid var(--color-border-light);margin-top:.25rem}.header-actions .ai-status{width:100%;justify-content:flex-start;padding:.6rem .5rem;border-radius:var(--radius-sm)}.header-actions .btn-icon{width:100%;min-height:44px;padding:.6rem .5rem;border-radius:var(--radius-sm);justify-content:flex-start}.header-actions .btn-icon:active{background:var(--color-primary-light)}.ocr-mode-toggle{width:100%;display:flex;border-radius:8px}.ocr-mode-btn{flex:1;min-height:40px;font-size:.78rem;padding:.3rem .4rem;gap:.2rem;text-align:center;justify-content:center}.ocr-mode-btn .ocr-mode-icon{width:12px;height:12px}.lang-dropdown-wrap{width:100%}.lang-dropdown-toggle{width:100%;min-height:44px;font-size:.9rem;justify-content:flex-start;gap:.5rem;padding:.5rem .75rem;border-radius:var(--radius-sm)}.lang-dropdown-label{flex:1;text-align:left}.lang-dropdown-arrow{margin-left:auto}.lang-dropdown-menu{position:static;box-shadow:none;border-radius:0 0 8px 8px;border-top:none;max-height:50vh;width:100%}.lang-dropdown-item{min-height:44px;font-size:.9rem;padding:.5rem .75rem}.lang-dropdown-section-label{font-size:.75rem;padding:.4rem .75rem;color:var(--color-text-tertiary)}.header-hamburger{display:flex}.main{padding:.5rem}.dropzone{padding:.75rem .5rem;min-height:0;gap:.2rem}.dropzone-icon{font-size:1.2rem;margin:0}.dropzone-text{font-size:.75rem;margin:0}.dropzone-text-desktop,.dropzone-formats,.dropzone-formats-desktop,.dropzone-formats-mobile{display:none}.split-view-mobile{flex-direction:column;height:auto;gap:0}.split-pane{width:100%;flex-shrink:0}.split-pane.split-pane-active{display:flex;flex-direction:column}.split-pane-mobile-top{height:70vh;height:70dvh;min-height:50vh;min-height:50dvh;max-height:none;overflow:visible;position:relative;flex-shrink:0}.split-pane-mobile-bottom{height:80vh;height:80dvh;min-height:60vh;min-height:60dvh;max-height:none;overflow:hidden;position:relative;display:flex;flex-direction:column;flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,0)}.split-divider{display:none}.text-editor-header{padding:.25rem .4rem;gap:.2rem;flex-wrap:wrap}.text-editor-header .btn-sm{font-size:.65rem;padding:.2rem .4rem;min-height:26px}.text-editor-header-left .text-editor-filename{font-size:.65rem;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-editor-header-left .text-editor-stats{font-size:.6rem}.text-editor-header-buttons{gap:.2rem!important;flex-wrap:wrap}.text-editor-header-buttons .btn-ai{padding:.2rem .4rem!important;font-size:.6rem!important;min-height:24px;gap:.15rem}.text-editor-header-buttons .btn-ai svg{width:10px;height:10px}.text-editor-toolbar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:.15rem;padding:.25rem .4rem;scrollbar-width:none}.text-editor-toolbar::-webkit-scrollbar{display:none}.text-editor-toolbar-group{flex-shrink:0;gap:.15rem}.text-editor-toolbar .btn-sm,.text-editor-toolbar .btn-icon{font-size:0;padding:.25rem;min-height:30px;min-width:30px;max-height:30px;gap:0}.text-editor-toolbar .btn-sm svg,.text-editor-toolbar .btn-icon svg{margin-right:0!important;flex-shrink:0}.text-editor-toolbar .btn-secondary,.text-editor-toolbar .btn-primary{font-size:.65rem;padding:.2rem .35rem;min-width:auto}.text-editor-toolbar .btn-text-toggle{font-size:.6rem;padding:.15rem .35rem;min-width:auto;white-space:nowrap}.text-editor-toolbar .toolbar-btn-label{display:none}.text-editor-toolbar .export-dropdown-menu,.export-dropdown-menu{position:fixed;inset:auto 0 0;min-width:100%;max-width:100vw;max-height:55vh;max-height:55dvh;overflow-y:auto;z-index:1000;-webkit-overflow-scrolling:touch;border-radius:12px 12px 0 0;box-shadow:0 -4px 20px #0003;margin-top:0;animation:slideUpPanel .2s ease-out;padding-bottom:env(safe-area-inset-bottom,0)}.text-editor-toolbar .export-dropdown-item,.export-dropdown-item{padding:.6rem .75rem;min-height:44px;-webkit-tap-highlight-color:rgba(0,100,200,.15)}.text-editor-toolbar .btn-secondary svg,.text-editor-toolbar .btn-primary svg{width:11px;height:11px}.text-editor-toolbar .text-editor-toolbar-sep{height:14px;margin:0 .1rem}.text-editor-search-bar{flex-direction:column;gap:.35rem;padding:.35rem .5rem}.text-editor-search-input{min-height:32px!important;font-size:14px!important;padding:.3rem .5rem!important}.text-editor-statusbar{flex-direction:row;flex-wrap:wrap;gap:.15rem;padding:.1rem .3rem;font-size:.55rem;min-height:0}.text-editor-option-desktop-only{display:none!important}.text-editor-copy-opts-mobile{display:inline-flex;align-items:center;gap:.15rem}.text-editor-statusbar-left,.text-editor-statusbar-right{flex-wrap:wrap;gap:.15rem}.text-editor-stat-item{font-size:.55rem}.text-editor-option-compact{font-size:.55rem;gap:.1rem}.text-editor-option-compact input[type=checkbox]{width:10px;height:10px}.text-editor-font-controls-compact{flex-wrap:wrap;gap:.1rem}.text-editor-font-controls-compact .btn-sm,.text-editor-font-controls-compact select{min-height:20px!important;font-size:.55rem!important;padding:.05rem .2rem!important}.text-editor-font-size-group{padding:.05rem .15rem;gap:.05rem}.text-editor-font-size-btn{width:16px;height:16px;font-size:.65rem}.text-editor-font-size-icon{width:12px;height:12px}.text-editor-font-slider-compact{width:40px!important}.text-editor-font-select{font-size:.6rem!important;max-width:80px}.text-editor-font-sep-compact{margin:0 .05rem!important}.text-editor-font-label-compact{font-size:.55rem!important}.text-editor-font-value-compact{font-size:.6rem!important;min-width:2ch!important}.split-pane-mobile-bottom .text-editor{height:100%;flex:1;min-height:0}.split-pane-mobile-bottom .text-editor-body{flex:1;min-height:0;overflow:hidden}.split-pane-mobile-bottom .line-numbers-container,.split-pane-mobile-bottom .text-editor-textarea{flex:1;min-height:0;height:auto}.text-editor-actions{width:100%;justify-content:space-between;gap:.2rem;padding:.3rem .5rem}.text-editor-actions label{font-size:.65rem}.bottom-toolbar{flex-direction:row;flex-wrap:wrap;height:auto;padding:.4rem .75rem;gap:.25rem;margin-bottom:0}.bottom-toolbar-left{display:flex}.bottom-toolbar-left .btn{font-size:.7rem;padding:.3rem .6rem;min-height:32px;min-width:auto;gap:.25rem}.bottom-toolbar-left .btn svg{width:12px;height:12px}.toolbar-left,.toolbar-right{justify-content:center}.toolbar-right{gap:.5rem}.toolbar-info{justify-content:center;gap:.5rem;font-size:.7rem}.bottom-stat{font-size:.65rem}.btn,.btn-icon{min-width:44px;min-height:44px}.btn-sm{min-height:36px;min-width:36px}.modal-content{width:100%;max-height:100vh;border-radius:0}.zoom-controls{top:.25rem;left:.25rem;right:auto;bottom:auto;padding:.15rem .25rem;gap:.1rem;opacity:.85;transform:scale(.85);transform-origin:top left}.zoom-controls .btn-zoom{width:26px;height:26px;min-width:26px;min-height:26px;font-size:.75rem}.zoom-controls .zoom-level{font-size:.65rem;min-width:28px}.zoom-controls .zoom-controls-sep{height:14px}.settings-tabs{overflow-x:auto;flex-wrap:nowrap;gap:.25rem}.settings-tab{padding:.5rem .75rem;font-size:.8rem;white-space:nowrap}.split-pane-mobile-top .image-viewer-wrap{height:100%;min-height:0}.split-pane-mobile-top .image-viewer-wrap>.image-viewer{height:100%;min-height:0;flex:1}.region-select-hint{display:none}.image-with-preprocess{flex-direction:column;overflow:visible!important;position:relative}.image-with-preprocess-main{min-height:0;flex:1;overflow:hidden}.preprocess-panel-side{position:fixed;bottom:0;left:0;right:0;width:100%;max-height:28vh;max-height:28dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;z-index:100;border-left:none;border-top:2px solid var(--color-primary);border-radius:12px 12px 0 0;background:rgba(var(--color-surface-rgb),.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 -4px 20px #0003;animation:slideUpPanel .25s ease-out;flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,0)}.preprocess-panel-side:before{content:"";display:block;width:32px;height:3px;background:var(--color-border);border-radius:2px;margin:.25rem auto .1rem}.preprocess-panel-side .preprocess-panel-side-header{padding:.15rem .5rem;font-size:0;gap:0;border-bottom:none;background:transparent;justify-content:flex-end;min-height:0}.preprocess-panel-side .preprocess-panel-side-header>svg,.preprocess-panel-side .preprocess-panel-side-header>span{display:none}.preprocess-panel-side .preprocess-panel-close-btn{min-width:32px;min-height:32px;padding:.25rem;border-radius:50%;background:rgba(var(--color-surface-rgb),.8)}.preprocess-panel-side .preprocess-panel-body{padding:.25rem .5rem .4rem;gap:.3rem}.preprocess-panel-side .preprocess-controls{gap:.15rem}.preprocess-panel-side .preprocess-controls-group-label{display:none}.preprocess-panel-side .preprocess-slider{flex-direction:row;align-items:center;gap:.4rem}.preprocess-panel-side .preprocess-slider-label{font-size:.65rem;min-width:0;flex-shrink:0;white-space:nowrap;margin-right:0}.preprocess-panel-side .preprocess-slider-value{font-size:.62rem;min-width:1.6rem;margin-left:0;flex-shrink:0}.preprocess-panel-side .preprocess-slider input[type=range]{flex:1;min-width:0;height:6px;border-radius:3px;touch-action:none}.preprocess-panel-side .preprocess-slider input[type=range]::-webkit-slider-thumb{width:22px;height:22px;border:2px solid var(--color-surface);box-shadow:0 1px 4px #00000040}.preprocess-panel-side .preprocess-slider input[type=range]::-moz-range-thumb{width:22px;height:22px;border:2px solid var(--color-surface);box-shadow:0 1px 4px #00000040}.preprocess-panel-side .preprocess-toggle{font-size:.65rem;gap:.2rem}.preprocess-panel-side .preprocess-toggle input[type=checkbox]{width:18px;height:18px;flex-shrink:0}.preprocess-panel-side .preprocess-toggles{gap:.15rem .4rem}.preprocess-panel-side .preprocess-actions{gap:.2rem}.preprocess-panel-side .preprocess-btn{padding:.25rem .3rem;font-size:.6rem;min-height:28px}@keyframes slideUpPanel{0%{transform:translateY(100%)}to{transform:translateY(0)}}.split-pane-mobile-top:has(.preprocess-panel-side){overflow:visible}.bug-report-icon-mobile{display:inline}.bug-report-label-desktop,.footer{display:none}}@media(pointer:coarse){.btn,.btn-icon{min-height:44px;min-width:44px}.bottom-toolbar .btn,.bottom-toolbar .btn-sm,.bottom-toolbar-left .btn{min-height:32px;min-width:auto}.image-viewer,.split-divider{touch-action:none}.preprocess-panel-side .preprocess-btn{min-height:28px;min-width:auto}.preprocess-slider input[type=range]{touch-action:none;padding:6px 0}}.header-logo-container{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;flex-shrink:0;margin-right:.4rem}.header-title-text{display:flex;align-items:baseline;gap:.3rem}.header-title-main{font-size:.95rem;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.header-title-accent{font-size:.95rem;font-weight:500;color:var(--color-primary);letter-spacing:-.01em}.header-version-clickable{cursor:pointer;border-bottom:1px dashed var(--text-muted, #888);transition:color .2s,border-color .2s}.header-version-clickable:hover{color:var(--accent, #3b82f6);border-color:var(--accent, #3b82f6)}.changelog-modal{max-width:560px;max-height:80vh}.changelog-body{padding:.5rem 1.2rem 1.2rem;overflow-y:auto;max-height:calc(80vh - 60px)}.changelog-entry{margin-bottom:1.2rem}.changelog-entry:last-child{margin-bottom:0}.changelog-version-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem}.changelog-version-badge{display:inline-block;background:var(--accent, #3b82f6);color:#fff;font-size:.82rem;font-weight:700;padding:.15rem .55rem;border-radius:4px;letter-spacing:.02em}.changelog-date{font-size:.78rem;color:var(--text-muted, #888)}.changelog-list{margin:0;padding-left:1.4rem;font-size:.85rem;line-height:1.6}.changelog-list li{margin-bottom:.15rem}.header-actions-group{display:flex;gap:.35rem;align-items:center}.header-actions-group+.header-actions-group{margin-left:.25rem;padding-left:.5rem;border-left:1px solid var(--color-border-light)}.btn-theme-toggle{transition:transform var(--transition),background var(--transition-fast)}.btn-theme-toggle:active{transform:rotate(180deg) scale(.95)}@keyframes statusDotPulse{0%,to{opacity:1;box-shadow:0 0 0 0 var(--color-primary)}50%{opacity:.6;box-shadow:0 0 6px 2px var(--color-primary)}}.ai-status-connecting .ai-status-dot{animation:statusDotPulse 1.5s ease-in-out infinite}.text-editor-label{display:inline-flex;align-items:center;gap:.4rem}.text-editor-unsaved-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-warning);animation:unsavedPulse 1.5s ease-in-out infinite;flex-shrink:0}@keyframes unsavedPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.text-editor-stats-footer{display:flex;align-items:center;gap:.5rem;font-size:.7rem;color:var(--color-text-tertiary);white-space:nowrap}.text-editor-stat-item{font-variant-numeric:tabular-nums}.text-editor-stat-separator{color:var(--color-border)}.text-editor-format-buttons{display:flex;gap:.35rem;align-items:center}.mobile-warning{display:none;padding:.75rem 1.25rem;background:var(--color-warning-light);border-bottom:1px solid var(--color-warning);color:var(--color-text);font-size:.85rem;text-align:center;line-height:1.5}.result-progress-inline{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;margin-bottom:.75rem}.result-progress-inline>:first-child{flex:1;min-width:0}.btn-stop{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .85rem;background:var(--color-danger, #dc3545);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background var(--transition-fast)}.btn-stop:hover{background:var(--color-danger-hover, #c82333)}@media(max-width:768px){.btn-stop{padding:.3rem .6rem;font-size:0}.btn-stop svg{width:16px;height:16px}}.model-loading-note{max-width:640px;margin:1rem auto 0;font-size:.82rem;color:var(--color-text-secondary);text-align:center;line-height:1.6}.footer-privacy{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-bottom:.6rem;font-size:.78rem;color:var(--color-text-secondary);line-height:1.5}.privacy-icon{font-size:.9rem;flex-shrink:0}.footer-attribution{margin-bottom:.6rem;line-height:1.5}.footer-attribution-text{font-size:.78rem;color:var(--color-text-secondary)}.footer-credits{display:flex;flex-direction:column;gap:.2rem;margin-bottom:.6rem}.footer-credit-line{font-size:.75rem;color:var(--color-text-tertiary);line-height:1.5}.footer-credit-line a{color:var(--color-primary)}.footer-frog-credit{margin-top:.6rem;font-size:.7rem;color:var(--color-text-tertiary);opacity:.7;font-style:italic}.footer-license{margin-top:.5rem;font-size:.7rem;color:var(--color-text-tertiary);opacity:.65}.footer-license a{color:inherit;text-decoration:underline;text-underline-offset:1px;transition:color .2s}.footer-license a:hover{color:var(--accent, #3b82f6);opacity:1}.footer-meta{margin-top:.4rem}.footer-github{display:inline-flex;align-items:center;gap:.25rem;font-size:.78rem;color:var(--color-primary);font-weight:500;transition:color var(--transition-fast)}.footer-github:hover{color:var(--color-primary-hover)}.footer-bug-report{text-align:center;margin-top:.5rem}.footer-bug-report-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);color:var(--color-text-light);cursor:pointer;font-size:.75rem;padding:.3rem .8rem;transition:all .15s}.footer-bug-report-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.perspective-crop-area{padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);background:var(--color-bg)}.perspective-crop-canvas{display:block;width:100%;border-radius:var(--radius-sm, 6px);user-select:none}.result-sidebar-item{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.5rem;width:100%;border:none;background:var(--color-surface);border-left:3px solid transparent;cursor:pointer;transition:all var(--transition);text-align:center}.result-sidebar-item:hover:not(:disabled){background:var(--color-border-light);border-left-color:var(--color-primary)}.result-sidebar-item.active{background:var(--color-primary-light);border-left-color:var(--color-primary)}.result-sidebar-item.sidebar-pending{opacity:.5;cursor:default}.result-sidebar-item img{width:100%;max-width:100px;height:70px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg)}.result-sidebar-label{font-size:.65rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.result-sidebar-thumb-wrap{position:relative;width:100%;display:flex;justify-content:center}.sidebar-item-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px;border:2px solid var(--color-primary-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.btn-save{background:var(--color-primary);color:#fff;padding:.35rem .75rem;font-weight:600;font-size:.78rem;border-radius:var(--radius-sm);border:none;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.btn-save:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:var(--shadow);transform:translateY(-.5px)}.image-viewer-wrap{display:flex;flex-direction:column;flex:1;min-height:0;position:relative}.image-viewer-wrap>.image-viewer{flex:1;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.image-viewer-transform{position:relative;flex-shrink:0;will-change:transform}.viewer-image{display:block;user-select:none;-webkit-user-drag:none;pointer-events:none}.viewer-overlay{position:absolute;top:0;left:0;pointer-events:none}.region-box{position:absolute;border:1.5px solid var(--color-region);background:transparent;cursor:pointer;pointer-events:auto;transition:background .15s,border-color .15s;overflow:visible}.region-box:hover{background:#4f46e514;border-color:var(--color-primary)}.region-box.selected{background:var(--color-region-selected);border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.page-block-box{position:absolute;border:2px dashed rgba(100,116,139,.35);background:transparent;cursor:pointer;pointer-events:auto;transition:background .15s,border-color .15s}.page-block-box:hover{background:#64748b0f;border-color:#64748b99}.page-block-box.selected{background:#64748b1a;border-color:var(--color-secondary);box-shadow:0 0 0 1px var(--color-secondary)}.region-box-text-overlay{overflow:visible;background:#0000008c!important}.region-box-text-overlay:hover{background:#00000059!important}.region-text-label{display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:0;width:100%;height:100%;color:#fff;font-size:10px;line-height:1.15;padding:1px 2px;overflow:hidden;text-align:center;text-shadow:0 0 2px rgba(0,0,0,.8);pointer-events:none;box-sizing:border-box}.region-text-label-inner{display:block;max-width:100%;max-height:100%;overflow:hidden;word-break:break-all;text-align:center}.region-reading-order{position:absolute;top:-10px;left:-10px;width:20px;height:20px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:10;box-shadow:0 1px 4px #00000080;line-height:1}.drag-selection{position:absolute;border:2px solid var(--color-warning);background:#f59e0b1f;pointer-events:none}.region-selected-highlight{position:absolute;border:2.5px solid var(--color-warning);background:#f59e0b14;pointer-events:none;animation:pulse-border 1.5s ease-in-out infinite}@keyframes pulse-border{0%,to{opacity:1}50%{opacity:.5}}.reading-order-edit-bar{display:flex;align-items:center;gap:.8rem;padding:.6rem .8rem;background:var(--color-primary-light);border-bottom:2px solid var(--color-primary);flex-wrap:wrap;position:relative;z-index:20}.reading-order-edit-hint{font-size:.85rem;font-weight:500;color:var(--color-text);flex:1;min-width:200px}.reading-order-edit-buttons{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.btn-reading-order-action{padding:.4rem .8rem;font-size:.75rem;font-weight:500;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-reading-order-action:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-reading-order-action:disabled{opacity:.45;cursor:default}.btn-reading-order-done{background:var(--color-success, #10b981);border-color:var(--color-success, #10b981);color:#fff}.btn-reading-order-done:hover:not(:disabled){background:var(--color-success-dark, #059669);border-color:var(--color-success-dark, #059669)}.btn-reading-order-done:disabled{background:var(--color-success, #10b981);opacity:.45}.reading-order-badge-container{position:absolute;top:2px;right:2px;pointer-events:none}.reading-order-badge{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:.75rem;font-weight:700;color:#fff;box-shadow:0 1px 4px #0006}.reading-order-badge.assigned{background:linear-gradient(135deg,#10b981,#059669)}.reading-order-badge.unassigned{background:#6b728099}.btn-zoom{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;border-radius:var(--radius-sm, 6px);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;transition:all .15s}.btn-zoom:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-zoom-reset{width:auto;padding:0 .5rem;font-size:.7rem}.zoom-level{display:inline-flex;align-items:center;font-size:.75rem;font-weight:600;color:var(--color-text-secondary);min-width:3rem;justify-content:center}.preprocess-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);overflow:hidden}.preprocess-panel-side{border:none;border-left:1px solid var(--color-border);border-radius:0;width:240px;flex-shrink:0;overflow-y:auto;max-height:100%}.preprocess-panel-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.6rem .8rem;background:var(--color-bg);border:none;border-bottom:1px solid var(--color-border);cursor:pointer;font-size:.82rem;font-weight:600;color:var(--color-text);transition:background .15s}.preprocess-panel-header:hover{background:var(--color-primary-light)}.preprocess-panel-header-text{display:flex;align-items:center;gap:.4rem}.preprocess-panel-header-icon{display:flex;align-items:center;color:var(--color-text-secondary)}.preprocess-panel-side-header{display:flex;align-items:center;gap:.4rem;padding:.6rem .75rem;font-size:.78rem;font-weight:600;color:var(--color-text);border-bottom:1px solid var(--color-border);background:var(--color-bg)}.preprocess-panel-close-btn{margin-left:auto;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);padding:.2rem;cursor:pointer;color:var(--color-text-secondary);transition:all .15s;flex-shrink:0}.preprocess-panel-close-btn:hover{background:var(--color-danger, #dc3545);color:#fff;border-color:var(--color-danger, #dc3545)}.preprocess-panel-side-header svg{color:var(--color-text-secondary);flex-shrink:0}.preprocess-panel-body{padding:.6rem;display:flex;flex-direction:column;gap:.65rem}.preprocess-controls{display:flex;flex-direction:column;gap:.4rem}.preprocess-controls-group-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary);margin-bottom:.1rem}.preprocess-slider{display:flex;flex-direction:column;gap:.15rem}.preprocess-slider-label{display:flex;align-items:center;font-size:.76rem;color:var(--color-text)}.preprocess-slider-value{font-size:.72rem;font-weight:600;color:var(--color-primary);min-width:2.5rem;text-align:right;margin-left:auto}.preprocess-slider input[type=range]{width:100%;height:4px;-webkit-appearance:none;appearance:none;background:var(--color-border);border-radius:2px;outline:none;cursor:pointer}.preprocess-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--color-primary);border:2px solid var(--color-surface);box-shadow:0 1px 3px #00000026;cursor:pointer}.preprocess-slider input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--color-primary);border:2px solid var(--color-surface);box-shadow:0 1px 3px #00000026;cursor:pointer}.preprocess-toggles{display:flex;flex-wrap:wrap;gap:.3rem .6rem}.preprocess-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;color:var(--color-text);cursor:pointer}.preprocess-toggle input[type=checkbox]{width:14px;height:14px;accent-color:var(--color-primary);cursor:pointer}.preprocess-actions{display:flex;gap:.35rem;flex-wrap:wrap}.preprocess-btn{flex:1 1 auto;min-width:0;padding:.35rem .45rem;font-size:.7rem;font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);cursor:pointer;transition:all .15s;text-align:center;white-space:normal;word-break:keep-all;line-height:1.3}.preprocess-btn:disabled{opacity:.5;cursor:not-allowed}.preprocess-btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.preprocess-btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.preprocess-btn-accent{background:var(--color-secondary);color:#fff;border-color:var(--color-secondary);font-weight:600}.preprocess-btn-accent:hover:not(:disabled){filter:brightness(1.1)}.preprocess-btn-secondary{background:var(--color-surface);color:var(--color-text)}.preprocess-btn-secondary:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.btn-preprocess-toggle{font-size:.78rem;display:inline-flex;align-items:center;gap:.3rem}.btn-preprocess-toggle.active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.pending-viewer{display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0}.pending-viewer-buttons{display:flex;gap:.75rem;flex-wrap:wrap;padding:.5rem .25rem;align-items:center;justify-content:center}.pending-viewer-buttons .btn{display:inline-flex;align-items:center;gap:.35rem;height:2.25rem}@keyframes ocr-glow-pulse{0%,to{box-shadow:0 0 8px #3a9ec980,0 0 24px #3a9ec940}50%{box-shadow:0 0 16px #3a9ec9b3,0 0 40px #3a9ec959}}@keyframes ocr-glow-pulse-dark{0%,to{box-shadow:0 0 8px #e6a44c80,0 0 24px #e6a44c40}50%{box-shadow:0 0 16px #e6a44cb3,0 0 40px #e6a44c59}}@keyframes ocr-shimmer{0%{background-position:-200% center}to{background-position:200% center}}.btn-ocr-start{background:linear-gradient(135deg,#3a9ec9,#2d86ad,#3a9ec9);background-size:200% 200%;color:#fff;font-size:1.1rem;font-weight:700;letter-spacing:.05em;padding:.75rem 2.5rem;height:auto;border-radius:var(--radius);box-shadow:0 0 8px #3a9ec980,0 0 24px #3a9ec940;animation:ocr-glow-pulse 2s ease-in-out infinite,ocr-shimmer 3s linear infinite;transition:all .2s ease;border:1px solid rgba(255,255,255,.25)}.btn-ocr-start:hover:not(:disabled){transform:translateY(-2px) scale(1.04);box-shadow:0 0 20px #3a9ec9cc,0 0 50px #2d86ad66;filter:brightness(1.1)}.btn-ocr-start:active:not(:disabled){transform:translateY(0) scale(.98);box-shadow:0 0 6px #3a9ec980}[data-theme=dark] .btn-ocr-start{background:linear-gradient(135deg,#e6a44c,#d4922e,#e6a44c);background-size:200% 200%;border:1px solid rgba(255,255,255,.15);box-shadow:0 0 12px #e6a44c99,0 0 30px #d4922e4d;animation:ocr-glow-pulse-dark 2s ease-in-out infinite,ocr-shimmer 3s linear infinite}[data-theme=dark] .btn-ocr-start:hover:not(:disabled){box-shadow:0 0 24px #e6a44ce6,0 0 60px #d4922e73}.image-with-preprocess{display:flex;flex:1;min-height:0;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);overflow:hidden;background:var(--color-surface)}.image-with-preprocess-main{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;position:relative}.split-image-panel{display:flex;flex-direction:column;height:100%;min-height:0}.split-image-toolbar{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-bottom:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0;flex-wrap:wrap}.region-select-hint{font-size:.75rem;color:var(--color-text-tertiary);padding:.3rem .5rem;text-align:center}.region-action-bar{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;background:var(--color-warning-light);border-top:1px solid var(--color-border);flex-shrink:0}.region-action-bar .btn{font-size:.78rem}.result-section-split{display:flex;flex:1;min-height:0;gap:0}.text-editor-textarea.font-mono{font-family:Noto Sans Mono,Courier New,monospace}.text-editor-textarea.font-serif{font-family:"Noto Serif JP",Yu Mincho,游明朝,Hiragino Mincho ProN,serif}.text-editor-textarea.font-sans{font-family:Noto Sans JP,Yu Gothic,游ゴシック,Hiragino Kaku Gothic ProN,sans-serif}.text-editor-textarea.font-ud-kyokasho{font-family:Klee One,UD Digi Kyokasho NK-R,UD Digi Kyokasho NP-R,UD デジタル 教科書体 NK-R,UD デジタル 教科書体 NP-R,sans-serif}.text-editor-textarea.font-biz-ud{font-family:BIZ UDGothic,Noto Sans JP,sans-serif}.text-editor-font-select{padding:.15rem .35rem;font-size:.7rem;border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);background:var(--color-surface);color:var(--color-text);cursor:pointer;outline:none;max-width:110px}.text-editor-font-select:focus{border-color:var(--color-primary)}.text-editor-vertical{flex-direction:column;overflow-x:auto;overflow-y:hidden}.text-editor-vertical .text-editor-textarea{writing-mode:vertical-rl;text-orientation:mixed;font-feature-settings:"vert" 1;-webkit-font-feature-settings:"vert" 1;min-height:auto;min-width:100%;height:100%;line-height:2.2;letter-spacing:.05em;padding:1rem .75rem;text-align:justify}.text-editor-vertical .line-numbers-gutter{display:none}.line-numbers-gutter-vertical{display:flex;flex-direction:row-reverse;justify-content:flex-start;align-items:center;background:var(--color-bg);border-bottom:1px solid var(--color-border-light);padding:.25rem .75rem;overflow:hidden;flex-shrink:0;user-select:none;gap:0;font-family:Noto Sans Mono,Courier New,monospace}.line-number-vertical{display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);writing-mode:horizontal-tb;text-orientation:mixed;height:1.6rem;line-height:1;flex-shrink:0;box-sizing:border-box}.header-hamburger{display:none;background:none;border:none;color:var(--color-text);cursor:pointer;padding:.5rem;min-width:44px;min-height:44px;align-items:center;justify-content:center;transition:transform var(--transition-fast)}.header-hamburger:active{transform:scale(.92)}.header-hamburger svg{width:24px;height:24px}@media(max-width:768px){.header-hamburger{display:flex}}.drawer-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:999;opacity:0;transition:opacity .3s ease}.drawer-overlay.visible{display:block;opacity:1}.drawer-label,.drawer-close-btn{display:none}@media(max-width:768px){.drawer-label{display:inline;font-size:.9rem;margin-left:.5rem;white-space:nowrap}.drawer-close-btn{display:flex;align-items:center;justify-content:flex-end;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:.25rem;margin-bottom:.5rem;min-height:40px}.drawer-close-btn:active{color:var(--color-text)}.drawer-menu-item{display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem}}.drawer{position:fixed;top:0;left:0;right:auto;width:80%;max-width:320px;height:100vh;background:var(--color-surface);box-shadow:4px 0 16px #00000026;z-index:1000;padding:1.5rem 1rem;overflow-y:auto;transform:translate(-100%);transition:transform .3s ease}.drawer.drawer-open{transform:translate(0)}.drawer-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:none;cursor:pointer;color:var(--color-text-secondary);margin-left:auto;margin-right:0;margin-bottom:.5rem;transition:color var(--transition-fast)}.drawer-close:active{color:var(--color-text)}.drawer-close svg{width:24px;height:24px}.drawer-item{display:flex;align-items:center;gap:.75rem;padding:.75rem .5rem;border:none;background:none;width:100%;font-size:.95rem;color:var(--color-text);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast);min-height:48px;text-align:left}.drawer-item:active,.drawer-item:hover{background:var(--color-primary-light)}.drawer-item svg{width:20px;height:20px;flex-shrink:0}.drawer-divider{height:1px;background:var(--color-border-light);margin:.75rem 0}.drawer-footer-info{display:none}@media(max-width:768px){.drawer-footer-info{display:flex;flex-direction:column;gap:.5rem;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--color-border-light);font-size:.7rem;color:var(--color-text-secondary);line-height:1.45}.drawer-footer-privacy{display:flex;align-items:flex-start;gap:.3rem}.drawer-footer-privacy .privacy-icon{flex-shrink:0;font-size:.85rem;line-height:1}.drawer-footer-credits{font-size:.65rem;color:var(--color-text-tertiary)}.drawer-footer-license{font-size:.6rem;color:var(--color-text-tertiary);word-break:break-word}.drawer-footer-frog{font-size:.65rem;color:var(--color-text-tertiary)}}.fab{display:none;position:fixed;bottom:calc(1.5rem + env(safe-area-inset-bottom,0));right:calc(1rem + env(safe-area-inset-right,0));width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 12px #0003;align-items:center;justify-content:center;z-index:800;transition:transform .2s,box-shadow .2s;min-width:56px;min-height:56px}.fab:active{transform:scale(.92);box-shadow:0 2px 8px #00000026}.fab svg{width:24px;height:24px}@media(max-width:768px){.fab{display:flex}}@media(max-width:768px){.history-panel-container{position:fixed;bottom:0;left:0;right:0;max-height:75vh;max-height:75dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;z-index:900;animation:slideUp .3s ease;box-shadow:0 -2px 12px #0000001a;padding-bottom:env(safe-area-inset-bottom,0)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.history-panel-header{padding:1rem;border-bottom:1px solid var(--color-border-light);display:flex;justify-content:space-between;align-items:center}.history-panel-close{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0}}@media(max-width:768px){.modal{padding:0}.modal-content{border-radius:0;max-height:100vh}.modal-header{padding:.75rem;font-size:.95rem;border-bottom:1px solid var(--color-border-light)}.modal-body{padding:.75rem;overflow-y:auto;max-height:calc(100vh - 3rem)}.modal-footer{padding:.75rem;gap:.5rem}.modal-footer .btn{flex:1;min-width:auto}}@media(pointer:coarse){.image-viewer{touch-action:manipulation}.image-viewer-canvas{touch-action:none}}@media(max-width:768px){input[type=text],input[type=password],input[type=email],input[type=number],input[type=search],textarea,select{min-height:44px;padding:.75rem;font-size:16px;border-radius:var(--radius-sm)}input[type=checkbox],input[type=radio]{min-width:20px;min-height:20px;cursor:pointer}label{cursor:pointer}}@media(max-width:768px){.status-bar{flex-direction:column;gap:.5rem}.status-bar-item{width:100%;text-align:center;padding:.5rem 0}}@media(max-width:768px){.diff-view{font-size:.85rem}.diff-line{padding:.5rem .75rem}.diff-controls{flex-wrap:wrap;gap:.25rem}.diff-button{min-height:36px;min-width:auto;padding:.4rem .6rem;font-size:.75rem}}@media(max-width:768px){.dropdown-menu{position:fixed;max-width:90vw;max-height:50vh;overflow-y:auto}.dropdown-item{padding:.75rem 1rem;min-height:44px;font-size:.95rem}}@media(max-width:768px){::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}}@media(max-width:768px){.spacer-mobile-only{display:block}.spacer-desktop-only{display:none}}@media print{.header,.bottom-toolbar,.fab,.drawer,.drawer-overlay{display:none!important}body{background:#fff}.main{padding:0}}.camera-overlay{position:fixed;inset:0;z-index:2000;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center}.camera-video{width:100%;height:100%;object-fit:cover;min-width:0;min-height:0}.camera-controls{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-around;padding:1.2rem 2rem calc(1.2rem + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,#000000b3)}.camera-btn{display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:transform .15s ease,opacity .15s ease;background:none;color:#fff}.camera-btn:active{transform:scale(.9)}.camera-btn-close,.camera-btn-switch{width:48px;height:48px;border-radius:50%;background:#fff3;backdrop-filter:blur(4px)}.camera-btn-capture{width:72px;height:72px;border-radius:50%;background:transparent;border:4px solid white!important;padding:4px}.camera-shutter{width:100%;height:100%;border-radius:50%;background:#fff;transition:transform .1s ease}.camera-btn-capture:active .camera-shutter{transform:scale(.85);background:#ddd}.camera-error{color:var(--color-danger);font-size:.82rem;text-align:center;line-height:1.5;padding:.6rem 1rem;background:var(--color-danger-light);border:1px solid var(--color-danger);border-radius:var(--radius-sm);position:absolute;bottom:1rem;left:50%;transform:translate(-50%);width:calc(100% - 2rem);max-width:500px;z-index:10;animation:camera-error-in .3s ease}@keyframes camera-error-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.camera-device-selector{position:absolute;top:.75rem;left:50%;transform:translate(-50%);z-index:20}.camera-device-select{background:#0009;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:6px;padding:.35rem .6rem;font-size:.78rem;cursor:pointer;backdrop-filter:blur(4px);max-width:260px;text-overflow:ellipsis}.camera-device-select:focus{outline:none;border-color:#fff9}.camera-device-select option{background:#222;color:#fff}.camera-right-controls{display:flex;flex-direction:column;gap:.5rem;align-items:center}@media(min-width:769px){.camera-controls{max-width:520px;left:50%;right:auto;bottom:2.5rem;transform:translate(-50%);border-radius:var(--radius-lg);padding:1rem 2.5rem;gap:2rem;background:#000000b3;backdrop-filter:blur(10px);box-shadow:0 4px 24px #0006}.camera-video{object-fit:contain;background:#000}.camera-btn-capture{width:72px;height:72px}.camera-btn-close,.camera-btn-switch,.camera-btn-scan-toggle{width:46px;height:46px}.camera-right-controls{flex-direction:row;gap:.8rem}}@media(max-width:768px)and (orientation:landscape){.camera-overlay{flex-direction:row}.camera-controls{position:absolute;inset:0 0 auto auto;width:auto;height:100%;flex-direction:column;padding:1rem .8rem;background:linear-gradient(to left,rgba(0,0,0,.7),transparent)}.camera-right-controls{flex-direction:column;gap:.5rem}.scan-mode-badge{top:.5rem;left:.5rem;transform:none}.scan-viewfinder{width:80%;height:80%}}.camera-btn-scan-toggle{width:40px;height:40px;border-radius:50%;background:#ffffff26;backdrop-filter:blur(4px);opacity:.6;transition:opacity .2s,background .2s}.camera-btn-scan-toggle.active{opacity:1;background:#00b4d880}.scan-mode-badge{position:absolute;top:1rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.4rem;padding:.3rem .8rem;background:#00b4d8b3;backdrop-filter:blur(4px);border-radius:999px;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.03em;pointer-events:none;z-index:10}.scan-viewfinder{position:absolute;inset:15%;pointer-events:none;z-index:5}.scan-corner{position:absolute;width:32px;height:32px;border-color:#00b4d8cc;border-style:solid;border-width:0}.scan-corner-tl{top:0;left:0;border-top-width:3px;border-left-width:3px;border-radius:4px 0 0}.scan-corner-tr{top:0;right:0;border-top-width:3px;border-right-width:3px;border-radius:0 4px 0 0}.scan-corner-bl{bottom:0;left:0;border-bottom-width:3px;border-left-width:3px;border-radius:0 0 0 4px}.scan-corner-br{bottom:0;right:0;border-bottom-width:3px;border-right-width:3px;border-radius:0 0 4px}.scan-adjust-overlay{flex-direction:column}.scan-adjust-container{flex:1;width:100%;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.scan-adjust-canvas{max-width:100%;max-height:100%;object-fit:contain;touch-action:none;cursor:crosshair}.scan-detecting{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:#fff;font-size:.9rem;background:#00000080}.scan-spinner,.scan-spinner-large{border:3px solid rgba(255,255,255,.2);border-top-color:#00b4d8;border-radius:50%;animation:scan-spin .8s linear infinite}.scan-spinner{width:32px;height:32px}.scan-spinner-large{width:48px;height:48px;border-width:4px}@keyframes scan-spin{to{transform:rotate(360deg)}}.scan-adjust-toolbar{width:100%;padding:.8rem 1.2rem;background:#000000d9;backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:.8rem}.scan-adjust-options{display:flex;gap:1.2rem;flex-wrap:wrap}.scan-option-label{display:flex;align-items:center;gap:.4rem;color:#fff;font-size:.82rem;cursor:pointer;user-select:none}.scan-option-label input[type=checkbox]{accent-color:#00b4d8;width:16px;height:16px}.scan-adjust-actions{display:flex;gap:.8rem;justify-content:flex-end}.scan-adjust-actions .btn{min-width:120px}.scan-processing-overlay{flex-direction:column}.scan-processing-content{display:flex;flex-direction:column;align-items:center;gap:1.2rem;color:#fff;font-size:1rem}@media(max-width:768px){.scan-adjust-options{gap:.6rem}.scan-option-label{font-size:.75rem}.scan-adjust-actions .btn{min-width:80px;font-size:.8rem}.scan-mode-badge{font-size:.65rem;padding:.2rem .6rem}}@media(max-width:768px){.image-viewer-wrap .zoom-controls{position:absolute!important;top:.25rem;left:.25rem;right:auto;bottom:auto;z-index:20;padding:.15rem .2rem;gap:.1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);max-width:calc(100% - .5rem);flex-wrap:wrap}.image-viewer-wrap .zoom-controls .btn-zoom{width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;max-width:24px;max-height:24px;font-size:.7rem;padding:0}.image-viewer-wrap .zoom-controls .btn-zoom svg{width:11px;height:11px}.image-viewer-wrap .zoom-controls .btn-zoom-reset{width:auto!important;max-width:28px;padding:0 .25rem}.image-viewer-wrap .zoom-controls .zoom-level{font-size:.6rem;min-width:24px;padding:0;height:24px;min-height:24px!important}.image-viewer-wrap .zoom-controls .zoom-controls-sep{height:12px;margin:0}.image-viewer-wrap .zoom-controls .btn-zoom.btn-zoom-adjust{width:auto!important;height:auto!important;max-width:none;max-height:none;min-width:unset;min-height:24px;padding:.2rem .45rem!important;font-size:.65rem;gap:.2rem;white-space:nowrap;overflow:visible}.image-viewer-wrap .zoom-controls .btn-zoom.btn-zoom-adjust svg{width:10px;height:10px;flex-shrink:0}.image-viewer-wrap .zoom-controls .btn-zoom.btn-zoom-adjust .btn-zoom-label{font-size:.65rem;white-space:nowrap}}.iiif-trigger-btn{display:inline-flex;align-items:center;gap:4px}.iiif-modal-overlay{position:fixed;inset:0;z-index:9999;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(2px);animation:fadeIn .2s ease}.iiif-modal{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:580px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slide-up .3s ease}[data-theme=dark] .iiif-modal{box-shadow:var(--shadow-lg),0 0 40px #0006}.iiif-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border)}.iiif-modal-header h3{font-size:1.1rem;font-weight:600;margin:0}.iiif-modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text-secondary);padding:4px 8px;line-height:1;border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast)}.iiif-modal-close:hover{background:var(--color-surface-elevated);color:var(--color-text)}.iiif-modal-body{padding:1.5rem;overflow-y:auto;flex:1}.iiif-description{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:1.25rem;line-height:1.5}.iiif-input-label{display:block;font-size:.85rem;font-weight:600;color:var(--color-text);margin-bottom:6px}.iiif-input-row{display:flex;gap:8px;margin-bottom:8px}.iiif-url-input{flex:1;padding:12px 16px;border:2px solid var(--color-border);border-radius:var(--radius);font-size:.95rem;background:var(--color-bg);color:var(--color-text);outline:none;transition:border-color .2s,box-shadow .2s}.iiif-url-input::placeholder{color:var(--color-text-tertiary)}.iiif-url-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle)}.iiif-hint{font-size:.8rem;color:var(--color-text-tertiary);line-height:1.5;margin-top:4px}.iiif-select-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:.9rem;font-weight:500}.iiif-select-actions{display:flex;gap:6px}.iiif-canvas-list{max-height:40vh;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:16px;background:var(--color-bg)}.iiif-canvas-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--color-border-light);transition:background .15s;font-size:.85rem}.iiif-canvas-item:last-child{border-bottom:none}.iiif-canvas-item:hover{background:var(--color-surface-elevated)}.iiif-canvas-item.selected{background:var(--color-primary-light)}.iiif-canvas-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iiif-canvas-size{font-size:.75rem;color:var(--color-text-tertiary);white-space:nowrap}.iiif-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:8px}.iiif-error{padding:12px 20px;background:var(--color-danger-light);color:var(--color-danger);font-size:.85rem;border-top:1px solid var(--color-border);border-radius:0 0 var(--radius-lg) var(--radius-lg)}
