.bmc-cryptography{--hgs-surface:var(--surface,#fff);--hgs-border:var(--border,#e2e8f0);--hgs-text:var(--text-main,#0f172a);--hgs-muted:var(--text-muted,#64748b);--hgs-primary:var(--primary,#2563eb);--hgs-primary-dark:var(--primary-dark,#1d4ed8);--hgs-primary-light:var(--primary-light,#dbeafe);--hgs-radius:12px;--hgs-radius-lg:16px;}
.hgs-suite{margin-bottom:2rem;}
.hgs-card{background:var(--hgs-surface);border:1px solid var(--hgs-border);border-radius:var(--hgs-radius-lg);box-shadow:0 1px 3px rgba(0,0,0,.06);overflow:hidden;}
.hgs-input-block{padding:1.25rem 1rem 0;}
.hgs-label{display:block;font-size:.875rem;font-weight:600;color:var(--hgs-text);margin-bottom:.5rem;}
.hgs-textarea{width:100%;min-height:100px;padding:.875rem 1rem;border:2px solid var(--hgs-border);border-radius:var(--hgs-radius);font-size:1rem;line-height:1.5;resize:vertical;background:var(--hgs-surface);color:var(--hgs-text);transition:border-color .2s,box-shadow .2s;box-sizing:border-box;-webkit-appearance:none;appearance:none;}
.hgs-textarea:focus{outline:none;border-color:var(--hgs-primary);box-shadow:0 0 0 3px rgba(37,99,235,.12);}
.hgs-textarea::placeholder{color:var(--hgs-muted);}
.hgs-file-block{margin-top:1rem;}
.hgs-drop{display:flex;align-items:center;justify-content:center;min-height:52px;padding:.75rem 1rem;border:2px dashed var(--hgs-border);border-radius:var(--hgs-radius);background:var(--surface-muted,#f8fafc);cursor:pointer;transition:border-color .2s,background .2s;}
.hgs-drop:hover,.hgs-drop.hgs-dragover{border-color:var(--hgs-primary);background:rgba(37,99,235,.06);}
.hgs-drop-txt{font-size:.8125rem;color:var(--hgs-muted);pointer-events:none;}
.hgs-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}
.hgs-algo-block{padding:1rem 1rem 0;}
.hgs-algo-label{display:block;font-size:.8125rem;font-weight:600;color:var(--hgs-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.04em;}
.hgs-algo-strip{display:flex;flex-wrap:nowrap;gap:.5rem;overflow-x:auto;padding-bottom:.25rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.hgs-algo-strip::-webkit-scrollbar{height:6px;}
.hgs-chip{flex:0 0 auto;padding:.5rem .875rem;border:2px solid var(--hgs-border);border-radius:999px;background:var(--hgs-surface);color:var(--hgs-text);font-size:.875rem;font-weight:600;cursor:pointer;transition:border-color .2s,background .2s,color .2s;white-space:nowrap;}
.hgs-chip:hover{border-color:var(--hgs-primary);color:var(--hgs-primary);}
.hgs-chip--active{border-color:var(--hgs-primary);background:var(--hgs-primary);color:#fff;}
.hgs-chip--active:hover{background:var(--hgs-primary-dark);border-color:var(--hgs-primary-dark);color:#fff;}
.hgs-actions{padding:1rem 1rem 0;}
.hgs-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:320px;padding:.75rem 1.5rem;border:none;border-radius:var(--hgs-radius);font-size:1rem;font-weight:600;cursor:pointer;background:var(--hgs-primary);color:#fff;transition:background .2s,transform .15s;}
.hgs-btn:hover{background:var(--hgs-primary-dark);}
.hgs-btn:active{transform:scale(.98);}
.hgs-loading{display:flex;align-items:center;gap:.75rem;padding:1rem 1rem;color:var(--hgs-muted);font-size:.875rem;}
.hgs-loading[hidden]{display:none;}
.hgs-spinner{width:20px;height:20px;border:2px solid var(--hgs-border);border-top-color:var(--hgs-primary);border-radius:50%;animation:hgs-spin .6s linear infinite;}
@keyframes hgs-spin{to{transform:rotate(360deg);}}
.hgs-output{padding:0 1rem 1.25rem;}
.hgs-output[hidden]{display:none;}
.hgs-results{display:flex;flex-direction:column;gap:.75rem;}
.hgs-result{background:var(--surface-muted,#f8fafc);border:1px solid var(--hgs-border);border-radius:var(--hgs-radius);padding:1rem;transition:border-color .2s;}
.hgs-result-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;}
.hgs-result-name{font-size:.875rem;font-weight:600;color:var(--hgs-text);}
.hgs-result-copy{padding:.35rem .75rem;border-radius:8px;font-size:.75rem;font-weight:600;cursor:pointer;background:var(--hgs-primary);color:#fff;border:none;transition:background .2s,opacity .2s;}
.hgs-result-copy:hover:not(:disabled){background:var(--hgs-primary-dark);}
.hgs-result-copy:disabled{opacity:.6;cursor:not-allowed;}
.hgs-result-copy.hgs-copied{background:#059669;}
.hgs-result-value{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8125rem;line-height:1.5;color:var(--hgs-text);word-break:break-all;background:var(--hgs-surface);padding:.75rem;border-radius:8px;border:1px solid var(--hgs-border);}
.hgs-result-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem;font-size:.75rem;color:var(--hgs-muted);}
.hgs-result-meta span{background:var(--hgs-surface);border:1px solid var(--hgs-border);border-radius:6px;padding:.2rem .5rem;}
.hgs-algo-info{margin-top:1rem;padding:1rem;background:var(--hgs-primary-light);border:1px solid var(--hgs-primary);border-radius:var(--hgs-radius);}
.hgs-algo-info[hidden]{display:none;}
.hgs-algo-info-title{font-size:1rem;font-weight:700;color:var(--hgs-text);margin:0 0 .5rem;}
.hgs-algo-details{font-size:.875rem;line-height:1.6;color:var(--hgs-text);}
.hgs-algo-details p{margin:0 0 .35rem;}
.hgs-algo-details p:last-child{margin-bottom:0;}
.hgs-note{margin:1rem 1rem 1.25rem;padding:.75rem 1rem;background:#fef3c7;border:1px solid #f59e0b;border-radius:var(--hgs-radius);font-size:.8125rem;color:#92400e;}
@media (min-width:480px){.hgs-input-block,.hgs-algo-block,.hgs-actions,.hgs-output{padding-left:1.25rem;padding-right:1.25rem;}.hgs-note{margin-left:1.25rem;margin-right:1.25rem;}.hgs-textarea{min-height:110px;}.hgs-algo-strip{flex-wrap:wrap;overflow-x:visible;}}
@media (min-width:768px){.hgs-card{border-radius:20px;}.hgs-input-block{padding:1.5rem 1.75rem 0;}.hgs-algo-block{padding:1.25rem 1.75rem 0;}.hgs-actions{padding:1.25rem 1.75rem 0;}.hgs-output{padding:0 1.75rem 1.5rem;}.hgs-loading{padding:1rem 1.75rem;}.hgs-note{margin:1.25rem 1.75rem 1.5rem;}.hgs-textarea{min-height:120px;}.hgs-btn{max-width:240px;}.hgs-result-value{font-size:.875rem;}}
