:root {
    --font-body: "Noto Sans Arabic Variable", "Segoe UI", Tahoma, Arial, sans-serif;
    --font-display: "Noto Sans Arabic Variable", "Segoe UI", Tahoma, Arial, sans-serif;
    --ink: #16221c;
    --ink-soft: #34443b;
    --ink-muted: #748078;
    --canvas: #f4f5f2;
    --surface: #ffffff;
    --green: #0f4938;
    --green-deep: #092d23;
    --gold: #c89632;
    --gold-dark: #8b641b;
    --gold-pale: #fbf4e4;
    --line: #e3e7e3;
    --line-strong: #d5dbd6;
    --shadow-soft: 0 10px 30px rgba(23, 39, 30, .055);
    --shadow-card: 0 1px 2px rgba(17, 31, 23, .035), 0 12px 32px rgba(17, 31, 23, .045);
}

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; background: var(--canvas); }
body { margin: 0; min-height: 100%; font-family: var(--font-body); font-size: 15px; line-height: 1.55; background: var(--canvas); color: var(--ink); text-rendering: optimizeLegibility; }
a { color: var(--green); text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p { text-wrap: pretty; }
h1, h2, h3 { letter-spacing: -.025em; }
h1:focus { outline: none; }

.section-kicker { color: var(--gold-dark); font-size: .7rem; font-weight: 750; letter-spacing: .02em; }
.btn-gold, .btn-outline, .btn-quiet {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    border-radius: 11px;
    padding: .64rem 1rem;
    font-weight: 750;
    font-size: .84rem;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn-gold { color: #fff; background: #a87922; border: 1px solid #966a1c; box-shadow: 0 6px 16px rgba(139, 100, 27, .16); }
.btn-gold:hover { color: #fff; background: #926719; transform: translateY(-1px); box-shadow: 0 9px 22px rgba(139, 100, 27, .2); }
.btn-outline { background: #fff; color: var(--ink); border: 1px solid var(--line); }
.btn-outline:hover { border-color: #c8c4b8; }
.btn-quiet { color: var(--ink-soft); border: 1px solid transparent; }
.btn-quiet:hover { background: rgba(24, 61, 43, .05); }

.btn-primary { color: #fff; background: var(--green); border-color: var(--green); }
.btn-primary:hover { background: var(--green-deep); border-color: var(--green-deep); }
.btn:focus-visible, .btn-link:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible {
    outline: 3px solid rgba(201, 155, 67, .42);
    outline-offset: 2px;
    box-shadow: none;
}
.form-control:focus, .form-check-input:focus { border-color: var(--gold); box-shadow: 0 0 0 .2rem rgba(201, 155, 67, .18); }
.form-control, .form-select { min-height: 44px; border-color: var(--line-strong); border-radius: 10px; color: var(--ink); background-color: #fff; font-size: .84rem; }
.form-control::placeholder { color: #929b95; }
.valid.modified:not([type=checkbox]) { outline: 1px solid #2f8057; }
.invalid { outline: 1px solid #b92f38; }
.validation-message, .text-danger { color: #a9212b !important; }
.darker-border-checkbox.form-check-input { border-color: #7c847f; }
.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder { color: var(--bs-secondary-color); text-align: end; }
.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder { text-align: start; }

.module-empty {
    min-height: 64vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 24px;
    padding: 2rem;
    box-shadow: var(--shadow-soft);
}
.module-empty .module-icon { width: 70px; height: 70px; display: grid; place-items: center; border-radius: 22px; background: var(--gold-pale); color: var(--gold-dark); font-size: 1.8rem; margin-bottom: 1.2rem; }
.module-empty h1 { font: 700 clamp(2rem, 4vw, 3rem)/1.2 var(--font-display); margin: .35rem 0 .6rem; }
.module-empty p { color: var(--ink-muted); max-width: 580px; line-height: 1.9; margin: 0 0 1.4rem; }

.module-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1.35rem; }
.module-heading h1 { font:750 clamp(1.7rem,3vw,2.35rem)/1.25 var(--font-display); margin:.18rem 0 .28rem; }
.module-heading p { margin:0; color:var(--ink-muted); line-height:1.8; }
.work-card { background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:1.2rem; box-shadow:var(--shadow-card); margin-bottom:1rem; }
.work-card.compact { padding:1rem 1.3rem; }
.work-card h2 { font:750 1.18rem var(--font-display); margin:.15rem 0 .8rem; }
.card-title { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.card-title h2 { margin:.15rem 0 0; }
.form-grid-4,.form-grid-2 { display:grid; gap:.9rem; margin-bottom:1rem; }
.form-grid-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.form-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.form-grid-4 label,.form-grid-2 label,.work-card label { display:block; color:var(--ink-soft); font-size:.78rem; font-weight:800; margin-bottom:.4rem; }
.span-2 { grid-column:span 2; }
.action-field { display:flex; align-items:end; }
.action-field > * { width:100%; }
.inline-actions { display:flex; align-items:center; gap:.7rem; margin-top:.8rem; }
.inline-actions.end { justify-content:flex-end; }
.full-button { width:100%; }
.field-note,.formula-note { color:var(--ink-muted); font-size:.78rem; line-height:1.8; margin:.75rem 0 0; }
.formula-note { background:var(--gold-pale); border:1px solid #efe0b9; border-radius:12px; padding:.8rem 1rem; }
.subhead { font-size:.82rem; color:var(--gold-dark); border-top:1px solid var(--line); padding-top:1rem; margin:1rem 0 .7rem; }
.notice { border:1px solid #d9c589; background:#fff9e9; color:#634a18; border-radius:12px; padding:.8rem 1rem; margin-bottom:1rem; }
.table-wrap { overflow-x:auto; }
.data-table { width:100%; border-collapse:collapse; min-width:720px; }
.data-table th,.data-table td { padding:.85rem .8rem; text-align:right; border-bottom:1px solid #f0eee8; font-size:.84rem; }
.data-table th { color:var(--ink-muted); font-size:.72rem; }
.cell-sub { display:block; color:var(--ink-muted); margin-top:.2rem; font-size:.7rem; }
.balance-due { color:#a24334; font-weight:800; }
.balance-credit { color:#27704b; font-weight:800; }
.status-pill { display:inline-flex; align-items:center; justify-content:center; min-height:32px; border-radius:99px; border:1px solid #dce9df; background:#f0f7f2; color:#326147; padding:.25rem .7rem; font-size:.72rem; font-weight:800; }
.link-button { border:0; background:transparent; color:var(--green); font-weight:800; cursor:pointer; }
.link-button.danger { color:#a33b42; }
.search-box { max-width:260px; }
.empty-inline { text-align:center; color:var(--ink-muted); padding:2.3rem; background:#fafaf7; border-radius:14px; border:1px dashed #ddd9cc; }
.two-column { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.stack-list { display:grid; gap:.5rem; margin-bottom:1rem; }
.stack-item { display:flex; align-items:center; justify-content:space-between; gap:1rem; background:#fafaf7; border:1px solid var(--line); border-radius:12px; padding:.75rem .85rem; }
.stack-item small { display:block; color:var(--ink-muted); margin-top:.2rem; }
.metric-grid.prices { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }
.metric-grid .metric-card { background:#fff; border:1px solid var(--line); border-radius:17px; padding:1.1rem; }
.metric-grid .metric-card span,.metric-grid .metric-card small { display:block; color:var(--ink-muted); }
.metric-grid .metric-card strong { display:block; font:700 1.6rem var(--font-display); margin:.55rem 0; }
.calculation-total { font:700 1.35rem var(--font-display); color:var(--gold-dark); }
.status-select { min-width:130px; }
.quick-grid { display:grid; grid-template-columns:1fr 1fr; padding:1rem; gap:.7rem; }
.quick-grid a { display:flex; align-items:center; gap:.8rem; min-height:70px; border:1px solid var(--line); border-radius:14px; padding:.75rem; font-weight:800; background:#fafaf7; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.quick-grid a:hover { transform:translateY(-2px); border-color:#d6c69f; box-shadow:0 10px 25px rgba(34,50,40,.07); }
.quick-icon { width:40px; height:40px; flex:0 0 40px; display:grid; place-items:center; border-radius:11px; color:var(--gold-dark); background:var(--gold-pale); }
.report-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.report-list { margin:0; }
.report-list div { display:flex; justify-content:space-between; padding:.65rem 0; border-bottom:1px solid var(--line); }
.report-list dt { color:var(--ink-muted); font-weight:normal; }.report-list dd { margin:0; font-weight:800; }
.print-header { display:none; }
.invoice-sheet { max-width:900px; margin:0 auto 1rem; background:#fff; padding:2rem; border:1px solid var(--line); border-radius:18px; }
.invoice-sheet>header { display:flex; justify-content:space-between; align-items:center; border-bottom:2px solid var(--green); padding-bottom:1rem; margin-bottom:1rem; }
.invoice-sheet>header>div:first-child { display:flex; gap:.8rem; align-items:center; }.invoice-sheet h1{margin:0;font:700 1.6rem var(--font-display)}.invoice-sheet p{margin:.2rem 0;color:var(--ink-muted)}
.invoice-number { text-align:left; display:flex; flex-direction:column; }.invoice-number strong{font:700 1.8rem var(--font-display);color:var(--gold-dark)}
.invoice-meta { display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;background:#fafaf7;border-radius:12px;padding:1rem;margin-bottom:1rem}.invoice-meta small,.invoice-meta strong{display:block}.invoice-meta small{color:var(--ink-muted);margin-bottom:.3rem}
.invoice-totals { width:min(100%,360px);margin:1rem 0 1rem auto}.invoice-totals div{display:flex;justify-content:space-between;padding:.45rem .2rem;border-bottom:1px solid var(--line)}.invoice-totals .grand{font-size:1.15rem;color:var(--gold-dark);border-bottom:2px solid var(--gold)}

@media (max-width:1050px){.form-grid-4,.metric-grid.prices,.report-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:700px){.module-heading,.card-title{align-items:stretch;flex-direction:column}.form-grid-4,.form-grid-2,.two-column,.metric-grid.prices,.report-grid,.quick-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.inline-actions{align-items:stretch;flex-direction:column}.inline-actions>*{width:100%}.search-box{max-width:none}}
@media print {.no-print,.sidebar,.top-row,.topbar{display:none!important}.app-shell,.workspace{display:block!important}.content,.content-shell{max-width:none!important;padding:0!important}.print-header{display:block}.work-card{box-shadow:none;break-inside:avoid}.report-grid{grid-template-columns:repeat(2,1fr)}body{background:#fff}}

.account-page { min-height: calc(100vh - 165px); display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(2rem, 6vw, 6rem); max-width: 1080px; margin: 0 auto; }
.account-intro h1 { font: 700 clamp(2.7rem, 5vw, 4.4rem)/1.12 var(--font-display); margin: .45rem 0 .8rem; }
.account-intro > p { color: var(--ink-muted); line-height: 1.9; max-width: 460px; }
.security-points { display: grid; gap: .7rem; margin-top: 1.5rem; color: #4c5b52; font-size: .83rem; }
.security-points span { display:flex; align-items:center; gap:.65rem; }
.security-points span i { width:28px; height:28px; display:grid; place-items:center; border-radius:8px; background:#e8f1eb; color:#42815d; font-size:.76rem; }
.account-card { background: #fff; border: 1px solid var(--line); border-radius: 24px; padding: clamp(1.35rem, 4vw, 2.5rem); box-shadow: 0 25px 65px rgba(29,45,35,.09); }
.account-card h2 { font: 700 1.8rem var(--font-display); margin: 0 0 .3rem; }
.form-help { color: var(--ink-muted); font-size: .82rem; margin-bottom: 1.35rem; }
.account-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem 1rem; margin-top: 1.2rem; font-size: .78rem; }
.account-links a { color: var(--green); font-weight: 700; }
.external-login { margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.external-login h3 { font-size: .8rem; color: var(--ink-muted); }
.external-login-empty { display:flex; align-items:center; gap:.65rem; padding:.75rem; border-radius:10px; background:#f7f7f3; color:var(--ink-muted); font-size:.74rem; line-height:1.6; }
.external-login-empty i { color:var(--gold-dark); }
.btn-primary i { margin-left:.35rem; }

@media (max-width: 850px) {
    .account-page { grid-template-columns: 1fr; gap: 1.5rem; }
    .account-intro { text-align: center; }
    .account-intro > p { margin-inline: auto; }
    .security-points { display: none; }
}

.blazor-error-boundary { background: #9c2730; padding: 1rem; color: #fff; }
.blazor-error-boundary::after { content: "حدث خطأ غير متوقع."; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
