*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Yu Gothic,sans-serif;background:linear-gradient(135deg,#fff0f6,#f3e8ff 50%,#fce4ec);color:#444;min-height:100vh}.dashboard{max-width:1200px;margin:0 auto;padding:16px}.dashboard-header{text-align:center;padding:8px 0 24px;margin-bottom:20px;position:relative}.header-illustration{position:relative;margin-bottom:-10px}.header-svg{width:100%;max-width:480px;height:auto}.header-text{position:relative}.header-icon{font-size:2.2rem;margin-bottom:4px;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.dashboard-header h1{font-size:2rem;background:linear-gradient(135deg,#e91e8c,#9b59b6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:800;letter-spacing:.05em}.dashboard-header .date{color:#b06ab3;font-size:.88rem;margin-top:6px;letter-spacing:.03em}.dashboard-grid{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px}@media (min-width:768px){.dashboard-grid{grid-template-columns:2fr 1fr}.calendar-section{grid-column:1/-1}}@media (min-width:1024px){.dashboard-grid{grid-template-columns:2fr 1fr 1fr}.calendar-section{grid-column:1/-1}}.card{background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;padding:20px;box-shadow:0 4px 16px rgba(233,30,140,.08),0 1px 4px rgba(0,0,0,.05);border:1.5px solid rgba(255,182,219,.3)}.card h2{font-size:1rem;font-weight:700;margin-bottom:16px;color:#c2185b;display:flex;align-items:center;gap:8px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.calendar-day-header{text-align:center;font-size:.75rem;font-weight:700;color:#b06ab3;padding:4px}.calendar-day-header.sun{color:#e91e8c}.calendar-day-header.sat{color:#7b1fa2}.calendar-day{height:100px;border:1px solid #fce4ec;border-radius:10px;padding:4px;background:#fff9fb;display:flex;flex-direction:column;overflow:hidden}.calendar-day.today{background:linear-gradient(135deg,#fce4ec,#f3e5f5);border-color:#e91e8c;box-shadow:0 0 0 2px rgba(233,30,140,.15)}.day-number{font-size:.8rem;font-weight:700;margin-bottom:4px;color:#555}.calendar-day.today .day-number,.day-number.sun{color:#e91e8c}.day-number.sat{color:#7b1fa2}.events-container{flex:1 1;display:flex;flex-direction:column;gap:2px;overflow:hidden;min-height:0}.event{font-size:.65rem;background:linear-gradient(135deg,#e91e8c,#9c27b0);color:white;border-radius:4px;padding:2px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;flex-shrink:0;line-height:1.6;transition:opacity .15s,transform .1s}.event:hover{opacity:.85;transform:scale(1.02)}.event-more{font-size:.6rem;color:#b06ab3;text-align:center;cursor:pointer;padding:1px 3px;border-radius:4px;flex-shrink:0;font-weight:600}.event-more:hover{background:#f3e8ff;color:#7b1fa2}.event-modal-overlay{position:fixed;inset:0;background:rgba(100,0,60,.25);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.event-modal{background:white;border-radius:24px;padding:24px 28px;max-width:360px;width:90%;box-shadow:0 12px 40px rgba(233,30,140,.2),0 2px 8px rgba(0,0,0,.08);border:2px solid #f8bbd9;animation:popIn .2s ease}@keyframes popIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.event-modal-date{font-size:.92rem;font-weight:800;color:#e91e8c;margin-bottom:14px;text-align:center;letter-spacing:.03em}.event-modal-item{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px dashed #fce4ec}.event-modal-item:last-of-type{border-bottom:none}.event-modal-time{font-size:.78rem;color:#9c27b0;font-weight:700;flex-shrink:0;min-width:48px;padding-top:1px}.event-modal-title{font-size:.9rem;color:#444;line-height:1.5}.event-modal-close{display:block;margin:18px auto 0;padding:9px 28px;background:linear-gradient(135deg,#e91e8c,#9c27b0);color:white;border:none;border-radius:999px;font-size:.85rem;cursor:pointer;font-weight:700;transition:opacity .2s,transform .1s}.event-modal-close:hover{opacity:.88;transform:scale(1.03)}.list-input-area{display:flex;gap:8px;margin-bottom:12px}.list-input-area input{flex:1 1;padding:9px 14px;border:1.5px solid #f8bbd9;border-radius:12px;font-size:.9rem;outline:none;background:#fff9fb;color:#444;transition:border-color .2s}.list-input-area input:focus{border-color:#e91e8c;background:white}.list-input-area input::placeholder{color:#dbb3c8}.list-input-area button{padding:9px 16px;background:linear-gradient(135deg,#e91e8c,#9c27b0);color:white;border:none;border-radius:12px;font-size:.9rem;cursor:pointer;font-weight:700;transition:opacity .2s,transform .1s}.list-input-area button:hover{opacity:.88;transform:scale(1.03)}.list-items{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto}.list-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;background:#fff5f9;border:1px solid #fce4ec;transition:background .2s}.list-item:hover{background:#fce4ec}.list-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#e91e8c}.list-item span{flex:1 1;font-size:.9rem}.list-item.completed span{text-decoration:line-through;color:#ccc}.list-item .delete-btn{background:none;border:none;color:#f8bbd9;cursor:pointer;font-size:1rem;padding:2px 6px;border-radius:6px;transition:color .2s,background .2s}.list-item .delete-btn:hover{color:#e91e8c;background:#fce4ec}.loading{color:#b06ab3;padding:20px;font-size:.9rem}.error,.loading{text-align:center}.error{color:#c62828;padding:10px;font-size:.85rem;background:#fce4ec;border-radius:10px}.weekly-quote{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:10px 20px;background:rgba(255,255,255,.75);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1.5px solid rgba(255,182,219,.4);border-radius:999px;box-shadow:0 2px 10px rgba(233,30,140,.08);max-width:600px}.quote-icon{font-size:1.1rem;flex-shrink:0}.quote-text{font-size:.82rem;color:#9c27b0;font-weight:600;letter-spacing:.02em;line-height:1.5}