@import url('https://cdn.jsdelivr.net/gh/rastikerdar/vazirmatn@v33.003/Vazirmatn-font-face.css');

:root{
  --teal-900:#04302e;
  --teal-700:#055452;
  --teal:#077070;
  --teal-500:#0d9490;
  --teal-100:#e3f1ef;
  --navy-900:#1a2129;
  --navy-700:#232d3a;
  --navy:#344456;
  --navy-100:#e9edf1;
  --bg:#f4f7f7;
  --surface:#ffffff;
  --line:#e1e8e7;
  --text:#22282c;
  --text-soft:#5c6a6a;
  --amber:#c98a2c;
  --amber-bg:#fbf1de;
  --red:#b8402f;
  --red-bg:#fbeae7;
  --radius:10px;
  --shadow:0 1px 2px rgba(20,40,40,.06),0 6px 20px rgba(20,40,40,.06);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Vazirmatn', Tahoma, sans-serif;
  background:var(--bg);
  color:var(--text);
  direction:rtl;
  line-height:1.7;
}
a{color:inherit; text-decoration:none;}
button{font-family:inherit;}

/* ---------- Auth screen ---------- */
.auth-wrap{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:
    radial-gradient(1100px 500px at 15% -10%, var(--teal-100), transparent 60%),
    radial-gradient(900px 500px at 110% 110%, var(--navy-100), transparent 55%),
    var(--bg);
}
.auth-card{
  width:100%;
  max-width:400px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
  padding:36px 32px 32px;
}
.auth-logo{display:flex; justify-content:center; margin-bottom:18px;}
.auth-logo img{height:52px;}
.auth-card h1{
  font-size:17px; text-align:center; margin:0 0 4px; color:var(--navy-900); font-weight:700;
}
.auth-card p.sub{text-align:center; color:var(--text-soft); font-size:13px; margin:0 0 26px;}

.field{margin-bottom:16px;}
.field label{display:block; font-size:13px; color:var(--navy); margin-bottom:6px; font-weight:600;}
.field input, .field select, .field textarea{
  width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:8px;
  font-family:inherit; font-size:14px; background:#fbfdfd; color:var(--text);
  transition:border-color .15s, box-shadow .15s;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--teal-500); box-shadow:0 0 0 3px var(--teal-100); background:#fff;
}
.captcha-row{display:flex; gap:10px; align-items:center;}
.captcha-row img{border-radius:8px; border:1px solid var(--line); cursor:pointer;}
.captcha-row .field{flex:1; margin-bottom:0;}
.captcha-refresh{font-size:12px; color:var(--teal-700); cursor:pointer; white-space:nowrap;}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:11px 18px; border-radius:8px; border:none; cursor:pointer;
  font-size:14px; font-weight:700; transition:transform .05s, background .15s, box-shadow .15s;
}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--teal); color:#fff; width:100%; margin-top:6px;}
.btn-primary:hover{background:var(--teal-700);}
.btn-outline{background:transparent; border:1px solid var(--line); color:var(--navy);}
.btn-outline:hover{border-color:var(--teal-500); color:var(--teal-700);}
.btn-danger{background:var(--red-bg); color:var(--red);}
.btn-danger:hover{background:#f5d9d3;}
.btn-sm{padding:7px 13px; font-size:12.5px;}
.btn-block{width:100%;}

.alert{padding:11px 14px; border-radius:8px; font-size:13px; margin-bottom:16px;}
.alert-error{background:var(--red-bg); color:var(--red);}
.alert-success{background:var(--teal-100); color:var(--teal-900);}

/* ---------- App shell ---------- */
.shell{display:flex; min-height:100vh;}
.sidebar{
  width:250px; flex-shrink:0; background:var(--navy-900); color:#fff;
  display:flex; flex-direction:column; padding:22px 0;
}
.sidebar .brand{display:flex; align-items:center; gap:10px; padding:0 20px 22px; border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:14px;}
.sidebar .brand img{height:30px;}
.sidebar .brand span{font-weight:700; font-size:14px;}
.sidebar nav{flex:1; padding:0 10px;}
.sidebar nav a{
  display:flex; align-items:center; gap:10px; padding:11px 14px; border-radius:8px;
  color:rgba(255,255,255,.72); font-size:13.5px; margin-bottom:3px; font-weight:600;
}
.sidebar nav a:hover{background:rgba(255,255,255,.06); color:#fff;}
.sidebar nav a.active{background:var(--teal); color:#fff;}
.sidebar .user-box{padding:14px 20px 0 20px; border-top:1px solid rgba(255,255,255,.08); margin-top:10px;}
.sidebar .user-box .name{font-size:13px; font-weight:700; color:#fff;}
.sidebar .user-box .role{font-size:11.5px; color:rgba(255,255,255,.55); margin-bottom:10px;}
.sidebar .user-box a{display:block; font-size:12.5px; color:rgba(255,255,255,.65); padding:5px 0;}
.sidebar .user-box a:hover{color:#fff;}

.main{flex:1; min-width:0;}
.topbar{
  background:var(--surface); border-bottom:1px solid var(--line); padding:16px 28px;
  display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:5;
}
.topbar h2{font-size:16px; margin:0; color:var(--navy-900);}
.topbar .badge-today{font-size:12px; color:var(--text-soft);}
.content{padding:26px 28px 60px;}

/* ---------- Cards / stats ---------- */
.stats-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:16px; margin-bottom:26px;}
.stat-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  padding:18px 20px; box-shadow:var(--shadow);
}
.stat-card .num{font-size:26px; font-weight:800; color:var(--navy-900);}
.stat-card .label{font-size:12.5px; color:var(--text-soft); margin-top:4px;}
.stat-card.accent-teal .num{color:var(--teal-700);}
.stat-card.accent-red .num{color:var(--red);}
.stat-card.accent-amber .num{color:var(--amber);}

.panel{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:var(--shadow); overflow:hidden;
}
.panel-head{
  padding:16px 20px; border-bottom:1px solid var(--line); display:flex;
  align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
}
.panel-head h3{margin:0; font-size:14.5px; color:var(--navy-900);}
.panel-body{padding:20px;}

/* ---------- Tables ---------- */
table{width:100%; border-collapse:collapse; font-size:13.5px;}
th,td{padding:12px 14px; text-align:right; border-bottom:1px solid var(--line);}
th{color:var(--text-soft); font-weight:700; font-size:12.5px; background:#fafcfc;}
tr:last-child td{border-bottom:none;}
tr:hover td{background:#fafdfd;}

.badge{display:inline-block; padding:4px 11px; border-radius:20px; font-size:11.5px; font-weight:700;}
.badge-pending{background:var(--navy-100); color:var(--navy);}
.badge-progress{background:#e6f0fb; color:#2b5f9e;}
.badge-done{background:var(--teal-100); color:var(--teal-900);}
.badge-low{background:#eef2f2; color:var(--text-soft);}
.badge-medium{background:var(--amber-bg); color:var(--amber);}
.badge-high{background:var(--red-bg); color:var(--red);}
.badge-overdue{background:var(--red-bg); color:var(--red);}

.filters{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px;}
.filters select, .filters input{
  padding:9px 12px; border:1px solid var(--line); border-radius:8px; font-size:13px; background:#fff; font-family:inherit;
}

.tabs{display:flex; gap:6px; margin-bottom:18px; flex-wrap:wrap;}
.tabs a{padding:8px 16px; border-radius:20px; font-size:13px; font-weight:700; color:var(--text-soft); background:var(--surface); border:1px solid var(--line);}
.tabs a.active{background:var(--navy-900); color:#fff; border-color:var(--navy-900);}

.task-row-title{font-weight:700; color:var(--navy-900);}
.task-row-title small{display:block; font-weight:400; color:var(--text-soft); font-size:12px; margin-top:2px;}
.muted{color:var(--text-soft);}
.empty-state{text-align:center; padding:50px 20px; color:var(--text-soft);}
.empty-state .icon{font-size:34px; margin-bottom:10px;}

.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.form-grid .full{grid-column:1/-1;}
@media(max-width:700px){.form-grid{grid-template-columns:1fr;}}

.note{background:#fafcfc; border:1px solid var(--line); border-radius:8px; padding:12px 14px; margin-bottom:10px;}
.note .meta{font-size:11.5px; color:var(--text-soft); margin-bottom:6px; display:flex; justify-content:space-between;}
.note p{margin:0; font-size:13.5px; white-space:pre-wrap;}

.detail-grid{display:grid; grid-template-columns:2fr 1fr; gap:20px; align-items:start;}
@media(max-width:850px){.detail-grid{grid-template-columns:1fr;}}
.side-box{background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:18px; box-shadow:var(--shadow); margin-bottom:16px;}
.side-box h4{margin:0 0 12px; font-size:13px; color:var(--navy-900);}
.kv{display:flex; justify-content:space-between; font-size:13px; padding:7px 0; border-bottom:1px dashed var(--line);}
.kv:last-child{border-bottom:none;}
.kv span:first-child{color:var(--text-soft);}

.checkbox-list{display:flex; flex-direction:column; gap:8px; max-height:220px; overflow-y:auto; border:1px solid var(--line); border-radius:8px; padding:10px;}
.checkbox-list label{display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:400;}

.toggle{display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700;}
.dot{width:8px; height:8px; border-radius:50%; display:inline-block;}
.dot-active{background:var(--teal);}
.dot-inactive{background:#b9c2c2;}

@media(max-width:900px){
  .shell{flex-direction:column;}
  .sidebar{width:100%; flex-direction:row; align-items:center; padding:10px 14px; overflow-x:auto;}
  .sidebar .brand{border:none; padding:0; margin:0;}
  .sidebar nav{display:flex; padding:0; margin-inline-start:14px;}
  .sidebar nav a{white-space:nowrap; margin-inline-end:4px; margin-bottom:0;}
  .sidebar .user-box{display:none;}
  .content{padding:18px;}
  .topbar{padding:14px 18px;}
}
