body{overflow:hidden;height:100vh}.app-container{display:flex;width:100vw;height:100vh}.sidebar{width:var(--sidebar-width);display:flex;background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;height:100%}:root[dir=rtl] .sidebar{border-right:none;border-left:1px solid var(--border-color)}.brand{display:flex;border-bottom:1px solid var(--border-color);flex-direction:column;gap:4px;padding:10px 24px 12px}.control-sections{overflow-y:auto;display:flex;flex-direction:column;flex:1;gap:16px;padding:20px}.control-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);padding:18px}.control-card h2{margin-bottom:14px;font-size:16px}.control-group+.control-group{margin-top:14px}.control-group label{display:block;margin-bottom:6px;font-size:13px;font-weight:700}.control-label{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.control-label label{margin-bottom:0}.val-display{font-family:var(--font-heading);color:var(--accent);font-weight:800}.input-desc{display:block;color:var(--text-secondary);margin-top:6px;font-size:12px}input[type=range]{accent-color:var(--accent);width:100%}.dual-range{position:relative;height:18px;margin-top:10px}.dual-range-track,.dual-range-fill{position:absolute;pointer-events:none;border-radius:6px;height:8px;top:5px}.dual-range-track{background:#7a5e3e24;left:0;right:0}.dual-range-fill{background:var(--accent);box-shadow:0 2px 6px rgb(var(--accent-rgb)/.35)}.dual-range input[type=range]{-webkit-appearance:none;appearance:none;position:absolute;pointer-events:none;background:0 0;width:100%;height:18px;margin:0;top:0;left:0}.dual-range input[type=range]::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;appearance:none;background:var(--accent);cursor:pointer;box-shadow:0 2px 6px rgb(var(--accent-rgb)/.5);border:2px solid #fffdf9;border-radius:50%;width:18px;height:18px}.dual-range input[type=range]::-moz-range-thumb{pointer-events:auto;background:var(--accent);cursor:pointer;box-shadow:0 2px 6px rgb(var(--accent-rgb)/.5);border:2px solid #fffdf9;border-radius:50%;width:18px;height:18px}input[type=number]{border:1px solid var(--border-color-field);border-radius:var(--border-radius-sm);background:var(--bg-card);color:var(--text-primary);font-family:var(--font-body);width:100%;margin-top:6px;padding:8px 10px;font-size:13px}select{border:1px solid var(--border-color-field);border-radius:var(--border-radius-sm);background:var(--bg-card);color:var(--text-primary);font-family:var(--font-body);width:100%;padding:8px 10px;font-size:13px}label.checkbox-row{display:flex;cursor:pointer;align-items: center;gap:8px;margin-bottom:4px;font-size:13px;font-weight:400}label.checkbox-row input[type=checkbox]{accent-color:var(--accent);flex:none;width:16px;height:16px}.ops-fieldset{display:flex;border:none;flex-direction:column;gap:8px;margin:0;padding:0}.ops-fieldset:focus-within{outline:3px solid var(--accent);outline-offset:2px}.check-group{border:0;min-width:0;margin:0;padding:0}.check-group legend{display:block;margin-bottom:6px;padding:0;font-size:13px;font-weight:700}.tables-fieldset{border:none;margin:0;padding:0}.tables-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.table-checkbox{display:flex;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);cursor:pointer;justify-content:center;align-items: center;gap:4px;padding:8px 0;font-size:14px;font-weight:700;margin-bottom:0!important}.table-checkbox:has(input:checked){background:var(--accent-gradient);color:#fff;border-color:#0000}.table-checkbox input{accent-color:var(--accent)}.table-checkbox:focus-within{outline:3px solid var(--accent);outline-offset:2px}.export-actions{display:flex;flex-direction:column;gap:10px}.btn{display:flex;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--bg-card);color:var(--text-primary);font-family:var(--font-heading);cursor:pointer;justify-content:center;align-items: center;gap:8px;padding:11px 16px;font-size:14px;font-weight:800}.btn-primary{background:var(--accent-gradient);color:#fff;border-color:#0000}.btn:hover:not(:disabled){filter:brightness(.96)}.btn:active:not(:disabled){filter:brightness(.92);transform:translateY(1px)}.btn{transition:filter .15s,transform 80ms}.btn:disabled{opacity:.45;cursor:not-allowed}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}.btn:active:not(:disabled){transform:none}}.btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.tab-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}input[type=number]:focus-visible{outline:3px solid var(--accent);outline-offset:2px}select:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.workspace{display:flex;flex-direction:column;flex:1;min-width:0;height:100%}.workspace-header{display:flex;border-bottom:1px solid var(--border-color);align-items: center;gap:8px;padding:12px 24px}.tabs{display:flex;gap:6px}.tab-btn{border-radius:var(--border-radius-sm);color:var(--text-secondary);font-family:var(--font-heading);cursor:pointer;background:0 0;border:1px solid #0000;padding:8px 14px;font-size:13px;font-weight:700}.tab-btn.active{background:var(--bg-card);border-color:var(--border-color);color:var(--text-primary)}.workspace-body{overflow:auto;flex:1;padding:24px}.tab-content{display:none}.tab-content.active{display:block}.upload-zone{border-radius:var(--border-radius-sm);text-align:center;cursor:pointer;position:relative;background:rgb(var(--accent-rgb)/.03);border:2px dashed #7a5e3e47;margin-top:12px;padding:22px 10px}.upload-zone:hover,.upload-zone.drag-over{border-color:var(--accent);background:rgb(var(--accent-rgb)/.07)}.file-input{position:absolute;opacity:0;cursor:pointer;width:100%;height:100%;top:0;left:0}.upload-icon{font-size:28px}.upload-prompt{display:flex;pointer-events:none;flex-direction:column;gap:4px}.source-preview{border-radius:var(--border-radius-sm);border:1px solid var(--border-color);max-width:100%;margin-top:12px}.upload-subtext{color:var(--text-secondary);font-size:12px}.saved-worksheets{margin-top:16px}.saved-worksheets>label{display:block;color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:600}.worksheet-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}.worksheet-card{position:relative;aspect-ratio:1;border:2px solid var(--border-color);border-radius:var(--border-radius-sm);overflow:hidden;background:var(--bg-card)}.worksheet-card.active{border-color:var(--accent)}.worksheet-open{display:block;cursor:pointer;background:0 0;border:none;width:100%;height:100%;padding:0}.worksheet-card img{object-fit:cover;width:100%;height:100%}.worksheet-delete{position:absolute;color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:50%;width:20px;height:20px;padding:0;font-size:14px;line-height:1;top:2px;right:2px}.worksheet-delete:hover{background:#000c}.worksheet-delete:focus-visible{background:#000c}.inline-warning{border-radius:var(--border-radius-sm);color:#7a4a24;background:#fdf1e0;border:1px solid #d9a15f;border-left:4px solid #c2703a;margin-top:12px;padding:10px 12px;font-size:12px;font-weight:600;line-height:1.45}.empty-state{display:flex;text-align:center;border-radius:var(--border-radius-sm);border:2px dashed #7a5e3e47;flex-direction:column;justify-content:center;align-items: center;gap:16px;max-width:440px;margin:auto;padding:32px}.empty-state-icon{font-size:64px}body.photo-app.has-image .empty-state,body.photo-app:not(.has-image) .tab-content,body.photo-app:not(.has-image) .workspace-header{display:none}body.photo-app:not(.has-image) .workspace{display:grid;grid-template-rows:minmax(100%,auto)auto;overflow:auto;place-items: center}body.photo-app:not(.has-image) .workspace-body{overflow:visible;justify-self:stretch}@media screen and (max-width:1180px){.app-container{flex-direction:column;height:auto}body{overflow:auto;height:auto}.sidebar{border-right:none;border-bottom:1px solid var(--border-color);width:100%;height:auto}:root[dir=rtl] .sidebar{border-left:none}.control-sections{overflow-y:visible}.workspace{height:auto}.workspace-body{overflow:visible}body.photo-app:not(.has-image) .workspace{display:flex;overflow:visible}}
