:root{--bg:#1a1b26;--surface:#1f2335;--card:#24283b;--card-high:#292e42;--border:#3b4261;--border-mid:#545c7e;--accent:#7aa2f7;--accent-hover:#89b4fa;--accent-dim:#7aa2f726;--green:#9ece6a;--orange:#e0af68;--red:#f7768e;--text:#c0caf5;--text-dim:#a9b1d6;--subtext:#565f89;--input-bg:#16161e;--shadow-sm:0 1px 2px #0003;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -1px #0003;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -2px #0003;--radius-sm:4px;--radius-md:8px;--radius-lg:12px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:13px;line-height:1.5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-mid);border-radius:var(--radius-sm);border:2px solid var(--surface)}::-webkit-scrollbar-thumb:hover{background:var(--subtext)}button{cursor:pointer;border-radius:var(--radius-md);border:1px solid var(--border);background:linear-gradient(180deg, var(--card) 0%, var(--surface) 100%);color:var(--text);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}button:hover:not(:disabled){background:var(--card-high);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim);transform:translateY(-1px)}button:active:not(:disabled){background:var(--surface);transform:translateY(0)}button:disabled{color:var(--subtext);border-color:var(--border);background:var(--surface);cursor:not-allowed;opacity:.7;box-shadow:none}button.accent{background:linear-gradient(135deg, var(--accent) 0%, #5e8cf0 100%);color:#0f111a;border:1px solid #4f72c9;font-weight:600;box-shadow:0 2px 4px #7aa2f733}button.accent:hover:not(:disabled){background:linear-gradient(135deg, var(--accent-hover) 0%, var(--accent) 100%);box-shadow:0 4px 8px #7aa2f74d}button.accent:active:not(:disabled){background:linear-gradient(135deg,#5e8cf0 0%,#4f72c9 100%)}button.danger{color:var(--red);background:0 0;border:1px solid #f7768e66}button.danger:hover:not(:disabled){border-color:var(--red);background:#f7768e1a}button.danger:active:not(:disabled){background:#f7768e33}button.small{border-radius:var(--radius-sm);padding:4px 12px;font-size:12px}input[type=text],input[type=number],input[type=password],select,textarea{background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);outline:none;width:100%;padding:8px 12px;font-family:inherit;font-size:13px;transition:all .2s;box-shadow:inset 0 1px 2px #0000001a}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim), inset 0 1px 2px #0000001a}input:hover:not(:focus),select:hover:not(:focus),textarea:hover:not(:focus){border-color:var(--border-mid)}input::placeholder,textarea::placeholder{color:var(--subtext)}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23565f89' d='M6 8L0 0h12z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.lbl-section{color:var(--accent);letter-spacing:1px;text-transform:uppercase;margin-top:8px;margin-bottom:4px;font-size:11px;font-weight:700}.lbl-field{color:var(--text-dim);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.lbl-hint{color:var(--subtext);margin-top:4px;font-size:11px}.sep-h{background:var(--border);flex-shrink:0;height:1px;margin:12px 0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow .2s}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;gap:16px;padding:24px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.image-slicer-panel{background:var(--bg);flex:1;grid-template-columns:330px minmax(0,1fr);min-width:0;display:grid;overflow:hidden}.image-slicer-controls{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;gap:18px;min-width:0;padding:22px 20px;display:flex;overflow-y:auto}button.image-drop-zone{border:1px dashed var(--border-mid);background:var(--input-bg);min-height:142px;box-shadow:none;text-align:center;flex-direction:column;gap:7px;padding:20px;display:flex}button.image-drop-zone:hover,button.image-drop-zone.dragging{border-color:var(--accent);background:var(--accent-dim);transform:none}.image-drop-icon{border:1px solid var(--accent);width:48px;height:48px;color:var(--accent-hover);background:var(--accent-dim);letter-spacing:.08em;border-radius:12px;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:inline-flex}.image-slicer-form{flex-direction:column;gap:14px;display:flex}.image-slicer-dimensions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.image-slicer-summary{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;font-size:11px;display:flex}.image-slicer-summary-arrow{color:var(--subtext)}.image-slicer-summary strong{color:var(--green)}.image-slicer-error{border-radius:var(--radius-md);color:var(--red);background:#f7768e14;border:1px solid #f7768e66;padding:9px 11px;font-size:11px}.image-slicer-status{border-top:1px solid var(--border);min-height:34px;color:var(--subtext);padding-top:12px;font-size:11px;line-height:1.5}.image-slicer-workspace{min-width:0;padding:24px;overflow:auto}.image-slicer-empty{border:1px dashed var(--border);border-radius:var(--radius-lg);background:radial-gradient(circle at center, var(--card) 0%, var(--bg) 62%);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;height:100%;min-height:380px;display:flex}.image-slicer-empty-grid{aspect-ratio:3/2;border:2px solid var(--border-mid);width:210px;box-shadow:var(--shadow-lg);border-radius:8px;grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(3,1fr);margin-bottom:12px;display:grid;overflow:hidden;transform:perspective(600px)rotateX(7deg)}.image-slicer-empty-grid span{border:1px solid var(--border-mid);color:var(--subtext);background:var(--surface);justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.image-slicer-content{flex-direction:column;gap:18px;width:min(1200px,100%);margin:0 auto;display:flex}.image-slicer-preview-card,.image-slicer-output-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.image-slicer-section-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;min-height:66px;padding:14px 16px;display:flex}.image-slicer-badge{border:1px solid var(--border);color:var(--text-dim);background:var(--card);white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:10px}.image-slicer-preview-wrap{background:linear-gradient(45deg, #191a24 25%, transparent 25%), linear-gradient(-45deg, #191a24 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #191a24 75%), linear-gradient(-45deg, transparent 75%, #191a24 75%), var(--input-bg);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;padding:18px}.image-slicer-preview{width:fit-content;max-width:100%;box-shadow:var(--shadow-lg);border-radius:4px;margin:0 auto;line-height:0;position:relative;overflow:hidden}.image-slicer-preview>img{object-fit:contain;max-width:100%;max-height:58vh;display:block}.image-slicer-grid-overlay{line-height:1.5;display:grid;position:absolute;inset:0}.image-slicer-grid-cell{border:2px solid #f7768eeb;justify-content:flex-start;align-items:flex-start;min-width:0;min-height:0;display:flex}.image-slicer-grid-cell span{color:#fff;text-shadow:0 1px 2px #00000080;background:#f7768eeb;justify-content:center;align-items:center;min-width:24px;height:24px;padding:0 6px;font-size:10px;font-weight:800;display:inline-flex}.image-slicer-output-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;padding:14px;display:grid}.image-slicer-output-item{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:8px;display:grid}.image-slicer-output-thumb{border:1px solid var(--border-mid);background:var(--input-bg);border-radius:6px;width:54px;height:54px;position:relative;overflow:hidden}.image-slicer-output-thumb img{object-fit:cover;width:100%;height:100%}.image-slicer-output-thumb span{color:#fff;background:#000000b8;border-radius:4px;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 4px;font-size:9px;font-weight:700;display:flex;position:absolute;top:3px;left:3px}.image-slicer-output-meta{flex-direction:column;gap:3px;min-width:0;display:flex}.image-slicer-output-meta strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-family:monospace;font-size:11px;overflow:hidden}.image-slicer-output-meta span{color:var(--subtext);font-size:10px}.image-slicer-download{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent-hover);padding:5px 8px;font-size:10px;text-decoration:none}.image-slicer-download:hover{border-color:var(--accent);background:var(--accent-dim)}@media (width<=850px){.image-slicer-panel{flex-direction:column;display:flex;overflow-y:auto}.image-slicer-controls{border-right:0;border-bottom:1px solid var(--border);overflow:visible}.image-slicer-workspace{overflow:visible}}
