:root{font-family:system-ui,Tahoma,sans-serif;background:#faf7f8;color:#322730}*{box-sizing:border-box}body{margin:0}header{background:#442738;color:white;padding:18px max(15px,calc((100vw - 1050px)/2));display:flex;justify-content:space-between;align-items:center}header h2{font-size:18px;margin:3px 0}header small{color:#e9bdcb;letter-spacing:2px}main{max-width:1080px;margin:auto;padding:14px}.panel{background:white;border:1px solid #ede3e7;border-radius:15px;padding:19px;margin-bottom:14px;box-shadow:0 3px 15px #45263809}#login{max-width:430px;margin:40px auto}#login form,form{display:grid;gap:10px}nav{display:flex;gap:5px;overflow:auto;margin-bottom:13px}nav button{flex:1;min-width:82px}button{border:0;background:#78425b;color:white;padding:11px 14px;border-radius:9px;font:inherit;cursor:pointer}button.outline{background:#f2eaf0;color:#6b3c51}.bar{display:flex;align-items:center;justify-content:space-between;gap:10px}.bar h2{margin:5px 0}.bar small,.muted{color:#867983;font-size:12px}label{font-size:13px;color:#685b65;display:flex;flex-direction:column;gap:5px}input,select,textarea{width:100%;padding:11px;border:1px solid #dbced6;border-radius:8px;font:inherit;background:white;color:#302630}.fields{grid-template-columns:repeat(2,minmax(0,1fr))}.wide{grid-column:1/-1}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:15px}.weekday{text-align:center;font-size:11px;color:#766e75;padding:6px 0}.day{min-height:72px;padding:3px 1px;background:#fbf8fa;border:1px solid #eee6ea;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;color:#322730}.day strong{font-size:20px}.day small{font-size:10px;color:#736871;white-space:nowrap}.day em{font-size:9px;color:#865b6b;font-style:normal}.day.weekend{background:#f7e9d6}.day.holiday{background:#e2f1e6}.day.salary{box-shadow:inset 0 0 0 2px #8bb6e0}.day.full{border-color:#c05a68}.day.selected{outline:2px solid #874f69;outline-offset:-2px}.legend{font-size:12px;color:#7c7179;margin:12px 0}.hall,.record{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 4px;border-bottom:1px solid #f0e9ec}.record{cursor:pointer}.green{color:#24845b}.red{color:#b44b59}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.stat{padding:12px;border-radius:10px;background:#f9f1f5}.stat small{display:block;color:#796b75}.stat strong{font-size:20px}.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cols form{padding:13px;border-radius:10px;background:#fbf8fa}#message{padding:12px;background:#fff0d7;border:1px solid #e8c787;border-radius:10px;margin-bottom:10px}.check{flex-direction:row;align-items:center}.check input{width:auto}hr{border:0;border-top:1px solid #eee4e8;margin:15px 0}#hallFilter{margin:10px 0}.pill{padding:5px 8px;background:#f5eaf0;border-radius:20px;font-size:12px}@media(max-width:600px){main{padding:9px}.panel{padding:12px}.fields,.cols{grid-template-columns:1fr}.day{min-height:62px}.day strong{font-size:18px}.day small{font-size:9px}.weekday{font-size:9px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat strong{font-size:17px}nav button{font-size:12px;min-width:75px;padding:10px 7px}}

/* Annual Hijri planner — inspired by the user's one-page 1448 calendar */
main{max-width:1450px}.year-header{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.year-header h2{margin:4px 0;font-size:23px}.year-header small{color:#8b6073}.year-arrows{display:flex;gap:7px}.year-arrows button{min-width:42px}.year-legend{display:flex;gap:15px;flex-wrap:wrap;margin:17px 0;font-size:12px;color:#685763}.year-legend span{display:flex;gap:5px;align-items:center}.year-legend i{display:inline-block;width:13px;height:13px;border:1px solid #d6cbd0;border-radius:3px}.lg-weekend{background:#f8e6c8}.lg-holiday{background:#d6efdf}.lg-salary{background:#dceafb;border:2px solid #689dc6!important}.lg-booked{background:#f5dfe7}.lg-full{background:#ba4f5e}.year-scroll{overflow:auto;border:1px solid #e8dce2;border-radius:12px;max-height:75vh;scrollbar-color:#b68c9c #f7f1f4}.year-grid{display:grid;grid-template-columns:92px repeat(30,minmax(47px,1fr));min-width:1502px;background:#fff}.year-corner,.year-colhead{position:sticky;top:0;z-index:3;background:#552d40;color:white;text-align:center;padding:10px 3px;font-size:11px;border-left:1px solid #765166}.year-corner{right:0;z-index:5}.year-month{position:sticky;right:0;z-index:2;background:#f0e2e9;border-bottom:1px solid #dbc5d0;border-left:1px solid #dbc5d0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.year-month strong{font-size:22px;color:#65354b}.year-month small{font-size:10px;color:#8c687a}.year-day,.year-empty{border:0;border-bottom:1px solid #e7dfe3;border-left:1px solid #eee7ea;border-radius:0;min-height:65px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;background:#fff;color:#3e2d36;padding:4px 2px}.year-day:hover{filter:brightness(.95)}.year-day .year-hijri{font-size:18px;font-weight:750;line-height:1.1}.year-day .year-greg{font-size:9px;color:#776b72;white-space:nowrap}.year-day .year-count{font-size:10px;font-weight:700;color:#8d3857;height:11px}.year-day.weekend{background:#f8e6c8}.year-day.holiday{background:#d6efdf}.year-day.salary{box-shadow:inset 0 0 0 2px #679ecb}.year-day.booked{border-bottom:3px solid #b76b87}.year-day.full{background:#b64e61;color:#fff}.year-day.full .year-greg,.year-day.full .year-count{color:#fff}.year-day.selected{outline:3px solid #54273d;outline-offset:-3px}.year-empty{background:#f5f1f3}.year-tip{margin:9px 0 15px}.year-selected{background:#fbf7f9;border:1px solid #eadfe5;border-radius:12px;padding:16px;scroll-margin-top:15px}.year-picked-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.year-picked-header small{color:#8e7783}.year-picked-header h3{margin:4px 0;font-size:22px}.year-picked-header p{margin:0;color:#71636b}.year-picked-actions{display:flex;gap:10px;align-items:center}.year-halls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:16px}.year-hall{background:#fff;border:1px solid #ebdfe5;border-radius:9px;padding:10px;display:flex;flex-direction:column;align-items:stretch;gap:10px}.year-hall strong{text-align:center}.year-hall button{font-size:12px;padding:9px 4px}.year-hall button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:700px){.year-header h2{font-size:20px}.year-grid{grid-template-columns:78px repeat(30,52px);min-width:1638px}.year-corner,.year-colhead{font-size:10px}.year-month strong{font-size:20px}.year-halls{grid-template-columns:repeat(2,minmax(0,1fr))}.year-scroll{max-height:65vh}.year-picked-header h3{font-size:19px}.year-legend{gap:8px}}
nav button.active{background:#442738;box-shadow:inset 0 -3px #e6b6cb}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible{outline:3px solid #b98099;outline-offset:3px}[hidden]{display:none!important}
:root{background:#f6f3f1;color:#352a30;--rose:#75465b;--deep:#3e2935;--line:#e7dce1}body{background:linear-gradient(135deg,#faf7f5,#f3eef1);line-height:1.6}header{background:#3e2935;padding:20px max(20px,calc((100vw - 1410px)/2));box-shadow:0 4px 20px #39233116}header small{color:#dcb6c5}header h2{font-size:21px}main{padding:22px}.panel{border-color:var(--line);box-shadow:0 6px 24px #432c3506;padding:22px;border-radius:18px}button{background:#75465b;transition:background .15s}button:hover{background:#63384b}button.outline{background:#f0e6eb;color:#58394a}button.outline:hover{background:#e8d8e0}nav{background:#fff;padding:7px;border:1px solid var(--line);border-radius:14px}nav button{background:transparent;color:#715767}nav button.active{background:#75465b;color:#fff;box-shadow:none}input:focus,select:focus,textarea:focus{outline:2px solid #ba8c9e;border-color:transparent}.stat{background:#f6eef2;border:1px solid #ecdee5}.stat strong{color:#57364a}.year-colhead,.year-corner{background:#513447}.year-month{background:#eee1e7}.year-day.weekend,.day.weekend{background:#f5ebdb}.year-day.holiday,.day.holiday{background:#e2eee7}.year-day.full{background:#995568}.year-day.selected{outline-color:#643c52}.year-hall{border-top:3px solid #b78c9d}.year-hall strong{color:#624255}.record:hover{background:#faf6f8}.record{padding:15px 8px}.report-box{background:#fcfaf8;border:1px solid #ded1d8;border-radius:14px;padding:20px;margin:20px 0}.report-box table{width:100%;border-collapse:collapse}.report-box td,.report-box th{padding:10px;text-align:right;border-bottom:1px solid #e9e0e4}.report-box h3{color:#633d52}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.danger{background:#f8e9e9!important;color:#943e4c!important}.status-chip{display:inline-block;padding:3px 10px;border-radius:20px;background:#e2eee7;color:#315e48;font-size:12px}#previewRole{margin-top:6px;padding:5px;font-size:12px}#reportNote{font-size:12px;color:#76666f}@media(max-width:650px){main{padding:9px}.panel{padding:14px}header{padding:15px}.report-box{padding:12px}}@media print{body{background:white}header,nav,#login,#message,#app>p,.page:not(#details),#detailInfo,#detailSummary,#detailPayments,#detailExpenses,#details>.cols,#details>h3,#eventActions,#details>.bar{display:none!important}#app,#details{display:block!important}#eventReport{display:block}.report-box{border:0;margin:0;padding:0}.report-box button{display:none}.panel{box-shadow:none;border:0}}

header>div:last-child{display:flex;align-items:center;gap:6px;flex-wrap:wrap}header button{font-size:12px}#syncStatus{padding:6px 10px}#loginNote{line-height:1.8}.cols:has(form[hidden]){grid-template-columns:1fr}@media print{#members,#syncStatus,#refreshData,#signOut{display:none!important}}