*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{color:#1e1b4b;-webkit-user-select:none;user-select:none;background:#1e1b4b;min-height:100dvh;padding-bottom:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{background:#f5f3ff;flex-direction:column;max-width:430px;min-height:100dvh;margin:0 auto;display:flex;position:relative}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}.header{color:#fff;z-index:10;background:#5b21b6;justify-content:center;align-items:center;gap:10px;padding:8px 20px;display:flex;position:sticky;top:0;overflow:visible}.header-brand{align-items:center;gap:8px;margin-left:32px;display:flex;position:relative}.header-mascot{z-index:20;filter:drop-shadow(0 0 6px #8b5cf680);pointer-events:none;width:80px;height:80px;animation:3s ease-in-out infinite mascot-glow,4s ease-in-out infinite mascot-breathe;position:absolute;top:2px;left:-56px;transform:rotate(-10deg)}@keyframes mascot-breathe{0%{transform:rotate(-10deg)scale(1)}25%{transform:rotate(-6deg)scale(1.04)}50%{transform:rotate(-12deg)scale(1.06)}75%{transform:rotate(-8deg)scale(1.03)}to{transform:rotate(-10deg)scale(1)}}@keyframes mascot-glow{0%,to{filter:drop-shadow(0 0 4px #8b5cf64d)}50%{filter:drop-shadow(0 0 12px #8b5cf6b3)}}.header h1{letter-spacing:2px;text-shadow:0 2px 4px #0003;font-family:Nunito,sans-serif;font-size:30px;font-weight:800}.header h1 .accent{color:#f9a8d4;font-size:34px}.header h1 .accent2{color:#c4b5fd;letter-spacing:-1px}.nav{background:#fff;border-bottom:1px solid #e9e5f5;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.nav-btn{color:#5b21b6;cursor:pointer;background:0 0;border:2px solid #5b21b6;border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;font-weight:700;transition:transform .25s cubic-bezier(.34,1.56,.64,1),background .1s,color .1s,box-shadow .15s;display:flex;box-shadow:0 2px 4px #5b21b626}.nav-btn:active{color:#fff;background:#5b21b6;transform:scale(.88);box-shadow:0 0 #5b21b600}.month-title{text-transform:capitalize;font-size:22px;font-weight:600}.weekdays{background:#fff;grid-template-columns:repeat(7,1fr);padding:14px 6px 8px;display:grid}.weekday{text-align:center;color:#7c3aed;padding:4px;font-size:14px;font-weight:400}.days{isolation:isolate;background:#fff;grid-template-columns:repeat(7,1fr);gap:5px;padding:5px 6px 20px;display:grid}.day{aspect-ratio:1;cursor:default;border:2.5px solid #0000;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:18px;font-weight:500;transition:background .15s,border-color .15s,transform .1s;display:flex}.day.empty{cursor:default}.day-num{line-height:1.1}.day-label{opacity:.7;text-align:center;text-transform:lowercase;justify-content:center;align-items:center;font-size:11px;font-weight:600;line-height:1;display:flex}.day-label svg{display:block}.edit-mode .day:not(.empty){cursor:pointer}.edit-mode .day:not(.empty):active{transform:scale(.92)}.edit-mode .day:not(.empty):after{content:"";opacity:.4;pointer-events:none;border:2px dashed #7c3aed;border-radius:14px;position:absolute;inset:0}.edit-mode .day{position:relative}.day.phase-day{color:#fff;background:#8b5cf6;font-weight:700}.day.phase-night{color:#fff;background:#312e81;font-weight:700}.day.phase-rest{color:#6b7280;background:#ede9fe}.day.phase-off{color:#374151;background:#f9fafb}.weekday:nth-child(6),.weekday:nth-child(7){color:#dc143c;font-weight:800}.day.today{border-color:#ef4444;box-shadow:0 0 0 2px #ef4444}.day.today.pulse{z-index:1;animation:.6s ease-out pulse}@keyframes pulse{0%{box-shadow:0 0 0 2px #ef4444}40%{box-shadow:0 0 0 10px #ef444459}to{box-shadow:0 0 0 2px #ef4444}}.sheet-overlay{z-index:200;background:0 0;justify-content:center;align-items:flex-end;transition:background .3s;display:flex;position:fixed;inset:0}.sheet-overlay.open{background:#0006}.sheet{padding:12px 20px calc(env(safe-area-inset-bottom,16px) + 20px);background:#fff;border-radius:20px 20px 0 0;width:100%;max-width:480px;transition:transform .3s cubic-bezier(.32,.72,0,1);transform:translateY(100%)}.sheet-overlay.open .sheet{transform:translateY(0)}.sheet-handle{background:#d1d5db;border-radius:2px;width:36px;height:4px;margin:0 auto 16px}.sheet-title{color:#1e1b4b;margin-bottom:8px;font-size:20px;font-weight:700}.sheet-text{color:#6b7280;margin-bottom:20px;font-size:15px;line-height:1.4}.sheet-btn{cursor:pointer;border:none;border-radius:14px;width:100%;margin-bottom:8px;padding:16px;font-size:17px;font-weight:600;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .15s;display:block}.sheet-btn:active{transform:scale(.96)}.sheet-btn-primary{color:#fff;background:#5b21b6}.sheet-btn-secondary{color:#374151;background:#f3f4f6}.phase-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.phase-pick{cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:20px 16px;font-size:16px;font-weight:700;transition:opacity .15s,transform .1s;display:flex}.phase-pick svg{flex-shrink:0}.phase-pick:active{transform:scale(.92);box-shadow:inset 0 1px 3px #00000026}.phase-pick.phase-day{color:#fff;background:#8b5cf6}.phase-pick.phase-night{color:#fff;background:#312e81}.phase-pick.phase-rest{color:#6b7280;background:#ede9fe}.phase-pick.phase-off{color:#374151;background:#f3f4f6;border:1px solid #e5e7eb}.bottom-bar{z-index:100;width:100%;padding:12px 20px calc(env(safe-area-inset-bottom,8px) + 12px);z-index:10;background:#f5f3ff;flex-direction:column;gap:8px;margin-top:auto;display:flex;position:sticky;bottom:0}.action-btn{cursor:pointer;border:none;border-radius:14px;width:100%;padding:16px;font-size:16px;font-weight:600;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .15s;display:block;box-shadow:0 2px 8px #5b21b626}.action-btn:active{transform:scale(.96);box-shadow:0 0 2px #5b21b61a}.action-btn-setup{color:#5b21b6;background:#ede9fe;border:2px solid #5b21b6}.action-btn-cancel{color:#dc2626;background:#fef2f2}.stats{text-align:center;color:#1e1b4b;padding:16px 20px;font-size:16px;font-weight:500}.badge{color:#5b21b6;background:#ede9fe;border-radius:10px;justify-content:center;align-items:center;min-width:28px;padding:4px 12px;font-size:14px;font-weight:600;display:inline-flex}.today-btn{color:#fff;cursor:pointer;background:#5b21b6;border:none;border-radius:14px;width:100%;padding:16px;font-size:16px;font-weight:600;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .15s;display:block;box-shadow:0 4px 12px #5b21b64d}.today-btn:active{background:#4c1d95;transform:scale(.95);box-shadow:0 1px 4px #5b21b633}
