*{box-sizing:border-box}html{color:#111;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f4f4;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}:root{--red:#df151d;--dark-red:#b30e15;--black:#111;--gray:#f4f4f4;--border:#dedede;--white:#fff}.app{background:var(--gray);min-height:100vh;color:var(--black)}.loading-page{color:#fff;background:#111;place-content:center;justify-items:center;gap:14px;min-height:100vh;font-weight:700;display:grid}.loading-spinner{border:4px solid #444;border-top-color:var(--red);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-page{background:linear-gradient(#000000c2,#000000c2),radial-gradient(circle at 0 0,#454545,#080808 68%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border-top:8px solid var(--red);background:#fff;border-radius:18px;width:min(430px,100%);padding:36px;box-shadow:0 30px 100px #00000073}.brand-logo{flex-direction:column;align-items:flex-start;line-height:.9;display:inline-flex}.brand-main{color:var(--black);letter-spacing:-2px;font-size:38px;font-weight:1000}.brand-sub{background:var(--red);color:#fff;letter-spacing:2.5px;margin-top:9px;padding:6px 9px;font-size:14px;font-weight:950}.brand-logo-small .brand-main{font-size:27px}.brand-logo-small .brand-sub{margin-top:6px;padding:4px 6px;font-size:10px}.login-title{margin:35px 0 25px}.login-title>span,.red-label{color:var(--red);letter-spacing:1.4px;text-transform:uppercase;font-size:12px;font-weight:900}.login-title h1{margin:7px 0 10px;font-size:30px}.login-title p{color:#666;margin:0;line-height:1.5}.login-card label,.modal label{gap:8px;margin-bottom:16px;font-weight:800;display:grid}.login-card input,.modal input,.modal select,.modal textarea{width:100%;min-height:45px;color:var(--black);background:#fff;border:1px solid #cfcfcf;border-radius:9px;padding:11px 12px}.login-card input:focus,.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:var(--red);outline:3px solid #df151d29}.red-button,.outline-button,.delete-button,.current-week-button,.week-arrow{border-radius:9px;min-height:42px;padding:10px 15px;font-weight:850}.red-button{border:1px solid var(--red);background:var(--red);color:#fff}.red-button:hover{border-color:var(--dark-red);background:var(--dark-red)}.red-button:disabled,.outline-button:disabled,.delete-button:disabled{cursor:wait;opacity:.6}.outline-button{color:var(--black);background:#fff;border:1px solid #cacaca}.login-button{width:100%;margin-top:5px}.login-error{color:#a00000;background:#ffe2e2;border-radius:8px;padding:11px;font-weight:700}.topbar{border-bottom:5px solid var(--red);background:#fff;justify-content:space-between;align-items:center;gap:18px;min-height:82px;padding:12px 24px;display:flex;box-shadow:0 4px 20px #00000012}.user-section{align-items:center;gap:11px;display:flex}.user-information{text-align:right;flex-direction:column;display:flex}.user-information span{color:#777;font-size:11px}.role-badge{background:#ededed;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:850}.content{padding:22px}.page-heading,.week-navigation,.schedule-container,.page-error{width:100%;max-width:1500px;margin-left:auto;margin-right:auto}.page-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.page-heading h1{margin:4px 0 0;font-size:30px}.week-navigation{border:1px solid var(--border);background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:12px;margin-top:18px;margin-bottom:14px;padding:10px;display:flex}.week-title{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;min-width:0;display:flex}.week-title span{color:var(--red);letter-spacing:.8px;text-transform:uppercase;font-size:11px;font-weight:900}.week-title strong{margin-top:2px;font-size:14px}.week-arrow{width:44px;color:var(--black);background:#fff;border:1px solid #d1d1d1;padding:0;font-size:29px}.current-week-button{min-height:34px;color:var(--black);background:#eee;border:0;padding:6px 10px;font-size:12px}.page-error{border-left:5px solid var(--red);color:#900;background:#ffe5e5;border-radius:8px;justify-content:space-between;align-items:center;gap:15px;margin-bottom:14px;padding:12px;display:flex}.page-error button{background:#fff;border:1px solid #d39999;border-radius:7px;padding:7px 10px}.schedule-container{background:#fff;border:1px solid #d7d7d7;border-radius:13px;position:relative;overflow:hidden;box-shadow:0 7px 25px #0000000f}.schedule-grid{grid-template-columns:minmax(100px,120px) repeat(7,minmax(82px,1fr));width:100%;display:grid}.employee-header,.day-header,.employee-name,.shift-cell{border-bottom:1px solid #e4e4e4;border-right:1px solid #e4e4e4;min-width:0}.employee-header{background:var(--black);color:#fff;align-items:center;padding:11px;font-size:13px;font-weight:900;display:flex}.day-header{border-bottom:4px solid var(--red);background:var(--black);color:#fff;text-align:center;padding:9px 3px}.day-header strong{text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.day-header span{color:#ccc;margin-top:2px;font-size:10px;display:block}.weekday-short{display:none!important}.employee-row{display:contents}.employee-name{background:#fff;align-items:center;gap:7px;min-height:82px;padding:8px;display:flex}.employee-name.current-employee{box-shadow:inset 4px 0 var(--red);background:#fff4f4}.employee-avatar{background:var(--black);color:#fff;border-radius:50%;flex:0 0 29px;place-items:center;width:29px;height:29px;font-size:12px;font-weight:900;display:grid}.employee-name strong{text-overflow:ellipsis;min-width:0;font-size:13px;overflow:hidden}.shift-cell{background:#fff;min-height:82px;padding:4px}.shift-cell:hover{background:#fafafa}.empty-cell{color:#bcbcbc;place-items:center;min-height:72px;font-size:21px;display:grid}.shift-card{cursor:default;-webkit-user-select:none;user-select:none;border-left:4px solid;border-radius:7px;flex-direction:column;gap:2px;min-height:72px;padding:7px 5px;display:flex;overflow:hidden}.shift-card[draggable=true]{cursor:grab}.shift-card strong{text-overflow:ellipsis;font-size:12px;overflow:hidden}.shift-label{letter-spacing:.4px;text-overflow:ellipsis;text-transform:uppercase;font-size:9px;font-weight:950;overflow:hidden}.shift-card small{color:#555;text-overflow:ellipsis;font-size:9px;overflow:hidden}.shift-note{white-space:nowrap;margin-top:2px}.early-shift{border-color:var(--black);background:#ededed}.late-shift{border-color:var(--red);background:#ffe0e0}.schedule-loading{color:var(--black);background:#ffffffd1;place-items:center;font-weight:800;display:grid;position:absolute;inset:0}.modal-backdrop{z-index:50;background:#0000009e;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{border-top:7px solid var(--red);background:#fff;border-radius:16px;width:min(510px,100%);max-height:92vh;padding:22px;overflow-y:auto;box-shadow:0 25px 80px #0006}.modal-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;display:flex}.modal-header h2{margin:5px 0 0}.close-button{color:var(--black);background:0 0;border:0;padding:0;font-size:31px}.modal textarea{resize:vertical;min-height:80px}.time-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modal-actions{justify-content:flex-end;gap:9px;margin-top:20px;display:flex}.delete-button{color:#a00000;background:#ffe7e7;border:1px solid #e3a4a4;margin-right:auto}@media (width<=1050px){.content{padding:12px}.schedule-grid{grid-template-columns:minmax(88px,105px) repeat(7,minmax(76px,1fr))}.weekday-long{display:none!important}.weekday-short{display:block!important}.employee-avatar{display:none}.employee-name{padding:6px}.shift-cell{padding:3px}.shift-card{padding:6px 4px}}@media (width<=650px){.topbar,.page-heading{flex-direction:column;align-items:stretch}.topbar{padding:13px}.user-section{flex-wrap:wrap}.user-information{text-align:left}.login-card{padding:27px 23px}.schedule-container{overflow-x:auto}.schedule-grid{min-width:810px}.week-navigation{gap:6px}.week-title strong{font-size:12px}.current-week-button{padding:5px 7px}.time-fields{grid-template-columns:1fr}.modal-actions{flex-wrap:wrap}}
