#appointments{--appointment-green:#124a35;--appointment-soft:#eef4f0;--appointment-amber:#a56b12;--appointment-red:#9c4038}
.appointment-intro{max-width:700px;margin:0;color:var(--muted);font-size:11px;line-height:1.9}
.appointment-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:18px 0}
.appointment-summary button{min-height:86px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);text-align:start;cursor:pointer;transition:border-color .18s,transform .18s,box-shadow .18s}
.appointment-summary button:hover{border-color:#9bb7a7;box-shadow:0 8px 24px rgba(19,65,48,.08);transform:translateY(-1px)}
.appointment-summary span,.appointment-summary b{display:block}.appointment-summary span{font-size:10px;color:var(--muted)}.appointment-summary b{margin-top:8px;font-size:22px;color:var(--appointment-green)}
.appointment-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-bottom:16px}
.appointment-filters{display:grid;grid-template-columns:repeat(3,minmax(130px,170px)) minmax(220px,1fr);gap:10px}
.appointment-toolbar label{display:grid;gap:5px;font-size:10px;font-weight:700;color:var(--muted)}
.appointment-toolbar select,.appointment-toolbar input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:9px 12px;font:inherit;font-size:11px;color:var(--ink)}
.appointment-view-actions{display:flex;padding:3px;border:1px solid var(--line);border-radius:12px;background:#fff}
.appointment-view-actions button{min-height:38px;border:0;border-radius:9px;padding:0 13px;background:transparent;color:var(--muted);font:inherit;font-size:10px;cursor:pointer}
.appointment-view-actions button.active{background:var(--appointment-soft);color:var(--appointment-green);font-weight:800}
#newManagerAppointment{min-height:44px;border:0;border-radius:12px;padding:0 17px;background:var(--appointment-green);color:#fff;font:inherit;font-size:10px;font-weight:800;cursor:pointer}
.appointment-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:18px;align-items:start}
.appointment-board,.appointment-editor{border:1px solid var(--line);border-radius:18px;background:#fff;padding:18px}
.appointment-board-head,.appointment-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.appointment-board-head h3,.appointment-editor-head h3{margin:0;font-size:14px}.appointment-board-head span{font-size:10px;color:var(--muted)}
.appointment-editor{position:sticky;top:16px}.appointment-editor .card-head>button{width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:20px;cursor:pointer}
.appointment-item{display:grid;grid-template-columns:86px minmax(0,1fr) minmax(110px,auto);gap:16px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:15px;margin-bottom:10px;background:#fff}
.appointment-item.is-past{background:#fafafa}.appointment-item.status-cancelled,.appointment-item.status-rejected{opacity:.72}
.appointment-time{background:var(--appointment-soft);color:var(--appointment-green);border-radius:12px;padding:10px;text-align:center}
.appointment-time b,.appointment-time small,.appointment-time em{display:block}.appointment-time b{font-size:18px}.appointment-time small{margin-top:3px;font-size:10px}.appointment-time em{margin-top:5px;font-size:9px;font-style:normal;color:var(--muted)}
.appointment-card-top{display:flex;flex-wrap:wrap;gap:7px;align-items:center;font-size:9px;color:var(--muted)}
.appointment-status{border-radius:999px;background:#f4ead8;color:#7e5719;padding:4px 8px;font-weight:800}.status-confirmed .appointment-status,.status-completed .appointment-status{background:#e3f0e7;color:#276443}.status-rejected .appointment-status,.status-cancelled .appointment-status{background:#f6e7e5;color:#8e3932}.status-needs-change .appointment-status{background:#fff0ce;color:#845a0f}
.appointment-content h4{margin:7px 0 3px;font-size:12px}.appointment-content p{margin:0;color:var(--muted);font-size:10px;line-height:1.8}.appointment-address{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appointment-owner{display:flex;align-items:center;gap:8px;margin-top:10px}.appointment-owner>img,.appointment-owner>span:first-child{width:34px;height:34px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:#e7efe9;color:var(--appointment-green);font-size:11px;font-weight:800}.appointment-owner span b,.appointment-owner span small{display:block}.appointment-owner span b{font-size:10px}.appointment-owner span small{font-size:9px;color:var(--muted)}
.appointment-note{margin-top:8px!important;padding:7px 9px;border-radius:9px;background:#f7f8f6}.appointment-conflict{margin-top:8px!important;color:var(--appointment-red)!important;font-weight:700}
.appointment-actions{display:grid;gap:7px}.appointment-actions button,#managerAppointmentForm button,.appointment-empty button{min-height:40px;border:0;border-radius:10px;padding:8px 12px;background:var(--appointment-green);color:#fff;font:inherit;font-size:9px;font-weight:800;cursor:pointer}.appointment-actions .secondary,#managerAppointmentForm .secondary{background:#edf2ee;color:var(--appointment-green)}.appointment-actions .warning{background:#f3e7ce;color:#815813}.appointment-actions .danger{background:#f5e5e3;color:#8e3932}
.appointment-empty{text-align:center;padding:52px 15px;color:var(--muted)}.appointment-empty b{display:block;color:var(--ink);font-size:13px}.appointment-empty p{font-size:10px}.appointment-empty button{margin-top:8px}
#managerAppointmentForm{display:grid;gap:13px}#managerAppointmentForm label{display:grid;gap:6px;font-size:10px;font-weight:800;color:var(--ink)}#managerAppointmentForm input,#managerAppointmentForm select,#managerAppointmentForm textarea{width:100%;min-height:44px;border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:#fafbf9;font:inherit;font-size:11px;color:var(--ink)}#managerAppointmentForm textarea{min-height:84px;resize:vertical}#appointments .form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.appointment-preview{padding:13px;border-radius:12px;background:var(--appointment-soft)}.appointment-preview span,.appointment-preview b{display:block}.appointment-preview span{font-size:9px;color:var(--muted)}.appointment-preview b{margin-top:5px;font-size:11px}.appointment-preview p{margin:5px 0 0;font-size:10px;line-height:1.8;color:var(--muted)}
.appointment-form-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.appointment-suggestions{display:grid;gap:8px}.appointment-suggestions>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px}.appointment-suggestions>div:first-child button{background:#edf2ee!important;color:var(--appointment-green)!important}.appointment-slot-list,#appointmentSlotList{display:flex;gap:6px;flex-wrap:wrap}.appointment-slot-list button,#appointmentSlotList button{min-height:34px!important;padding:6px 9px!important;background:#fff!important;color:var(--appointment-green)!important;border:1px solid #aac2b4!important}.appointment-slot-list p,#appointmentSlotList p{margin:0;font-size:9px;color:var(--muted)}
.appointment-calendar{overflow-x:auto}.appointment-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:8px;min-width:1040px}.calendar-day{min-height:300px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fafbf9}.calendar-day.today{border-color:#6d9b80;background:#f2f7f3}.calendar-day header{display:flex;justify-content:space-between;gap:5px;margin-bottom:10px}.calendar-day header b{font-size:10px}.calendar-day header span{font-size:9px;color:var(--muted)}.calendar-day>button{width:100%;display:grid;gap:3px;margin-bottom:7px;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff;text-align:start;font:inherit;cursor:pointer}.calendar-day time{font-size:10px;color:var(--appointment-green);font-weight:800}.calendar-day button b{font-size:10px}.calendar-day button small,.calendar-day>p{font-size:9px;color:var(--muted)}
#appointments button:focus-visible,#appointments input:focus-visible,#appointments select:focus-visible,#appointments textarea:focus-visible{outline:3px solid rgba(38,112,76,.25);outline-offset:2px}
@media(max-width:1180px){.appointment-summary{grid-template-columns:repeat(3,1fr)}.appointment-filters{grid-template-columns:repeat(3,1fr)}.appointment-filters>input{grid-column:1/-1}.appointment-layout{grid-template-columns:1fr minmax(280px,.65fr)}}
@media(max-width:900px){.appointment-summary{grid-template-columns:repeat(2,1fr)}.appointment-toolbar{grid-template-columns:1fr}.appointment-filters{grid-template-columns:1fr 1fr}.appointment-filters>input{grid-column:1/-1}.appointment-layout{grid-template-columns:1fr}.appointment-editor{display:none;position:static}.appointment-editor.open{display:block}.appointment-item{grid-template-columns:72px minmax(0,1fr)}.appointment-actions{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.appointment-board,.appointment-editor{padding:14px}}
@media(max-width:560px){.appointment-summary{gap:8px}.appointment-summary button{min-height:76px;padding:11px}.appointment-filters{grid-template-columns:1fr}.appointment-filters>input{grid-column:auto}.appointment-view-actions{width:100%;flex-wrap:wrap}.appointment-view-actions button{flex:1}#newManagerAppointment{flex-basis:100%;width:100%}.appointment-item{grid-template-columns:1fr;padding:12px}.appointment-time{display:flex;align-items:center;justify-content:space-between;gap:8px}.appointment-time small,.appointment-time em{margin:0}.appointment-actions{grid-template-columns:1fr}.appointment-address{white-space:normal}#appointments .form-row{grid-template-columns:1fr}.appointment-form-actions{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){#appointments *{scroll-behavior:auto!important;transition:none!important}}
.operations-grid{margin-top:16px}.incident-row{padding:12px;border-bottom:1px solid var(--line)}.incident-row>span{float:left;font-size:9px}.incident-row b{font-size:10px}.incident-row p{font-size:9px;color:var(--muted)}.incident-row button,.inventory-row button{border:0;border-radius:8px;padding:7px 9px;background:var(--green);color:#fff;font-size:9px}.incident-row.critical{border-right:4px solid #a63c32}.incident-row.high{border-right:4px solid #c57a3d}.inventory-row{display:grid;grid-template-columns:1fr 75px auto;gap:8px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.inventory-row b,.inventory-row small{display:block}.inventory-row b{font-size:10px}.inventory-row small{font-size:9px;color:var(--muted)}.inventory-row input{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px}
.data-quality-card{margin-top:16px}.duplicate-group{border:1px solid var(--line);border-radius:12px;padding:13px;margin:9px 0;display:grid;gap:8px}.duplicate-group>label{display:flex;gap:8px;align-items:center;font-size:10px}.duplicate-group small{display:block;color:var(--muted);font-size:9px}.duplicate-group button,.location-edit{border:0;border-radius:8px;padding:7px 9px;background:#e7efe9;color:var(--green);font-size:9px;cursor:pointer}.location-edit{margin-top:5px}
