*,*::before,*::after{box-sizing:border-box}
:root{
  --amber:#ffb703;--amber-d:#f59e0b;--orange:#fb8500;
  --ink:#0a1020;--ink-3:#1d2a45;
  --body:#3a4761;--muted:#6f7c93;--line:#e4e9f2;
  --bg:#f6f8fc;--white:#fff;--green:#0f9d58;--red:#d93025;
  --radius:16px;--radius-sm:10px;
  --shadow:0 12px 34px rgba(10,16,32,.09);
  --shadow-lg:0 24px 60px rgba(10,16,32,.18);
  --maxw:1160px;
}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Plus Jakarta Sans',system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--body);background:var(--bg);line-height:1.65;font-size:16px}
a{color:inherit;text-decoration:none}
h1,h2,h3{color:var(--ink);line-height:1.2;margin:0 0 .5em;font-weight:800;letter-spacing:-.02em}
h1{font-size:clamp(1.8rem,3.6vw,2.5rem)}
h2{font-size:clamp(1.4rem,2.6vw,1.9rem)}
p{margin:0 0 1rem}
ul{margin:0;padding:0;list-style:none}
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:20px}
.section{padding:clamp(40px,5vw,70px) 0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.4rem;border-radius:999px;border:0;cursor:pointer;font-family:inherit;font-size:.93rem;font-weight:700;transition:transform .18s,box-shadow .18s;white-space:nowrap;text-decoration:none}
.btn-amber{background:linear-gradient(135deg,var(--amber),var(--orange));color:#22160a;box-shadow:0 10px 22px rgba(251,133,0,.3)}
.btn-amber:hover{transform:translateY(-2px)}
.btn-dark{background:var(--ink);color:#fff}
.btn-ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink);background:#fff}
.btn-block{width:100%}
.btn-sm{padding:.5rem 1rem;font-size:.82rem}
.btn-lg{padding:.95rem 1.8rem;font-size:1rem}
.flash{padding:.8rem 1rem;border-radius:10px;font-size:.88rem;font-weight:600;margin-bottom:1rem}
.flash-error{background:#fdecea;color:#8f2018;border:1px solid #f7c9c4}
.flash-success{background:#e8f6ee;color:#0b6b3d;border:1px solid #bfe6d1}
.flash-info{background:#eef4ff;color:#1e40af;border:1px solid #c7d7fb}
.form-card{background:#fff;border-radius:20px;padding:clamp(22px,3vw,34px);box-shadow:var(--shadow-lg);max-width:520px;margin:0 auto}
.field{margin-bottom:.9rem}
.field label{display:block;font-size:.79rem;font-weight:700;color:var(--ink);margin-bottom:.35rem}
.field input,.field select,.field textarea{width:100%;padding:.75rem .95rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);font-family:inherit;font-size:.93rem;color:var(--ink);background:#fbfcfe}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--amber-d);background:#fff;box-shadow:0 0 0 4px rgba(255,183,3,.15)}
.field.has-error input,.field.has-error select{border-color:var(--red);background:#fff5f5}
.field .err{display:block;color:var(--red);font-size:.76rem;font-weight:600;margin-top:.3rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 .8rem}
.alert{border-radius:12px;padding:.85rem 1rem;font-size:.88rem;font-weight:600;margin-bottom:1rem;display:flex;gap:.6rem;align-items:flex-start}
.alert-error{background:#fdecea;color:#8f2018;border:1px solid #f7c9c4}
.alert-success{background:#e8f6ee;color:#0b6b3d;border:1px solid #bfe6d1}
.app-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.app-nav{display:flex;align-items:center;gap:1.2rem;min-height:64px}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.1rem;color:var(--ink);letter-spacing:-.02em}
.brand-mark{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,var(--amber),var(--orange));color:#22160a;font-size:.82rem;font-weight:800;box-shadow:0 6px 14px rgba(251,133,0,.3)}
.brand-text span{color:var(--orange)}
.app-links{display:flex;gap:1.4rem;margin-left:auto;font-size:.9rem;font-weight:600;align-items:center}
.app-links a{color:var(--ink);padding:.25rem 0}
.app-links a:hover{color:var(--orange)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow)}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.15rem 1.25rem}
.stat-card .num{font-size:1.6rem;font-weight:800;color:var(--ink);line-height:1}
.stat-card .lbl{font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:.4rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.table-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto}
table{width:100%;border-collapse:collapse;font-size:.88rem}
th,td{padding:.75rem .95rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
th{background:#f8fafd;font-weight:700;color:var(--ink);font-size:.76rem;text-transform:uppercase;letter-spacing:.05em}
tr:last-child td{border-bottom:0}
.badge{display:inline-block;padding:.24rem .65rem;border-radius:999px;font-size:.72rem;font-weight:700}
.badge-pending{background:#fff6e0;color:#7a4a00}
.badge-active,.badge-approved,.badge-completed{background:#e8f6ee;color:#0b6b3d}
.badge-assigned,.badge-accepted,.badge-started{background:#eef4ff;color:#1e40af}
.badge-blocked,.badge-rejected,.badge-cancelled{background:#fdecea;color:#8f2018}
.badge-offline,.badge-busy{background:#eef2fa;color:#4a5568}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.page-head .sub{color:var(--muted);font-size:.9rem}
.empty{text-align:center;padding:2.5rem 1rem;color:var(--muted);font-size:.92rem}
.empty .ico{font-size:2.2rem;margin-bottom:.6rem;opacity:.6}
.app-footer{margin-top:3rem;padding:1.5rem 0;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem;text-align:center}
.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}
.auth-side{background:radial-gradient(700px 400px at 80% -10%,rgba(255,183,3,.28),transparent 60%),radial-gradient(500px 400px at 10% 110%,rgba(251,133,0,.22),transparent 60%),linear-gradient(160deg,#0a1020 0%,#111c33 60%,#0d1526 100%);color:#e8eefb;display:flex;flex-direction:column;justify-content:space-between;padding:40px}
.auth-side .brand{color:#fff}
.auth-side h2{color:#fff;font-size:1.8rem;margin-top:2rem}
.auth-side p{color:#aab8d0}
.auth-side ul{display:grid;gap:.7rem;margin-top:1.5rem}
.auth-side li{display:flex;gap:.7rem;color:#cbd7ea;font-size:.93rem;align-items:flex-start}
.auth-side .tick{flex:0 0 20px;height:20px;border-radius:50%;background:rgba(15,157,88,.2);color:#4ade80;display:grid;place-items:center;font-size:.68rem;font-weight:800;margin-top:.15rem}
.auth-main{display:flex;align-items:center;justify-content:center;padding:40px 20px;background:var(--bg)}
.auth-main .form-card{width:100%}
@media (max-width:900px){.auth-wrap{grid-template-columns:1fr}.auth-side{display:none}.grid-3,.grid-4{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.grid-2{grid-template-columns:1fr}.grid-3,.grid-4{grid-template-columns:1fr}}