:root {
    --background-color: #231140; 
    --card-background: #2C3E50; 
    --primary-color: #589bff;
    --success-color: #28a745;
    --danger-color: #dc3545;
    --light-blue-border: #589bff; 
    --light-bg-panel: #34495E;
    --text-color: #ecf0f1;
    --text-muted-color: #bdc3c7;
    --border-color: #4e6a85;
    --shadow-color: rgba(0, 0, 0, 0.5);
    --handle-size: 12px;
}
#jppm-container *, #jppm-container *:before, #jppm-container *:after { box-sizing: border-box; }
/* body { background-color: var(--background-color); } */ /* এটি প্লাগিনের বাইরে থাকা উচিত */
#jppm-container {
    font-family: 'Anek Bangla', sans-serif;
    background-color: var(--background-color); color: var(--text-color);
    border-radius: 16px; text-align: center; border: 1px solid var(--border-color);
    display: flex; align-items: flex-start; gap: 1.5rem;
    padding: 1.5rem; max-width: 1100px; margin: 20px auto;
}

/* ফন্ট লোড করার জন্য @import ব্যবহার করা হলো, কারণ এটি এখন আলাদা CSS ফাইল */
@import url('https://fonts.googleapis.com/css2?family=Anek+Bangla:wght@400;500;600;700&display=swap');

.jppm-sidebar {
    flex: 0 0 280px; display: flex; flex-direction: column; gap: 1.5rem;
    background-color: var(--background-color); padding: 1.5rem;
    border-radius: 12px; border: 1px solid var(--border-color);
    box-shadow: 0 4px 15px var(--shadow-color);
}
.jppm-main-content { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; }

.jppm-upload-box {
    width: 100%; border: 2px dashed var(--light-blue-border); border-radius: 12px;
    padding: 1rem; cursor: pointer; transition: all 0.2s ease; position: relative;
    min-height: 150px; display: flex; flex-direction: column; justify-content: center; align-items: center;
    background-color: var(--card-background);
}
.jppm-upload-box:hover { border-color: var(--primary-color); transform: translateY(-2px); }
.jppm-upload-box p { font-weight: 500; color: var(--text-muted-color); margin: 10px 0 0 0; }
.jppm-upload-box input[type="file"] { display: none; }
.jppm-preview-img { max-width: 100%; max-height: 100px; border-radius: 8px; display: none; object-fit: contain; }
.jppm-preview-wrapper { position: relative; width: 100%; height: 100px; display: flex; justify-content: center; align-items: center; overflow: hidden; }
.jppm-preview-wrapper.has-image img { display: block; } .jppm-preview-wrapper.has-image p { display: none; }

/* [*** নতুন ***] ড্রাগ-এন্ড-ড্রপ এর জন্য স্টাইল */
.jppm-upload-box.dragging {
    border-color: var(--success-color);
    background-color: var(--light-bg-panel);
    transform: scale(1.02);
    box-shadow: 0 0 15px var(--success-color);
}

.jppm-action-buttons { display: flex; flex-direction: column; justify-content: center; gap: 0.75rem; width: 100%; }
#jppm-container button {
    border: none; padding: 0.8rem 1.5rem; border-radius: 8px; font-size: 1rem; font-weight: 600;
    font-family: 'Anek Bangla', sans-serif; cursor: pointer; transition: all 0.2s ease; color: white; width: 100%;
}
#jppm-container button:hover { opacity: 0.9; transform: scale(1.02); box-shadow: 0 4px 10px var(--shadow-color); }
#jppm-container button:disabled { background-color: #555 !important; color: #999; cursor: not-allowed; transform: none; box-shadow: none; }
.zoom-btn {
    width: 25px !important; height: 25px; padding: 0 !important; font-size: 1.2rem !important;
    font-weight: bold !important; line-height: 1; border-radius: 50% !important;
    background-color: var(--light-bg-panel) !important; border: 1px solid var(--border-color) !important;
}
.zoom-btn:hover { background-color: var(--card-background) !important; }
#jppm-combine-btn { background-color: var(--primary-color); }

#jppm-status { font-weight: 500; color: var(--primary-color); min-height: 1.2em; text-align: center; width: 100%; }

.jppm-result-area { 
    display: flex; justify-content: center; align-items: center; gap: 1.5rem; 
    width: 100%; flex-wrap: nowrap; 
    margin-bottom: 1rem; 
}
.jppm-scale-control-panel { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.jppm-scale-control-panel label { font-weight: 500; color: var(--text-muted-color); }
.jppm-scale-control-panel input[type="range"] { width: 25px; height: 150px; writing-mode: bt-lr; -webkit-appearance: slider-vertical; }
.jppm-scale-control-panel input[type="number"] {
    width: 70px; padding: 5px; text-align: center; border: 1px solid var(--border-color); border-radius: 5px;
    background-color: var(--background-color); color: var(--text-color);
}
#jppm-result-canvas {
    border: 1px solid var(--border-color); border-radius: 8px; max-width: 100%; height: auto;
    display: block; 
    cursor: default; box-shadow: 0 8px 32px var(--shadow-color);
    background-color: var(--light-bg-panel); 
}
.jppm-loader-overlay {
    position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.7);
    display: flex; justify-content: center; align-items: center; border-radius: 12px; z-index: 10;
}
.jppm-loader { border: 4px solid #555; border-top: 4px solid var(--primary-color); border-radius: 50%; width: 40px; height: 40px; animation: jppm-spin 1s linear infinite; }
@keyframes jppm-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.jppm-canvas-toolbar {
    display: flex; 
    width: 100%; padding: 0.75rem;
    background-color: var(--light-bg-panel);
    border-radius: 10px; border: 1px solid var(--border-color);
    margin-bottom: 1rem; align-items: center; gap: 1rem;
}
.jppm-color-palette { display: flex; gap: 0.5rem; }
.jppm-color-swatch {
    width: 28px; height: 28px; border-radius: 6px;
    cursor: pointer; border: 2px solid var(--border-color);
    transition: transform 0.2s ease;
}
.jppm-color-swatch:hover { transform: scale(1.1); }
.jppm-toolbar-divider { width: 1px; height: 28px; background-color: var(--border-color); }
.jppm-toolbar-buttons { display: flex; gap: 0.75rem; margin-left: auto; }
.jppm-toolbar-buttons button { width: auto; padding: 0.5rem 1rem; }
#jppm-reset-btn { background-color: var(--danger-color); }
#jppm-download-btn { background-color: var(--success-color); }

input[type="color"] { 
    width: 32px; height: 32px; 
    border: none; 
    border-radius: 6px; 
    cursor: pointer; padding: 0; 
    background-image: linear-gradient(to right, #f87171, #facc15, #60a5fa); 
    overflow: hidden; 
}
input[type="color"]::-webkit-color-swatch-wrapper { padding: 0; }
input[type="color"]::-webkit-color-swatch { border: none; opacity: 0; }

.jppm-rotation-controls {
    display: flex;
    justify-content: space-around;
    width: 100%;
    max-width: 600px;
    gap: 1.5rem;
    margin: 0 auto;
    padding: 1rem;
    background-color: var(--light-bg-panel);
    border-radius: 10px;
    border: 1px solid var(--border-color);
}
.jppm-rotation-control-panel {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.jppm-rotation-control-panel label {
    font-weight: 500;
    color: var(--text-muted-color);
}
.jppm-rotation-control-panel input[type="range"] {
    width: 120px;
    height: auto; 
    writing-mode: horizontal-tb; 
    -webkit-appearance: auto; 
}
.jppm-rotation-control-panel input[type="number"] {
    width: 60px;
    padding: 5px;
    text-align: center;
    border: 1px solid var(--border-color);
    border-radius: 5px;
    background-color: var(--background-color);
    color: var(--text-color);
}
.jppm-rotation-control-panel span {
    font-size: 1.2rem;
    color: var(--text-muted-color);
}