:root{color:#101827;background:#eef4fb;font-family:Aptos,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-height:100%}html{height:-webkit-fill-available}button,input,textarea,label,select{min-width:0}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;background:radial-gradient(circle at 0 0,rgba(72,100,119,.16),transparent 34rem),linear-gradient(180deg,#f6f9fc,#eef4fb);overflow-x:hidden;overscroll-behavior-y:none}button,input,select,textarea{font:inherit}button{border:0}h1,p,figure{margin:0}h1{color:#101827;font-size:clamp(1.65rem,5vw,2.2rem);line-height:1}p{color:#607086}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}label{display:grid;gap:7px;color:#243247;font-size:.92rem;font-weight:700}input,select,textarea{width:100%;max-width:100%;border:1px solid #c9d6e4;border-radius:12px;background:#fff;color:#101827;padding:12px 16px}input[type=date],input[type=time],input[type=number]{min-height:45px;min-width:0;-moz-appearance:none;appearance:none;-webkit-appearance:none}textarea{min-height:96px;resize:vertical}button:disabled{cursor:not-allowed;opacity:.65}.login-shell,.app-shell{width:min(100%,880px);margin:0 auto;padding:max(14px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom))}.login-shell{min-height:100vh;min-height:100svh;min-height:100dvh;display:grid;place-items:center;overflow:hidden}.login-card,.timesheet-card,.day-card,.week-card,.save-bar,.submissions-card{border:1px solid #dbe4ee;border-radius:18px;background:#ffffffe6;box-shadow:0 14px 34px #0f172a14}.login-card{width:min(100%,430px);display:grid;gap:16px;padding:24px}.login-brand{display:grid;align-items:center;gap:6px}.login-password-field{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:center}.login-password-field input{min-width:0}.login-card button,.save-bar button,.week-card button{min-height:44px;border-radius:999px;cursor:pointer;font-weight:800}.login-card button,.save-bar button{background:#101827;color:#fff}.alert{border-radius:12px;background:#fff7ed;color:#9a3412;padding:12px;font-weight:700}.timesheet-notification-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin:0 0 12px;border:1px solid #e5c98f;border-radius:14px;background:#fff7e7;color:#78350f;padding:10px 12px;box-shadow:0 10px 24px #78350f14}.timesheet-notification-banner div{display:grid;min-width:0;gap:2px}.timesheet-notification-banner strong,.timesheet-notification-banner span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timesheet-notification-banner button{min-height:34px;border-radius:999px;background:#101827;color:#fff;cursor:pointer;font-weight:800;padding:0 12px}@media (max-width: 480px){.timesheet-notification-banner{grid-template-columns:auto minmax(0,1fr)}.timesheet-notification-banner button{grid-column:2;justify-self:start}}.app-header{position:sticky;top:max(8px,env(safe-area-inset-top));z-index:30;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px;margin:8px 0 14px;border:1px solid #dbe4ee;border-radius:18px;background:#fffffff0;box-shadow:0 14px 34px #0f172a14;padding:6px 10px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.title-block{display:grid;align-items:center}.account-actions{display:grid;gap:8px;justify-items:end}.account-row{display:grid;grid-template-columns:auto;gap:8px}.employee-pill{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;border-radius:999px;padding:0 14px;font-size:.9rem;line-height:1;white-space:nowrap}.employee-pill,.user-menu-panel{border:1px solid #c9d6e4;background:#fff;color:#243247;font-weight:400}.user-menu{position:relative}.employee-pill{width:100%}.user-menu-panel{position:absolute;z-index:20;top:calc(100% + 8px);right:0;min-width:210px;display:grid;gap:4px;border-radius:16px;padding:6px;box-shadow:0 16px 34px #0f172a29}.user-menu-panel button{display:inline-flex;align-items:center;gap:8px;width:100%;min-height:40px;border-radius:12px;background:#fff;color:#243247;padding:0 10px;text-align:left;font-weight:400}.user-menu-panel button:hover{background:#eef4fb}.info-banner{margin-bottom:14px;border:1px solid #c9d6e4;border-radius:14px;background:#fff;color:#243247;padding:12px 14px;font-weight:800}.submissions-card{display:grid;gap:8px;margin-bottom:14px;padding:12px}.timeoff-page,.timeoff-list,.timeoff-form,.timeoff-card{display:grid;gap:12px}.timeoff-head,.timeoff-card,.timeoff-form{border:1px solid #dbe4ee;border-radius:18px;background:#ffffffeb;box-shadow:0 14px 34px #0f172a14;padding:14px}.timeoff-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.timeoff-head h2{margin:0 0 4px;font-size:1.25rem}.timeoff-head-actions,.timeoff-actions{display:flex;flex-wrap:wrap;gap:8px}.primary-action,.secondary-action{min-height:42px;border-radius:999px;padding:0 15px;font-weight:800;cursor:pointer}.primary-action{background:#101827;color:#fff}.secondary-action{border:1px solid #c9d6e4;background:#fff;color:#243247}.secondary-action.danger{color:#9b1c1c}.timeoff-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.timeoff-form-grid>label,.time-grid>label,.notes-photo-grid>label{min-width:0}.timeoff-form select{width:100%;border:1px solid #c9d6e4;border-radius:12px;background:#fff;color:#101827;padding:12px 13px;font:inherit}.timeoff-card{box-shadow:none}.timeoff-card-head{display:flex;justify-content:space-between;gap:10px}.timeoff-card-head div{display:grid;gap:3px}.timeoff-card-head span,.timeoff-card p{color:#607086;font-weight:700}.timeoff-status{height:28px;border-radius:999px;background:#e9eef6;color:#34435c;padding:5px 9px;font-size:.75rem;text-transform:capitalize}.timeoff-status.status-pending{background:#fff5d8;color:#7c5600}.timeoff-status.status-approved{background:#e4f8eb;color:#0f7a3b}.timeoff-status.status-denied{background:#fde7e7;color:#9b1c1c}.section-head,.submission-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head span{color:#607086;font-size:.86rem;font-weight:800}.submission-row{width:100%;border-radius:14px;background:#eef4fb;color:#243247;padding:12px;text-align:left}.week-card{display:grid;grid-template-columns:1fr minmax(180px,1.2fr) 1fr;align-items:stretch;gap:10px;padding:10px;margin-bottom:14px}.week-nav{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;background:#101827;color:#fff;padding:0 12px}.week-picker{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid #c9d6e4;border-radius:999px;background:#fff;color:#243247;padding:8px 14px;cursor:pointer;text-align:center}.week-picker span{color:#607086;font-size:.72rem;line-height:1;text-transform:uppercase}.week-picker strong{line-height:1.05}.week-picker input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.timesheet-card{display:grid;gap:12px;padding:12px}.day-card{display:grid;gap:12px;padding:14px;box-shadow:none}.day-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.day-title span{display:inline-flex;align-items:center;gap:5px;color:#607086;font-weight:800}.time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.time-grid input{padding-right:10px;padding-left:10px}.notes-photo-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-items:start}.notes-photo-grid textarea{min-height:120px}.day-notes-field{gap:0}.photo-row{display:flex;align-items:center;gap:8px;min-width:0}.photo-upload{flex:0 0 auto}.photo-upload input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-upload-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #c9d6e4;border-radius:8px;background:#fff;color:#243247;padding:0 13px;font-weight:800;line-height:1;white-space:nowrap;cursor:pointer}.photo-strip{display:flex;align-items:center;gap:8px;min-width:0;overflow-x:auto;padding-bottom:2px}.photo-strip figure{position:relative;flex:0 0 auto;width:44px;height:44px;border-radius:12px;overflow:hidden;border:1px solid #dbe4ee;background:#eef4fb}.photo-strip img{width:100%;height:100%;object-fit:cover;display:block}.photo-strip button{position:absolute;top:3px;right:3px;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#101827db;color:#fff}.save-bar{position:static;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:14px;padding:12px}.save-bar div{display:grid;gap:2px}.save-bar span{color:#607086;font-size:.78rem;font-weight:800}.save-bar strong{font-size:1.5rem}.save-bar p{color:#334155;font-weight:700;font-size:.9rem;justify-self:center;text-align:center}.save-bar button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px}.empty{padding:20px;color:#607086;text-align:center;font-weight:800}.empty.small{padding:10px}@media (max-width: 720px){.login-shell,.app-shell{padding-left:10px;padding-right:10px}.app-header{grid-template-columns:1fr;justify-items:center}.account-actions{width:100%}.title-block{width:100%;text-align:center}.account-row{display:grid;grid-template-columns:1fr}.employee-pill{width:100%}.user-menu-panel{left:0;right:auto}.week-card{grid-template-columns:1fr 1fr;gap:7px;padding:8px}.week-picker{grid-column:1 / -1;order:-1}.week-nav{min-height:42px;padding:0 8px;font-size:.82rem}.week-picker{min-height:42px;padding:7px 10px;font-size:.82rem}.time-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(76px,.82fr);gap:6px}.time-grid label{gap:5px;font-size:.78rem}.time-grid input{min-height:40px;padding:9px 7px;font-size:.9rem}.time-grid input[type=number]{padding-right:5px;padding-left:7px;text-align:center}.notes-photo-grid{grid-template-columns:1fr}.notes-photo-grid textarea{min-height:136px}.timesheet-card{gap:10px;padding:10px}.day-card{gap:11px;padding:12px}.photo-upload-button{min-height:40px}.save-bar{grid-template-columns:1fr}.save-bar button{width:100%;min-height:48px}.timeoff-head,.timeoff-card-head{display:grid}.timeoff-head-actions,.timeoff-actions{display:grid;grid-template-columns:1fr}.timeoff-form-grid{grid-template-columns:1fr}.primary-action,.secondary-action{width:100%}}@media (max-width: 430px){.app-shell{padding-left:8px;padding-right:8px}.week-card{grid-template-columns:1fr 1fr}.week-nav svg{display:none}.notes-photo-grid{grid-template-columns:1fr}.photo-row{align-items:flex-start}.photo-upload-button{min-height:40px}}:root{--admin-shell: #edf2f5;--admin-surface: #f7fafb;--admin-card: #ffffff;--admin-border: rgba(32, 48, 60, .11);--admin-border-strong: rgba(32, 48, 60, .2);--admin-text: #142028;--admin-muted: #62717c;--admin-muted-strong: #344653;--admin-primary: #236476;--admin-primary-strong: #153f4d;--admin-primary-soft: rgba(35, 100, 118, .12);--admin-sidebar-bg: #082729;--admin-sidebar-panel: #103537;--admin-shadow-soft: 0 12px 28px rgba(22, 34, 43, .07);--crm-radius: 10px;--crm-control-height: 44px;--crm-action-primary: var(--admin-primary);--crm-action-primary-strong: var(--admin-primary-strong);--crm-button-selected: #4a806a;--crm-button-selected-rgb: 74, 128, 106;--crm-button-selected-soft: #e9f4f0;--crm-button-hover: #e7dfd2;--crm-button-hover-border: #d7c9b6;--crm-button-hover-shadow: 0 0 0 1px rgba(147, 121, 84, .1), 0 10px 22px rgba(88, 72, 52, .12);color:var(--admin-text);background:var(--admin-shell);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{background:linear-gradient(180deg,#ffffffad,#fff0),var(--admin-shell)}h1,.timeoff-head h2{color:var(--admin-text);font-weight:800}p,.section-head span,.day-title span,.timeoff-card-head span,.timeoff-card p{color:var(--admin-muted)}input,textarea,select,.timeoff-form select{border-color:var(--admin-border-strong);border-radius:10px;background:#fff;color:var(--admin-text);min-height:var(--crm-control-height);padding-left:16px;padding-right:16px}input:focus,textarea:focus,select:focus{border-color:var(--admin-primary);box-shadow:0 0 0 3px var(--admin-primary-soft);outline:0}.login-card,.timesheet-card,.day-card,.week-card,.save-bar,.submissions-card,.timeoff-head,.timeoff-card,.timeoff-form{border-color:var(--admin-border);border-radius:var(--crm-radius);background:var(--admin-card);box-shadow:var(--admin-shadow-soft)}.app-header{grid-template-columns:minmax(0,1fr) auto;min-height:68px;border-color:#ffffff21;border-radius:var(--crm-radius);background:var(--admin-sidebar-bg);color:#fff;box-shadow:0 14px 30px #08272929;-webkit-backdrop-filter:none;backdrop-filter:none;padding:12px 14px}.app-header h1{color:#fff}.employee-pill{min-height:var(--crm-control-height);border-color:#ffffff2b;border-radius:8px;background:#ffffff14;color:#fff;font-weight:800}.employee-pill:hover,.employee-pill:focus-visible{border-color:var(--crm-button-selected);background:var(--crm-button-selected);color:#fff;outline:0;box-shadow:0 8px 18px rgba(var(--crm-button-selected-rgb),.18)}.user-menu-panel{border-color:var(--admin-border);border-radius:var(--crm-radius);background:#fff;color:var(--admin-text)}.user-menu-panel{box-shadow:0 16px 34px #0f172a29}.user-menu-panel button{border-radius:8px}.login-card button,.save-bar button,.week-nav,.primary-action{border:1px solid var(--admin-primary);border-radius:8px;background:var(--admin-primary);color:#fff;min-height:var(--crm-control-height);box-shadow:0 10px 22px #2364762e}.login-card button:hover,.save-bar button:hover,.week-nav:hover,.primary-action:hover{border-color:var(--admin-primary-strong);background:var(--admin-primary-strong);box-shadow:0 12px 26px #2364762e}.login-card .login-password-toggle,.login-card .login-password-toggle:hover{display:inline-grid;place-items:center;width:44px;min-height:44px;padding:0;border:1px solid var(--admin-border-strong);border-radius:8px;background:#fff;color:var(--admin-text);box-shadow:none}.login-card .login-password-toggle:hover,.login-card .login-password-toggle:focus-visible{border-color:var(--admin-primary);background:var(--admin-primary-soft);outline:0}.secondary-action,.week-picker,.submission-row,.photo-upload-button{border-color:var(--admin-border);border-radius:8px;background:#fff;color:var(--admin-text)}.photo-strip figure{border-color:var(--admin-border);border-radius:8px}.timeoff-status,.timeoff-status.status-pending,.timeoff-status.status-approved,.timeoff-status.status-denied{border-radius:999px}@media (max-width: 720px){.app-header{grid-template-columns:1fr}}button,.photo-upload-button,.employee-pill,.submission-row,.week-picker{transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.week-nav{border-color:var(--admin-sidebar-bg);background:var(--admin-sidebar-bg);color:#fff}.week-nav:hover,.week-nav:focus-visible{border-color:var(--crm-button-selected);background:var(--crm-button-selected);color:#fff;outline:0;box-shadow:0 8px 18px rgba(var(--crm-button-selected-rgb),.18)}.secondary-action,.week-picker,.submission-row,.photo-upload-button{min-height:var(--crm-control-height)}.week-picker{border-color:rgba(var(--crm-button-selected-rgb),.34);background:var(--crm-button-selected-soft);box-shadow:inset 0 0 0 1px rgba(var(--crm-button-selected-rgb),.08)}.secondary-action:hover,.secondary-action:focus-visible,.week-picker:hover,.week-picker:focus-within,.submission-row:hover,.submission-row:focus-visible,.photo-upload-button:hover,.photo-upload-button:focus-visible,.user-menu-panel button:hover,.user-menu-panel button:focus-visible{border-color:var(--crm-button-hover-border);background:var(--crm-button-hover);color:var(--admin-text);outline:0;box-shadow:var(--crm-button-hover-shadow)}.day-title span{min-height:32px;border:1px solid rgba(var(--crm-button-selected-rgb),.2);border-radius:8px;background:var(--crm-button-selected-soft);color:var(--crm-button-selected);padding:5px 8px}.timeoff-status.status-approved{background:var(--crm-button-selected-soft);color:var(--crm-button-selected)}@media (max-width: 720px){.login-card button,.save-bar button,.week-nav,.week-picker,.primary-action,.secondary-action,.photo-upload-button,.employee-pill,.submission-row{min-height:46px}.app-header{align-items:stretch;justify-items:stretch}.title-block{text-align:left}}
