:root{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;color:#102018;background:radial-gradient(circle at top left,rgba(153,197,163,.35),transparent 32%),linear-gradient(180deg,#f4f1e8,#eef3eb);line-height:1.5;font-weight:400}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}a{color:inherit}button{border:0;border-radius:999px;padding:.8rem 1.2rem;background:#173f2f;color:#fffdf8;font-weight:700;cursor:pointer}button.secondary{background:#d6e4d1;color:#173f2f}select,input{border:1px solid rgba(23,63,47,.16);border-radius:.9rem;padding:.8rem 1rem;background:#fffdf8;color:#173f2f}textarea{border:1px solid rgba(23,63,47,.16);border-radius:.9rem;padding:.8rem 1rem;background:#fffdf8;color:#173f2f;font:inherit}.layout{display:grid;grid-template-columns:280px 1fr;min-height:100vh;position:relative}.sidebar{padding:2rem 1.25rem;border-right:1px solid rgba(23,63,47,.12);background:#fffcf4b3;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);display:flex;flex-direction:column;gap:1rem;z-index:30}.sidebar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.sidebar-close,.mobile-topbar,.mobile-nav-backdrop,.mobile-only{display:none}.brand{display:flex;gap:.9rem;align-items:center;margin-bottom:1rem;min-width:0}.brand h1,.page-header h2,.card h3{margin:0}.brand p,.page-description,.card p{margin:0;color:#4f665c}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:1rem;background:#173f2f;color:#fff;font-weight:800}.nav{display:grid;gap:.2rem;min-width:0}.nav-link{display:block;padding:.55rem 1rem;border-radius:.9rem;color:#234234;text-decoration:none;font-weight:700}.nav-link.active{background:#173f2f;color:#fffdf8}.content{padding:2rem;min-width:0}.page{display:grid;gap:1.5rem}.page-header{display:flex;align-items:end;justify-content:space-between;gap:1rem}.page-header-copy{display:grid;gap:.2rem;min-width:0}.eyebrow{margin:0 0 .2rem;text-transform:uppercase;font-size:.8rem;letter-spacing:.08em;color:#6f816f}.grid.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.grid.cards.two-columns{grid-template-columns:minmax(280px,380px) 1fr}.grid.cards.schedule-layout{grid-template-columns:220px minmax(0,1fr) 210px}.card{padding:1.25rem;border-radius:1.25rem;background:#ffffffb3;border:1px solid rgba(23,63,47,.1);box-shadow:0 16px 40px #173f2f14}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.8rem .5rem;border-bottom:1px solid rgba(23,63,47,.1)}.toolbar{display:flex;gap:.75rem;margin-bottom:1rem;align-items:end;justify-content:space-between;flex-wrap:wrap}.field{display:grid;gap:.35rem}.form-grid{display:grid;gap:1rem}.desktop-only{display:block}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll .table{min-width:640px}.mobile-card-list{display:none}.mobile-card{display:grid;gap:.85rem;padding:1rem;border-radius:1rem;border:1px solid rgba(23,63,47,.12);background:#ffffffd1}.mobile-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.mobile-card-title{margin:0;font-size:1rem;color:#173f2f}.mobile-card-subtitle{margin:.2rem 0 0;font-size:.82rem;color:#6b7f72}.mobile-card-grid{display:grid;gap:.65rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.mobile-card-field{display:grid;gap:.15rem}.mobile-card-label{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6b7f72}.mobile-card-value{font-size:.92rem;color:#173f2f;word-break:break-word}.mobile-card-actions{display:flex;gap:.6rem;flex-wrap:wrap}.mobile-card-actions>*{min-width:0}.mobile-card-note{margin:0;font-size:.82rem;color:#6b7f72}.pill-badge{display:inline-flex;align-items:center;padding:.28rem .75rem;border-radius:999px;font-size:.8rem;font-weight:600}.pill-badge.success{background:#e6f2ec;color:#2d7a4f;border:1px solid #2d7a4f}.pill-badge.warning{background:#fff7e8;color:#9a6700;border:1px solid #e6c075}.pill-badge.neutral{background:#eef3ec;color:#496053;border:1px solid rgba(23,63,47,.14)}.status-chip{display:inline-flex;align-items:center;border-radius:999px;padding:.25rem .7rem;font-size:.8rem;font-weight:700;color:#fff}.dashboard-week-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:.75rem;min-width:900px}.dashboard-week-day{display:grid;gap:.6rem;min-width:120px}.dashboard-mobile-stack{display:none}.dashboard-mobile-section{gap:1rem}.dashboard-mobile-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.dashboard-mobile-plan-list,.dashboard-mobile-week-list{display:grid;gap:.75rem}.training-layout{display:grid;grid-template-columns:minmax(260px,.38fr) minmax(0,1fr);gap:1rem;align-items:start}.training-course-list{padding:0;overflow:hidden}.training-course-list-meta{padding:.5rem 1rem;background:var(--surface-2, #f4f4f4);border-bottom:1px solid var(--border, #e0e8e0);font-size:.75rem;font-weight:700;color:var(--text-muted, #6f816f);text-transform:uppercase}.training-course-item{padding:.75rem 1rem;cursor:pointer;border-left:3px solid transparent;border-bottom:1px solid var(--border-light, #f0f4f0)}.training-course-item.active{border-left-color:var(--accent, #2d5a2d);background:var(--surface-selected, #e8f0e8)}.training-course-item-title{font-weight:600;font-size:.9rem;color:#173f2f}.training-course-item-meta{font-size:.78rem;color:var(--text-muted, #6f816f);margin-top:.15rem}.training-course-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.training-course-actions,.stack-actions{display:flex;gap:.5rem;flex-wrap:wrap}.training-participants{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.training-participant{border-radius:12px;padding:3px 10px;font-size:.8rem;display:inline-flex;align-items:center;gap:6px}.training-participant button{background:none;border:none;cursor:pointer;color:var(--text-muted, #6f816f);padding:0;line-height:1}.training-add-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem}.training-add-row select{flex:1}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:2000}.modal-dialog{width:min(100%,580px);max-height:min(90vh,820px);overflow-y:auto;background:#fff;border-radius:1rem;padding:1.5rem;box-shadow:0 8px 32px #0000002e}.modal-dialog-sm{width:min(100%,440px)}.modal-dialog-lg{width:min(100%,640px)}.modal-title{margin:0 0 .5rem;font-size:1rem;color:#173f2f}.modal-message,.modal-footer-note,.modal-meta{color:#555;font-size:.875rem}.modal-message{margin:0 0 1rem;line-height:1.5}.modal-meta{margin:0 0 .75rem}.modal-error{color:#c0392b}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap;margin-top:1rem}.modal-footer-note{margin:.75rem 0 0;font-size:.78rem}.modal-table th,.modal-table td{font-size:.875rem}.center-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem}.center-card{width:min(100%,460px);text-align:center}.checkbox-row{display:flex;align-items:center;gap:.6rem;color:#355445;font-weight:700}.checkbox-row input{width:1.05rem;height:1.05rem;accent-color:#173f2f}.field span{font-size:.9rem;font-weight:700;color:#355445}.schedule-list{display:grid;gap:.75rem}.table-actions{display:flex;gap:.5rem;flex-wrap:wrap}.status-badge{display:inline-flex;align-items:center;padding:.3rem .65rem;border-radius:999px;font-size:.78rem;font-weight:700}.status-badge.active{background:#e6f4e8;color:#20603a}.status-badge.inactive{background:#f3ebe6;color:#7d4c2e}.schedule-list.compact{margin-top:1rem}.section-gap{margin-top:1.5rem}.schedule-select{display:grid;gap:.2rem;text-align:left;padding:1rem;border-radius:1rem;background:#f7faf6;color:#173f2f}.schedule-select.active{background:#173f2f;color:#fffdf8}.schedule-item{display:grid;grid-template-columns:1.2fr 1.8fr;gap:1rem;padding:.95rem 1rem;border-radius:1rem;background:#f8fbf7}.schedule-item.scoperto{background:#fff0e3;color:#8a3d16}.schedule-warning{display:grid;gap:.5rem;margin:1rem 0;padding:1rem;border-radius:1rem;background:#fff0e3;color:#8a3d16}.calendar-board{display:grid;gap:.75rem}.calendar-header,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.75rem}.calendar-header-cell{padding:.5rem .2rem;text-align:center;font-size:.85rem;font-weight:700;color:#587062}.calendar-footer{margin-top:.2rem}.schedule-range{margin:.25rem 0 .6rem;font-size:.82rem;color:#587062;font-weight:600}.calendar-cell{min-height:145px;padding:.7rem;border-radius:1rem;background:#f8fbf7;border:1px solid rgba(23,63,47,.08);display:grid;gap:.55rem}.calendar-cell.empty{background:transparent;border-style:dashed;border-color:#173f2f14}.calendar-cell.out-of-month{opacity:.45;background:#173f2f08}.calendar-cell-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.calendar-cell-head span{font-size:inherit;font-weight:700;color:inherit}.calendar-cell-body{display:grid;gap:.35rem;align-content:start}.calendar-slot{display:grid;gap:.5rem;padding:.65rem .75rem;border-radius:.85rem;background:#eaf3e8;color:#173f2f;min-height:92px;border:1px dashed rgba(23,63,47,.15)}.calendar-slot.warning{background:#fff0e3;color:#8a3d16}.calendar-slot-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.calendar-slot-head span{font-size:.78rem}.calendar-people{display:flex;flex-wrap:wrap;gap:.35rem}.calendar-person{display:inline-flex;align-items:center;justify-content:space-between;position:relative;gap:.35rem;padding:.3rem .5rem;border-radius:999px;background:#173f2f1f;font-size:.76rem;font-weight:700;border:1px solid rgba(23,63,47,.08);width:100%;flex-wrap:nowrap;white-space:nowrap}.calendar-person.pharmacist{background:#e6f2ec;color:#2d7a4f;border-color:#2d7a4f}.calendar-person.operator{background:#f0f6ef;color:#173f2f;border-color:#173f2f26}.calendar-person.manual{box-shadow:inset 0 0 0 2px #173f2f1f}.calendar-person.is-substitute{background:#dceeff;color:#0c3f73;border-color:#8fbbe8}.calendar-person.is-absence{background:#fde2e2;color:#8a1a1a;border-color:#e8a1a1}.calendar-person-absence-badge{display:inline-flex;align-items:center;justify-content:center;width:10px;height:10px;padding:0;border-radius:999px;background:#d84343;border:1px solid #e8a1a1}.calendar-person span{white-space:nowrap}.calendar-note-badge{display:grid;gap:.15rem;padding:.45rem .6rem;border-radius:.9rem;background:#fff3bf;border:1px solid #e7c75f;color:#725200;box-shadow:inset 0 0 0 1px #ffffff4d}.calendar-note-badge strong{font-size:.66rem;line-height:1.1;text-transform:uppercase;letter-spacing:.04em}.calendar-note-badge span{display:-webkit-box;overflow:hidden;font-size:.72rem;line-height:1.3;-webkit-box-orient:vertical;-webkit-line-clamp:3}.dashboard-notes-list{display:grid;gap:.6rem}.dashboard-note-badge{min-height:0}.dashboard-note-badge span{-webkit-line-clamp:unset}.dashboard-notes-empty{margin:0;color:#6b7f72}.calendar-tooltip{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-50%) translateY(4px);display:grid;gap:.2rem;min-width:180px;padding:.65rem .8rem;border-radius:.8rem;background:#16392c;color:#fffdf8;box-shadow:0 14px 32px #10201838;opacity:0;pointer-events:none;transition:opacity .14s ease,transform .14s ease;z-index:20}.calendar-tooltip strong,.calendar-tooltip span{white-space:normal}.calendar-tooltip strong{font-size:.82rem}.calendar-tooltip span{font-size:.74rem;color:#fffdf8d1}.calendar-person:hover .calendar-tooltip{opacity:1;transform:translate(-50%) translateY(0)}.person-remove{padding:.1rem .4rem;background:#173f2f1f;color:inherit;border-radius:999px;line-height:1}.employee-pool{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.75rem}.employee-pool.sidebar-pool{align-content:start}.employee-chip{display:inline-flex;align-items:center;justify-content:center;position:relative;padding:.3rem .5rem;background:#f0f6ef;color:#173f2f;border:1px solid rgba(23,63,47,.08);border-radius:999px;font-size:.76rem;font-weight:700;cursor:grab;white-space:nowrap}.employee-chip:hover .calendar-tooltip{opacity:1;transform:translate(-50%) translateY(0)}.employee-chip.role-pharmacist{background:#e6f2ec;color:#2d7a4f;border-color:#2d7a4f}.employee-chip.role-pha,.employee-chip.role-apprentice_pha,.employee-chip.role-driver,.employee-chip.role-auxiliary{background:#f0f6ef;color:#173f2f;border-color:#173f2f26}.schedule-main-card{overflow:hidden}.schedule-error{color:#8a3d16;background:#fff0e3;padding:.8rem 1rem;border-radius:.8rem;margin-bottom:1rem}.schedule-week-list{display:flex;flex-direction:column;gap:.3rem;margin-top:.8rem}.schedule-week-item{display:flex;align-items:center;gap:.6rem;width:100%;background:none;border:1px solid transparent;border-radius:.6rem;padding:.45rem .7rem;cursor:pointer;text-align:left;font-size:.85rem;color:var(--text-secondary, #4a5568);transition:background .15s,border-color .15s}.schedule-week-item:hover{background:var(--surface-hover, #f0f4f2);border-color:var(--border, #d1dcd6)}.schedule-week-item.active{background:var(--accent-light, #e6f2ec);border-color:var(--accent, #2d7a4f);color:var(--accent, #2d7a4f);font-weight:600}.schedule-week-kw{font-weight:600;min-width:2.8rem}.schedule-week-range{opacity:.75;font-size:.78rem}.mini-muted{color:#8ea095;font-size:.85rem}.availability-table td,.availability-table th{vertical-align:top}.availability-table th:not(:first-child),.availability-table td:not(:first-child){text-align:center}.rules-table input{width:100%;min-width:88px}.availability-toggle{display:grid;gap:.35rem}.availability-toggle input{width:1.1rem;height:1.1rem;accent-color:#173f2f}.availability-toggle span{font-size:.88rem;color:#496053}.unavailable-cell{color:#91a197}.availability-table input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:#173f2f}.availability-cell{display:grid;gap:.4rem;justify-items:stretch;align-content:start;position:relative;min-width:0}.availability-active{display:inline-flex;align-items:center;justify-content:center}.availability-inline-row{display:grid;align-items:center;justify-items:center;gap:.45rem;min-width:0;width:100%;margin:0}.availability-special{display:grid;gap:.35rem;justify-items:center;width:100%}.availability-special-inline{display:grid;align-items:center;justify-items:center;gap:.35rem;width:100%}.availability-note-btn{border-radius:.7rem;padding:.28rem .55rem;font-size:.78rem;font-weight:600;width:-moz-fit-content;width:fit-content;justify-self:center;white-space:nowrap}.availability-note-text{border:1px solid rgba(23,63,47,.16);border-radius:.7rem;padding:.5rem .6rem;font-size:.82rem;resize:vertical;min-height:4.4rem;color:#173f2f;background:#fffdf8}.availability-note-pop{display:grid;gap:.45rem;position:absolute;top:calc(100% + .35rem);left:50%;z-index:20;transform:translate(-50%);width:min(260px,calc(100vw - 3rem));padding:.45rem;border:1px solid rgba(23,63,47,.16);border-radius:.75rem;background:#fbfdf9;box-shadow:0 8px 20px #173f2f1a}.availability-note-actions{display:flex;gap:.35rem;justify-content:center;flex-wrap:wrap}.availability-note-save,.availability-note-cancel{border-radius:.6rem;padding:.35rem .6rem;font-size:.78rem;font-weight:600}.availability-note-preview{font-size:.8rem;color:#355445;line-height:1.35;background:#f3f8f2;border:1px solid rgba(23,63,47,.12);border-radius:.65rem;padding:.35rem .45rem;white-space:pre-wrap}.availability-note-preview-wrap{display:grid;gap:.35rem;justify-items:stretch;width:100%}.availability-note-inline-actions{display:flex;gap:.35rem;justify-content:center;align-items:center;flex-wrap:wrap;min-width:0}.availability-note-inline-btn{border-radius:.55rem;padding:.28rem .5rem;font-size:.75rem;font-weight:600;white-space:nowrap}.availability-note-inline-btn.danger{background:#fbe9e6;color:#8a2f22}@media (max-width: 900px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(84vw,320px);max-width:320px;border-right:1px solid rgba(23,63,47,.12);border-bottom:0;transform:translate(-100%);transition:transform .18s ease;overflow-y:auto;box-shadow:0 20px 48px #1020182e}.sidebar.open{transform:translate(0)}.sidebar-close{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;background:transparent;color:#173f2f;border:1px solid rgba(23,63,47,.12)}.mobile-nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#10201847;border:0;padding:0;opacity:0;pointer-events:none;transition:opacity .18s ease}.mobile-nav-backdrop.visible{opacity:1;pointer-events:auto}.mobile-topbar{display:flex;align-items:center;gap:.9rem;margin-bottom:1rem;min-height:3.5rem}.mobile-nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;padding:0;font-size:1.3rem}.mobile-topbar-brand{display:flex;align-items:center;gap:.75rem;min-width:0}.mobile-topbar-brand .brand-mark{width:2.8rem;height:2.8rem;border-radius:.95rem;flex-shrink:0}.mobile-topbar-brand div{display:grid;min-width:0}.mobile-topbar-brand strong{color:#173f2f;font-size:1.05rem}.mobile-topbar-brand span{color:#6b7f72;font-size:.84rem}.content{padding:1rem}.page-header{align-items:start;flex-direction:column}.desktop-only{display:none}.mobile-only{display:block}.toolbar{align-items:stretch}.toolbar>*{max-width:100%}.toolbar .field,.toolbar button,.toolbar a{width:100%}.calendar-header,.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cards.two-columns,.grid.cards.schedule-layout,.training-layout{grid-template-columns:1fr}.training-course-header,.training-course-actions,.stack-actions,.modal-actions,.mobile-card-actions{flex-direction:column}.training-course-actions>*,.stack-actions>*,.modal-actions>*,.mobile-card-actions>*{width:100%}.training-add-row{flex-direction:column;align-items:stretch}.table-scroll .table{min-width:560px}.dashboard-week-grid{min-width:760px}.auth-page{padding:1rem}}@media (max-width: 640px){button,select,input,textarea{width:100%}.card{padding:1rem;border-radius:1rem}.page{gap:1rem}.grid.cards{grid-template-columns:1fr}.auth-card{padding:1.25rem}.auth-tabs{flex-direction:column}.dashboard-mobile-stack{display:grid;gap:1rem}.table-responsive-desktop{display:none}.mobile-card-list{display:grid;gap:.85rem}.table-scroll.mobile-table-scroll{margin-inline:-.15rem}.dashboard-week-grid{grid-auto-flow:column;grid-auto-columns:minmax(170px,1fr);min-width:auto}.dashboard-week-day{min-width:170px}.modal-dialog{padding:1rem;border-radius:.9rem}.availability-note-pop{left:0;transform:none;width:min(260px,calc(100vw - 4rem))}.center-page{padding:1rem}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top left,rgba(153,197,163,.35),transparent 32%),linear-gradient(180deg,#f4f1e8,#eef3eb);padding:2rem}.auth-card{width:100%;max-width:380px;padding:2rem;border-radius:1.25rem;background:#ffffffd9;border:1px solid rgba(23,63,47,.1);box-shadow:0 16px 40px #173f2f1a}.auth-brand{text-align:center;margin-bottom:1.5rem}.auth-brand h1{font-size:1.4rem;margin:0 0 .25rem;color:#173f2f}.auth-brand p{font-size:.85rem;color:#4f665c;margin:0}.auth-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.auth-tab{flex:1;padding:.6rem;border-radius:.75rem;background:transparent;color:#4f665c;font-weight:600;font-size:.9rem;cursor:pointer;border:1px solid transparent;transition:all .15s}.auth-tab.active{background:#173f2f;color:#fffdf8}.auth-error{padding:.75rem 1rem;border-radius:.75rem;background:#fff0e3;color:#8a3d16;font-size:.875rem;margin-bottom:1rem}.sidebar-footer{margin-top:auto;padding-top:1rem}.sidebar-credit{padding:.75rem 1.25rem;font-size:.75rem;color:#8ea095;border-top:1px solid rgba(23,63,47,.08)}.sidebar-credit a{color:#8ea095;text-decoration:none;transition:color .15s}.sidebar-credit a:hover{color:#173f2f}.lang-switcher{display:flex;align-items:center;gap:.5rem;background:transparent;color:#355445;padding:.5rem .75rem;border-radius:.75rem;font-size:.85rem;cursor:pointer;border:1px solid rgba(23,63,47,.12);width:100%}.user-info{font-size:.78rem;color:#4f665c;padding:.4rem .75rem;margin-bottom:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.piano-table-wrapper{overflow:hidden;max-height:none}.piano-layout{grid-template-columns:1fr;gap:.65rem}.piano-side-panel{align-content:start;display:grid;gap:.75rem;max-width:none;padding:.75rem}.piano-side-list{display:grid;gap:.55rem}.piano-kpi-line{margin-top:.65rem;display:flex;flex-wrap:wrap;gap:.9rem;font-size:.78rem;color:#496053}.piano-table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:clamp(.58rem,.6vw,.72rem);white-space:normal}.piano-table th,.piano-table td{border:1px solid #d8e6d8;padding:1px 2px;text-align:center;vertical-align:middle}.piano-th-fixed,.piano-td-fixed{position:sticky;background:#f8faf8;z-index:2;text-align:left}.piano-th-kw,.piano-td-kw{left:0;min-width:1.7rem;width:1.7rem}.piano-th-date,.piano-td-date{left:1.7rem;min-width:3rem;width:3rem}.piano-th-day,.piano-td-weekday{left:4.7rem;min-width:1.7rem;width:1.7rem}thead .piano-th-fixed{z-index:3}.piano-td-kw{font-weight:600;color:#496053}.piano-td-weekday{color:#6f816f}.piano-th-emp{font-weight:600;min-width:0;width:auto;font-size:.66rem}.piano-th-emp.piano-role-pharmacist{background:#e0ede0;color:#173f2f}.piano-th-emp.piano-role-pha,.piano-th-emp.piano-role-apprentice_pha,.piano-th-emp.piano-role-driver,.piano-th-emp.piano-role-auxiliary{background:#e6eef9;color:#174066}.piano-th-summary,.piano-td-summary{background:#f0f8f0;font-weight:600;min-width:0;width:auto;font-size:.66rem}.piano-row-total td{background:#e9f3e9;font-weight:700;border-top:2px solid #c5d8c5}.piano-cell{min-width:0;width:auto;min-height:1.45rem;font-size:.62rem;font-weight:600}.piano-cell-sunday,.piano-row-sunday td{background:#f0f0f0;color:silver}.piano-cell{position:relative}.piano-cell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.piano-cell.piano-role-pharmacist:before{background:#a8d8a84d}.piano-cell.piano-role-pha:before{background:#b8d0ec59}.piano-cell.piano-role-apprentice_pha:before{background:#b8d0ec59}.piano-cell.piano-role-driver:before{background:#b8d0ec59}.piano-cell.piano-role-auxiliary:before{background:#b8d0ec59}.piano-cell>*{position:relative;z-index:1}.piano-cell-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:.15rem;padding:.08rem 0}.piano-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.35rem;padding:.06rem .24rem;border-radius:999px;border:1px solid rgba(0,0,0,.14);font-size:.6rem;font-weight:700;line-height:1.1}.piano-badge-absence{background:#f8d9d9;color:#6a1a1a}.piano-badge-empty{background:#f0f3ef;color:#7b8c80}.piano-coverage-ok{color:#2d6a2d}.piano-coverage-warn{background:#fde8a8;color:#7a4a00;font-weight:700}.piano-legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.75rem;padding-top:.6rem;border-top:1px solid #e0e8e0;font-size:.76rem;color:#496053}.piano-legend-item{display:inline-flex;align-items:center;gap:.3rem}.piano-legend-item:before{content:"";display:inline-block;width:.9rem;height:.7rem;border-radius:2px;border:1px solid rgba(0,0,0,.15)}.piano-legend-vacation:before{background:#b8d4f0}.piano-legend-sick:before{background:#f0b8b8}.piano-legend-training:before{background:#f0d8b8}.piano-legend-empty:before{background:#f0f3ef}.piano-issue-item,.piano-suggestion-item{display:grid;gap:.25rem;padding:.55rem .65rem;border-radius:.6rem;border:1px solid rgba(23,63,47,.12)}.piano-issue-item.critical{background:#fff0e3;border-color:#8a3d1633}.piano-issue-item.warning{background:#fff8df;border-color:#7a4a0033}.piano-suggestion-item{background:#f5faf4}@media (max-width: 1100px){.piano-layout{grid-template-columns:1fr}}.shift-cell{display:inline-block;padding:2px 6px;margin:1px;border-radius:4px;background:var(--color-sage-100, #e7efe5);font-size:.85rem}.coverage-badges{display:flex;gap:.25rem;flex-wrap:wrap;margin-top:.25rem}.coverage-badge{display:inline-block;padding:1px 5px;border-radius:4px;font-size:.7rem;font-weight:600;background:#fde2e2;color:#8a1a1a;border:1px solid #e8a1a1}.day-has-critical{border-left:3px solid #c43030!important;background:#fff6f6}.shift-cell.is-conflict{background:#fde2e2;color:#8a1a1a}.shift-cell.is-substitute{background:#dceeff;color:#0c3f73;border:1px solid #8fbbe8}.shift-cell.is-absence{background:#fde2e2;color:#8a1a1a}.shift-cell.is-generated{opacity:.9}.plan-cell-stack{display:inline-flex;align-items:center;justify-content:center;gap:4px}.plan-absence-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;padding:1px 5px;border-radius:999px;font-size:.68rem;font-weight:700;background:#fde2e2;color:#8a1a1a;border:1px solid #e8a1a1}.plan-grid{width:100%;border-collapse:collapse}.plan-grid th,.plan-grid td{border:1px solid #d7dfd7;padding:3px 6px;text-align:center;font-size:.82rem}.plan-grid .date-cell{text-align:left;white-space:nowrap;min-width:180px;font-weight:500}.plan-grid .weekend-row{background:#f1f5f1;color:#6b7a6b}.plan-grid .shift-cell{padding:1px 4px;border-radius:3px;display:inline-block;min-width:18px}.plan-grid .totals-cell{font-weight:600;background:#eef3ec}.plan-grid .notes-cell{text-align:left;min-width:180px;white-space:normal}.planning-note-preview-inline{margin-bottom:.3rem;font-size:.75rem;color:#496053;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.planning-note-input{width:100%;min-height:58px;resize:vertical;border:1px solid #d7dfd7;border-radius:8px;padding:.45rem .55rem;font:inherit;color:#173f2f;background:#fbfdfb}.planning-note-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.35rem}.planning-note-save{min-width:74px}.planning-note-trigger{min-width:64px;padding:.28rem .55rem;font-size:.74rem}.planning-note-trigger.has-content{background:#eaf3e8;color:#173f2f;border-color:#bfd3bb}.planning-note-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10201859;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:1200}.planning-note-modal{width:min(520px,100%);background:#fff;border:1px solid #d7dfd7;border-radius:16px;padding:1rem;box-shadow:0 16px 40px #1020182e}.planning-note-modal h3{margin:0 0 .8rem;color:#173f2f}.planning-note-auto-block{margin-bottom:.75rem;padding:.7rem .8rem;background:#f8fbf7;border:1px solid #e3eee1;border-radius:10px;text-align:left}.planning-note-auto-block strong{display:block;margin-bottom:.25rem}.planning-note-auto-block p{margin:0;color:#496053;line-height:1.45}.planning-print-page{min-height:100vh;padding:1rem;display:grid;gap:.75rem}.planning-print-toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:center}.planning-print-toolbar h1,.planning-print-notes h2{margin:0}.planning-print-toolbar p,.planning-print-header p{margin:.25rem 0 0;color:#4f665c}.planning-print-actions{display:flex;gap:.75rem}.planning-print-block,.planning-print-notes{padding:.45rem .55rem;border-radius:1rem;background:#ffffffd1;border:1px solid rgba(23,63,47,.1)}.planning-print-block-title{margin-bottom:.35rem;display:flex;justify-content:space-between;gap:1rem;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#587062}.planning-print-table,.planning-print-notes-table{table-layout:fixed}.planning-print-table th,.planning-print-table td,.planning-print-notes-table th,.planning-print-notes-table td{font-size:.5rem;padding:.08rem;line-height:1;vertical-align:middle}.planning-print-table .date-cell{min-width:76px;width:76px;font-size:.46rem}.planning-print-table .notes-cell{min-width:88px;width:88px}.planning-print-table .totals-cell{min-width:26px;width:26px;text-align:center}.planning-print-table th:not(.date-cell):not(.notes-cell):not(.totals-cell),.planning-print-table td:not(.date-cell):not(.notes-cell):not(.totals-cell){min-width:18px;width:18px;text-align:center}.print-notes-cell{text-align:left!important;vertical-align:top!important;white-space:normal;font-size:.46rem;line-height:1;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;word-break:break-word}.planning-print-notes-table th:first-child,.planning-print-notes-table td:first-child{width:190px}@page{size:A4 landscape;margin:6mm}@media print{body{background:#fff}.no-print{display:none!important}.planning-print-page{padding:0;gap:.25rem}.planning-print-block,.planning-print-notes{background:#fff;box-shadow:none;border:1px solid #d7dfd7;-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.planning-print-sheet{transform:scale(.82);transform-origin:top left;width:calc(100% / .82)}.planning-print-table{margin:0}.planning-print-table th,.planning-print-table td,.planning-print-notes-table th,.planning-print-notes-table td{font-size:.36rem;color:#000;padding:.03rem;line-height:.95}.planning-print-table .notes-cell{width:64px;min-width:64px}.planning-print-table .date-cell{width:58px;min-width:58px;font-size:.34rem}.planning-print-table .totals-cell{width:20px;min-width:20px}.planning-print-table th:not(.date-cell):not(.notes-cell):not(.totals-cell),.planning-print-table td:not(.date-cell):not(.notes-cell):not(.totals-cell){width:14px;min-width:14px}.print-notes-cell{font-size:.33rem;line-height:.9}}
