@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Space+Grotesk:wght@500;700&display=swap');
:root{--ink:#17221f;--muted:#697570;--paper:#f5f6f1;--line:#dce3dd;--green:#1f8a63;--yellow:#e9b949;--red:#d95757;--blue:#3984c6;--white:#fff}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 90% 0,#d9ebe1 0,transparent 30%),var(--paper);color:var(--ink);font:15px 'DM Sans',sans-serif}h1,h2,strong{font-family:'Space Grotesk',sans-serif}h1{font-size:clamp(1.8rem,4vw,3rem);line-height:1.05;margin:4px 0 0}.topbar{display:flex;justify-content:space-between;align-items:center;padding:20px max(20px,calc((100% - 1180px)/2));background:var(--ink);color:var(--white)}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:#9cb6a8}.topbar strong{font-size:22px}.user-menu{display:flex;gap:16px;align-items:center;font-size:13px}.container{max-width:1180px;margin:auto;padding:34px 20px 60px}.page-heading,.status-line,.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.week-picker,.day-action{display:flex;gap:8px}input{width:100%;padding:12px;border:1px solid var(--line);border-radius:5px;background:#fff;font:inherit}button{border:0;border-radius:5px;padding:12px 16px;background:var(--green);color:#fff;font:500 14px inherit;cursor:pointer}.link-button{padding:0;background:none;text-decoration:underline}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:30px 0 18px}.stats div{background:var(--white);border:1px solid var(--line);padding:18px}.stats b{display:block;font:700 28px 'Space Grotesk';color:var(--green)}.stats span,.section-heading span{color:var(--muted);font-size:13px}.status-line{justify-content:flex-start;margin:18px 0}.badge{padding:5px 10px;border-radius:20px;font-size:12px;background:#e6eee9}.badge.archived{background:#dfe5e1}.archive-button,.small-button{padding:8px 10px;font-size:12px;background:var(--ink)}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day-card{min-height:125px;background:var(--white);border:1px solid var(--line);padding:14px;transition:.2s}.day-card:hover,.day-card.selected{border-color:var(--green);transform:translateY(-2px)}.day-card.closed{background:#e9ece8;color:#88918d}.day-title{display:block;color:inherit;text-decoration:none}.day-title span{display:block;font-size:12px;color:var(--muted)}.day-title b{display:block;margin-top:7px;font-size:16px}.open-label,.closed-label{font-size:12px;margin-top:24px}.open-label{color:var(--green)}.day-action{margin-top:12px}.timeline{margin-top:30px;background:var(--white);border:1px solid var(--line);padding:22px;overflow-x:auto}.section-heading{border-bottom:1px solid var(--line);padding-bottom:14px}.person-row{display:flex;min-width:790px;border-bottom:1px solid #edf0ed;padding:12px 0;align-items:center}.person-row>strong{width:170px;font-size:15px}.person-row small{display:block;color:var(--muted);font:12px 'DM Sans'}.hour-row,.hours-labels{display:grid;grid-template-columns:repeat(12,45px);gap:4px}.slot-form{width:45px;height:42px}.slot{width:45px;height:42px;padding:0;border:1px solid var(--line);background:#eef1ee;color:#98a39e;font-size:17px}.slot.work{background:#b9e4ce;color:#176643}.slot.vacation{background:#fae3a1;color:#806216}.slot.sick{background:#f2b6b6;color:#8d2929}.slot.special{background:#a9d0ef;color:#17527b}.hours-labels{margin-left:174px;margin-top:10px;font-size:10px;color:var(--muted)}.notice{padding:12px 15px;margin-bottom:18px;border-left:4px solid var(--green);background:#e3f1e8}.notice.error{border-color:var(--red);background:#f9e3e3}.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-box{width:min(420px,100%);background:#fff;padding:34px;border:1px solid var(--line);box-shadow:0 15px 50px #32423818}.auth-box h1{margin-bottom:15px}.auth-box label{display:block;margin:15px 0 5px}.auth-box button{width:100%;margin-top:12px}@media(max-width:760px){.container{padding:24px 14px}.page-heading{display:block}.week-picker{margin-top:18px}.week-grid{grid-template-columns:repeat(2,1fr)}.stats{gap:6px}.stats div{padding:12px}.stats b{font-size:22px}.topbar{padding:16px 14px}.user-menu{font-size:0}.user-menu .link-button{font-size:13px}.timeline{padding:14px}.person-row>strong{width:120px}.hours-labels{margin-left:124px}}
