@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Nunito:wght@500;600;700;800&display=swap');
:root{--bg:#f7f6f1;--paper:#fffefa;--line:#e5e2d9;--text:#282b25;--muted:#77796f;--green:#557a50;--green-light:#edf4e9;--red:#a83f36;--red-light:#fff0ee;--radius:15px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;min-height:100vh}button,input{font:inherit}.shell{max-width:1100px;padding:0 28px;margin:0 auto}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-family:'Nunito',sans-serif;font-size:17px;font-weight:800}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#dce9d4;color:#42643d;font-size:19px}.brand-muted{color:var(--muted);font-weight:600}.top-actions{display:flex;align-items:center;gap:18px}.session-label{font-size:12px;color:var(--muted)}.status-dot{display:inline-block;width:7px;height:7px;background:#65905c;border-radius:50%;margin-right:6px}.logout{padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--text);font-size:12px;cursor:pointer}.logout:hover{background:#f0efe8}.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;padding:38px 0 27px}.eyebrow{margin:0 0 8px;color:var(--green);font-size:11px;font-weight:700;letter-spacing:.08em}.intro h1,.login-card h1{font:800 clamp(29px,4vw,39px)/1.15 'Nunito',sans-serif;letter-spacing:-.7px;margin:0}.intro-text{color:var(--muted);font-size:14px;line-height:1.65;max-width:560px;margin:10px 0 0}.intro-note{display:flex;gap:10px;align-items:flex-start;max-width:340px;padding:13px 15px;background:#f0efe8;border-radius:12px}.note-icon{display:grid;place-items:center;flex:none;width:20px;height:20px;border-radius:50%;background:#dfe7d8;color:var(--green);font-weight:700;font-size:12px}.intro-note p{margin:0;color:#66685e;font-size:11px;line-height:1.6}.workspace-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:18px;align-items:start}.panel{min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:23px;box-shadow:0 2px 6px #302a1606}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.panel-heading>div{display:flex;align-items:center;gap:10px}.step-label{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:var(--green-light);color:var(--green);font-size:11px;font-weight:700}.panel h2{font:800 18px 'Nunito',sans-serif;margin:0}.small-label{font-size:10px;color:var(--muted)}.dropzone{min-height:205px;border:1.5px dashed #d5d5c9;border-radius:12px;background:#fbfaf5;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;cursor:pointer;text-align:center;padding:22px 15px;position:relative;transition:background .15s,border-color .15s}.dropzone:hover,.dropzone.dragover{border-color:#8ba783;background:#f5f8f1}.dropzone input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.upload-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#e7efe1;color:var(--green);font-size:25px;font-weight:500}.dropzone strong{font-size:13px}.dropzone>span:not(.upload-icon){color:var(--muted);font-size:11px}.dropzone .file-types{margin-top:6px;color:#929387;font-size:9px;letter-spacing:.03em}.upload-meta{display:grid;grid-template-columns:1fr auto;gap:10px;padding:15px 1px 17px;font-size:11px;color:var(--muted)}.upload-meta b{font-weight:600;color:var(--text)}.primary{min-height:43px;border:0;border-radius:9px;background:var(--green);color:white;display:flex;align-items:center;justify-content:center;padding:0 16px;font-size:12px;font-weight:700;text-decoration:none;cursor:pointer;transition:background .15s}.primary:hover{background:#456740}.primary:disabled{opacity:.55;cursor:wait}.full{width:100%}.form-error{color:var(--red);font-size:12px;line-height:1.5;min-height:0;margin:9px 0 0}.empty-state{text-align:center;padding:44px 15px 38px}.empty-icon{display:grid;place-items:center;margin:0 auto 12px;width:42px;height:42px;border-radius:13px;background:#f0efe8;color:#8b8d81;font-size:25px}.empty-state h3{font:800 15px 'Nunito',sans-serif;margin:0 0 6px}.empty-state p{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.jobs-list{display:grid;gap:12px}.job-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.job-file{display:flex;align-items:center;gap:10px;min-width:0}.audio-file-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:10px;background:#f0efe8;color:var(--green);font-size:17px}.file-detail{flex:1;min-width:0}.file-detail b{display:block;font-size:12px;overflow-wrap:anywhere}.file-detail span{display:block;margin-top:4px;color:var(--muted);font-size:10px;overflow-wrap:anywhere}.job-badge{flex:none;border-radius:6px;padding:5px 7px;background:#f1f0e9;color:#77796f;font-size:9px;font-weight:700}.job-badge[data-status="completed"]{background:var(--green-light);color:var(--green)}.job-badge[data-status="failed"]{background:var(--red-light);color:var(--red)}.progress-copy{display:flex;justify-content:space-between;gap:10px;margin:16px 0 7px;color:var(--muted);font-size:10px}.progress-copy b{color:var(--green);font-size:10px}.progress-track{height:5px;background:#eeede6;border-radius:9px;overflow:hidden}.job-progress{height:100%;width:0;background:#86a77b;border-radius:9px;transition:width .3s}.success-box{display:flex;gap:9px;align-items:center;margin-top:12px;padding:10px;background:#f3f7f0;border-radius:9px}.success-check{display:grid;place-items:center;flex:none;width:23px;height:23px;border-radius:50%;background:#dce9d4;color:#42643d;font-weight:700}.success-box b{font-size:11px}.success-box p{font-size:10px;color:var(--muted);margin:3px 0 0}.download-button{margin-top:10px}.job-actions{display:flex;gap:8px;margin-top:10px}.job-actions .download-button{margin:0;flex:1}.delete-button{padding:0 12px;border:1px solid #e6d5d2;border-radius:9px;background:#fff;color:#9d4840;font-size:11px;cursor:pointer}.delete-button:hover{background:var(--red-light)}.delete-button:disabled{opacity:.5;cursor:wait}.error-banner{margin-top:10px;padding:10px;border-radius:8px;background:var(--red-light);color:var(--red);font-size:11px;line-height:1.5}.hidden{display:none!important}.main-footer{display:flex;justify-content:space-between;gap:12px;padding:23px 0 30px;color:#898a80;font-size:10px}.login-layout{max-width:410px;min-height:100vh;margin:0 auto;display:flex;flex-direction:column;justify-content:center;padding:30px 0}.login-layout>.brand{margin-bottom:25px}.login-card{padding:28px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}.login-card h1{margin-bottom:8px}.muted{font-size:13px;color:var(--muted);line-height:1.65;margin:0 0 22px}.login-form{display:flex;flex-direction:column;gap:8px}.login-form label{font-size:11px;font-weight:700;margin-top:7px}.login-form input:not([type=hidden]){height:42px;border:1px solid #deddd3;border-radius:8px;background:#fff;padding:0 12px;font-size:12px;outline:none}.login-form input:focus{border-color:#8ba783;box-shadow:0 0 0 3px #e7efe1}.login-form button{margin-top:12px}.login-foot{text-align:center;color:var(--muted);font-size:11px;margin-top:18px}.error-banner{background:var(--red-light);color:var(--red)}
@media(max-width:760px){.shell{padding:0 18px}.intro{display:block;padding:30px 0 22px}.intro-note{margin-top:18px;max-width:none}.workspace-grid{grid-template-columns:1fr}.panel{padding:19px}.topbar{height:68px}.session-label{display:none}.main-footer{line-height:1.5}}
@media(max-width:420px){.shell{padding:0 12px}.brand{font-size:15px}.intro h1{font-size:30px}.panel{padding:15px}.job-actions{flex-direction:column}.delete-button{min-height:38px}.main-footer{flex-direction:column;gap:5px}}
