:root{
  --ink:#0C0E13;--ink-2:#22262F;--paper:#EEF0F4;--surface:#FFFFFF;
  --line:#DCE0E8;--line-strong:#C6CCD8;--muted:#5C6576;--muted-2:#8A93A3;
  --green:#13AE7A;--green-2:#2BD49C;--green-soft:#E0F4EC;
  --amber:#E0922F;--amber-soft:#FBEEDB;--blue:#2F6BE0;--blue-soft:#E5EDFB;
  --radius:16px;--radius-sm:11px;--ease:cubic-bezier(.22,.61,.36,1);
  --grad:linear-gradient(110deg,#13AE7A,#2BD49C);
  --shadow:0 1px 2px rgba(12,14,19,.05),0 14px 40px rgba(12,14,19,.08);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Onest',system-ui,sans-serif;background:var(--paper);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.display{font-family:'Unbounded',sans-serif;letter-spacing:-.02em}
.hidden{display:none!important}

.mark{width:24px;height:24px;flex:none}
.brand{display:flex;align-items:center;gap:10px;font-family:'Unbounded',sans-serif;font-weight:700;font-size:1.1rem}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-weight:600;font-size:.95rem;padding:12px 20px;border-radius:999px;border:1px solid transparent;cursor:pointer;transition:transform .15s var(--ease),box-shadow .2s,background .2s,border-color .2s,opacity .2s}
.btn:disabled{opacity:.6;cursor:default}
.btn-grad{background:var(--grad);color:#06241A;box-shadow:0 6px 18px rgba(19,174,122,.3)}
.btn-grad:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 9px 24px rgba(19,174,122,.4)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--ink);background:rgba(12,14,19,.03)}
.btn-block{width:100%;padding:14px 20px}
.btn-sm{padding:9px 16px;font-size:.88rem}

/* ---- auth screen ---- */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:34px}
.auth-card .brand{justify-content:center;margin-bottom:8px}
.auth-sub{text-align:center;color:var(--muted);font-size:.95rem;margin-bottom:24px}
.tabs{display:flex;background:#F2F4F7;border-radius:999px;padding:4px;margin-bottom:24px}
.tab{flex:1;text-align:center;padding:10px;border-radius:999px;font-weight:600;font-size:.92rem;color:var(--muted);cursor:pointer;transition:all .2s}
.tab.active{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px rgba(12,14,19,.08)}

.field{margin-bottom:16px}
.field label{display:block;font-size:.85rem;font-weight:600;margin-bottom:7px}
.field label .opt{color:var(--muted-2);font-weight:500}
.input,.select,.textarea{width:100%;font-family:inherit;font-size:1rem;color:var(--ink);background:#F7F8FA;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;transition:border-color .18s,background .18s,box-shadow .18s}
.textarea{resize:vertical;min-height:84px}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--green);background:#fff;box-shadow:0 0 0 4px var(--green-soft)}
.input::placeholder,.textarea::placeholder{color:var(--muted-2)}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-msg{font-size:.88rem;margin:6px 0 14px;min-height:18px}
.form-msg.error{color:#C0392B}
.form-msg.ok{color:var(--green)}

/* ---- app shell ---- */
.topbar{position:sticky;top:0;z-index:30;background:rgba(238,240,244,.85);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.topbar-in{max-width:920px;margin:0 auto;padding:0 20px;height:62px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.who{display:flex;align-items:center;gap:10px;font-size:.92rem;color:var(--muted)}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--grad);color:#06241A;display:grid;place-items:center;font-weight:700;font-size:.9rem}
.container{max-width:920px;margin:0 auto;padding:28px 20px 60px}

.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.page-head h1{font-size:1.6rem;font-weight:700}
.page-head p{color:var(--muted);font-size:.95rem;margin-top:4px}

/* ---- request list ---- */
.cards{display:grid;gap:14px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 1px 2px rgba(12,14,19,.04)}
.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.card h3{font-size:1.08rem;font-weight:600}
.card .meta{color:var(--muted);font-size:.86rem;margin-top:5px;display:flex;flex-wrap:wrap;gap:4px 14px}
.card .desc{color:var(--ink-2);font-size:.92rem;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);white-space:pre-wrap}
.card .date{color:var(--muted-2);font-size:.8rem;margin-top:10px}

.badge{font-size:.76rem;font-weight:600;padding:5px 11px;border-radius:999px;white-space:nowrap}
.badge.new{background:var(--blue-soft);color:#2657B8}
.badge.in_progress{background:var(--amber-soft);color:#9A5B10}
.badge.candidates{background:#EDE7FB;color:#6B45C9}
.badge.closed{background:var(--green-soft);color:#0B7A59}
.badge.cancelled{background:#F0F1F4;color:var(--muted)}

.empty{text-align:center;padding:56px 20px;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius)}
.empty .ic{width:56px;height:56px;border-radius:16px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;margin:0 auto 16px}
.empty h3{font-size:1.1rem;font-weight:600;margin-bottom:6px}
.empty p{color:var(--muted);font-size:.94rem;max-width:34ch;margin:0 auto 18px}

/* ---- modal ---- */
.modal-back{position:fixed;inset:0;z-index:50;background:rgba(12,14,19,.5);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;animation:fade .2s var(--ease)}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal{width:100%;max-width:520px;max-height:90vh;overflow:auto;background:var(--surface);border-radius:20px;box-shadow:var(--shadow);padding:28px;animation:rise .25s var(--ease)}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.modal-head h2{font-size:1.3rem;font-weight:700}
.x{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer;display:grid;place-items:center;color:var(--muted)}
.x:hover{background:#F2F4F7;color:var(--ink)}

.loading{text-align:center;padding:60px 0;color:var(--muted)}
.spinner{width:30px;height:30px;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;margin:0 auto 14px;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:13px 20px;border-radius:12px;font-size:.92rem;box-shadow:0 10px 30px rgba(0,0,0,.3);opacity:0;transition:all .3s var(--ease);z-index:80}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

@media (max-width:520px){
  .row-2{grid-template-columns:1fr}
  .auth-card{padding:26px 22px}
  .who span{display:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
