:root{--gold: #c8982a;--gold-d: #a87d1f;--gold-soft: #c9ac8c;--navy: #011627;--bg: #faf8f4;--card: #ffffff;--text: #555555;--muted: #9a958c;--border: #e8e3d8;--error: #c0392b;--ok: #2e7d52}*{box-sizing:border-box}body{margin:0;font-family:Lato,system-ui,-apple-system,Segoe UI,sans-serif;font-weight:400;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.center{min-height:100vh;display:grid;place-items:center;padding:1rem}.muted{color:var(--muted)}.app{max-width:720px;margin:0 auto;padding:1rem}header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 0 1.4rem}.brand{display:flex;align-items:center;gap:.85rem}.brand img{width:52px;height:52px}.brand .titles{line-height:1.15}.brand .t1{font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.14em;font-size:.95rem}.brand .t2{color:var(--gold);text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;font-weight:700}.card{background:var(--card);border:1px solid var(--border);border-radius:6px;padding:1.4rem;margin-bottom:1.1rem;box-shadow:0 1px 2px #0116270a}.card h2{margin:0 0 1rem;font-size:.85rem;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.14em}.login{width:min(380px,100%);text-align:center;padding:2.2rem 1.8rem}.login .logo{width:110px;height:110px;margin:0 auto .8rem;display:block}.login h1{font-size:1rem;margin:0 0 .15rem;color:var(--navy);text-transform:uppercase;letter-spacing:.14em;font-weight:700}.login p{margin:.1rem 0 1rem;font-size:.9rem}input[type=text],input[type=password],input:not([type]){width:100%;padding:.7rem .85rem;margin:.4rem 0;border:1px solid var(--border);border-radius:4px;font-size:1rem;font-family:inherit;color:var(--navy);background:#fff}input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #c8982a26}button{cursor:pointer;border:none;border-radius:4px;padding:.72rem 1.1rem;font-size:.8rem;font-weight:700;font-family:inherit;text-transform:uppercase;letter-spacing:.1em;background:var(--gold);color:#fff;transition:background .15s}button:hover:not(:disabled){background:var(--gold-d)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{width:100%;margin-top:1rem}button.link{background:none;color:var(--gold);padding:.25rem .35rem;text-transform:none;letter-spacing:normal;font-weight:700;font-size:.9rem}button.link:hover{background:#c8982a14}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:.6rem}.breadcrumb .sep{color:var(--gold-soft);margin:0 .15rem}.folders{list-style:none;padding:0;margin:.5rem 0;max-height:280px;overflow:auto}.folders li{margin:3px 0}button.folder{width:100%;text-align:left;background:#fbfaf7;color:var(--navy);border:1px solid var(--border);font-weight:400;text-transform:none;letter-spacing:normal;font-size:.95rem;padding:.6rem .8rem}button.folder:hover{background:#f5f1e8;border-color:var(--gold-soft)}.newfolder{display:flex;gap:.5rem;margin-top:.6rem}.newfolder input{margin:0}.newfolder button{white-space:nowrap}.dropzone{display:grid;place-items:center;text-align:center;border:2px dashed var(--border);border-radius:6px;padding:1.9rem 1rem;color:var(--muted);cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover{border-color:var(--gold);background:#fdfbf6}.filelist{list-style:none;padding:0;margin:.85rem 0;font-size:.9rem}.filelist li{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;border-bottom:1px solid var(--border);color:var(--navy)}.filelist .fname{flex:1;word-break:break-all}button.remove{flex:none;width:26px;height:26px;padding:0;display:grid;place-items:center;line-height:1;font-size:1.2rem;background:#fbfaf7;color:var(--muted);border:1px solid var(--border)}button.remove:hover:not(:disabled){background:#fbecea;color:var(--error);border-color:#e6b3ad}.hint{font-size:.8rem;margin:.55rem 0 0;line-height:1.45}.progress{background:var(--border);border-radius:4px;overflow:hidden;margin-top:.9rem;height:22px}.progress>div{background:var(--gold);color:#fff;height:100%;display:grid;place-items:center;font-size:.8rem;transition:width .2s}.progress.indeterminate{position:relative}.progress.indeterminate>div{position:absolute;width:40%;left:0;background:linear-gradient(90deg,transparent,var(--gold),transparent);animation:indet 1.1s ease-in-out infinite}@keyframes indet{0%{left:-40%}to{left:100%}}.processing-hint{font-size:.85rem;margin:.5rem 0 0}.eta-hint{font-size:.85rem;margin:.4rem 0 0}.error{color:var(--error);background:#fbecea;padding:.65rem .85rem;border-radius:4px;margin-top:.6rem;font-size:.9rem}.success{color:var(--ok);background:#ecf6f0;padding:.65rem .85rem;border-radius:4px;margin-top:.9rem;font-size:.9rem}.warn{background:#fdf6e6;border:1px solid #f0dca8;padding:.8rem 1rem;border-radius:4px;margin-bottom:1rem;color:#8a6d1f;font-size:.9rem}.donelist{margin:.45rem 0 0;padding-left:1.1rem;font-size:.88rem}.donelist li{padding:.12rem 0}
