:root{--color-bg:#f8fafc;--color-surface:#fff;--color-surface-2:#f1f5f9;--color-border:#e2e8f0;--color-text:#0f172a;--color-text-muted:#64748b;--color-primary:#0f172a;--color-primary-contrast:#fff;--color-accent:#2563eb;--color-success:#16a34a;--color-danger:#dc2626;--color-warning:#d97706;--radius:10px;--radius-sm:6px;--shadow-sm:0 1px 2px rgba(15,23,42,.06);--shadow-md:0 4px 12px rgba(15,23,42,.1);font-family:Tajawal,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}#root,body,html{height:100%;margin:0;background:var(--color-bg)}body{overscroll-behavior:none;touch-action:manipulation}button{cursor:pointer}button,input,select,textarea{font-family:inherit;font-size:1rem}a{color:var(--color-accent);text-decoration:none}.app-shell{display:flex;flex-direction:column;height:100vh;height:100dvh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:-webkit-sticky;position:sticky;top:0;z-index:10}.app-header h1{margin:0;font-size:1.05rem;font-weight:700}.app-main{flex:1 1;overflow-y:auto;padding:16px 16px 88px}.bottom-nav{position:fixed;bottom:0;inset-inline:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--color-surface);border-top:1px solid var(--color-border);padding:6px 6px calc(6px + env(safe-area-inset-bottom));z-index:20;box-shadow:var(--shadow-md);overflow-x:auto}.bottom-nav a,.bottom-nav-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.72rem;font-weight:500;background:transparent;border:none;cursor:pointer;min-width:56px}.bottom-nav a.active{color:var(--color-primary)}.bottom-nav a.active,.bottom-nav-btn:hover,.btn{background:var(--color-surface-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:var(--radius);border:1px solid transparent;color:var(--color-text);font-weight:600;min-height:44px;transition:background .15s ease}.btn:hover{background:#e2e8f0}.btn-primary{background:var(--color-primary);color:var(--color-primary-contrast)}.btn-primary:hover{background:#1e293b}.btn-danger{background:var(--color-danger);color:#fff}.btn-ghost{background:transparent;border-color:var(--color-border)}.btn-sm{padding:6px 10px;min-height:36px;font-size:.9rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-sm)}.card-title{margin:0 0 8px;font-size:1rem;font-weight:700}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field label{font-size:.85rem;font-weight:600;color:var(--color-text-muted)}.field input,.field select,.field textarea{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);min-height:44px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-accent);outline-offset:0;border-color:var(--color-accent)}.row{align-items:center;flex-wrap:wrap}.row,.row-stretch{display:flex;gap:8px}.row-stretch>*{flex:1 1}.muted{color:var(--color-text-muted);font-size:.85rem}.toolbar{display:flex;gap:4px;overflow-x:auto;padding:8px 10px;background:var(--color-surface);border-bottom:1px solid var(--color-border);-webkit-overflow-scrolling:touch;align-items:center}.tool-btn{flex:0 0 auto;background:transparent;border:1px solid transparent;border-radius:10px;padding:6px 10px;font-size:.72rem;font-weight:600;color:var(--color-text);display:inline-flex;flex-direction:column;align-items:center;gap:2px;min-height:56px;min-width:56px;white-space:nowrap;transition:background .12s ease,color .12s ease}.tool-btn:hover{background:var(--color-surface-2)}.tool-btn:active{background:#e2e8f0}.tool-btn-accent{background:#eff6ff;color:#1e40af}.tool-btn-accent:hover{background:#dbeafe}.tool-btn-danger{color:var(--color-danger)}.tool-btn-danger:hover{background:#fee2e2}.toolbar-group{position:relative;flex:0 0 auto}.toolbar-popover{position:absolute;top:100%;inset-inline-start:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:6px;min-width:220px;z-index:50;display:flex;flex-direction:column;gap:2px;margin-top:4px}.popover-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border:none;background:transparent;text-align:start;border-radius:var(--radius-sm);font-size:.9rem;cursor:pointer;color:var(--color-text)}.popover-item:hover{background:var(--color-surface-2)}.toolbar-divider{width:1px;height:32px;background:var(--color-border);margin:0 4px;flex:0 0 auto}.canvas-host{display:flex;align-items:center;justify-content:center;padding:16px;background:var(--color-surface-2);min-height:280px}.canvas-frame{border:1px solid var(--color-border);box-shadow:var(--shadow-md)}.properties-panel{background:var(--color-surface);border-top:1px solid var(--color-border);padding:14px 16px 16px;max-height:55dvh;overflow-y:auto;box-shadow:0 -4px 12px rgba(15,23,42,.04)}.properties-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.properties-title{font-weight:700;font-size:.95rem}.advanced-toggle{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 8px;font-size:.78rem;color:var(--color-text-muted);font-weight:600}.advanced-toggle:hover{background:var(--color-surface-2)}.geometry-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;grid-gap:8px;gap:8px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--color-border)}@media (max-width:480px){.geometry-grid{grid-template-columns:1fr 1fr}}.list-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:8px;min-height:56px}.list-item-actions{display:flex;gap:6px}.tag{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--color-surface-2);font-size:.75rem;font-weight:500;color:var(--color-text-muted)}.tag-danger{background:#fee2e2;color:#991b1b}.fab{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom));inset-inline-end:16px;width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:var(--color-primary-contrast);border:none;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);z-index:15}.empty{text-align:center;color:var(--color-text-muted);padding:40px 20px}.ed-shell{position:fixed;inset:0;display:grid;grid-template-areas:"header" "tools" "canvas";grid-template-rows:56px 56px 1fr;background:var(--color-surface-2);overflow:hidden;z-index:5}.ed-shell.ed-shell-chef{grid-template-areas:"header" "banner" "canvas" "chef";grid-template-rows:56px 36px 1fr auto}@media (min-width:1024px){.ed-shell{grid-template-areas:"header header header" "tools  canvas props";grid-template-rows:60px 1fr}.ed-shell,.ed-shell.ed-shell-chef{grid-template-columns:72px 1fr 320px}.ed-shell.ed-shell-chef{grid-template-areas:"header header header" "banner banner banner" "tools  canvas props" "chef   chef   chef";grid-template-rows:60px 36px 1fr auto}}.ed-header{grid-area:header;display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:12}.ed-header-spacer{flex:1 1}.ed-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;border:none;background:transparent;color:var(--color-text);cursor:pointer;transition:background .12s ease,color .12s ease;flex:0 0 auto}.ed-icon-btn:hover{background:var(--color-surface-2)}.ed-icon-btn.is-danger:hover{background:#fee2e2;color:var(--color-danger)}.ed-icon-btn:disabled{opacity:.4;cursor:default}.ed-size-pill{display:inline-flex;align-items:center;gap:6px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600;color:var(--color-text);cursor:pointer;min-height:34px;transition:background .12s ease}.ed-size-pill:not(:disabled):hover{background:#e2e8f0}.ed-size-pill:disabled{cursor:default;opacity:.8}.ed-size-pill-dpi{font-size:.7rem;color:var(--color-text-muted);font-weight:500;-webkit-padding-start:6px;padding-inline-start:6px;-webkit-border-start:1px solid var(--color-border);border-inline-start:1px solid var(--color-border);-webkit-margin-start:2px;margin-inline-start:2px}.ed-print-btn{display:inline-flex;align-items:center;gap:6px;background:var(--color-accent);color:#fff;border:none;border-radius:8px;padding:8px 16px;font-weight:700;font-size:.9rem;cursor:pointer;transition:background .12s ease,transform .06s ease;min-height:38px}.ed-print-btn:hover{background:#1d4ed8}.ed-print-btn:active{transform:scale(.97)}.ed-readonly-banner{grid-area:banner;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 14px;background:#eff6ff;color:#1e40af;font-size:.85rem;font-weight:600;border-bottom:1px solid #bfdbfe}.ed-preview-banner{background:#fef3c7;color:#92400e;border-bottom-color:#fde68a;grid-area:tools}.ed-icon-btn.is-active{background:#eff6ff;color:#1d4ed8}.ed-toolbar{grid-area:tools;display:flex;gap:2px;padding:6px 8px;background:var(--color-surface);border-bottom:1px solid var(--color-border);overflow-x:auto;overflow-y:hidden;align-items:center;z-index:11}@media (min-width:1024px){.ed-toolbar{flex-direction:column;overflow-x:hidden;overflow-y:auto;padding:10px 6px;border-bottom:none;-webkit-border-end:1px solid var(--color-border);border-inline-end:1px solid var(--color-border);align-items:stretch;gap:4px}}.ed-toolbar-group{position:relative;display:flex;flex-direction:inherit}.ed-divider{flex:0 0 auto;background:var(--color-border);width:1px;height:28px;margin:0 6px;align-self:center}@media (min-width:1024px){.ed-divider{width:auto;height:1px;margin:6px 8px}}.ed-tool-btn{position:relative;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:56px;min-width:56px;height:52px;padding:4px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--color-text);cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease;flex-direction:column;gap:2px;font-size:.65rem;font-weight:600}.ed-tool-btn .ed-tool-label{font-size:.62rem;color:var(--color-text-muted);font-weight:500;white-space:nowrap}.ed-tool-btn:hover{background:var(--color-surface-2)}.ed-tool-btn.is-active{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.ed-tool-btn.is-active .ed-tool-label{color:#1d4ed8}.ed-tool-btn.is-danger:hover{background:#fee2e2;color:var(--color-danger)}.ed-tool-btn.is-danger:hover .ed-tool-label{color:var(--color-danger)}.ed-tool-badge{position:absolute;top:4px;inset-inline-end:4px;background:var(--color-accent);color:#fff;border-radius:999px;width:14px;height:14px;display:flex;align-items:center;justify-content:center}.ed-popover-fixed{position:fixed;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 8px 24px rgba(15,23,42,.18);padding:6px;width:240px;z-index:100;display:flex;flex-direction:column;gap:2px;animation:ed-pop-in .12s ease-out}@keyframes ed-pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ed-popover{position:absolute;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:6px;min-width:220px;z-index:60;display:flex;flex-direction:column;gap:2px;top:calc(100% + 6px);inset-inline-start:0}@media (min-width:1024px){.ed-popover{top:0;inset-inline-start:calc(100% + 6px)}}.ed-popover-header{padding:6px 10px;font-size:.75rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.ed-popover-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:transparent;text-align:start;border-radius:var(--radius-sm);font-size:.9rem;cursor:pointer;color:var(--color-text);width:100%}.ed-popover-item:hover{background:var(--color-surface-2)}.ed-canvas-area{grid-area:canvas;overflow:auto;background-color:#e2e8f0;background-image:linear-gradient(45deg,#cbd5e1 25%,transparent 0,transparent 75%,#cbd5e1 0),linear-gradient(45deg,#cbd5e1 25%,transparent 0,transparent 75%,#cbd5e1 0);background-size:18px 18px;background-position:0 0,9px 9px;display:flex;align-items:center;justify-content:center;padding:24px;min-width:0;min-height:0}.ed-canvas-stage{display:inline-block;box-shadow:0 8px 24px rgba(15,23,42,.15);background:#fff}.canvas-frame{background:#fff;overflow:hidden}.ed-properties{grid-area:props;background:var(--color-surface);border-top:1px solid var(--color-border);padding:14px 16px 16px;overflow-y:auto;z-index:12}@media (max-width:1023.98px){.ed-properties{position:fixed;inset-inline:0;bottom:0;max-height:55dvh;border-top:1px solid var(--color-border);border-radius:12px 12px 0 0;box-shadow:0 -8px 24px rgba(15,23,42,.12)}.ed-properties.ed-properties-empty{display:none}}@media (min-width:1024px){.ed-properties{border-top:none;-webkit-border-start:1px solid var(--color-border);border-inline-start:1px solid var(--color-border)}.ed-properties-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:40px 24px}}.ed-properties-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--color-border)}.ed-properties-title{font-weight:700;font-size:.95rem}.ed-size-block{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:8px;padding:10px;margin-bottom:12px}.ed-size-block-header{display:flex;align-items:center;gap:4px;font-size:.72rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.ed-size-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.ed-num-field{display:flex;align-items:center;gap:4px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:4px 8px;font-size:.82rem;transition:border-color .12s ease}.ed-num-field:focus-within{border-color:var(--color-accent)}.ed-num-label{font-weight:700;color:var(--color-text-muted);min-width:28px}.ed-num-field input{flex:1 1;width:100%;border:none;background:transparent;font-size:.85rem;color:var(--color-text);outline:none;padding:0;text-align:end;-moz-appearance:textfield}.ed-num-field input::-webkit-inner-spin-button,.ed-num-field input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ed-num-suffix{font-size:.7rem;color:var(--color-text-muted);font-weight:500}.ed-toggle-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;margin-bottom:10px;cursor:pointer;font-size:.85rem;font-weight:600;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .12s ease}.ed-toggle-row:hover{background:#e2e8f0}.ed-toggle-row input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-accent);margin:0}.ed-dim-badge{position:absolute;display:inline-flex;align-items:center;justify-content:center;background:#2563eb;color:#fff;padding:0 10px;border-radius:6px;font-size:.78rem;font-weight:700;white-space:nowrap;box-shadow:0 2px 6px rgba(15,23,42,.25);pointer-events:none;z-index:8;-webkit-user-select:none;-moz-user-select:none;user-select:none;letter-spacing:.01em}.editor-layout{display:flex;flex-direction:column;height:100%}.editor-header{gap:8px}.editor-canvas-wrap{flex:1 1;display:flex;overflow:auto;padding:20px;background:linear-gradient(45deg,#e2e8f0 25%,transparent 0,transparent 75%,#e2e8f0 0),linear-gradient(45deg,#e2e8f0 25%,#f8fafc 0,#f8fafc 75%,#e2e8f0 0);background-size:16px 16px;background-position:0 0,8px 8px;min-height:320px}.editor-canvas-wrap,.icon-btn{align-items:center;justify-content:center}.icon-btn{display:inline-flex;width:40px;height:40px;border-radius:50%;border:none;background:var(--color-surface-2);color:var(--color-text);transition:background .12s ease;flex:0 0 auto}.icon-btn:hover{background:#e2e8f0}.icon-btn-danger{background:#fee2e2;color:var(--color-danger)}.icon-btn-danger:hover{background:#fecaca}.header-actions{display:flex;gap:6px;align-items:center}.size-pill{display:inline-flex;align-items:center;gap:6px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:999px;padding:6px 14px;font-size:.82rem;font-weight:600;color:var(--color-text);cursor:pointer;min-height:36px;transition:background .12s ease}.size-pill:hover{background:#e2e8f0}.size-pill-dpi{font-size:.7rem;color:var(--color-text-muted);font-weight:500;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-border-start:1px solid var(--color-border);border-inline-start:1px solid var(--color-border);-webkit-margin-start:2px;margin-inline-start:2px}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.dialog-header h3{margin:0;font-size:1.05rem;font-weight:700}.preset-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px;margin-bottom:4px}.preset-btn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 6px;font-size:.85rem;font-weight:600;color:var(--color-text);display:flex;flex-direction:column;align-items:center;gap:2px;min-height:52px;transition:all .12s ease}.preset-btn:hover{background:var(--color-surface-2);border-color:var(--color-text-muted)}.preset-btn.preset-active{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary)}.preset-btn.preset-active .muted{color:hsla(0,0%,100%,.8)}.fab{width:60px;height:60px}.dialog-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);display:flex;align-items:flex-end;justify-content:center;z-index:30}.dialog{background:var(--color-surface);width:100%;max-width:520px;border-radius:var(--radius) var(--radius) 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom))}@media (min-width:640px){.dialog-backdrop{align-items:center}.dialog{border-radius:var(--radius)}}.centered-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:16px}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:24px;width:100%;max-width:380px}.auth-title{margin:0 0 4px;font-size:1.3rem;font-weight:700}.tag-warning{background:#fef3c7;color:#92400e}.tag-success{background:#dcfce7;color:#166534}.kind-card{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:10px;text-decoration:none;color:inherit;transition:background .15s ease,border-color .15s ease}.kind-card:hover{background:var(--color-surface-2);border-color:var(--color-accent)}.lang-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 18px;border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;flex:1 1;text-align:start;transition:border-color .12s ease,background .12s ease}.lang-btn-active,.lang-btn:hover{border-color:var(--color-accent)}.lang-btn-active{background:#eff6ff}.lang-btn-main{font-weight:700;font-size:1rem;color:var(--color-text)}.lang-btn-sub{font-size:.78rem;color:var(--color-text-muted)}.bilingual-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;min-height:24px}.bilingual-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:8px}.bilingual-row-text{display:flex;flex-direction:column;gap:2px}.bilingual-ar{font-weight:700;font-size:.92rem;color:var(--color-text)}.bilingual-en{font-size:.78rem;color:var(--color-text-muted)}.bilingual-x{border:none;background:transparent;cursor:pointer;color:var(--color-danger);padding:4px;border-radius:4px}.bilingual-x:hover{background:#fee2e2}.bilingual-add{display:grid;grid-template-columns:1fr 1fr auto;grid-gap:6px;gap:6px;align-items:stretch}.chip-row{display:flex;flex-wrap:wrap;gap:6px;min-height:32px;align-items:center}.chip{gap:4px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:999px;padding:4px 10px;font-size:.85rem;font-weight:500}.chip,.chip-x{display:inline-flex;align-items:center}.chip-x{justify-content:center;border:none;background:transparent;cursor:pointer;color:var(--color-danger);padding:0;-webkit-margin-start:2px;margin-inline-start:2px}.chef-form{grid-area:chef;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -4px 12px rgba(15,23,42,.06);z-index:15}.chef-form-row{display:flex;gap:8px;margin-bottom:10px}.chef-compute-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px 18px;background:var(--color-accent);color:#fff;border:none;border-radius:10px;font-family:inherit;font-size:1.02rem;font-weight:700;cursor:pointer;margin-bottom:12px;transition:background .12s ease,transform .06s ease;box-shadow:0 2px 6px rgba(37,99,235,.25)}.chef-compute-btn:hover:not(:disabled){background:#1d4ed8}.chef-compute-btn:active:not(:disabled){transform:scale(.98)}.chef-compute-btn:disabled{background:#94a3b8;cursor:not-allowed;box-shadow:none}.chef-form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}@media (min-width:640px){.chef-form-grid{grid-template-columns:repeat(4,1fr)}}.chef-form .field{margin:0}.read-only-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;background:#eff6ff;border-bottom:1px solid #bfdbfe;color:#1e40af;font-size:.9rem;font-weight:600}.batch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:12px;gap:12px;margin-bottom:100px}.batch-card{display:flex;flex-direction:column;background:var(--color-surface);border:2px solid var(--color-border);border-radius:10px;padding:8px;transition:border-color .15s ease,background .15s ease}.batch-card.is-selected{border-color:var(--color-accent);background:#eff6ff}.batch-card-thumb{width:100%;height:90px;object-fit:contain;background:#fff;border:1px solid var(--color-border);border-radius:6px}.batch-card-body{display:flex;flex-direction:column;gap:4px;margin-top:8px}.batch-card-name{font-weight:700;font-size:.95rem}.batch-card-sub{font-size:.78rem}.batch-counter{display:flex;align-items:center;gap:4px;margin-top:8px}.batch-counter-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;cursor:pointer;transition:background .12s ease}.batch-counter-btn:hover:not(:disabled){background:var(--color-surface-2)}.batch-counter-btn:disabled{opacity:.4;cursor:default}.batch-counter-input{flex:1 1;text-align:center;border:1px solid var(--color-border);border-radius:6px;padding:4px;font-size:.95rem;font-weight:700;-moz-appearance:textfield}.batch-counter-input::-webkit-inner-spin-button,.batch-counter-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.fab-wide{width:auto;height:56px;padding:0 22px;border-radius:28px;gap:8px;font-weight:700;font-size:1rem}.fab-wide:disabled{opacity:.45;cursor:default}.ed-batch-banner{background:#f0f9ff;color:#075985;border-bottom-color:#bae6fd}