:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#19393e;background:#f3f6f5;font-synthesis:none;--brand:#174d51;--muted:#60797d;--line:#dce6e4;--soft:#e6f1ee}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #dd9659;outline-offset:3px}a{color:var(--brand)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(25px,4vw,36px);letter-spacing:-1px;margin-bottom:9px}h2{font-size:20px;letter-spacing:-.4px}h3{font-size:17px}p{line-height:1.6}small,.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:800;color:#507b79}.button{border:1px solid var(--line);border-radius:11px;background:white;color:var(--brand);padding:12px 17px;font-weight:650;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.button.primary{background:var(--brand);border-color:var(--brand);color:white}.button.danger{color:#a33d3d}.button.small{padding:9px 12px;font-size:13px}.actions{display:flex;gap:9px;flex-wrap:wrap}.loading{padding:60px;text-align:center}.auth-shell{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.auth-brand{background:#143f43;color:white;padding:clamp(36px,7vw,100px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-brand:after{content:"";width:430px;height:430px;border:1px solid #547774;border-radius:50%;position:absolute;right:-210px;bottom:-210px;box-shadow:0 0 0 65px #ffffff05,0 0 0 130px #ffffff03}.wordmark{font-size:23px;font-weight:750;letter-spacing:-.8px}.wordmark span{color:#abcfc4;font-weight:400}.brand-symbol{width:43px;height:43px;border:1px solid #72938e;border-radius:12px;display:inline-grid;place-items:center;margin-right:12px;color:#ddac78}.auth-brand h1{font-size:clamp(34px,4.5vw,58px);max-width:550px;line-height:1.12;margin:70px 0 24px}.auth-brand p{color:#bed1ce;max-width:390px}.auth-brand small{color:#bed1ce}.auth-main{display:grid;place-items:center;padding:32px}.auth-card{width:min(100%,410px)}.auth-card h2{font-size:29px;margin-top:18px}.field{display:grid;gap:8px;font-size:13px;font-weight:650;margin-bottom:18px}.field input,.field select,select.control,input.control{width:100%;border:1px solid #cad9d6;background:white;border-radius:10px;padding:12px;color:#19393e;min-height:46px}.auth-card .button{width:100%;margin:4px 0 18px}.error{color:#a13e3e;background:#fbeeee;border-radius:10px;padding:12px;line-height:1.5}.app-shell{min-height:100dvh;display:grid;grid-template-columns:236px minmax(0,1fr)}.side{background:#153e42;color:white;padding:32px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100dvh}.side .wordmark{font-size:20px;margin:0 6px 38px}.side nav{display:grid;gap:7px}.nav-button{color:#ccddda;border:0;border-radius:10px;background:transparent;text-align:left;padding:14px 15px;font-size:14px;min-height:48px}.nav-button.active{background:#ffffff15;color:white;box-shadow:inset 3px 0 #d3ab76}.side-footer{margin-top:auto;border-top:1px solid #ffffff20;padding-top:20px;font-size:12px}.side-footer strong{display:block;color:#fff;margin-bottom:6px}.side-footer .button{margin-top:16px;background:transparent;color:#dae6e4;border-color:#6c8784;width:100%}.content{min-width:0}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:#ffffffa6;gap:12px}.topbar span{font-size:13px;color:var(--muted)}.avatar{width:36px;height:36px;border-radius:50%;background:#e0ece7;display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--brand)}main{max-width:1230px;margin:auto;padding:34px 38px 50px}.page-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.page-head p{margin-bottom:0;color:var(--muted);font-size:14px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;min-width:0}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:26px}.hero{background:var(--brand);color:#fff;border:0;position:relative}.hero .eyebrow,.hero .muted{color:#bed8cf}.hero h2{margin:18px 0 9px;font-size:24px}.pill{font-size:11px;display:inline-block;padding:6px 10px;border-radius:20px;background:#e4f0eb;color:#275b50;font-weight:700}.hero .pill{background:#ffffff17;color:#d3e7e0}.shift-line{padding:15px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.shift-line:last-child{border-bottom:0}.shift-line strong,.shift-line small{display:block}.shift-line small{margin-top:6px;line-height:1.5}.hero .shift-line{border-color:#ffffff26}.hero .shift-line small{color:#c3d9d3}.hero .button{margin-top:18px}.section-head{display:flex;justify-content:space-between;align-items:center;margin:25px 0 16px;gap:12px}.section-head h2{margin:0}.empty{padding:25px 0;color:var(--muted);line-height:1.6}.hero .empty{color:#c3d9d3}.month-tools{display:flex;align-items:center;gap:8px}.month-tools input{max-width:180px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-label{text-align:center;font-size:11px;font-weight:700;color:var(--muted);padding:8px 0}.day{border:1px solid #e6ecea;border-radius:11px;background:#fafcfb;min-height:90px;text-align:left;padding:10px;color:#24484b;display:flex;flex-direction:column;gap:8px;position:relative}.day.work{background:#e5f1eb;border-color:#aed0bb}.day.today{outline:2px solid #c99552;outline-offset:1px}.day.selected{background:var(--brand);color:#fff;border-color:var(--brand)}.day-count{font-size:11px;line-height:1.4}.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:19px 0 0}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#78a78e;margin-right:6px}.dot.today{background:#c99552}.filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}.filters .field{margin:0;min-width:180px;flex:1}.schedule-day{margin-top:22px}.schedule-day h3{border-bottom:1px solid var(--line);padding-bottom:12px;text-transform:capitalize}.schedule-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid #edf1ef;font-size:14px}.schedule-row small{display:block;margin-top:6px}.schedule-row.mine{background:#edf5f1;border-radius:9px;padding-left:12px;padding-right:12px}.metric{font-size:28px;font-weight:700;letter-spacing:-1px;margin:12px 0 6px}.finance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.form-grid .wide{grid-column:1/-1}.request{border:1px solid var(--line);border-radius:12px;padding:17px;margin:12px 0;background:white}.request p{font-size:13px;margin:8px 0;color:var(--muted)}.request .actions{margin-top:12px}.badge{display:inline-block;padding:4px 8px;border-radius:6px;background:#eef3f1;font-size:11px;margin-left:8px}.badge.pending{background:#fff1d7;color:#886020}.badge.accepted{background:#dcefe3;color:#286044}.badge.rejected,.badge.cancelled{background:#fae8e5;color:#994839}dialog{border:0;border-radius:18px;padding:26px;box-shadow:0 24px 80px #122c3650;width:min(94vw,570px);max-height:90dvh;color:#19393e}dialog::backdrop{background:#102b3677;backdrop-filter:blur(3px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}.dialog-header h2{margin:0}.dialog-header button{border:0;background:#edf3f0;border-radius:50%;min-width:40px;min-height:40px;font-size:22px}.dialog-info{background:#edf5f1;padding:15px;border-radius:11px;margin-bottom:18px}.dialog-info small{display:block;margin-top:6px}#notice{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);max-width:90vw;background:#153e42;color:white;padding:14px 20px;border-radius:12px;box-shadow:0 12px 30px #0002;z-index:100}#notice:empty{display:none}.admin-links{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:25px}.invite-result{background:var(--soft);padding:18px;border-radius:12px;overflow-wrap:anywhere}.access-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;gap:14px;border-bottom:1px solid var(--line)}.access-row small{display:block;margin-top:5px}.refresh{background:none;border:0;color:var(--brand);min-height:44px}.mobile-brand{display:none}
@media(max-width:1000px){.app-shell{grid-template-columns:205px minmax(0,1fr)}main{padding:28px 23px}.topbar{padding:0 23px}.finance-grid{grid-template-columns:1fr}.grid-two{gap:14px}.card{padding:20px}}
@media(max-width:700px){.auth-shell{grid-template-columns:1fr}.auth-brand{padding:28px}.auth-brand h1{font-size:30px;margin:28px 0 12px}.auth-brand p{margin:0}.auth-brand small{display:none}.auth-main{padding:32px 24px}.app-shell{display:block}.side{position:static;height:auto;padding:16px 15px 0}.side .wordmark{margin:0 4px 17px}.side nav{display:flex;overflow-x:auto;gap:5px;padding-bottom:13px}.nav-button{white-space:nowrap;padding:11px 13px;font-size:13px;min-height:44px}.side-footer{display:none}.topbar{height:59px;padding:0 19px}.topbar span{font-size:11px}main{padding:24px 17px 40px}.page-head{display:block;margin-bottom:23px}.page-head .month-tools{margin-top:18px}.grid-two{grid-template-columns:1fr;gap:15px}.card{padding:19px;border-radius:14px}.hero h2{font-size:23px}.calendar{gap:4px}.day{min-height:66px;padding:7px 5px;border-radius:8px;font-size:13px}.day-count{font-size:9px}.calendar-label{font-size:10px}.calendar-card{padding:13px}.calendar-legend{font-size:11px;gap:11px}.schedule-row{grid-template-columns:1fr 1fr;gap:7px;font-size:13px}.schedule-row .person{grid-column:1/-1;padding-top:5px}.form-grid{grid-template-columns:1fr}.filters .field{min-width:130px}.section-head h2{font-size:18px}.shift-line{gap:8px}.shift-line .button{font-size:11px;padding:9px}.finance-grid{gap:12px}.metric{font-size:26px}.access-row{align-items:flex-start}.actions .button{flex-grow:1}dialog{padding:20px}}
.topbar .actions{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:10px}
@media(max-width:700px){.topbar .avatar{display:none}.topbar .refresh{font-size:12px;white-space:nowrap;padding:0 2px}.topbar>span{font-size:10px;line-height:1.5}}
@media(prefers-reduced-motion:no-preference){.card{animation:appear .22s ease-out}@keyframes appear{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
.professional-shell{display:block}.professional-shell .topbar{justify-content:flex-start}.header-nav{display:flex;gap:8px}.header-nav .nav-button{color:var(--brand);white-space:normal;text-align:center}.header-nav .nav-button.active{background:var(--soft);box-shadow:inset 0 -3px #b48750}.menu-toggle{padding:8px 12px;flex-shrink:0}.menu-toggle span{font-size:24px;color:var(--brand)}.menu-drawer{position:fixed;inset:0 auto 0 0;margin:0;padding:0;border-radius:0;width:min(320px,90vw);height:100dvh;max-height:100dvh;max-width:90vw;background:#153e42;color:white}.menu-drawer .side{position:static;height:100%;padding:32px 20px;overflow-y:auto}.menu-drawer .side nav{display:grid;overflow:visible;padding:0}.menu-drawer .side-footer{display:block;margin-top:auto}.menu-drawer .wordmark{margin:0 40px 32px 6px}.menu-close{position:absolute;right:14px;top:19px;width:44px;height:44px;border:0;border-radius:10px;background:#ffffff15;color:white;font-size:28px}.menu-drawer::backdrop{background:#102b3688}@media(max-width:700px){.professional-shell .topbar{height:auto;min-height:68px;padding:8px 12px;gap:6px}.header-nav{gap:3px;flex:1}.header-nav .nav-button{padding:10px 8px;flex:1;font-size:12px}.menu-drawer .side-footer{padding-top:16px}}
