*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f6f9;color:#20252b}body.dark{background:#12161b;color:#eee}header{height:82px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;z-index:5;border-bottom:1px solid #ddd}body.dark header,body.dark .tabs{background:#1b2026;color:#eee}h1{font-size:28px;margin:0}.icon{border:0;background:transparent;font-size:30px;padding:8px}.tabs{display:flex;background:#fff;border-bottom:1px solid #ddd;position:sticky;top:82px;z-index:4}.tabs button{flex:1;border:0;background:transparent;padding:18px 4px;font-size:18px;color:#666}.tabs button.active{color:#1976d2;border-bottom:4px solid #1976d2}.page{padding:24px;max-width:760px;margin:auto}.card{background:#fff;border-radius:20px;padding:22px;margin-bottom:18px;box-shadow:0 3px 15px #00000010}body.dark .card,body.dark .modalbox{background:#1d232a;color:#eee}body.dark input,body.dark select,body.dark textarea{background:#12161b;color:#eee;border-color:#555}.title{font-size:26px;margin:0 0 12px}.muted{color:#777}.btn{border:0;border-radius:13px;padding:15px 18px;font-size:17px;cursor:pointer}.primary{background:#1976d2;color:#fff}.green{background:#159447;color:#fff}.red{background:#dc3545;color:#fff}.gray{background:#e9ecef;color:#222}.row{display:flex;gap:10px;flex-wrap:wrap}.row>*{flex:1;min-width:130px}label{display:block;font-weight:bold;margin:14px 0 7px}input,select,textarea{width:100%;padding:14px;border:1px solid #ccc;border-radius:12px;font-size:16px}textarea{min-height:90px}.summary{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.stat{padding:18px;border-radius:18px;background:#fff;box-shadow:0 3px 15px #0000000b}.stat b{display:block;font-size:24px;margin-top:6px}body.dark .stat{background:#1d232a}.shift{border-left:5px solid #1976d2}.shift .date{font-weight:bold;font-size:19px;color:#1976d2}.tag{display:inline-block;padding:5px 10px;border-radius:12px;background:#e9f7ef;color:#14763b;font-size:12px;margin-left:6px}.tag.night{background:#eeeafa;color:#56489a}.calendar-head{display:flex;align-items:center;justify-content:space-between}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.dow{text-align:center;font-weight:bold;color:#777;padding:8px 0}.day{min-height:48px;border:0;border-radius:10px;background:#f0f2f5;font-size:15px}.day.worked{background:#cfeedd;color:#0d7137;font-weight:bold}.day.today{outline:3px solid #1976d2}.day.empty{visibility:hidden}.day.hasopen{background:#d8eaff}.drawer{position:fixed;top:82px;left:0;background:#fff;width:270px;z-index:20;box-shadow:4px 8px 20px #0003;padding:12px;border-radius:0 0 14px 0}.drawer button{display:block;width:100%;padding:15px;text-align:left;border:0;background:transparent;font-size:16px}.hidden{display:none!important}.modal{position:fixed;inset:0;background:#0008;z-index:50;display:flex;align-items:center;justify-content:center;padding:18px}.modalbox{background:#fff;border-radius:18px;max-width:620px;width:100%;max-height:90vh;overflow:auto;padding:22px}.modalbox h2{margin-top:0}.monthnav{display:flex;gap:10px;align-items:center}.monthnav button{border:0;background:#e9ecef;border-radius:10px;padding:10px 14px}.danger{color:#b4232f}.notice{padding:14px;border-radius:12px;background:#fff3cd;color:#6b5200;margin-bottom:14px}body.dark .notice{background:#4b3c0d;color:#ffe59a}@media(max-width:520px){.page{padding:16px}.tabs button{font-size:15px}.summary{grid-template-columns:1fr 1fr}h1{font-size:25px}}
