:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;padding:0}#root{min-height:100vh}.app-header{background-color:#fff;border-bottom:1px solid #eaeaea;width:100%;box-shadow:0 1px 3px #0000000a}.header-container{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:16px 24px;display:flex}.logo-group{align-items:center;gap:14px;display:flex}.logo-icon{color:#2563eb;background:#eff6ff;border:1px solid #dbeafe;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;font-size:28px;line-height:1;display:flex}.app-title{color:#111827;letter-spacing:-.02em;margin:0;font-size:20px;font-weight:700}.app-subtitle{color:#6b7280;margin:2px 0 0;font-size:13px}.header-actions-group{align-items:center;gap:10px;display:flex}.header-autosave-indicator{white-space:nowrap;border-radius:4px;align-items:center;gap:5px;padding:4px 8px;font-size:12px;font-weight:500;transition:all .2s;display:inline-flex}.header-autosave-indicator.is-unsaved{color:#b45309;background-color:#fffbeb}.header-autosave-indicator.is-saving{color:#2563eb;background-color:#eff6ff}.header-autosave-indicator.is-saved{color:#059669}.header-autosave-indicator.is-error{color:#dc2626;background-color:#fef2f2}.autosave-dot{color:#10b981;font-size:9px}.autosave-icon-error{font-size:12px}.autosave-spinner{border:2px solid #93c5fd;border-top-color:#2563eb;border-radius:50%;width:10px;height:10px;animation:.8s linear infinite autosaveSpin;display:inline-block}@keyframes autosaveSpin{to{transform:rotate(360deg)}}.header-action-btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;line-height:1.4;transition:all .15s ease-in-out;display:inline-flex}.header-action-btn .btn-icon{font-size:14px;line-height:1}.load-project-btn{color:#334155;background-color:#f8fafc;border-color:#cbd5e1}.load-project-btn:hover{color:#0f172a;background-color:#f1f5f9;border-color:#94a3b8}.save-project-btn{color:#fff;background-color:#2563eb}.save-project-btn:hover:not(:disabled){background-color:#1d4ed8}.save-project-btn:disabled{color:#94a3b8;cursor:not-allowed;opacity:.7;background-color:#f1f5f9;border-color:#e2e8f0}.header-file-input-hidden{display:none}.header-status{align-items:center;margin-left:4px;display:flex}.status-badge{color:#059669;white-space:nowrap;background-color:#ecfdf5;border:1px solid #a7f3d0;border-radius:9999px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-block}@media (width<=768px){.header-container{flex-direction:column;align-items:flex-start;gap:12px}.header-actions-group{flex-wrap:wrap;justify-content:flex-start;width:100%}}.image-uploader-wrapper{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.dropzone{text-align:center;cursor:pointer;box-sizing:border-box;background-color:#f8fafc;border:2px dashed #cbd5e1;border-radius:12px;outline:none;width:100%;padding:48px 24px;transition:all .2s ease-in-out}.dropzone:hover{background-color:#eff6ff;border-color:#3b82f6}.dropzone:focus-visible{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb33}.dropzone.is-dragging{background-color:#dbeafe;border-color:#2563eb;transform:scale(1.01)}.dropzone-content{pointer-events:none;flex-direction:column;align-items:center;gap:12px;display:flex}.upload-icon-circle{color:#4f46e5;background-color:#e0e7ff;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin-bottom:4px;display:flex}.upload-icon{width:30px;height:30px}.upload-main-text{color:#334155;margin:0;font-size:16px;font-weight:500}.highlight-text{color:#2563eb;text-underline-offset:2px;font-weight:600;text-decoration:underline}.upload-sub-text{color:#64748b;margin:0;font-size:13px}.select-file-btn{pointer-events:auto;color:#fff;cursor:pointer;background-color:#2563eb;border:none;border-radius:8px;margin-top:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:background-color .2s,transform .1s;box-shadow:0 1px 2px #0000000d}.select-file-btn:hover{background-color:#1d4ed8}.select-file-btn:active{transform:scale(.98)}.upload-error-alert{color:#dc2626;box-sizing:border-box;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:10px;width:100%;max-width:600px;padding:12px 16px;font-size:14px;animation:.2s ease-in-out fadeIn;display:flex}.error-icon{font-size:16px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.project-load-fallback-row{align-items:center;gap:12px;margin-top:4px;display:flex}.fallback-divider-text{color:#94a3b8;font-size:13px;font-weight:500}.load-project-fallback-btn{color:#475569;cursor:pointer;background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;align-items:center;gap:8px;padding:8px 18px;font-size:13px;font-weight:600;transition:all .15s ease-in-out;display:inline-flex}.load-project-fallback-btn:hover{color:#1e293b;background-color:#e2e8f0;border-color:#94a3b8}.fallback-btn-icon{font-size:15px}.crop-preview-wrapper{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:16px;display:flex}.crop-preview-header{justify-content:space-between;align-items:center;width:100%;display:flex}.crop-preview-title{color:#475569;font-size:12px;font-weight:600}.crop-preview-zoom{color:#2563eb;background-color:#eff6ff;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:700}.crop-preview-box{background-color:#1e293b;border:2px solid #3b82f6;border-radius:8px;position:relative;overflow:hidden;box-shadow:0 2px 4px #00000014}.crop-preview-image{pointer-events:none;-webkit-user-select:none;user-select:none;max-width:none;max-height:none;position:absolute}.crop-preview-hint{color:#94a3b8;text-align:center;font-size:11px}.crop-controls{box-sizing:border-box;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:12px;width:100%;padding:14px 16px;display:flex}.zoom-control-group{flex-direction:column;gap:8px;display:flex}.control-label-row{justify-content:space-between;align-items:center;display:flex}.control-label{color:#334155;font-size:13px;font-weight:600}.slider-row{align-items:center;gap:10px;display:flex}.zoom-boundary-text{color:#94a3b8;white-space:nowrap;font-size:11px;font-weight:500}.zoom-slider{appearance:none;cursor:pointer;background:#cbd5e1;border-radius:3px;outline:none;flex:1;height:6px}.zoom-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#2563eb;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #00000026}.current-zoom-badge{color:#2563eb;background-color:#eff6ff;border-radius:4px;padding:2px 6px;font-size:12px;font-weight:700}.action-control-group{flex-wrap:wrap;gap:8px;display:flex}.crop-action-btn{color:#334155;cursor:pointer;white-space:nowrap;background-color:#fff;border:1px solid #cbd5e1;border-radius:6px;flex:1;justify-content:center;align-items:center;min-width:80px;padding:7px 10px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.crop-action-btn:hover{color:#0f172a;background-color:#f1f5f9;border-color:#94a3b8}.crop-action-btn:active{background-color:#e2e8f0}.image-cropper-container{width:100%}.cropper-content-grid{align-items:center;gap:24px;display:flex}.crop-frame-column{flex-direction:column;flex:1.1;align-items:center;gap:8px;min-width:0;display:flex}.crop-frame-box{aspect-ratio:1;width:100%;max-width:340px;box-shadow:none;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background-color:#0f172a;background-image:linear-gradient(45deg,#1e293b 25%,#0000 25%),linear-gradient(-45deg,#1e293b 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#1e293b 75%),linear-gradient(-45deg,#0000 75%,#1e293b 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;border:2px solid #2563eb;border-radius:10px;position:relative;overflow:hidden}.crop-frame-box.is-dragging{cursor:grabbing}.crop-target-image{pointer-events:none;-webkit-user-select:none;user-select:none;max-width:none;max-height:none;transition:transform 50ms ease-out;position:absolute}.crop-grid-overlay{pointer-events:none;position:absolute;inset:0}.grid-line{background-color:#ffffff4d;position:absolute;box-shadow:0 0 1px #0006}.line-v-1{width:1px;top:0;bottom:0;left:33.333%}.line-v-2{width:1px;top:0;bottom:0;left:66.666%}.line-h-1{height:1px;top:33.333%;left:0;right:0}.line-h-2{height:1px;top:66.666%;left:0;right:0}.frame-corner{pointer-events:none;border-style:solid;border-color:#3b82f6;width:14px;height:14px;position:absolute}.corner-tl{border-width:3px 0 0 3px;border-top-left-radius:8px;top:-1px;left:-1px}.corner-tr{border-width:3px 3px 0 0;border-top-right-radius:8px;top:-1px;right:-1px}.corner-bl{border-width:0 0 3px 3px;border-bottom-left-radius:8px;bottom:-1px;left:-1px}.corner-br{border-width:0 3px 3px 0;border-bottom-right-radius:8px;bottom:-1px;right:-1px}.crop-drag-hint{color:#64748b;text-align:center;margin:0;font-size:12px;font-weight:500}.crop-side-column{flex-direction:column;flex:.9;gap:16px;min-width:0;display:flex}.crop-preview-row{align-items:center;gap:16px;display:flex}.crop-tip-box{box-sizing:border-box;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex:1;padding:10px 14px}.crop-tip-text{color:#475569;margin:0;font-size:12px;line-height:1.45}@media (width<=768px){.cropper-content-grid{flex-direction:column;align-items:stretch;gap:18px}.crop-preview-row{flex-direction:column;align-items:flex-start}.crop-tip-box{width:100%}}.extracted-crop-card{box-sizing:border-box;background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:14px;width:100%;padding:18px 20px;display:flex;box-shadow:0 1px 3px #0000000a}.extracted-header{justify-content:space-between;align-items:center;display:flex}.header-text-group{align-items:center;gap:10px;display:flex}.extracted-icon{background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:20px;display:flex}.extracted-title{color:#1e293b;margin:0;font-size:15px;font-weight:700}.extracted-desc{color:#64748b;margin:2px 0 0;font-size:12px}.extracted-body{align-items:center;gap:16px;display:flex}.canvas-stage-wrapper{background-color:#1e293b;background-image:linear-gradient(45deg,#334155 25%,#0000 25%),linear-gradient(-45deg,#334155 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#334155 75%),linear-gradient(-45deg,#0000 75%,#334155 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:2px solid #10b981;border-radius:8px;justify-content:center;align-items:center;width:130px;min-width:130px;height:130px;display:flex;overflow:hidden;box-shadow:0 2px 6px #10b98126}.extracted-canvas{object-fit:contain;width:100%;max-width:100%;height:100%;max-height:100%;display:block}.extracted-info-panel{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;flex:1;gap:8px;padding:12px 14px;display:flex}.extracted-info-row{justify-content:space-between;align-items:center;font-size:12px;display:flex}.info-value-text{color:#0f172a;font-variant-numeric:tabular-nums;font-weight:700}.validation-note{color:#059669;border-top:1px dashed #cbd5e1;align-items:center;gap:6px;margin-top:4px;padding-top:6px;font-size:11px;font-weight:500;display:flex}.check-icon{font-weight:700}@media (width<=600px){.extracted-body{flex-direction:column;align-items:center}.canvas-stage-wrapper{width:140px;height:140px}.extracted-info-panel{box-sizing:border-box;width:100%}}.grid-size-selector-wrap{flex-direction:column;gap:8px;width:100%;display:flex}.selector-title-row{justify-content:space-between;align-items:center;display:flex}.selector-subheading{color:#475569;font-size:13px;font-weight:600}.size-options-grid{grid-template-columns:repeat(10,1fr);gap:6px;width:100%;display:grid}.size-option-btn{cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;padding:8px 4px;transition:all .15s;display:flex}.size-option-btn:hover{background-color:#f1f5f9;border-color:#94a3b8}.size-option-btn.is-selected{color:#fff;background-color:#2563eb;border-color:#1d4ed8}.size-label{font-size:12px;font-weight:700}.size-cells-count{opacity:.8;font-size:10px;font-weight:500}.size-option-btn.is-selected .size-cells-count{opacity:.9}@media (width<=900px){.size-options-grid{grid-template-columns:repeat(5,1fr)}}@media (width<=480px){.size-options-grid{grid-template-columns:repeat(5,1fr);gap:4px}.size-label{font-size:11px}.size-cells-count{display:none}}.auto-threshold-panel{box-sizing:border-box;width:100%;box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}.auto-threshold-trigger-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.trigger-info-group{flex:1;min-width:260px}.trigger-title-row{align-items:center;gap:8px;display:flex}.trigger-title-icon{font-size:1.1rem}.trigger-title-text{color:#0f172a;margin:0;font-size:15px;font-weight:700}.trigger-description{color:#64748b;margin:4px 0 0;font-size:13px;line-height:1.45}.diff-warning-pill{color:#b45309;background-color:#fef3c7;border:1px solid #fde68a;border-radius:6px;margin-top:6px;padding:3px 8px;font-size:12px;font-weight:600;display:inline-block}.auto-analyze-btn{color:#fff;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background-color:#2563eb;border:1px solid #1d4ed8;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:11px 22px;font-size:14px;font-weight:700;transition:all .15s;display:inline-flex;box-shadow:0 1px 3px #2563eb33}.auto-analyze-btn:hover:not(:disabled){background-color:#1d4ed8;box-shadow:0 2px 6px #2563eb4d}.auto-analyze-btn:active:not(:disabled){background-color:#1e40af}.auto-analyze-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;background-color:#94a3b8;border-color:#94a3b8}.btn-lightning-icon{width:17px;height:17px}.auto-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite auto-spin}@keyframes auto-spin{to{transform:rotate(360deg)}}.auto-threshold-error-banner{color:#b91c1c;background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin-top:12px;padding:8px 12px;font-size:13px;font-weight:600}.creation-success-box{background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;flex-direction:column;gap:10px;margin-top:12px;padding:10px 14px;display:flex}.success-content-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.success-check-icon{color:#16a34a;font-size:15px;font-weight:900}.success-text-wrap{flex-wrap:wrap;flex:1;align-items:center;gap:8px;display:flex}.success-title{color:#15803d;font-size:13px;font-weight:700}.success-sub{color:#4b5563;font-size:12px}.toggle-candidates-btn{color:#166534;cursor:pointer;background:0 0;border:1px solid #86efac;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:600;transition:all .15s}.toggle-candidates-btn:hover{background-color:#dcfce7}.candidates-cards-grid{border-top:1px solid #dcfce7;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:6px;padding-top:8px;display:grid}.candidate-card{background:#fff;border:1px solid #cbd5e1;border-radius:6px;flex-direction:column;gap:6px;padding:10px;font-size:12px;display:flex}.candidate-card.is-recommended{background-color:#f8fafc;border-color:#3b82f6}.candidate-card-header{justify-content:space-between;align-items:center;display:flex}.card-rank-badge{color:#1e40af;font-size:11px;font-weight:700}.current-applied-tag{color:#16a34a;background-color:#dcfce7;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700}.candidate-stat-row{justify-content:space-between;align-items:center;display:flex}.stat-label{color:#64748b;font-size:11px}.stat-number{color:#0f172a;font-weight:700}.stat-score{color:#2563eb;font-weight:700}.cand-status-badge{font-size:11px;font-weight:600}.cand-status-badge.status-success{color:#15803d}.cand-status-badge.status-attention{color:#1d4ed8}.cand-status-badge.status-warning{color:#b45309}.cand-status-badge.status-neutral{color:#475569}.cand-status-badge.status-error{color:#dc2626}.apply-candidate-btn{color:#334155;cursor:pointer;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:4px;margin-top:4px;padding:4px;font-size:11px;font-weight:600}.apply-candidate-btn:hover{background:#e2e8f0}.color-grid-card{box-sizing:border-box;background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:16px;width:100%;padding:20px 24px;display:flex;box-shadow:0 1px 3px #0000000a}.color-grid-header{justify-content:space-between;align-items:center;display:flex}.color-grid-title-group{align-items:center;gap:12px;display:flex}.color-grid-icon{color:#9333ea;background-color:#faf5ff;border:1px solid #f3e8ff;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-size:22px;display:flex}.color-grid-title{color:#1e293b;margin:0;font-size:16px;font-weight:700}.color-grid-desc{color:#64748b;margin:2px 0 0;font-size:13px}.color-grid-body{align-items:center;gap:24px;display:flex}.grid-viewport-wrapper{box-sizing:border-box;background-color:#1e293b;background-image:linear-gradient(45deg,#334155 25%,#0000 25%),linear-gradient(-45deg,#334155 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#334155 75%),linear-gradient(-45deg,#0000 75%,#334155 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:2px solid #9333ea;border-radius:10px;justify-content:center;align-items:center;width:280px;min-width:280px;height:280px;display:flex;overflow:hidden;box-shadow:0 4px 10px #9333ea1f}.color-grid-board{background-color:#00000026;gap:1px;width:100%;height:100%;display:grid}.color-cell{box-sizing:border-box;width:100%;height:100%;transition:transform .1s}.color-cell:hover{z-index:1;outline:1px solid #fff}.color-grid-info-panel{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;flex:1;gap:10px;padding:16px 18px;display:flex}.color-info-row{justify-content:space-between;align-items:center;font-size:13px;display:flex}.color-info-row .info-badge-label{color:#64748b;font-weight:600}.color-info-row .info-value-text{color:#0f172a;font-weight:700}.color-info-row .info-value-text.highlight{color:#9333ea}.sampling-explanation{color:#475569;border-top:1px dashed #cbd5e1;align-items:flex-start;gap:8px;margin-top:6px;padding-top:10px;font-size:12px;line-height:1.5;display:flex}.sampling-explanation .bullet{font-size:14px}@media (width<=680px){.color-grid-body{flex-direction:column;align-items:center}.grid-viewport-wrapper{width:260px;min-width:260px;height:260px}.color-grid-info-panel{box-sizing:border-box;width:100%}}.grayscale-grid-card{box-sizing:border-box;background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:16px;width:100%;padding:20px 24px;display:flex;box-shadow:0 1px 3px #0000000a}.grayscale-grid-header{justify-content:space-between;align-items:center;display:flex}.grayscale-title-group{align-items:center;gap:12px;display:flex}.grayscale-icon{color:#475569;background-color:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-size:22px;display:flex}.grayscale-title{color:#1e293b;margin:0;font-size:16px;font-weight:700}.grayscale-desc{color:#64748b;margin:2px 0 0;font-size:13px}.grayscale-grid-body{align-items:center;gap:24px;display:flex}.grayscale-viewport{box-sizing:border-box;background-color:#1e293b;background-image:linear-gradient(45deg,#334155 25%,#0000 25%),linear-gradient(-45deg,#334155 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#334155 75%),linear-gradient(-45deg,#0000 75%,#334155 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:2px solid #64748b;border-radius:10px;justify-content:center;align-items:center;width:280px;min-width:280px;height:280px;display:flex;overflow:hidden;box-shadow:0 4px 10px #47556926}.grayscale-grid-board{background-color:#0003;gap:1px;width:100%;height:100%;display:grid}.grayscale-cell{box-sizing:border-box;width:100%;height:100%;transition:transform .1s}.grayscale-cell:hover{z-index:1;outline:1px solid #38bdf8}.grayscale-info-panel{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;flex:1;gap:10px;padding:16px 18px;display:flex}.gray-info-row{justify-content:space-between;align-items:center;font-size:13px;display:flex}.gray-info-row .info-badge-label{color:#64748b;font-weight:600}.gray-info-row .info-value-text{color:#0f172a;font-weight:700}.gray-info-row .info-value-text.highlight{color:#0f172a;background-color:#e2e8f0;border-radius:4px;padding:2px 6px}.code-font{color:#334155;background-color:#f1f5f9;border-radius:4px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px}.grayscale-notice-box{color:#475569;border-top:1px dashed #cbd5e1;align-items:flex-start;gap:8px;margin-top:6px;padding-top:10px;font-size:12px;line-height:1.5;display:flex}.grayscale-notice-box .notice-icon{color:#10b981;font-weight:700}@media (width<=680px){.grayscale-grid-body{flex-direction:column;align-items:center}.grayscale-viewport{width:260px;min-width:260px;height:260px}.grayscale-info-panel{box-sizing:border-box;width:100%}}.threshold-controls-wrapper{box-sizing:border-box;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:12px;width:100%;padding:14px 18px;display:flex}.threshold-label-row{justify-content:space-between;align-items:center;display:flex}.threshold-title-badge{color:#334155;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.threshold-icon{font-size:15px}.threshold-value-display{align-items:baseline;gap:4px;display:flex}.current-threshold-num{color:#0f172a;font-variant-numeric:tabular-nums;font-size:18px;font-weight:800}.threshold-range-text{color:#94a3b8;font-size:12px}.threshold-slider-row{align-items:center;gap:12px;display:flex}.slider-edge-label{color:#64748b;text-align:center;min-width:24px;font-size:12px;font-weight:500}.threshold-slider{appearance:none;cursor:pointer;background:#cbd5e1;border-radius:3px;outline:none;flex:1;height:6px;transition:background .2s}.threshold-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#0f172a;border:2px solid #fff;border-radius:50%;width:18px;height:18px;transition:transform .1s,background-color .2s;box-shadow:0 1px 3px #0000004d}.threshold-slider::-webkit-slider-thumb:hover{background:#2563eb;transform:scale(1.15)}.threshold-slider::-moz-range-thumb{cursor:pointer;background:#0f172a;border:2px solid #fff;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 3px #0000004d}.reset-threshold-btn{white-space:nowrap;color:#475569;cursor:pointer;background-color:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .15s ease-in-out}.reset-threshold-btn:hover:not(:disabled){color:#0f172a;background-color:#f1f5f9;border-color:#94a3b8}.reset-threshold-btn:disabled{opacity:.5;cursor:not-allowed}.threshold-guide-text{color:#64748b;font-size:11px;line-height:1.4}.threshold-guide-text strong{color:#334155}@media (width<=640px){.threshold-slider-row{flex-wrap:wrap}.threshold-slider{order:1;width:100%}.reset-threshold-btn{margin-left:auto}}.binary-grid-card{box-sizing:border-box;background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:16px;width:100%;padding:20px 24px;display:flex;box-shadow:0 2px 6px #0000000d}.binary-grid-header{justify-content:space-between;align-items:center;display:flex}.binary-title-group{align-items:center;gap:12px;display:flex}.binary-icon{color:#0f172a;background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-size:22px;display:flex}.binary-title{color:#1e293b;margin:0;font-size:16px;font-weight:700}.binary-desc{color:#64748b;margin:2px 0 0;font-size:13px}.binary-grid-body{align-items:center;gap:24px;display:flex}.binary-viewport-wrapper{box-sizing:border-box;background-color:#e2e8f0;border:2px solid #0f172a;border-radius:10px;justify-content:center;align-items:center;width:280px;min-width:280px;height:280px;display:flex;overflow:hidden;box-shadow:0 4px 10px #0f172a26}.binary-grid-board{background-color:#cbd5e1;gap:1px;width:100%;height:100%;display:grid}.binary-cell{box-sizing:border-box;cursor:crosshair;width:100%;height:100%;transition:background-color 80ms}.binary-cell.is-filled{background-color:#0f172a}.binary-cell.is-empty{background-color:#fff}.binary-cell:hover{z-index:2;outline:2px solid #2563eb}.binary-stats-panel{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;flex:1;gap:9px;padding:16px 18px;display:flex}.stats-row{justify-content:space-between;align-items:center;font-size:13px;display:flex}.stats-label{color:#64748b;font-weight:600}.stats-value{color:#0f172a;font-variant-numeric:tabular-nums;font-weight:700}.stats-value.highlight{background-color:#e2e8f0;border-radius:4px;padding:2px 6px}.filled-count-text{color:#0f172a}.empty-count-text{color:#64748b}.ratio-text{color:#2563eb;font-size:14px}.threshold-value-tag{color:#fff;background-color:#0f172a;border-radius:4px;padding:2px 8px;font-size:12px}.binary-notice-box{color:#475569;border-top:1px dashed #cbd5e1;align-items:flex-start;gap:8px;margin-top:4px;padding-top:8px;font-size:12px;line-height:1.5;display:flex}.binary-notice-box .notice-icon{font-size:14px}@media (width<=680px){.binary-grid-body{flex-direction:column;align-items:center}.binary-viewport-wrapper{width:260px;min-width:260px;height:260px}.binary-stats-panel{box-sizing:border-box;width:100%}}.solution-editor-card{box-sizing:border-box;box-shadow:none;background:0 0;border:none;border-radius:0;flex-direction:column;gap:12px;padding:0;display:flex}.solution-editor-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.solution-title-group{flex-direction:column;display:flex}.solution-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.solution-icon{font-size:1.1rem}.solution-title{color:#0f172a;margin:0;font-size:15px;font-weight:700}.diff-count-badge{color:#0369a1;background-color:#e0f2fe;border:1px solid #bae6fd;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700}.solution-desc{color:#64748b;margin:4px 0 0;font-size:13px;line-height:1.4}.solution-actions-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.solution-actions-group .action-btn{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.solution-actions-group .undo-btn,.solution-actions-group .redo-btn{color:#334155;background-color:#f8fafc;border-color:#cbd5e1}.solution-actions-group .undo-btn:hover:not(:disabled),.solution-actions-group .redo-btn:hover:not(:disabled){color:#0f172a;background-color:#e2e8f0}.solution-actions-group .undo-btn:disabled,.solution-actions-group .redo-btn:disabled{opacity:.45;cursor:not-allowed}.solution-actions-group .revert-btn{color:#334155;background-color:#f1f5f9;border-color:#cbd5e1}.solution-actions-group .revert-btn:hover:not(:disabled){color:#0f172a;background-color:#e2e8f0}.solution-actions-group .revert-btn:disabled{opacity:.5;cursor:not-allowed}.solution-actions-group .clear-btn{color:#991b1b;background-color:#fef2f2;border-color:#fecaca}.solution-actions-group .clear-btn:hover{color:#7f1d1d;background-color:#fee2e2}.solution-actions-group .btn-icon{width:14px;height:14px}.solution-editor-body{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.solution-viewport-wrapper{box-sizing:border-box;justify-content:center;max-width:100%;padding:4px;display:flex;overflow:auto}.solution-grid-board{box-sizing:border-box;-webkit-user-select:none;user-select:none;touch-action:none;background-color:#fff;border:2.5px solid #0f172a;display:grid;box-shadow:0 2px 6px #0000000f}.solution-cell{box-sizing:border-box;cursor:pointer;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;width:18px;min-width:12px;height:18px;min-height:12px;transition:background-color 50ms}.solution-cell.filled{background-color:#0f172a}.solution-cell.empty{background-color:#fff}.solution-cell:hover{outline-offset:-1px;z-index:2;outline:1.5px solid #3b82f6}.solution-cell:focus-visible{outline-offset:-2px;z-index:3;outline:2px solid #2563eb}.solution-cell.border-r-5{border-right:2px solid #334155}.solution-cell.border-b-5{border-bottom:2px solid #334155}.solution-status-footer{color:#64748b;box-sizing:border-box;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:12px;display:flex}.status-counts-row{align-items:center;gap:8px;display:flex}.count-item{align-items:center;gap:4px;display:inline-flex}.count-dot{border-radius:2px;width:8px;height:8px}.count-dot.filled{background-color:#0f172a}.count-dot.empty{background-color:#fff;border:1px solid #94a3b8}.count-divider{color:#cbd5e1}.guide-tip-row{color:#64748b;font-size:11px}@media (width<=640px){.solution-editor-header,.solution-status-footer{flex-direction:column;align-items:flex-start}}.puzzle-status-summary-bar{box-sizing:border-box;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;padding:8px 12px;display:flex}.summary-pill{border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:600;line-height:1.4;display:inline-flex}.pill-icon{font-size:13px;line-height:1}.summary-pill.status-success{color:#166534;background-color:#f0fdf4;border:1px solid #bbf7d0}.summary-pill.status-info{color:#1d4ed8;background-color:#eff6ff;border:1px solid #bfdbfe}.summary-pill.status-warning{color:#92400e;background-color:#fffbeb;border:1px solid #fde68a}.summary-pill.status-danger{color:#991b1b;background-color:#fef2f2;border:1px solid #fecaca}.summary-pill.status-neutral,.summary-pill.status-validating,.summary-pill.status-idle{color:#475569;background-color:#f1f5f9;border:1px solid #cbd5e1}.summary-pill.difficulty-easy{color:#065f46;background-color:#ecfdf5;border:1px solid #a7f3d0}.summary-pill.difficulty-normal{color:#1e40af;background-color:#eff6ff;border:1px solid #bfdbfe}.summary-pill.difficulty-hard{color:#9a3412;background-color:#fff7ed;border:1px solid #fed7aa}.summary-pill.difficulty-expert{color:#991b1b;background-color:#fef2f2;border:1px solid #fecaca}.summary-pill .pill-label{text-transform:uppercase;letter-spacing:.5px;opacity:.8;font-size:11px;font-weight:700}.summary-pill .pill-value{font-weight:700}.puzzle-validation-panel{background:var(--bg-surface,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:12px;margin-top:24px;padding:20px;box-shadow:0 1px 3px #0000000d}.validation-header{margin-bottom:16px}.header-title-group .title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.validation-title{color:var(--text-primary,#0f172a);margin:0;font-size:1.15rem;font-weight:700}.validating-badge{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:9999px;align-items:center;gap:6px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.validating-spinner{border:2px solid #bfdbfe;border-top-color:#2563eb;border-radius:50%;width:10px;height:10px;animation:.8s linear infinite validation-spin}@keyframes validation-spin{to{transform:rotate(360deg)}}.validation-subtitle{color:var(--text-secondary,#64748b);margin:4px 0 0;font-size:.85rem}.validation-empty-state{text-align:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;padding:24px}.empty-text{color:#64748b;margin:0;font-size:.875rem}.status-banner{border:1px solid #0000;border-radius:10px;align-items:flex-start;gap:16px;margin-bottom:16px;padding:16px 18px;display:flex}.banner-icon-box{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.25rem;font-weight:700;display:flex}.banner-text-box{flex:1;min-width:0}.banner-header-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.banner-title{font-size:1rem;font-weight:700}.status-tag{text-transform:uppercase;letter-spacing:.02em;border-radius:6px;padding:2px 8px;font-size:.72rem;font-weight:700}.banner-description{margin:6px 0 0;font-size:.875rem;line-height:1.45}.banner-success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.banner-success .banner-icon-box,.tag-success{color:#15803d;background:#dcfce7}.banner-attention{color:#854d0e;background:#fefce8;border-color:#fde047}.banner-attention .banner-icon-box,.tag-attention{color:#a16207;background:#fef08a}.banner-warning{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.banner-warning .banner-icon-box,.tag-warning{color:#c2410c;background:#ffedd5}.banner-error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.banner-error .banner-icon-box,.tag-error{color:#b91c1c;background:#fee2e2}.banner-neutral{color:#334155;background:#f8fafc;border-color:#cbd5e1}.banner-neutral .banner-icon-box,.tag-neutral{color:#475569;background:#e2e8f0}.banner-help-box{background:#ffffffbf;border:1px solid #00000014;border-radius:6px;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;font-size:.8rem;display:flex}.help-icon{font-size:.95rem}.help-text{font-weight:500}.source-match-box{border-radius:6px;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;font-size:.8rem;font-weight:600;display:flex}.source-match-box.match-match{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.source-match-box.match-mismatch{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.summary-cards-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}@media (width<=768px){.summary-cards-grid{grid-template-columns:repeat(2,1fr)}}.summary-card{border:1px solid var(--border-color,#e2e8f0);background:#f8fafc;border-radius:8px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.card-label{color:#64748b;text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}.card-value{color:#0f172a;font-size:.95rem;font-weight:700}.text-success{color:#16a34a!important}.text-attention{color:#ca8a04!important}.text-warning{color:#ea580c!important}.text-error{color:#dc2626!important}.text-neutral{color:#475569!important}.details-accordion{border-top:1px solid #e2e8f0;padding-top:12px}.details-toggle-btn{cursor:pointer;color:#475569;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:8px 0;font-size:.85rem;font-weight:600;transition:color .15s;display:flex}.details-toggle-btn:hover{color:#0f172a}.toggle-title{align-items:center;gap:6px;display:flex}.toggle-caret{transition:transform .2s}.toggle-caret.open{transform:rotate(90deg)}.toggle-hint{color:#94a3b8;font-size:.78rem}.details-content{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:12px;padding:14px}.metrics-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (width<=900px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}.metric-item{flex-direction:column;gap:2px;display:flex}.metric-label{color:#64748b;font-size:.72rem;font-weight:500}.metric-value{color:#1e293b;font-size:.9rem;font-weight:700}.difficulty-section{margin-bottom:16px}.difficulty-banner{border:1px solid #0000;border-radius:10px;flex-direction:column;gap:8px;padding:14px 18px;display:flex}.difficulty-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.difficulty-level-group{align-items:center;gap:8px;display:flex}.difficulty-level-label{color:#475569;font-size:.8rem;font-weight:600}.difficulty-tag{letter-spacing:.02em;border-radius:6px;padding:3px 10px;font-size:.75rem;font-weight:800}.tag-easy{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0}.tag-normal{color:#1d4ed8;background:#dbeafe;border:1px solid #bfdbfe}.tag-hard{color:#c2410c;background:#ffedd5;border:1px solid #fed7aa}.tag-expert{color:#7e22ce;background:#f3e8ff;border:1px solid #e9d5ff}.tag-unavailable{color:#64748b;background:#f1f5f9;border:1px solid #cbd5e1}.difficulty-score-group{align-items:baseline;gap:8px;display:flex}.difficulty-score-label{color:#64748b;font-size:.78rem;font-weight:600}.difficulty-score-value{color:#0f172a;font-size:1.15rem;font-weight:800}.difficulty-score-value strong{font-size:1.35rem}.score-max{color:#94a3b8;font-size:.85rem;font-weight:500}.difficulty-meter-track{background:#0000000f;border-radius:4px;width:100%;height:8px;overflow:hidden}.difficulty-meter-fill{border-radius:4px;height:100%;transition:width .4s ease-in-out}.fill-easy{background:#22c55e}.fill-normal{background:#3b82f6}.fill-hard{background:#f97316}.fill-expert{background:#a855f7}.difficulty-explanation{color:#334155;margin:2px 0 0;font-size:.85rem;line-height:1.45}.difficulty-easy{background:#f0fdf4;border-color:#bbf7d0}.difficulty-normal{background:#f0f9ff;border-color:#bae6fd}.difficulty-hard{background:#fff7ed;border-color:#fed7aa}.difficulty-expert{background:#faf5ff;border-color:#e9d5ff}.difficulty-unavailable{background:#f8fafc;border-color:#e2e8f0}.difficulty-breakdown-section{border-bottom:1px dashed #cbd5e1;margin-bottom:20px;padding-bottom:16px}.breakdown-title-row{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.breakdown-heading{color:#1e293b;margin:0;font-size:.9rem;font-weight:700}.breakdown-total-badge{color:#334155;background:#e2e8f0;border-radius:6px;padding:3px 8px;font-size:.78rem;font-weight:700}.breakdown-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (width<=900px){.breakdown-grid{grid-template-columns:repeat(2,1fr)}}.breakdown-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.breakdown-card-top{justify-content:space-between;align-items:center;display:flex}.breakdown-card-title{color:#475569;font-size:.75rem;font-weight:600}.breakdown-card-score{color:#64748b;font-size:.82rem}.breakdown-card-score strong{color:#0f172a;font-size:.95rem}.breakdown-progress-track{background:#f1f5f9;border-radius:3px;width:100%;height:6px;overflow:hidden}.breakdown-progress-fill{border-radius:3px;height:100%;transition:width .3s}.fill-logic{background:#3b82f6}.fill-progression{background:#06b6d4}.fill-search{background:#ec4899}.fill-size{background:#8b5cf6}.breakdown-card-desc{color:#64748b;font-size:.7rem;line-height:1.35}.clues-preview-card{box-sizing:border-box;background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:16px;width:100%;padding:20px 24px;display:flex;box-shadow:0 2px 6px #0000000d}.clues-card-header{justify-content:space-between;align-items:center;display:flex}.clues-title-group{align-items:center;gap:12px;display:flex}.clues-icon{color:#0f172a;background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-size:22px;display:flex}.clues-title{color:#1e293b;margin:0;font-size:16px;font-weight:700}.clues-desc{color:#64748b;margin:2px 0 0;font-size:13px}.clues-stats-card{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.clues-stat-item{flex-direction:column;gap:3px;display:flex}.clues-stat-label{color:#64748b;font-size:12px;font-weight:600}.clues-stat-val{color:#0f172a;font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.clues-stat-val.highlight{color:#2563eb}.clues-stat-val.accent{color:#4f46e5}.clues-stat-divider{background-color:#cbd5e1;width:1px;height:28px}.clues-columns-wrapper{grid-template-columns:1fr 1fr;gap:20px;display:grid}.clues-section{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.clues-section-header{border-bottom:1px solid #e2e8f0;align-items:center;gap:8px;padding-bottom:8px;display:flex}.clues-section-badge{border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700}.clues-section-badge.row-badge{color:#2563eb;background-color:#eff6ff;border:1px solid #bfdbfe}.clues-section-badge.col-badge{color:#16a34a;background-color:#f0fdf4;border:1px solid #bbf7d0}.clues-section-title{color:#475569;flex:1;font-size:13px;font-weight:600}.clues-section-count{color:#64748b;font-size:12px;font-weight:600}.clues-list-container{flex-direction:column;gap:6px;max-height:380px;padding-right:4px;display:flex;overflow-y:auto}.clues-list-container::-webkit-scrollbar{width:6px}.clues-list-container::-webkit-scrollbar-thumb{background-color:#cbd5e1;border-radius:3px}.clues-list-container::-webkit-scrollbar-thumb:hover{background-color:#94a3b8}.clue-line-item{background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:12px;padding:6px 12px;transition:background-color .1s,border-color .1s;display:flex}.clue-line-item:hover{background-color:#f1f5f9;border-color:#cbd5e1}.clue-line-item.is-empty-line{opacity:.75}.line-label{color:#475569;font-variant-numeric:tabular-nums;min-width:36px;font-size:12px;font-weight:700}.line-numbers{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.clue-number-tag{font-variant-numeric:tabular-nums;border-radius:4px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 5px;font-size:12px;font-weight:700;display:inline-flex}.clue-number-tag.filled-tag{color:#fff;background-color:#0f172a;box-shadow:0 1px 2px #0f172a1a}.clue-number-tag.zero-tag{color:#94a3b8;background-color:#f1f5f9;border:1px dashed #cbd5e1}.clues-notice-box{color:#475569;border-top:1px dashed #cbd5e1;align-items:flex-start;gap:8px;margin-top:4px;padding-top:10px;font-size:12px;line-height:1.5;display:flex}.clues-notice-box .notice-icon{font-size:14px}@media (width<=768px){.clues-columns-wrapper{grid-template-columns:1fr}.clues-stat-divider{display:none}.clues-stats-card{gap:16px}}.puzzle-board-card{box-sizing:border-box;width:100%;box-shadow:none;background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:16px;padding:20px 24px;display:flex}.puzzle-board-card.embedded-board{box-shadow:none;background-color:#0000;border:none;border-radius:0;padding:0}.puzzle-board-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.puzzle-title-group{align-items:center;gap:12px;display:flex}.puzzle-icon{color:#0f172a;background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-size:22px;display:flex}.puzzle-title-row{align-items:center;gap:10px;display:flex}.puzzle-title{color:#1e293b;margin:0;font-size:16px;font-weight:700}.puzzle-mode-badge{border-radius:9999px;padding:2px 8px;font-size:11px;font-weight:700;line-height:1.4}.puzzle-mode-badge.puzzle{color:#2563eb;background-color:#eff6ff;border:1px solid #bfdbfe}.puzzle-mode-badge.solution{color:#16a34a;background-color:#f0fdf4;border:1px solid #bbf7d0}.puzzle-desc{color:#64748b;margin:2px 0 0;font-size:13px}.puzzle-view-toggle{background-color:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;align-items:center;gap:3px;padding:3px;display:inline-flex}.toggle-mode-btn{color:#64748b;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.toggle-mode-btn:hover{color:#0f172a}.toggle-mode-btn.active{color:#0f172a;background-color:#fff;font-weight:700;box-shadow:0 1px 3px #0000001a}.toggle-btn-icon{width:15px;height:15px}.puzzle-info-bar{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;display:flex}.puzzle-info-badge{background-color:#fff;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.puzzle-info-badge.highlight{background-color:#eff6ff;border-color:#bfdbfe}.puzzle-info-badge.highlight .info-badge-value{color:#1d4ed8}.info-badge-label{color:#64748b;font-weight:600}.info-badge-value{color:#0f172a;font-variant-numeric:tabular-nums;font-weight:700}.info-badge-value.accent{color:#2563eb}.puzzle-scroll-wrapper{box-sizing:border-box;justify-content:center;width:100%;padding:12px 0 16px;display:flex;overflow:auto hidden}.puzzle-scroll-wrapper::-webkit-scrollbar{height:8px}.puzzle-scroll-wrapper::-webkit-scrollbar-thumb{background-color:#cbd5e1;border-radius:4px}.puzzle-scroll-wrapper::-webkit-scrollbar-thumb:hover{background-color:#94a3b8}.puzzle-board-table{grid-template-columns:minmax(var(--min-row-clues-width,44px), auto) repeat(var(--grid-size), var(--cell-size,26px));grid-template-rows:minmax(var(--min-col-clues-height,44px), auto) repeat(var(--grid-size), var(--cell-size,26px));-webkit-user-select:none;user-select:none;background-color:#fff;display:grid;box-shadow:0 4px 12px #0f172a14}.corner-cell{box-sizing:border-box;background-color:#f1f5f9;border:2px solid #0f172a;justify-content:center;align-items:center;padding:4px;display:flex}.corner-label{color:#94a3b8;font-variant-numeric:tabular-nums;letter-spacing:-.5px;font-size:11px;font-weight:700}.column-clue-cell{box-sizing:border-box;background-color:#f8fafc;border-top:2px solid #0f172a;border-bottom:2px solid #0f172a;border-right:1px solid #e2e8f0;justify-content:center;align-items:flex-end;display:flex}.column-clue-cell.thick-right{border-right:2px solid #334155}.column-clue-cell.last-col{border-right:2px solid #0f172a}.column-clue-inner{box-sizing:border-box;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;width:100%;height:100%;padding-top:2px;padding-bottom:2px;display:flex}.row-clue-cell{box-sizing:border-box;background-color:#f8fafc;border-bottom:1px solid #e2e8f0;border-left:2px solid #0f172a;border-right:2px solid #0f172a;justify-content:flex-end;align-items:center;display:flex}.row-clue-cell.thick-bottom{border-bottom:2px solid #334155}.row-clue-cell.last-row{border-bottom:2px solid #0f172a}.row-clue-inner{box-sizing:border-box;flex-direction:row;justify-content:flex-end;align-items:center;gap:3px;width:100%;height:100%;padding-left:4px;padding-right:4px;display:flex}.clue-number{font-size:var(--clue-font-size,12px);color:#0f172a;font-variant-numeric:tabular-nums;letter-spacing:-.5px;font-weight:700;line-height:1}.clue-number.is-zero{color:#94a3b8;font-weight:600}.puzzle-cell{width:var(--cell-size,26px);height:var(--cell-size,26px);box-sizing:border-box;cursor:default;background-color:#fff;border-bottom:1px solid #cbd5e1;border-right:1px solid #cbd5e1;transition:background-color 80ms}.puzzle-cell.is-filled{background-color:#0f172a;border-bottom-color:#334155;border-right-color:#334155}.puzzle-cell.thick-right{border-right:2px solid #334155}.puzzle-cell.thick-bottom{border-bottom:2px solid #334155}.puzzle-cell.thick-right.is-filled{border-right:2px solid #94a3b8}.puzzle-cell.thick-bottom.is-filled{border-bottom:2px solid #94a3b8}.puzzle-cell.last-col{border-right:2px solid #0f172a}.puzzle-cell.last-row{border-bottom:2px solid #0f172a}.puzzle-cell.is-empty:hover{background-color:#f8fafc}.puzzle-board-footer{border-top:1px dashed #cbd5e1;flex-direction:column;gap:6px;padding-top:10px;display:flex}.footer-notice{color:#475569;align-items:center;gap:8px;font-size:12px;line-height:1.5;display:flex}.notice-dot{background-color:#2563eb;border-radius:50%;flex-shrink:0;width:5px;height:5px}@media (width<=768px){.puzzle-scroll-wrapper{justify-content:flex-start}.puzzle-board-header{flex-direction:column;align-items:flex-start}.puzzle-view-toggle{justify-content:stretch;width:100%}.toggle-mode-btn{flex:1;justify-content:center}}.export-panel-card{box-sizing:border-box;box-shadow:none;background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:14px;width:100%;padding:16px 20px;display:flex}.export-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.export-title{color:#0f172a;margin:0;font-size:15px;font-weight:700}.export-desc{color:#64748b;font-size:12px}.export-alert-box{border-radius:6px;padding:8px 12px;font-size:12px;font-weight:600}.export-alert-box.error{color:#b91c1c;background-color:#fef2f2;border:1px solid #fecaca}.export-alert-box.success{color:#15803d;background-color:#f0fdf4;border:1px solid #bbf7d0}.export-actions-layout{flex-direction:column;gap:8px;display:flex}.export-primary-row{width:100%}.export-two-col-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.export-btn{cursor:pointer;-webkit-user-select:none;user-select:none;box-sizing:border-box;border-radius:6px;justify-content:center;align-items:center;gap:8px;width:100%;padding:9px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.export-btn:disabled{opacity:.45;cursor:not-allowed}.export-btn .btn-icon{flex-shrink:0;width:16px;height:16px}.primary-pdf-btn{color:#fff;background-color:#2563eb;border:1px solid #1d4ed8;font-weight:700}.primary-pdf-btn:hover:not(:disabled){background-color:#1d4ed8}.primary-pdf-btn:active:not(:disabled){background-color:#1e40af}.secondary-btn{color:#1e293b;background-color:#f8fafc;border:1px solid #cbd5e1}.secondary-btn:hover:not(:disabled){color:#0f172a;background-color:#f1f5f9;border-color:#94a3b8}.secondary-btn:active:not(:disabled){background-color:#e2e8f0}.btn-spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite export-spin}@keyframes export-spin{to{transform:rotate(360deg)}}@media (width<=640px){.export-two-col-row{grid-template-columns:1fr}}.export-player-divider{background-color:#e2e8f0;height:1px;margin:6px 0 2px}.export-player-section{flex-direction:column;gap:10px;display:flex}.export-player-header{flex-direction:column;gap:2px;display:flex}.export-player-title{color:#0f172a;margin:0;font-size:14px;font-weight:700}.export-player-desc{color:#64748b;font-size:12px}.export-player-form{flex-direction:column;gap:10px;display:flex}.export-player-inputs-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=640px){.export-player-inputs-row{grid-template-columns:1fr}}.export-player-field{flex-direction:column;gap:4px;display:flex}.export-player-label{color:#334155;font-size:12px;font-weight:600}.required-marker{color:#ef4444}.optional-marker{color:#94a3b8;font-weight:400}.export-player-input{color:#0f172a;box-sizing:border-box;background-color:#fff;border:1px solid #cbd5e1;border-radius:6px;outline:none;width:100%;padding:8px 10px;font-size:13px;transition:border-color .15s,box-shadow .15s}.export-player-input:focus{border-color:#059669;box-shadow:0 0 0 2px #05966926}.export-player-status-notice{color:#475569;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;display:flex}.status-notice-icon{flex-shrink:0;font-size:13px}.status-notice-text{font-weight:500;line-height:1.4}.player-export-btn{color:#fff;background-color:#059669;border:1px solid #047857;font-weight:700}.player-export-btn:hover:not(:disabled){background-color:#047857}.player-export-btn:active:not(:disabled){background-color:#065f46}.image-preview-container{flex-direction:column;gap:16px;width:100%;max-width:1160px;margin:0 auto;display:flex}.unified-section-card{box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:14px;padding:16px 20px;display:flex}.section-header-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.section-title-wrap{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.section-title{color:#0f172a;margin:0;font-size:15px;font-weight:700}.section-meta-sub{color:#64748b;font-size:12px;font-weight:500}.section-actions-wrap{align-items:center;gap:6px;display:flex}.action-btn{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;padding:5px 10px;font-size:12px;font-weight:500;transition:all .15s ease-in-out;display:inline-flex}.replace-btn{color:#334155;background-color:#f8fafc;border-color:#cbd5e1}.replace-btn:hover{background-color:#f1f5f9;border-color:#94a3b8}.remove-btn{color:#e11d48;background-color:#fff1f2;border-color:#ffe4e6}.remove-btn:hover{background-color:#ffe4e6;border-color:#fecdd3}.file-input-hidden{display:none}.settings-divider{background-color:#f1f5f9;height:1px;margin:2px 0}.workspace-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.workspace-tabs-bar{border-bottom:1px solid #e2e8f0;gap:6px;padding-bottom:8px;display:flex}.workspace-tab-btn{cursor:pointer;color:#64748b;background:0 0;border:1px solid #0000;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:600;transition:all .15s}.workspace-tab-btn:hover{color:#0f172a;background-color:#f1f5f9}.workspace-tab-btn.is-active{color:#2563eb;background-color:#eff6ff;border-color:#bfdbfe}.workspace-tab-content{width:100%}.advanced-accordion-section{border-top:1px dashed #cbd5e1;flex-direction:column;margin-top:4px;padding-top:14px;display:flex}.advanced-accordion-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;text-align:left;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;width:100%;padding:10px 16px;transition:all .15s;display:flex}.advanced-accordion-toggle:hover{background-color:#f1f5f9;border-color:#cbd5e1}.advanced-accordion-toggle.open{background-color:#f1f5f9;border-bottom-color:#e2e8f0;border-bottom-right-radius:0;border-bottom-left-radius:0}.toggle-title{color:#334155;font-size:13px;font-weight:600}.toggle-badge{color:#64748b;background-color:#fff;border:1px solid #cbd5e1;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.advanced-accordion-body{box-sizing:border-box;background-color:#fbfcfe;border:1px solid #e2e8f0;border-top:none;border-bottom-right-radius:8px;border-bottom-left-radius:8px;flex-direction:column;gap:14px;padding:14px 16px;display:flex}.advanced-category-tabs{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;gap:6px;padding-bottom:8px;display:flex}.category-tab-btn{cursor:pointer;color:#64748b;background:0 0;border:1px solid #0000;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;transition:all .15s}.category-tab-btn:hover{color:#0f172a;background-color:#f1f5f9}.category-tab-btn.is-active{color:#0f172a;background-color:#fff;border-color:#cbd5e1}.transform-category-stack{flex-direction:column;gap:14px;display:flex}.comparison-grids-row{flex-direction:column;gap:16px;width:100%;display:flex}@media (width>=1024px){.comparison-grids-row{flex-direction:row;align-items:stretch}.comparison-grids-row>*{flex:1;min-width:0}}@media (width<=640px){.section-header-row{flex-direction:column;align-items:flex-start;gap:8px}.workspace-tabs-bar{width:100%;overflow-x:auto}.workspace-tab-btn{white-space:nowrap;padding:6px 10px;font-size:12px}}.recovery-prompt-banner{background:linear-gradient(135deg,#eff6ff 0%,#f0fdf4 100%);border:1px solid #bfdbfe;border-left:4px solid #3b82f6;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:14px 20px;animation:.25s ease-out fadeInRecovery;display:flex;box-shadow:0 2px 6px #0000000a}@keyframes fadeInRecovery{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.recovery-prompt-content{align-items:center;gap:14px;min-width:0;display:flex}.recovery-prompt-icon-area{background-color:#dbeafe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.recovery-icon{font-size:20px}.recovery-prompt-text-group{flex-direction:column;gap:4px;min-width:0;display:flex}.recovery-prompt-title{color:#1e3a8a;letter-spacing:-.01em;margin:0;font-size:.95rem;font-weight:700}.recovery-prompt-details{color:#475569;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;margin:0;font-size:.84rem;display:flex;overflow:hidden}.recovery-meta-grid{color:#2563eb;background-color:#dbeafe;border-radius:4px;padding:1px 6px;font-weight:600}.recovery-meta-sep{color:#94a3b8}.recovery-meta-image{color:#1e293b;text-overflow:ellipsis;max-width:180px;font-weight:500;overflow:hidden}.recovery-meta-time{color:#64748b}.recovery-prompt-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.recovery-action-btn{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:.88rem;font-weight:600;transition:all .15s ease-in-out;display:inline-flex}.recovery-resume-btn{color:#fff;background-color:#2563eb;border-color:#1d4ed8}.recovery-resume-btn:hover{background-color:#1d4ed8;box-shadow:0 2px 6px #2563eb40}.recovery-dismiss-btn{color:#64748b;background-color:#fff;border-color:#cbd5e1}.recovery-dismiss-btn:hover{color:#334155;background-color:#f1f5f9;border-color:#94a3b8}@media (width<=640px){.recovery-prompt-banner{flex-direction:column;align-items:flex-start;gap:12px;padding:12px 14px}.recovery-prompt-actions{justify-content:flex-end;width:100%}.recovery-action-btn{flex:1;justify-content:center}.recovery-prompt-details{white-space:normal;flex-wrap:wrap}}.workspace-main{flex:1;justify-content:center;padding:32px 24px;display:flex}.workspace-container{width:100%;max-width:960px}.workspace-card{box-sizing:border-box;background-color:#fff;border:1px solid #e5e7eb;border-radius:12px;justify-content:center;align-items:center;min-height:440px;padding:32px;display:flex;box-shadow:0 1px 3px #0000000d}.workspace-loading-state{flex-direction:column;align-items:center;gap:16px;display:flex}.loading-spinner{border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}.loading-text{color:#64748b;margin:0;font-size:14px;font-weight:500}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=640px){.workspace-main{padding:16px 12px}.workspace-card{padding:20px 16px}}.app-layout{flex-direction:column;min-height:100vh;display:flex}.app-footer{text-align:center;background-color:#fff;border-top:1px solid #eaeaea;padding:16px 24px}.app-footer p{color:#9ca3af;margin:0;font-size:12px}
