#calendar{display:flex;position:relative}#calendar-title{align-items:center;background:#FFF9C4;display:flex;height:40px;justify-content:center;left:0;margin:0 auto;position:absolute;right:0;top:20px;width:240px}#calendar-title .calendar-title-text{color:#222;font-size:.95em;font-weight:500;text-align:center}#calendar-title .calendar-title-edit{cursor:pointer;display:inline-block;height:25px;margin-left:10px;position:relative;width:22px}#calendar-title .calendar-title-edit img{cursor:pointer;left:0;position:absolute;top:-10px;width:40px}#calendar-edit{background:rgba(255,255,255,.8);height:100%;text-align:center;top:0;width:100%;z-index:100}#calendar-edit,#calendar-edit .form{display:block;left:0;position:absolute}#calendar-edit .form{background:#FEFEFE;border:1px solid #ddd;border-radius:10px;min-height:170px;margin:0 auto;max-width:500px;padding:20px;right:0;text-align:left;top:10%;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-select:none;width:320px}#calendar-edit .form .iconBack{background:#FDD835;border-radius:100px;cursor:pointer;height:40px!important;padding:2px 0 2px 2px;position:absolute;right:0;transform:rotate(180deg);top:-20px;width:40px!important;z-index:2}#calendar-edit .form input{color:#222;cursor:default;font-size:1em;height:20px;list-style-type:none;margin:10px 10px 0 0;opacity:1;padding:10px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:calc(100% - 27px)}#calendar-edit .form .button,#calendar-edit .form input{background:#FFF;border:1px solid #fdd835;border-radius:10px;display:inline-block}#calendar-edit .form .button{cursor:pointer;float:right;font-size:.9em;margin:10px 5px 5px 0;padding:8px 10px;text-align:center}#calendar-edit .form .button.update{width:90px}#calendar-edit .form .share-manager{font-size:.9em;margin-top:28px;text-align:left}#calendar-edit .form .share-manager-label{color:#222;font-weight:500;margin:0 0 8px}#calendar-edit .form .share-add{align-items:center;display:flex;gap:8px}#calendar-edit .form .share-add input{cursor:text;flex:1 1;margin:0;-webkit-user-select:text;-moz-user-select:text;user-select:text;width:auto}#calendar-edit .form .button.share-add-button{float:none;margin:0;min-width:48px}#calendar-edit .form .share-message{font-size:.82em;margin:8px 0 0}#calendar-edit .form .share-message.error{color:#C62828}#calendar-edit .form .share-message.info{color:#8D6E00}#calendar-edit .form .share-message.success{color:#2E7D32}#calendar-edit .form .share-avatars{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.share-avatar{align-items:center;background:#EEE;border:2px solid #fdd835;border-radius:100px;display:flex;height:44px;justify-content:center;overflow:visible;position:relative;width:44px}.share-avatar img{border-radius:100px;height:100%;object-fit:cover;width:100%}.share-avatar .share-avatar-initial{color:#555;font-size:1.1em;font-weight:600}.share-avatar.pending{border-style:dashed;opacity:.85}.share-avatar .share-avatar-remove{align-items:center;background:#222;border-radius:100px;color:#FFF;cursor:pointer;display:flex;font-size:.8em;height:16px;justify-content:center;line-height:1;position:absolute;right:-4px;top:-4px;width:16px}#calendar-title.has-select{justify-content:space-between;padding:0 6px 0 12px}#calendar-select{cursor:pointer;flex:1 1;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}#calendar-select .calendar-select-header{align-items:center;display:flex;gap:6px;justify-content:center}#calendar-select .calendar-select-title{color:#222;font-size:.95em;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#calendar-select .calendar-select-caret{color:#555;font-size:.75em}#calendar-select .calendar-select-options{background:#FFF;border:1px solid #fdd835;border-radius:8px;box-shadow:0 4px 10px rgba(0,0,0,.12);left:0;overflow:hidden;position:absolute;right:0;top:34px;z-index:200}#calendar-select .calendar-select-option{color:#222;font-size:.9em;overflow:hidden;padding:10px 12px;text-align:left;text-overflow:ellipsis;white-space:nowrap}#calendar-select .calendar-select-option:hover{background:#FFF9C4}#calendar-select .calendar-select-option.selected{background:#FFF9C4;font-weight:600}#calendar-year{-webkit-overflow-scrolling:touch;align-items:flex-start;display:flex;gap:20px;margin:84px 0 0;overflow-x:auto;overflow-y:hidden;padding:4px 50px 28px;scroll-snap-type:x mandatory;scrollbar-color:#FDD835 transparent;scrollbar-width:thin;width:100%}#calendar-year::-webkit-scrollbar{height:8px}#calendar-year::-webkit-scrollbar-track{background:transparent}#calendar-year::-webkit-scrollbar-thumb{background-color:#FDD835;border-radius:20px}#calendar-year .month-group{display:flex;flex:0 0 auto;flex-direction:column}#calendar-year .month-weeks{display:flex;gap:20px}#calendar-year .week{flex:0 0 auto;scroll-snap-align:center}#calendar-year .week-month-label{color:#000;font-size:1.1em;font-style:normal;font-weight:600;left:0;margin:0 0 15px;padding:0;position:-webkit-sticky;position:sticky;text-transform:uppercase;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:-moz-fit-content;width:fit-content}#calendar-year .week-grid{display:grid;grid-gap:10px;gap:10px;grid-auto-rows:180px;grid-template-columns:repeat(4,80px)}#calendar-year .year-day{background-color:#FEFEFE;background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #ddd;box-sizing:border-box;justify-content:center;overflow:hidden;position:relative;transition:box-shadow .2s ease,background .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}#calendar-year .year-day,#calendar-year .year-day .day-label{align-items:center;display:flex;flex-direction:column;gap:2px}#calendar-year .year-day .weekday{color:#999;font-size:.65em;font-weight:500;letter-spacing:.03em;text-transform:uppercase}#calendar-year .year-day .date-num{color:#222;font-size:1.2em;font-weight:500}#calendar-year .year-day.muted{background-color:#FAFAFA}#calendar-year .year-day.muted .date-num,#calendar-year .year-day.muted .weekday{color:#CCC}#calendar-year .year-day.interactive:hover{box-shadow:0 4px 10px rgba(0,0,0,.08)}#calendar-year .year-day.draggedOver{background-color:#FFF59D;background-image:none}#calendar-year .year-day.active{align-items:flex-start;border:none;cursor:pointer;justify-content:flex-start;padding:8px}#calendar-year .year-day.active:before{background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,0));content:"";height:44px;left:0;pointer-events:none;position:absolute;right:0;top:0}#calendar-year .year-day.active .day-label{flex-direction:row;gap:4px;position:relative;z-index:1}#calendar-year .year-day.active .date-num,#calendar-year .year-day.active .weekday{color:#222;font-size:.75em;font-weight:600}#calendar-year .year-day.shopping-note{background:#FDD835;border:none;border-radius:0 0 22px 0;box-shadow:2px 3px 6px rgba(0,0,0,.12);gap:6px;padding:10px 8px;text-align:center;transform:rotate(-1.2deg)}#calendar-year .year-day.shopping-note.interactive{cursor:pointer}#calendar-year .year-day.shopping-note.interactive:hover{box-shadow:2px 6px 12px rgba(0,0,0,.18)}#calendar-year .year-day.shopping-note.empty{background:#FFF9C4;box-shadow:1px 2px 4px rgba(0,0,0,.06);opacity:.85}#calendar-year .year-day.shopping-note.empty:hover{opacity:1}#calendar-year .shopping-note .shopping-note-label{align-items:center;display:flex;flex-direction:column;gap:3px}#calendar-year .shopping-note .shopping-note-title{color:#4A3F00;font-size:.62em;font-weight:700;letter-spacing:.08em}#calendar-year .shopping-note .shopping-note-week{color:#6B5C00;font-size:.72em;font-weight:500}#calendar-year .shopping-note .shopping-note-count{color:#7A6A00;font-size:.62em;font-weight:500}.shopping-overlay{background:rgba(255,255,255,.85);bottom:0;left:0;overflow-x:hidden;overflow-y:auto;position:fixed;right:0;top:0;z-index:300}.shopping-sheet{background:#FFF9C4;border-radius:0 0 30px 0;box-shadow:0 8px 24px rgba(0,0,0,.18);box-sizing:border-box;margin:60px auto 40px;max-width:420px;padding:24px 26px 30px;position:relative;text-align:left;width:calc(100% - 40px)}.shopping-sheet .iconBack{background:#FDD835;border-radius:100px;cursor:pointer;height:40px;padding:2px 0 2px 2px;position:absolute;right:-10px;top:-20px;transform:rotate(180deg);width:40px;z-index:2}.shopping-sheet h3{color:#222;font-size:1.2em;font-weight:600;margin:0}.shopping-sheet .shopping-sheet-sub{color:#7A6A00;font-size:.85em;margin:4px 0 0}.shopping-sheet .shopping-for{border-bottom:1px solid #ede3b0;list-style:none;margin:14px 0 0;padding:0 0 12px}.shopping-sheet .shopping-for li{color:#6B5C00;display:flex;font-size:.85em;gap:12px;justify-content:space-between;padding:3px 0}.shopping-sheet .shopping-for .shopping-for-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-sheet .shopping-for .shopping-for-people{flex:0 0 auto;opacity:.75}.shopping-sheet .shopping-for li.adjusted .shopping-for-people{color:#222;font-weight:600;opacity:1}.shopping-sheet .shopping-sheet-message{color:#6B5C00;font-size:.9em;margin:22px 0 0}.shopping-sheet .shopping-loading{margin:30px 0 10px;text-align:center}.shopping-sheet .shopping-loading h4,.shopping-sheet .shopping-loading p{color:#222;font-size:.95em;font-weight:400;margin:0;padding:0}.shopping-sheet .shopping-loading h4{font-weight:500;margin:0 0 2px}.shopping-sheet .shopping-loading img{display:block;margin:5px auto 0;width:50px}.shopping-sheet .shopping-section{margin:24px 0 0}.shopping-sheet .shopping-section h4{align-items:baseline;border-bottom:1px solid #e8d77a;color:#222;display:flex;font-size:.95em;font-weight:600;gap:8px;margin:0 0 8px;padding:0 0 6px}.shopping-sheet .shopping-section-hint{color:#8D7C1F;font-size:.8em;font-weight:400}.shopping-sheet .shopping-section ul{list-style:none;margin:0;padding:0}.shopping-sheet .shopping-section li{align-items:baseline;border-bottom:1px solid rgba(0,0,0,.05);color:#222;cursor:pointer;display:flex;font-size:.92em;gap:12px;justify-content:space-between;transition:color .15s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:5px 0}.shopping-sheet .shopping-section li:last-child{border-bottom:none}.shopping-sheet .shopping-section li.done{color:#9A9A9A}.shopping-sheet .shopping-section li.done .shopping-item-amount,.shopping-sheet .shopping-section li.done .shopping-item-name{text-decoration:line-through;-webkit-text-decoration-color:#B9A93A;text-decoration-color:#B9A93A;text-decoration-thickness:1px}.shopping-sheet .shopping-section li.done .shopping-item-amount{color:#A99C55}.shopping-sheet .shopping-item-remove{color:#B9A93A;flex:0 0 auto;font-size:1.1em;line-height:1;padding:0 2px 0 10px}.shopping-sheet .shopping-item-remove:hover{color:#7A6A00}.shopping-sheet .shopping-section li.done .shopping-item-remove{color:#C9C9C9}.shopping-sheet .shopping-add{align-items:center;background:#FFF;border:1px solid #fdd835;border-radius:10px;display:flex;gap:5px;margin:26px 0 0;padding:10px 10px 7px}.shopping-sheet .shopping-add input{background:transparent;border:0;border-radius:0;box-sizing:border-box;color:#222;flex:1 1;font-family:Poppins,sans-serif;font-size:.9em;min-width:0;outline:none;padding:0}.shopping-sheet .shopping-add input::placeholder{color:#777;opacity:1}.shopping-sheet .shopping-add:focus-within{outline:2px solid #FDD835;outline-offset:-2px}.shopping-sheet .shopping-add .button{background:#FDD835;border:none;border-radius:10px;cursor:pointer;flex:0 0 auto;font-family:Poppins,sans-serif;font-size:.95em;font-weight:500;margin:0;padding:5px 10px}.shopping-sheet .shopping-add .button:disabled{cursor:default;opacity:.45}.shopping-sheet .shopping-item-amount{color:#6B5C00;flex:0 0 auto;font-size:.88em;white-space:nowrap}