@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800&display=swap');

:root{
  --ink:#5b4a8f;
  --paper:#f4f0fb;
  --gold:#5aa9e6;
  --lilac:#c9aee0;
  --line:#e2d9f0;
  --muted:#7a6f95;
  --card:#ffffff;
  --danger:#c2506b;
  --ok:#4f9d74;
  --warn:#5aa9e6;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Vazirmatn',sans-serif;
  background:var(--paper);
  color:var(--ink);
  min-height:100vh;
}
a{color:inherit;text-decoration:none;}

/* ---- top bar ---- */
.topbar{
  background:var(--ink);color:var(--paper);
  padding:14px 26px;display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:12px;
}
.topbar .brand{display:flex;align-items:center;gap:12px;}
.topbar img{height:34px;}
.topbar nav{display:flex;gap:18px;font-size:13.5px;flex-wrap:wrap;}
.topbar nav a{opacity:.85;padding:6px 2px;}
.topbar nav a:hover{opacity:1;}
.topbar .user{font-size:12.5px;opacity:.75;display:flex;align-items:center;gap:10px;}
.topbar .user a{color:var(--gold);opacity:1;}

.wrap{max-width:1080px;margin:0 auto;padding:24px 16px 60px;}

h1.page-title{font-size:19px;margin:0 0 18px;}

/* ---- cards / tables ---- */
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px 22px;margin-bottom:18px;}
table.list{width:100%;border-collapse:collapse;font-size:13px;}
table.list th{text-align:right;font-size:12px;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line);}
table.list td{padding:10px 10px;border-bottom:1px solid var(--line);vertical-align:middle;}
table.list tr:last-child td{border-bottom:none;}
table.list tr:hover td{background:#faf9f5;}

/* ---- badges ---- */
.badge{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;margin:1px 2px;}
.badge.ok{background:#e7f3ea;color:var(--ok);}
.badge.missing{background:#fbe9e6;color:var(--danger);}

/* ---- forms ---- */
fieldset{border:none;margin:18px 0 0;padding:0;}
legend{width:100%;font-size:14px;font-weight:700;padding-bottom:8px;margin-bottom:14px;border-bottom:1px solid var(--line);}
.row{display:flex;gap:14px;margin-bottom:14px;flex-wrap:wrap;}
.field{flex:1 1 220px;display:flex;flex-direction:column;gap:6px;}
label{font-size:12.5px;color:var(--muted);font-weight:500;}
input,select,textarea{
  font-family:'Vazirmatn',sans-serif;font-size:16px;padding:11px 12px;
  border:1px solid var(--line);border-radius:8px;background:#fcfbf8;color:var(--ink);
  outline:none;width:100%;
}
input:focus,select:focus,textarea:focus{border-color:var(--gold);background:#fff;}
textarea{resize:vertical;min-height:70px;}

button,.btn{
  font-family:'Vazirmatn',sans-serif;font-size:14px;font-weight:700;
  padding:11px 18px;border-radius:9px;border:none;cursor:pointer;
  display:inline-block;
}
.btn-primary{background:var(--ink);color:var(--paper);}
.btn-primary:hover{opacity:.92;}
.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--line);}
.btn-gold{background:var(--gold);color:#fff;}
.btn-sm{padding:6px 12px;font-size:12.5px;}
.btn-danger{background:var(--danger);color:#fff;}

.toolbar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center;justify-content:space-between;}

/* ---- app-style icon tiles (dashboard launcher) ---- */
.app-tiles{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:14px;
  max-width:460px; margin:4px auto 28px;
}
@media (max-width:480px){
  .app-tiles{grid-template-columns:repeat(2, 1fr); max-width:280px;}
}
.app-tile{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  text-decoration:none; color:var(--ink);
  background:none; border:none; cursor:pointer; padding:0;
  transition:transform .12s;
}
.app-tile:active{transform:scale(0.93);}
.app-tile .tile-icon{
  width:56px; height:56px; border-radius:18px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--ink), #8271b8); color:#fff;
  box-shadow:0 8px 18px -8px rgba(91,74,143,.5);
}
.app-tile .tile-icon svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.8;}
.app-tile .tile-label{font-size:11.5px; font-weight:600; text-align:center; color:var(--muted);}

/* ---- checklist ---- */
.checklist{display:flex;flex-direction:column;gap:10px;}
.check-item{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#fcfbf8;
}
.check-item.done{background:#f2f8f3;border-color:#cfe6d4;}
.check-item .label{font-size:13.5px;font-weight:600;}
.check-item .sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.status-dot.done{background:var(--ok);}
.status-dot.missing{background:var(--danger);}

/* ---- calendar ---- */
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.cal-head{font-size:11.5px;color:var(--muted);text-align:center;padding-bottom:4px;font-weight:600;}
.cal-day{
  min-height:86px;border:1px solid var(--line);border-radius:8px;padding:6px;
  font-size:11px;background:#fcfbf8;
}
.cal-day.empty{background:transparent;border:none;}
.cal-day .num{font-weight:700;font-size:12px;margin-bottom:4px;}
.cal-res{
  display:block;background:var(--ink);color:var(--paper);border-radius:5px;
  padding:2px 5px;margin-bottom:3px;font-size:10.5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
}
.cal-res.incomplete{background:var(--danger);}

.login-wrap{max-width:360px;margin:80px auto;padding:0 16px;}
.msg-err{background:#fbe9e6;color:var(--danger);padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:14px;}
.msg-ok{background:#e7f3ea;color:var(--ok);padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:14px;}

/* ---- printable document (contract / voucher) ---- */
.doc{
  --ink:#1c2b3a; --muted:#6b6456; --line:#d8d2c0;
  --doc-font-size:13.5px; --doc-line-height:1.7;
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:38px 42px;
  line-height:var(--doc-line-height);font-size:var(--doc-font-size);max-width:820px;margin:0 auto;
  color:var(--ink);
}
.doc-controls{
  max-width:820px;margin:0 auto 14px;background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:12px 16px;display:flex;gap:22px;flex-wrap:wrap;align-items:center;
}
.doc-controls .ctrl{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);}
.doc-controls input[type="range"]{width:110px;}
.doc-controls .ctrl-val{font-size:11.5px;color:var(--ink);min-width:34px;}
.doc-header{display:flex;justify-content:flex-end;align-items:center;padding-bottom:12px;margin-bottom:16px;}
.doc-header img{height:64px;display:block;}
.doc h1{text-align:center;font-size:17px;margin:0 0 22px;}
.doc h2{font-size:14px;margin:14px 0 6px;page-break-after:avoid;break-after:avoid;}
.doc p{margin:0 0 8px;text-align:justify;}
.doc .sigtable{width:100%;border-collapse:collapse;margin:22px 0;font-size:12.5px;page-break-inside:avoid;break-inside:avoid;}
.doc .sigtable td{border:none;padding:14px 10px;text-align:center;width:50%;}
.doc .sigtable .role{font-weight:700;margin-bottom:20px;display:block;}
.doc ol{padding-inline-start:22px;margin:0 0 8px;}
.doc ol li{margin-bottom:6px;text-align:justify;page-break-inside:avoid;break-inside:avoid;}
.doc-toolbar{max-width:820px;margin:0 auto 16px;display:flex;gap:10px;}
.doc-info-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:13px;}
.doc-info-table td{padding:6px 8px;border-bottom:1px solid var(--line);}
.doc-info-table td:first-child{color:var(--muted);width:35%;}

@media print{
  .topbar, .toolbar, .no-print, .doc-controls{display:none !important;}
  body{background:#fff;}
  .doc{border:none;padding:0;}
  @page{size:A4;}
}

/* ---- mobile ---- */
.cal-grid-wrap{overflow-x:auto;}

@media (max-width:640px){
  .wrap{padding:18px 10px 50px;}
  .topbar{padding:12px 16px;flex-direction:row;flex-wrap:wrap;}
  .topbar .brand{flex:1 1 100%;}
  .topbar nav{flex:1 1 auto;gap:14px;font-size:13px;}
  .topbar .user{flex:1 1 100%;justify-content:space-between;padding-top:6px;border-top:1px solid rgba(255,255,255,.15);margin-top:6px;}
  .card{padding:16px 14px;border-radius:10px;}
  .toolbar{flex-direction:column;align-items:stretch;gap:10px;}
  .toolbar > div{display:flex;flex-wrap:wrap;gap:8px;}
  button,.btn{padding:12px 16px;}

  table.list-stack thead{display:none;}
  table.list-stack, table.list-stack tbody, table.list-stack tr, table.list-stack td{display:block;width:100%;}
  table.list-stack tr{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:10px 12px;background:var(--card);}
  table.list-stack td{border-bottom:none !important;padding:6px 2px;}
  table.list-stack td[data-label]::before{content:attr(data-label);display:block;font-size:11px;color:var(--muted);font-weight:600;margin-bottom:3px;}

  .cal-grid{min-width:600px;}
  .doc{padding:22px 16px;}
}
