/* MOON v5.0 — common controls across dashboards, consoles and stations. */
[hidden]{display:none!important}
body.moon-app-page,body.display-page{font-family:var(--body-font,Arial,Helvetica,sans-serif);font-size:var(--skin-base-size,16px)}
body .moon-modal input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=hidden]),body .moon-modal select,body .moon-modal textarea,.portal-login-dialog input,.email-sign-in input{background:var(--input-bg,#fff)!important;color:var(--input-text,#17212a)!important;border:1px solid #94a3ad!important;border-radius:4px!important;min-width:0;box-sizing:border-box}
body .moon-modal :is(.form-grid,.directory-form,.purchase-order-form,.settings-form,.day-punch-grid) label:not(.inline-check):not(.work-log-row):not(.day-work-row){display:grid!important;gap:6px!important;align-content:start;min-width:0;margin:0}
body .moon-modal :is(.form-grid,.directory-form,.purchase-order-form,.settings-form,.day-punch-grid) label>input:not([type=checkbox]):not([type=radio]):not([type=color]),body .moon-modal label>select,body .moon-modal label>textarea{width:100%!important;max-width:none!important;min-height:34px}
body .moon-modal .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;align-items:start}
body .moon-modal .form-grid .span-all{grid-column:1/-1}
.moon-modal .settings-form,.moon-modal .directory-form,.moon-modal .purchase-order-form{display:grid;gap:16px;padding:16px!important;min-width:0}
.moon-modal .directory-form{width:min(760px,96vw)!important;max-height:calc(100dvh - 32px);overflow:auto;border-radius:6px}
.directory-editor-overlay{padding:16px!important;align-items:flex-start!important;overflow:auto}
.purchase-order-modal{width:min(940px,96vw)!important}
.field-with-action,.field-with-action input,.field-with-action select{min-width:0}.field-with-action input,.field-with-action select{flex:1 1 auto;width:100%}
.moon-modal .moon-standard-button,.moon-modal .note-form button{font:600 .76rem Arial,Helvetica,sans-serif!important;min-height:32px;border:1px solid var(--steel)!important;border-radius:4px!important;padding:7px 12px!important}
.moon-modal .inline-check,.user-toggle-row{gap:10px;align-items:center}.user-toggle-row{display:flex;flex-wrap:wrap}
.moon-modal .settings-section-card h3,.moon-modal .settings-section-card h4{font:700 .95rem Arial,Helvetica,sans-serif!important;color:var(--subheading,var(--amber))!important;text-transform:uppercase;margin:0 0 12px}
#create-object-body .note-form,#create-object-body #job-form,#create-object-body #shop-note-form{display:block!important;width:100%!important;max-width:none!important;box-sizing:border-box;padding:16px!important}
#create-object-body .create-job-grid{width:100%!important;max-width:none!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}
#create-object-body .create-job-grid .span-2{grid-column:span 2}#create-object-body .create-job-grid .span-all{grid-column:1/-1}
#create-object-body .note-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
#create-object-body .v5-task-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}
#create-object-body .v5-task-grid>label{grid-column:span 2}
#create-object-body #shop-note-form>label:has(textarea){display:grid;gap:6px;margin-top:16px}
#create-object-body #shop-note-form>label:has(textarea) textarea{width:100%;min-height:110px}
#create-object-body #shop-note-form>.inline-check{display:inline-flex;gap:8px;margin:12px 14px 0 0}
.moon-modal-backdrop:has(.day-editor){padding:0!important;align-items:stretch!important}
.moon-modal-backdrop:has(.day-editor)>.moon-modal{height:100dvh!important;width:100vw!important;max-height:100dvh!important;max-width:none!important;border-radius:0!important;display:flex!important;flex-direction:column;margin:0!important}
.moon-modal-backdrop:has(.day-editor) .moon-modal-body{overflow:auto;flex:1;min-height:0;padding:14px!important}
.day-editor-date{margin-bottom:12px!important}.day-punch-card{padding:12px!important;margin:0 0 14px!important}
.day-punch-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px!important;align-items:start}
.clockout-punch-card{flex:0 0 auto}.clockout-punch-card .day-punch-grid>div{display:grid;gap:5px}.clockout-punch-card .day-punch-grid span{font-size:.75rem;color:var(--muted)}
.time-summary-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
.workspace-metric{display:grid;gap:7px;padding:10px 12px;background:var(--panel-2);border:1px solid var(--steel);border-radius:4px;min-width:0}
.workspace-metric>span{font:600 .65rem Arial,Helvetica,sans-serif;text-transform:uppercase;color:var(--muted)}.workspace-metric>strong{font:700 1.1rem Consolas,monospace;color:var(--metric-text,#74e078)}
.worklog-filters{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 12px}.worklog-filters>label{display:grid;gap:5px;font-size:.75rem;min-width:150px}.worklog-filters input{min-height:32px;padding:7px}
.work-log-row[hidden],.day-work-row[hidden]{display:none!important}
.work-log-row,.day-work-row{padding:10px 6px!important}.day-work-head,.work-log-head{font-size:.7rem}
.v5-leave-controls{display:flex;justify-content:space-between;gap:14px;padding:8px 0;grid-column:1/-1}.leave-left-actions,.leave-right-actions{display:flex;gap:7px;align-items:center}.leave-left-actions{flex-wrap:wrap}.leave-right-actions{margin-left:auto}.leave-right-actions small{font-size:.7rem;color:var(--muted)}
.sick-day-button{min-width:150px!important;min-height:46px!important;background:#fff!important;color:#17212a!important;text-transform:uppercase;font-weight:700!important}
.employee-leave-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin:8px 0}.employee-leave-actions button{flex:1 1 160px}
.time-state-sick{background:rgba(210,62,161,.28)!important;border-color:#da57b8!important}.time-state-vacation{background:rgba(235,181,45,.28)!important;border-color:#e6b446!important}
.time-state-flag{background:rgba(223,75,72,.19)!important;border-color:#e86b66!important}.time-state-locked:not(.time-state-flag):not(.time-state-sick):not(.time-state-vacation){background:rgba(148,94,209,.28)!important;border-color:#ad78db!important}
.job-filter-toggles,.task-filter-toggles{width:100%;justify-content:flex-start}
.job-filters-row{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:flex-start!important;gap:8px!important}
.job-filters-row .module-sort-select{margin-left:0!important;order:-1;flex:0 1 190px}.job-filters-row .inline-check{font-size:.68rem;white-space:nowrap}.job-filters-row #job-number-filter{width:125px}.job-filters-row #job-customer-filter{width:180px}
.task-toolbar{display:grid!important;grid-template-columns:1fr!important;justify-content:start!important}.task-secondary-filters{display:flex;gap:8px;align-items:center;justify-content:flex-start;flex-wrap:wrap}.task-secondary-filters select{max-width:210px;margin:0!important}.task-secondary-filters .inline-check{font-size:.68rem}
.job-card-live .job-card-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.job-card-live .job-card-metrics:has(>.workspace-metric-card:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr));width:300px;max-width:50%}
.disposition-button{background:var(--panel-2)!important;border-color:var(--steel)!important;color:var(--text)!important;box-shadow:none!important}
/* Labels sit above the progress background rather than inheriting lamp geometry. */
.job-progress-segment{position:relative!important;isolation:isolate;overflow:visible!important}
.job-progress-segment i{display:block!important;position:relative!important;inset:auto!important;transform:none!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;border:0!important;border-radius:0!important;clip-path:none!important;mask:none!important;background:transparent!important;z-index:2!important;font-style:normal!important;font-size:clamp(8px,.58vw,10px)!important;line-height:1.25!important;overflow:visible!important;color:var(--workflow-text,#fff)!important;text-overflow:clip!important;text-align:center!important;white-space:normal!important;box-shadow:none!important}
.job-progress-segment:before,.job-progress-segment:after,.job-progress-segment i:before,.job-progress-segment i:after{content:none!important}
.user-roster-head,.user-roster-row{display:grid;grid-template-columns:minmax(160px,2fr) minmax(110px,1fr) minmax(110px,1fr) 90px 145px;gap:12px;align-items:center}.user-roster-head{padding:8px 12px;color:var(--muted);font:600 .65rem Arial,Helvetica,sans-serif;text-transform:uppercase}
.role-permission-head,.role-permission-row,.settings-view-departments .role-permission-head,.settings-view-departments .role-permission-row{grid-template-columns:100px 65px repeat(14,minmax(0,1fr))!important;gap:6px!important;min-width:1080px;align-items:center}.access-role-fields{overflow-x:auto}.role-permission-head span{text-align:center;line-height:1.2;overflow-wrap:anywhere}.role-permission-row input[type=checkbox]{justify-self:center}
.subscription-card h2{font:700 .85rem Arial,Helvetica,sans-serif!important;color:var(--subheading)!important}.subscription-card .card-head{border-bottom:0!important}.subscription-details dt{font:400 .8rem Arial,Helvetica,sans-serif!important;color:var(--muted)!important}.subscription-details dd{font-size:.9rem!important;padding:10px!important;color:var(--text)!important;background:var(--panel-2)!important}
.settings-appearance-quick{grid-template-columns:minmax(200px,2fr) minmax(160px,1fr) auto auto!important}.settings-hub-group[hidden],#settings-live-group[hidden]{display:none!important}
.portal-admin-link{border:0!important;background:none!important;box-shadow:none!important;padding:0!important;min-width:0!important;font:inherit!important;font-size:inherit!important;line-height:inherit!important;letter-spacing:inherit!important;text-transform:uppercase;color:inherit!important;opacity:1!important;text-decoration:none!important}
.service-tenant-actions{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px!important}.service-tenant-actions label{display:inline-flex!important;white-space:nowrap;font-size:.75rem}.service-tenant-row input{min-width:0}.service-version-status{line-height:1.4}
.procurement-toolbar :is(select,input){background:#fff!important;color:#17212a!important;border:1px solid #94a3ad;border-radius:4px;padding:7px 9px;min-height:34px}
.receiving-modal{height:calc(100dvh - 24px);max-height:calc(100dvh - 24px)!important;display:flex;flex-direction:column}.receiving-modal .moon-modal-body{flex:1;min-height:0;overflow:auto}
#receiving-backdrop{align-items:flex-start!important;padding:12px!important}.procurement-toolbar{justify-content:flex-start!important;gap:10px!important}.procurement-toolbar label{min-width:150px}.purchase-order-row{padding:14px!important;gap:20px!important}.purchase-order-row>div:first-child{display:grid;gap:5px}.purchase-order-actions{display:flex;gap:7px}
.report-content{overflow:auto;white-space:pre-wrap;min-height:0}.payroll-visuals{white-space:normal;padding:10px 0 20px;font:14px Arial,Helvetica,sans-serif}.payroll-detail{white-space:pre-wrap;line-height:1.5;margin:0}
.payroll-chart-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(200px,1fr);gap:24px;margin:20px 0}.payroll-chart-grid h4{margin:0 0 12px;font-size:.9rem;color:var(--heading,#17212a)}.payroll-bars{display:grid;gap:10px}.payroll-bars>div{display:grid;grid-template-columns:minmax(95px,1fr) minmax(80px,2fr) 65px;gap:10px;align-items:center}.payroll-bar{height:17px;border-radius:3px;background:linear-gradient(90deg,#3da9bf var(--bar-percent),rgba(120,140,150,.18) var(--bar-percent))}.payroll-pie{width:140px;height:140px;border-radius:50%;background:conic-gradient(#3da9bf 0 var(--allocated-angle),#e6ad43 var(--allocated-angle) 360deg)}.legend-allocated,.legend-unallocated{display:inline-block;width:10px;height:10px;background:#3da9bf}.legend-unallocated{background:#e6ad43}
/* Fixed station lists stay in order until a record or station configuration changes. */
#display-shell .display-main>.common-display-command-board{padding:7px!important}.common-display-metrics{gap:5px!important}.common-display-metrics>div{padding:5px 7px!important;min-height:39px!important}.common-display-metrics>div>span{font-size:.55rem!important}.common-display-metrics>div>strong{font-size:1rem!important;line-height:1.2!important}
#display-shell .common-display-weather .weather-temp{font-size:2rem!important;line-height:1.05!important}.common-display-weather .weather-now{gap:3px!important}.common-display-weather .weather-now>span,.common-display-weather .weather-forecast>span{font-size:.68rem!important}.common-display-weather h2{font-size:.85rem!important}.common-display-weather .weather-split{gap:12px!important}.command-deadline-marquee{margin-top:4px!important;padding-top:3px!important;font-size:.63rem}
#display-shell #display-jobs,#display-shell #display-notes{overflow-y:auto!important;scrollbar-width:thin;grid-auto-rows:max-content}
#display-shell .relay-time-grid,#display-shell .relay-time-scroll,#relay-calendar-grid{overflow:auto!important}.relay-page-label{display:none!important}
.relay-v49-progress{display:block!important;min-width:0}.relay-v49-progress .job-status-strip{display:block;margin:0!important}.relay-v49-progress .job-progress-bar{margin:0!important}.relay-v49-progress .job-progress-segment{min-height:26px!important}.relay-v49-progress .job-progress-summary{display:none}.relay-v49-progress .hold-reason{display:none}
body[data-relay-job-card-size=compact] .relay-v49-job>.relay-card-metrics,body[data-relay-task-card-size=compact] .relay-v49-task>.relay-card-metrics{display:none!important}
body[data-relay-job-card-size=compact] .relay-v49-job{grid-template-areas:"summary meta progress state"!important;min-height:58px!important}
.relay-card-metrics{display:grid!important;grid-template-columns:repeat(2,minmax(70px,1fr));gap:7px;max-width:230px}.relay-card-metrics>span{display:grid;gap:7px;padding:9px;border:1px solid var(--steel);border-radius:4px;background:var(--panel-2);font:600 .58rem Arial,Helvetica,sans-serif;text-transform:uppercase}.relay-card-metrics strong{display:block;font:700 1rem Consolas,monospace;color:var(--metric-text)!important;margin:0}
body[data-relay-job-card-size=standard] .relay-v49-job{grid-template-columns:minmax(0,1fr) 200px!important;grid-template-areas:"summary metrics" "meta metrics" "notes notes" "progress progress" "state state"!important;min-height:160px!important;gap:7px!important}.relay-v49-job .relay-card-metrics{grid-area:metrics;justify-self:end}
body[data-relay-job-card-size=standard] .relay-v49-progress .job-progress-summary{display:flex}.relay-v49-meta{line-height:1.4}.relay-time-day{background:rgba(125,141,152,.12);border:1px solid rgba(125,141,152,.35)}.relay-time-day.time-state-complete{background:rgba(71,139,206,.20);border-color:#5494cb}.relay-time-day small{white-space:normal;line-height:1.25}.relay-time-day.is-open{background:rgba(66,179,80,.22)!important;color:#86f092}.relay-time-day.is-break{background:rgba(215,153,56,.25)!important;color:#f0c868}
@media(max-width:900px){.day-punch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-appearance-quick{display:flex!important;flex-wrap:wrap}.v5-leave-controls{flex-wrap:wrap}.leave-right-actions{margin-left:0}.payroll-chart-grid{grid-template-columns:1fr}.user-roster-head,.user-roster-row{grid-template-columns:minmax(120px,2fr) 90px 90px 70px 120px;font-size:.75rem}.time-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}#create-object-body .create-job-grid,#create-object-body .v5-task-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.job-filters-row .module-sort-select{order:0}.job-card-live .job-card-metrics:has(>.workspace-metric-card:nth-child(3)){max-width:none;width:100%}body[data-relay-job-card-size=compact] .relay-v49-job{grid-template-columns:1fr 1fr!important;grid-template-areas:"summary state" "meta meta" "progress progress"!important}}
@media(max-width:580px){body .moon-modal .form-grid{grid-template-columns:1fr!important}#create-object-body .create-job-grid,#create-object-body .v5-task-grid{grid-template-columns:1fr!important}#create-object-body .create-job-grid .span-2,#create-object-body .v5-task-grid>label{grid-column:auto}.user-roster-head{display:none}.user-roster-row{grid-template-columns:1fr 1fr}.user-roster-row>strong{grid-column:1/-1}.leave-right-actions{flex-wrap:wrap}.payroll-bars>div{grid-template-columns:95px 1fr 58px}.day-punch-grid{gap:8px!important}.clockout-punch-card{padding:8px!important}.moon-modal .directory-form{width:100%!important}}
@media print{.payroll-chart-grid,.time-summary-metrics{break-inside:avoid}.payroll-visuals{color:#111}.workspace-metric{background:#f5f5f5;border-color:#999}.workspace-metric>span,.workspace-metric>strong{color:#111}.payroll-chart-grid h4{color:#111}.payroll-bar,.payroll-pie,.legend-allocated,.legend-unallocated{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

body.moon-app-page[data-moon-font-scale="compact"],body.display-page[data-moon-font-scale="compact"],body.display-page[data-moon-font-scale="dense"]{font-size:calc(var(--skin-base-size,16px)*.8125)}
body.moon-app-page[data-moon-font-scale="large"],body.display-page[data-moon-font-scale="large"]{font-size:calc(var(--skin-base-size,16px)*1.125)}
body.moon-app-page[data-moon-font-scale="extra-large"],body.display-page[data-moon-font-scale="extra-large"]{font-size:calc(var(--skin-base-size,16px)*1.25)}

.settings-view-departments .role-permission-head{padding:4px!important;border:1px solid transparent;box-sizing:border-box}
