:root{
  --ink:#17231f;
  --muted:#66756f;
  --paper:#f6f4ee;
  --surface:#fffdf8;
  --line:#dcded7;
  --brand:#12372f;
  --brand-2:#1e5a4b;
  --accent:#d9983d;
  --accent-soft:#fff1d9;
  --danger:#a83f38;
  --danger-soft:#fff0ed;
  --success:#236a50;
  --shadow:0 14px 40px rgba(27,55,47,.08);
  --radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  font-family:"Tajawal","Segoe UI",Tahoma,sans-serif;
  background:
    radial-gradient(circle at 90% 0,rgba(217,152,61,.12),transparent 26rem),
    linear-gradient(180deg,#f9f8f3 0,#f3f5f1 100%);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
button,input,textarea{font:inherit}
button{cursor:pointer}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.hidden{display:none!important}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0
}
.skip-link{
  position:fixed;z-index:100;top:8px;right:8px;transform:translateY(-150%);
  background:var(--brand);color:#fff;padding:10px 14px;border-radius:10px
}
.skip-link:focus{transform:translateY(0)}
.eyebrow{
  margin:0 0 4px;color:var(--brand-2);font-size:12px;font-weight:800;
  letter-spacing:.04em
}
.gate{
  min-height:100svh;display:grid;place-items:center;padding:24px;
  background:
    linear-gradient(135deg,rgba(12,38,32,.98),rgba(25,82,67,.93)),
    radial-gradient(circle at top right,#d9983d,transparent 35%);
}
.login-shell{
  width:min(430px,100%);background:var(--surface);border:1px solid rgba(255,255,255,.4);
  padding:36px;border-radius:24px;box-shadow:0 28px 80px rgba(3,17,13,.28);
  animation:rise .45s ease both
}
.login-mark,.brand-mark,.empty-mark{
  display:grid;place-items:center;background:var(--accent-soft);color:var(--brand);
  border:1px solid #f0d6a9
}
.login-mark{width:60px;height:60px;border-radius:17px;margin-bottom:24px}
.login-mark svg{width:31px;height:31px}
.login-shell h1{font-size:34px;line-height:1.15;margin:0;color:var(--brand);letter-spacing:-.03em}
.login-copy{margin:10px 0 26px;color:var(--muted)}
.login-shell label{display:block;font-size:14px;font-weight:800;margin-bottom:8px}
.password-wrap{position:relative}
.password-wrap input{
  width:100%;min-height:54px;padding:12px 16px 12px 50px;border:1px solid var(--line);
  border-radius:13px;background:#fff;text-align:center;direction:ltr;font-size:21px;
  letter-spacing:.45em;outline:none
}
.icon-button{
  position:absolute;left:6px;top:6px;width:42px;height:42px;display:grid;place-items:center;
  border:0;background:transparent;color:var(--muted);border-radius:10px
}
.login-button{
  width:100%;min-height:52px;margin-top:14px;border:0;border-radius:13px;
  background:var(--brand);color:#fff;font-weight:900;transition:.2s ease
}
.login-button:hover{background:var(--brand-2)}
.form-error{min-height:22px;margin-top:8px;color:var(--danger);font-size:14px;font-weight:700}
.app-shell{width:min(1420px,100%);margin:auto;padding:24px clamp(14px,3vw,38px) 48px}
.topbar{
  min-height:92px;display:flex;align-items:center;justify-content:space-between;
  gap:20px;margin-bottom:18px
}
.brand{display:flex;align-items:center;gap:14px}
.brand-mark{width:54px;height:54px;border-radius:15px;flex:0 0 auto}
.brand-mark svg{width:28px;height:28px}
.brand h1{margin:0;color:var(--brand);font-size:clamp(25px,3vw,36px);line-height:1.1;letter-spacing:-.03em}
.clock{color:var(--muted);font-size:13px;margin-top:6px}
.summary-strip{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:74px;padding:14px 20px;margin-bottom:16px;
  color:#fff;background:var(--brand);border-radius:var(--radius);
  box-shadow:var(--shadow)
}
.summary-strip>div:first-child{display:flex;align-items:center;gap:14px}
.summary-label{font-size:14px;color:#dbe8e3}
.summary-strip strong{font-size:30px;line-height:1}
.storage-note{display:flex;align-items:center;gap:9px;color:#dbe8e3;font-size:14px}
.status-dot{width:9px;height:9px;border-radius:50%;background:#7fd5a8;box-shadow:0 0 0 5px rgba(127,213,168,.12)}
.status-dot.syncing{background:#ffd27a;box-shadow:0 0 0 5px rgba(255,210,122,.13);animation:pulse 1.2s ease-in-out infinite}
.status-dot.offline{background:#ff9b8f;box-shadow:0 0 0 5px rgba(255,155,143,.13)}
@keyframes pulse{50%{opacity:.45}}
.panel{
  background:rgba(255,253,248,.94);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow)
}
.form-panel{padding:24px}
.section-heading,.table-head{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  margin-bottom:20px
}
.section-heading h2,.table-head h2,.search-copy h2{
  margin:0;color:var(--brand);font-size:22px;letter-spacing:-.02em
}
.text-button{
  border:0;background:var(--accent-soft);color:#8d5d1c;font-weight:800;
  padding:9px 13px;border-radius:10px
}
.case-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}
.field-wide{grid-column:1/-1}
.field label{font-size:14px;font-weight:800;color:#2e443d}
.field label span{color:var(--danger)}
.field small{color:var(--muted);font-size:12px;line-height:1.35}
.field input,.field textarea,.search-control input{
  width:100%;border:1px solid #cfd5cf;border-radius:12px;background:#fff;
  color:var(--ink);outline:none;transition:border-color .16s,box-shadow .16s,background .16s
}
.field input{height:50px;padding:0 13px}
.field textarea{padding:13px;resize:vertical;min-height:94px;line-height:1.55}
.field input:hover,.field textarea:hover,.search-control input:hover{border-color:#aeb8b1}
.field input:focus,.field textarea:focus,.search-control input:focus,.password-wrap input:focus{
  border-color:var(--brand-2);box-shadow:0 0 0 4px rgba(30,90,75,.11)
}
.field input.is-invalid,.field textarea.is-invalid{
  border-color:var(--danger);background:var(--danger-soft);
  box-shadow:0 0 0 3px rgba(168,63,56,.1)
}
.field-number input{font-variant-numeric:tabular-nums;text-align:left}
.form-actions{
  display:flex;align-items:center;gap:10px;padding-top:2px;flex-direction:row
}
.button{
  min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid transparent;border-radius:12px;padding:10px 16px;
  font-weight:800;transition:transform .15s ease,background .15s ease,border-color .15s ease
}
.button:active{transform:translateY(1px)}
.button-primary{background:var(--brand);color:#fff}
.button-primary:hover{background:var(--brand-2)}
.button-primary.editing{background:#9b671e}
.button-muted{background:#eef1ed;color:#3f514b}
.button-muted:hover{background:#e2e7e2}
.button-outline{background:transparent;border-color:#bfc9c1;color:var(--brand)}
.button-outline:hover{background:#f2f5f1}
.button-danger{background:var(--danger-soft);color:var(--danger);border-color:#efd1cd}
.button-compact{min-height:42px;padding:8px 13px}
.search-panel{
  display:grid;grid-template-columns:minmax(210px,.55fr) minmax(320px,1.45fr);
  align-items:center;gap:24px;padding:20px 24px;margin-top:16px
}
.search-copy p:last-child{margin:4px 0 0;color:var(--muted);font-size:13px}
.search-control{position:relative}
.search-control input{height:52px;padding:0 46px 0 62px;font-size:16px}
.search-icon{position:absolute;right:15px;top:16px;color:var(--brand-2);z-index:1}
.clear-search{
  position:absolute;left:8px;top:8px;height:36px;padding:0 12px;border:0;border-radius:9px;
  background:#edf1ed;color:#4e5f59;font-weight:800
}
.search-suggestions{
  position:absolute;z-index:20;top:58px;right:0;left:0;padding:7px;
  background:#fff;border:1px solid var(--line);border-radius:13px;
  box-shadow:0 18px 45px rgba(23,35,31,.16)
}
.suggestion{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;
  border:0;background:transparent;border-radius:9px;padding:10px;text-align:right;color:var(--ink)
}
.suggestion:hover,.suggestion:focus{background:#f2f5f1;outline:none}
.suggestion strong{direction:ltr;font-variant-numeric:tabular-nums;color:var(--brand)}
.suggestion span{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.records-panel{padding:22px;margin-top:16px}
.count-badge{
  display:inline-flex;align-items:center;min-height:34px;padding:5px 12px;
  border-radius:999px;background:var(--accent-soft);color:#80551b;font-size:13px;font-weight:900
}
.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px}
table{width:100%;border-collapse:collapse;min-width:940px;background:#fff}
th,td{padding:13px 11px;border-bottom:1px solid #e4e7e2;text-align:right;vertical-align:middle}
thead th{
  position:sticky;top:0;z-index:1;background:#edf2ee;color:#33473f;
  font-size:13px;font-weight:900;white-space:nowrap
}
tbody tr:last-child td{border-bottom:0}
tbody tr:nth-child(even){background:#fbfcfa}
tbody tr:hover{background:#f6f2e8}
td:first-child,th:first-child{text-align:center;width:58px}
.auto-cell{direction:ltr;text-align:left;font-variant-numeric:tabular-nums;font-weight:800;color:var(--brand)}
.subject-cell{max-width:420px;white-space:normal;overflow-wrap:anywhere;line-height:1.45}
.date-cell{direction:ltr;white-space:nowrap}
.actions-cell{white-space:nowrap;width:155px}
.row-action{
  border:0;border-radius:9px;padding:7px 9px;font-weight:800;background:transparent
}
.row-action.edit{color:#80551b;background:var(--accent-soft);margin-left:5px}
.row-action.delete{color:var(--danger);background:var(--danger-soft)}
.empty-state{padding:48px 20px;text-align:center}
.empty-state.hide{display:none}
.empty-mark{width:56px;height:56px;border-radius:16px;margin:0 auto 14px}
.empty-mark svg{width:29px;height:29px}
.empty-state h3{margin:0;color:var(--brand);font-size:19px}
.empty-state p{margin:7px 0 0;color:var(--muted)}
.print-heading{display:none}
.toast{
  position:fixed;z-index:1000;right:50%;bottom:calc(20px + env(safe-area-inset-bottom));
  transform:translate(50%,24px);min-width:min(360px,calc(100vw - 28px));
  padding:13px 18px;border-radius:12px;background:#17231f;color:#fff;
  box-shadow:0 18px 48px rgba(0,0,0,.25);font-weight:700;text-align:center;
  opacity:0;pointer-events:none;transition:.24s ease
}
.toast.show{opacity:1;transform:translate(50%,0)}
.toast.error{background:var(--danger)}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:980px){
  .case-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .field-wide{grid-column:1/-1}
}
@media(max-width:820px){
  .app-shell{padding-top:12px}
  .topbar{min-height:76px}
  .brand-mark{width:46px;height:46px}
  .clock{font-size:12px}
  .summary-strip{min-height:66px}
  .search-panel{grid-template-columns:1fr;gap:14px}
  .table-wrap{overflow:visible;border:0}
  table,tbody,tr,td{display:block;width:100%}
  table{min-width:0;background:transparent}
  thead{display:none}
  tbody{display:grid;gap:12px}
  tbody tr{
    overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff!important;
    box-shadow:0 6px 18px rgba(27,55,47,.045)
  }
  tbody td{
    display:grid;grid-template-columns:minmax(94px,34%) minmax(0,1fr);
    gap:12px;padding:11px 13px;border-bottom:1px solid #e9ebe7;text-align:right!important;
    max-width:none;direction:rtl
  }
  tbody td::before{content:attr(data-label);font-size:12px;font-weight:900;color:var(--muted)}
  tbody td:first-child{background:#edf2ee;color:var(--brand);font-weight:900}
  tbody td:last-child{border-bottom:0}
  .auto-cell span,.date-cell span{direction:ltr;text-align:right;display:block}
  .actions-cell{width:auto;display:block;padding:11px 13px}
  .actions-cell::before{display:none}
  .actions-cell .row-action{min-height:40px;width:calc(50% - 4px)}
}
@media(max-width:620px){
  .app-shell{padding-right:10px;padding-left:10px;padding-bottom:32px}
  .topbar{align-items:flex-start}
  .brand{gap:10px}
  .brand h1{font-size:24px}
  .brand .eyebrow{display:none}
  .button-compact span{display:none}
  .button-compact{width:44px;padding:0}
  .summary-strip{padding:12px 15px}
  .summary-label{font-size:12px}
  .summary-strip strong{font-size:25px}
  .storage-note{font-size:12px;text-align:left}
  .form-panel,.search-panel,.records-panel{padding:16px;border-radius:16px}
  .case-form{grid-template-columns:1fr;gap:15px}
  .field-wide{grid-column:1}
  .field input,.search-control input{font-size:16px}
  .form-actions{display:grid;grid-template-columns:1fr 1fr}
  .form-actions .button-primary{grid-column:1/-1;min-height:52px}
  .form-actions .button{padding:9px}
  .section-heading,.table-head{margin-bottom:16px}
  .search-copy p:last-child{display:none}
  .search-control input{padding-left:58px}
  .login-shell{padding:28px 22px;border-radius:20px}
}
@media print{
  @page{size:A4 landscape;margin:12mm}
  body{background:#fff}
  .topbar,.summary-strip,.form-panel,.search-panel,.no-print,.empty-state,.toast,.skip-link,#hb-badge{display:none!important}
  .app-shell{width:100%;max-width:none;padding:0}
  .records-panel{border:0;box-shadow:none;padding:0;margin:0}
  .table-head{display:none}
  .print-heading{display:block;text-align:center;margin-bottom:14px}
  .print-heading h1{margin:0 0 5px;color:#000}
  .print-heading p{margin:0;color:#444;font-size:12px}
  .table-wrap{overflow:visible;border:0}
  table{display:table;width:100%;min-width:0;font-size:11px;border-collapse:collapse;table-layout:fixed;border:1.5px solid #444}
  thead{display:table-header-group}
  thead th{position:static}
  tbody{display:table-row-group}
  tr{display:table-row!important;box-shadow:none!important;break-inside:avoid;page-break-inside:avoid}
  th,td{display:table-cell!important;padding:7px 6px!important;border:1px solid #555!important;color:#000!important;background:#fff!important}
  td::before{display:none!important}
  th:nth-child(1),td:nth-child(1){width:5%}
  th:nth-child(2),td:nth-child(2){width:14%;white-space:nowrap;font-size:10px}
  th:nth-child(3),td:nth-child(3){width:14%;white-space:nowrap;font-size:10px}
  th:nth-child(4),td:nth-child(4){width:13%;white-space:nowrap}
  th:nth-child(5),td:nth-child(5){width:40%}
  th:nth-child(6),td:nth-child(6){width:14%;white-space:nowrap}
  .subject-cell{max-width:none;white-space:normal;line-height:1.45}
}
