/* ============================================================
   هلال — Hilal Theme
   سماء ليلية + هلال ذهبي — أناقة عربية RTL
   ============================================================ */

:root {
    --bg-1: #070b1f;
    --bg-2: #10173a;
    --bg-3: #1b1f4d;

    --gold-1: #f6d788;
    --gold-2: #e3b34c;
    --gold-3: #c9982f;

    --text: #f0f2ff;
    --muted: #a7b0d8;
    --faint: #6b7499;

    --glass: rgba(13, 17, 40, 0.55);
    --glass-border: rgba(255, 255, 255, 0.09);
    --field: rgba(9, 12, 32, 0.65);
    --field-border: rgba(255, 255, 255, 0.14);

    --paper: #ffffff;
    --paper-text: #1c2340;
    --ink-muted: #6d7694;
    --table-head: #182252;
    --fri: #c0392b;

    --radius: 18px;
    --radius-sm: 12px;
}

* { box-sizing: border-box; }

html, body { margin: 0; padding: 0; }

body {
    font-family: 'Tajawal', 'Segoe UI', Tahoma, sans-serif;
    color: var(--text);
    background:
        radial-gradient(1100px 500px at 85% -10%, rgba(99, 102, 241, 0.22), transparent 60%),
        radial-gradient(900px 600px at 10% 110%, rgba(201, 152, 47, 0.10), transparent 55%),
        linear-gradient(160deg, var(--bg-1) 0%, var(--bg-2) 55%, var(--bg-3) 100%);
    background-attachment: fixed;
    min-height: 100vh;
}

/* ── نجوم الخلفية ── */
body::before, body::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
}
body::before {
    background-image:
        radial-gradient(1.4px 1.4px at 12% 22%, rgba(255,255,255,.85) 50%, transparent 51%),
        radial-gradient(1px 1px at 34% 8%, rgba(255,255,255,.55) 50%, transparent 51%),
        radial-gradient(1.6px 1.6px at 58% 30%, rgba(246,215,136,.8) 50%, transparent 51%),
        radial-gradient(1px 1px at 72% 12%, rgba(255,255,255,.5) 50%, transparent 51%),
        radial-gradient(1.3px 1.3px at 88% 38%, rgba(255,255,255,.7) 50%, transparent 51%),
        radial-gradient(1px 1px at 22% 64%, rgba(255,255,255,.45) 50%, transparent 51%),
        radial-gradient(1.5px 1.5px at 47% 78%, rgba(246,215,136,.6) 50%, transparent 51%),
        radial-gradient(1px 1px at 66% 58%, rgba(255,255,255,.5) 50%, transparent 51%),
        radial-gradient(1.2px 1.2px at 92% 72%, rgba(255,255,255,.65) 50%, transparent 51%),
        radial-gradient(1px 1px at 8% 88%, rgba(255,255,255,.4) 50%, transparent 51%);
    animation: twinkle 6s ease-in-out infinite alternate;
}
body::after {
    background-image:
        radial-gradient(1px 1px at 40% 45%, rgba(255,255,255,.4) 50%, transparent 51%),
        radial-gradient(1.1px 1.1px at 80% 85%, rgba(255,255,255,.55) 50%, transparent 51%),
        radial-gradient(1px 1px at 15% 45%, rgba(255,255,255,.35) 50%, transparent 51%),
        radial-gradient(1.3px 1.3px at 55% 90%, rgba(255,255,255,.5) 50%, transparent 51%);
    animation: twinkle 8s ease-in-out infinite alternate-reverse;
}
@keyframes twinkle { from { opacity: .55; } to { opacity: 1; } }

main { position: relative; z-index: 1; }

/* ── الترويسة / العلامة ── */
.brand {
    text-align: center;
    padding: 3.2rem 1.5rem 1.6rem;
}
.brand .crescent {
    width: 84px;
    height: 84px;
    filter: drop-shadow(0 0 26px rgba(227, 179, 76, 0.45));
    animation: float 7s ease-in-out infinite;
}
@keyframes float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-9px) rotate(4deg); }
}
.brand h1 {
    font-family: 'Amiri', 'Tajawal', serif;
    font-size: 2.6rem;
    margin: .9rem 0 .35rem;
    background: linear-gradient(180deg, var(--gold-1), var(--gold-3));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    letter-spacing: .5px;
}
.brand p.tagline {
    margin: 0;
    color: var(--muted);
    font-size: 1.02rem;
    font-weight: 500;
}
.brand .divider {
    width: 72px;
    height: 2px;
    margin: 1.1rem auto 0;
    background: linear-gradient(90deg, transparent, var(--gold-2), transparent);
    border-radius: 2px;
}

/* ── البطاقة الزجاجية ── */
.card {
    max-width: 780px;
    margin: 0 auto 3rem;
    background: var(--glass);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius);
    padding: 1.9rem 1.9rem 1.7rem;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 24px 60px rgba(2, 4, 18, 0.55);
}

/* ── النموذج ── */
.row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.05rem 1.1rem; }

.field label {
    display: block;
    margin-bottom: .45rem;
    font-weight: 700;
    font-size: .88rem;
    color: var(--muted);
}
.field label .req { color: var(--gold-2); }

select, input[type="number"] {
    width: 100%;
    padding: .78rem .95rem;
    font-family: inherit;
    font-size: .98rem;
    font-weight: 500;
    color: var(--text);
    background: var(--field);
    border: 1px solid var(--field-border);
    border-radius: var(--radius-sm);
    outline: none;
    transition: border-color .18s, box-shadow .18s;
    appearance: none;
    -webkit-appearance: none;
}
select {
    padding-left: 2.4rem;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23a7b0d8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: left .95rem center;
    cursor: pointer;
}
select option {
    background: #10173a;
    color: var(--text);
}
select:focus, input[type="number"]:focus {
    border-color: var(--gold-2);
    box-shadow: 0 0 0 3px rgba(227, 179, 76, 0.18);
}
input[type="number"] { cursor: text; }

/* ── الأزرار ── */
.actions {
    margin-top: 1.5rem;
    padding-top: 1.35rem;
    border-top: 1px solid var(--glass-border);
    display: flex;
    gap: .8rem;
}
button.btn {
    flex: 1;
    padding: .85rem 1.2rem;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 800;
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
    cursor: pointer;
    transition: transform .15s, box-shadow .18s, filter .18s;
}
button.btn.primary {
    background: linear-gradient(180deg, var(--gold-1), var(--gold-3));
    color: #241a04;
    box-shadow: 0 10px 26px rgba(227, 179, 76, 0.28);
}
button.btn.primary:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(227, 179, 76, 0.4); }
button.btn.ghost {
    background: rgba(255, 255, 255, 0.05);
    border-color: var(--field-border);
    color: var(--text);
}
button.btn.ghost:hover { background: rgba(255, 255, 255, 0.1); transform: translateY(-2px); }
button.btn:active { transform: translateY(0); }

/* ── التذييل ── */
footer {
    position: relative;
    z-index: 1;
    text-align: center;
    padding: 0 1rem 2.4rem;
    color: var(--faint);
    font-size: .82rem;
}
footer .crescent-mini { vertical-align: -3px; margin-inline-end: .35rem; }

/* ============================================================
   صفحة التقويم (الشبكة)
   ============================================================ */

.page-head { text-align: center; padding: 2.6rem 1.5rem 1.4rem; }
.page-head h1 {
    font-family: 'Amiri', 'Tajawal', serif;
    font-size: 1.9rem;
    margin: 0 0 .4rem;
    background: linear-gradient(180deg, var(--gold-1), var(--gold-3));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.page-head .sub { color: var(--muted); font-size: .95rem; }

.toolbar {
    display: flex;
    gap: .7rem;
    justify-content: center;
    margin: 0 auto 1.6rem;
    flex-wrap: wrap;
}
.toolbar .btn {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .6rem 1.25rem;
    font-family: inherit;
    font-size: .92rem;
    font-weight: 700;
    border-radius: var(--radius-sm);
    text-decoration: none;
    border: 1px solid transparent;
    cursor: pointer;
    transition: transform .15s, box-shadow .18s, background .18s;
}
.toolbar .btn.gold {
    background: linear-gradient(180deg, var(--gold-1), var(--gold-3));
    color: #241a04;
    box-shadow: 0 8px 22px rgba(227, 179, 76, 0.26);
}
.toolbar .btn.gold:hover { transform: translateY(-2px); }
.toolbar .btn.glass {
    background: rgba(255, 255, 255, 0.05);
    border-color: var(--field-border);
    color: var(--text);
}
.toolbar .btn.glass:hover { background: rgba(255, 255, 255, 0.1); transform: translateY(-2px); }

/* ── الورقة (التقويم المعروض) ── */
.paper-wrap { max-width: 980px; margin: 0 auto 3rem; padding: 0 1rem; }
.paper {
    background: var(--paper);
    color: var(--paper-text);
    border-radius: var(--radius);
    box-shadow: 0 28px 70px rgba(2, 4, 18, 0.6);
    padding: 1.6rem 1.6rem 1.8rem;
    overflow: hidden;
}
.paper .main-title {
    font-family: 'Amiri', 'Tajawal', serif;
    text-align: center;
    font-size: 1.5rem;
    font-weight: 700;
    color: #141a3c;
    margin: 0 0 .2rem;
}
.paper .sub-line {
    text-align: center;
    color: var(--ink-muted);
    font-size: .85rem;
    margin: 0 0 1.2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e6e9f4;
}

/* الجدول الشهري/الأسبوعي */
.full-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 6px;
    table-layout: fixed;
}
.full-table th {
    padding: .8rem .3rem;
    background: var(--table-head);
    color: #fff;
    font-weight: 800;
    font-size: .95rem;
    border-radius: 10px;
}
.full-table th.fri-h { background: #7c2d24; }
.full-table td {
    background: #f4f6fc;
    border-radius: 12px;
    padding: .9rem .5rem 1rem;
    vertical-align: top;
    height: 104px;
    transition: background .15s, transform .15s;
}
.full-table td:hover { background: #eef0fa; }
.full-table td.empty { background: transparent; }
.full-table td .p {
    font-weight: 800;
    font-size: 1.5rem;
    color: #141a3c;
    margin-bottom: .35rem;
    line-height: 1;
}
.full-table td .s {
    color: var(--ink-muted);
    font-size: .95rem;
    font-weight: 600;
}
.full-table td.fri .p { color: var(--fri); }
.full-table td.fri .s { color: #d98b80; }

/* ── الشبكة السنوية ── */
.year-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.1rem;
}
.month-card {
    background: #f7f8fd;
    border: 1px solid #e6e9f4;
    border-radius: 14px;
    padding: .6rem .55rem .7rem;
    transition: box-shadow .18s, transform .18s;
}
.month-card:hover {
    box-shadow: 0 10px 26px rgba(20, 26, 60, 0.12);
    transform: translateY(-2px);
}
.month-card .month-name {
    font-weight: 800;
    text-align: center;
    font-size: .92rem;
    color: var(--table-head);
    padding: .35rem 0 .5rem;
}
.mini { width: 100%; border-collapse: collapse; table-layout: fixed; }
.mini th {
    font-size: .68rem;
    font-weight: 700;
    color: var(--ink-muted);
    text-align: center;
    padding: .25rem 0;
    border-bottom: 1px solid #e6e9f4;
}
.mini th.fri-h { color: var(--fri); }
.mini td { text-align: center; padding: .18rem 0; height: 1.9rem; vertical-align: middle; }
.mini .dp { font-size: .85rem; font-weight: 700; color: #1c2340; line-height: 1.05; }
.mini .ds { font-size: .6rem; color: #a0a7bf; line-height: 1.1; }
.mini .fri .dp { color: var(--fri); }

/* ── خيارات منتقاة (pills) ── */
.pills-field { margin-top: 1.05rem; }
.pills-field label .hint { color: var(--faint); font-weight: 500; font-size: .8rem; }
.pills { display: flex; flex-wrap: wrap; gap: .5rem; }
.pill { position: relative; cursor: pointer; }
.pill input { position: absolute; opacity: 0; pointer-events: none; }
.pill span {
    display: inline-block;
    padding: .45rem .95rem;
    font-size: .88rem;
    font-weight: 700;
    color: var(--muted);
    background: var(--field);
    border: 1px solid var(--field-border);
    border-radius: 999px;
    transition: all .16s;
}
.pill:hover span { border-color: var(--gold-2); color: var(--text); }
.pill input:checked + span {
    background: linear-gradient(180deg, var(--gold-1), var(--gold-3));
    color: #241a04;
    border-color: transparent;
    box-shadow: 0 4px 14px rgba(227, 179, 76, 0.3);
}

/* ── أخطاء النموذج ── */
.form-errors {
    margin-top: 1rem;
    padding: .8rem 1rem;
    background: rgba(192, 57, 43, 0.12);
    border: 1px solid rgba(192, 57, 43, 0.45);
    border-radius: var(--radius-sm);
    color: #f3b6ae;
    font-size: .9rem;
}
.form-errors div { margin: .15rem 0; }

/* ── ملاحظة فراغ الفترة ── */
.paper .note { text-align: center; color: var(--ink-muted); padding: 2rem 0; }

/* ── الوضع المزدوج: إبراز التاريخين معاً ── */
.paper.dual .full-table td .s {
    font-size: 1.15rem;
    font-weight: 700;
    color: #8a6d1f;
}
.paper.dual .mini .ds { font-size: .72rem; font-weight: 700; color: #a08430; }

/* ── أقسام الأشهر المتتالية (فترة شهرية) ── */
.month-section { margin-top: 1.7rem; }
.month-section:first-of-type { margin-top: 0; }
.month-section .section-title {
    font-family: 'Amiri', 'Tajawal', serif;
    font-size: 1.18rem;
    font-weight: 700;
    color: var(--table-head);
    margin: 0 0 .75rem;
    padding-right: .7rem;
    border-right: 4px solid var(--gold-2);
    border-radius: 2px;
}

/* ── استجابة ── */
@media (max-width: 900px) {
    .year-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
    .row { grid-template-columns: 1fr; }
    .card { padding: 1.4rem 1.2rem; }
    .actions { flex-direction: column; }
    .year-grid { grid-template-columns: 1fr; }
    .brand h1 { font-size: 2.1rem; }
    .full-table { border-spacing: 4px; }
    .full-table td .p { font-size: 1.1rem; }
}

/* ── طباعة ── */
@media print {
    body { background: #fff !important; }
    body::before, body::after { display: none; }
    .toolbar, footer, .brand { display: none; }
    .paper-wrap { max-width: none; padding: 0; }
    .paper { box-shadow: none; padding: 0; border-radius: 0; }
    .month-card { break-inside: avoid; }
    .full-table td { background: #fff; border: 1px solid #cbd5e1; border-radius: 0; }
    .full-table th { border-radius: 0; }
}
