.occupancy-board{--oc-navy:#082d43;--oc-cyan:#07829a;color:var(--oc-navy);background:#fff;border:1px solid #dce6ed;border-radius:10px;padding:24px;min-width:0}.occupancy-top,.occupancy-toolbar,.occupancy-actions,.occupancy-dates,.occupancy-switch,.occupancy-legend,.occupancy-foot,.occupancy-foot>div{display:flex;align-items:center;gap:12px}.occupancy-top,.occupancy-foot{justify-content:space-between}.occupancy-top h2{font-size:26px;margin:0 0 8px}.occupancy-top p{margin:0;color:#456476;font-size:16px}.occupancy-updated{margin-left:24px;color:#66808e;font-size:14px}.occupancy-toolbar{flex-wrap:wrap;justify-content:space-between;margin:24px 0 20px}.occupancy-dates input{min-width:150px;width:155px;height:40px;font:inherit;color:inherit;border:1px solid #c6d7e2;border-radius:5px;padding:6px}.occupancy-switch{gap:0;border:1px solid #bcd0db;border-radius:6px;overflow:hidden}.occupancy-switch button{border:0;background:#fff;color:#315368;padding:10px 18px;font:inherit;cursor:pointer}.occupancy-switch button.active{background:var(--oc-navy);color:#fff}.occupancy-legend{font-size:14px;gap:16px}.occupancy-legend span{display:flex;align-items:center;gap:6px}.occupancy-legend i{display:block;width:10px;height:10px;border-radius:3px;background:#eef3f6}.occupancy-legend .approved{background:#04839a}.occupancy-legend .pending{background:#e7ad45}.occupancy-legend .free{background:#d9ebe5}.occupancy-legend .closed{background:#c5cfd6}.occupancy-table-wrap{overflow:auto;max-height:68vh;border:1px solid #d9e3ea;border-radius:6px}.occupancy-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:760px}.occupancy-table th,.occupancy-table td{border-right:1px solid #e0e8ed;border-bottom:1px solid #e0e8ed;padding:7px;vertical-align:middle}.occupancy-table thead th{background:#edf3f7;padding:15px 8px;text-align:center;font-size:15px;position:sticky;top:0;z-index:2}.occupancy-table th:first-child{width:205px;text-align:left;position:sticky;left:0;z-index:1;background:#f7f9fb;padding:14px}.occupancy-table thead th:first-child{z-index:3;background:#edf3f7}.occupancy-table tbody th strong{font-size:16px;display:block;font-weight:600;line-height:1.4}.occupancy-table tbody th>span{display:block;font-size:13px;font-weight:400;color:#67808f;margin-top:7px}.occupancy-cell{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:62px;border:1px solid transparent;border-radius:5px;background:#f3f8f6;color:#497364;cursor:pointer;font:inherit;gap:5px;padding:9px 6px}.occupancy-cell.approved{background:#e0f1f4;color:#006279;border-color:#b5dfe6}.occupancy-cell.pending{background:#fff4dc;color:#895d0f;border-color:#efd395}.occupancy-cell.closed{background:#f0f2f4;color:#8796a1}.occupancy-cell strong{font-size:15px;font-weight:500}.occupancy-cell:hover,.occupancy-cell:focus-visible{outline:2px solid #008ca7;outline-offset:1px}.occupancy-purpose{font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.occupancy-pending{font-size:12px;color:#8b6016}.occupancy-table.week{min-width:1040px}.occupancy-table.week th:first-child{width:180px}.occupancy-table.week .occupancy-cell{min-height:27px;padding:5px 4px;flex-direction:row;justify-content:space-between;border-radius:3px;margin:3px 0;gap:5px}.occupancy-table.week .occupancy-cell strong,.occupancy-slot{font-size:12px}.occupancy-foot{font-size:13px;color:#6b8190;margin-top:16px;gap:15px;flex-wrap:wrap}.occupancy-loading,.occupancy-error{padding:40px;text-align:center}.occupancy-error{color:#a72c2c;background:#fff2f1}.occupancy-board.is-screen{position:fixed;inset:0;z-index:1000;border:0;border-radius:0;padding:24px 32px;overflow:auto;background:#f7fafc}.occupancy-board.is-screen .occupancy-table-wrap{max-height:calc(100vh - 225px);background:#fff}.occupancy-board.is-screen .occupancy-top h2{font-size:30px}.occupancy-board.is-screen .occupancy-cell{min-height:58px}.occupancy-detail{padding:18px 0;border-top:1px solid #dce6ed}.occupancy-detail h3{font-size:19px;margin:12px 0}.occupancy-status{display:inline-block;padding:4px 9px;border-radius:4px;font-size:14px}.occupancy-status.approved{color:#006279;background:#e0f1f4}.occupancy-status.pending{color:#895d0f;background:#fff4dc}dialog#modal{z-index:1100}@media(max-width:700px){.occupancy-board{padding:16px}.occupancy-top{align-items:flex-start;gap:12px;flex-wrap:wrap}.occupancy-top h2{font-size:22px}.occupancy-updated{display:block;margin:8px 0 0}.occupancy-toolbar{gap:16px}.occupancy-legend{flex-wrap:wrap}.occupancy-table th:first-child{width:150px}.occupancy-board.is-screen{padding:16px}.occupancy-table-wrap{max-height:65vh}}
.occupancy-board.is-screen .occupancy-table.week .occupancy-cell{min-height:30px}.occupancy-board.is-screen .occupancy-table.week .occupancy-cell strong,.occupancy-board.is-screen .occupancy-slot{font-size:14px}
.occupancy-board.is-screen{box-sizing:border-box;height:100vh;display:flex;flex-direction:column;overflow:hidden}.occupancy-board.is-screen .occupancy-top,.occupancy-board.is-screen .occupancy-toolbar,.occupancy-board.is-screen .occupancy-foot{flex-shrink:0}.occupancy-board.is-screen .occupancy-table-wrap{flex:1;min-height:0;max-height:none}.occupancy-board.is-screen .occupancy-toolbar{margin:18px 0}.occupancy-board.is-screen .occupancy-table.day .occupancy-cell{min-height:42px;padding:6px}.occupancy-board.is-screen .occupancy-table.day tbody th{padding:10px 14px}.occupancy-table thead th.is-today{color:#006d85;background:#dceff3}
