:root{--navy:#103651;--navy2:#164864;--gold:#c39b59;--ink:#172f41;--muted:#668091;--border:#dbe5ed;--bg:#f4f7fa;--white:#fff;--good:#178064;--bad:#b44746;--warn:#b57b24;--radius:17px;--shadow:0 12px 34px #15364f12}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 system-ui,-apple-system,"Arial",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.app-shell{min-height:100vh;display:flex;flex-direction:column}.masthead{display:flex;align-items:center;gap:12px;min-height:85px;background:var(--navy);color:#fff;padding:14px max(20px,calc((100% - 1060px)/2));border-bottom:3px solid var(--gold)}.brandmark{border:1px solid #d4b579;color:#e5cd9d;border-radius:13px;width:45px;height:45px;display:grid;place-items:center;font-family:Georgia,serif;font-size:27px;flex:none}.brand-title{font-weight:800;letter-spacing:.1px;font-size:20px}.brand-subtitle{font-size:12px;color:#d0dde5}.account-actions{margin-right:auto;display:flex;align-items:center;gap:12px;font-size:12px}.account-actions[hidden]{display:none}.account-actions button{background:transparent;color:#fff;border:1px solid #ffffff5c;border-radius:9px;padding:6px 11px}.root{width:min(1060px,100% - 32px);margin:26px auto 40px;flex:1}.footer{display:flex;align-items:center;justify-content:space-between;padding:20px max(20px,calc((100% - 1060px)/2));border-top:1px solid var(--border);font-size:12px;color:var(--muted)}.panel{background:var(--white);border:1px solid #e5ebf0;box-shadow:var(--shadow);border-radius:var(--radius);padding:24px;margin-bottom:18px}.auth-panel{max-width:470px;margin:45px auto;padding:35px}.auth-heading{font-size:25px;font-weight:800;margin:0 0 6px}.auth-sub{color:var(--muted);font-size:14px;margin:0 0 25px}.eyebrow{color:var(--gold);font-size:12px;letter-spacing:1.2px;font-weight:700;margin:0 0 4px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.field label{font-size:13px;font-weight:650}.field input,.field select,.field textarea,input.input,select.input{width:100%;border:1px solid #c9d8e3;background:#fff;border-radius:11px;padding:11px 12px;min-height:45px;outline-color:var(--gold);color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 3px #c39b5938}.field small,.muted{color:var(--muted);font-size:12px}.primary{border:0;background:var(--navy);color:#fff;font-weight:700;border-radius:11px;padding:12px 16px;min-height:43px}.primary:hover{background:var(--navy2)}.secondary{background:#fff;border:1px solid #cbdce7;color:var(--navy);border-radius:11px;padding:10px 14px;min-height:42px;font-weight:650}.danger{border:1px solid #efc4c2;color:var(--bad);background:#fff4f3;border-radius:11px;padding:9px 13px}.success{background:#e9f6f1;border:1px solid #b6dfd1;color:var(--good);border-radius:9px;padding:7px 10px;font-weight:650;font-size:12px}.full{width:100%}.notice{background:#eff6fa;color:#285b74;border:1px solid #d2e6f2;border-radius:12px;padding:13px 14px;font-size:13px;margin:14px 0}.warning{background:#fff7e9;color:#8c5e17;border:1px solid #eddeb8;border-radius:12px;padding:12px 13px;font-size:13px}.danger-note{background:#fff1f0;color:#a1443e;border:1px solid #efd5d1;border-radius:12px;padding:13px}.toprow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.title{font-size:23px;margin:0;font-weight:800}.subtitle{font-size:13px;color:var(--muted);margin-top:2px}.badge{font-size:11px;background:#e9f1f6;padding:6px 9px;border-radius:7px;color:var(--navy);white-space:nowrap}.badge.pending{background:#fff1d6;color:#97641f}.badge.approved{background:#e5f6ee;color:#176f4e}.badge.rejected{background:#fae9e7;color:#ad4944}.tabs{display:flex;gap:7px;overflow:auto;padding:4px 0 17px}.tab{white-space:nowrap;border:1px solid var(--border);background:white;padding:9px 13px;border-radius:11px;color:var(--ink);font-weight:650}.tab.active{border-color:var(--navy);background:var(--navy);color:white}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric{background:#f5f8fa;border:1px solid #e2ebf1;border-radius:12px;padding:14px}.metric strong{font-size:26px;display:block}.metric span{font-size:12px;color:var(--muted)}.day-nav{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}.day-button{border:1px solid #d7e3ea;border-radius:10px;padding:9px 12px;min-width:76px;background:#fff;color:var(--ink);flex:1}.day-button.current{background:#e8f2f7;border-color:#8baec3;font-weight:750}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.row.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:12px}.shift-row{display:grid;grid-template-columns:175px 1fr;align-items:center;gap:14px;border-bottom:1px solid #e8eef1;padding:12px 0}.shift-row:last-child{border:0}.shift-row select{border:1px solid #d6e1e8;border-radius:10px;padding:10px;min-height:44px;width:100%;background:white}.small{font-size:12px}.status-label{display:inline-block;padding:4px 9px;border-radius:8px;font-size:12px;font-weight:700;background:#eef2f5}.status-label.ok{background:#e6f4ec;color:#177b57}.status-label.missing{background:#fdefec;color:#ab443c}.coverage{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:15px 0 18px}.coverage>div{border:1px solid var(--border);border-radius:12px;padding:14px}.coverage strong{font-size:20px}.smallheading{font-size:17px;font-weight:800;margin:3px 0 15px}.table-container{overflow-x:auto}.schedule-table{width:100%;border-collapse:collapse;min-width:670px}.schedule-table th,.schedule-table td{text-align:center;padding:11px 7px;border-bottom:1px solid #e5edf2;font-size:13px}.schedule-table th:first-child,.schedule-table td:first-child{text-align:right;font-weight:700}.schedule-table thead{background:#f0f6fa}.pill{display:inline-block;padding:5px 9px;background:#edf3f7;border-radius:9px;white-space:nowrap}.pill.mine{background:#f4e8d5;color:#825c27;font-weight:800}.user-list{display:grid;gap:10px}.user-item{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #e0e8ed;background:#fff;padding:14px;border-radius:12px}.user-name{font-weight:750}.user-role{font-size:12px;color:var(--muted)}.cardline{border:1px solid var(--border);padding:16px;border-radius:13px;margin-bottom:12px}.cardline h3{font-size:15px;margin:0 0 4px}.cardline p{color:var(--muted);font-size:13px;margin:0 0 12px}.actions{display:flex;gap:8px;flex-wrap:wrap}.inline-form{margin-top:12px;background:#f6f9fb;padding:15px;border-radius:12px;display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:10px}.inline-form .field{margin:0}.inline-form label{font-size:12px}.credentials{background:#fff8ea;border:1px solid #eedab3;border-radius:12px;padding:14px;margin:12px 0}.credentials strong{display:block}.login-hint{font-size:12px;color:#708896;margin-top:18px}.toast{position:fixed;bottom:24px;left:24px;right:24px;max-width:460px;margin:auto;background:#123b53;color:white;padding:13px 17px;border-radius:11px;box-shadow:0 8px 30px #123b5345;z-index:8;display:none;text-align:center}.toast.show{display:block}.loading{text-align:center;color:var(--muted)}.schedule-day{border:1px solid #dbe5ed;border-radius:13px;overflow:hidden;margin-bottom:12px}.schedule-day h3{margin:0;background:#f2f6f8;padding:10px 14px;font-size:14px}.schedule-day .mini-row{padding:8px 14px;display:flex;justify-content:space-between;border-bottom:1px solid #edf2f5;font-size:13px}.schedule-day .mini-row:last-child{border:0}.range-label{font-size:12px;font-weight:650;color:#748795}.weekpicker{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.weekpicker button{border:1px solid #d4e0e9;border-radius:10px;background:#fff;padding:8px 14px;color:var(--navy)}.footer-alert{font-size:12px;color:var(--muted);margin-top:10px}
@media(max-width:650px){.masthead{padding:13px 16px}.root{width:calc(100% - 22px);margin:16px auto}.panel{padding:17px;border-radius:13px}.auth-panel{margin:25px auto;padding:23px}.account-actions{gap:5px}.account-actions span{display:none}.title{font-size:21px}.metrics{gap:8px}.metric{padding:11px}.metric strong{font-size:21px}.coverage{gap:7px}.coverage>div{padding:11px}.shift-row{grid-template-columns:105px 1fr;gap:8px}.inline-form{grid-template-columns:1fr}.inline-form .field{margin-bottom:6px}.toprow{align-items:flex-start}.weekpicker{justify-content:space-between}.brand-title{font-size:17px}.footer{padding:16px}.smallheading{margin-top:8px}}

/* Full-week editor for Esti: sticky name column and six colored day cells. */
.roster-overview{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.manager-board-scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-gutter:stable}
.edit-grid{min-width:755px;border:1px solid #e3ebf1;border-radius:12px;border-collapse:separate;border-spacing:0}
.edit-grid thead th{font-size:13px;background:#ecf3f7;min-width:98px;white-space:nowrap}
.edit-grid td{padding:6px 5px;min-width:98px}
.edit-grid th:first-child,.edit-grid td:first-child{position:sticky;right:0;background:#fff;z-index:2;box-shadow:-2px 0 4px #123b530c;min-width:116px}
.edit-grid thead th:first-child{z-index:3;background:#ecf3f7}
.edit-grid tfoot th:first-child{background:#eef4f7}
.edit-grid .employee-cell{display:block;white-space:nowrap;font-weight:750;font-size:12px}
.edit-grid .manager-dot{font-size:10px;color:#8d6d40;display:block}
.edit-grid .day-date{display:block;font-size:10px;color:#648092;font-weight:500}
.edit-grid select.shift-cell{display:block;min-height:41px;width:100%;font-size:12px;border:1px solid #ccdce5;border-radius:8px;color:#123b53;text-align:center;text-align-last:center;padding:4px 1px;cursor:pointer;appearance:auto;font-weight:700}
.edit-grid select.shift-none{background:#f7fafb;color:#71828d}
.edit-grid select.shift-morning{background:#dceafe}
.edit-grid select.shift-evening{background:#eae2fb}
.edit-grid select.shift-middle{background:#d9f4e8}
.edit-grid select.shift-double{background:#ffebc6}
.edit-grid select.shift-friday{background:#dceafe}
.edit-grid select.shift-off{background:#f9dfe1}
.edit-grid tfoot th,.edit-grid tfoot td{padding:7px 4px;text-align:center}
.roster-count{font-size:12px;font-weight:750;border-radius:6px;padding:3px 5px;display:inline-block}
.roster-count.ok{background:#e0f5ec;color:#16724c}
.roster-count.missing{background:#fae2dd;color:#a13f37}
.legend{display:flex;flex-wrap:wrap;gap:11px;margin-top:13px;color:#557080;font-size:11px}
.legend span{display:flex;gap:5px;align-items:center}
.legend i{width:12px;height:12px;border-radius:3px;border:1px solid #abb9c3;display:block}
.legend .key-morning{background:#dceafe}.legend .key-evening{background:#eae2fb}.legend .key-middle{background:#d9f4e8}.legend .key-double{background:#ffebc6}.legend .key-off{background:#f9dfe1}

/* v5 weekly employee request board and manager request coordination */
.weekly-lines{border:1px solid var(--border);border-radius:14px;overflow:hidden;margin:18px 0}
.weekly-line{display:grid;grid-template-columns:115px minmax(0,1fr);gap:14px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border);background:#fff}
.weekly-line:nth-child(even){background:#f7fafc}.weekly-line:last-child{border-bottom:0}
.weekly-date strong{display:block;font-size:15px}.weekly-date small{color:var(--muted);font-size:12px}
.weekly-input select{width:100%;min-height:44px;border:1px solid #cadbe7;border-radius:10px;background:#fff;color:var(--navy);padding:8px 12px}
.weekly-input select:disabled{opacity:.7;background:#edf3f5}.locked-choice{display:block;color:var(--good);font-size:11px;margin-top:5px}
.request-preview{border:1px solid #d7e6ed;background:#f8fbfd;border-radius:12px;padding:12px;margin:15px 0}
.request-preview strong{display:block;margin-bottom:8px}
.request-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0}
.demand-card{background:#f4f8fa;border:1px solid #dce8ee;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:3px;font-size:12px}
.demand-card strong,.demand-card b{font-size:13px}.demand-card small{font-size:11px;color:var(--muted)}
.pending-cell{background:#fff3db;color:#936420;border-radius:5px;font-size:10px;font-weight:700;margin-top:3px;white-space:normal;min-width:85px;padding:3px}
@media(max-width:650px){.request-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-line{grid-template-columns:72px minmax(0,1fr);gap:7px;padding:10px}.weekly-input select{font-size:13px}}

.weekly-demand{display:block;color:#59798b;font-size:11px;margin-top:5px}
/* v6 · manager-first weekly coordination, staff availability and owner credit */
.v6-tools{margin:14px 0;display:flex;flex-wrap:wrap;gap:8px}
.v6-tools button{font-size:13px}
.v6-week-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:14px 0}
.v6-worker-day{background:#f8fbfd;border:1px solid var(--border);border-radius:13px;padding:13px;min-width:0}
.v6-worker-head{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:9px}
.v6-worker-head .muted{font-size:10px;text-align:left}
.v6-worker-day select,.v6-approve select,.v6-duo select{display:block;width:100%;min-height:40px;border:1px solid #ccdbe5;background:white;border-radius:9px;padding:8px;color:#103651}
.v6-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:9px;margin-bottom:12px}
.v6-duo label{font-size:12px;color:var(--muted);display:block}
.v6-duo select{margin-top:5px;font-weight:700;font-size:13px;color:var(--ink)}
.v6-available{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.v6-available label{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid #d5e4ea;border-radius:9px;padding:9px;font-size:12px;cursor:pointer}
.v6-available input{accent-color:var(--navy);width:17px;height:17px}
.v6-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:15px;align-items:start}
.v6-manager-day{border:1px solid var(--border);background:#fbfdfe;border-radius:13px;padding:12px;min-width:0}
.v6-manager-day-header{display:flex;align-items:center;justify-content:space-between;gap:9px;padding-bottom:9px;border-bottom:1px solid var(--border)}
.v6-manager-day h2{font-size:17px;margin:0}.v6-manager-day h2 small{color:var(--muted);font-size:11px}
.v6-categories{display:grid;gap:7px;margin-top:10px}
.v6-request-category{background:#fff;border:1px solid #e4ecf1;border-radius:10px;padding:9px;min-width:0}
.v6-cat-title{display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;margin-bottom:6px}
.v6-cat-title span{font-size:11px;color:#587389}
.v6-request-line{display:flex;flex-direction:column;gap:8px;padding:9px 1px 8px;border-top:1px solid #edf2f5}
.v6-request-line b{font-size:13px}.v6-request-line small{display:block;font-size:11px;color:var(--muted);line-height:1.4}
.v6-approve{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.v6-approve select{min-width:115px;flex:1;font-size:12px}
.v6-approve button{min-height:34px;padding:6px 9px;font-size:11px}
.v6-suggestion{border:1px solid #b7d8ce;background:#f1faf6;padding:15px;border-radius:13px;margin:12px 0}
.v6-suggestion h3{font-size:18px;margin:0}.v6-suggestion p{font-size:13px}
.v6-suggestion-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:240px;overflow:auto;gap:4px;font-size:11px;margin:10px 0}
.v6-suggestion-list div{background:white;border-radius:5px;padding:4px 6px}
.creator-credit{position:relative;font-size:10px}
.creator-credit summary{display:flex;gap:6px;align-items:center;cursor:pointer;list-style:none;opacity:.83}
.creator-credit summary::-webkit-details-marker{display:none}
.creator-credit img{border-radius:50%;width:25px;height:25px;object-fit:contain}
.creator-credit strong{font-size:10px;letter-spacing:.05em}
.creator-contact{position:absolute;bottom:32px;left:0;min-width:255px;background:white;border:1px solid var(--border);border-radius:11px;padding:12px;box-shadow:var(--shadow);color:var(--ink);font-size:12px;direction:rtl;z-index:3}
.creator-contact a{color:var(--navy);text-decoration:underline}
.v6-hours-table{min-width:600px}
@media(max-width:750px){.v6-days{grid-template-columns:1fr}.v6-week-grid{grid-template-columns:1fr}.v6-duo{grid-template-columns:1fr}.v6-worker-head{align-items:flex-start;flex-direction:column}.v6-suggestion-list{grid-template-columns:1fr}.footer{gap:12px;align-items:flex-start;flex-direction:column}}
@media print{body{background:#fff}.masthead,.tabs,.footer,.actions,.v6-tools,#publish,.toast,.weekpicker button,.edit-grid select{print-color-adjust:exact;-webkit-print-color-adjust:exact}.masthead{padding:12px}.app-shell{min-height:0}.panel{box-shadow:none;border:0;padding:6px}.footer{display:none}#publish,.v6-tools,.tabs,.account-actions{display:none}.edit-grid select{appearance:none;border:none} .table-container{overflow:visible}.edit-grid{min-width:unset;width:100%}}

/* Compact explanatory note for exclusive all-day shifts */
.v6-double-note{font-size:.8rem;color:#7b5b23;margin-top:7px;line-height:1.45;background:#fff3db;border-radius:9px;padding:7px 10px}
