.sk128-wrap{margin-bottom:2rem;}
.sk128-card{background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.06);overflow:hidden;padding:1.25rem;}
.sk128-field{margin-bottom:1.25rem;}
.sk128-label{display:block;font-size:.875rem;font-weight:600;color:var(--text-main,#111);margin-bottom:.5rem;}
.sk128-input{width:100%;min-height:120px;padding:.875rem 1rem;border:2px solid var(--border,#e2e8f0);border-radius:12px;font-size:1rem;line-height:1.5;resize:vertical;background:var(--surface,#fff);color:var(--text-main,#111);transition:border-color .2s,box-shadow .2s;}
.sk128-input:focus{outline:none;border-color:var(--primary,#2563eb);box-shadow:0 0 0 3px rgba(37,99,235,.12);}
.sk128-input::placeholder{color:var(--text-muted,#64748b);}
.sk128-meta{display:block;font-size:.75rem;color:var(--text-muted,#64748b);margin-top:.35rem;}
.sk128-divider{display:flex;align-items:center;text-align:center;margin:1rem 0;color:var(--text-muted,#64748b);font-size:.8125rem;}
.sk128-divider::before,.sk128-divider::after{content:'';flex:1;border-bottom:1px solid var(--border,#e2e8f0);}
.sk128-divider span{padding:0 .75rem;}
.sk128-drop{position:relative;border:2px dashed var(--border,#e2e8f0);border-radius:12px;padding:1.5rem;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;}
.sk128-drop:hover{border-color:var(--primary,#2563eb);background:rgba(37,99,235,.04);}
.sk128-drop.sk128-dragover{border-color:var(--primary,#2563eb);background:rgba(37,99,235,.08);}
.sk128-file-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;}
.sk128-drop-icon{display:inline-block;width:40px;height:40px;margin-bottom:.5rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 16a4 4 0 01-.88-7.903A5 5 0 1115.9 6L16 6a5 5 0 011 9.9M15 13l-3-3m0 0l-3 3m3-3v12'/%3E%3C/svg%3E") center/contain no-repeat;}
.sk128-drop-text{margin:0;font-size:.9375rem;font-weight:500;color:var(--text-main,#111);}
.sk128-actions{margin:1.25rem 0;}
.sk128-btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.25rem;border-radius:10px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s,transform .05s;}
.sk128-btn:active{transform:scale(.98);}
.sk128-btn-primary{background:var(--primary,#2563eb);color:#fff;border:none;}
.sk128-btn-primary:hover:not(:disabled){background:var(--primary-dark,#1d4ed8);}
.sk128-btn-copy{background:var(--surface,#fff);color:var(--primary,#2563eb);border:2px solid var(--primary,#2563eb);}
.sk128-btn-copy:hover:not(:disabled){background:rgba(37,99,235,.08);}
.sk128-btn-copy:disabled{opacity:.5;cursor:not-allowed;}
.sk128-btn-copy.sk128-copied{background:#059669;border-color:#059669;color:#fff;}
.sk128-output-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;}
.sk128-output-head .sk128-label{margin-bottom:0;}
.sk128-output{min-height:100px;padding:1rem;border-radius:12px;background:#0f172a;border:2px solid #1e293b;font-family:ui-monospace,monospace;font-size:.875rem;line-height:1.6;color:#34d399;word-break:break-all;white-space:pre-wrap;}
.sk128-output.has-content .sk128-placeholder{display:none;}
.sk128-placeholder{color:#64748b;font-style:italic;}
.sk128-block{margin-bottom:2rem;}
.sk128-heading{font-size:1.25rem;font-weight:700;color:var(--text-main,#111);margin:0 0 .75rem;}
.sk128-p{font-size:1rem;line-height:1.65;color:var(--text-muted,#64748b);margin:0 0 .75rem;}
.sk128-p:last-child{margin-bottom:0;}
.sk128-list{margin:0;padding-left:1.25rem;}
.sk128-list li{margin-bottom:.5rem;line-height:1.6;color:var(--text-muted,#64748b);}
.sk128-code{padding:.2em .5em;border-radius:6px;background:var(--surface-muted,#f1f5f9);font-family:ui-monospace,monospace;font-size:.875rem;}
.sk128-updated{font-size:.8125rem;color:var(--text-muted,#64748b);margin:0 0 2rem;}
@media (min-width:768px){.sk128-card{padding:1.75rem;}.sk128-input{min-height:140px;}.sk128-output{min-height:120px;}}
@media (max-width:480px){.sk128-card{padding:1rem;}.sk128-btn{padding:.5rem 1rem;font-size:.875rem;}}
