:root{--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--bg-1: #f8fafc;--bg-2: #eef1f6;--surface: #ffffff;--border: #e7eaf0;--border-strong: #d6dbe4;--text: #0f172a;--text-muted: #64748b;--accent: #4f46e5;--accent-2: #6366f1;--accent-press: #4338ca;--accent-soft: rgba(79, 70, 229, .08);--accent-ring: rgba(79, 70, 229, .35);--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .08);--success: #16a34a;--r-lg: 18px;--r-md: 12px;--r-sm: 10px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 8px 24px rgba(15, 23, 42, .06), 0 2px 6px rgba(15, 23, 42, .04);--shadow-lg: 0 18px 50px rgba(15, 23, 42, .1), 0 4px 12px rgba(15, 23, 42, .05);font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;color:var(--text);background:radial-gradient(1100px 560px at 50% -12%,var(--accent-soft),transparent 60%),linear-gradient(180deg,var(--bg-1) 0%,var(--bg-2) 100%);background-attachment:fixed}.wrap{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.wrap.wide{align-items:flex-start;padding-top:clamp(32px,8vh,72px)}.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:clamp(28px,5vw,44px);box-shadow:var(--shadow-lg);max-width:440px;width:100%}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:clamp(22px,4vw,32px);box-shadow:var(--shadow-lg);max-width:700px;width:100%}.brand{display:inline-flex;align-items:center;gap:12px}.logo{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:var(--r-md);background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:700;font-size:15px;letter-spacing:.02em;box-shadow:0 6px 16px #4f46e547}.brand-text{display:flex;flex-direction:column;min-width:0;line-height:1.2}.brand-name{font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.brand-sub{margin-top:3px;overflow:hidden;text-overflow:ellipsis}h1{margin:22px 0 6px;font-size:clamp(22px,4vw,26px);font-weight:700;letter-spacing:-.02em}.muted{color:var(--text-muted);font-size:14px;line-height:1.55}.small{font-size:13px}.ok,.error{font-size:14px;line-height:1.5;border-radius:var(--r-sm);padding:10px 12px;margin:4px 0 0}.ok{color:var(--success);background:#16a34a14}.error{color:var(--danger);background:var(--danger-soft);word-break:break-word}.form{display:flex;flex-direction:column;gap:9px;margin-top:22px}.form label{font-size:13px;font-weight:500;color:var(--text-muted)}.form input{padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:15px;font-family:inherit;color:var(--text);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.form input::placeholder{color:#9aa3b2}.form input:read-only{background:#f6f7f9;color:var(--text-muted)}.form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.form button{margin-top:6px}.switch{margin-top:18px}button{cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;border-radius:var(--r-sm);border:1px solid transparent;padding:12px 18px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 2px 6px #4f46e538;transition:transform .12s ease,box-shadow .2s ease,background-color .15s ease,opacity .15s ease}button:hover{transform:translateY(-1px);box-shadow:0 8px 18px #4f46e54d}button:active{transform:translateY(0);box-shadow:0 2px 6px #4f46e538}button:disabled{opacity:.55;cursor:default;transform:none;box-shadow:none}button.ghost{background:#fff;color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}button.ghost:hover{background:#f8fafc;border-color:#c3cad6;box-shadow:var(--shadow-sm)}button.link{background:none;border:none;color:var(--accent);padding:6px 10px;font-size:14px;box-shadow:none}button.link:hover{background:var(--accent-soft);transform:none;box-shadow:none}button.link.danger{color:var(--danger)}button.link.danger:hover{background:var(--danger-soft)}:where(button,input,a):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--border)}.head-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.badge{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--accent);background:var(--accent-soft);border:1px solid rgba(79,70,229,.22);border-radius:999px;padding:5px 11px;white-space:nowrap}.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:22px 0 8px}.toolbar .count{margin-left:auto;font-size:13px;color:var(--text-muted);background:#f1f3f8;border:1px solid var(--border);border-radius:999px;padding:5px 12px;white-space:nowrap}.upload{position:relative;overflow:hidden;display:inline-flex;border-radius:var(--r-sm)}.upload input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.upload span{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-radius:var(--r-sm);padding:12px 18px;font-size:15px;font-weight:600;box-shadow:0 2px 6px #4f46e538;transition:transform .12s ease,box-shadow .2s ease}.upload:hover span{transform:translateY(-1px);box-shadow:0 8px 18px #4f46e54d}.icon{width:17px;height:17px;flex-shrink:0}.files{list-style:none;padding:0;margin:10px 0 0}.files li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 12px;border-radius:var(--r-md);border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease}.files li:hover{background:#f8fafc;border-color:var(--border)}.files li+li{margin-top:2px}.file-info{display:flex;flex-direction:column;min-width:0;gap:2px}.fname{font-size:15px;font-weight:500;color:var(--text);word-break:break-all}.fmeta{color:var(--text-muted)}.actions{display:flex;gap:4px;flex-shrink:0}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:44px 20px;margin-top:10px;border:1px dashed var(--border-strong);border-radius:var(--r-md);background:#fbfcfe}.empty .empty-icon{width:38px;height:38px;color:var(--accent);margin-bottom:6px}.empty p{margin:0}.empty .empty-title{font-size:15px;font-weight:600;color:var(--text)}@media (prefers-reduced-motion: reduce){*{transition:none!important}button:hover,.upload:hover span{transform:none}}@media (max-width: 480px){.panel-head{align-items:flex-start}.toolbar .count{margin-left:0}}
