.calendar-root{width:100%}.calendar-root .calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin:0}.calendar-root .calendar+.calendar{margin-top:8px}.calendar-root .day-name{font-weight:700;text-align:center;font-size:13px;color:#0f1b16;border-radius:10px;padding:8px 0}.calendar-root .day{background:#fff;border:1px solid rgba(47,93,80,.18);padding:10px;border-radius:12px;min-height:160px;box-shadow:0 1px 8px #0000000f;position:relative;font-size:12px;cursor:pointer;color:#0f1b16;overflow:hidden;transition:transform .08s ease,box-shadow .12s ease,border-color .12s ease}.calendar-root .day:hover{transform:translateY(-1px);box-shadow:0 10px 22px #00000014;border-color:#2f5d504d}.calendar-root .day.empty{background:transparent;border:1px dashed rgba(47,93,80,.15);box-shadow:none;cursor:default}.calendar-root .date-label{font-weight:800;margin-bottom:8px;font-size:13px;color:#0f1b16}.calendar-root .tag{display:inline-block;background:#2f5d50;color:#fff;padding:5px 8px;border-radius:8px;margin:4px 4px 0 0;font-size:11px;line-height:1.15;box-shadow:0 1px 4px #0000000f}.calendar-root .tag.open{background:#fff3d6;color:#6f4300;border:1px dashed #d39a2c;box-shadow:none}.calendar-root .status-chip{position:absolute;top:8px;right:8px;font-size:10px;padding:3px 8px;border-radius:999px;background:#2f5d501a;color:#2f5d50;border:1px solid rgba(47,93,80,.18)}.calendar-root .day.holiday{background:#fffdf4;border:1px solid rgba(211,154,44,.45)}.calendar-root .holiday-indicator{margin-left:4px;font-size:14px;cursor:help}.calendar-root .holiday-label{font-size:10px;color:#6f4300;font-weight:700;margin-bottom:6px;padding:3px 6px;background:#fff3d6e6;border:1px solid rgba(211,154,44,.35);border-radius:8px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.calendar-root .day.sunday{background:#fff;color:#0f1b16;cursor:default;opacity:1;border:1px solid rgba(47,93,80,.18)}.calendar-root .day.sunday:hover{transform:none;box-shadow:0 1px 8px #0000000f}.calendar-root .day.sunday .tag,.calendar-root .day.sunday .status-chip,.calendar-root .day.sunday .holiday-label,.calendar-root .day.sunday .holiday-indicator,.calendar-root .day.sunday .proposal-badge,.calendar-root .day.sunday .approved-badge,.calendar-root .day.sunday .proposed-badge,.calendar-root .day.sunday .badge,.calendar-root .day.sunday .chip{display:none!important}.calendar-root .day.sunday.holiday{background:#fff;border:1px solid rgba(47,93,80,.18)}.calendar-root .day.proposed{background:#fff;border:2px solid rgba(202,199,144,.85)}.calendar-root .day.approved{background:#fff;border:2px solid rgba(47,93,80,.55);color:#0f1b16}.calendar-root .day.approved .tag{background:#2f5d50;color:#fff}.calendar-root .day.approved .tag.open{background:#fff3d6;color:#6f4300;border:1px dashed #d39a2c}.calendar-root .day.holiday.approved{background:#fffdf4;border:2px solid rgba(47,93,80,.55)}.calendar-root .day.approved .holiday-label{color:#6f4300;background:#fff3d6e6;border:1px solid rgba(211,154,44,.35)}.calendar-root .proposal-badge,.calendar-root .proposed-badge,.calendar-root .approved-badge,.calendar-root .badge{position:absolute;top:8px;left:8px;font-size:10px;padding:3px 8px;border-radius:999px;background:#2f5d501a;color:#2f5d50;border:1px solid rgba(47,93,80,.18)}.calendar-root .modal-content,.calendar-root .day-editor-modal-content{z-index:1201}@media(min-width:1400px){.calendar-root{max-width:1280px;margin:0 auto}.calendar-root .calendar{gap:14px}.calendar-root .day{min-height:170px}}@media(max-width:1200px){.calendar-root .calendar{gap:10px}.calendar-root .day{min-height:150px;padding:9px}.calendar-root .day-name{font-size:13px;padding:7px 0}}@media(max-width:992px){.calendar-root .calendar{grid-template-columns:repeat(4,minmax(0,1fr))}.calendar-root .day{min-height:140px}}@media(max-width:640px){.calendar-root .calendar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.calendar-root .day-name{font-size:12px;padding:6px 0;border-radius:9px}.calendar-root .day{min-height:130px;padding:8px;border-radius:12px}.calendar-root .date-label{font-size:12px;margin-bottom:6px}.calendar-root .tag{font-size:10px;padding:4px 7px;border-radius:7px}.calendar-root .status-chip{top:6px;right:6px;font-size:9px;padding:2px 7px}}@media(max-width:420px){.calendar-root .calendar{grid-template-columns:1fr}.calendar-root .day{min-height:120px}}.calendar-root .status-chip{font-size:7px;padding:1px 6px;top:4px;right:6px}.timeline-view{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:8px 0;margin:0;width:100%;box-sizing:border-box}.timeline-empty{padding:32px;text-align:center;color:#999;font-style:italic}.timeline-header{display:flex;margin-bottom:8px;border-bottom:2px solid #333;padding-bottom:8px}.timeline-label{width:150px;flex-shrink:0;font-weight:600;padding:8px 12px;display:flex;align-items:center}.timeline-hours{flex:1;display:flex;position:relative}.timeline-hour{flex:1;text-align:center;font-size:.85em;color:#666;border-left:1px solid #ddd;padding:4px 0}.timeline-hour:first-child{border-left:none}.timeline-row{display:flex;border-bottom:1px solid #eee;min-height:48px}.timeline-row:hover{background-color:#f8f9fa}.timeline-track{flex:1;position:relative;display:flex;align-items:center;background:linear-gradient(to right,#f0f0f0 0%,#f0f0f0 8.33%,transparent 8.33%,transparent 16.66%,#f0f0f0 16.66%,#f0f0f0 25%,transparent 25%,transparent 33.33%,#f0f0f0 33.33%,#f0f0f0 41.66%,transparent 41.66%,transparent 50%,#f0f0f0 50%,#f0f0f0 58.33%,transparent 58.33%,transparent 66.66%,#f0f0f0 66.66%,#f0f0f0 75%,transparent 75%,transparent 83.33%,#f0f0f0 83.33%,#f0f0f0 91.66%,transparent 91.66%);background-size:100% 100%}.timeline-bar{position:absolute;height:32px;border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #0000001a}.timeline-bar:hover:not(.readonly){transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.timeline-bar.readonly{cursor:default;opacity:.8}.timeline-bar-time{color:#fff;font-size:.8em;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px}.timeline-lunch-break{position:absolute;height:32px;display:flex;align-items:center;justify-content:center;font-size:1.2em;background:repeating-linear-gradient(45deg,#f5f5f5,#f5f5f5 10px,#e0e0e0 10px 20px);border:1px dashed #999;border-radius:4px;cursor:help;z-index:5}.timeline-lunch-break:hover{background:repeating-linear-gradient(45deg,#fff9e6,#fff9e6 10px,#ffe6b3 10px 20px)}@media(max-width:768px){.timeline-label{width:100px;font-size:.9em}.timeline-hour{font-size:.75em}.timeline-bar{height:28px}.timeline-bar-time{font-size:.7em}.timeline-lunch-break{height:28px;font-size:1em}}:root{--green-dark: #39604e;--green-light: #cfe8c9;--green-light-hover: #bfe0b8;--beige: #cac790;--bg: #f5f5f5;--card: #ffffff;--text: #000000;--muted: #666;--shadow: rgba(0,0,0,.08)}*{box-sizing:border-box}body{font-family:Fontuma,sans-serif;background:var(--bg);color:var(--text);margin:0;padding:0;overflow-x:hidden}.topbar{background:var(--card);color:var(--text);padding:14px 22px;font-size:20px;display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--green-dark)}.topbar-logo{display:inline-flex;align-items:center;gap:10px}.topbar-logo img{width:10px;height:10px;border-radius:4px;object-fit:contain}.topbar span.small{font-size:12px;opacity:.85}.layout{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--card);padding:18px;box-shadow:2px 0 6px var(--shadow)}.sidebar h3{margin-top:0;margin-bottom:16px;font-size:18px;color:var(--text)}.content{flex:1;width:100%;max-width:none;padding:32px 28px 40px;overflow-y:auto}.planning-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:flex-start;width:100%}.form-card{background:var(--card);padding:22px;border-radius:10px;box-shadow:0 0 6px var(--shadow);width:100%;max-width:none;margin-bottom:26px;color:var(--text)}.form-card.full{max-width:none}.form-card h4{margin-top:0;font-size:16px;color:var(--text)}.calendar-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--text)}.calendar-header span{font-weight:700;font-size:16px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-days{margin-top:4px}.day-name{font-weight:700;text-align:center;font-size:13px;margin-bottom:4px;color:var(--text);background:#f3f7f8;border-radius:6px;padding:6px 0}.day{background:var(--card);padding:8px;border-radius:8px;min-height:110px;box-shadow:0 0 4px var(--shadow);position:relative;font-size:12px;cursor:pointer;color:var(--text)}.day.empty{background:transparent;box-shadow:none;cursor:default}.day .date-label{font-weight:700;margin-bottom:4px}.tag{display:inline-block;background:var(--beige);color:#fff;padding:2px 5px;border-radius:4px;margin:1px 0;font-size:11px}.tag.open{background:var(--green-dark);color:#fff}.day.proposed{background:#e6f0ec;border:1px solid var(--beige)}.day.approved{background:var(--green-light);border:2px solid var(--beige);color:#000;box-shadow:none}.day.approved:hover{background:linear-gradient(180deg,var(--green-light),var(--green-light-hover))}.day.approved .tag,.day.approved .tag.open{background:var(--beige);color:#fff;border-radius:8px;padding:3px 6px;border:none}.day.sunday{opacity:.4;pointer-events:none}.form-row{margin-bottom:16px}.form-row label{display:block;font-size:13px;margin-bottom:6px;color:var(--text)}.form-row input,.form-row select{width:100%;padding:12px;border-radius:10px;border:1px solid #bfc9cb;font-size:14px;color:var(--text);background:var(--card)}textarea{width:100%;max-width:100%;min-height:140px;padding:12px;border-radius:10px;border:1px solid #bfc9cb;font-size:14px;background:var(--card);resize:vertical}.week-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}.week-box{background:#f7f9f8;padding:6px;border-radius:6px;font-size:11px;color:var(--text)}.weekday-row{display:flex;align-items:center;justify-content:space-between;margin-top:3px}.weekday-row span{font-size:11px}.small-note{font-size:11px;color:#555;margin-top:4px}.table{width:100%;border-collapse:collapse;font-size:12px;margin-top:10px}.table th,.table td{border:1px solid #dde4e5;padding:10px;text-align:left;color:var(--text)}.table th{background:#f3f7f8}.control-panel{background:var(--card);padding:18px;border-radius:10px;box-shadow:0 0 6px var(--shadow);max-height:calc(100vh - 120px);overflow-y:auto;font-size:12px;color:var(--text);position:sticky;top:10px}.control-panel h4{margin:0 0 8px;font-size:14px;color:var(--text)}.control-section-title{font-size:11px;font-weight:700;margin-top:10px;margin-bottom:4px}.violation{background:#fff5f2;padding:6px 8px;border-radius:6px;margin-bottom:4px}.violation.ok{background:#f3f7f8}.violation strong{display:block;font-size:11px}.sidebar{display:flex;flex-direction:column;gap:10px}.sidebar button,.sidebar a,.sidebar .menu-btn{width:100%;display:flex;justify-content:center;align-items:center;padding:12px 14px;border-radius:10px;border:1px solid var(--green-dark);background:var(--beige);color:#000;font-size:14px;cursor:pointer;text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease,filter .15s ease}.sidebar button:hover,.sidebar a:hover,.sidebar .menu-btn:hover{filter:brightness(.97)}.sidebar button.active,.sidebar a.active,.sidebar .menu-btn.active,.sidebar button[aria-current=page],.sidebar a[aria-current=page]{background:var(--green-dark);color:#fff;border-color:var(--green-dark)}.logout-btn,.sidebar button.logout,.sidebar a.logout{background:#c0392b;color:#fff;border-color:#c0392b}.logout-btn:hover,.sidebar button.logout:hover,.sidebar a.logout:hover{filter:brightness(.95)}button,a.button,a.btn,.btn,input[type=button],input[type=submit],input[type=reset]{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;border-radius:12px;border:1px solid var(--green-dark);background:var(--green-light);color:#000;font-size:14px;cursor:pointer;text-decoration:none;margin-top:8px;margin-bottom:8px;transition:background .15s ease,filter .15s ease,border-color .15s ease}button:hover,a.button:hover,a.btn:hover,.btn:hover,input[type=button]:hover,input[type=submit]:hover,input[type=reset]:hover{background:var(--green-light-hover)}button:active,a.button:active,a.btn:active,.btn:active,input[type=button]:active,input[type=submit]:active,input[type=reset]:active{transform:none}.button-row,.actions,.form-actions,.controls,.modal-footer,.day-editor-modal-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.icon-btn,button.icon,button.calendar,.calendar-btn,.date-btn,.arrow-btn,.nav-btn,button.prev,button.next,button.pager,.pagination button{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border-radius:12px;border:1px solid var(--green-dark);background:var(--green-light);color:#000;cursor:pointer}.icon-btn:hover,button.icon:hover,button.calendar:hover,.calendar-btn:hover,.date-btn:hover,.arrow-btn:hover,.nav-btn:hover,button.prev:hover,button.next:hover,button.pager:hover,.pagination button:hover{background:var(--green-light-hover)}.time-slot-selector{background:#f7f9f8;border:1px solid #dee2e6;border-radius:10px;padding:16px;margin-top:12px}.time-slot-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.time-bar{width:100%;height:60px;background:#e0e0e0;border-radius:6px;transition:all .2s;border:2px solid transparent}.time-slot.selected .time-bar{background:var(--green-light);border-color:var(--green-dark)}.time-control select{flex:1;padding:10px 12px;border:1px solid #ced4da;border-radius:10px;font-size:14px;background:var(--card)}.login-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:10}.login-card{background:var(--card);padding:20px 22px;border-radius:10px;box-shadow:0 0 12px #00000040;max-width:320px;width:100%;color:var(--text)}.login-card h2{margin-top:0;font-size:18px;margin-bottom:8px}.login-role-toggle{display:flex;gap:8px;margin:10px 0 14px}.login-role-toggle button{flex:1;padding:8px 10px;border-radius:999px;border:1px solid var(--green-dark);background:var(--green-light);cursor:pointer;font-size:12px;color:var(--text)}.login-role-toggle button:hover{background:var(--green-light-hover)}.badge-role{font-size:11px;padding:2px 6px;border-radius:999px;background:#39604e26;margin-left:8px;color:var(--green-dark)}.modal-overlay,.day-editor-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.modal-content,.day-editor-modal-content{background-color:#fff;border-radius:8px;box-shadow:0 8px 30px #00000040;max-width:95vw;width:95vw;max-height:95vh;overflow:auto;display:flex;flex-direction:column;position:relative;z-index:10000}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:1.5em;color:#333}.modal-close{background:none;border:none;font-size:28px;cursor:pointer;color:#999;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background-color:#f5f5f5;color:#333}.modal-body{padding:24px;overflow-y:auto;flex:1;max-height:calc(95vh - 200px)}body.modal-open{overflow:hidden}button:focus,button:focus-visible,a:focus,input:focus,select:focus,textarea:focus{outline:3px solid rgba(57,96,78,.18);outline-offset:2px;box-shadow:0 0 0 4px #39604e14}@media(max-width:1200px){.content{padding:20px}.planning-layout{grid-template-columns:minmax(0,2.1fr) minmax(260px,1.4fr);gap:16px}}@media(max-width:992px){.planning-layout{grid-template-columns:1fr;gap:18px}.control-panel{max-height:none}.content{padding:18px}}@media(max-width:768px){.layout{flex-direction:column;height:auto}.sidebar{width:100%;display:flex;gap:8px;overflow-x:auto;box-shadow:none;border-bottom:1px solid #dde4e5;padding:10px 12px}.sidebar h3{display:none}.topbar{padding:10px 16px;font-size:18px}.content{padding:16px}.calendar{gap:10px}.day{padding:10px;min-height:100px}}@media(max-width:576px){.topbar{flex-direction:column;align-items:flex-start;gap:4px}.content{padding:12px}.planning-layout{grid-template-columns:1fr;gap:12px}.form-card,.control-panel{max-width:100%}.calendar{gap:6px}.day{padding:6px;min-height:90px;font-size:11px}}@media(max-width:400px){.topbar{font-size:16px;padding:8px 12px}.form-card{padding:14px}}.topbar-logo-img{max-height:64px;width:auto;height:auto;object-fit:contain}.btn-logout{background:#c0392b;border:1px solid #c0392b;color:#fff}.btn-logout:hover{background:#a93226;border-color:#a93226}.toolbar-left{display:flex;gap:12px;align-items:center}.filter-grid{display:grid;grid-template-columns:140px 1fr;gap:10px 14px;align-items:center;max-width:520px}.filter-grid label{font-size:13px;font-weight:600;margin:0}.filter-grid select,.filter-grid input{width:100%;height:38px;padding:8px 12px;border-radius:10px;border:1px solid #bfc9cb;background:#fff;font-size:14px}@media(max-width:600px){.filter-grid{grid-template-columns:1fr;max-width:100%}}.audit-filters{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 20px}.audit-filters .filter-select{min-width:180px;height:38px;padding:8px 12px;border-radius:10px;border:1px solid #bfc9cb;background:#fff;font-size:14px;color:var(--text)}.audit-log-list{display:flex;flex-direction:column;gap:12px}.audit-log-item{background:var(--card);border-radius:12px;box-shadow:0 2px 6px var(--shadow);padding:14px 16px}.audit-log-header{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text)}.audit-log-body{font-size:13px;color:var(--muted);line-height:1.5}.action-buttons{display:flex;gap:10px;flex-wrap:nowrap;align-items:center}.action-buttons button{padding:10px 14px;font-size:14px;white-space:nowrap}@media(max-width:900px){.action-buttons button{padding:8px 12px;font-size:13px}}@media(max-width:600px){.action-buttons button{padding:6px 10px;font-size:12px;border-radius:10px}}.time-slot-selector{background:#f7f9f8;border:1px solid #dee2e6;border-radius:10px;padding:14px 16px}.time-slot-selector .time-slot-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.time-slot-selector .time-slot-header strong,.time-slot-selector .time-slot-header h4{margin:0;font-size:14px;font-weight:600}.time-slot-selector .time-slot-header .summary,.time-slot-selector .time-slot-header .badge{background:#e7f3ff;color:#1f6fb2;padding:6px 10px;border-radius:8px;font-size:13px;font-weight:600}.time-slot-selector .time-slot-timeline{display:flex;align-items:flex-end;gap:4px;padding:10px;border-radius:10px;background:#fff;border:1px solid #e6ecee;overflow:hidden}.time-slot-selector .time-slot{position:relative;display:flex;align-items:flex-end;padding:0;margin:0;background:transparent;border:0;box-shadow:none}.time-slot-selector .time-slot .time-bar{width:18px;height:46px;border-radius:4px;border:1px solid #2e7d32;background:#4caf50}.time-slot-selector .time-slot:not(.selected) .time-bar{background:#d9d9d9;border-color:#cfcfcf}.time-slot-selector .time-slot.lunch .time-bar{background:repeating-linear-gradient(45deg,#6fbf73,#6fbf73 6px,#4caf50 6px 12px);border-color:#2e7d32}.time-slot-selector .time-slot .time-label{position:absolute;left:0;top:-18px;font-size:12px;font-weight:500;color:#000;white-space:nowrap}.time-slot-selector .time-slot .time-label{display:none}.time-slot-selector .time-slot:nth-child(odd) .time-label{display:block}.time-slot-selector .time-slot-controls{display:flex;gap:10px;align-items:center;margin-top:12px}.time-slot-selector .time-slot-header{display:flex;justify-content:space-between;align-items:center}.time-slot-selector .time-slot-header .time-slot-result{display:inline-block;background:#e7f3ff;color:#1f6fb2;padding:6px 10px;border-radius:8px;font-size:13px;font-weight:600}.time-slot-selector .time-slot-timeline{padding:6px 8px;border-radius:10px}.time-slot-selector .time-slot{display:flex;flex-direction:column;align-items:center;gap:0}.time-slot-selector .time-slot-timeline .time-label{position:relative;top:-30px;font-size:12px;line-height:12px}.time-slot-selector .time-slot .time-bar{margin-top:-10px}.time-slot-selector .time-slot-timeline{padding-right:0;padding-left:0}.time-slot-selector .time-slot{flex:0 0 auto}.time-slot-selector .time-slot:last-child{margin-right:0}.time-slot-selector .time-slot-timeline{display:inline-flex;width:fit-content;max-width:100%}.time-slot-selector{overflow-x:hidden}.day .day-items{display:flex;flex-direction:column;gap:4px;margin-top:6px}.day .day-item{background:#39604e14;border:1px solid rgba(57,96,78,.18);border-radius:8px;padding:6px 8px;line-height:1.2}.day .day-item .item-title{font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day .day-item .item-meta{font-size:11px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day .day-more{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;background:#f3f7f8;border:1px solid #dde4e5;color:var(--text);margin-top:4px;width:fit-content}.day.approved .day-item{background:#cac7902e;border-color:#cac7908c}.day.proposed .day-item{background:#39604e0f;border-color:#39604e2e}@media(max-width:1024px){.content{padding:22px 18px 18px}.planning-layout{grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:14px}.sidebar{width:220px;padding:14px}.day{min-height:95px}button,a.button,a.btn,.btn,input[type=button],input[type=submit],input[type=reset]{padding:10px 14px;border-radius:11px;font-size:13px}.audit-filters .filter-select{min-width:160px}}@media(max-width:768px){.layout{flex-direction:column}.topbar{padding:10px 14px;font-size:18px;gap:10px;flex-wrap:wrap}.sidebar{width:100%;flex-direction:row;align-items:stretch;gap:8px;overflow-x:auto;padding:10px 12px;box-shadow:none;border-bottom:1px solid #dde4e5}.sidebar h3{display:none}.sidebar button,.sidebar a,.sidebar .menu-btn{flex:0 0 auto;min-width:160px;padding:10px 12px;font-size:13px;border-radius:10px;white-space:nowrap}.content{padding:16px 14px 14px}.planning-layout{grid-template-columns:1fr;gap:16px}.control-panel{position:static;max-height:none}.form-card{padding:16px;border-radius:10px}.calendar{gap:8px}.day-name{font-size:12px;padding:6px 0}.day{min-height:88px;padding:8px;font-size:11px}.table{display:block;overflow-x:auto;white-space:nowrap}.button-row,.actions,.form-actions,.controls,.modal-footer,.day-editor-modal-actions{gap:10px}}@media(max-width:480px){.topbar{font-size:16px}.form-row input,.form-row select{padding:10px;border-radius:10px;font-size:13px}textarea{min-height:120px;font-size:13px}.sidebar button,.sidebar a,.sidebar .menu-btn{min-width:140px;padding:10px}.calendar{gap:6px}.day{min-height:80px;padding:7px}.audit-filters{flex-direction:column;align-items:stretch}.audit-filters .filter-select{width:100%;min-width:0}.action-buttons{gap:8px}.action-buttons button{padding:7px 10px;font-size:12px}}@media(max-width:1024px){.content{padding:18px}.sidebar{width:220px;padding:14px}.form-card{padding:18px}.time-slot-selector .time-slot-timeline{padding:8px 10px;gap:3px}.time-slot-selector .time-slot .time-bar{width:16px;height:42px;border-radius:4px}}@media(max-width:768px){.layout{flex-direction:column}.sidebar{width:100%;padding:10px 12px;box-shadow:none;border-bottom:1px solid #dde4e5;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch}.sidebar h3{display:none}.sidebar button,.sidebar a,.sidebar .menu-btn{width:100%;padding:10px 8px;font-size:12px;border-radius:12px;line-height:1.1;text-align:center;justify-content:center;white-space:normal;min-height:44px}.btn-logout{padding:10px 8px;font-size:12px;border-radius:12px;min-height:44px}.content{padding:12px 14px 14px}.form-card{padding:14px;border-radius:12px}.toolbar-left{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.toolbar-left button,.toolbar-left a{width:auto;min-width:220px;max-width:92%;padding:10px 14px;font-size:13px;border-radius:14px;justify-content:center}.filter-grid{grid-template-columns:1fr;gap:8px;max-width:100%}.audit-filters{flex-direction:column;align-items:stretch;gap:10px}.audit-filters .filter-select{width:100%;min-width:0}.table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}.time-slot-selector .time-slot-timeline{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:8px;gap:3px;max-width:100%}.time-slot-selector .time-slot{flex:0 0 auto}.time-slot-selector .time-slot .time-bar{width:14px;height:38px;border-radius:4px}.time-slot-selector .time-slot-controls{flex-direction:column;align-items:stretch;gap:8px}.time-slot-selector .time-slot-controls select{width:100%}}@media(max-width:480px){.content{padding:12px}.sidebar{gap:6px;padding:10px}.sidebar button,.sidebar a,.sidebar .menu-btn{padding:9px 6px;font-size:11px;border-radius:12px;min-height:42px}.toolbar-left button,.toolbar-left a{min-width:200px;padding:9px 12px;font-size:12px}.time-slot-selector .time-slot-timeline{gap:2px;padding:7px}.time-slot-selector .time-slot .time-bar{width:12px;height:34px}}@media(max-width:768px){.sidebar{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:10px}.sidebar button,.sidebar a,.sidebar .menu-btn{width:100%;padding:6px 4px;font-size:11px;border-radius:12px;min-height:36px;text-align:center}}@media(max-width:480px){.sidebar{grid-template-columns:repeat(2,1fr);gap:12px}.sidebar button,.sidebar a,.sidebar .menu-btn{padding:6px 4px;font-size:10.5px;min-height:34px}}html,body{overflow-x:hidden}.layout,.content,.form-card{max-width:100%;overflow-x:hidden}.table{max-width:100%;overflow-x:auto;display:block}@media(max-width:768px){.calendar{width:100%;grid-template-columns:repeat(2,1fr);gap:10px}.day{min-width:0}}.audit-log-item{background:#fff;border:1px solid #e6ecee;border-radius:14px;padding:16px 18px;box-shadow:0 2px 8px #0000000f}.audit-log-header{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:10px}.audit-module{font-size:13px;font-weight:700;padding:6px 12px;border-radius:999px;background:#f3f7f8;border:1px solid #dde4e5;color:#000;text-transform:capitalize}.audit-action{font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px;color:#fff;background:#c0392b}.audit-date{font-size:12px;color:#888;white-space:nowrap;margin-left:auto}.audit-log-body{font-size:14px;color:#333;line-height:1.5}.audit-description{margin:0 0 10px;font-weight:500}.audit-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:#555}.audit-meta span{background:#f3f7f8;border:1px solid #dde4e5;border-radius:999px;padding:4px 10px}.form-row.hours-info-box{background:#eef6ff;border:1px solid #d7eaff;border-radius:12px;padding:16px 18px;margin-bottom:18px}.hours-info-text{display:flex;gap:22px;align-items:center;font-size:14px;color:#000}.hours-info-text strong{font-weight:700}.hours-info-text span{font-weight:600}.pattern-summary{display:flex;flex-direction:column;gap:6px}.week-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.week-summary strong{font-size:12px;font-weight:700;color:#000;min-width:32px}.day-label{display:inline-flex;align-items:center;justify-content:center;height:22px;min-width:28px;padding:0 8px;border-radius:6px;font-size:12px;font-weight:700;letter-spacing:.2px;border:1px solid #d7dfe1;background:#f3f7f8;color:#000}.day-label.works{background:#39604e;border-color:#39604e;color:#fff}.day-label.no-works{background:#f3f3f3;border-color:#e0e0e0;color:#9a9a9a}.cycle-info{margin-top:4px;font-size:12px;color:#777;font-style:italic}.action-buttons{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.action-buttons button{padding:8px 12px;font-size:13px;border-radius:4px;border:1px solid #6f6f6f;background:#f5f5f5;color:#000;cursor:pointer;white-space:nowrap}.action-buttons .edit-button,.action-buttons .btn-primary{background:#cac790;border-color:#6f6f6f;color:#000}.action-buttons .pattern-button,.action-buttons .deactivate-button,.action-buttons .delete-button{background:#f5f5f5;border-color:#6f6f6f;color:#000}.action-buttons button:hover{filter:brightness(.98)}@media(max-width:768px){.calendar-root{width:100%;overflow-x:hidden}.calendar-root .calendar{grid-template-columns:repeat(7,1fr);gap:5px}.calendar-root .day{min-height:75px;padding:6px;border-radius:10px;font-size:10px}.calendar-root .date-label{font-size:11px;margin-bottom:4px}.calendar-root .day-name{font-size:11px;padding:5px 0}.calendar-root .tag{font-size:9px;padding:2px 4px;border-radius:4px}.calendar-root .day.sunday{background:#f5f5f5;color:#999;opacity:.6;pointer-events:none}}.btn-toggle{padding:8px 10px;font-size:12px;border-radius:14px;min-width:70px;text-align:center}@media(max-width:768px){.btn-toggle{padding:6px 8px;font-size:11px;min-width:60px}.period-row,.period-buttons,.btn-toggle-container{display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:100%}.period-row span{font-size:11px;white-space:nowrap}}@media(max-width:768px){.topbar-logo-img{max-height:36px;width:auto}}@media(max-width:480px){.topbar-logo-img{max-height:28px}}.calendar-root .day.sunday,.calendar-root .day.sunday.approved,.calendar-root .day.sunday.proposed{background:#f5f5f5;color:#999;cursor:default;opacity:.6;pointer-events:none}.calendar-root .day.sunday:hover,.calendar-root .day.sunday.approved:hover,.calendar-root .day.sunday.proposed:hover{transform:none;box-shadow:0 0 4px #00000014}@media(min-width:1100px)and (max-width:1500px){.planning-layout{grid-template-columns:minmax(0,2.7fr) minmax(220px,.9fr);gap:14px}.control-panel{padding:12px;font-size:11px;max-height:calc(100vh - 140px);top:8px}.control-panel h4{font-size:13px;margin:0 0 6px}.control-section-title{font-size:10.5px;margin-top:8px;margin-bottom:3px}.violation{padding:5px 6px;border-radius:6px;margin-bottom:4px}.violation strong{font-size:10.5px}}.detailed-assignment{background:#fff;border:1px solid rgba(47,93,80,.18);border-radius:14px;padding:14px;margin:12px 0;box-shadow:0 2px 10px #0000000f}.assignment-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.assignment-header .icon,.assignment-header img{width:26px;height:26px;border-radius:8px}.assignment-header .remove-assignment-button,.assignment-header button{padding:10px 14px;border-radius:14px;border:1px solid rgba(47,93,80,.28);background:#2f5d501a;color:#0f1b16;cursor:pointer;font-weight:700}.assignment-details{display:grid;grid-template-columns:130px 1fr;gap:10px 12px;align-items:center;margin-top:6px}.assignment-details label,.assignment-details .label{font-size:13px;font-weight:700;color:#0f1b16}.assignment-details input,.assignment-details select{width:100%;height:38px;padding:8px 10px;border-radius:10px;border:1px solid rgba(47,93,80,.22);background:#fff;color:#0f1b16;font-size:13px}.assignment-details .time-summary{grid-column:1 / -1;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;background:#2f5d500f;border:1px solid rgba(47,93,80,.14);font-weight:700;color:#0f1b16}.open-shift-assignment{background:#fffdf4;border:1px dashed rgba(211,154,44,.65);border-radius:14px;padding:12px;margin:12px 0}.open-shift-assignment>span{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:#6f4300;margin-bottom:10px}.open-shift-assignment>div{display:flex;align-items:center;gap:12px;flex-wrap:nowrap}.open-shift-employee-select{flex:1;height:40px;padding:9px 10px;border-radius:12px;border:1px solid rgba(211,154,44,.55);background:#fff;font-size:13px;color:#0f1b16}.open-shift-assignment .remove-assignment-button,.open-shift-assignment button{height:40px;padding:10px 14px;border-radius:14px;border:1px solid rgba(47,93,80,.28);background:#2f5d501a;color:#0f1b16;font-weight:800;cursor:pointer;white-space:nowrap}@media(max-width:640px){.assignment-details{grid-template-columns:1fr}.assignment-details label,.assignment-details .label{margin-top:6px}.open-shift-assignment>div{flex-direction:column;align-items:stretch}.open-shift-employee-select,.open-shift-assignment .remove-assignment-button,.open-shift-assignment button{width:100%}}@media(min-width:992px){#planning{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,420px);gap:18px;align-items:start}#planning .section-title,#planning .toolbar{grid-column:1 / -1}#planning .toolbar+div{grid-column:1 / -1}#planning .planning-layout{grid-column:1 / -1}#planning .toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}#planning .toolbar button{margin:0}}@media(min-width:992px){.sidebar{width:200px;padding:12px}.content{padding:16px 18px 18px}.planning-layout{grid-template-columns:minmax(0,3fr) minmax(260px,1fr);gap:14px}#planning .toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}#planning .toolbar-left,#planning .toolbar-right{display:flex;gap:10px;align-items:flex-start}#btnGenerateYear{max-width:170px;white-space:normal;line-height:1.15;text-align:center;padding:10px 12px}#planning .toolbar button{margin:0}#planning .section-title{margin-bottom:8px}.calendar-header{align-items:center;margin-bottom:8px;gap:10px}.calendar .day.sunday{min-height:70px}}.calendar .day.empty:nth-child(-n+6){min-height:15px;padding:4px}.calendar .day:not(.empty):nth-child(7){min-height:55px}.calendar-days .day-name{margin-bottom:2px}.layout,.content,#planning,.form-card,html,body{max-width:100%;overflow-x:hidden}@media(max-width:992px){.planning-layout{grid-template-columns:1fr}.control-panel{position:static;max-height:none}}@media(max-width:768px){#planning .toolbar{flex-direction:column;align-items:stretch;gap:10px}#planning .toolbar-left,#planning .toolbar-right{width:100%;display:flex;flex-wrap:wrap;gap:10px}#planning .toolbar button{width:100%;max-width:100%;white-space:normal;margin:0}#btnGenerateYear{max-width:100%}}@media(max-width:768px){.period-row,.period-buttons,.btn-toggle-container{display:flex;flex-wrap:wrap;gap:8px;align-items:center;max-width:100%}.btn-toggle{min-width:0;flex:1 1 calc(50% - 8px);white-space:normal;text-align:center}.period-row span{flex:0 0 100%}}.table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:768px){.calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;width:100%}.day{min-width:0;padding:6px;min-height:76px;font-size:10px}.day-name{min-width:0;font-size:11px;padding:5px 0}.day .day-item,.day .tag,.day .day-item .item-title,.day .day-item .item-meta{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tag{font-size:10px;padding:2px 4px;border-radius:6px}.day .day-item{padding:4px 6px;border-radius:8px}}@media(max-width:768px){.calendar-root .calendar-days,#planning .calendar-days,.content .calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:6px 0 4px;width:100%}.calendar-root .calendar-days .day-name,#planning .calendar-days .day-name,.content .calendar-days .day-name{font-size:9px;line-height:1.1;padding:4px 0;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:6px}.calendar-root .calendar,#planning .calendar,.content .calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;width:100%}.calendar-root .day,#planning .day,.content .day{min-width:0;min-height:72px;padding:6px;border-radius:10px}.calendar-root .day .date-label,#planning .day .date-label,.content .day .date-label{font-size:10px;line-height:1;margin:0 0 2px}.calendar-root .day .tag,#planning .day .tag,.content .day .tag{font-size:9px;line-height:1.1;padding:1px 4px;border-radius:999px;display:inline-flex;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-root .day .day-item,#planning .day .day-item,.content .day .day-item{padding:4px 6px;border-radius:8px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-root .day .day-item .item-title,.calendar-root .day .day-item .item-meta,#planning .day .day-item .item-title,#planning .day .day-item .item-meta,.content .day .day-item .item-title,.content .day .day-item .item-meta{font-size:9px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media(max-width:768px){.day .tag,.day .tag.proposed,.day .proposal,.day .suggestion,.day .badge{display:none}}@media(max-width:768px){.status-chip{display:none}}@media(max-width:480px){.calendar-root .day-name{font-size:7px;padding:1px 0}}.sandbox-controls{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:12px 16px;margin-bottom:16px}.sandbox-toggle{display:flex;align-items:center;gap:12px;margin-bottom:8px}.sandbox-label{font-size:14px;font-weight:500;color:#333}.sandbox-toggle-buttons{display:flex;border-radius:6px;overflow:hidden}.sandbox-toggle-btn{padding:8px 16px;border:none;background:#fff;color:#333;font-size:14px;cursor:pointer;transition:all .2s ease}.sandbox-toggle-btn:first-child{border-right:1px solid #39604e}.sandbox-toggle-btn:hover{background:#f0f0f0}.sandbox-toggle-btn.active{background:#39604e;color:#fff}.sandbox-toggle-btn:disabled{opacity:.6;cursor:not-allowed}.sandbox-actions{display:flex;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #e0e0e0}.sandbox-notice{margin-top:10px;padding:8px 12px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-size:13px;color:#856404}.sandbox-mode-indicator{display:inline-block;padding:4px 8px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-size:12px;font-weight:500;color:#856404;margin-left:10px}.sandbox-mode-indicator .week-summary{flex-wrap:nowrap}.sandbox-mode-indicator .week-summary .day-label{flex:0 0 auto}.sandbox-mode-indicator .pattern-summary{overflow-x:auto;padding-bottom:2px}.sandbox-mode-indicator .action-buttons button{background:var(--green-light);border:1px solid var(--green-dark);color:#000;border-radius:12px;padding:10px 14px;font-size:13px}.sandbox-mode-indicator .action-buttons button:hover{background:var(--green-light-hover)}.sandbox-mode-indicator .action-buttons .edit-button,.sandbox-mode-indicator .action-buttons .btn-primary{background:var(--beige);border-color:var(--green-dark)}.sandbox-mode-indicator .action-buttons .delete-button{background:#c0392b;border-color:#c0392b;color:#fff}.sandbox-mode-indicator .action-buttons .delete-button:hover{background:#a93226}.sandbox-mode-indicator .action-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;align-items:center}.sandbox-mode-indicator .action-buttons button{width:100%;margin:0}.toolbar-left,.toolbar-right,.toolbar,.modal-footer,.day-editor-modal-actions,.action-buttons,.sandbox-actions,.sandbox-toggle-buttons,.login-role-toggle{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.toolbar-left button,.toolbar-right button,.toolbar button,.modal-footer button,.day-editor-modal-actions button,.action-buttons button,.sandbox-actions button,.sandbox-toggle-buttons button,.login-role-toggle button{margin:0}.toolbar-left,.toolbar-right,.action-buttons,.sandbox-actions{row-gap:12px;column-gap:12px}.sandbox-toggle-buttons{background:transparent;border:0;padding:0;gap:10px;overflow:visible}.sandbox-toggle-btn{border:1px solid var(--green-dark);background:var(--green-light);color:#000;border-radius:999px;padding:10px 14px;line-height:1}.sandbox-toggle-btn:hover{background:var(--green-light-hover)}.sandbox-toggle-btn.active{background:var(--green-dark);color:#fff}@media(max-width:768px){.toolbar-left{flex-direction:column;align-items:stretch;gap:12px}.toolbar-left button,.toolbar-left a{width:100%;max-width:100%;border-radius:14px}}.modal-body .action-buttons,.modal-body .button-row,.modal-body .actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.modal-body .action-buttons button,.modal-body .button-row button,.modal-body .actions button{margin:0}@media(max-width:768px){.modal-body .action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:420px){.modal-body .action-buttons{grid-template-columns:1fr}}}.history-tabs{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;padding:8px 0 0;margin:6px 0 16px;border-bottom:1px solid #e0e0e0}.history-tab{appearance:none;-webkit-appearance:none;border:1px solid rgba(57,96,78,.3);border-bottom:0;background:#eef6ee;color:#0f1b16;padding:10px 14px;border-radius:14px 14px 0 0;font-size:13px;font-weight:700;cursor:pointer;margin:0;line-height:1;box-shadow:0 6px #00000005;transition:background .15s ease,border-color .15s ease,transform .15s ease}.history-tab:hover{background:#e2f0e2;transform:translateY(-1px)}.history-tab.active{background:#fff;border-color:#39604e73;box-shadow:0 2px #fff}.version-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 12px;border-radius:12px;background:#39604e0f;border:1px solid rgba(57,96,78,.14);margin:10px 0 8px}.version-info{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.version-number{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;padding:0 10px;border-radius:999px;background:var(--green-dark);color:#fff;font-weight:800;font-size:12px}.active-badge{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 10px;border-radius:999px;background:#cac7904d;border:1px solid rgba(202,199,144,.65);color:#3a3a3a;font-weight:800;font-size:12px}.version-status{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 10px;border-radius:999px;background:#39604e1f;border:1px solid rgba(57,96,78,.22);color:#0f1b16;font-weight:800;font-size:12px;text-transform:lowercase}.version-date{font-size:12px;color:#666;white-space:nowrap;margin-top:2px}.history-actions,.version-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:10px 0 14px}.history-actions button,.version-actions button{margin:0}.change-card{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:14px;box-shadow:0 2px 10px #0000000f;padding:14px;margin:12px 0;display:flex;flex-direction:column;gap:10px}.change-body{font-size:13px;line-height:1.55;color:#1b1b1b;white-space:pre-wrap;word-break:break-word}.change-body{background:#f7f9f8;border:1px solid #e6ecee;border-radius:12px;padding:12px}.change-card+.change-card{border-top-left-radius:14px}@media(max-width:768px){.history-tabs{gap:8px}.history-tab{flex:1 1 auto;text-align:center;padding:10px 12px;font-size:12px}.version-header{flex-direction:column;align-items:stretch}.version-date{white-space:normal}}.pattern-summary{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.week-summary{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.week-summary strong{min-width:32px;font-weight:800;font-size:12px}.week-summary .day-label{flex:0 0 auto}.action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:center;justify-content:end;min-width:220px}.action-buttons button{width:100%;margin:0;padding:10px 12px;border-radius:12px;font-size:13px;font-weight:700;border:1px solid var(--green-dark);background:var(--green-light);color:#000;cursor:pointer;transition:background .15s ease,transform .12s ease}.action-buttons button:hover{background:var(--green-light-hover);transform:translateY(-1px)}.action-buttons .edit-button,.action-buttons button:first-child{background:var(--beige);border-color:var(--green-dark)}.action-buttons .activate-button{background:var(--green-light)}.action-buttons .pattern-button{background:#39604e1a}.action-buttons .delete-button{background:#c0392b;border-color:#c0392b;color:#fff}.action-buttons .delete-button:hover{background:#a93226}@media(max-width:768px){.action-buttons{grid-template-columns:1fr;min-width:100%}.pattern-summary{overflow-x:auto}}
