:root{
  color-scheme:dark;
  --g:#65d7c3;--d:#293c4b;--m:#9aabba;--k:#101d28;
  --page:#08060c;--panel:#100c17;--panel-soft:#0c0912;--line:#251b32;
  --text:#f3eff8;--muted:#a79bb8;--accent:#ad83f5;--accent-strong:#9568e8;
  --danger:#ffaaa9;--warning:#f0c878;
}
*{box-sizing:border-box;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
html,body{min-height:100vh;min-height:100dvh;background:var(--page);color:var(--text);overflow-x:hidden}
body{display:block;padding:0}
:focus-visible{outline:3px solid #c6a8ff;outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bg,.fx{display:none}
.card{z-index:auto;max-width:1180px;margin:0 auto;padding:36px 32px 28px;border:0;border-radius:0;
  background:transparent;box-shadow:none;backdrop-filter:none}
.top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:22px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.brandmark{width:44px;height:44px;flex:none;border-radius:9px;object-fit:cover}
.light{width:9px;height:9px;flex:none;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(173,131,245,.13)}
.light.active{background:#fff;box-shadow:0 0 0 4px rgba(173,131,245,.18)}
h1{font-size:1.28rem;letter-spacing:-.025em;color:var(--text);text-shadow:none;text-transform:none}
h1 span{margin-left:8px;padding:4px 8px;border:1px solid var(--line);border-radius:5px;
  color:var(--muted);font-size:.68rem;font-weight:600;letter-spacing:.04em}
.tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-left:auto}
.tools button{width:auto;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);
  color:var(--muted);font-size:.72rem;letter-spacing:0}
.tools select{width:auto;min-width:148px;height:36px;padding:0 8px;font-size:.72rem}
.tools button[aria-pressed="true"]{border-color:#594273;color:var(--accent)}
.audio-status{margin:-12px 0 16px;color:var(--muted);font-size:.77rem;line-height:1.5}
.audio-status:empty{display:none}
.audio-status.error{color:var(--danger)}
button{font-weight:600;color:var(--text);background:var(--panel);border:1px solid var(--line);
  border-radius:8px;letter-spacing:0;text-transform:none}
button:hover:not(:disabled){background:#1c1427;color:#fff;box-shadow:none;border-color:#58416f}
button:disabled{border-color:#51455f;background:#171320;color:#a79bb8;opacity:1;cursor:not-allowed}
.sub{margin:0 0 25px;padding:0;border:0;color:var(--muted);font-size:.9rem;letter-spacing:0}
.sub strong{color:var(--accent);font-weight:650}
.cur{display:none}
.workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.85fr);gap:20px;align-items:start}
.panel{min-width:0;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}
.panel-heading h2{font-size:1.04rem;font-weight:650;letter-spacing:-.015em}
.panel-heading p{margin-top:6px;color:var(--muted);font-size:.84rem;line-height:1.55}
.step{display:grid;place-items:center;width:28px;height:28px;flex:none;border:1px solid #493660;border-radius:8px;
  background:#1c1427;color:var(--accent);font-size:.75rem;font-weight:700}
.field{margin-bottom:19px}
.key-pair-grid{display:grid;gap:14px}
.key-pair-nested{margin-top:14px}
.key-pair-grid textarea{min-height:120px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem}
.key-action{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.key-action button{padding:7px 10px;font-size:.75rem}
.passphrase-tools,.key-strength{display:grid;gap:10px;margin-top:14px}
.passphrase-tools label,.key-strength label{margin-bottom:0}
.passphrase-actions{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:8px}
.passphrase-actions select,.passphrase-actions button{min-height:42px;font-size:.78rem}
.key-strength{margin-top:16px;padding:14px;border:1px solid #30243e;border-radius:11px;background:linear-gradient(145deg,#15101e 0%,#0e0b14 100%)}
.strength-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.strength-heading label{font-size:.8rem}
.key-strength-status{color:var(--muted);font-size:.75rem;font-weight:650;line-height:1.4}
.key-strength-status.weak{color:var(--danger)}
.key-strength-status.fair{color:var(--warning)}
.key-strength-status.good,.key-strength-status.strong{color:#c7a8ff}
.strength-track{display:block;width:100%;height:10px;overflow:hidden;appearance:none;border:1px solid #33283e;border-radius:99px;background:#08060d}
.strength-track::-webkit-progress-bar{border-radius:99px;background:#08060d}
.strength-track::-webkit-progress-value{border-radius:99px;background:#74617f;transition:width .38s cubic-bezier(.2,.75,.25,1),background-color .3s ease}
.strength-track::-moz-progress-bar{border-radius:99px;background:#74617f;transition:width .38s cubic-bezier(.2,.75,.25,1),background-color .3s ease}
.strength-track[data-level="weak"]::-webkit-progress-value{background:#e87882}
.strength-track[data-level="weak"]::-moz-progress-bar{background:#e87882}
.strength-track[data-level="fair"]::-webkit-progress-value{background:#e3ba68}
.strength-track[data-level="fair"]::-moz-progress-bar{background:#e3ba68}
.strength-track[data-level="good"]::-webkit-progress-value{background:#9d72ed}
.strength-track[data-level="good"]::-moz-progress-bar{background:#9d72ed}
.strength-track[data-level="strong"]::-webkit-progress-value{background:linear-gradient(90deg,#8151dc 0%,#a56bf2 55%,#c18aff 100%)}
.strength-track[data-level="strong"]::-moz-progress-bar{background:linear-gradient(90deg,#8151dc 0%,#a56bf2 55%,#c18aff 100%)}
.key-length-status{color:var(--muted);font-size:.74rem;line-height:1.4}
.key-length-status:not(:empty){min-height:1.1em}
.key-strength-guidance{margin:0;padding:9px 10px;border:1px solid rgba(154,116,207,.26);border-radius:8px;background:rgba(115,78,156,.09);color:#cbbce0;font-size:.74rem;line-height:1.5;transition:color .2s ease,border-color .2s ease,background-color .2s ease}
.key-strength:has(.key-strength-status.weak) .key-strength-guidance{border-color:rgba(232,120,130,.34);background:rgba(232,120,130,.07);color:#f0b0b5}
.key-strength:has(.key-strength-status.strong) .key-strength-guidance{border-color:rgba(165,107,242,.3);background:rgba(165,107,242,.07);color:#d7c2f8}
.key-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:0;list-style:none}
.key-checklist li{display:flex;align-items:center;gap:8px;min-width:0;color:#b9adca;font-size:.74rem;line-height:1.35;transition:color .2s ease}
.check-icon{display:grid;place-items:center;width:17px;height:17px;flex:none;border:1px solid #51445f;border-radius:50%;color:transparent;font-size:.65rem;font-weight:800;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}
.check-icon::before{content:''}
.key-checklist li.is-met{color:#e8e1f0}
.key-checklist li.is-met .check-icon{transform:scale(1.04);border-color:#65d7c3;background:rgba(101,215,195,.14);color:#65d7c3}
.key-checklist li.is-met .check-icon::before{content:'✓'}
@media (prefers-reduced-motion:reduce){
  .strength-track::-webkit-progress-value,.strength-track::-moz-progress-bar,.check-icon,.key-checklist li,.key-strength-guidance{transition:none}
}
.key-help{margin-top:10px;padding:11px 12px;border:1px solid #49365d;border-radius:8px;background:#171020;color:#dbcaff;font-size:.75rem;line-height:1.55}
.file-tools{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.file-tools .panel-heading{margin-bottom:16px}
.file-tools input[type=file]{padding:9px;font-size:.8rem;letter-spacing:0}
.file-tools .key-action{margin-top:12px}
.file-tools .key-action button{min-height:38px}
.file-tools #fileStatus:empty{display:none}
.file-tools #fileStatus.error{color:var(--danger)}
[hidden]{display:none!important}
.clipboard-fallback{position:fixed;top:0;left:0;opacity:0;pointer-events:none}
label{display:block;margin:0 0 8px;color:#dbe5ec;font-size:.82rem;font-weight:600;letter-spacing:0;text-transform:none}
.field-hint{display:block;margin-top:7px;color:var(--muted);font-size:.75rem;line-height:1.5}
.fingerprint{overflow-wrap:anywhere}
.fingerprint code{color:#e5d8fb;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem;letter-spacing:.035em}
.fingerprint.error{color:var(--danger)}
textarea,input,select{width:100%;border:1px solid #33263f;border-radius:8px;background:#09070e;color:var(--text);
  padding:11px 13px;font-size:.9rem;line-height:1.55;letter-spacing:0;caret-color:var(--accent)}
textarea{min-height:205px;resize:vertical}
input{letter-spacing:.06em}
select{cursor:pointer}
textarea::placeholder,input::placeholder{color:#9aabb8;letter-spacing:0}
textarea:focus,input:focus,select:focus{border-color:var(--accent-strong);box-shadow:0 0 0 3px rgba(173,131,245,.15)}
.row{display:flex;align-items:stretch;gap:8px}
.row input{min-width:0;flex:1}
.sq{width:auto;min-width:68px;padding:0 12px;flex:none}
.actions{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;margin-top:20px}
.actions button{min-height:43px;padding:10px 16px;background:#191220;font-size:.87rem}
.actions #encB{border-color:#7553a5;background:#4e3377;color:#fff}
.actions #encB:hover:not(:disabled){background:#5f408e}
.actions #decB{border-color:#3c2d4d;background:#15101c}
.actions .clr{max-width:none;padding:10px 13px;border-color:var(--line);color:var(--muted)}
.right-column{display:grid;gap:16px}
.outbox{margin:0;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.oh{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px;color:#dbe5ec;font-size:.83rem;letter-spacing:0}
.output-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.oh button,.output-actions button{padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:#191220;color:var(--accent);
  font-size:.75rem;letter-spacing:.01em}
.oh button:disabled{border-color:#51455f;background:#171320;color:#a79bb8;cursor:not-allowed}
.otext{min-height:190px;max-height:48vh;overflow:auto;padding:14px;border:1px solid #2a2036;border-radius:8px;
  background:#09070e;color:#e5d8fb;font-size:.88rem;line-height:1.7;letter-spacing:0;word-break:break-word;white-space:pre-wrap;text-shadow:none}
.otext.err{color:var(--danger)}
.migration{display:grid;gap:10px;margin-top:12px}
.migration[hidden],.migration [hidden]{display:none}
.migration p{color:#ddc8f8;font-size:.8rem;line-height:1.55}
.migration button{
  justify-self:start;
  min-height:40px;
  padding:9px 13px;
  border-color:#7956a7;
  background:#241832;
  color:#e5d2ff;
  font-size:.8rem;
}
.info{margin:0;padding:15px 16px;border:1px solid #49365d;border-radius:9px;background:#171020;
  color:#dbcaff;font-size:.78rem;text-align:left;letter-spacing:0;line-height:1.6}
.info.warn{border-color:#665338;background:#2a2419;color:#f1d299}
.narr{display:flex;gap:8px;margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:9px;
  color:var(--muted);font-size:.76rem;letter-spacing:0;min-height:0}
.narr b{color:#dbe5ec}
.narr.active i{color:var(--accent)}
.privacy-note{padding:14px 16px;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);
  color:var(--muted);font-size:.77rem;line-height:1.6}
.privacy-note strong{color:#dbe5ec;font-weight:600}
.footer{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);color:#988da7;font-size:.74rem;line-height:1.6}
.hash-tools{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.hash-dropzone{display:grid;place-items:center;min-height:180px;padding:26px;border:1px solid rgba(121,208,191,.9);border-radius:18px;background:rgba(101,215,195,.16);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;background-color:rgba(101,215,195,.12)}
.hash-dropzone.dragging{transform:translateY(-1px);border-color:#9fe3d7;box-shadow:0 0 0 4px rgba(101,215,195,.12)}
.hash-drop-text{margin:0;color:#1d8b76;font-size:clamp(2rem,4vw,4rem);font-weight:700;line-height:1.05;letter-spacing:-.045em;text-align:center}
.hash-drop-text span{display:block;margin-top:12px;color:#2b7a68;font-size:clamp(1rem,1.8vw,1.8rem);font-weight:500;letter-spacing:0}
.hash-picker-row{display:flex;align-items:center;gap:12px;margin-top:16px}
.hash-picker-row #exportHashResults{margin-left:auto;min-height:38px;padding:0 12px;font-size:.75rem}
.hash-choose{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font-size:.9rem;cursor:pointer}
.hash-choose:hover{background:#1c1427}
.hash-selected{color:var(--muted);font-size:.87rem}
.hash-algorithms{display:flex;flex-wrap:wrap;gap:14px;padding:16px 0 6px}
.hash-algorithms label{display:inline-flex;align-items:center;gap:8px;color:#dfe7ee;font-size:.82rem;font-weight:500;cursor:pointer}
.hash-algorithms input{width:16px;height:16px;accent-color:var(--accent-strong)}
.hash-output{margin-top:16px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.hash-output:empty{display:none}
.hash-file-result{padding:12px 0;border-bottom:1px solid rgba(74,63,86,.8)}
.hash-file-result:last-child{border-bottom:none}
.hash-file-result h3{margin:0 0 10px;color:#e4d7ff;font-size:.9rem;font-weight:700;word-break:break-word}
.hash-value-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.hash-value-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 10px;border:1px solid rgba(74,63,86,.8);border-radius:8px;background:#0d0913}
.hash-value-row span{color:var(--muted);font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.hash-value-row code{color:#d9dcff;font-size:.76rem;letter-spacing:.03em;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.hash-digest-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0;flex:1}
.hash-value-row .hash-digest-actions code{flex:1}
.hash-copy-button{flex:none;min-height:32px;padding:0 10px;border:1px solid rgba(154,116,207,.52);border-radius:7px;background:#1b1425;color:#e4d7ff;font-size:.7rem;font-weight:700;cursor:pointer}
.hash-copy-button:hover{border-color:#b993ef;background:#261b36}
.hash-copy-button:focus-visible{outline:2px solid #c8a7ff;outline-offset:2px}
.expected-hash{display:grid;gap:8px;margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.expected-hash label{margin:0}
.expected-hash select,.expected-hash input{min-height:42px}
.hash-progress{margin-top:14px;color:var(--muted);font-size:.78rem;line-height:1.45}
.hash-progress:empty{display:none}
.hash-memory-note{margin-top:10px}
.hash-value-row .hash-verdict{flex:none;padding:4px 8px;border:1px solid currentColor;border-radius:999px;font-size:.68rem;letter-spacing:0;text-transform:none}
.hash-value-row .hash-verdict.match{color:var(--g)}
.hash-value-row .hash-verdict.mismatch{color:var(--danger)}
.hash-message{margin:0;color:var(--muted);font-size:.82rem;line-height:1.5}
.hash-message.error{color:var(--danger)}
.lock-screen{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;
  background:rgba(5,3,8,.98);backdrop-filter:blur(12px)}
.lock-panel{width:min(100%,480px);padding:32px;border:1px solid #38274b;border-radius:16px;background:#100c17;
  box-shadow:0 24px 80px rgba(0,0,0,.55);text-align:center}
.lock-mark{width:54px;height:54px;margin-bottom:18px;border-radius:12px}
.lock-eyebrow{margin-bottom:8px;color:var(--accent);font-size:.7rem;font-weight:700;letter-spacing:.12em}
.lock-panel h2{margin-bottom:12px;font-size:1.35rem;letter-spacing:-.02em}
.lock-panel p:not(.lock-eyebrow){color:var(--muted);font-size:.86rem;line-height:1.65}
.lock-panel button{width:100%;min-height:44px;margin:22px 0 14px;border-color:#7553a5;background:#4e3377}
.lock-panel button:hover{background:#5f408e}
.lock-panel .lock-disclaimer{font-size:.75rem!important}
@media(max-width:820px){
  .card{padding:26px 20px 22px}
  .workspace{grid-template-columns:minmax(0,1fr)}
  .right-column{grid-row:2}
}
@media(max-width:520px){
  .card{padding:20px 14px}
  .top{gap:10px;margin-bottom:18px}
  .brandmark{width:38px;height:38px}
  h1{font-size:1.08rem}
  .tools{width:100%;padding-left:19px}
  .panel{padding:18px}
  .sub{font-size:.82rem}
  .actions{grid-template-columns:1fr 1fr}
  .actions .clr{grid-column:1/-1}
  .otext{min-height:150px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Product workspace refresh */
:root{
  --page:#08060d;
  --panel:#100c18;
  --panel-soft:#0c0912;
  --line:#2a2038;
  --text:#f7f3fc;
  --muted:#b7abc8;
  --accent:#c09aff;
  --accent-strong:#a775f4;
  --danger:#ffaaa9;
  --warning:#f0c878;
}
html,body{background:var(--page)}
body{position:relative;isolation:isolate}
body::before{
  position:fixed;
  z-index:-1;
  inset:0;
  background:
    radial-gradient(ellipse at 14% 0%,rgba(111,58,168,.21),transparent 38rem),
    radial-gradient(ellipse at 92% 34%,rgba(75,45,120,.13),transparent 34rem),
    linear-gradient(180deg,#0b0811 0%,var(--page) 55%);
  content:"";
  pointer-events:none;
}
.card{
  width:min(100%,1380px);
  max-width:1380px;
  margin:28px auto;
  padding:28px;
  border:1px solid rgba(192,154,255,.15);
  border-radius:22px;
  background:linear-gradient(145deg,rgba(19,14,28,.97),rgba(11,8,16,.98));
  box-shadow:0 28px 90px rgba(0,0,0,.42),0 1px 0 rgba(255,255,255,.035) inset;
}
.top{
  gap:14px;
  margin-bottom:18px;
  padding-bottom:20px;
  border-color:rgba(192,154,255,.14);
}
.brandmark{
  width:48px;
  height:48px;
  padding:5px;
  border:1px solid rgba(192,154,255,.2);
  border-radius:14px;
  background:linear-gradient(145deg,#20152d,#100c18);
  box-shadow:0 8px 22px rgba(0,0,0,.25);
}
h1{font-size:1.38rem;letter-spacing:-.04em}
h1 span{
  display:inline-block;
  vertical-align:middle;
  border-color:rgba(192,154,255,.25);
  background:rgba(192,154,255,.07);
  color:#d7c3fa;
  font-size:.62rem;
  letter-spacing:.09em;
}
.light{background:#b993fa;box-shadow:0 0 0 4px rgba(173,131,245,.12),0 0 18px rgba(173,131,245,.4)}
.tools{gap:8px}
.tools button{
  min-height:38px;
  border-color:#332740;
  background:rgba(21,16,29,.88);
  color:#c3b8d1;
}
.tools button[aria-pressed="true"]{
  border-color:#7956a7;
  background:rgba(101,67,143,.22);
  color:#e2d2ff;
}
.audio-status{margin:0 0 12px}
.sub{
  max-width:850px;
  margin:0 0 24px;
  color:#c0b5ce;
  font-size:.94rem;
  line-height:1.7;
}
.sub strong{color:#decaff}
.workspace{
  grid-template-columns:minmax(0,1.16fr) minmax(330px,.84fr);
  gap:22px;
}
.panel,.outbox{
  border-color:rgba(192,154,255,.14);
  border-radius:16px;
  background:linear-gradient(160deg,rgba(20,15,29,.96),rgba(14,10,20,.98));
  box-shadow:0 12px 36px rgba(0,0,0,.17);
}
.panel{padding:28px}
.panel-heading{margin-bottom:24px}
.panel-heading h2{font-size:1.12rem;letter-spacing:-.025em}
.panel-heading p{max-width:560px;font-size:.85rem}
.step{
  width:32px;
  height:32px;
  border-color:#523c6a;
  border-radius:10px;
  background:rgba(166,119,235,.11);
  color:#d0b4ff;
}
.field{margin-bottom:21px}
details.signature-tools{
  margin:0 0 22px;
  padding:15px 16px;
  border:1px solid rgba(192,154,255,.16);
  border-radius:12px;
  background:rgba(12,9,18,.72);
}
.signature-tools summary{
  color:#decaff;
  font-size:.86rem;
  font-weight:700;
  cursor:pointer;
}
.signature-content{
  display:grid;
  gap:10px;
  margin-top:16px;
}
.signature-content textarea{min-height:110px}
.signature-check{
  display:flex;
  align-items:center;
  gap:9px;
  padding:10px 0;
  color:#e4dbea;
}
.signature-check input{width:18px;height:18px;margin:0;accent-color:#a775f4}
.signature-status:empty{display:none}
.signature-status{
  margin:16px 0 0;
  padding:10px 12px;
  border:1px solid rgba(192,154,255,.16);
  border-radius:9px;
  background:rgba(12,9,18,.7);
}
label{color:#e4dbea;font-size:.84rem}
textarea,input,select{
  border-color:#382b47;
  border-radius:10px;
  background:#0a0710;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
textarea{min-height:190px}
textarea::placeholder,input::placeholder{color:#998da8}
textarea:focus,input:focus,select:focus{
  border-color:#a775f4;
  background:#0d0914;
  box-shadow:0 0 0 3px rgba(167,117,244,.17);
}
select{min-height:46px}
.field-hint{color:#b7abc8;font-size:.77rem;line-height:1.6}
.row{gap:9px}
.sq{min-width:76px}
button{
  border-color:#382b47;
  border-radius:10px;
  background:#17111f;
  transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease;
}
button:hover:not(:disabled){
  transform:translateY(-1px);
  border-color:#7956a7;
  background:#21172d;
  box-shadow:0 7px 18px rgba(0,0,0,.2);
}
button:active:not(:disabled){transform:translateY(0)}
button:disabled{color:#b0a6bb}
.actions{
  gap:10px;
  margin-top:22px;
}
.actions button{
  min-height:48px;
  border-radius:11px;
  font-size:.88rem;
}
.actions #encB{
  border-color:#a77ae8;
  background:linear-gradient(135deg,#7348aa,#573285);
  box-shadow:0 8px 24px rgba(94,55,143,.2),0 1px 0 rgba(255,255,255,.12) inset;
}
.actions #encB:hover:not(:disabled){
  border-color:#c4a2f3;
  background:linear-gradient(135deg,#8156ba,#654092);
}
.actions #decB{
  border-color:#554169;
  background:#1b1424;
}
.actions .clr{padding-inline:18px}
.file-tools{
  margin-top:30px;
  padding-top:25px;
  border-top:1px solid rgba(192,154,255,.14);
}
.file-tools .panel-heading{margin-bottom:18px}
.file-tools input[type=file]{
  min-height:54px;
  padding:10px;
  border:1px dashed #59456d;
  background:rgba(9,7,14,.72);
  color:#d5cadf;
}
.file-tools input[type=file]::file-selector-button{
  margin-right:12px;
  padding:8px 12px;
  border:1px solid #49365e;
  border-radius:8px;
  background:#21172d;
  color:#e6d8f7;
  font:inherit;
  font-weight:600;
  cursor:pointer;
}
.file-tools .key-action{margin-top:14px}
.file-tools .key-action button{min-height:42px}
.right-column{gap:14px;align-content:start}
.outbox{padding:22px}
.outbox .panel-heading{margin-bottom:18px}
.outbox .panel-heading p{font-size:.8rem}
.oh{
  margin-bottom:10px;
  color:#c9bdd5;
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.09em;
}
.oh button,.output-actions button{
  min-height:36px;
  padding:7px 11px;
  border-radius:8px;
  background:#1a1323;
  color:#d1b8f7;
}
.otext{
  min-height:230px;
  max-height:55vh;
  padding:16px;
  border-color:#332740;
  border-radius:10px;
  background:linear-gradient(145deg,#0a0710,#0d0913);
  color:#e9dcfb;
  font-size:.9rem;
}
.info{
  padding:16px 18px;
  border-color:rgba(192,154,255,.2);
  border-radius:12px;
  background:rgba(31,22,43,.78);
  color:#dbcaf0;
  font-size:.8rem;
  line-height:1.65;
}
.info.warn{
  border-color:#735b36;
  background:#2a2419;
  color:#f1d299;
}
.privacy-note{
  display:grid;
  gap:10px;
  padding:17px 18px;
  border-color:rgba(192,154,255,.13);
  border-radius:12px;
  background:rgba(12,9,18,.82);
  color:#b7abc8;
  font-size:.77rem;
  line-height:1.65;
}
.privacy-note strong{color:#e6d9f4}
.narr{
  border-color:rgba(192,154,255,.13);
  border-radius:10px;
  background:rgba(12,9,18,.6);
  color:#b7abc8;
}
.narr b{color:#e3d6f1}
.narr.active i{color:#d3b8ff}
.footer{
  margin-top:24px;
  padding-top:18px;
  border-color:rgba(192,154,255,.14);
  color:#b2a6c0;
}
.lock-panel{
  border-color:rgba(192,154,255,.23);
  background:linear-gradient(150deg,#171020,#0e0a14);
}
.lock-panel button{
  border-color:#a77ae8;
  background:linear-gradient(135deg,#7348aa,#573285);
}
@media(min-width:1100px){
  .right-column{position:sticky;top:24px}
}
@media(max-width:820px){
  .card{width:min(100% - 28px,720px);margin:14px auto;padding:22px}
  .workspace{grid-template-columns:minmax(0,1fr);gap:16px}
  .right-column{grid-row:auto}
}
@media(max-width:520px){
  .card{width:100%;margin:0;padding:18px 14px 22px;border:0;border-radius:0}
  .top{gap:10px}
  .brandmark{width:40px;height:40px}
  h1{font-size:1.12rem}
  h1 span{margin:5px 0 0;display:table}
  .tools{width:100%;padding-left:0;margin-left:0}
  .tools button{flex:1;padding-inline:7px;font-size:.7rem}
  .tools select{flex:1;min-width:0}
  .panel{padding:19px 16px}
  .outbox{padding:18px 16px}
  .actions{grid-template-columns:1fr 1fr}
  .actions .clr{grid-column:1/-1}
  .output-actions{gap:6px}
  .output-actions button{padding-inline:8px;font-size:.7rem}
  .otext{min-height:170px;max-height:42vh}
  .file-tools .key-action button{flex:1}
}
@media(prefers-reduced-motion:reduce){
  button,textarea,input,select{transition:none}
}

/* Enterprise workspace theme */
:root{
  color-scheme:dark;
  --page:#0b0811;
  --panel:#151020;
  --panel-soft:#100c18;
  --line:#39264d;
  --text:#f4effb;
  --muted:#b7abc8;
  --accent:#b58af5;
  --accent-strong:#914cf2;
  --danger:#ffaaa9;
  --warning:#f1ce83;
}
html,body{background:var(--page);color:var(--text)}
body{isolation:isolate}
body::before{
  background:
    radial-gradient(ellipse at 8% 0%,rgba(145,76,242,.17),transparent 38rem),
    radial-gradient(ellipse at 94% 12%,rgba(103,43,192,.14),transparent 36rem),
    linear-gradient(180deg,#110c19 0%,var(--page) 46rem);
}
:focus-visible{outline-color:#c19aff;outline-offset:3px}
.card{
  width:min(100% - 48px,1440px);
  max-width:1440px;
  margin:24px auto;
  padding:30px;
  border:1px solid rgba(193,154,255,.16);
  border-radius:22px;
  background:linear-gradient(145deg,rgba(24,17,35,.98),rgba(15,11,23,.99));
  box-shadow:0 30px 90px rgba(0,0,0,.34),0 1px 0 rgba(255,255,255,.035) inset;
}
.top{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  align-items:center;
  gap:14px;
  margin-bottom:22px;
  padding-bottom:22px;
  border-color:rgba(193,154,255,.14);
}
.brandmark{
  width:48px;
  height:48px;
  padding:5px;
  border:1px solid rgba(193,154,255,.22);
  border-radius:15px;
  background:linear-gradient(145deg,#171020,#0b0811);
  box-shadow:0 8px 24px rgba(0,0,0,.25);
}
h1{font-size:clamp(1.15rem,2vw,1.48rem);letter-spacing:-.04em}
h1 span{
  margin-left:9px;
  padding:5px 8px;
  border-color:rgba(193,154,255,.25);
  border-radius:6px;
  background:rgba(193,154,255,.07);
  color:#d7c3fa;
  font-size:.59rem;
  letter-spacing:.11em;
}
.light{
  width:9px;
  height:9px;
  background:#78658d;
  box-shadow:0 0 0 4px rgba(181,138,245,.12);
}
.light.active{
  background:#c19aff;
  box-shadow:0 0 0 4px rgba(193,154,255,.14),0 0 18px rgba(145,76,242,.38);
}
.tools{gap:9px}
.tools select,.tools button{
  min-height:40px;
  border-color:var(--line);
  border-radius:9px;
  background:#100c18;
  color:#d0c2e0;
  font-size:.76rem;
}
.tools select{min-width:158px;padding-inline:11px}
.tools button{padding-inline:13px}
.tools button[aria-pressed="true"]{
  border-color:rgba(193,154,255,.48);
  background:rgba(145,76,242,.13);
  color:#d7c3fa;
}
.audio-status{margin:0 0 12px;color:var(--muted);font-size:.8rem}
.audio-status.error{color:var(--danger)}
.sub{
  max-width:none;
  margin:0 0 26px;
  color:#c0b5ce;
  font-size:.95rem;
  line-height:1.65;
}
.sub::before{
  display:block;
  margin-bottom:7px;
  color:#c19aff;
  content:"PRIVATE-BY-DESIGN WORKSPACE";
  font-size:.64rem;
  font-weight:750;
  letter-spacing:.16em;
}
.sub strong{color:#e6f2fa;font-weight:620}
.workspace{
  grid-template-columns:minmax(0,1.12fr) minmax(330px,.88fr);
  gap:22px;
}
.panel,.outbox{
  border:1px solid rgba(193,154,255,.15);
  border-radius:16px;
  background:linear-gradient(155deg,rgba(24,17,35,.98),rgba(17,12,25,.98));
  box-shadow:0 14px 38px rgba(0,0,0,.16),0 1px 0 rgba(255,255,255,.025) inset;
}
.panel{padding:28px}
.outbox{padding:24px}
.panel-heading{margin-bottom:24px}
.panel-heading h2{font-size:1.12rem;letter-spacing:-.03em}
.panel-heading p{color:#b7abc8;font-size:.84rem}
.step{
  width:34px;
  height:34px;
  border-color:rgba(193,154,255,.22);
  border-radius:10px;
  background:rgba(145,76,242,.11);
  color:#d0b4ff;
}
.field{margin-bottom:21px}
label{color:#dce7f2;font-size:.82rem;font-weight:650}
textarea,input,select{
  border-color:#382b47;
  border-radius:10px;
  background:#0b0811;
  color:var(--text);
  caret-color:var(--accent);
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
textarea{min-height:190px}
select{min-height:46px}
textarea::placeholder,input::placeholder{color:#998da8}
textarea:focus,input:focus,select:focus{
  border-color:#a775f4;
  background:#100c18;
  box-shadow:0 0 0 3px rgba(167,117,244,.16);
}
.field-hint{color:#b7abc8;font-size:.76rem;line-height:1.6}
.fingerprint code{color:#e5d8fb}
.row{gap:9px}
.sq{min-width:76px}
button{
  border-color:#382b47;
  border-radius:9px;
  background:#191220;
  color:#e5eef8;
  transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease;
}
button:hover:not(:disabled){
  transform:translateY(-1px);
  border-color:#7956a7;
  background:#21172d;
  box-shadow:0 8px 20px rgba(0,0,0,.19);
}
button:active:not(:disabled){transform:translateY(0)}
button:disabled{border-color:#51455f;background:#171320;color:#a79bb8}
.actions{gap:10px;margin-top:23px}
.actions button{min-height:48px;border-radius:10px;font-size:.87rem}
.actions #encB{
  border-color:#bd96f5;
  background:linear-gradient(135deg,#9455dc,#672bc0);
  color:#fff;
  box-shadow:0 8px 22px rgba(103,43,192,.24),0 1px 0 rgba(255,255,255,.15) inset;
}
.actions #encB:hover:not(:disabled){
  border-color:#d3b8ff;
  background:linear-gradient(135deg,#a56ce8,#7840ce);
}
.actions #decB{border-color:#554169;background:#1b1424}
.actions .clr{padding-inline:17px;border-color:var(--line);color:#b7abc8}
.right-column{gap:14px;align-content:start}
.outbox .panel-heading{margin-bottom:19px}
.oh{
  margin-bottom:11px;
  color:#c9bdd5;
  font-size:.72rem;
  font-weight:750;
  letter-spacing:.12em;
}
.oh button,.output-actions button{
  min-height:36px;
  padding:7px 11px;
  border-color:#49365e;
  border-radius:8px;
  background:#21172d;
  color:#d1b8f7;
  font-size:.74rem;
}
.oh button:disabled,.output-actions button:disabled{
  border-color:#51455f;
  background:#171320;
  color:#a79bb8;
}
.otext{
  min-height:220px;
  max-height:55vh;
  padding:16px;
  border-color:#332740;
  border-radius:10px;
  background:linear-gradient(145deg,#0a0710,#0d0913);
  color:#e9dcfb;
  font-size:.88rem;
  line-height:1.72;
}
.otext.err{color:var(--danger)}
.migration p{color:#ddc8f8;font-size:.8rem}
.migration button{
  border-color:#7956a7;
  background:#241832;
  color:#e5d2ff;
}
.info{
  padding:16px 18px;
  border-color:rgba(193,154,255,.2);
  border-radius:12px;
  background:rgba(31,22,43,.78);
  color:#dbcaf0;
  font-size:.79rem;
  line-height:1.68;
}
.info.warn{
  border-color:rgba(241,206,131,.35);
  background:rgba(65,51,25,.42);
  color:#f1d99f;
}
.privacy-note{
  display:block;
  padding:17px 18px;
  border-color:rgba(193,154,255,.13);
  border-radius:12px;
  background:rgba(12,9,18,.82);
  color:#b7abc8;
  font-size:.77rem;
  line-height:1.7;
}
.privacy-note strong{color:#e6d9f4}
.narr{
  gap:8px;
  border-color:rgba(193,154,255,.13);
  border-radius:10px;
  background:rgba(12,9,18,.68);
  color:#b7abc8;
}
.narr b{color:#e3d6f1}
.narr.active i{color:#d3b8ff}
.footer{
  margin-top:24px;
  padding-top:18px;
  border-color:rgba(193,154,255,.14);
  color:#b2a6c0;
}
.file-tools,.hash-tools{border-color:rgba(193,154,255,.14)}
.file-tools input[type=file]{
  border-color:#59456d;
  background:rgba(9,7,14,.72);
  color:#d5cadf;
}
.file-tools input[type=file]::file-selector-button{
  border-color:#49365e;
  background:#21172d;
  color:#e6d8f7;
}
.hash-dropzone{
  min-height:160px;
  border:1px dashed rgba(177,133,241,.65);
  border-radius:13px;
  background:linear-gradient(145deg,rgba(103,43,192,.16),rgba(68,36,108,.22));
}
.hash-dropzone:hover,.hash-dropzone.dragging{
  border-color:#c19aff;
  background:linear-gradient(145deg,rgba(103,43,192,.24),rgba(89,49,139,.28));
  box-shadow:0 0 0 4px rgba(173,131,245,.1);
}
.hash-drop-text{color:#e2d2ff;font-size:clamp(1.25rem,2.2vw,2rem);letter-spacing:-.035em}
.hash-drop-text span{margin-top:8px;color:#c6a8ff;font-size:.95rem}
.hash-picker-row{gap:12px}
.hash-choose{
  min-height:40px;
  padding:0 15px;
  border-color:#49365e;
  border-radius:8px;
  background:#21172d;
  color:#dceaf5;
  font-size:.8rem;
}
.hash-choose:hover{background:#2a1d3b}
.hash-selected{color:#b7abc8;font-size:.82rem;overflow-wrap:anywhere}
.hash-algorithms{gap:9px 16px;padding:17px 0 6px}
.hash-algorithms label{
  gap:8px;
  margin:0;
  color:#dfe7ee;
  font-size:.8rem;
}
.hash-algorithms input{width:16px;height:16px;accent-color:var(--accent-strong)}
.hash-output{
  padding:13px 15px;
  border-color:#2a2036;
  border-radius:10px;
  background:#0c0912;
}
.hash-file-result{border-color:rgba(74,63,86,.8)}
.hash-file-result h3{color:#e4d7ff}
.hash-value-row{border-color:rgba(74,63,86,.8);border-radius:8px;background:#0d0913}
.hash-value-row span{color:#b7abc8}
.hash-value-row code{color:#d9dcff}
.hash-message{color:#b7abc8}
.hash-message.error{color:var(--danger)}
.lock-screen{background:rgba(5,3,8,.91);backdrop-filter:blur(16px)}
.lock-panel{
  border-color:rgba(192,154,255,.23);
  border-radius:18px;
  background:linear-gradient(150deg,#171020,#0e0a14);
  box-shadow:0 28px 90px rgba(0,0,0,.5);
}
.lock-mark{border-radius:14px}
.lock-eyebrow{color:#c09aff}
.lock-panel p:not(.lock-eyebrow){color:#b7abc8}
.lock-panel button{
  min-height:46px;
  border-color:#a77ae8;
  background:linear-gradient(135deg,#7348aa,#573285);
  color:#fff;
}
.lock-panel button:hover{background:linear-gradient(135deg,#8156ba,#654092)}
.lock-panel .lock-disclaimer{color:#998da8!important}
@media(min-width:1100px){
  .right-column{position:sticky;top:22px}
}
@media(max-width:900px){
  .card{width:min(100% - 32px,760px);margin:16px auto;padding:23px}
  .top{grid-template-columns:auto minmax(0,1fr) auto}
  .tools{grid-column:1/-1;justify-content:flex-end}
  .workspace{grid-template-columns:minmax(0,1fr);gap:16px}
  .right-column{position:static;grid-row:auto}
}
@media(max-width:560px){
  .card{width:100%;margin:0;padding:18px 14px 24px;border:0;border-radius:0}
  .top{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;margin-bottom:18px;padding-bottom:17px}
  .brandmark{width:40px;height:40px;border-radius:12px}
  h1{font-size:1.08rem}
  h1 span{display:table;margin:5px 0 0;font-size:.55rem}
  .light{width:8px;height:8px}
  .tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;gap:8px}
  .tools select,.tools button{width:100%;min-width:0;min-height:42px;font-size:.72rem}
  .sub{margin-bottom:19px;font-size:.87rem}
  .panel{padding:20px 16px}
  .outbox{padding:19px 16px}
  .panel-heading{margin-bottom:20px}
  .actions{grid-template-columns:1fr 1fr;gap:8px}
  .actions button{padding:9px 8px;font-size:.78rem}
  .actions .clr{grid-column:1/-1}
  .output-actions{gap:6px}
  .output-actions button{padding-inline:8px;font-size:.69rem}
  .oh{align-items:flex-start;font-size:.67rem}
  .otext{min-height:175px;max-height:44vh;font-size:.83rem}
  .hash-picker-row{align-items:flex-start;flex-direction:column}
  .hash-picker-row #exportHashResults{margin-left:0}
  .hash-algorithms{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .passphrase-actions{grid-template-columns:1fr}
  .hash-value-row{align-items:flex-start;flex-direction:column;gap:8px}
  .hash-digest-actions{width:100%;justify-content:space-between}
  .file-tools .key-action button{flex:1}
  .privacy-note{font-size:.75rem}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}
