:root{color-scheme:light;font-family:Space Grotesk,IBM Plex Sans,sans-serif;background:#f5f1eb;color:#1e1a16}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#fef3e0,#f5f1eb 55%,#efe9e1);min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:48px 32px 80px}.header{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;border-bottom:1px solid #d9cfc1;padding-bottom:28px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:12px;margin:0 0 8px;color:#7c5a3c}h1{margin:0 0 8px;font-size:40px;letter-spacing:-.02em}.subtext{margin:0;color:#5e4a39}.filters{display:flex;gap:12px;flex-wrap:wrap}.filters button{border:1px solid #d1c4b2;background:#fff8ef;padding:8px 16px;border-radius:999px;font-weight:600;cursor:pointer;transition:all .2s ease}.filters button.secondary{background:#f1e6d8;border-color:#c7b8a6}.filters button.active,.filters button:hover{background:#1e1a16;color:#fef3e0;border-color:#1e1a16}.main{padding-top:32px}.telegram-auth{background:#fff;border:1px solid #e4d7c6;border-radius:18px;padding:20px 24px;margin-bottom:28px;display:grid;gap:16px}.telegram-form{display:flex;gap:12px;flex-wrap:wrap}.telegram-form input{flex:1;min-width:220px;padding:10px 14px;border-radius:12px;border:1px solid #d1c4b2;background:#fff;font-size:14px}.telegram-form button{border:none;padding:10px 18px;border-radius:12px;font-weight:700;background:#2f49a6;color:#fff;cursor:pointer}.telegram-connected{display:inline-flex;align-items:center;gap:12px;padding:10px 14px;border-radius:999px;background:#e2f3ea;color:#2c6b4f;font-weight:600}.auth{min-height:100vh;display:grid;place-items:center;padding:40px 24px}.auth-card{width:min(460px,100%);background:#fff8ef;border-radius:20px;padding:32px;border:1px solid #e4d7c6;box-shadow:0 24px 60px #5a3c1e1f;display:grid;gap:16px}.auth-card form{display:grid;gap:12px}.auth-card input{padding:12px 14px;border-radius:12px;border:1px solid #d1c4b2}.auth-card button{border:none;padding:12px 16px;border-radius:12px;background:#1e1a16;color:#fef3e0;font-weight:700;cursor:pointer}.auth-card .link{background:transparent;color:#7c5a3c;border:none;cursor:pointer;text-align:left;padding:0}.channels{background:#fff8ef;border:1px solid #e4d7c6;border-radius:18px;padding:20px 24px;margin-bottom:28px;display:grid;gap:18px}.settings{background:#f7f1e8;border:1px solid #e0d4c3;border-radius:18px;padding:20px 24px;margin-bottom:28px;display:grid;gap:16px}.settings h2{margin:0 0 6px;font-size:22px}.setting-toggle{display:inline-flex;align-items:center;gap:12px;font-weight:600}.channels h2{margin:0 0 8px;font-size:22px}.channel-form{display:flex;gap:12px;flex-wrap:wrap}.channel-form input{flex:1;min-width:220px;padding:10px 14px;border-radius:12px;border:1px solid #d1c4b2;background:#fff;font-size:14px}.channel-form button{border:none;padding:10px 18px;border-radius:12px;font-weight:700;background:#1e1a16;color:#fef3e0;cursor:pointer}.channel-list{display:flex;gap:12px;flex-wrap:wrap}.channel-chip{display:inline-flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #e0d4c3;font-size:13px}.channel-meta{display:flex;flex-direction:column;gap:4px}.channel-chip button{border:none;background:#f1e6d8;padding:6px 10px;border-radius:999px;cursor:pointer;font-weight:600}.channel-actions{display:inline-flex;gap:8px}.channel-chip button:disabled{opacity:.65;cursor:not-allowed}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.toolbar button{background:#ffb66d;border:none;padding:12px 20px;border-radius:12px;font-weight:700;cursor:pointer;box-shadow:0 12px 24px #b46e2833}.hint{color:#6a5644;font-size:14px}.job-status-panel,.lecturer-tabs{background:#f7f1e8;border:1px solid #e0d4c3;border-radius:18px;padding:20px 24px;margin-bottom:24px;display:grid;gap:14px}.lecturer-tab-list{display:flex;gap:10px;flex-wrap:wrap}.lecturer-tab-list button{border:1px solid #d1c4b2;background:#fff;padding:8px 14px;border-radius:999px;font-weight:600;cursor:pointer}.lecturer-tab-list button.active,.lecturer-tab-list button:hover{background:#1e1a16;color:#fef3e0;border-color:#1e1a16}.job-status-list{display:grid;gap:10px}.job-status-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 2fr;gap:12px;align-items:center;background:#fff;border:1px solid #e0d4c3;border-radius:12px;padding:10px 12px;font-size:13px}.job-status-channel{font-weight:700}.job-status-cell{color:#4d4032}.job-status-error{color:#8f2e2e}.status{padding:12px 0}.status.error{color:#a33636}.table{display:grid;gap:12px}.table-row{display:grid;grid-template-columns:2.5fr 1.2fr 1fr 1.2fr 1.5fr;gap:16px;align-items:center;padding:16px 20px;border-radius:16px;background:#fff8ef;border:1px solid #e4d7c6}.table-row strong{display:block}.table-row small{display:block;color:#7b6652;font-size:12px}.table-header{font-weight:700;text-transform:uppercase;font-size:12px;letter-spacing:.12em;color:#7b6652}.status-pill{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700}.status-pending{background:#fff1dc;color:#a95b10}.status-metadata{background:#f3f0ff;color:#5a3db8}.status-processed{background:#e2f3ea;color:#2c6b4f}.status-uploaded{background:#dbe4ff;color:#2f49a6}.status-stale{background:#ffe3e3;color:#a10f2b}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions button{border:1px solid #d1c4b2;background:#fff;padding:8px 12px;border-radius:10px;cursor:pointer;font-weight:600}.empty{padding:40px;border:1px dashed #d1c4b2;border-radius:16px;text-align:center;color:#6a5644}@media (max-width: 900px){.header{flex-direction:column;align-items:flex-start}.job-status-row,.table-row{grid-template-columns:1fr;align-items:flex-start}.table-header{display:none}}
