:root{--bg-page:#fafafa;--surface:#fff;--surface-sunken:#f3f4f6;--border-subtle:#e2e8f0;--border-strong:#cbd5e1;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--disabled-text:#94a3b8;--accent-50:#eff6ff;--accent-100:#dbeafe;--accent-600:#1d4ed8;--accent-700:#1e40af;--accent-900:#172554;--success-50:#f0fdf4;--success-600:#15803d;--warning-50:#fffbeb;--warning-600:#b45309;--warning-700:#92400e;--error-50:#fef2f2;--error-600:#dc2626;--font-family-sans:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--radius-control:6px;--radius-card:10px;--radius-modal:12px;--radius-upload:12px;--touch-target-min:44px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--color-bg:var(--bg-page);--color-surface:var(--surface);--color-text:var(--text-primary);--color-text-muted:var(--text-muted);--color-border:var(--border-subtle);--color-primary:var(--accent-600);--color-primary-hover:var(--accent-700);--color-focus:var(--accent-600);--color-error-bg:var(--error-50);--color-error-border:#fecaca;--color-error-text:var(--error-600);--color-success-bg:var(--success-50);--color-success-border:#bbf7d0;--color-success-text:var(--success-600);--border-radius:8px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-sans);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button{cursor:pointer;background:0 0;border:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-container{flex-direction:column;min-height:100vh;display:flex}.app-header,.site-header{background-color:var(--surface);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;height:72px;padding:0 32px;display:flex}.site-header__brand{color:var(--text-primary);align-items:center;gap:8px;font-size:1.125rem;font-weight:700;display:flex}.brand-mark{color:var(--accent-600);font-size:1.25rem}.site-header__nav{align-items:center;gap:24px;display:flex}.site-header__nav a{color:var(--text-secondary);font-size:14px;font-weight:500;text-decoration:none;transition:color .15s}.site-header__nav a:hover{color:var(--text-primary)}@media (width<=640px){.site-header{height:56px;padding:0 16px}.site-header__nav{display:none}}.app-main{width:100%;max-width:1200px;padding:var(--space-6);flex:1;margin:0 auto}.app-footer{background-color:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-6);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.privacy-badge{align-items:center;gap:var(--space-2);background-color:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text);padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm);border-radius:9999px;font-weight:500;display:inline-flex}.error-fallback{background-color:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error-text);padding:var(--space-6);border-radius:var(--border-radius);margin:var(--space-4) 0}.btn-interactive{min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:var(--space-2) var(--space-4);border-radius:var(--border-radius);font-weight:500;font-size:var(--font-size-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,opacity .15s ease-in-out;display:inline-flex}.btn-interactive:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn-interactive:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg);border-color:#cbd5e1}.btn-text{color:var(--color-text-muted);background:0 0}.btn-text:hover:not(:disabled){background-color:var(--color-bg);color:var(--color-text)}.btn-icon{min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:var(--space-2);background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--border-radius);justify-content:center;align-items:center;display:inline-flex}.btn-icon:hover:not(:disabled){background-color:var(--color-bg)}.upload-screen{width:100%}.upload-hero{text-align:center;max-width:720px;margin:0 auto;padding:48px 24px 64px}.upload-hero__title{color:var(--text-primary);margin:0;font-size:32px;font-weight:700;line-height:40px}.upload-hero__subtitle{color:var(--text-secondary);margin-top:12px;margin-bottom:0;font-size:16px;line-height:24px}.upload-hero__support{color:var(--text-muted);margin-top:6px;margin-bottom:0;font-size:14px;line-height:20px}.upload-zone,.drop-zone{border:2px dashed var(--border-strong);border-radius:var(--radius-upload,12px);background-color:var(--surface);cursor:pointer;word-break:break-word;flex-direction:column;justify-content:center;align-items:center;gap:8px;margin-top:32px;padding:56px 24px;transition:border-color .12s,background-color .12s;display:flex}.upload-zone:hover,.upload-zone--drag-over,.drop-zone:hover,.drop-zone-active{border-color:var(--accent-600);background-color:var(--accent-50);border-style:solid}.upload-zone__content,.drop-zone-content{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.upload-zone__button{background-color:var(--accent-600);color:#fff;border-radius:var(--radius-control,6px);cursor:pointer;min-height:var(--touch-target-min,48px);border:none;min-width:160px;padding:12px 32px;font-size:15px;font-weight:600;transition:background-color .15s}.upload-zone__button:hover:not(:disabled){background-color:var(--accent-700)}.upload-zone__button:focus-visible{outline:2px solid var(--accent-600);outline-offset:2px}.upload-zone__hint,.drop-zone-prompt{color:var(--text-secondary);margin:8px 0 0;font-size:14px}.upload-zone__note{color:var(--text-muted);margin:0;font-size:12px}.upload-privacy{border-top:1px solid var(--border-subtle);margin-top:36px;padding-top:24px}.upload-privacy__title{color:var(--text-primary);justify-content:center;align-items:center;gap:6px;margin:0;font-size:14px;font-weight:600;display:flex}.upload-privacy__body{color:var(--text-muted);margin-top:6px;margin-bottom:0;font-size:13px;line-height:18px}.trust-strip{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:16px 20px;margin-top:20px;padding:0;font-size:13px;list-style:none;display:flex}.trust-strip li{align-items:center;gap:6px;display:flex}.trust-strip-check{color:var(--success-600);font-weight:700}@media (width<=640px){.app-main{padding:var(--space-4) var(--space-3)}}@media (width<=480px){.upload-hero{padding:32px 16px 48px}.upload-hero__title{font-size:26px;line-height:34px}.upload-hero__subtitle{font-size:15px;line-height:22px}.upload-zone,.drop-zone{margin-top:24px;padding:36px 16px}.upload-zone__button{width:100%;max-width:320px;min-height:48px;font-size:16px}.upload-zone__hint,.drop-zone-prompt{display:none}.trust-strip{gap:12px 16px}}.guarded-card{gap:var(--space-6);padding:var(--space-6);border-radius:var(--border-radius);margin-top:var(--space-6);background-color:var(--color-surface);box-shadow:var(--shadow-sm);display:flex}.guarded-card-warning{color:#92400e;background-color:#fffbeb;border:1px solid #fde68a}.guarded-card-warning .guarded-icon{color:#d97706}.guarded-card-error{border:1px solid var(--border-subtle);background-color:var(--surface);color:var(--text-primary);border-radius:var(--radius-card);max-width:640px;margin-left:auto;margin-right:auto}.guarded-card-error .guarded-icon{color:var(--error-600)}.guarded-card-error .guarded-body h2{color:var(--text-primary)}.guarded-card-error .guarded-body p{color:var(--text-secondary)}.guarded-body{flex:1}.guarded-body h2{font-size:var(--font-size-xl);margin:0 0 var(--space-2) 0;font-weight:600}.guarded-body p{margin:0 0 var(--space-4) 0;line-height:1.5}.guarded-actions{gap:var(--space-3);display:flex}.upload-zone__error{margin-top:var(--space-3);padding:var(--space-2) var(--space-4);background-color:var(--error-50);color:var(--error-600);border-radius:var(--radius-control);font-size:14px;font-weight:500;line-height:20px}.workspace-container{gap:var(--space-6);flex-direction:column;display:flex}.workspace-toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);flex-wrap:wrap;display:flex}.toolbar-info{gap:var(--space-1);flex-direction:column;display:flex}.toolbar-filename{font-weight:600;font-size:var(--font-size-base);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:min(320px,100%);overflow:hidden}.toolbar-stats{font-size:var(--font-size-sm);color:var(--color-text-muted)}.toolbar-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.toolbar-group{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.range-input-form{flex-direction:column;display:flex;position:relative}.range-input-group{align-items:center;gap:var(--space-2);display:flex}.range-input-field{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);border:1px solid var(--color-border);border-radius:var(--border-radius);background-color:var(--color-surface);color:var(--color-text);width:120px;min-height:var(--touch-target-min);box-sizing:border-box}.range-input-field:focus{outline:2px solid var(--color-focus);outline-offset:1px}.range-input-field.has-error{border-color:var(--color-error-border);background-color:var(--color-error-bg)}.range-input-error{color:var(--color-error-text);background-color:var(--color-surface);border:1px solid var(--color-error-border);box-shadow:var(--shadow-sm);white-space:nowrap;z-index:10;border-radius:4px;margin-top:4px;padding:2px 6px;font-size:.75rem;position:absolute;top:100%;left:0}.status-banner{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-radius:var(--border-radius);font-size:var(--font-size-sm);display:flex}.status-banner-info{color:#1e40af;background-color:#eff6ff;border:1px solid #bfdbfe}.status-banner-error{background-color:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error-text)}.status-banner-success{background-color:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text);justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.status-success-content{align-items:flex-start;gap:var(--space-3);display:flex}.spinner{border:2px solid #bfdbfe;border-top-color:var(--color-primary);border-radius:50%;flex-shrink:0;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.thumbnail-grid{gap:var(--space-6);padding:var(--space-2) 0;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.page-card{background-color:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--border-radius);padding:var(--space-3);box-shadow:var(--shadow-sm);-webkit-user-select:none;user-select:none;flex-direction:column;transition:border-color .15s,box-shadow .15s;display:flex}.page-card:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1}.page-card-selected{border-color:var(--color-primary);background-color:#2563eb05}.page-card-select-btn{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:none;border-radius:4px;flex-direction:column;padding:0;display:flex}.page-card-select-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.page-card-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.page-number{font-size:var(--font-size-sm);color:var(--color-text);font-weight:500}.rotation-badge{color:var(--color-primary);background-color:#eff6ff;border-radius:4px;padding:2px 6px;font-size:.75rem;font-weight:600}.thumbnail-wrapper{aspect-ratio:3/4;background-color:var(--color-bg);width:100%;margin-bottom:var(--space-3);border-radius:4px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.thumbnail-canvas{object-fit:contain;max-width:100%;max-height:100%;display:block}.thumbnail-placeholder{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%) 0 0/200% 100%;animation:1.5s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.page-card-actions{justify-content:center;gap:var(--space-2);margin-top:auto;display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;padding:var(--space-4);background-color:#0f172aa6;justify-content:center;align-items:center;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-container{background-color:var(--color-surface);border-radius:var(--border-radius);border:1px solid var(--color-border);width:100%;max-width:540px;padding:var(--space-6);gap:var(--space-4);outline:none;flex-direction:column;display:flex;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-container:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.modal-header{align-items:center;gap:var(--space-3);display:flex}.modal-header h2{font-size:var(--font-size-xl);color:var(--color-text);margin:0;font-weight:600}.modal-warning-icon{color:#d97706;flex-shrink:0;justify-content:center;align-items:center;display:flex}.modal-body{gap:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-muted);flex-direction:column;line-height:1.5;display:flex}.modal-body p{margin:0}.modal-ack-group{padding:var(--space-3);border-radius:var(--border-radius);background-color:#fffbeb;border:1px solid #fef3c7}.checkbox-label{align-items:flex-start;gap:var(--space-3);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text);-webkit-user-select:none;user-select:none;min-height:var(--touch-target-min);font-weight:500;display:flex}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0;margin-top:3px}.checkbox-label span{line-height:1.4}.modal-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.mobile-sticky-bar{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=640px){.app-header{padding:var(--space-3) var(--space-4)}.app-main{padding:var(--space-4) var(--space-3)}.workspace-container{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}.workspace-toolbar{padding:var(--space-3);gap:var(--space-3)}.toolbar-actions{gap:var(--space-3);width:100%}.toolbar-group{width:100%}.toolbar-selection-group{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.toolbar-selection-group .range-input-form{grid-column:1/-1}.toolbar-rotation-group{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.toolbar-rotation-group button:last-child{grid-column:1/-1}.range-input-group{width:100%;display:flex}.range-input-field{flex:1;min-width:0}.mobile-sticky-bar{background-color:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom,0px));z-index:100;justify-content:stretch;align-items:center;gap:var(--space-2);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 10px #00000014}.mobile-sticky-bar .btn-interactive{min-height:var(--touch-target-min);flex:1}.status-banner-success{flex-direction:column;align-items:stretch}.status-banner-success button{width:100%;margin-left:0!important}}.seo-content-section{width:100%;max-width:var(--max-width);margin-top:var(--space-8);gap:var(--space-4);flex-direction:column;display:flex}.seo-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.seo-card h2{font-size:var(--font-size-lg);color:var(--color-text);margin-bottom:var(--space-3);font-weight:600}.seo-card p{color:var(--color-text-muted);font-size:var(--font-size-base);margin-bottom:var(--space-3);line-height:1.6}.seo-card p:last-child{margin-bottom:0}.seo-card ul{padding-left:var(--space-5);color:var(--color-text-muted);font-size:var(--font-size-base);gap:var(--space-2);flex-direction:column;line-height:1.6;display:flex}.seo-card strong{color:var(--color-text)}.seo-card code{background-color:var(--color-bg);border-radius:var(--radius-sm);padding:2px 6px;font-family:monospace;font-size:.9em}.seo-faq-section{width:100%;max-width:var(--max-width);margin-top:var(--space-8);margin-bottom:var(--space-12)}.seo-faq-section h2{font-size:var(--font-size-xl);color:var(--color-text);margin-bottom:var(--space-4);font-weight:700}.faq-list{gap:var(--space-3);flex-direction:column;display:flex}.faq-item{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.faq-item h3{font-size:var(--font-size-base);margin:0}.faq-question-btn{width:100%;min-height:var(--touch-target-min);padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);cursor:pointer;text-align:left;font-family:inherit;font-size:var(--font-size-base);color:var(--color-text);background:0 0;border:none;font-weight:600;display:flex}.faq-question-btn:hover{background-color:var(--color-surface-hover)}.faq-question-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.faq-chevron{color:var(--color-text-muted);flex-shrink:0;font-size:1.25rem;font-weight:700}.faq-answer-panel{padding:var(--space-2) var(--space-4) var(--space-4);border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-base);line-height:1.6}.faq-answer-panel p{margin:0}
