:root { --ink:#111827; --muted:#6b7280; --line:#e5e7eb; --paper:#ffffff; --canvas:#f6f7fb; --blue:#2563eb; --blue-soft:#eff6ff; --blue-dark:#1d4ed8; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { min-width:320px; margin:0; color:var(--ink); background:var(--canvas); font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
button,input,select { font:inherit; } button { cursor:pointer; } h1,h2,h3,p { margin:0; } h1 { font-size:32px; line-height:1.2; } h2 { font-size:16px; } .muted { color:var(--muted); } .eyebrow { color:var(--blue); font-size:11px; font-weight:700; letter-spacing:.08em; }

/* Вход */
.auth-shell { min-height:100vh; display:grid; grid-template-columns:minmax(0,1fr) 440px; }.auth-intro { display:flex; min-height:100%; flex-direction:column; justify-content:space-between; padding:44px clamp(32px,8vw,120px); color:#fff; background:var(--blue); }.brand,.admin-brand { display:inline-flex; align-items:center; gap:9px; width:max-content; color:inherit; text-decoration:none; font-size:13px; font-weight:750; letter-spacing:.08em; }.brand-mark { display:grid; width:27px; height:27px; place-items:center; border:1px solid currentColor; border-radius:7px; font-size:15px; font-weight:800; letter-spacing:0; }.intro-copy { max-width:470px; margin:auto 0; }.intro-copy .eyebrow { color:#dbeafe; }.intro-copy h1 { margin:10px 0 20px; color:#fff; font-size:clamp(42px,5vw,64px); font-weight:750; line-height:1.04; letter-spacing:-.04em; }.intro-copy > p:last-child { max-width:390px; color:#dbeafe; font-size:16px; }.intro-note { display:flex; align-items:center; gap:8px; color:#dbeafe; font-size:12px; }.note-dot { width:7px; height:7px; border-radius:50%; background:#93c5fd; }.auth-panel { display:grid; min-height:100%; place-items:center; padding:36px; background:var(--paper); }.auth-card { width:min(100%,360px); display:grid; gap:17px; }.auth-heading { display:grid; gap:8px; margin-bottom:13px; }.auth-heading h2 { font-size:28px; line-height:1.2; }.auth-card label { display:grid; gap:7px; color:#374151; font-size:12px; font-weight:650; }.auth-card input { width:100%; border:1px solid #d1d5db; border-radius:7px; padding:11px 12px; outline:0; color:var(--ink); background:#fff; }.auth-card input:focus { border-color:var(--blue); box-shadow:0 0 0 3px #dbeafe; }.primary { display:flex; align-items:center; justify-content:space-between; border:0; border-radius:7px; padding:12px 14px; color:#fff; background:var(--blue); font-weight:650; }.primary:hover { background:var(--blue-dark); }.primary:disabled { cursor:wait; opacity:.7; }.auth-error { min-height:1.45em; color:#dc2626; font-size:13px; }.auth-help { color:var(--muted); font-size:12px; text-align:center; }

/* Админка */
.admin-shell { max-width:1380px; margin:0 auto; padding:22px clamp(16px,4vw,56px) 60px; }.admin-header { display:flex; align-items:center; justify-content:space-between; min-height:48px; }.admin-brand { color:var(--ink); }.admin-brand .brand-mark { color:var(--blue); border-color:#bfdbfe; background:var(--blue-soft); }.account { display:flex; align-items:center; gap:12px; }.private { border:1px solid var(--line); border-radius:6px; padding:6px 9px; color:#4b5563; font-size:12px; }.logout { border:0; padding:5px; color:var(--muted); background:transparent; font-size:13px; }.logout:hover { color:var(--blue); }.admin-nav { display:flex; gap:24px; margin:28px 0 30px; border-bottom:1px solid var(--line); }.nav-item { position:relative; border:0; padding:0 0 12px; color:var(--muted); background:transparent; font-size:14px; }.nav-item.active { color:var(--blue); font-weight:700; }.nav-item.active::after { position:absolute; right:0; bottom:-1px; left:0; height:2px; background:var(--blue); content:""; }
.page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }.page-heading h1 { margin:5px 0 7px; font-weight:750; letter-spacing:-.03em; }.page-heading > div > p:last-child { color:var(--muted); }.total-pill { border:1px solid #bfdbfe; border-radius:6px; padding:7px 10px; color:var(--blue-dark); background:var(--blue-soft); font-size:12px; font-weight:650; }
.student-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:28px; }.stat-card { position:relative; min-height:86px; border:1px solid var(--line); border-radius:8px; padding:14px; color:var(--ink); background:var(--paper); text-align:left; }.stat-card:hover { border-color:#93c5fd; background:#fafcff; }.stat-card span { display:block; color:var(--muted); font-size:12px; }.stat-card strong { display:block; margin-top:7px; font-size:26px; line-height:1; }.stat-dot { position:absolute; right:14px; bottom:16px; width:7px; height:7px; border-radius:50%; background:#9ca3af; }.stat-dot.studying { background:#16a34a; }.stat-dot.job_search { background:#f59e0b; }.stat-dot.working { background:#64748b; }
.students-controls { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:28px 0 14px; }.filter-group { display:flex; flex-wrap:wrap; gap:7px; }.filter-chip { border:1px solid #d1d5db; border-radius:6px; padding:7px 10px; color:#374151; background:#fff; font-size:13px; }.filter-chip.active,.filter-chip:hover { border-color:var(--blue); color:var(--blue); background:var(--blue-soft); }
.student-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.student-card { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:8px; padding:16px; color:var(--ink); background:var(--paper); text-align:left; }.student-card:hover { border-color:#93c5fd; background:#fcfdff; }.student-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }.student-arrow { color:var(--blue); font-size:18px; }.status-badge { display:inline-block; border-radius:5px; padding:4px 7px; color:#166534; background:#dcfce7; font-size:11px; font-weight:700; }.status-badge.job_search { color:#92400e; background:#fef3c7; }.status-badge.working { color:#1e40af; background:#dbeafe; }.status-badge.pending { color:#92400e; background:#fef3c7; }.status-badge.rejected { color:#991b1b; background:#fee2e2; }.student-card h2 { display:flex; flex-wrap:wrap; align-items:baseline; gap:7px; margin:15px 0 0; font-size:17px; line-height:1.25; }.student-username { color:var(--blue); font-size:14px; font-weight:650; }.student-name { font-weight:700; }.student-milestones { display:flex; flex-wrap:wrap; gap:12px; margin:15px 0 0; font-size:12px; }.student-milestones span { display:grid; gap:2px; }.student-milestones i { color:var(--muted); font-size:10px; font-style:normal; text-transform:uppercase; letter-spacing:.06em; }.load-more { display:block; margin:24px auto 0; border:1px solid #bfdbfe; border-radius:7px; padding:9px 13px; color:var(--blue); background:#fff; font-size:13px; font-weight:650; }.load-more:hover { background:var(--blue-soft); }.cards-loading,.cards-empty { grid-column:1/-1; border:1px dashed #d1d5db; border-radius:8px; padding:28px; color:var(--muted); text-align:center; }
.student-drawer { position:fixed; z-index:5; top:0; right:0; width:min(560px,100%); height:100vh; overflow:auto; padding:62px 28px 34px; border-left:1px solid var(--line); background:#fff; box-shadow:-12px 0 30px rgba(17,24,39,.12); }.drawer-close { position:absolute; top:16px; right:18px; width:32px; height:32px; border:1px solid var(--line); border-radius:6px; color:var(--muted); background:#fff; font-size:21px; line-height:1; }.student-drawer h2,.detail-panel h2 { margin:8px 0 11px; font-size:25px; line-height:1.15; }.drawer-facts { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:10px 0 0; }.drawer-facts > div { min-height:63px; padding:9px; border:1px solid var(--line); border-radius:6px; }.drawer-facts span { display:block; color:var(--muted); font-size:11px; }.drawer-facts strong { display:block; margin-top:5px; overflow-wrap:anywhere; font-size:13px; }.drawer-section { margin-top:25px; }.drawer-section h3 { margin-bottom:7px; font-size:15px; }.drawer-section p { padding:8px 0; border-bottom:1px solid var(--line); font-size:13px; }.drawer-section pre { max-height:380px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; }.detail-list { display:grid; gap:8px; }.detail-card,.detail-answer { border:1px solid var(--line); border-radius:7px; padding:10px; }.detail-card-top { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }.detail-card-top strong { font-size:14px; }.detail-card-top time { flex:0 0 auto; color:var(--muted); font-size:12px; }.detail-card p,.detail-answer p { display:grid; grid-template-columns:120px 1fr; gap:10px; margin:7px 0 0; padding:7px 0 0; border-top:1px solid var(--line); overflow-wrap:anywhere; }.detail-card p span,.detail-answer span { color:var(--muted); font-size:12px; }.detail-card p b { font-size:13px; font-weight:550; }.detail-card a { color:var(--blue); text-decoration:none; }.detail-card a:hover { text-decoration:underline; }.detail-answer p { display:block; white-space:pre-wrap; line-height:1.4; }.detail-answer p:first-of-type { margin-top:5px; }
.applications-workspace { display:grid; grid-template-columns:minmax(280px,.85fr) minmax(0,1.65fr); min-height:560px; margin-top:28px; overflow:hidden; border:1px solid var(--line); border-radius:8px; background:var(--paper); }.list-panel { border-right:1px solid var(--line); }.toolbar { display:flex; align-items:center; justify-content:space-between; padding:15px; border-bottom:1px solid var(--line); }.toolbar select { border:1px solid #d1d5db; border-radius:6px; padding:6px 8px; color:var(--ink); background:#fff; font-size:13px; }.record { display:block; width:100%; border:0; border-bottom:1px solid #f0f1f3; padding:13px 15px; color:inherit; background:transparent; text-align:left; }.record:hover,.record.selected { background:var(--blue-soft); }.record strong,.record small { display:block; }.record small { margin:3px 0 7px; color:var(--muted); font-size:11px; }.detail-panel { padding:26px; }
@media (max-width:980px) { .student-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }.student-stats { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .auth-shell { display:block; }.auth-intro { min-height:330px; padding:28px 24px; }.intro-copy { margin:48px 0; }.intro-copy h1 { font-size:42px; }.auth-panel { min-height:auto; padding:42px 24px 52px; }.admin-shell { padding:18px 14px 40px; }.private { display:none; }.admin-nav { margin:24px 0; }.page-heading,.students-controls { align-items:flex-start; flex-direction:column; }.student-stats,.student-cards { grid-template-columns:1fr; }.applications-workspace { grid-template-columns:1fr; }.list-panel { max-height:350px; overflow:auto; border-right:0; border-bottom:1px solid var(--line); }.drawer-facts { grid-template-columns:1fr; }.student-drawer { padding:58px 18px 28px; } }
