:root{
  --bg:#f4fbf9;--panel:#ffffff;--ink:#16312d;--muted:#6b7f7a;--line:#dcece8;
  --accent:#0f9f91;--accent-dark:#08786f;--mint:#b9f3df;--mint-soft:#eafaf4;--soft:#f7fcfa;
  --danger:#b84343;--warning:#b78018;--shadow:0 12px 34px rgba(15,108,97,.10);--radius:18px;--font-size:15px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Cairo","Tajawal","Segoe UI",Tahoma,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:var(--font-size);line-height:1.7}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,#d9fbef 0,transparent 34%),linear-gradient(135deg,#f6fffc,#edf9f6)}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:0 24px 70px rgba(8,120,111,.13)}.brand-mark,.side-logo{display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),#54c9a9);color:#fff;font-weight:800;box-shadow:0 8px 18px rgba(15,159,145,.25)}.brand-mark{width:74px;height:74px;border-radius:24px;margin:auto;font-size:28px}.login-card h1{text-align:center;margin:16px 0 0;font-size:25px}.login-card p{text-align:center;color:var(--muted);margin:4px 0 24px}.login-card label{display:block;margin-top:13px;font-weight:700}.login-card input,.login-card select{width:100%;margin-top:6px}.hint{margin-top:16px;padding:12px;border-radius:14px;background:var(--mint-soft);color:#42635d;font-size:13px}
.login-brand{min-height:88px;display:grid;place-items:center;margin:auto;color:var(--accent-dark);font-weight:900;font-size:22px}.login-brand img{max-height:92px;max-width:190px;object-fit:contain}.login-card h1{margin-top:8px}.side-logo{background:rgba(255,255,255,.18);overflow:hidden}.side-logo img{max-width:38px;max-height:36px;object-fit:contain}.side-logo span{font-size:8px;text-align:center;line-height:1.3}.passkey-prompt{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;margin:0 0 14px;background:var(--mint-soft);border:1px solid var(--line);border-radius:14px}.passkey-prompt>div{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:620px){.passkey-prompt{flex-direction:column;align-items:stretch}}
input,select,textarea{border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);padding:11px 12px;outline:none;transition:.2s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,159,145,.10)}textarea{width:100%;resize:vertical}.primary,.ghost,.danger,.icon-btn,.ai-mini,.action,.task-btn,.tool-card{border:0;border-radius:12px;padding:10px 15px;font-weight:700}.primary{background:linear-gradient(135deg,var(--accent),#35b89a);color:#fff;box-shadow:0 8px 18px rgba(15,159,145,.18)}.primary:hover{transform:translateY(-1px);box-shadow:0 11px 24px rgba(15,159,145,.24)}.ghost{background:#fff;color:var(--accent-dark);border:1px solid var(--line)}.ghost:hover{background:var(--mint-soft)}.danger{background:#fff1f1;color:var(--danger);border:1px solid #f3caca}.full{width:100%;margin-top:22px}.compact{padding:9px 14px}.small{font-size:12px;padding:7px 10px}.icon-btn{width:42px;height:42px;background:#fff;border:1px solid var(--line);font-size:20px;padding:0}
.topbar{height:78px;position:fixed;top:0;right:0;left:0;z-index:30;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px}.title-block{display:flex;align-items:center;gap:12px}.title-block h2{font-size:18px;margin:0}.title-block span{font-size:12px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.status-chip{font-size:12px;border-radius:999px;padding:7px 11px;background:#f1f5f4;color:#53645f;border:1px solid var(--line)}.status-chip.ok{background:#e8fbf4;color:#14765e;border-color:#c7efdf}.status-chip.bad{background:#fff2ee;color:#aa503d;border-color:#f2d1c8}.status-chip.soft{background:var(--mint-soft);color:var(--accent-dark)}
.sidebar{position:fixed;top:78px;right:0;bottom:0;width:270px;background:linear-gradient(180deg,#0b8177,#075f58);color:#fff;padding:18px 14px;overflow:auto;z-index:20;transition:.25s}.side-brand{display:flex;align-items:center;gap:10px;padding:8px 6px 18px;border-bottom:1px solid rgba(255,255,255,.14);margin-bottom:12px}.side-logo{width:42px;height:42px;border-radius:14px;background:rgba(255,255,255,.18);box-shadow:none}.side-brand b{display:block;font-size:14px}.side-brand span{display:block;font-size:11px;color:#cdebe5;margin-top:2px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav button{width:100%;border:0;border-radius:12px;background:transparent;color:#e9fffa;text-align:right;padding:10px 11px;display:flex;align-items:center;gap:10px;font-weight:600}.sidebar nav button:hover{background:rgba(255,255,255,.12)}.nav-icon{width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.12);display:grid;place-items:center;flex:none}.nav-icon svg{width:17px;height:17px;stroke:currentColor}.sidebar.collapsed{transform:translateX(100%)}
.content{margin-right:270px;padding:106px 26px 36px;min-height:100vh;transition:.25s}.content.expanded{margin-right:0}.page{display:none}.page.active{display:block}.hero{background:linear-gradient(135deg,#087c73,#11a993 60%,#65cda9);color:#fff;border-radius:28px;padding:28px 30px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.09);left:-70px;top:-110px}.hero h1{margin:4px 0 7px;font-size:28px}.hero p{margin:0;color:#ddfff6}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.4px;color:var(--accent-dark);background:var(--mint-soft);padding:5px 10px;border-radius:999px}.hero .eyebrow{background:rgba(255,255,255,.15);color:#fff}.hero-badge{width:86px;height:86px;border-radius:28px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:30px;font-weight:800;z-index:1}
.quick-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:18px 0}.quick-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px;display:flex;flex-direction:column;box-shadow:0 7px 20px rgba(15,108,97,.05)}.quick-card .q-icon{font-size:11px;color:var(--accent-dark);background:var(--mint-soft);align-self:flex-start;padding:4px 8px;border-radius:999px}.quick-card b{font-size:25px;margin-top:8px}.quick-card small{color:var(--muted)}.ai-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 18px;margin:16px 0}.ai-banner strong{color:var(--accent-dark)}.ai-banner p{margin:3px 0 0;color:var(--muted);font-size:13px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;min-height:178px;transition:.22s;box-shadow:0 7px 22px rgba(15,108,97,.045);cursor:pointer;position:relative;overflow:hidden}.card:before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--accent),#83dabd);opacity:0;transition:.2s}.card:hover{transform:translateY(-4px);border-color:#bce7dc;box-shadow:0 18px 34px rgba(15,108,97,.11)}.card:hover:before{opacity:1}.ico{width:48px;height:48px;border-radius:16px;background:linear-gradient(145deg,var(--mint-soft),#d5f7eb);display:grid;place-items:center;color:var(--accent-dark)}.ico svg{width:25px;height:25px;stroke:currentColor}.card h3{font-size:16px;margin:13px 0 6px}.card p{font-size:12.5px;color:var(--muted);margin:0}.module-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px}.module-head h1{margin:0;font-size:25px}.module-head p{margin:3px 0 0;color:var(--muted)}.module-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.panel,.subpanel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 7px 22px rgba(15,108,97,.04)}.panel.wide{grid-column:1/-1}.panel h3,.subpanel h3{margin-top:0}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.action{background:var(--soft);border:1px solid var(--line);color:var(--accent-dark);text-align:right}.action:hover{background:var(--mint-soft)}.ai-mini{background:#eafaf4;color:#14745f}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{background:var(--soft);border-radius:14px;padding:13px}.stat b{display:block;font-size:22px;color:var(--accent-dark)}.stat span{color:var(--muted);font-size:12px}.muted{color:var(--muted)}table{width:100%;border-collapse:collapse}th,td{padding:11px;border-bottom:1px solid var(--line);text-align:right;font-size:13px}th{background:#f5fbf9;color:#3f5d56}.pill{background:var(--mint-soft);color:var(--accent-dark);border-radius:999px;padding:4px 9px}
.ai-layout{display:grid;grid-template-columns:300px 1fr;gap:15px}.task-grid{display:grid;gap:8px}.task-btn{background:var(--soft);border:1px solid var(--line);text-align:right}.task-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.privacy-box,.note-box{margin-top:16px;border-radius:14px;background:#f3fbf8;padding:13px;color:#41645c}.privacy-box p,.note-box p{margin:4px 0}.ai-chat-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.ai-chat-head span{display:block;color:var(--muted);font-size:12px}.ai-head-actions{display:flex;gap:7px;align-items:center}.provider-badge{background:var(--mint-soft);color:var(--accent-dark);padding:6px 9px;border-radius:999px}.ai-messages{height:350px;overflow:auto;padding:10px;background:#f7fbfa;border-radius:15px;margin:14px 0;display:flex;flex-direction:column;gap:9px}.msg{max-width:82%;padding:10px 12px;border-radius:14px;white-space:pre-wrap}.msg.user{align-self:flex-start;background:var(--accent);color:#fff}.msg.assistant{align-self:flex-end;background:#fff;border:1px solid var(--line)}.msg.error{background:#fff0f0;color:#9f4141}.msg.loading{background:#fff8e9;color:#8a6517}.ai-send-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}
.settings-head{margin-bottom:14px}.system-status-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.system-status{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;display:flex;align-items:center;gap:9px}.system-status small{display:block;color:var(--muted);font-size:10px}.system-status b{display:block;font-size:12px;margin-top:1px}.status-dot,.dot{width:10px;height:10px;border-radius:50%;background:#c8d3d0;flex:none}.status-dot.ok,.dot.ok{background:#22ad7a;box-shadow:0 0 0 4px #e2f8ef}.status-dot.bad,.dot.bad{background:#df6d5d;box-shadow:0 0 0 4px #fff0ec}.settings-shell{display:grid;grid-template-columns:240px minmax(0,1fr);gap:14px;align-items:start}.settings-nav{background:#fff;border:1px solid var(--line);border-radius:20px;padding:10px;position:sticky;top:94px}.settings-nav button{width:100%;border:0;background:transparent;border-radius:12px;padding:10px 12px;text-align:right;color:#4b615c;font-weight:600}.settings-nav button:hover{background:var(--soft)}.settings-nav button.active{background:linear-gradient(135deg,var(--accent),#35b89a);color:#fff}.settings-content{min-width:0}.settings-tab{display:none;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 10px 28px rgba(15,108,97,.05)}.settings-tab.active{display:block}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:18px}.section-title h2{margin:0;font-size:21px}.section-title p{margin:3px 0 0;color:var(--muted);font-size:13px}.section-chip{background:var(--mint-soft);color:var(--accent-dark);padding:6px 10px;border-radius:999px;font-size:11px;font-weight:800}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label,.settings-tab>label,.provider-settings label{font-weight:700;color:#3d5650;font-size:12px}.form-grid input,.form-grid select,.settings-tab>label textarea,.provider-settings input,.settings-tab>label input,.settings-tab>label select{display:block;width:100%;margin-top:6px}.save-bar{display:flex;align-items:center;gap:10px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.save-feedback{font-size:12px;color:#168263;font-weight:700}.asset-section{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.asset-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.asset-section-head h3{margin:0;font-size:16px;color:#244c43}.asset-section-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.upload-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.signatures-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.single-upload-row{grid-template-columns:minmax(260px,420px)}.upload-card{border:1px dashed #9fd7ca;border-radius:18px;background:linear-gradient(180deg,#fbfffe,#f4fbf8);padding:16px;text-align:center;color:var(--accent-dark);cursor:pointer;transition:.18s ease;min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}.upload-card:hover{background:var(--mint-soft);border-color:var(--accent);transform:translateY(-1px)}.upload-card-title{display:block;font-size:13px;font-weight:800;color:#274d45}.upload-action{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;border-radius:10px;padding:7px 12px;font-size:11px;font-weight:800;box-shadow:0 5px 13px rgba(15,159,145,.14)}.upload-filename{display:block;color:var(--muted);font-size:10px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-preview{display:none;max-width:110px;max-height:64px;object-fit:contain;margin-top:4px;border-radius:8px;background:#fff;padding:4px;border:1px solid var(--line)}.upload-preview.visible{display:block}.signature-preview{max-width:150px;max-height:60px}.stamp-card{min-height:175px}.stamp-preview{max-width:110px;max-height:90px;border-radius:50%}.import-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}.import-box{background:var(--soft);border:1px dashed #addbd0;border-radius:18px;padding:20px}.import-box h3{margin:7px 0 3px}.import-box p{color:var(--muted);font-size:12px}.import-box input[type=file]{display:block;width:100%;margin:12px 0}.import-icon{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;background:var(--mint);color:var(--accent-dark);font-weight:800}.inline-msg{font-size:12px;margin-top:9px;color:var(--accent-dark)}.import-summary{display:grid;grid-template-columns:1fr;gap:9px}.import-summary>div{background:#fff;border:1px solid var(--line);border-radius:15px;padding:13px}.import-summary small{color:var(--muted);display:block}.import-summary b{display:block;font-size:19px;margin-top:2px;word-break:break-word}.table-wrap{overflow:auto;margin-top:15px;border:1px solid var(--line);border-radius:15px}.table-wrap table{min-width:720px}.two-col{display:grid;grid-template-columns:1fr 1.2fr;gap:13px}.users-list{display:grid;gap:8px}.user-row{display:flex;align-items:center;justify-content:space-between;background:var(--soft);border-radius:12px;padding:9px 11px}.user-row small{display:block;color:var(--muted)}.user-row button{border:0;background:#fff0f0;color:var(--danger);border-radius:8px;padding:5px 8px}.subheading{margin:20px 0 8px}.permissions input{width:17px;height:17px;accent-color:var(--accent)}.theme-preview{display:flex;align-items:center;gap:10px;background:var(--soft);border-radius:18px;padding:15px;margin-bottom:16px}.theme-preview p{margin:2px 0;color:var(--muted);font-size:12px}.theme-swatch{width:44px;height:44px;border-radius:14px;border:1px solid var(--line)}.primary-swatch{background:#0f9f91}.mint-swatch{background:#b9f3df}.white-swatch{background:#fff}.connection-card,.status-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:14px;margin:15px 0}.connection-card>div,.status-card>div{flex:1}.connection-card p,.status-card p{margin:3px 0 0;color:var(--muted);font-size:12px}.provider-settings{margin-top:12px;background:var(--soft);border-radius:15px;padding:14px}.provider-note p{margin:3px 0;color:var(--muted);font-size:12px}.provider-action{margin-top:10px}.scope-grid{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px}.scope-grid label{display:flex;align-items:center;gap:7px;background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:9px 11px;font-size:12px}.scope-grid input{accent-color:var(--accent)}.backup-actions{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:14px}.file-button{display:inline-flex;align-items:center}.log-list{display:grid;gap:7px;max-height:320px;overflow:auto}.log-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:8px 2px}.log-item b{font-size:12px}.log-item small{color:var(--muted)}.advanced-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tool-card{background:var(--soft);border:1px solid var(--line);text-align:right;color:var(--ink);padding:16px;display:block}.tool-card:hover{border-color:#a9d8cc;background:var(--mint-soft)}.tool-card b,.tool-card span{display:block}.tool-card span{color:var(--muted);font-size:12px;margin-top:4px}.danger-tool{border-color:#f0d2d2;background:#fffafa}.file-card{cursor:pointer}.integrity-result{margin-top:16px;background:#f7fbfa;border:1px solid var(--line);border-radius:15px;padding:14px}.version-card{margin-top:15px;background:linear-gradient(135deg,#0c8b7e,#40b899);color:#fff;border-radius:18px;padding:18px}.version-card span,.version-card b,.version-card small{display:block}.version-card b{font-size:24px}.version-card small{color:#ddfff5}.security-note{margin-top:12px;padding:13px;border-radius:14px;background:#fff8e9;color:#755b20}
@media(max-width:1200px){.cards{grid-template-columns:repeat(3,1fr)}.quick-stats,.system-status-grid{grid-template-columns:repeat(3,1fr)}.form-grid.three{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.sidebar{transform:translateX(100%)}.sidebar.open{transform:translateX(0)}.content{margin-right:0;padding-inline:16px}.cards{grid-template-columns:repeat(2,1fr)}.ai-layout,.module-grid,.settings-shell,.two-col,.import-grid{grid-template-columns:1fr}.settings-nav{position:static;display:flex;overflow:auto;gap:6px}.settings-nav button{white-space:nowrap;width:auto}.topbar{padding-inline:12px}.top-actions .status-chip{display:none}.form-grid,.form-grid.three,.form-grid.two{grid-template-columns:1fr}.system-status-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.cards,.quick-stats,.system-status-grid{grid-template-columns:1fr}.hero{padding:22px}.hero-badge{display:none}.ai-banner,.section-title,.connection-card{align-items:flex-start;flex-direction:column}.top-actions .ghost{display:none}.upload-row,.advanced-grid{grid-template-columns:1fr}}

@media(max-width:1200px){.signatures-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.upload-row,.signatures-grid,.single-upload-row{grid-template-columns:1fr}}

/* V4.2: international school contact number */
.phone-setting{grid-column:span 1}
.phone-composite{display:flex;align-items:stretch;gap:0;margin-top:6px;border:1px solid #cfe4df;border-radius:12px;overflow:hidden;background:#fff;transition:.18s ease}
.phone-composite:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,159,145,.10)}
.phone-composite .country-prefix{display:flex;align-items:center;justify-content:center;min-width:76px;padding:0 13px;background:linear-gradient(135deg,var(--accent),#35b89a);color:#fff;font-size:14px;font-weight:900;letter-spacing:.4px}
.phone-composite input{margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;direction:ltr;text-align:left;font-variant-numeric:tabular-nums}
.field-help{display:block;margin-top:6px;color:var(--muted);font-size:10px;line-height:1.6;font-weight:500}
.phone-preview{display:inline-flex;margin-top:6px;padding:5px 8px;border-radius:9px;background:#f4f7f6;color:#6f807c;font-size:11px;font-weight:800;direction:ltr}
.phone-preview.valid{background:#e7f9f2;color:#0d7f66}.phone-preview.invalid{background:#fff3e5;color:#9a5d08}

/* V4.4: NOUR Sheet2 importer + two-semester academic year + AI setup */
.academic-policy-note{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;border-right:4px solid var(--accent);background:linear-gradient(135deg,#f3fffb,#eefaf6)}.academic-policy-note b{color:var(--accent-dark)}.academic-policy-note span{color:var(--muted);font-size:12px}.ai-setup-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.ai-key-grid{margin-bottom:10px}.danger-text{color:#a94a4a!important;border-color:#e8c8c8!important}.provider-settings .inline-msg{margin-top:10px;padding:9px 11px;border-radius:10px;background:#fff;border:1px solid var(--line)}


/* V4.5 — التقويم والإجازات والمناسبات + المظهر الموسمي */
.calendar-day-status{margin:2px 0 16px;padding:11px 14px;border-radius:14px;display:flex;align-items:center;gap:9px;border:1px solid var(--line,#dcece8);background:#fff;color:#36534c;box-shadow:0 6px 18px rgba(24,99,87,.05)}
.calendar-day-status b{font-size:.94rem}.calendar-day-status small{color:var(--muted,#71837e)}.calendar-status-dot{width:9px;height:9px;border-radius:50%;background:#20b486;box-shadow:0 0 0 5px rgba(32,180,134,.1)}
.calendar-day-status.non-school-day{background:#fffaf0;border-color:#f3dfb7}.calendar-day-status.non-school-day .calendar-status-dot{background:#e5a329;box-shadow:0 0 0 5px rgba(229,163,41,.12)}
.occasion-reminders{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0 0 14px}.occasion-reminders.empty{display:none}.occasion-reminder{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#f6fffc,#effaf7);border:1px solid #cfeae3;border-radius:16px;padding:11px 13px}.occasion-reminder.today{background:linear-gradient(135deg,#fff9e9,#f3fff8);border-color:#d9d7a9}.occasion-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#dff8ef;color:#087c6e;font-size:18px}.occasion-reminder.today .occasion-icon{background:#fff0b8;color:#976900}.occasion-reminder div{display:flex;flex-direction:column;gap:2px}.occasion-reminder small{color:#6e827c}
.seasonal-banner{margin:0 0 16px;border-radius:18px;padding:13px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid rgba(15,159,145,.2);background:linear-gradient(120deg,#eafff8,#f8fffc);box-shadow:0 8px 24px rgba(15,159,145,.08)}.seasonal-banner>div{display:flex;align-items:center;gap:9px}.seasonal-banner small{display:block;color:#637a73}.seasonal-spark{font-size:20px}.preview-tag{font-size:.78rem;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.7);border:1px solid rgba(0,0,0,.06)}
body.seasonal-active .topbar{box-shadow:0 4px 20px rgba(15,159,145,.10)}body.seasonal-active .hero{border-color:rgba(15,159,145,.22)}body.seasonal-active[data-seasonal-theme="national"]{background-image:linear-gradient(180deg,rgba(25,151,104,.045),transparent 34%)}body.seasonal-active[data-seasonal-theme="founding"]{background-image:linear-gradient(180deg,rgba(151,104,57,.045),transparent 34%)}body.seasonal-active[data-seasonal-theme="teacher"]{background-image:linear-gradient(180deg,rgba(54,141,120,.045),transparent 34%)}body.seasonal-active[data-seasonal-theme="manager"]{background-image:linear-gradient(180deg,rgba(53,93,130,.04),transparent 34%)}body.seasonal-active[data-seasonal-theme="civil"]{background-image:linear-gradient(180deg,rgba(197,71,48,.035),transparent 34%)}
.calendar-section{margin-top:22px;padding-top:20px;border-top:1px solid var(--line,#dcece8)}.calendar-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.calendar-section-head h3{margin:0 0 4px;font-size:1.12rem}.calendar-section-head p{margin:0;color:var(--muted,#71837e)}.calendar-chip{background:#e9fbf5;color:#087d6d}.calendar-policy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 14px}.calendar-policy-card{background:#fff;border:1px solid var(--line,#dcece8);border-radius:15px;padding:13px;display:flex;flex-direction:column;gap:4px}.calendar-policy-card.locked{background:#f7fcfa}.calendar-policy-card span{color:#0d887a;font-weight:700}.calendar-policy-card small{color:#778a84;line-height:1.6}.calendar-controls-row{display:grid;grid-template-columns:1fr 1fr .75fr;gap:10px;margin:13px 0}.toggle-card{display:flex!important;align-items:center;gap:10px;background:#fff;border:1px solid var(--line,#dcece8);border-radius:14px;padding:11px 12px}.toggle-card>span{display:flex;flex-direction:column;gap:2px}.toggle-card small{color:#73857f}.calendar-split{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.calendar-editor{min-width:0}.subpanel-head h3{margin:0 0 4px}.subpanel-head p{margin:0 0 12px;color:#758781}.compact-grid{gap:9px!important}.inline-check{display:flex!important;align-items:center;gap:8px;min-height:44px}.calendar-table-wrap{margin-top:12px;max-height:310px;overflow:auto}.calendar-table-wrap table{min-width:570px}.calendar-table-wrap th,.calendar-table-wrap td{font-size:.82rem}.good-pill{background:#e5f9ef!important;color:#137552!important}.row-delete{border:0;background:#fff0ef;color:#b64239;padding:6px 9px;border-radius:9px;cursor:pointer}.auto-calendar-row{background:#f7fcfa}.auto-tag{font-size:.74rem;background:#e8f5f2;color:#25766b;border-radius:999px;padding:4px 8px}.seasonal-preview-box{margin-top:14px;display:grid;grid-template-columns:1fr minmax(180px,260px) auto auto;align-items:center;gap:10px;background:linear-gradient(135deg,#f7fffc,#f2faf8);border:1px solid #d8ece7;border-radius:16px;padding:13px}.seasonal-preview-box p{margin:3px 0 0;color:#73857f}.seasonal-preview-box select{width:100%}
@media(max-width:1050px){.calendar-policy-grid,.calendar-split,.calendar-controls-row{grid-template-columns:1fr}.seasonal-preview-box{grid-template-columns:1fr 1fr}.seasonal-preview-box>div{grid-column:1/-1}}
@media(max-width:650px){.seasonal-preview-box{grid-template-columns:1fr}.seasonal-preview-box>div{grid-column:auto}.calendar-day-status{align-items:flex-start;flex-wrap:wrap}}

/* V4.7 - student Sheet3 + matching workflow */
.student-import-flow{display:flex;align-items:stretch;gap:10px;margin:0 0 15px}.flow-step{flex:1;display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#f3fffb,#effaf7);border:1px solid var(--line);border-radius:15px;padding:12px}.flow-step>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:900;flex:none}.flow-step b,.flow-step small{display:block}.flow-step small{color:var(--muted);margin-top:2px;line-height:1.55}.flow-arrow{display:grid;place-items:center;color:var(--accent);font-size:22px;font-weight:900}.student-double-import{grid-template-columns:1fr 1fr}.student-import-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}.student-import-summary b{font-size:15px}.student-merge-report{min-height:48px}.student-preview-table{min-width:980px!important}.student-preview-table td:nth-child(2){direction:ltr;text-align:center;font-family:Consolas,monospace}.student-preview-table td:nth-child(7){direction:ltr;text-align:center}.student-preview-table td:nth-child(8){direction:ltr;text-align:center}@media(max-width:1000px){.student-double-import,.student-import-summary{grid-template-columns:1fr 1fr}.student-import-flow{flex-direction:column}.flow-arrow{transform:rotate(-90deg)}}@media(max-width:650px){.student-double-import,.student-import-summary{grid-template-columns:1fr}}


/* V4.9 — 27-sheet enrichment + full student review + explicit approval */
.student-approval-bar{margin:14px 0;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid #cfe8e1;border-radius:16px;background:linear-gradient(135deg,#f3fffb,#f8fcfb);box-shadow:0 6px 18px rgba(15,108,97,.05)}
.student-approval-bar>div{display:flex;flex-direction:column;gap:2px}.student-approval-bar b{color:var(--accent-dark)}.student-approval-bar small{color:var(--muted)}.student-approval-bar button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}
.student-full-preview{max-height:68vh;overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}.student-full-preview table{margin:0}.student-full-preview thead th{position:sticky;top:0;z-index:2;background:#edf9f6;box-shadow:0 1px 0 var(--line)}.student-full-preview tbody tr:nth-child(even){background:#fbfefd}.student-full-preview tbody tr:hover{background:#effaf6}.student-full-preview td,.student-full-preview th{white-space:nowrap}.student-full-preview td:nth-child(3){white-space:normal;min-width:260px}
@media(max-width:800px){.student-approval-bar{align-items:stretch;flex-direction:column}.student-approval-bar button{width:100%}.student-full-preview{max-height:62vh}}

/* V4.12 student review flags */
.review-badge{display:inline-block;max-width:260px;padding:5px 8px;border-radius:10px;background:#fff4dc;color:#8a5a00;border:1px solid #f1d49a;font-size:12px;line-height:1.55;font-weight:700;white-space:normal}
.review-ok{display:inline-block;padding:4px 8px;border-radius:999px;background:#e9fbf4;color:#16725f;font-size:12px;font-weight:700}
.student-preview-table th:last-child,.student-preview-table td:last-child{min-width:190px}


/* V4.13 - تنبيه متابعة الطلاب في لوحة التحكم */
.followup-quick-card{border-color:rgba(245,158,11,.28);background:linear-gradient(145deg,#fff,#fffaf0)}
.followup-quick-card .q-icon{background:#fff3d6;color:#a85b00}
.followup-quick-card b{color:#9a4f00}
.followup-quick-card em{display:block;margin-top:4px;font-style:normal;font-size:11px;color:#8b6a3c;white-space:nowrap}


/* V4.14 - Stable student barcode */
.student-barcode-note{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 0;padding:12px 14px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,#f2fffb,#f8fffc)}
.student-barcode-note b,.student-barcode-note small{display:block}.student-barcode-note small{margin-top:4px;color:var(--muted);line-height:1.6}.student-barcode-note button{white-space:nowrap}
.student-preview-table{min-width:1180px!important}.student-preview-table th:nth-child(9),.student-preview-table td:nth-child(9){min-width:190px;text-align:center}.student-preview-table th:nth-child(10),.student-preview-table td:nth-child(10){min-width:190px}
.student-barcode-box{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:176px;padding:4px 5px;border:1px solid #d7ebe5;border-radius:9px;background:#fff;direction:ltr}
.student-barcode-svg{display:block;width:168px;height:34px;fill:#102a27;background:#fff}.student-barcode-box code{font:700 10px/1.2 Consolas,monospace;letter-spacing:.45px;color:#0f766e;white-space:nowrap}
@media(max-width:800px){.student-barcode-note{align-items:stretch;flex-direction:column}.student-barcode-note button{width:100%}}

/* V4.15 - Full teacher/staff import table */
.staff-table-wrap{max-height:68vh;overflow:auto}
.staff-preview-table{min-width:2050px!important}
.staff-preview-table thead th{position:sticky;top:0;z-index:2;background:#edf9f6;box-shadow:0 1px 0 var(--line);white-space:nowrap}
.staff-preview-table td,.staff-preview-table th{white-space:nowrap}
.staff-preview-table td:nth-child(3),.staff-preview-table td:nth-child(6),.staff-preview-table td:nth-child(10),.staff-preview-table td:nth-child(13){white-space:normal;min-width:190px}
.staff-preview-table .ltr-cell{direction:ltr;text-align:center;font-variant-numeric:tabular-nums}

/* V4.16 - Staff approval workflow + editable user accounts */
.staff-approval-bar{margin:14px 0;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid #cfe8e1;border-radius:16px;background:linear-gradient(135deg,#f3fffb,#f8fcfb);box-shadow:0 6px 18px rgba(15,108,97,.05)}
.staff-approval-bar>div{display:flex;flex-direction:column;gap:2px}.staff-approval-bar b{color:var(--accent-dark)}.staff-approval-bar small{color:var(--muted)}.staff-approval-bar button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}
.user-form-actions{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.user-row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.user-row .user-row-actions button{padding:6px 10px;border-radius:9px;font-weight:700}
.user-row .user-row-actions .ghost{background:#fff;border:1px solid var(--line);color:var(--accent-dark)}
.user-row .user-row-actions .danger-mini{background:#fff0f0;border:1px solid #f2d2d2;color:var(--danger)}
.empty-user-list{padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:var(--soft);font-size:12px;text-align:center}
@media(max-width:800px){.staff-approval-bar{align-items:stretch;flex-direction:column}.staff-approval-bar button{width:100%}.user-row{align-items:flex-start;gap:10px;flex-direction:column}.user-row-actions{width:100%}.user-row-actions button{flex:1}}

/* V4.17 roles, permission scopes and principal delegation */
.manager-delegation-panel{margin-top:18px;border:1px solid rgba(15,159,145,.2);background:linear-gradient(135deg,#fff,#f3fffb)}
.delegation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.delegation-head h3{margin:0 0 5px}.delegation-head p{margin:0;color:var(--muted)}
.delegated-badge{display:inline-flex;margin-inline-start:7px;padding:3px 8px;border-radius:999px;background:#dcfce7;color:#166534;font-size:11px;font-weight:800;vertical-align:middle}
.permission-scope{min-width:240px;max-width:380px;white-space:normal;line-height:1.7;font-size:12px;color:#475569}.role-permissions th:nth-child(2){min-width:260px}.role-permissions td:first-child{min-width:190px}.role-permissions input[type="checkbox"]{width:18px;height:18px;accent-color:var(--primary)}
@media(max-width:900px){.delegation-head{flex-direction:column}.permission-scope{min-width:200px}}

.build-version-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#e8fbf5;color:#0f766e;font-weight:800;font-size:12px;border:1px solid #b9f3df;margin-inline-start:8px}


/* V4.18 — organizational roles and role-scoped navigation */
.settings-nav-symbol{display:inline-grid;place-items:center;width:20px;height:20px;margin-inline-end:4px;border-radius:6px;background:rgba(15,159,145,.10);color:var(--accent);font-weight:900}
.org-reference-note{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}
.organization-model-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0 18px}
.organization-model-card{position:relative;display:flex!important;flex-direction:column;gap:6px;min-height:138px;padding:15px;border:1px solid var(--line);border-radius:18px;background:#fff;cursor:pointer;transition:.18s ease}
.organization-model-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(15,118,110,.08);border-color:#a7ded2}
.organization-model-card.selected{border-color:var(--accent);background:linear-gradient(145deg,#fff,#effcf8);box-shadow:0 0 0 3px rgba(15,159,145,.08)}
.organization-model-card input{position:absolute;inset-inline-start:12px;top:12px;width:18px;height:18px;accent-color:var(--accent)}
.org-card-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,var(--accent),#4bc6a8);color:#fff;font-size:20px;font-weight:900}
.organization-model-card b{font-size:15px}.organization-model-card small{color:var(--muted);line-height:1.65}
.organization-preview{margin:0 0 20px;border:1px solid #cfe8e1;border-radius:18px;padding:16px;background:linear-gradient(135deg,#fbfffe,#f2fbf8)}
.org-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.org-preview-head>span{padding:10px 22px;border-radius:12px;background:var(--accent);color:#fff;font-weight:900}.org-preview-head small{color:#6a7e78}
.org-branches{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.org-branch,.org-direct{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px}
.org-branch>b,.org-direct>b{display:block;color:#0f766e;margin-bottom:8px}.org-branch>div,.org-direct>div{display:flex;flex-wrap:wrap;gap:6px}
.org-branch span,.org-direct span{display:inline-flex;padding:5px 8px;border-radius:9px;background:#eef7f4;color:#4a625c;font-size:11px}
.org-direct{margin-top:10px;background:#fbfdfc}
.organization-assignments,.org-core-grid{display:grid;gap:10px}
.org-role-row{display:grid;grid-template-columns:minmax(240px,1.3fr) minmax(210px,1fr) minmax(130px,.55fr);gap:12px;align-items:end;padding:12px 14px;border:1px solid var(--line);border-radius:15px;background:#fff}
.org-role-row>div{align-self:center}.org-role-row b,.org-role-row small{display:block}.org-role-row small{margin-top:3px;color:var(--muted);line-height:1.5}.org-role-row label{margin:0}
.org-deputy-row{border-right:4px solid var(--accent)}
.org-empty{padding:16px;border:1px dashed #b9d9d1;border-radius:14px;background:#fff;color:#60756f;display:flex;flex-direction:column;gap:4px}
.section-help{color:var(--muted);margin:-4px 0 12px;line-height:1.7}
.org-application-info{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;padding:14px;border:1px solid #d7e9e4;border-radius:16px;background:#f8fdfb}.org-application-info p{margin:4px 0 0;color:var(--muted)}
.organization-save-bar{gap:8px;flex-wrap:wrap}.org-status-badge{display:inline-flex;margin-inline-start:6px;padding:2px 7px;border-radius:999px;background:#e7f8f1;color:#16725f;font-size:10px;font-weight:900}.org-role-note{color:#0f766e;font-size:10px}
.login-card select#role[disabled]{opacity:1;background:#f5f9f8;color:#546b65;cursor:not-allowed}
@media(max-width:1050px){.organization-model-grid{grid-template-columns:repeat(2,1fr)}.org-role-row{grid-template-columns:1fr 1fr}.org-role-row>div{grid-column:1/-1}}
@media(max-width:650px){.organization-model-grid{grid-template-columns:1fr}.org-role-row{grid-template-columns:1fr}.org-role-row>div{grid-column:auto}.org-preview-head,.org-application-info{align-items:flex-start;flex-direction:column}}


/* V4.19 — secure civil-ID login, approval workflow, and organizational form fixes */
.auth-card{width:min(470px,100%)}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:5px;background:#f3faf8;border:1px solid var(--line);border-radius:14px;margin:18px 0 8px}
.auth-tab{border:0;border-radius:10px;background:transparent;color:#526b65;padding:9px 10px;font-weight:800}
.auth-tab.active{background:#fff;color:var(--accent-dark);box-shadow:0 5px 14px rgba(15,108,97,.08)}
.auth-panel{animation:authFade .15s ease}.auth-panel .full{margin-top:15px}
@keyframes authFade{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:none}}
.ltr-input{direction:ltr;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.6px}
.resolved-user-note{margin:10px 0 0;padding:9px 11px;border-radius:11px;background:#f5f9f8;color:#60746f;font-size:11px;text-align:right}
.resolved-user-note.ok{background:#eaf9f3;color:#146b57}.resolved-user-note.warning{background:#fff9ec;color:#89691f}
.auth-message{min-height:22px;margin-top:9px;font-size:12px;font-weight:700;text-align:center}.auth-message.ok{color:#13745c}.auth-message.bad{color:#b54848}
.registration-approval-panel{margin-top:14px;border-color:#cfe7e1;background:linear-gradient(135deg,#fff,#f8fdfb)}
.registration-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.registration-panel-head h3{margin:0}.registration-panel-head p{margin:3px 0 0;color:var(--muted);font-size:12px}
.registration-requests{display:grid;gap:8px}.registration-request{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}.registration-request b,.registration-request small{display:block}.registration-request small{color:var(--muted);margin-top:2px}.registration-actions{display:flex;gap:7px;flex:none}
.account-status{display:inline-flex;margin-inline-start:6px;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:900;vertical-align:middle}.account-approved{background:#dcfce7;color:#166534}.account-pending{background:#fff4cc;color:#8a6700}.account-assigned{background:#eaf3ff;color:#285b91}.account-rejected{background:#ffe7e7;color:#a63d3d}.ltr-inline{direction:ltr;unicode-bidi:embed;display:inline-block}
.user-row>div:first-child{min-width:0}.user-row small{line-height:1.7}.user-row-actions{display:flex;gap:6px;flex:none}
/* Prevent the name field from covering the status label/select in organizational roles. */
.org-role-row{grid-template-columns:minmax(240px,1.25fr) minmax(250px,1fr) minmax(160px,.62fr);align-items:end}
.org-role-row label{display:flex!important;flex-direction:column;gap:6px;min-width:0;font-weight:700;color:#3d5650;font-size:12px}
.org-role-row label select{display:block;width:100%;min-width:0;margin:0!important}
.org-role-row>div{min-width:0}
@media(max-width:1050px){.org-role-row{grid-template-columns:1fr 1fr}.org-role-row>div{grid-column:1/-1}.org-role-row label{min-width:0}}
@media(max-width:650px){.registration-panel-head,.registration-request{align-items:stretch;flex-direction:column}.registration-actions{width:100%}.registration-actions button{flex:1}.org-role-row{grid-template-columns:1fr}.org-role-row>div{grid-column:auto}}

/* V4.20 — master account access control */
.master-access-panel{border:1px solid rgba(15,159,145,.25);background:linear-gradient(135deg,#f8fffd,#f2fbf8)}
.master-access-grid{align-items:end}.master-access-panel .registration-panel-head b[dir="ltr"]{font-family:ui-monospace,Consolas,monospace;color:#0f766e}.master-login-help{margin-top:-4px;margin-bottom:8px;color:#607d78}.master-access-panel .pill{white-space:nowrap}


/* V4.21 — user/organization role synchronization */
.org-linked-roles{display:grid;gap:10px;margin:10px 0 18px}
.org-linked-role-row{display:grid;grid-template-columns:minmax(260px,1fr) 190px;align-items:end;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#fff,#f6fcfa)}
.org-linked-role-row>div{min-width:0}.org-linked-role-row b,.org-linked-role-row small{display:block}.org-linked-role-row small{margin-top:4px;color:var(--muted)}
.org-linked-role-row label{min-width:0}.org-linked-role-row select{width:100%}
@media(max-width:760px){.org-linked-role-row{grid-template-columns:1fr}}


/* V4.23 — manager full access + presence */
.org-manager-core{margin:10px 0 18px}.org-manager-role-row{border-color:#8fd9cb;background:linear-gradient(135deg,#f7fffc,#eefaf6)}
.org-manager-role-row>div b{color:var(--accent-dark)}.org-manager-role-row select:disabled{opacity:1;color:#244c43;background:#f7fbfa;cursor:default}
.presence-wrap{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;vertical-align:middle;margin-inline-end:5px;cursor:help}
.presence-laser{display:inline-block;width:6px;height:6px;border-radius:50%;transition:.2s ease}
@keyframes greenLaserPulse{
  0%,100%{transform:scale(1);box-shadow:0 0 2px 1px rgba(20,216,91,.95),0 0 6px 2px rgba(20,216,91,.30);filter:brightness(1)}
  50%{transform:scale(1.18);box-shadow:0 0 4px 1px rgba(20,216,91,1),0 0 10px 4px rgba(20,216,91,.44);filter:brightness(1.14)}
}
.presence-laser.online{background:#14d85b;box-shadow:0 0 3px 1px rgba(20,216,91,.95),0 0 8px 3px rgba(20,216,91,.38);animation:greenLaserPulse 1.8s ease-in-out infinite;transform-origin:center}
.presence-laser.offline{background:#ff3d37;box-shadow:0 0 3px 1px rgba(255,61,55,.88),0 0 7px 2px rgba(255,61,55,.28);animation:none;transform:scale(1)}
@media (prefers-reduced-motion: reduce){.presence-laser.online{animation:none}}
.user-main-info{min-width:0}.last-login-line{font-size:10px!important;color:#81938f!important;margin-top:1px}.master-readonly-note{font-size:10px;color:var(--accent-dark);background:#e8f8f3;border:1px solid #c7ebe2;border-radius:999px;padding:5px 8px;white-space:nowrap}
@media(max-width:760px){.org-manager-role-row{grid-template-columns:1fr}.master-readonly-note{white-space:normal}}

.manager-fixed-perm{display:block;color:#0f766e;font-size:9px;margin-top:2px;font-weight:700}

/* V4.28 — guaranteed visible presence laser beside user name */
.user-name-with-presence{display:flex;align-items:center;gap:7px;min-width:0;direction:rtl}
.user-name-with-presence .presence-wrap{display:inline-flex!important;align-items:center;justify-content:center;width:14px!important;height:14px!important;min-width:14px!important;overflow:visible!important;flex:0 0 14px!important;margin:0!important}
.user-name-with-presence .presence-laser{display:block!important;opacity:1!important;visibility:visible!important;position:relative!important;z-index:3!important}
.user-name-with-presence b{min-width:0}


/* V4.29 — إصلاح المظهر الموسمي وإبرازه بدون تغيير تخطيط الواجهة */
.appearance-seasonal-section{margin-top:18px;padding:16px;border:1px solid #d7ebe6;border-radius:18px;background:linear-gradient(135deg,#fbfffd,#f3fbf8)}
.appearance-seasonal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.appearance-seasonal-head b{font-size:1.04rem}.appearance-seasonal-head p{margin:4px 0 0;color:#71857e;line-height:1.7}
.seasonal-live-status{display:flex;align-items:center;gap:8px;margin:10px 0;padding:10px 12px;border-radius:13px;background:#fff;border:1px solid #dcece8;color:#42625a}.seasonal-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#95aaa4;box-shadow:0 0 0 4px rgba(149,170,164,.12)}.seasonal-status-dot.on{background:#16a05f;box-shadow:0 0 0 4px rgba(22,160,95,.12),0 0 10px rgba(22,160,95,.55)}.seasonal-status-dot.preview{background:#0f9f91;box-shadow:0 0 0 4px rgba(15,159,145,.12),0 0 10px rgba(15,159,145,.5)}.seasonal-status-dot.off{background:#d8554d;box-shadow:0 0 0 4px rgba(216,85,77,.10)}
.seasonal-banner-main{display:flex;align-items:center;gap:10px}.seasonal-banner-main>div{display:flex;flex-direction:column;gap:2px}.seasonal-live-tag{font-size:.76rem;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.78);border:1px solid rgba(19,115,75,.16);color:#126d49;font-weight:800;white-space:nowrap}
body.seasonal-active #appView{position:relative;background:linear-gradient(180deg,rgba(246,255,250,.98),rgba(244,251,249,.98))}
body.seasonal-active #appView::before{content:"";position:fixed;top:0;left:0;right:0;height:4px;z-index:9999;background:linear-gradient(90deg,#0b7a4b,#23a86b,#d5ae54,#23a86b,#0b7a4b);box-shadow:0 1px 10px rgba(17,126,80,.25);pointer-events:none}
body.seasonal-active .topbar{background:linear-gradient(115deg,#ffffff 0%,#f0fff7 48%,#e9faf2 100%);border-bottom:1px solid rgba(21,128,82,.20);box-shadow:0 7px 24px rgba(19,120,79,.10)}
body.seasonal-active .sidebar{box-shadow:-8px 0 26px rgba(20,125,83,.12)}
body.seasonal-active .hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#ffffff 0%,#f0fff7 58%,#e3f8ed 100%);border-color:rgba(22,142,91,.26);box-shadow:0 12px 30px rgba(19,120,79,.09)}
body.seasonal-active .hero::after{content:"✦";position:absolute;left:28px;top:50%;transform:translateY(-50%);font-size:78px;color:rgba(25,151,104,.08);pointer-events:none}
body.seasonal-active .seasonal-banner{background:linear-gradient(110deg,#0f7d4d 0%,#17945c 42%,#f6fff9 100%);border-color:rgba(14,117,72,.28);box-shadow:0 12px 28px rgba(14,117,72,.16);color:#fff;padding:14px 18px}
body.seasonal-active .seasonal-banner small{color:rgba(255,255,255,.90)}body.seasonal-active .seasonal-banner .seasonal-spark{color:#f2cf72;text-shadow:0 0 9px rgba(242,207,114,.55)}
body.seasonal-active .quick-card{border-color:rgba(24,145,94,.16)}body.seasonal-active .q-icon{background:#e8f9f0;color:#11794d}
body.seasonal-active[data-seasonal-theme="national"] .hero-badge{background:linear-gradient(135deg,#12794d,#21a466);color:#fff;border-color:transparent}
body.seasonal-active[data-seasonal-theme="founding"] #appView::before{background:linear-gradient(90deg,#8b633d,#b98b5d,#dbc09f,#b98b5d,#8b633d)}
body.seasonal-active[data-seasonal-theme="founding"] .seasonal-banner{background:linear-gradient(110deg,#7b5736,#a87a50,#fffaf4)}
body.seasonal-active[data-seasonal-theme="teacher"] .seasonal-banner{background:linear-gradient(110deg,#0d7e70,#28a48e,#f4fffc)}
body.seasonal-active[data-seasonal-theme="manager"] .seasonal-banner{background:linear-gradient(110deg,#315f80,#517f9e,#f7fbff)}
body.seasonal-active[data-seasonal-theme="civil"] .seasonal-banner{background:linear-gradient(110deg,#b34c3e,#d56b58,#fff8f6)}
@media(max-width:700px){body.seasonal-active .seasonal-banner{align-items:flex-start;flex-direction:column}.seasonal-live-tag{align-self:flex-start}.appearance-seasonal-head{flex-direction:column}.seasonal-live-status{align-items:flex-start}}


/* V4.30 — مظهر اليوم الوطني الواضح: مرئي فوراً مع الحفاظ على أماكن الأزرار والشعارات */
.seasonal-banner{margin:0 0 18px;position:relative;overflow:hidden;min-height:78px}
.seasonal-banner-side{display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:relative;z-index:2}
.national-date-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border-radius:999px;background:#fff;color:#087a4a;border:1px solid rgba(255,255,255,.8);font-weight:900;box-shadow:0 4px 14px rgba(0,0,0,.12);white-space:nowrap}
body.seasonal-active[data-seasonal-theme="national"] #appView{background:
  radial-gradient(circle at 8% 18%,rgba(208,176,84,.11),transparent 18%),
  radial-gradient(circle at 86% 32%,rgba(20,143,86,.08),transparent 23%),
  linear-gradient(180deg,#f8fff9 0%,#f3fbf7 48%,#f8fcfa 100%)}
body.seasonal-active[data-seasonal-theme="national"] #appView::before{height:6px;background:linear-gradient(90deg,#087a4a 0 43%,#fff 43% 49%,#d5ae54 49% 51%,#fff 51% 57%,#087a4a 57% 100%);box-shadow:0 2px 12px rgba(8,122,74,.28)}
body.seasonal-active[data-seasonal-theme="national"] .topbar{background:linear-gradient(110deg,#ffffff 0%,#f5fff8 62%,#e7f7ee 100%);border-bottom:1px solid rgba(8,122,74,.24);box-shadow:0 7px 24px rgba(8,122,74,.10)}
body.seasonal-active[data-seasonal-theme="national"] .sidebar{background:linear-gradient(180deg,#087f73 0%,#087a5a 62%,#096c4a 100%);box-shadow:-9px 0 28px rgba(8,122,74,.18)}
body.seasonal-active[data-seasonal-theme="national"] .sidebar::before{content:"23 سبتمبر";display:block;margin:10px 16px 4px;padding:7px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.09);color:#fff;font-size:.78rem;font-weight:900;text-align:center;letter-spacing:.2px}
body.seasonal-active[data-seasonal-theme="national"] .seasonal-banner{background:linear-gradient(110deg,#056b3f 0%,#0c8c54 50%,#1aa167 100%);border:1px solid rgba(6,105,62,.36);box-shadow:0 14px 32px rgba(6,105,62,.22);color:#fff;padding:16px 20px}
body.seasonal-active[data-seasonal-theme="national"] .seasonal-banner::before{content:"";position:absolute;inset:-30px auto auto -10px;width:170px;height:170px;border-radius:50%;border:24px solid rgba(255,255,255,.055);pointer-events:none}
body.seasonal-active[data-seasonal-theme="national"] .seasonal-banner::after{content:"";position:absolute;width:220px;height:220px;left:24%;top:-170px;border:34px solid rgba(213,174,84,.08);transform:rotate(22deg);pointer-events:none}
body.seasonal-active[data-seasonal-theme="national"] .seasonal-banner-main{position:relative;z-index:2;gap:14px}
body.seasonal-active[data-seasonal-theme="national"] .seasonal-banner-main b{font-size:1.22rem;font-weight:900;letter-spacing:.1px}
body.seasonal-active[data-seasonal-theme="national"] .seasonal-banner-main small{font-size:.91rem;color:rgba(255,255,255,.94)}
body.seasonal-active[data-seasonal-theme="national"] .seasonal-spark{font-size:29px;line-height:1;filter:drop-shadow(0 3px 7px rgba(0,0,0,.18))}
body.seasonal-active[data-seasonal-theme="national"] .seasonal-live-tag{background:#d5ae54;color:#173d2f;border-color:#e5c975;box-shadow:0 4px 14px rgba(0,0,0,.10)}
body.seasonal-active[data-seasonal-theme="national"] .hero{background:linear-gradient(135deg,#076f45 0%,#0e8d58 58%,#20a76d 100%);border:1px solid rgba(255,255,255,.16);box-shadow:0 14px 34px rgba(8,122,74,.22);color:#fff}
body.seasonal-active[data-seasonal-theme="national"] .hero::before{content:"اليوم الوطني السعودي";position:absolute;left:126px;top:22px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:.78rem;font-weight:900;z-index:1}
body.seasonal-active[data-seasonal-theme="national"] .hero::after{content:"✦";font-size:96px;left:34px;top:50%;color:rgba(255,255,255,.10)}
body.seasonal-active[data-seasonal-theme="national"] .hero h1{color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.08)}
body.seasonal-active[data-seasonal-theme="national"] .hero p{color:#e7fff2}
body.seasonal-active[data-seasonal-theme="national"] .hero .eyebrow{background:#d5ae54;color:#153d2e;border:0}
body.seasonal-active[data-seasonal-theme="national"] .hero-badge{background:#fff;color:#087a4a;box-shadow:0 8px 20px rgba(0,0,0,.13);border:3px solid rgba(213,174,84,.88)}
body.seasonal-active[data-seasonal-theme="national"] .quick-card{border-color:rgba(8,122,74,.19);box-shadow:0 9px 24px rgba(8,122,74,.07)}
body.seasonal-active[data-seasonal-theme="national"] .quick-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(180deg,#0d8d57,#d5ae54);border-radius:12px 0 0 12px;opacity:.75}
body.seasonal-active[data-seasonal-theme="national"] .quick-card{position:relative;overflow:hidden}
body.seasonal-active[data-seasonal-theme="national"] .q-icon{background:#e7f8ee;color:#087a4a;border:1px solid rgba(8,122,74,.10)}
@media(max-width:900px){body.seasonal-active[data-seasonal-theme="national"] .hero::before{display:none}.seasonal-banner-side{width:100%;justify-content:flex-start}}


/* V4.31 — صورة اليوم الوطني داخل البنر بعرض متوازن */
body.seasonal-active[data-seasonal-theme="national"] .seasonal-banner{
  min-height:0;
  padding:10px 14px;
  display:flex;
  justify-content:center;
  align-items:center;
  background:linear-gradient(110deg,#064a37 0%,#0b6c4e 52%,#07543e 100%);
  border:1px solid rgba(6,74,55,.28);
  box-shadow:0 12px 28px rgba(5,72,53,.18);
}
body.seasonal-active[data-seasonal-theme="national"] .seasonal-banner::before,
body.seasonal-active[data-seasonal-theme="national"] .seasonal-banner::after{display:none}
.national-image-banner-wrap{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:12px;
  position:relative;
}
.national-day-banner-image{
  display:block;
  width:min(700px,72vw);
  height:190px;
  max-width:100%;
  object-fit:cover;
  object-position:center 51%;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.24);
  box-shadow:0 8px 24px rgba(0,0,0,.22);
}
.national-image-banner-meta{
  position:absolute;
  inset:auto 18px 14px auto;
  display:flex;
  align-items:center;
  gap:7px;
  z-index:2;
}
body.seasonal-active[data-seasonal-theme="national"] .national-image-banner-meta .seasonal-live-tag,
body.seasonal-active[data-seasonal-theme="national"] .national-image-banner-meta .preview-tag{
  backdrop-filter:blur(4px);
}
@media(max-width:900px){
  .national-day-banner-image{width:min(640px,88vw);height:165px}
  .national-image-banner-meta{inset:auto 10px 10px auto}
}
@media(max-width:560px){
  body.seasonal-active[data-seasonal-theme="national"] .seasonal-banner{padding:8px}
  .national-day-banner-image{width:100%;height:145px;border-radius:13px}
  .national-image-banner-meta{inset:auto 8px 8px auto}
  .national-image-banner-meta .national-date-badge{padding:4px 8px;font-size:.72rem}
  .national-image-banner-meta .seasonal-live-tag,.national-image-banner-meta .preview-tag{font-size:.68rem;padding:4px 7px}
}
/* V5.0 Azure Cloud Storage */
.central-storage-card{border:1px solid rgba(15,159,145,.28);background:linear-gradient(135deg,#f7fffc,#eefaf7)}
.storage-access-card{margin-top:16px;padding:18px;border:1px solid #d7ece7;border-radius:18px;background:#fbfffe}
.storage-access-card b{font-size:1.05rem;color:#0b6f67}
.storage-access-card p{margin:8px 0;color:#647d78;line-height:1.7}
.storage-urls{padding:12px 14px;border-radius:12px;background:#eff8f6;direction:ltr;text-align:left;overflow:auto}
.storage-urls code{font-family:Consolas,monospace;font-size:.88rem;color:#0d514c;user-select:all}

/* V5.0 Azure cloud status */
.cloud-status-grid{margin-top:14px}.cloud-info-grid{margin-top:14px}.info-box{background:#fff;border:1px solid #dcece8;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 24px rgba(15,159,145,.06)}.info-box small{color:#64748b}.info-box b{color:#0f766e;font-size:14px}.cloud-note{margin-top:14px;padding:16px 18px;border:1px solid #b7e5db;background:linear-gradient(135deg,#f2fffb,#eefaf8);border-radius:18px}.cloud-note b{color:#0f766e}.cloud-note p{margin:6px 0 0;color:#475569;line-height:1.8}.cloud-health-card{border-color:#9bd8cb}.storage-urls{direction:ltr;text-align:left;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
