/* Twaino Base64 Encoder/Decoder */

.tw-be-app{max-width:1200px;margin:0 auto;padding-top:20px;font-family:inherit;color:#1a1a2e}
.tw-be-app *,.tw-be-app *::before,.tw-be-app *::after{box-sizing:border-box}

/* Header */
.tw-be-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:10px;flex-wrap:wrap}
.tw-be-header-left{display:flex;align-items:center;gap:14px}
.tw-be-label{font-size:15px;font-weight:700;color:#1a1a2e}
.tw-be-mode-ctrl{display:flex;align-items:center;gap:6px}
.tw-be-mode-tabs{display:flex;gap:0;border:1px solid #e5e7eb;border-radius:5px;overflow:hidden}
.tw-be-mtab{padding:3px 10px;font-size:11px;font-weight:600;border:none;background:#f8f9fa;color:#6b7280;cursor:pointer;transition:all .15s;font-family:inherit;line-height:1.4}
.tw-be-mtab.tw-be-mtab-active{background:#56aea4;color:#fff}
.tw-be-mtab:hover:not(.tw-be-mtab-active){background:#56aea4;color:#fff;border-color:#56aea4}

/* Action buttons */
.tw-be-header-actions{display:flex;gap:6px}
.tw-be-btn-action{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:500;color:#6b7280;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .15s;font-family:inherit;line-height:1}
.tw-be-btn-action:hover{background:#f3f4f6;color:#1a1a2e;border-color:#d1d5db}
.tw-be-btn-action svg{flex-shrink:0}
.tw-be-btn-primary{color:#56aea4;border-color:#56aea4;background:#fff}
.tw-be-btn-primary:hover{background:#56aea4;color:#fff;border-color:#56aea4}

/* Status bar */
.tw-be-status{min-height:20px;margin-bottom:6px}
.tw-be-status-msg{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.tw-be-status-ok{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}
.tw-be-status-err{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}

/* Block 1: Input + Output unified card */
.tw-be-block1{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;margin-bottom:10px}
.tw-be-input-side{border-right:1px solid #e5e7eb;display:flex;flex-direction:column;min-width:0}
.tw-be-file-side{border-right:1px solid #e5e7eb;display:flex;flex-direction:column;min-width:0}
.tw-be-output-side{display:flex;flex-direction:column;background:#fafbfc;min-width:0}
.tw-be-pane-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#6b7280;padding:8px 14px 0;user-select:none}

/* Textarea input */
.tw-be-textarea{width:100%;flex:1;min-height:340px;border:none;outline:none;padding:8px 14px 14px;font-size:13px;line-height:1.55;resize:vertical;font-family:'SF Mono','Fira Code','Consolas',monospace;color:#1a1a2e;background:transparent;display:block;word-wrap:break-word;overflow-wrap:break-word;white-space:pre-wrap}
.tw-be-textarea::placeholder{color:#b0b5c0;font-family:'SF Mono','Fira Code','Consolas',monospace}

/* Output pre */
.tw-be-output{width:100%;flex:1;min-height:340px;margin:0;border:none;outline:none;padding:8px 14px 14px;font-size:13px;line-height:1.55;font-family:'SF Mono','Fira Code','Consolas',monospace;color:#1a1a2e;background:transparent;overflow:auto;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;user-select:text}
.tw-be-empty{color:#b0b5c0}

/* File drop zone */
.tw-be-dropzone{flex:1;min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;margin:8px 14px 14px;border:2px dashed #e5e7eb;border-radius:10px;cursor:pointer;transition:all .2s;padding:20px}
.tw-be-dropzone:hover,.tw-be-dropzone.tw-be-drag-over{border-color:#56aea4;background:#f0fdf8}
.tw-be-drop-text{font-size:13px;color:#6b7280;text-align:center}
.tw-be-drop-text strong{color:#56aea4}
.tw-be-drop-hint{font-size:11px;color:#9ca3af}
.tw-be-file-hidden{position:absolute;width:0;height:0;opacity:0;pointer-events:none}

/* File info */
.tw-be-file-info{display:flex;align-items:center;gap:8px;padding:10px 14px;font-size:13px;color:#1a1a2e;border-top:1px solid #e5e7eb}
.tw-be-file-size{font-size:12px;color:#6b7280}
.tw-be-file-remove{border:none;background:none;color:#dc2626;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}
.tw-be-file-remove:hover{color:#991b1b}

/* Download link */
.tw-be-download-link{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;font-size:13px;color:#56aea4;font-weight:600;text-decoration:none;border-top:1px solid #e5e7eb;cursor:pointer;transition:background .15s}
.tw-be-download-link:hover{background:#f0fdf8}

/* Stats bar */
.tw-be-stats{display:flex;gap:16px;padding:8px 0;flex-wrap:wrap}
.tw-be-stat{font-size:12px;color:#6b7280}
.tw-be-stat strong{color:#1a1a2e;font-weight:700}

/* Article toggle */
.tw-be-article-toggle{margin-top:4px;margin-bottom:12px}
.tw-be-toggle-btn{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:#fff;border:1.5px solid #56aea4;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;color:#56aea4;font-family:inherit;transition:all .15s;text-align:left}
.tw-be-toggle-btn:hover{background:#f0fdf8;border-color:#4a9e94;color:#4a9e94}
.tw-be-toggle-chevron{transition:transform .25s ease;flex-shrink:0;color:#56aea4}
.tw-be-toggle-btn:hover .tw-be-toggle-chevron{color:#4a9e94}
.tw-be-toggle-btn.tw-be-toggle-open .tw-be-toggle-chevron{transform:rotate(180deg)}
.tw-be-h1{font-size:14px;font-weight:600;margin:0;padding:0;color:inherit;font-family:inherit;line-height:1.4}

/* Responsive */
@media(max-width:880px){
  .tw-be-block1{grid-template-columns:1fr}
  .tw-be-input-side,.tw-be-file-side{border-right:none;border-bottom:1px solid #e5e7eb}
  .tw-be-textarea,.tw-be-output{min-height:240px}
  .tw-be-dropzone{min-height:200px}
}
@media(max-width:500px){
  .tw-be-header{flex-direction:column;align-items:stretch}
  .tw-be-header-actions{flex-wrap:wrap;justify-content:flex-end}
  .tw-be-stats{flex-direction:column;gap:4px}
}
