:root{--blue:#1463ff;--ink:#172033;--muted:#667085;--line:#e4e7ec;--bg:#f6f8fb;--danger:#c62828;--confirmed:#34c759;--date-tbc:#ff9500;--tbc:#0a84ff;--hyp:#8e8e93}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}.top{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;gap:28px;position:sticky;top:0;z-index:20}.brand{font-weight:800;color:var(--blue);font-size:20px}.nav{display:flex;gap:18px;flex:1}.nav a{font-size:14px;color:#475467}.user{font-size:13px;color:var(--muted)}main{max-width:1380px;margin:28px auto;padding:0 20px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:16px}.metric{font-size:28px;font-weight:750}.muted{color:var(--muted);font-size:13px}.btn{display:inline-block;background:var(--blue);color:#fff;border:0;border-radius:9px;padding:10px 14px;font-weight:650;cursor:pointer}.btn.secondary{background:#eef4ff;color:var(--blue)}.textlink{color:var(--blue);font-weight:600}.pagehead,.calendar-head,.cal-nav,.legend{display:flex;align-items:center}.pagehead,.calendar-head{justify-content:space-between;gap:16px;margin-bottom:18px}.pagehead h1,.calendar-head h1{margin:0}.cal-nav{gap:12px}.cal-arrow{font-size:32px;line-height:1;color:var(--blue);padding:0 4px}.legend{gap:15px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px}.legend i,.jobdot{width:9px;height:9px;border-radius:50%;display:inline-block}.legend .status-confirmed,.jobdot.status-confirmed{background:var(--confirmed)}.legend .status-date_tbc,.jobdot.status-date_tbc{background:var(--date-tbc)}.legend .status-tbc,.jobdot.status-tbc{background:var(--tbc)}.legend .status-hypothetical,.jobdot.status-hypothetical{background:var(--hyp)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-weight:600}input,select,textarea{width:100%;padding:10px;border:1px solid #d6dae3;border-radius:8px;background:#fff;font:inherit}textarea{min-height:76px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.badge,.jobstatus{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef4ff;color:var(--blue);font-size:12px;font-weight:700}.jobstatus.status-confirmed{background:#eaf9ee;color:#208a39}.jobstatus.status-date_tbc{background:#fff4e5;color:#a65b00}.jobstatus.status-tbc{background:#e9f4ff;color:#086ac1}.jobstatus.status-hypothetical{background:#f0f0f2;color:#5f6066}.eq-maintenance{background:#fff4e5;color:#a65b00}.eq-unavailable{background:#fff0f0;color:#b42318}.eq-offsite,.eq-assigned{background:#e9f4ff;color:#086ac1}.alert{padding:12px;border-radius:8px;background:#fff1f1;color:var(--danger);margin-bottom:15px}.login{max-width:420px;margin:90px auto}.apple-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#fff;border:1px solid #d9dce2;border-radius:12px;overflow:hidden;margin-bottom:20px}.weekday{padding:9px 10px;text-align:right;background:#fafafa;border-bottom:1px solid #d9dce2;color:#777;font-size:12px;font-weight:600}.cal-day{min-height:138px;padding:7px;border-right:1px solid #e5e5e7;border-bottom:1px solid #e5e5e7;background:#fff;overflow:hidden}.cal-day:nth-child(7n){border-right:0}.day-number{text-align:right;font-size:13px;color:#333;margin-bottom:6px}.other-month{background:#fafafa}.other-month .day-number{color:#b4b4b7}.today .day-number{background:#ff3b30;color:#fff;width:25px;height:25px;line-height:25px;border-radius:50%;text-align:center;margin-left:auto}.cal-event{display:flex;gap:5px;align-items:center;padding:4px 6px;margin:3px 0;border-radius:5px;color:#fff;font-size:11px;line-height:1.25;white-space:nowrap;overflow:hidden}.cal-event.status-confirmed{background:var(--confirmed)}.cal-event.status-date_tbc{background:var(--date-tbc)}.cal-event.status-tbc{background:var(--tbc)}.cal-event.status-hypothetical{background:var(--hyp)}.event-time{font-weight:500;opacity:.9}.event-title{font-weight:700;overflow:hidden;text-overflow:ellipsis}.new-job{margin-top:8px}.equip-chip{display:inline-flex;align-items:center;gap:6px;background:#eef4ff;color:var(--blue);border-radius:999px;padding:5px 8px;margin:4px}.equip-chip button{border:0;background:transparent;color:inherit;font-size:17px;cursor:pointer;padding:0 2px}@media(max-width:800px){.grid{grid-template-columns:1fr 1fr}.nav{overflow:auto}.formgrid{grid-template-columns:1fr}.top{padding:0 12px}.nav a:nth-child(n+5){display:none}.calendar-head{align-items:flex-start;flex-direction:column}.apple-calendar{overflow-x:auto;grid-template-columns:repeat(7,minmax(125px,1fr))}.cal-day{min-height:120px}.pagehead{align-items:flex-start}}@media(max-width:480px){.grid{grid-template-columns:1fr}}

.backbtn{border:0;background:transparent;color:var(--blue);font:inherit;font-weight:650;padding:0;margin:0 0 16px;cursor:pointer}.grid.two{grid-template-columns:1fr 1fr}.computed-value{padding:11px 12px;background:#f5f8ff;border:1px solid #dbe7ff;border-radius:9px;display:flex;justify-content:space-between;align-items:center}.computed-value strong{font-size:18px;color:var(--blue)}.inline-add{display:grid;grid-template-columns:130px 1fr 130px auto;gap:8px;margin-top:14px}.iconbtn{border:0;background:transparent;font-size:20px;color:#999;cursor:pointer}.view-switch{display:flex;background:#e9e9ec;border-radius:9px;padding:2px}.view-switch a{padding:6px 12px;border-radius:7px;font-size:13px}.view-switch a.active{background:#fff;box-shadow:0 1px 3px #0002;font-weight:650}.time-calendar{display:grid;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:15px 0 20px}.time-calendar.cols-7{grid-template-columns:repeat(7,1fr)}.time-calendar.cols-1{grid-template-columns:1fr}.time-day{min-height:430px;border-right:1px solid var(--line);padding:8px}.time-day:last-child{border-right:0}.time-day-head{text-align:center;border-bottom:1px solid var(--line);padding:8px;margin:-8px -8px 8px;display:flex;flex-direction:column}.time-day-head span{font-size:12px;color:var(--muted)}button.cal-event{border:0;width:100%;cursor:pointer;text-align:left;font-family:inherit}.cal-event.large{padding:9px;margin:7px 0;white-space:normal;display:block}.cal-event.large .event-time{display:block;font-size:12px}.cal-event.large .event-title{display:block;font-size:13px;margin-top:2px}.empty-day{padding:20px 5px;text-align:center;color:var(--muted);font-size:12px}.modal{position:fixed;inset:0;background:#0005;z-index:100;display:none;align-items:center;justify-content:center;padding:20px}.modal.open{display:flex}.modal-card{background:#fff;border-radius:18px;box-shadow:0 25px 70px #0004;width:min(620px,100%);padding:24px;position:relative}.modal-close{position:absolute;right:14px;top:12px;border:0;background:#eee;border-radius:50%;width:30px;height:30px;font-size:20px;cursor:pointer}.modal-status{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;margin-bottom:8px}.modal-status.status-confirmed{background:#eaf9ee;color:#208a39}.modal-status.status-date_tbc{background:#fff4e5;color:#a65b00}.modal-status.status-tbc{background:#e9f4ff;color:#086ac1}.modal-status.status-hypothetical{background:#f0f0f2;color:#5f6066}.modal-card h2{margin:4px 0}.modal-project{color:var(--muted);margin-bottom:18px}.event-info{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.event-info div{background:#f7f8fa;border-radius:10px;padding:10px}.event-info small{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.event-info b{font-size:13px}.modal-notes{border-top:1px solid var(--line);padding-top:14px;white-space:pre-wrap}@media(max-width:800px){.grid.two{grid-template-columns:1fr}.inline-add{grid-template-columns:1fr}.time-calendar.cols-7{grid-template-columns:1fr}.time-day{min-height:auto;border-right:0;border-bottom:1px solid var(--line)}.event-info{grid-template-columns:1fr}.calendar-head{gap:10px}.view-switch{align-self:stretch}.view-switch a{flex:1;text-align:center}}
/* V1.3 timeline calendar */
.timeline-wrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:auto;margin:15px 0 20px}.timeline-head{height:48px;display:grid;grid-template-columns:64px repeat(7,1fr);position:sticky;top:0;background:#fff;z-index:8;border-bottom:1px solid var(--line);min-width:850px}.time-spacer{border-right:1px solid var(--line)}.timeline-date{text-align:center;padding:14px 4px;font-size:13px;font-weight:650;border-right:1px solid var(--line)}.timeline-grid{height:1440px;position:relative;min-width:850px;background:#fff}.hour-label{position:absolute;left:0;width:60px;text-align:right;padding-right:8px;transform:translateY(-7px);font-size:10px;color:#8a8f98;z-index:2}.hour-line{position:absolute;left:64px;right:0;border-top:1px solid #eceef2;height:1px}.day-column{position:absolute;top:0;bottom:0;border-right:1px solid #eceef2}.timeline-event{position:absolute;border-radius:6px;padding:5px 7px;color:#fff;z-index:4;overflow:hidden;cursor:grab;box-shadow:0 1px 2px #0002;user-select:none;touch-action:none;min-height:15px}.timeline-event:active{cursor:grabbing;z-index:7}.timeline-event.status-confirmed{background:var(--confirmed)}.timeline-event.status-date_tbc{background:var(--date-tbc)}.timeline-event.status-tbc{background:var(--tbc)}.timeline-event.status-hypothetical{background:var(--hyp)}.timeline-event b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-event span{font-size:10px;opacity:.9}.resize-handle{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize}.quick-section{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.quick-section h3{font-size:14px;margin:0 0 9px}.quick-chip{display:inline-flex;align-items:center;gap:5px;background:#eef4ff;color:var(--blue);padding:5px 8px;border-radius:999px;font-size:12px;margin:2px}.quick-chip button,.mini-x{border:0;background:transparent;cursor:pointer;color:inherit}.quick-add{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:9px}.operator-row{display:grid;grid-template-columns:1fr 145px 25px;gap:7px;align-items:center;margin:6px 0}.operator-row select{padding:6px}.logistics-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px}.modal-card{max-height:90vh;overflow:auto}.modal-actions{margin-top:18px}.savebar{display:flex;justify-content:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:800px){.timeline-head,.timeline-grid{min-width:720px}.logistics-grid{grid-template-columns:1fr}.quick-add{grid-template-columns:1fr}.operator-row{grid-template-columns:1fr 120px 24px}}

/* V1.4 compact calendar + resource states */
.timeline-wrap{max-height:650px}.timeline-grid{height:960px}.timeline-event{padding:3px 6px;min-height:10px}.timeline-event b{font-size:10px}.timeline-event span{font-size:9px}.operator-status.pending{background:#fff4e5;color:#9a5b00;border-color:#ffc56a}.operator-status.accepted{background:#eaf9ee;color:#208a39;border-color:#9ddcab}.operator-status.declined{background:#fff0f0;color:#b42318;border-color:#f3a6a6}.vehicle-chip{background:#f2f0ff;color:#6554c0}.section-tabs{display:flex;background:#e9e9ec;border-radius:9px;padding:2px}.section-tabs a{padding:7px 11px;border-radius:7px;font-size:13px}.section-tabs a.active{background:#fff;box-shadow:0 1px 3px #0002;font-weight:650}.quick-project{margin:12px 0}.quick-project label{font-size:11px;color:var(--muted)}.quick-project select{margin-top:5px;color:var(--ink)}
/* V1.5 Skyters UI */
:root{--blue:#28567f;--blue-soft:#91aabd;--ink:#17324a;--bg:#f4f7f9;--line:#dfe7ed}
.brand{width:116px;height:42px;display:flex;align-items:center;overflow:hidden}.brand img{width:116px;height:auto;display:block}.login-brand img{width:250px;max-width:100%;height:auto}.top{height:68px;box-shadow:0 1px 8px #17324a0a}.card{border-radius:12px;box-shadow:0 1px 3px #17324a0a}.btn{background:var(--blue)}.btn.secondary{background:#eaf0f5;color:var(--blue)}.resource-create-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.resource-create-grid label{font-size:12px;color:var(--muted);font-weight:650}.resource-create-grid select{margin-top:6px;min-height:120px}.quick-status{margin:4px 0 12px}.quick-status label{font-size:11px;color:var(--muted)}.quick-status select{margin-top:4px}.create-selection{position:absolute;background:#28567f33;border:2px solid var(--blue);border-radius:6px;z-index:3;pointer-events:none}.computed-value{margin-bottom:8px}.inline-add{grid-template-columns:120px minmax(150px,1fr) 120px minmax(170px,1fr) auto}@media(max-width:900px){.resource-create-grid{grid-template-columns:1fr}.inline-add{grid-template-columns:1fr}}
.client-logo{width:90px;height:60px;object-fit:contain;border:1px solid var(--line);border-radius:9px;padding:6px;background:#fff;margin-bottom:14px}
.client-logo{width:90px;height:60px;object-fit:contain;border:1px solid var(--line);border-radius:9px;padding:6px;background:#fff;margin-bottom:14px}
.calendar-filters{display:flex;gap:8px;margin:12px 0}.calendar-filters select{width:auto;min-width:220px}

/* V1.5.1 stabilization */
.brand{width:54px;height:42px;overflow:hidden}.brand img{width:150px;max-width:none;height:auto;transform:translateX(-2px)}.login-brand img{width:190px;max-width:80%;height:auto}.resource-create-grid fieldset{border:1px solid var(--line);border-radius:10px;padding:10px;min-width:0;max-height:260px;overflow:auto}.resource-create-grid legend{font-size:12px;font-weight:700;color:var(--ink);padding:0 5px}.check-row{display:flex!important;align-items:center;gap:9px;padding:7px 5px;border-bottom:1px solid #eef1f4;color:var(--ink)!important;font-size:13px!important;font-weight:500!important;cursor:pointer}.check-row:last-child{border-bottom:0}.check-row input[type=checkbox]{width:17px;height:17px;flex:0 0 auto;margin:0;accent-color:var(--blue)}.check-row span{line-height:1.25}.top .brand{flex:0 0 54px}.nav{margin-left:4px}

/* V1.5.2 - stable resource search, staff CRUD, compact branding */
.top .brand{width:42px!important;height:42px!important;flex:0 0 42px!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important}
.top .brand img{width:31px!important;height:38px!important;max-width:31px!important;max-height:38px!important;object-fit:contain!important;transform:none!important;display:block!important}
.login-brand{text-align:center;margin-bottom:12px}.login-brand img{width:220px!important;max-width:72vw!important;height:auto!important;object-fit:contain!important}

.resource-create-grid,.resource-manager-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.resource-picker{border:1px solid var(--line);border-radius:11px;padding:12px;background:#fff;min-width:0}
.resource-picker-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:9px}.resource-picker-head strong{font-size:13px}.resource-picker-head .muted{font-size:11px}
.resource-search{margin-top:8px}.resource-selected,.resource-assigned{min-height:32px;margin:3px 0 4px}
.resource-results{display:flex;flex-direction:column;gap:4px;max-height:190px;overflow:auto;margin-top:6px}
.resource-result{border:1px solid #dbe4eb;background:#f8fafb;color:var(--ink);border-radius:8px;padding:8px 9px;text-align:left;font:inherit;font-size:12px;cursor:pointer}.resource-result:hover{background:#eef4f8;border-color:#bfd0dc}
.resource-empty{font-size:12px;color:var(--muted);padding:8px 3px}.resource-hidden{display:none}
.modal-resource-picker{margin-top:9px}.modal-resource-picker .resource-results{max-height:160px}
.assigned-person{display:grid;grid-template-columns:minmax(0,1fr) 135px 26px;gap:7px;align-items:center;padding:5px 0;border-bottom:1px solid #edf1f4}.assigned-person:last-child{border-bottom:0}
.operator-name-state{display:inline-flex;align-items:center;gap:7px;min-width:0}.operator-name-state b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.op-square{width:8px;height:8px;border-radius:2px;display:inline-block;flex:0 0 8px;border:1px solid rgba(255,255,255,.75);box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.op-square.pending{background:#ff9500}.op-square.accepted{background:#34c759}.op-square.declined{background:#ff3b30}
.toggle-row{display:flex;align-items:center;gap:8px;margin:14px 0;font-size:13px}.toggle-row input{width:auto}.row-inactive{opacity:.62}.badge-muted{background:#f0f1f3;color:#667085}
.staff-form-card{border-color:#cbd9e3}

.timeline-event{display:block}.timeline-core{min-width:0}.timeline-core b{margin:0}.timeline-time{display:block!important;white-space:nowrap}
.timeline-ops{display:flex;align-items:flex-end;gap:6px;margin-top:4px;overflow:hidden;white-space:nowrap}.timeline-op{display:inline-flex;flex-direction:column;align-items:center;min-width:0;max-width:54px;font-size:8px;line-height:1.05}.timeline-op>span{display:block;max-width:54px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-op .op-square{margin-top:2px;width:7px;height:7px;flex-basis:7px}.timeline-more{font-size:8px;font-weight:700;align-self:center}.timeline-resource-line{font-size:8px!important;line-height:1.15;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.96}.timeline-resource-line strong{font-weight:800}

@media(max-width:900px){.resource-create-grid,.resource-manager-grid{grid-template-columns:1fr}.assigned-person{grid-template-columns:minmax(0,1fr) 120px 24px}}

/* V1.5.3 calendar overlap, task center, attachments */
.timeline-event.overlap-event{padding-left:5px;padding-right:5px;border:1px solid rgba(255,255,255,.34)}
.timeline-event.overlap-event .timeline-op{max-width:42px}.timeline-event.overlap-event .timeline-op>span{max-width:42px}
.job-status-select{font-weight:700;border-width:1px;transition:background .15s,border-color .15s,color .15s}
.job-status-select.status-confirmed{background:#eaf9ee;color:#208a39;border-color:#9ddcab}
.job-status-select.status-date_tbc{background:#fff4e5;color:#9a5b00;border-color:#ffc56a}
.job-status-select.status-tbc{background:#e9f4ff;color:#086ac1;border-color:#9ecfff}
.job-status-select.status-hypothetical{background:#f0f0f2;color:#5f6066;border-color:#c9c9ce}
.attachment-upload{display:grid;grid-template-columns:180px minmax(160px,1fr) minmax(220px,1fr) auto;gap:8px;margin-top:14px;align-items:center}
.modal-attachments{display:flex;flex-direction:column;gap:6px}.attachment-link{display:flex;align-items:center;gap:10px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:#f8fafb}.attachment-link span{font-size:10px;color:var(--muted);min-width:125px}.attachment-link b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-link:hover{background:#eef4f8}
.task-filters{display:flex;align-items:center;gap:8px;margin:0 0 14px}.task-filters select{width:auto;min-width:180px}.task-mine{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}.task-mine input{width:auto}
.task-table{overflow-x:auto}.task-status-form select{padding:6px 8px;min-width:118px}.task-row.task-done{opacity:.55}.task-row.task-done b{text-decoration:line-through}
.task-priority{display:inline-block;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap}.priority-urgent{background:#fff0f0;color:#b42318}.priority-high{background:#fff4e5;color:#a65b00}.priority-normal{background:#e9f4ff;color:#086ac1}.priority-low{background:#f0f1f3;color:#667085}
.full-span{grid-column:1/-1}.btn.danger{background:#b42318}.danger-zone{border-color:#f5c2c0}
@media(max-width:900px){.attachment-upload{grid-template-columns:1fr}.task-filters{align-items:stretch;flex-direction:column}.task-filters select{width:100%}}
.job-status-select option[value="CONFIRMED"]{background:#eaf9ee;color:#208a39}.job-status-select option[value="DATE_TBC"]{background:#fff4e5;color:#9a5b00}.job-status-select option[value="TBC"]{background:#e9f4ff;color:#086ac1}.job-status-select option[value="HYPOTHETICAL"]{background:#f0f0f2;color:#5f6066}
.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}

/* V1.5.4 availability + employee permissions UI */
.resource-result.busy{background:#fff0f0!important;color:#b42318!important;border-color:#f3a6a6!important;cursor:not-allowed!important;opacity:.95}
.resource-result.busy small{display:block;margin-top:3px;font-size:10px;font-weight:650;color:#b42318}
.quick-chip.busy-chip{background:#fff0f0;color:#b42318;border:1px solid #f3a6a6;display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}
.quick-chip.busy-chip small{font-size:9px;font-weight:650}
.client-basic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px}.client-basic-grid>div{background:#f7f9fb;border:1px solid var(--line);border-radius:9px;padding:10px}.client-basic-grid small{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.client-basic-grid b{font-size:13px;word-break:break-word}.client-notes{white-space:pre-wrap;padding-top:10px;border-top:1px solid var(--line)}
@media(max-width:800px){.client-basic-grid{grid-template-columns:1fr}}

/* V1.6 integrated operations */
.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.compact-card{padding:10px 14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.event-actions form{margin:0}
.notification-list{padding:0;overflow:hidden}.notification-item{display:flex;justify-content:space-between;gap:18px;padding:15px 18px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}.notification-item:last-child{border-bottom:0}.notification-item:hover{background:#f7fafc}.notification-item p{margin:4px 0 0;color:var(--muted);font-size:12px}.notification-item time{white-space:nowrap;color:var(--muted);font-size:11px}
.calendar-feed-card .copy-row{display:flex;gap:8px}.copy-row input{flex:1;font-size:12px}.availability-badge{display:inline-block;padding:5px 8px;border-radius:999px;background:#eef4f8;color:#31546d;font-weight:700;font-size:11px}
.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.filters select{width:auto;min-width:180px}.table-scroll{overflow-x:auto}.expense-status{display:inline-block;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap}.expense-pending{background:#fff4e5;color:#9a5b00}.expense-approved{background:#eaf9ee;color:#208a39}.expense-reimbursed{background:#e9f4ff;color:#086ac1}.expense-rejected{background:#fff0f0;color:#b42318}.expense-review{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.expense-review select{min-width:130px;padding:6px}.inline-form{display:inline}.btn.mini{padding:6px 9px;font-size:11px}
.active-timer{display:flex;align-items:center;justify-content:space-between;border:1px solid #b9ddc2;background:#f3fbf5}.active-timer h2{margin:8px 0 4px}.pulse{display:inline-block;width:9px;height:9px;border-radius:50%;background:#208a39;margin-right:7px;box-shadow:0 0 0 5px rgba(32,138,57,.12)}
.resource-month{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-weekdays b{padding:10px;text-align:center;font-size:11px;color:var(--muted);border-right:1px solid var(--line);background:#f8fafb}.month-cell{min-height:125px;padding:7px;border-top:1px solid var(--line);border-right:1px solid var(--line);background:#fff}.month-cell.empty{background:#fafbfc}.month-cell>strong{display:block;font-size:11px;margin-bottom:6px}.resource-cal-event{display:flex;flex-direction:column;gap:2px;padding:6px;margin:4px 0;border-radius:7px;text-decoration:none;color:inherit;font-size:10px;border-left:3px solid #627d91;background:#f2f6f8}.resource-cal-event.status-confirmed{border-color:#2ca34a;background:#edf9f0}.resource-cal-event.status-date_tbc{border-color:#f59e0b;background:#fff7e8}.resource-cal-event.status-tbc{border-color:#2185d0;background:#eef7ff}.resource-cal-event.status-hypothetical{border-color:#8b8d94;background:#f4f4f5}.resource-cal-event.status-cancelled{opacity:.55;text-decoration:line-through}.resource-cal-event span{color:var(--muted)}
.job-status-select.status-cancelled{background:#fff0f0;color:#b42318;border-color:#f3a6a6}.job-status-select option[value="CANCELLED"]{background:#fff0f0;color:#b42318}.status-cancelled{--event:#999;--event-bg:#f1f1f1}.task-type{display:inline-block;padding:4px 7px;border-radius:7px;background:#eef4f8;color:#31546d;font-size:10px;font-weight:700}.dashboard-task-metric{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:9px;background:#f7f9fb;border:1px solid var(--line);margin:3px}.task-type-summary{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.dashboard-main{grid-column:1/-1}
@media(max-width:850px){.calendar-feed-card .copy-row{flex-direction:column}.notification-item{flex-direction:column;gap:5px}.month-cell{min-height:90px;padding:4px}.resource-cal-event{font-size:9px}.filters select{width:100%}}
.public-invite{max-width:680px;margin:40px auto;padding:20px}.public-invite .login-brand img{max-width:170px;height:auto}.invite-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.invite-grid>div{padding:12px;border:1px solid var(--line);border-radius:9px;background:#f8fafb}.invite-grid small{display:block;color:var(--muted);margin-bottom:4px}.invite-grid b{display:block}.invite-actions{display:flex;gap:10px;margin-top:14px}.operator-note{display:block;color:var(--muted);font-size:10px;margin-top:3px;max-width:260px;font-weight:400}.operator-name-state{min-width:0}
@media(max-width:600px){.invite-grid{grid-template-columns:1fr}.invite-actions{flex-direction:column}}
.expense-report-links{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 0 14px;border-top:1px solid var(--line)}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}


/* V1.7 interface consolidation */
.alert{background:#fff7ed;color:#9a5b00;border:1px solid #fed7aa}.alert-success{background:#ecfdf3;color:#18794e;border-color:#abefc6}.alert-error{background:#fff1f1;color:#b42318;border-color:#fecaca}.alert-warning{background:#fff7ed;color:#9a5b00;border-color:#fed7aa}.alert-info{background:#eef4ff;color:#175cd3;border-color:#c7d7fe}
.brand{width:38px;height:38px;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 38px}.brand img{display:block;width:34px!important;height:34px!important;max-width:34px!important;max-height:34px!important;object-fit:contain}
.top{height:auto;min-height:68px;align-items:stretch}.nav{gap:20px;align-items:stretch}.nav-group{display:flex;gap:5px;align-items:center;padding:9px 0}.nav-group-title{font-size:9px;letter-spacing:.08em;font-weight:800;color:#98a2b3;margin-right:2px}.nav-group a{padding:7px 9px;border-radius:8px;font-size:13px;font-weight:620}.nav-group a:hover{background:#f1f5f9;color:#174ea6}.user{display:flex;align-items:center;gap:10px;white-space:nowrap}.notif-link{padding:6px 8px;border-radius:8px;background:#f7f9fc}.notif-link b{background:#d92d20;color:#fff;border-radius:99px;padding:1px 5px;font-size:10px}
.fixed-nav{display:grid!important;grid-template-columns:38px minmax(250px,360px) 38px 70px;align-items:center;gap:6px}.fixed-nav h1{text-align:center;font-size:21px;white-space:nowrap}.fixed-nav .cal-arrow{display:flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:9px}.fixed-nav .cal-arrow:hover{background:#eef4ff}.calendar-actions{display:flex;align-items:center;gap:10px}.calendar-filters{margin:-4px 0 12px}.calendar-filters select{max-width:300px}.horizontal-week{overflow-x:auto;scroll-snap-type:x proximity}.horizontal-week .timeline-canvas{scroll-snap-align:start}.timeline-head{min-width:0}.timeline-event{padding:5px 6px}.timeline-event.overlap-event{outline:1px solid rgba(255,255,255,.45)}.timeline-ops.badge-mode{display:flex;gap:3px;flex-wrap:wrap;margin-top:3px}.timeline-op-badge,.operator-badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:5px;font-size:9px;font-weight:750;color:#fff}.timeline-op-badge.accepted,.operator-badge.accepted{background:#248a3d}.timeline-op-badge.pending,.operator-badge.pending{background:#d97706}.timeline-op-badge.declined,.operator-badge.declined{background:#c62828}.timeline-more{font-size:9px;font-weight:700}.timeline-resource-line{font-size:9px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-resource-line strong{opacity:.75}.timeline-time{display:block}
.event-modal-card{width:min(780px,100%);padding:26px}.event-modal-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding-right:34px}.event-modal-head small{font-size:9px;font-weight:800;letter-spacing:.12em;color:#98a2b3}.event-modal-head h2{font-size:24px;margin:3px 0 4px;font-weight:780}.event-fields{border:1px solid var(--line);border-radius:13px;overflow:hidden;margin:18px 0 12px}.field-row{display:grid;grid-template-columns:135px 1fr;gap:14px;align-items:center;padding:9px 12px;border-bottom:1px solid #edf0f3}.field-row:last-child{border-bottom:0}.field-row>b{font-size:11px;color:#475467}.field-row.two-fields>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field-row label{font-size:10px;color:#667085}.field-row input,.field-row select{margin-top:3px;padding:8px}.event-save-row{display:flex;justify-content:flex-end}.quick-section{background:#fafbfc;border:1px solid #edf0f3;border-radius:12px;padding:13px;margin:10px 0}.quick-section h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#475467}.event-modal-actions{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.event-open{display:block;text-align:center;width:100%;padding:12px}.secondary-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.secondary-actions .btn{width:100%;text-align:center;padding:9px 7px;font-size:11px}.btn.warning{background:#fff4e5;color:#9a5b00}.btn.danger{background:#d92d20;color:#fff}.location-row{align-items:start}.location-control{position:relative}.location-results,.search-select-results{position:absolute;z-index:30;left:0;right:0;top:100%;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 35px #0002;max-height:230px;overflow:auto}.location-results button,.search-select-results button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:9px 10px;border-bottom:1px solid #f0f2f4;cursor:pointer}.mini-map{height:170px;border-radius:9px;margin-top:8px;background:#eef1f5;overflow:hidden}.maps-link{display:inline-block;margin-top:7px}.search-select-wrap{position:relative;display:block}.search-select-wrap>label{font-size:11px}.resource-result.busy{background:#fff1f1!important;color:#b42318!important;opacity:1!important}.resource-result.busy small{display:block;font-size:9px;margin-top:2px}.resource-picker{position:relative}.resource-results{max-height:250px;overflow:auto}.resource-create-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.resource-picker{border:1px solid var(--line);border-radius:11px;padding:11px;background:#fafbfc}.resource-picker-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.resource-selected{min-height:28px;margin-bottom:6px}.quick-chip.busy-chip{background:#fff1f1;color:#b42318}
.job-status-select.status-confirmed{background:#eaf9ee;color:#208a39;border-color:#9ddcab}.job-status-select.status-date_tbc{background:#fff4e5;color:#9a5b00;border-color:#fdba74}.job-status-select.status-tbc{background:#e9f4ff;color:#086ac1;border-color:#93c5fd}.job-status-select.status-hypothetical{background:#f0f0f2;color:#5f6066;border-color:#d1d5db}
.task-type-summary.compact{display:flex;gap:5px;flex-wrap:wrap}.task-type-summary.compact button{border:1px solid #dbe2e8;background:#f8fafb;color:#475467;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:700;cursor:pointer}.task-type-summary.compact button.active{background:#173f6a;color:#fff;border-color:#173f6a}.task-dashboard.expanded{min-height:320px}.dashboard-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-task-metric{display:block}
.reimburse-box{border:2px solid #f5b041!important;background:#fff8e8!important;border-radius:13px!important;padding:14px!important;cursor:pointer}.reimburse-box:has(input:checked){background:#ffedd5!important;border-color:#f97316!important;box-shadow:0 0 0 3px rgba(249,115,22,.08)}.reimburse-check{display:flex;align-items:center;gap:10px;font-size:15px}.reimburse-check input{width:22px;height:22px;accent-color:#f97316}.reimburse-box small{display:block;margin:6px 0 0 32px;color:#8a5a14}
.global-timer{position:fixed;right:18px;bottom:18px;z-index:80;border:1px solid #cdd7e1;box-shadow:0 12px 36px #0003;border-radius:13px;background:#fff;padding:10px 12px;min-width:240px;text-align:left}.global-timer.active{display:flex;justify-content:space-between;gap:12px;align-items:center}.global-timer.idle{cursor:pointer}.global-timer small,.global-timer span{display:block;color:#667085;font-size:10px}.global-timer b{display:block;font-size:12px;margin:2px 0}.timer-elapsed{font-variant-numeric:tabular-nums;font-size:14px!important;color:#173f6a!important}.timer-stop{border:0;background:#d92d20;color:#fff;border-radius:8px;padding:9px;font-weight:800;cursor:pointer}
.list-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.list-filters input,.list-filters select{width:auto;min-width:180px}.compact-modal{width:min(650px,100%)}.create-event-card{width:min(900px,100%)}.inline-create{margin:12px 0;border:1px solid var(--line);border-radius:10px;padding:10px}.inline-create summary{cursor:pointer;font-weight:700}.row-inactive{opacity:.55}.badge-muted{background:#eee;color:#777}.audit-diff>div{margin-bottom:4px}.full-span{grid-column:1/-1}
@media(max-width:1000px){.nav-group-title{display:none}.nav{gap:4px}.nav-group{gap:2px}.resource-create-grid{grid-template-columns:1fr}.secondary-actions{grid-template-columns:1fr}.fixed-nav{grid-template-columns:34px minmax(180px,1fr) 34px 62px}.fixed-nav h1{font-size:17px}}
@media(max-width:700px){.top{padding:7px 10px;align-items:center}.nav{overflow-x:auto}.nav-group a{padding:6px 7px;white-space:nowrap}.user span{display:none}.calendar-head{display:block}.calendar-actions{margin-top:10px}.fixed-nav{width:100%;grid-template-columns:34px 1fr 34px 56px}.fixed-nav h1{font-size:14px}.event-modal-card{padding:18px}.field-row{grid-template-columns:1fr;gap:5px}.field-row.two-fields>div{grid-template-columns:1fr}.global-timer{left:10px;right:10px;bottom:8px;min-width:0}.resource-create-grid{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:1fr 1fr}}

/* V1.8 operation forms, logistics and time reports */
.native-search-select{position:relative;display:block;min-width:0}.native-search-select>input{width:100%}.native-search-select .search-select-results{top:calc(100% + 4px);z-index:120}.native-search-select .search-select-results:empty{display:none}.native-search-select .search-select-results button[hidden]{display:none}.native-search-select .search-select-results button.selected{background:#eef4ff;color:#173f6a;font-weight:750}
.labeled-logistics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.labeled-logistics label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:750;color:#475467}.labeled-logistics input{font-weight:450;color:var(--text)}
.modal-logistics-items{display:grid;gap:7px;margin:10px 0}.logistics-item{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:9px 10px;border:1px solid #e4e9ef;border-radius:9px;background:#fff}.logistics-item>div{min-width:0}.logistics-item b,.logistics-item span,.logistics-item small{display:block}.logistics-item b{font-size:11px;color:#173f6a}.logistics-item span{font-size:11px;margin-top:2px}.logistics-item small{font-size:9px;color:#667085;margin-top:3px}.inline-logistics{display:grid;gap:8px}.inline-logistics .logistics-item{background:#fafbfc}.mini-x{border:0;background:#fff1f1;color:#b42318;width:25px;height:25px;border-radius:7px;font-weight:900;cursor:pointer;flex:0 0 auto}
.metric-row{display:flex;align-items:stretch;gap:10px;margin-bottom:14px}.metric-row>div{min-width:150px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#fafbfc}.metric-row span,.metric-row b{display:block}.big-total{font-size:22px;color:#173f6a;margin-top:3px}.report-filters{margin-bottom:14px}.report-filters .formgrid{margin-bottom:10px}
.staff-form-card{border-left:4px solid #2d5f8b}.form-card{border:1px solid var(--line);border-radius:13px;background:#fff;padding:16px}.form-card h2{margin-top:0}.savebar{display:flex;justify-content:flex-end;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.time-project-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 14px}.time-project-summary>div{padding:10px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.time-project-summary small,.time-project-summary b{display:block}.time-project-summary b{font-size:18px;color:#173f6a;margin-top:3px}
.create-event-card .formgrid label,.compact-modal .formgrid label{font-size:11px;font-weight:720;color:#475467}.create-event-card .formgrid input,.create-event-card .formgrid select,.create-event-card .formgrid textarea,.compact-modal .formgrid input,.compact-modal .formgrid select,.compact-modal .formgrid textarea{margin-top:5px;background:#fff}
.modal-card.create-event-card h2{font-size:22px;margin:0 0 4px;color:#173f6a}.modal-card.create-event-card .muted{font-size:11px}
@media print{.top,.global-timer,.report-filters,.pagehead .btn,.btn,.textlink{display:none!important}body{background:#fff}.main{max-width:none;padding:0}.card{box-shadow:none;border:0;padding:0}table{font-size:10px}th,td{padding:5px;border-bottom:1px solid #ddd}.metric-row>div{border:1px solid #bbb}}
@media(max-width:700px){.labeled-logistics{grid-template-columns:1fr}.metric-row{display:grid;grid-template-columns:1fr 1fr}.time-project-summary{grid-template-columns:1fr}.native-search-select{width:100%}}

/* V1.9 task states, quote cards, calendar resize handles */
.task-row,.dashboard-task-row,.app-task-card{position:relative}.task-row.task-state-todo,.dashboard-task-row.task-state-todo{box-shadow:inset 4px 0 #d92d20}.task-row.task-state-in_progress,.dashboard-task-row.task-state-in_progress{box-shadow:inset 4px 0 #f2b705}.task-row.task-state-waiting,.dashboard-task-row.task-state-waiting{box-shadow:inset 4px 0 #7f56d9}.task-row.task-state-done,.dashboard-task-row.task-state-done{box-shadow:inset 4px 0 #12b76a}.task-state-badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.task-state-badge.state-todo{background:#fee4e2;color:#b42318}.task-state-badge.state-in_progress{background:#fff3c4;color:#8a5b00}.task-state-badge.state-waiting{background:#f0eaff;color:#6941c6}.task-state-badge.state-done{background:#dcfae6;color:#067647}.task-status-select.status-todo{background:#fee4e2;color:#b42318}.task-status-select.status-in_progress{background:#fff3c4;color:#8a5b00}.task-status-select.status-waiting{background:#f0eaff;color:#6941c6}.task-status-select.status-done{background:#dcfae6;color:#067647}
.quote-list{display:grid;gap:10px;margin-top:12px}.quote-card{border:1px solid var(--line);border-radius:13px;padding:13px;background:#fff}.quote-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.quote-card-title{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.quote-card-title b{font-size:15px;color:#173f6a}.quote-card-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:11px;margin-top:4px}.quote-card-amount{font-size:19px;font-weight:800;white-space:nowrap}.quote-card-body{margin-top:10px;padding-top:10px;border-top:1px solid #edf0f3;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.quote-card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.quote-card-actions form{margin:0}.quote-card-actions select{min-width:145px;padding:7px}.quote-add-card{margin-top:12px;padding:13px;border:1px dashed #cfd7e2;border-radius:12px;background:#fafbfc}.quote-add-card .formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
.resize-handle-start,.resize-handle-end{position:absolute;left:0;right:0;height:9px;z-index:9;cursor:ns-resize}.resize-handle-start{top:0}.resize-handle-end{bottom:0}.resize-handle-start:after,.resize-handle-end:after{content:'';display:block;width:34px;height:3px;border-radius:999px;background:rgba(255,255,255,.8);margin:2px auto}.timeline-event.dragging{opacity:.82;z-index:12;box-shadow:0 8px 20px #0004}

/* Skyters mobile PWA */
.app-body{background:#f2f5f9;min-height:100vh;overscroll-behavior-y:none}.app-shell{max-width:720px;margin:0 auto;min-height:100vh;background:#f6f8fb;padding-bottom:92px}.app-topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:10px;padding:calc(8px + env(safe-area-inset-top)) 14px 9px;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.app-logo{width:34px;height:34px;border-radius:10px;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center}.app-logo img{width:100%;height:100%;object-fit:cover}.app-topbar>div{display:flex;flex-direction:column;line-height:1.15;min-width:0;flex:1}.app-topbar>div b{font-size:14px;color:#173f6a}.app-topbar>div span{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-notif{font-size:11px;font-weight:750;color:var(--blue);padding:7px 9px;background:#eef4ff;border-radius:999px}.app-main{margin:0;padding:16px 13px 30px;max-width:none}.app-flash{margin:10px 13px 0}.app-pagehead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin:3px 0 14px}.app-pagehead small{font-size:9px;letter-spacing:.12em;font-weight:850;color:#98a2b3}.app-pagehead h1{font-size:24px;line-height:1.08;margin:3px 0;color:#173f6a}.app-pagehead p{margin:4px 0 0;font-size:12px;color:var(--muted)}.app-pill{display:inline-block;background:#eef4ff;color:#1463ff;font-size:11px;font-weight:750;padding:8px 10px;border-radius:999px;white-space:nowrap}.app-section{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:12px}.app-section h2{font-size:14px;margin:0 0 10px;color:#173f6a}.app-section-title{display:flex;justify-content:space-between;align-items:center}.app-section-title a{font-size:11px;color:var(--blue);font-weight:750}.app-empty{padding:18px 8px;text-align:center;color:var(--muted);font-size:12px}.app-event-card{display:block;border:1px solid #e5e9ef;border-left:4px solid #98a2b3;border-radius:12px;padding:11px 12px;margin:8px 0;background:#fff}.app-event-card.status-confirmed{border-left-color:var(--confirmed)}.app-event-card.status-date_tbc{border-left-color:var(--date-tbc)}.app-event-card.status-tbc{border-left-color:var(--tbc)}.app-event-card.status-hypothetical{border-left-color:var(--hyp)}.app-event-card.status-cancelled{border-left-color:#d92d20}.app-event-card.compact{padding:9px 10px}.app-event-card strong,.app-event-card small{display:block}.app-event-card strong{font-size:12px;margin-top:4px}.app-event-card small{font-size:10px;color:var(--muted);margin-top:3px}.app-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.app-card-top b{font-size:13px}.app-card-top span{font-size:9px;color:var(--muted);font-weight:750;text-align:right}.app-date-divider{font-size:11px;color:#667085;margin:14px 2px 5px;text-transform:uppercase;letter-spacing:.04em}.app-segmented{display:grid;grid-template-columns:1fr 1fr;background:#e8edf3;padding:3px;border-radius:11px;margin-bottom:12px}.app-segmented a{text-align:center;padding:8px 7px;border-radius:8px;font-size:11px;font-weight:750;color:#667085}.app-segmented a.active{background:#fff;color:#173f6a;box-shadow:0 1px 4px #0002}.app-filter-row{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;align-items:end;margin-bottom:12px}.app-filter-row label{font-size:9px;color:var(--muted);font-weight:700}.app-filter-row input{margin-top:4px;padding:8px}.app-task-card{border:1px solid #e5e9ef;border-left:4px solid #d92d20;border-radius:12px;padding:10px 11px;margin:8px 0;background:#fff}.app-task-card.task-state-in_progress{border-left-color:#f2b705}.app-task-card.task-state-waiting{border-left-color:#7f56d9}.app-task-card.task-state-done{border-left-color:#12b76a}.app-task-card>div:first-child,.app-task-main>div:first-child{min-width:0}.app-task-card b,.app-task-card small{display:block}.app-task-card b{font-size:12px}.app-task-card small{font-size:10px;color:var(--muted);margin-top:3px}.app-task-card:not(.detailed){display:flex;justify-content:space-between;gap:10px;align-items:center}.app-task-main{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.app-task-state{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:9px;padding-top:9px;border-top:1px solid #edf0f3}.app-task-state select{padding:8px}.app-status{display:inline-block;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800;background:#eef4ff;color:#1463ff}.app-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.app-detail-grid>div{background:#f8fafc;border-radius:10px;padding:10px}.app-detail-grid small,.app-detail-grid b{display:block}.app-detail-grid small{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.app-detail-grid b{font-size:11px;margin-top:3px;line-height:1.35}.app-note{font-size:12px;line-height:1.5;color:#475467}.app-chip-list{display:flex;gap:6px;flex-wrap:wrap}.app-list>div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #edf0f3}.app-list>div:last-child{border-bottom:0}.app-list b{font-size:11px}.app-list small{font-size:10px;color:var(--muted)}.app-log-item{padding:9px 0;border-top:1px solid #edf0f3}.app-log-item b,.app-log-item span,.app-log-item small{display:block}.app-log-item b{font-size:11px;color:#173f6a}.app-log-item span{font-size:11px;margin-top:2px}.app-log-item small{font-size:9px;color:var(--muted);margin-top:3px}.app-back{display:inline-block;font-size:11px;color:var(--blue);font-weight:750;margin-bottom:9px}.app-create{border:0}.app-create summary{cursor:pointer;font-size:12px;font-weight:800;color:#173f6a;margin-bottom:12px}.app-form{display:grid;gap:9px}.app-form label{font-size:10px;font-weight:720;color:#475467}.app-form input,.app-form select{margin-top:4px}.btn.full{display:block;width:100%;text-align:center;margin-top:10px}.app-expense-row,.app-time-row,.app-availability-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf0f3}.app-expense-row:last-child,.app-time-row:last-child,.app-availability-row:last-child{border-bottom:0}.app-expense-row b,.app-expense-row small,.app-time-row b,.app-time-row small,.app-availability-row b,.app-availability-row small{display:block}.app-expense-row b,.app-time-row b,.app-availability-row b{font-size:12px}.app-expense-row small,.app-time-row small,.app-availability-row small{font-size:9px;color:var(--muted);margin-top:2px}.app-time-row>strong{font-size:12px;color:#173f6a;white-space:nowrap}.app-active-timer{padding:14px;background:#173f6a;color:#fff;border-radius:14px;text-align:center}.app-active-timer small,.app-active-timer b,.app-active-timer strong{display:block}.app-active-timer small{font-size:9px;opacity:.7}.app-active-timer b{font-size:12px;margin-top:4px}.app-active-timer strong{font-size:30px;font-variant-numeric:tabular-nums;margin:10px 0}.app-link-list{display:grid;gap:8px}.app-link-list a{padding:10px;background:#f4f7fb;border-radius:10px;font-size:11px;font-weight:750;color:#173f6a}.app-notification{padding:9px 0;border-bottom:1px solid #edf0f3}.app-notification:last-child{border-bottom:0}.app-notification b,.app-notification span,.app-notification small{display:block}.app-notification b{font-size:11px}.app-notification span{font-size:10px;margin-top:2px}.app-notification small{font-size:9px;color:var(--muted);margin-top:3px}.app-bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;z-index:60;width:min(720px,100%);display:grid;grid-template-columns:repeat(6,1fr);padding:7px 5px calc(7px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);backdrop-filter:blur(18px);border-top:1px solid var(--line)}.app-bottom-nav a{display:flex;align-items:center;justify-content:center;text-align:center;min-height:42px;padding:4px 2px;color:#7a8492;font-size:9px;font-weight:750;border-radius:9px}.app-bottom-nav a.active{background:#eef4ff;color:#1463ff}.app-body .native-search-select .search-select-results{position:absolute;z-index:1000}.app-body .native-search-select{position:relative}.app-body .toggle-row{display:flex;align-items:center;gap:8px}.app-body .toggle-row input{width:auto;margin:0}.app-body .expense-status{font-size:9px}.app-body .mini-x{width:30px;height:30px}.app-body .btn.mini{padding:8px 10px;font-size:10px}
@media(max-width:430px){.app-bottom-nav a{font-size:8px}.app-detail-grid{grid-template-columns:1fr 1fr}.quote-add-card .formgrid{grid-template-columns:1fr}.quote-card-body{grid-template-columns:1fr}.quote-card-head{display:block}.quote-card-amount{margin-top:8px}}
@media print{.app-topbar,.app-bottom-nav{display:none!important}.app-shell{max-width:none;padding:0}.app-main{padding:0}.app-section{border:0}.quote-card{break-inside:avoid}}
/* V1.9 refinements */
.quote-rev{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;background:#eef3f8;color:#4d6073;font-size:10px;font-weight:700}.quote-description{color:#33475b;line-height:1.45}.quote-card-body small{display:block;color:var(--muted);margin-bottom:3px}.quote-card-body span{display:block}.app-event-card .app-event-link{display:block;color:inherit;text-decoration:none}.app-assignment-line{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(15,74,133,.10)}.app-assignment-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:0}.app-assignment-actions.wide{display:grid;grid-template-columns:1fr 1fr}.app-assignment-actions.wide .btn{width:100%;justify-content:center}.app-event-card .operator-badge{white-space:nowrap}
@media(max-width:430px){.app-assignment-line{align-items:flex-start;flex-direction:column}.app-assignment-actions{width:100%}.app-assignment-actions .btn{flex:1}.app-assignment-actions.wide{grid-template-columns:1fr}}
.quote-status{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800;background:#eef3f8;color:#455c73}.quote-status-approved{background:#e7f6ec;color:#24723f}.quote-status-sent{background:#e9f1fb;color:#265f9a}.quote-status-draft{background:#f0f2f4;color:#64717d}.quote-status-rejected{background:#fdebed;color:#a63743}.quote-status-replaced{background:#f4eefe;color:#6f4a9b}
.quote-card-body{grid-template-columns:110px minmax(0,1fr);align-items:start}.quote-card-actions{margin-top:12px;padding-top:10px;border-top:1px solid #edf0f3}.quote-description{min-width:0;overflow-wrap:anywhere}.quote-card-head>div{min-width:0}
/* V1.10 availability / archive */
.status-unavailable{background:#98a2b3!important}.cal-availability{background:#eef1f4;border:1px solid #d0d5dd;border-left:4px solid #98a2b3;border-radius:5px;padding:3px 5px;margin:2px 0;color:#475467;font-size:9px;line-height:1.2}.cal-availability b,.cal-availability span{display:block}.timeline-availability{position:absolute;z-index:1;background:rgba(152,162,179,.18);border:1px solid #98a2b3;border-left:4px solid #98a2b3;border-radius:6px;padding:3px 5px;color:#475467;overflow:hidden;pointer-events:none;font-size:9px}.timeline-availability b,.timeline-availability span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-event{z-index:3}.archived-badge{background:#eef1f4;color:#667085}.archive-actions{display:flex;justify-content:space-between;gap:16px;align-items:center}.archive-actions .page-actions{display:flex;gap:8px;flex-wrap:wrap}.archive-actions form{margin:0}
.expense-reimburse-form{display:flex;gap:6px;align-items:end;flex-wrap:wrap;margin:8px 0}.expense-reimburse-form label{font-size:10px}.expense-reimburse-form input{width:115px;padding:7px;margin-top:3px}

/* V1.10 PWA readability, fixed timer and mobile calendar */
.app-body input,.app-body select,.app-body textarea,.app-body button{font-size:16px}
.app-shell{padding-bottom:158px}
.app-bottom-nav{padding:8px 5px calc(9px + env(safe-area-inset-bottom));gap:2px}
.app-bottom-nav a{min-height:50px;padding:6px 2px;font-size:13px;font-weight:800;line-height:1.08}
.app-bottom-nav a.active{box-shadow:inset 0 0 0 1px #d6e5ff}
.app-global-timer{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(68px + env(safe-area-inset-bottom));z-index:61;width:min(700px,calc(100% - 20px));min-height:58px;border-radius:14px;background:#173f6a;color:#fff;box-shadow:0 8px 26px #102a4350;display:flex;align-items:center;justify-content:space-between;padding:8px 10px 8px 13px}
.app-global-timer.idle{background:#eef4ff;color:#173f6a;border:1px solid #cfe0ff;box-shadow:0 5px 18px #102a4320}
.app-global-timer>a{display:flex;flex-direction:column;min-width:0;flex:1;color:inherit}
.app-global-timer>a span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;opacity:.72}
.app-global-timer>a b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-global-timer>a strong{font-size:19px;font-variant-numeric:tabular-nums;margin-top:1px}
.app-global-timer form{margin:0 0 0 10px}.app-global-timer button{border:0;border-radius:10px;background:#fff;color:#173f6a;padding:11px 12px;font-weight:900;cursor:pointer}
.app-month-nav{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;text-align:center;margin:8px 0 10px}.app-month-nav a{font-size:30px;color:var(--blue);font-weight:500}.app-month-nav b{font-size:16px;color:#173f6a}
.app-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:12px}
.app-month-weekday{text-align:center;font-size:11px;font-weight:800;color:#667085;padding:8px 2px;background:#f8fafc;border-bottom:1px solid var(--line)}
.app-month-day{min-height:82px;padding:5px 3px;border-right:1px solid #edf0f3;border-bottom:1px solid #edf0f3;overflow:hidden}.app-month-day:nth-child(7n){border-right:0}.app-month-day>b{display:block;text-align:right;font-size:11px;color:#344054;padding-right:2px}.app-month-day.other{background:#fafbfc}.app-month-day.other>b{color:#b3bac5}.app-month-day.today>b{display:block;width:22px;height:22px;line-height:22px;margin-left:auto;border-radius:50%;background:#1463ff;color:#fff;text-align:center;padding:0}
.app-month-event{display:block;margin-top:3px;padding:3px 3px;border-radius:4px;font-size:8px;font-weight:800;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#eef4ff;color:#1456a0;border-left:3px solid #98a2b3}.app-month-event.status-confirmed{border-left-color:#34c759}.app-month-event.status-date_tbc{border-left-color:#ff9500}.app-month-event.status-tbc{border-left-color:#0a84ff}.app-month-event.status-hypothetical{border-left-color:#8e8e93}
.app-month-availability{display:block;margin-top:3px;padding:2px 3px;border-radius:4px;background:#eef1f4;color:#667085;border-left:3px solid #98a2b3;font-size:7px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-resource-admin{display:grid;gap:14px}.app-resource-admin>div>b{display:block;margin-bottom:6px;color:#173f6a}.app-resource-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:7px}.app-inline-actions{display:flex;gap:8px;margin-top:10px}.app-inline-actions .btn{flex:1}.app-expense-card{border:1px solid #e5e9ef;border-radius:12px;padding:0 11px;margin:8px 0}.app-expense-card>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0}.app-expense-card>summary::-webkit-details-marker{display:none}.app-expense-card form{padding:2px 0 12px;border-top:1px solid #edf0f3}.app-form textarea{min-height:100px}
@media(max-width:430px){.app-bottom-nav a{font-size:12px}.app-month-day{min-height:72px}.app-month-event{font-size:7px}.app-global-timer{bottom:calc(69px + env(safe-area-inset-bottom))}.app-detail-grid{grid-template-columns:1fr 1fr}}
@media print{.app-global-timer{display:none!important}}

/* V1.10.2: clear menu sections, wide calendar and a fixed time axis. */
.nav{gap:8px;flex-wrap:wrap;align-items:stretch}.nav-group{flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:7px 9px;background:#f1f5fa;border:1px solid #dce5ef;border-radius:11px;position:relative;flex-flow:row wrap;max-width:350px}.nav-group-title{display:block!important;width:100%;font-size:10px;letter-spacing:.06em;color:#0f4a85;margin:0;padding:0 4px}.nav-group[data-section="GESTIONE"]{background:#f0f4f8;border-color:#d5dfe9}.nav-group[data-section="RISORSE"]{background:#eaf3fa;border-color:#c8e0ef}.nav-group[data-section="SISTEMA"],.nav-group[data-section="APP"]{background:#f6f7f9}.nav-group a{font-size:13px;line-height:1.15}.top .user{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.calendar-page>main{max-width:none;margin:16px 0;padding:0 12px}.calendar-time-axis{position:sticky;left:0;z-index:8;width:64px;height:960px;background:#f8fafc;border-right:1px solid #cad4df;pointer-events:none}.calendar-time-axis .hour-label{color:#344054;font-size:12px;font-weight:700;padding-right:10px;transform:translateY(-6px)}.calendar-time-axis .hour-label:first-child{transform:translateY(1px)}.timeline-head .time-spacer{position:sticky;left:0;z-index:11;background:#f8fafc;border-right:1px solid #cad4df}.timeline-wrap{scrollbar-gutter:stable}.equipment-search label{display:block;font-weight:700;margin-bottom:8px}.search-row{display:flex;gap:8px;align-items:center}.search-row input{flex:1;min-width:0}.equipment-search small{display:block;margin-top:7px}.job-logistics .logistics-item{padding:12px 0;border-bottom:1px solid #e4e7ec}.time-unallocated{background:#fff8e8;color:#8a5700;border-radius:8px;padding:5px 8px;font-size:12px;font-weight:650}.notifications-overlay[hidden]{display:none!important}.notifications-overlay{position:fixed;inset:0;z-index:1000;background:#17324d55;display:flex;justify-content:flex-end;padding:80px 18px 18px}.notifications-panel{width:min(470px,100%);max-height:100%;background:#fff;border-radius:16px;box-shadow:0 20px 60px #17324d44;display:flex;flex-direction:column;overflow:hidden;outline:none}.notifications-panel header{display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid #e4e7ec}.notifications-panel h2{font-size:20px;margin:0}.notifications-close{font-size:28px;border:0;background:transparent;color:#667085;cursor:pointer}.notifications-tools{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px 0}.notifications-tools button{border:1px solid #d0d5dd;background:#f8fafc;color:#0f4a85;border-radius:8px;padding:8px 10px;cursor:pointer;font-weight:650}.notifications-hint{font-size:12px;color:#667085;margin:9px 16px}.notifications-list{overflow:auto;flex:1;min-height:100px}.notification-popup-item{display:block;padding:14px 18px;border-top:1px solid #e4e7ec;overflow-wrap:anywhere}.notification-popup-item.unread{background:#eef5ff;border-left:4px solid #0f4a85}.notification-popup-item:hover{background:#f2f5fa}.notification-popup-item b{font-size:14px}.notification-popup-item p{font-size:13px;color:#475467;margin:5px 0}.notification-popup-item time{font-size:11px;color:#667085}.notifications-empty{padding:25px;text-align:center;color:#667085}.notification-count{display:inline-block;margin-left:5px;background:#d92d20;color:#fff;border-radius:99px;padding:1px 6px;font-size:10px}.notification-count[hidden]{display:none!important}.notifications-open{overflow:hidden}
@media(max-width:800px){.nav-group{max-width:none}.nav-group-title{font-size:9px}.calendar-page>main{padding:0 6px}.calendar-head{align-items:flex-start}.search-row{flex-wrap:wrap}.search-row input{flex-basis:100%}.notifications-overlay{padding:64px 8px 14px}.notifications-panel{width:100%}}

.app-create-actions{display:flex;justify-content:flex-end;gap:8px;margin:12px 0}.app-resource-pickers .resource-picker{margin:12px 0}.app-resource-pickers .resource-results{max-height:240px;overflow:auto}.app-time-edit{border-bottom:1px solid #e5ebf0;padding:8px 0}.app-time-edit summary{cursor:pointer;list-style:none}.app-time-edit .app-hours-form{padding:12px;background:#f6f8fb;border-radius:10px}.app-create details,.app-create{margin-bottom:14px}.app-profile-link{font-size:12px;font-weight:650;color:#0f4a85}.app-topbar .app-notif{margin-left:auto;white-space:nowrap}.app-resource-pickers .resource-result{width:100%;text-align:left;display:block}.app-resource-pickers .quick-chip{border:0;cursor:pointer;font-size:12px}.app-time-row>div{min-width:0}.app-time-row small{overflow-wrap:anywhere}

/* V1.10.3: softly coloured sections and seven full-width desktop days. */
.nav-group[data-section="OPERATIVITÀ"]{background:#edf4fc;border-color:#d2e1f3}.nav-group[data-section="OPERATIVITÀ"] .nav-group-title{color:#345d87}
.nav-group[data-section="GESTIONE"]{background:#eef6ef;border-color:#d6e7d9}.nav-group[data-section="GESTIONE"] .nav-group-title{color:#496b50}
.nav-group[data-section="RISORSE"]{background:#fff6e9;border-color:#eedfc5}.nav-group[data-section="RISORSE"] .nav-group-title{color:#806334}
.nav-group[data-section="SISTEMA"]{background:#f3eff9;border-color:#e2d9ef}.nav-group[data-section="SISTEMA"] .nav-group-title{color:#70558a}
.nav-group[data-section="APP"]{background:#eaf6f5;border-color:#cfe5e2}.nav-group[data-section="APP"] .nav-group-title{color:#3e706b}
.calendar-page .timeline-canvas{width:100%;min-width:0}.calendar-page .timeline-grid,.calendar-page .timeline-head{min-width:0;width:100%}.calendar-page .timeline-wrap{overflow-x:hidden;scroll-snap-type:none}.calendar-page .timeline-event b{font-size:12px;white-space:normal;overflow-wrap:anywhere;line-height:1.2}.calendar-page .timeline-event{padding:4px}.calendar-page .timeline-date{font-size:14px}.calendar-page .timeline-event .timeline-time{font-size:10px}.calendar-page>main{padding-right:8px;padding-left:8px}
/* Mobile timetable: finger scrolling, fixed hours and distinct overlapping events. */
.app-calendar-views{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.app-calendar-views a{padding:10px 3px;font-size:13px;text-align:center}.app-calendar-today{text-align:center;margin:-2px 0 12px}.app-calendar-hint{font-size:12px;color:#667085;margin:8px 0}.app-time-scroll{max-height:62vh;max-height:62dvh;overflow:auto;background:#fff;border:1px solid #dbe3ed;border-radius:12px;overscroll-behavior:contain;position:relative}.app-time-canvas{position:relative;width:100%}.app-time-canvas.week{min-width:1056px}.app-time-canvas.day{min-width:0}.app-time-head{display:grid;height:48px;position:sticky;top:0;z-index:12;background:#f8fafc;border-bottom:1px solid #dbe3ed}.app-time-corner{position:sticky;left:0;z-index:13;background:#f8fafc;font-size:10px;color:#667085;padding-top:16px;text-align:center;border-right:1px solid #dbe3ed}.app-time-date{display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:11px;color:#475467;border-right:1px solid #e5ebf0}.app-time-date b{font-size:13px;color:#173f6a}.app-time-date.today{background:#e8f1ff}.app-time-grid{position:relative}.app-time-axis{position:sticky;left:0;z-index:10;width:48px;height:100%;background:#f8fafc;border-right:1px solid #dbe3ed;pointer-events:none}.app-time-axis span{position:absolute;left:0;right:0;text-align:center;font-size:10px;color:#475467;transform:translateY(-6px);font-variant-numeric:tabular-nums}.app-time-axis span:first-child{transform:translateY(1px)}.app-time-column{position:absolute;top:0;bottom:0;border-right:1px solid #edf0f4;pointer-events:none}.app-time-line{position:absolute;left:48px;right:0;border-top:1px solid #edf0f4;pointer-events:none}.app-time-event{position:absolute;z-index:4;border-radius:6px;background:#edf4ff;color:#173f6a;border:1px solid #b8d4f5;border-left:3px solid #0a84ff;padding:3px 4px;overflow:hidden;box-shadow:0 1px 2px #173f6a15;touch-action:auto}.app-time-event b{display:block;font-size:12px;line-height:1.15;overflow-wrap:anywhere}.app-time-event small{display:block;font-size:10px;line-height:1.3}.app-time-event.status-confirmed{background:#edf7ef;border-color:#c0dfc6;border-left-color:#34a853}.app-time-event.status-date_tbc{background:#fff5e8;border-color:#efdbbd;border-left-color:#ed992d}.app-time-event.status-hypothetical{background:#f1f1f4;border-color:#d7d7df;border-left-color:#92929c}.app-time-unavailable{position:absolute;z-index:2;padding:3px 5px;background:#eaedf0cc;border:1px dashed #a5adb6;color:#626b76;border-radius:5px;overflow:hidden;pointer-events:none}.app-time-unavailable b,.app-time-unavailable small{display:block;font-size:10px}
