:root{--bg: #f4f7fd;--surface: rgba(255, 255, 255, .78);--surface-solid: #ffffff;--surface-2: rgba(240, 243, 248, .75);--border: rgba(219, 226, 239, .9);--border-soft: rgba(219, 226, 239, .5);--text: #0f1729;--text-dim: #5b6478;--accent: #2563eb;--accent-strong: #1d4ed8;--success: #0f9d6e;--warn: #b45309;--danger: #c1243a;--radius: 14px;--shadow: 0 1px 0 rgba(255, 255, 255, .9) inset, 0 1px 2px rgba(15, 23, 41, .04), 0 8px 28px rgba(15, 23, 41, .07);--shadow-sm: 0 1px 0 rgba(255, 255, 255, .8) inset, 0 1px 2px rgba(15, 23, 41, .04), 0 3px 12px rgba(15, 23, 41, .05);--blur: blur(14px) saturate(160%);--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:radial-gradient(520px 440px at 12% -5%,rgba(123,159,255,.5) 0%,transparent 62%),radial-gradient(620px 520px at 92% 20%,rgba(182,145,255,.32) 0%,transparent 65%),radial-gradient(560px 460px at 80% 95%,rgba(102,214,181,.3) 0%,transparent 62%),radial-gradient(520px 400px at 20% 85%,rgba(255,194,152,.22) 0%,transparent 65%),var(--bg);background-attachment:fixed;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,sans-serif;font-size:15px;line-height:1.55;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer;border:1px solid var(--border);border-radius:8px;padding:10px 16px;background:var(--surface-solid);color:var(--text);box-shadow:0 1px #fffc inset,0 1px 2px #0f17290a;transition:background .12s ease,border-color .12s ease,transform 60ms ease}button:hover:not(:disabled){background:#fafbfd;border-color:#c7d0e1}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent-strong);color:#fff;border-color:var(--accent-strong)}button.primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}button.success{background:var(--success);color:#fff;border-color:var(--success)}button.success:hover:not(:disabled){background:#0c8a60;border-color:#0c8a60}button.warn{background:var(--warn);color:#fff;border-color:var(--warn)}button.warn:hover:not(:disabled){background:#9a4508;border-color:#9a4508}input[type=text],input[type=datetime-local]{font:inherit;background:var(--surface-solid);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;width:100%;box-shadow:0 1px 2px #0f17290a inset}input:focus{outline:2px solid var(--accent);outline-offset:1px}.container{max-width:820px;margin:0 auto;padding:24px 18px 56px}.card{background:var(--surface);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}.tabs{display:flex;gap:4px;padding:4px;margin-bottom:20px;background:#ffffff8c;backdrop-filter:blur(10px) saturate(150%);-webkit-backdrop-filter:blur(10px) saturate(150%);border:1px solid var(--border-soft);border-radius:12px;box-shadow:var(--shadow-sm);width:fit-content}.tabs button{background:transparent;border:1px solid transparent;border-radius:8px;padding:8px 14px;color:var(--text-dim);transition:background .12s ease,color .12s ease}.tabs button:hover:not(.active){background:#2563eb0f;color:var(--text);border-color:transparent}.tabs button.active{color:var(--accent-strong);background:var(--surface-solid);border-color:var(--border);box-shadow:0 1px #ffffffe6 inset,0 1px 3px #0f17290f}.dropzone{border:2px dashed rgba(91,100,120,.35);border-radius:12px;padding:40px 20px;text-align:center;color:var(--text-dim);background:#fff6;backdrop-filter:blur(8px) saturate(140%);-webkit-backdrop-filter:blur(8px) saturate(140%);transition:border-color .12s ease,background .12s ease;cursor:pointer}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:#2563eb14;color:var(--text)}.dropzone.amber:hover,.dropzone.amber.drag{border-color:var(--warn);background:#b4530914}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.col{display:flex;flex-direction:column;gap:12px}.mono{font-family:var(--mono);font-size:13px}.dim{color:var(--text-dim)}.small{font-size:13px}.step{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-bottom:1px solid var(--border-soft)}.step:first-child{padding-top:4px}.step:last-child{border-bottom:none;padding-bottom:4px}.step h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600;display:flex;align-items:center;gap:8px}.step-pill{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);font-size:11px;font-weight:700;color:var(--text-dim);flex-shrink:0;line-height:1}.policy{display:flex;gap:8px;flex-wrap:wrap}.policy button{flex:1 1 120px;background:var(--surface-solid);border:1px solid var(--border)}.policy button.active{border-color:var(--accent);background:#2563eb14;color:var(--accent-strong);box-shadow:0 1px #fffc inset,0 0 0 1px #2563eb26}.badge{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border)}.badge.warn{background:#b4530914;border-color:var(--warn);color:var(--warn)}.badge.ok{background:#0f9d6e14;border-color:var(--success);color:var(--success)}.countdown{font-family:var(--mono);font-size:17px;color:var(--accent-strong);animation:pulse 2.4s ease-in-out infinite;letter-spacing:.02em}@keyframes pulse{0%,to{text-shadow:0 0 0 rgba(37,99,235,0)}50%{text-shadow:0 0 14px rgba(37,99,235,.35)}}.alert{border-radius:8px;padding:10px 12px;font-size:14px;border:1px solid}.alert.ok{background:#0f9d6e0f;border-color:var(--success);color:#0c6b4c}.alert.warn{background:#b453090f;border-color:var(--warn);color:#7f3c06}.alert.error{background:#c1243a0f;border-color:var(--danger);color:#8a1a2a}.footer{margin-top:48px;padding-top:20px;border-top:1px solid var(--border);color:var(--text-dim);font-size:13px;text-align:center}.header{display:flex;align-items:center;gap:10px;margin-bottom:20px}.header h1{margin:0;font-size:18px;letter-spacing:.01em}.logo{width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,var(--accent) 0%,#8e7cff 100%);display:grid;place-items:center;color:#fff;font-weight:700;font-size:14px}.queue-card{background:#ffffffb8;backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-top:8px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-sm);font-size:14px}.queue-card .qc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.queue-card .qc-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.queue-card .qc-actions{display:flex;gap:2px;flex-shrink:0}.queue-card.ready{border-color:var(--accent);box-shadow:var(--shadow-sm),0 0 0 1px #2563eb26}.queue-card.done{border-color:var(--success)}.queue-card.error{border-color:var(--danger)}.queue-card.waiting-manual{border-color:var(--warn)}.icon-btn{background:transparent;border:1px solid transparent;border-radius:6px;width:28px;height:28px;padding:0;display:grid;place-items:center;color:var(--text-dim);box-shadow:none;cursor:pointer;transition:background .1s ease,color .1s ease}.icon-btn:hover:not(:disabled){background:#0f17290f;color:var(--text);border-color:transparent}.icon-btn svg{width:16px;height:16px;display:block}.file-chip{display:flex;align-items:center;gap:12px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:#ffffff8c;backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);box-shadow:var(--shadow-sm);transition:background .12s ease,border-color .12s ease,transform 60ms ease;cursor:grab;user-select:none}.file-chip:hover{background:#fffc}.file-chip:active{cursor:grabbing;transform:translateY(0)}.file-chip.dragging{opacity:.5}.file-chip.tlck,.file-chip.decrypted{border-color:#0f9d6e73}.file-chip.key{border-color:#b4530973}.file-chip-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:7px;flex-shrink:0}.file-chip-icon svg{width:16px;height:16px}.file-chip.tlck .file-chip-icon,.file-chip.decrypted .file-chip-icon{background:#0f9d6e1f;color:var(--success)}.file-chip.key .file-chip-icon{background:#b453091f;color:var(--warn)}.file-chip-body{flex:1 1 auto;min-width:0}.file-chip-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-chip-meta{font-size:12px;color:var(--text-dim);margin-top:1px}.file-chip-actions{display:flex;gap:2px;flex-shrink:0}.spin{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px;margin-right:6px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.encrypt-result{animation:fadeSlideIn .4s ease-out both}.encrypt-result>*+*{margin-top:12px}.encrypt-anim{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px 20px;animation:fadeSlideIn .25s ease-out both}.encrypt-anim-dots{display:flex;gap:6px}.encrypt-anim-dots span{width:8px;height:8px;border-radius:50%;background:var(--accent);opacity:.25;animation:dotPulse 1.2s ease-in-out infinite}.encrypt-anim-dots span:nth-child(2){animation-delay:.15s}.encrypt-anim-dots span:nth-child(3){animation-delay:.3s}@keyframes dotPulse{0%,80%,to{opacity:.25;transform:scale(1)}40%{opacity:1;transform:scale(1.3)}}
