@import url(https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=DM+Mono:wght@400;500&display=swap);*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--font:"DM Sans",sans-serif;--mono:"DM Mono",monospace;--bg:#f4f3f0;--surface:#fff;--surface2:#f7f6f3;--border:#0000001a;--border2:#0000002e;--text:#111110;--text2:#5a5955;--text3:#999894;--blue:#378add;--blue-dark:#185fa5;--blue-bg:#e6f1fb;--blue-text:#0c447c;--green:#1d9e75;--green-bg:#eaf3de;--green-text:#3b6d11;--red:#e24b4a;--red-bg:#fcebeb;--red-text:#a32d2d;--amber-bg:#faeeda;--amber-text:#854f0b;--radius:8px;--radius-lg:12px}body{-webkit-font-smoothing:antialiased;color:#111110;color:var(--text);font-family:DM Sans,sans-serif;font-family:var(--font);font-size:14px;line-height:1.5}.loading-screen,body{background:#f4f3f0;background:var(--bg)}.loading-screen{align-items:center;display:flex;flex-direction:column;gap:8px;height:100vh;justify-content:center}.loading-logo{color:#111110;color:var(--text);font-size:22px;font-weight:600}.loading-sub{color:#999894;color:var(--text3);font-size:13px}.login-page{align-items:center;background:#f4f3f0;background:var(--bg);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;background:var(--surface);border:.5px solid #0000002e;border:.5px solid var(--border2);border-radius:12px;border-radius:var(--radius-lg);max-width:380px;padding:36px 32px;width:100%}.login-logo{color:#111110;color:var(--text);font-size:20px;font-weight:600;margin-bottom:4px}.login-tagline{color:#999894;color:var(--text3);font-size:13px;margin-bottom:28px}.login-error{background:#fcebeb;background:var(--red-bg);border-radius:8px;border-radius:var(--radius);color:#a32d2d;color:var(--red-text);font-size:13px;padding:10px 12px}.form-group,.login-error{margin-bottom:14px}.form-label{color:#5a5955;color:var(--text2);display:block;font-size:12px;font-weight:500;margin-bottom:5px}.form-input{background:#fff;background:var(--surface);border:.5px solid #0000002e;border:.5px solid var(--border2);border-radius:8px;border-radius:var(--radius);color:#111110;color:var(--text);font-family:DM Sans,sans-serif;font-family:var(--font);font-size:13px;outline:none;padding:9px 12px;transition:border-color .15s;width:100%}.form-input:focus{border-color:#378add;border-color:var(--blue)}.form-select{cursor:pointer}.form-select,.form-textarea{background:#fff;background:var(--surface);border:.5px solid #0000002e;border:.5px solid var(--border2);border-radius:8px;border-radius:var(--radius);color:#111110;color:var(--text);font-family:DM Sans,sans-serif;font-family:var(--font);font-size:13px;outline:none;padding:8px 12px;width:100%}.form-textarea{min-height:70px;resize:vertical}.form-select:focus,.form-textarea:focus{border-color:#378add;border-color:var(--blue)}.btn{background:#0000;border:.5px solid #0000002e;border:.5px solid var(--border2);border-radius:8px;border-radius:var(--radius);color:#111110;color:var(--text);cursor:pointer;font-family:DM Sans,sans-serif;font-family:var(--font);font-size:13px;font-weight:500;padding:7px 14px;transition:background .12s,transform .1s;white-space:nowrap}.btn:hover{background:#f7f6f3;background:var(--surface2)}.btn:active{transform:scale(.98)}.btn-primary{background:#378add;background:var(--blue);border-color:#378add;border-color:var(--blue);color:#fff}.btn-primary:hover{background:#185fa5;background:var(--blue-dark)}.btn-success{background:#1d9e75;background:var(--green);border-color:#1d9e75;border-color:var(--green);color:#fff}.btn-danger{background:#e24b4a;background:var(--red);border-color:#e24b4a;border-color:var(--red);color:#fff}.btn-sm{font-size:12px;padding:4px 10px}.btn-full{width:100%}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar{background:#fff;background:var(--surface);border-bottom:.5px solid #0000001a;border-bottom:.5px solid var(--border);flex-shrink:0;flex-wrap:wrap;gap:12px;height:48px;justify-content:space-between;padding:0 16px}.topbar,.topbar-left{align-items:center;display:flex}.topbar-left{gap:14px}.app-logo{color:#111110;color:var(--text);font-size:15px;font-weight:600;letter-spacing:-.3px}.role-switcher{background:#f4f3f0;background:var(--bg);border-radius:8px;display:flex;gap:3px;padding:3px}.role-btn{background:#0000;border:none;border-radius:6px;color:#5a5955;color:var(--text2);cursor:pointer;font-family:DM Sans,sans-serif;font-family:var(--font);font-size:12px;padding:3px 10px;transition:all .12s}.role-btn.active{background:#fff;background:var(--surface);border:.5px solid #0000002e;border:.5px solid var(--border2);color:#111110;color:var(--text);font-weight:500}.topbar-right{align-items:center;display:flex;gap:8px}.user-chip{background:#f7f6f3;background:var(--surface2);border:.5px solid #0000001a;border:.5px solid var(--border);border-radius:20px;color:#5a5955;color:var(--text2);font-size:12px;padding:3px 10px}.tabs{background:#fff;background:var(--surface);border-bottom:.5px solid #0000001a;border-bottom:.5px solid var(--border);display:flex;flex-shrink:0;overflow-x:auto;padding:0 14px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{border-bottom:2px solid #0000;color:#5a5955;color:var(--text2);cursor:pointer;font-size:13px;margin-bottom:-.5px;padding:8px 14px;transition:color .12s;-webkit-user-select:none;user-select:none;white-space:nowrap}.tab.active,.tab:hover{color:#111110;color:var(--text)}.tab.active{border-bottom-color:#111110;border-bottom-color:var(--text);font-weight:500}.tab-badge{background:#faeeda;background:var(--amber-bg);border-radius:9px;color:#854f0b;color:var(--amber-text);font-size:10px;font-weight:600;margin-left:5px;padding:1px 6px}.main-content{flex:1 1;overflow:hidden;padding:0;position:relative}.board-wrap,.main-content{display:flex;flex-direction:column;min-height:0}.board-wrap{flex:1 1}.board-table-wrap{background:#fff;background:var(--surface);border:.5px solid #0000002e;border:.5px solid var(--border2);border-radius:12px;border-radius:var(--radius-lg);min-width:700px;overflow:hidden}.board-table{border-collapse:collapse;table-layout:fixed;width:100%}.board-table th{background:#f7f6f3;background:var(--surface2);border-bottom:.5px solid #0000001a;border-bottom:.5px solid var(--border);border-right:.5px solid #0000001a;border-right:.5px solid var(--border);color:#5a5955;color:var(--text2);font-size:10px;font-weight:500;padding:6px 4px;text-align:center;white-space:nowrap}.board-table th.proj-col{left:0;position:-webkit-sticky;position:sticky;text-align:left;width:145px;z-index:2}.board-table th.today-col{background:#e6f1fb;background:var(--blue-bg);color:#0c447c;color:var(--blue-text)}.board-table td{border-bottom:.5px solid #0000001a;border-bottom:.5px solid var(--border);border-right:.5px solid #0000001a;border-right:.5px solid var(--border);padding:0;vertical-align:top}.board-table td.proj-td{background:#fff;background:var(--surface);cursor:pointer;left:0;padding:6px 8px;position:-webkit-sticky;position:sticky;width:145px;z-index:1}.board-table td.proj-td:hover{background:#f7f6f3;background:var(--surface2)}.board-table td.today-td{background:#f5f9ff}.board-table tr:last-child td{border-bottom:none}.proj-color-bar{border-radius:2px;flex-shrink:0;height:30px;width:3px}.proj-name-cell{color:#111110;color:var(--text);font-size:11px;font-weight:500;line-height:1.2;max-width:118px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-pm-cell{color:#999894;color:var(--text3);font-size:9px}.cell{cursor:pointer;min-height:64px;padding:4px 5px;transition:background .1s}.cell:hover{background:#f7f6f3;background:var(--surface2)}.cell-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:2px}.cell-count{color:#111110;color:var(--text);font-size:13px;font-weight:600}.cell-fm{color:#5a5955;color:var(--text2);max-width:55px;text-overflow:ellipsis;white-space:nowrap}.cell-fm,.cell-task{font-size:9px;overflow:hidden}.cell-task{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#999894;color:var(--text3);display:-webkit-box;line-height:1.3;margin-top:1px}.cell-chips{display:flex;flex-wrap:wrap;gap:2px;margin-top:3px}.chip{background:#f7f6f3;background:var(--surface2);border:.5px solid #0000001a;border:.5px solid var(--border);border-radius:3px;color:#5a5955;color:var(--text2);font-size:9px;padding:1px 4px;white-space:nowrap}.chip-out{background:#fcebeb;background:var(--red-bg);border-color:#f09595;color:#a32d2d;color:var(--red-text)}.empty-cell{color:#999894;color:var(--text3);font-size:10px;padding-top:20px;text-align:center}.total-td{background:#f7f6f3;background:var(--surface2);color:#5a5955;color:var(--text2);font-size:11px;font-weight:500;padding:5px;text-align:center}.day-total-row td{background:#f7f6f3!important;background:var(--surface2)!important}.pill{border-radius:9px;font-size:10px;font-weight:500;padding:2px 8px;white-space:nowrap}.pill-pending{background:#faeeda;background:var(--amber-bg);color:#854f0b;color:var(--amber-text)}.pill-approved{background:#eaf3de;background:var(--green-bg);color:#3b6d11;color:var(--green-text)}.pill-denied{background:#fcebeb;background:var(--red-bg);color:#a32d2d;color:var(--red-text)}.avail-badge{background:#eaf3de;background:var(--green-bg);color:#3b6d11;color:var(--green-text)}.out-badge{background:#fcebeb;background:var(--red-bg);color:#a32d2d;color:var(--red-text)}.ww-row{align-items:stretch;border-bottom:.5px solid #0000001a;border-bottom:.5px solid var(--border);display:flex}.ww-row:last-child{border-bottom:none}.ww-name-col{border-right:.5px solid #0000001a;border-right:.5px solid var(--border);display:flex;flex-direction:column;justify-content:center;min-width:170px;padding:7px 12px;width:170px}.ww-emp-name{color:#111110;color:var(--text);font-size:12px;font-weight:500}.ww-emp-trade{color:#999894;color:var(--text3);font-size:10px}.ww-assign-col{align-items:center;display:flex;flex:1 1;gap:8px;padding:5px 10px}.ww-job-pill{align-items:center;border-radius:6px;display:inline-flex;font-size:11px;font-weight:500;gap:6px;padding:4px 10px}.ww-none{color:#999894;color:var(--text3);font-size:11px;font-style:italic}.ww-out{background:#fcebeb;background:var(--red-bg);border-radius:6px;color:#a32d2d;color:var(--red-text);font-size:11px;padding:3px 9px}.section-lbl{background:#f7f6f3;background:var(--surface2);color:#999894;color:var(--text3);font-size:10px;font-weight:600;letter-spacing:.5px;padding:8px 14px 5px;text-transform:uppercase}.emp-row,.section-lbl{border-bottom:.5px solid #0000001a;border-bottom:.5px solid var(--border)}.emp-row{align-items:center;display:flex;gap:12px;padding:8px 14px;transition:background .1s}.emp-row:hover{background:#f7f6f3;background:var(--surface2)}.emp-row:last-child{border-bottom:none}.avatar{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:11px;font-weight:600;height:32px;justify-content:center;width:32px}.emp-info{flex:1 1;min-width:0}.emp-name{color:#111110;color:var(--text);font-size:13px;font-weight:500}.emp-meta{color:#999894;color:var(--text3);font-size:11px}.emp-out-dates{color:#a32d2d;color:var(--red-text);font-size:10px;margin-top:1px}.req-card{background:#fff;background:var(--surface);border:.5px solid #0000002e;border:.5px solid var(--border2);border-radius:12px;border-radius:var(--radius-lg);padding:12px 14px}.req-card.pending{border-left:3px solid #ef9f27}.req-card.approved{border-left:3px solid #5dcaa5}.req-card.denied{border-left:3px solid #f09595}.req-header{align-items:flex-start;display:flex;gap:8px;justify-content:space-between;margin-bottom:6px}.req-title{color:#111110;color:var(--text);font-size:13px;font-weight:500}.req-meta{color:#5a5955;color:var(--text2);font-size:11px;margin-top:2px}.req-actions{display:flex;gap:6px;margin-top:10px}.modal-backdrop{align-items:flex-start;background:#0006;display:flex;inset:0;justify-content:center;padding-top:60px;position:fixed;z-index:100}.modal{background:#fff;background:var(--surface);border:.5px solid #0000002e;border:.5px solid var(--border2);border-radius:12px;border-radius:var(--radius-lg);max-height:85vh;max-width:96vw;overflow-y:auto;padding:20px;width:420px}.modal-title{color:#111110;color:var(--text);font-size:15px;font-weight:600;margin-bottom:3px}.modal-sub{color:#999894;color:var(--text3);font-size:12px;margin-bottom:16px}.modal-row{align-items:center;display:flex;gap:10px;margin-bottom:10px}.modal-row label{color:#5a5955;color:var(--text2);font-size:12px;font-weight:500;min-width:78px}.modal-actions{display:flex;gap:8px;margin-top:14px}.worker-list-box{border:.5px solid #0000001a;border:.5px solid var(--border);border-radius:8px;border-radius:var(--radius);margin-bottom:10px;max-height:140px;overflow-y:auto}.worker-list-row{align-items:center;border-bottom:.5px solid #0000001a;border-bottom:.5px solid var(--border);display:flex;justify-content:space-between;padding:5px 10px}.worker-list-row:last-child{border-bottom:none}.remove-btn{background:none;border:none;color:#999894;color:var(--text3);cursor:pointer;font-size:17px;line-height:1;padding:0 2px}.remove-btn:hover{color:#e24b4a;color:var(--red)}.add-worker-row{display:flex;gap:6px;margin-bottom:10px}.add-worker-row .form-select{flex:1 1}.cnt-control{align-items:center;display:flex;gap:10px}.cnt-val{color:#111110;color:var(--text);font-size:18px;font-weight:600;min-width:24px;text-align:center}.timeoff-list-box{border:.5px solid #0000001a;border:.5px solid var(--border);border-radius:8px;border-radius:var(--radius);margin-bottom:10px;max-height:110px;overflow-y:auto}.timeoff-row{align-items:center;border-bottom:.5px solid #0000001a;border-bottom:.5px solid var(--border);color:#5a5955;color:var(--text2);display:flex;font-size:12px;justify-content:space-between;padding:5px 10px}.timeoff-row:last-child{border-bottom:none}.panel{display:none}.panel.active{display:block}.panel-pad{display:flex;flex:1 1;flex-direction:column;gap:10px;overflow-x:hidden;overflow-y:auto;padding:12px}.panel-header{align-items:center;background:#fff;background:var(--surface);border-bottom:.5px solid #0000001a;border-bottom:.5px solid var(--border);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:10px 14px}.panel-title{color:#111110;color:var(--text);font-size:13px;font-weight:500}.card{background:#fff;background:var(--surface);border:.5px solid #0000002e;border:.5px solid var(--border2);border-radius:12px;border-radius:var(--radius-lg);overflow:hidden}::-webkit-scrollbar{height:5px;width:5px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#0000002e;background:var(--border2);border-radius:3px}.admin-subnav{display:flex;gap:6px;margin-bottom:16px}
/*# sourceMappingURL=main.4b0f750c.css.map*/