@import "https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&family=Nanum+Myeongjo&family=Gaegu&family=Hi+Melody&family=Gamja+Flower&family=Stylish&family=Poor+Story&family=Single+Day&family=Noto+Sans+KR:wght@300;400;500;700&display=swap";@font-face{font-family:강원교육모두Bold;src:url(/fonts/GangwonEduAll-Bold.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;height:100%;font-family:Noto Sans KR,sans-serif;overflow:hidden}#root{width:100%;height:100%}.react-grid-layout{transition:height .2s;position:relative}.react-grid-item{transition:left .2s,top .2s,width .2s,height .2s}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{z-index:1;will-change:width, height;transition:none}.react-grid-item.react-draggable-dragging{z-index:3;will-change:transform;transition:none}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{opacity:.2;z-index:2;-webkit-user-select:none;user-select:none;background:red;transition-duration:.1s}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{opacity:0;width:20px;height:20px;position:absolute}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";border-bottom:2px solid #0006;border-right:2px solid #0006;width:5px;height:5px;position:absolute;bottom:3px;right:3px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:100% 100%;background-repeat:no-repeat;background-origin:content-box;width:20px;height:20px;padding:0 3px 3px 0;position:absolute}.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.widget-card{border-radius:var(--radius);background:0 0;border:1px solid #0000;flex-direction:column;width:100%;height:100%;transition:border-color .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden}.widget-card--card{-webkit-backdrop-filter:blur(12px);background:#ffffff0f;border-color:#ffffff1a}.widget-card--editing{cursor:default;border-color:#88d8b040}.widget-card--editing:hover{border-color:#88d8b080;box-shadow:0 0 24px #88d8b01a}.widget-drag-handle{z-index:4;cursor:grab;-webkit-user-select:none;user-select:none;color:var(--accent-mint);justify-content:flex-start;align-items:flex-start;padding:6px;display:flex;position:absolute;inset:0}.widget-drag-handle:active{cursor:grabbing}.widget-drag-handle svg{opacity:.4;filter:drop-shadow(0 0 3px #0006);flex-shrink:0}.widget-editing .react-resizable-handle{z-index:6}.widget-remove-btn{z-index:6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#ff6464d9;cursor:pointer;background:#ff646426;border:1px solid #ff64644d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:.7rem;line-height:1;transition:all .2s;display:flex;position:absolute;top:6px;right:6px}.widget-remove-btn:hover{color:#ff6464;background:#ff646440;border-color:#ff646480;transform:scale(1.15)}.widget-card__body{flex-direction:column;flex:1;min-height:0;padding:4px 8px;display:flex;overflow:hidden}.mood-tracker{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.mood-header{flex-shrink:0;justify-content:center;align-items:center;padding:.5vh .3vw;display:flex}.mood-title{font-family:var(--deco-font);color:var(--chalk-dim);letter-spacing:-.02em;font-size:clamp(1.3rem,3.5vh,2rem)}.mood-grid-wrapper{-ms-overflow-style:none;scrollbar-width:none;touch-action:pan-x;flex:1;justify-content:center;width:100%;display:flex;overflow:auto hidden}.mood-grid-wrapper::-webkit-scrollbar{display:none}.mood-grid{flex-direction:column;justify-content:center;align-items:stretch;gap:1.2vh;width:100%;height:100%;padding:.5vh 0;display:flex}.mood-row{flex:none;justify-content:center;align-items:center;gap:.4vw;display:flex}.mood-item{background:var(--glass-bg);border:1px solid var(--glass-border);min-height:5.5vh;transition:all var(--transition);box-sizing:border-box;touch-action:manipulation;border-radius:3vh;flex-shrink:0;justify-content:center;align-items:center;gap:.6vw;padding:1.1vh 1vw;display:flex;position:relative}.mood-item:hover{background:var(--glass-hover);transform:scale(1.03);box-shadow:0 4px 16px #0003}.mood-student-name{font-family:var(--body-font);color:var(--chalk);white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:clamp(.7rem,1.8vh,1rem)}.mood-icon-wrapper{cursor:pointer;width:clamp(1rem,3.5vh,2.5rem);height:clamp(1rem,3.5vh,2.5rem);transition:transform var(--transition);touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex-shrink:0}.mood-icon-wrapper:hover{transform:scale(1.15)}.mood-icon-wrapper svg{pointer-events:none;width:100%;height:100%;display:block}.mood-empty{color:var(--chalk-dim);text-align:center;align-self:center;width:100%;padding:2vh 0;font-size:.85rem}.mood-selector{-webkit-backdrop-filter:blur(12px);z-index:500;background:#000c;border:1px solid #ffffff26;border-radius:30px;flex-direction:row;gap:10px;padding:8px 12px;display:none;position:fixed;box-shadow:0 8px 32px #0006}.mood-selector.open{animation:.2s ease-out moodPopUp;display:flex}.mood-selector .mood-icon-wrapper{width:36px;height:36px;transition:transform .15s}.mood-selector .mood-icon-wrapper:hover{transform:scale(1.25)}@keyframes moodPopUp{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.school-selected{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.school-selected-info{flex-direction:column;gap:2px;min-width:0;display:flex}.school-selected-name{color:var(--chalk);font-size:.95rem;font-weight:700}.school-selected-sub{color:var(--chalk-faint);font-size:.78rem}.school-remove-btn{border-radius:var(--radius-sm);border:1px solid var(--glass-border);color:var(--chalk-dim);cursor:pointer;font-size:.82rem;font-family:var(--body-font);background:0 0;flex-shrink:0;padding:6px 14px;transition:all .2s}.school-remove-btn:hover{background:var(--glass-hover);color:var(--chalk)}.school-results{flex-direction:column;gap:6px;max-height:220px;margin-top:8px;display:flex;overflow-y:auto}.school-result-item{text-align:left;border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--chalk);cursor:pointer;font-family:var(--body-font);flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;transition:all .2s;display:flex}.school-result-item:hover{background:var(--glass-hover);border-color:var(--accent-mint)}.school-result-name{font-size:.92rem;font-weight:600}.school-result-sub{color:var(--chalk-faint);font-size:.76rem}.school-noresult{color:var(--chalk-faint);text-align:center;margin-top:8px;padding:10px;font-size:.85rem}.save-status{text-align:center;color:var(--accent-mint);margin-top:10px;font-size:.85rem;font-weight:600}.settings-backdrop{-webkit-backdrop-filter:blur(8px);z-index:200;background:#0009;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.settings-modal{background:linear-gradient(160deg, color-mix(in srgb, var(--board-bg1) 95%, white), color-mix(in srgb, var(--board-bg2) 98%, white));-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);width:100%;max-width:680px;max-height:92vh;color:var(--chalk);border-radius:24px;padding:22px 28px;animation:.25s cubic-bezier(.34,1.56,.64,1) modalPop;overflow-y:auto;box-shadow:0 32px 100px #0000004d}.settings-modal::-webkit-scrollbar{width:6px}.settings-modal::-webkit-scrollbar-track{background:0 0}.settings-modal::-webkit-scrollbar-thumb{background:var(--chalk-faint);border-radius:3px}.settings-modal::-webkit-scrollbar-thumb:hover{background:var(--chalk-dim)}@keyframes modalPop{0%{opacity:0;transform:scale(.92)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.settings-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.settings-title{font-size:1.4rem;font-weight:700;font-family:var(--body-font);letter-spacing:-.02em}.settings-close{border:1.5px solid var(--glass-border);background:var(--glass-bg);width:36px;height:36px;color:var(--chalk-dim);cursor:pointer;transition:all var(--transition);border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.settings-close:hover{background:var(--glass-hover);border-color:var(--chalk-faint);color:var(--chalk);transform:rotate(90deg)}.tab-bar{background:var(--glass-bg);border-radius:14px;gap:8px;margin-bottom:28px;padding:4px;display:flex}.tab-btn{border:1.5px solid var(--glass-border);color:var(--chalk-dim);font-family:var(--body-font);cursor:pointer;transition:all var(--transition);background:0 0;border-radius:12px;flex:1;padding:12px 8px;font-size:.88rem;font-weight:500}.tab-btn:hover{border-color:var(--chalk-faint);background:var(--glass-hover)}.tab-btn.active{background:var(--accent-yellow);border-color:var(--accent-yellow);color:#fff;font-weight:700}.tab-content{flex-direction:column;gap:20px;display:flex}.tab-content--letter{gap:12px}.setting-section{flex-direction:column;gap:12px;display:flex}.setting-section--compact{gap:8px}.section-label{align-items:center;gap:8px;font-size:.95rem;font-weight:600;display:flex}.section-hint{color:var(--chalk-faint);font-size:.78rem;font-weight:500}.advanced-section{border-top:1px solid var(--glass-border);margin-top:2px;padding-top:10px}.advanced-toggle{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-sm);width:100%;color:var(--chalk-dim);font-size:.9rem;font-weight:600;font-family:var(--body-font);cursor:pointer;justify-content:space-between;align-items:center;padding:10px 14px;transition:all .2s;display:flex}.advanced-toggle:hover{background:var(--glass-hover);color:var(--chalk)}.advanced-hint{color:var(--chalk-faint);font-size:.78rem;font-weight:500}.advanced-chevron{font-size:.8rem;transition:transform .25s}.advanced-section.open .advanced-chevron{transform:rotate(180deg)}.advanced-body{flex-direction:column;gap:14px;padding-top:14px;animation:.2s advancedSlide;display:flex}@keyframes advancedSlide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.setting-row{background:var(--glass-bg);border-radius:var(--radius-sm);border:1px solid var(--glass-border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.setting-row-label{align-items:center;gap:8px;font-size:.92rem;font-weight:500;display:flex}.setting-row-right{align-items:center;gap:12px;display:flex}.switch-track{background:var(--chalk-faint);cursor:pointer;width:48px;height:26px;transition:background var(--transition);border-radius:13px;flex-shrink:0;position:relative}.switch-track.active{background:var(--accent-mint)}.switch-thumb{width:20px;height:20px;transition:transform var(--transition);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 2px 8px #0003}.switch-track.active .switch-thumb{transform:translate(22px)}.text-input{border-radius:var(--radius-sm);border:1.5px solid var(--glass-border);background:var(--glass-bg);width:100%;color:var(--chalk);font-size:.95rem;font-family:var(--body-font);transition:all var(--transition);box-sizing:border-box;padding:14px 18px}.text-input:focus{border-color:var(--accent-mint);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-mint) 15%, transparent);outline:none}.text-input::placeholder{color:var(--chalk-faint)}.date-input{border-radius:var(--radius-sm);border:1.5px solid var(--glass-border);background:var(--glass-bg);color:var(--chalk);font-size:.88rem;font-family:var(--body-font);transition:all var(--transition);padding:10px 14px}.date-input:focus{border-color:var(--accent-mint);outline:none}.grade-selector{flex-wrap:wrap;gap:8px;display:flex}.grade-btn{border:1.5px solid var(--glass-border);color:var(--chalk-dim);font-size:.88rem;font-family:var(--body-font);cursor:pointer;background:0 0;border-radius:20px;padding:10px 18px;transition:all .2s}.grade-btn:hover{background:var(--glass-hover);border-color:var(--chalk-faint)}.grade-btn.active{background:var(--accent-mint);border-color:var(--accent-mint);color:#fff;font-weight:600}.drop-zone{border:2px dashed var(--chalk-faint);border-radius:var(--radius-sm);text-align:center;color:var(--chalk-dim);cursor:pointer;transition:all var(--transition);background:var(--glass-bg);padding:28px 20px;font-size:.88rem}.drop-zone:hover{border-color:var(--chalk-dim);background:var(--glass-hover)}.drop-zone.drag-over{border-color:var(--accent-mint);background:color-mix(in srgb, var(--accent-mint) 8%, transparent)}.drop-zone-icon{margin-bottom:8px;font-size:1.6rem}.drop-zone-text{color:var(--chalk-faint);margin-top:4px;font-size:.82rem}.symbol-preview{border-radius:var(--radius-sm);object-fit:cover;border:2px solid var(--glass-border);width:80px;height:80px;margin:0 auto;display:block}.student-chips{flex-wrap:wrap;gap:6px;max-height:120px;padding:4px 0;display:flex;overflow-y:auto}.student-chip{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--chalk);border-radius:16px;align-items:center;gap:6px;padding:6px 12px;font-size:.82rem;display:flex}.student-chip-remove{background:var(--chalk-faint);width:16px;height:16px;color:var(--chalk-dim);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:.65rem;line-height:1;transition:all .15s;display:flex}.student-chip-remove:hover{color:#fff;background:#f4a7b966}.student-input-row{gap:8px;display:flex}.student-input-row .text-input{flex:1}.add-student-btn{border-radius:var(--radius-sm);border:1.5px solid var(--accent-mint);background:color-mix(in srgb, var(--accent-mint) 10%, transparent);color:var(--accent-mint);cursor:pointer;white-space:nowrap;padding:14px 20px;font-size:.9rem;font-weight:600;transition:all .2s}.add-student-btn:hover{background:color-mix(in srgb, var(--accent-mint) 20%, transparent)}.virtue-categories{flex-direction:column;gap:14px;display:flex}.virtue-categories--compact{gap:5px}.virtue-category{flex-direction:column;gap:8px;display:flex}.virtue-categories--compact .virtue-category{flex-direction:row;align-items:center;gap:4px}.virtue-category-label{color:var(--chalk);font-size:.8rem;font-weight:700}.virtue-categories--compact .virtue-category-label{text-align:right;flex-shrink:0;width:60px;font-size:.68rem;line-height:1.15}.virtue-row{flex-wrap:wrap;gap:6px;display:flex}.virtue-categories--compact .virtue-row{flex:1;gap:5px}.virtue-btn{border:1.5px solid var(--chalk-faint);color:var(--chalk);cursor:pointer;white-space:nowrap;font-size:.82rem;font-family:var(--body-font);background:0 0;border-radius:20px;padding:7px 14px;transition:all .2s}.virtue-categories--compact .virtue-btn{border-radius:16px;padding:4px 10px;font-size:.78rem}.virtue-btn:hover{background:var(--glass-hover);border-color:var(--chalk-faint)}.virtue-btn.active{background:var(--accent-yellow);border-color:var(--accent-yellow);color:#fff;font-weight:600}.tone-selector{flex-wrap:wrap;gap:8px;display:flex}.tone-btn{border-radius:var(--radius-sm);border:1.5px solid var(--glass-border);min-width:120px;color:var(--chalk-dim);font-family:var(--body-font);cursor:pointer;text-align:center;background:0 0;flex:1;padding:12px 14px;transition:all .2s}.tone-btn:hover{background:var(--glass-hover);border-color:var(--chalk-faint)}.tone-btn.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.tone-btn-name{margin-bottom:4px;font-size:.92rem;font-weight:600}.tone-btn-example{opacity:.7;font-size:.72rem}.font-selector{flex-wrap:wrap;gap:8px;display:flex}.font-btn{border-radius:var(--radius-sm);border:1.5px solid var(--glass-border);color:var(--chalk-dim);cursor:pointer;background:0 0;padding:10px 16px;font-size:1rem;transition:all .2s}.font-btn:hover{background:var(--glass-hover);border-color:var(--chalk-faint)}.font-btn.active{background:var(--accent-mint);border-color:var(--accent-mint);color:#fff}.font-btn--add{color:var(--chalk-faint);border-style:dashed;font-size:.85rem;font-family:var(--body-font)!important}.font-btn--add:hover{color:var(--accent-mint);border-color:var(--accent-mint)}.font-btn-remove{opacity:.5;font-size:.8rem;font-family:var(--body-font);margin-left:6px}.font-btn-remove:hover{opacity:1;color:#ff6464}.generate-btn{border-radius:var(--radius);background:linear-gradient(135deg, var(--accent-yellow) 0%, var(--accent-orange) 100%);color:#fff;width:100%;font-size:1rem;font-weight:700;font-family:var(--body-font);cursor:pointer;letter-spacing:-.01em;box-shadow:0 4px 20px color-mix(in srgb, var(--accent-yellow) 25%, transparent);border:none;margin-top:8px;padding:16px 24px;transition:all .2s}.generate-btn:hover{box-shadow:0 8px 30px color-mix(in srgb, var(--accent-yellow) 35%, transparent);transform:translateY(-2px)}.generate-btn:active{transform:translateY(0)}.routine-weekdays{flex-direction:column;gap:10px;display:flex}.routine-row{align-items:center;gap:12px;display:flex}.routine-day{border:1.5px solid var(--glass-border);width:38px;height:38px;color:var(--chalk-dim);cursor:pointer;font-size:.85rem;font-weight:600;font-family:var(--body-font);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.routine-day:hover{border-color:var(--chalk-faint)}.routine-day.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.routine-row .text-input{flex:1}.suggestion-chips{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.suggestion-chip{border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--chalk-dim);cursor:pointer;font-size:.8rem;font-family:var(--body-font);border-radius:16px;padding:7px 14px;transition:all .15s}.suggestion-chip:hover{background:var(--glass-hover);border-color:var(--chalk-faint);color:var(--chalk)}.action-buttons{gap:10px;margin-top:8px;display:flex}.save-btn{border-radius:var(--radius-sm);background:var(--accent-mint);color:#fff;font-size:.95rem;font-weight:700;font-family:var(--body-font);cursor:pointer;border:none;flex:1;padding:14px 24px;transition:all .2s}.save-btn:hover{box-shadow:0 4px 16px color-mix(in srgb, var(--accent-mint) 30%, transparent);transform:translateY(-1px)}.reset-btn{border-radius:var(--radius-sm);border:1.5px solid var(--glass-border);color:var(--chalk-dim);font-size:.95rem;font-weight:500;font-family:var(--body-font);cursor:pointer;background:0 0;padding:14px 24px;transition:all .2s}.reset-btn:hover{background:var(--glass-hover);border-color:var(--chalk-faint)}.settings-footer{border-top:1px solid var(--glass-border);flex-direction:column;align-items:center;gap:12px;margin-top:20px;padding-top:16px;display:flex}.edit-layout-inline-btn{border:1.5px solid color-mix(in srgb, var(--accent-mint) 30%, transparent);background:color-mix(in srgb, var(--accent-mint) 8%, transparent);color:var(--accent-mint);cursor:pointer;font-size:.82rem;font-weight:600;font-family:var(--body-font);border-radius:8px;padding:8px 16px;transition:all .2s}.edit-layout-inline-btn:hover{background:color-mix(in srgb, var(--accent-mint) 18%, transparent);border-color:color-mix(in srgb, var(--accent-mint) 50%, transparent)}.theme-selector{flex-wrap:wrap;gap:10px;display:flex}.theme-btn{cursor:pointer;background:0 0;border:2.5px solid #0000;border-radius:50%;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.theme-btn:hover{border-color:var(--chalk-faint)}.theme-btn.active{border-color:var(--accent-mint)}.theme-swatch{border:1.5px solid #00000026;border-radius:50%;flex-shrink:0;width:32px;height:32px;box-shadow:inset 0 0 0 1px #00000014}.theme-name{font-weight:500}.feedback-link{text-align:center}.feedback-link a{color:var(--chalk-dim);font-size:.82rem;text-decoration:none;transition:color .2s}.feedback-link a:hover{color:var(--chalk)}.login-backdrop{-webkit-backdrop-filter:blur(8px);z-index:300;background:#0009;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out loginFadeIn;display:flex;position:fixed;inset:0}@keyframes loginFadeIn{0%{opacity:0}to{opacity:1}}@keyframes loginModalPop{0%{opacity:0;transform:scale(.92)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.login-modal{background:#fafafa;border-radius:20px;flex-direction:column;align-items:center;gap:12px;width:360px;max-width:92vw;padding:40px 36px 32px;animation:.22s cubic-bezier(.34,1.56,.64,1) loginModalPop;display:flex;box-shadow:0 24px 80px #00000059}.login-icon{margin-bottom:4px;font-size:2.4rem}.login-title{color:#1a1a1a;font-size:1.35rem;font-weight:700;font-family:var(--body-font);margin:0}.login-subtitle{color:#888;font-size:.88rem;font-family:var(--body-font);margin-bottom:12px}.login-providers{flex-direction:column;gap:10px;width:100%;display:flex}.login-btn{color:#1a1a1a;cursor:pointer;width:100%;font-size:.95rem;font-weight:600;font-family:var(--body-font);box-sizing:border-box;background:#fff;border:1.5px solid #e5e8eb;border-radius:12px;align-items:center;gap:12px;padding:14px 20px;transition:all .15s;display:flex}.login-btn:hover{background:#f0f2f5;transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.login-btn:active{transform:translateY(0)}.login-btn-google{color:#1a1a1a;background:#fff;border-color:#e5e8eb}.login-btn-naver{color:#fff;background:#03c75a;border-color:#03c75a}.login-btn-naver:hover{background:#02b350;border-color:#02b350}.login-btn-iscream{color:#fff;background:#ff8555;border-color:#ff8555}.login-btn-iscream:hover{background:#f07646;border-color:#f07646}.login-btn-icon{flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.login-btn-icon svg{width:100%;height:100%}.naver-logo{font-size:1.1rem;font-weight:800;line-height:1}.iscream-logo{letter-spacing:-.02em;font-size:.85rem;font-weight:800;line-height:1}.login-cancel{color:#aaa;cursor:pointer;font-size:.88rem;font-family:var(--body-font);background:0 0;border:none;margin-top:8px;padding:10px 24px;transition:color .15s}.login-cancel:hover{color:#666}.widget-class-info{align-items:center;gap:14px;height:100%;display:flex;overflow:hidden;container-type:size}.widget-class-symbol{border:2px solid var(--accent-yellow);object-fit:cover;border-radius:50%;flex-shrink:0;width:clamp(52px,82cqh,200px);height:clamp(52px,82cqh,200px);box-shadow:0 0 12px #f5d76e26}.widget-class-name-fit{flex:1;align-items:center;min-width:0;height:100%;display:flex;overflow:hidden}.widget-class-name{font-family:var(--deco-font);color:var(--accent-yellow);text-shadow:0 0 20px #f5d76e26;white-space:nowrap;line-height:1.05}.widget-date{flex-direction:column;justify-content:center;gap:4px;height:100%;display:flex}.widget-date-fit{flex:1;align-items:center;min-height:0;display:flex;overflow:hidden}.widget-date-main{font-family:var(--deco-font);color:var(--chalk);white-space:nowrap;line-height:1.1}.widget-date-row{flex-shrink:0;align-items:center;gap:10px;display:flex}.widget-air-badge{color:var(--chalk-dim);white-space:nowrap;background:#88d8b01a;border:1px solid #88d8b033;border-radius:20px;align-items:center;gap:5px;padding:3px 11px 3px 5px;font-size:clamp(.75rem,1.4vw,1.4rem);font-weight:600;display:flex}.air-face{flex-shrink:0;width:1.7em;height:1.7em}.widget-story{flex-direction:column;gap:2px;height:100%;display:flex;overflow:hidden;container-type:size}.widget-story-label{color:var(--chalk-dim);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;font-size:clamp(.7rem,min(7cqw,26cqh),2rem);font-weight:500;overflow:hidden}.widget-story-text{font-family:var(--deco-font);color:var(--accent-orange);flex:1;align-items:center;min-height:0;font-size:clamp(.95rem,min(12cqw,38cqh),5rem);display:flex;overflow:hidden}.widget-virtue{flex-direction:column;gap:2px;height:100%;display:flex;overflow:hidden;container-type:size}.widget-virtue-label{color:var(--chalk-dim);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;font-size:clamp(.7rem,min(7cqw,26cqh),2rem);font-weight:500;overflow:hidden}.widget-virtue-text{font-family:var(--deco-font);color:var(--accent-blue);flex:1;align-items:center;min-height:0;font-size:clamp(.95rem,min(12cqw,42cqh),5rem);display:flex;overflow:hidden}.widget-routine{flex-direction:column;gap:2px;height:100%;display:flex;overflow:hidden;container-type:size}.widget-routine-label{color:var(--chalk-dim);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;font-size:clamp(.7rem,min(7cqw,26cqh),2rem);font-weight:500;overflow:hidden}.widget-routine-text{font-family:var(--deco-font);color:var(--accent-mint);flex:1;align-items:center;min-height:0;font-size:clamp(.95rem,min(12cqw,42cqh),5rem);display:flex;overflow:hidden}.widget-note{flex-direction:column;gap:2px;height:100%;display:flex;overflow:hidden;container-type:size}.widget-note-label{color:var(--chalk-dim);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;font-size:clamp(.7rem,min(7cqw,26cqh),2rem);font-weight:500;overflow:hidden}.widget-note-textarea{resize:none;width:100%;min-height:0;font-family:var(--deco-font);color:var(--accent-yellow);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:clamp(.95rem,min(12cqw,30cqh),5rem);line-height:1.3}.widget-note-textarea::placeholder{color:color-mix(in srgb, var(--accent-yellow) 30%, transparent)}.widget-meal{flex-direction:column;gap:2px;height:100%;display:flex;overflow:hidden;container-type:size}.widget-meal-label{color:var(--chalk-dim);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;font-size:clamp(.7rem,min(7cqw,22cqh),2rem);font-weight:500;overflow:hidden}.widget-meal-body{flex-direction:column;flex:1;justify-content:center;min-height:0;display:flex;overflow:hidden}.widget-meal-list{flex-direction:column;align-items:center;width:100%;line-height:1.12;display:flex}.widget-meal-group{flex-direction:column;align-items:center;width:100%;display:flex}.widget-meal-type{color:var(--chalk-dim);margin:.25em 0 .05em;font-size:.72em;font-weight:700}.widget-meal-dish{font-family:var(--deco-font);color:var(--accent-orange);white-space:nowrap;text-overflow:ellipsis;text-align:center;max-width:100%;font-size:1em;overflow:hidden}.widget-meal-empty{color:var(--chalk-dim);text-align:center;margin:auto;font-size:clamp(.85rem,min(8cqw,18cqh),1.4rem)}.widget-meal-confirm{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-height:0;display:flex;overflow:hidden}.widget-meal-ask{color:var(--chalk-dim);font-size:clamp(.8rem,min(7cqw,14cqh),1.4rem)}.widget-meal-suggest{font-family:var(--deco-font);color:var(--accent-orange);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:clamp(1rem,min(10cqw,20cqh),2.6rem);font-weight:700;overflow:hidden}.widget-meal-btns{gap:8px;margin-top:6px;display:flex}.widget-meal-btn{border:1px solid var(--glass-border);font-size:clamp(.8rem,min(7cqw,14cqh),1.2rem);font-family:var(--body-font);cursor:pointer;border-radius:14px;padding:5px 16px;transition:all .2s}.widget-meal-btn--yes{background:var(--accent-mint);border-color:var(--accent-mint);color:#1a1a1a;font-weight:600}.widget-meal-btn--no{color:var(--chalk-dim);background:0 0}.widget-meal-btn:hover{transform:translateY(-1px)}.widget-letter{flex-direction:column;height:100%;display:flex;position:relative;container-type:size}.widget-letter-title{text-align:center;font-family:var(--deco-font);color:var(--chalk-dim);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:.5cqh 0;font-size:clamp(2rem,11cqh,5.5rem);transition:color .2s}.widget-letter-title:hover{color:var(--chalk)}.widget-letter-bodywrap{flex:1;min-height:0;position:relative;overflow:hidden}.widget-letter-body{font-family:var(--deco-font);color:var(--chalk);white-space:pre-wrap;word-break:keep-all;text-align:left;text-shadow:1px 1px 3px #0003;cursor:text;box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none;outline:none;width:100%;min-height:100%;padding:0 1.5cqw 1cqh;line-height:1.55;position:relative;overflow:hidden}.widget-letter-body::-webkit-scrollbar{display:none}.widget-letter-body:hover{background:#ffffff05;border-radius:8px}.widget-letter-body:focus{background:#ffffff0a;border-radius:8px}.highlight-virtue{color:var(--accent-mint);font-weight:700}.highlight-class{color:var(--accent-yellow);font-weight:700}.widget-letter-loading{color:var(--chalk-dim);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:clamp(1.6rem,6cqh,3.2rem);display:flex}.letter-spinner{border:3px solid var(--glass-border);border-top-color:var(--accent-mint);border-radius:50%;width:2em;height:2em;animation:.8s linear infinite letter-spin}@keyframes letter-spin{to{transform:rotate(360deg)}}.widget-letter-body:empty:before{content:"덕목을 골라 편지를 만들거나\a 여기를 눌러 직접 써보세요 ✏️";color:var(--chalk-faint);pointer-events:none;text-align:center;justify-content:center;align-items:center;margin:0;font-size:clamp(1rem,5cqh,2.6rem);line-height:1.5;display:flex;position:absolute;inset:0}.widget-letter-regen{background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);width:36px;height:36px;color:var(--chalk-dim);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1.2rem;transition:all .3s;display:flex;position:absolute;bottom:8px;right:8px}.widget-letter-regen:hover{color:var(--chalk);background:var(--glass-hover);transform:rotate(180deg)}.widget-dday{height:100%;font-family:var(--deco-font);color:var(--chalk);white-space:nowrap;justify-content:center;align-items:center;display:flex;overflow:hidden}.widget-dday strong{color:var(--accent-yellow);font-size:1.15em}.widget-mood{height:100%;overflow:hidden}.widget-clickable{cursor:pointer;transition:opacity .2s}.widget-clickable:hover{opacity:.8}.widget-toolbar{justify-content:flex-end;align-items:center;gap:8px;height:100%;padding-right:4px;display:flex}.changelog-backdrop{z-index:320;-webkit-backdrop-filter:blur(6px);background:#00000080;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.changelog-modal{background:linear-gradient(160deg, color-mix(in srgb, var(--board-bg1) 95%, white), color-mix(in srgb, var(--board-bg2) 98%, white));border:1px solid var(--glass-border);width:calc(100% - 48px);max-width:480px;color:var(--chalk);border-radius:24px;padding:30px 32px 24px;animation:.25s cubic-bezier(.34,1.56,.64,1) modalPop;position:relative;box-shadow:0 24px 80px #0006}.changelog-x{width:32px;height:32px;color:var(--chalk-dim);cursor:pointer;background:0 0;border:none;border-radius:50%;font-size:1.5rem;line-height:1;transition:all .2s;position:absolute;top:14px;right:16px}.changelog-x:hover{background:var(--glass-hover);color:var(--chalk)}.changelog-title{color:var(--accent-yellow);margin-bottom:18px;padding-right:24px;font-size:1.4rem;font-weight:700}.changelog-list{flex-direction:column;gap:13px;margin:0;padding-left:4px;list-style:none;display:flex}.changelog-list li{color:var(--chalk);padding-left:2px;font-size:.95rem;line-height:1.5}.changelog-list b{color:var(--accent-mint)}.changelog-btns{gap:10px;margin-top:24px;display:flex}.changelog-btn{font-size:.95rem;font-weight:600;font-family:var(--body-font);cursor:pointer;border:1px solid var(--glass-border);border-radius:14px;flex:1;padding:12px;transition:all .2s}.changelog-btn--close{background:var(--accent-mint);border-color:var(--accent-mint);color:#1a1a1a}.changelog-btn--today{color:var(--chalk-dim);background:0 0}.changelog-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px #00000040}.school-confirm-backdrop{z-index:300;-webkit-backdrop-filter:blur(6px);background:#0000008c;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.school-confirm-modal{background:linear-gradient(160deg, color-mix(in srgb, var(--board-bg1) 95%, white), color-mix(in srgb, var(--board-bg2) 98%, white));border:1px solid var(--glass-border);text-align:center;width:calc(100% - 48px);max-width:420px;color:var(--chalk);border-radius:24px;padding:32px 36px;animation:.25s cubic-bezier(.34,1.56,.64,1) modalPop;box-shadow:0 24px 80px #0006}.school-confirm-icon{font-size:2.6rem}.school-confirm-region{color:var(--chalk-dim);margin-top:8px;font-size:.9rem}.school-confirm-q{color:var(--chalk-dim);margin-top:14px;font-size:1.15rem}.school-confirm-name{font-family:var(--deco-font);color:var(--accent-yellow);word-break:keep-all;margin-top:6px;font-size:2.2rem;font-weight:700}.school-confirm-btns{flex-direction:column;gap:10px;margin-top:24px;display:flex}.school-confirm-yes,.school-confirm-no{font-size:1rem;font-weight:600;font-family:var(--body-font);cursor:pointer;border:1px solid var(--glass-border);border-radius:14px;padding:13px;transition:all .2s}.school-confirm-yes{background:var(--accent-mint);border-color:var(--accent-mint);color:#1a1a1a}.school-confirm-no{color:var(--chalk-dim);background:0 0}.school-confirm-yes:hover,.school-confirm-no:hover{transform:translateY(-1px);box-shadow:0 6px 18px #00000040}:root{--deco-font:"강원교육모두Bold", cursive;--body-font:"Noto Sans KR", sans-serif;--board-bg1:#2d5a40;--board-bg2:#234a34;--board-bg3:#1c3d2b;--green:#2d5a40;--green-dark:#234a34;--green-light:#3a7050;--chalk:#f2eddf;--chalk-dim:#f2eddf8c;--chalk-faint:#f2eddf33;--accent-yellow:#f5d76e;--accent-blue:#a8d8ea;--accent-mint:#88d8b0;--accent-orange:#ffb347;--accent-pink:#f4a7b9;--frame-color:#3d2a14;--frame-width:1.2vw;--frame-inner-radius:7px;--frame-shadow:inset 0 0 30px #0006, inset 0 0 4px #3d2a1499, 0 0 20px #00000080;--tray-bg:linear-gradient(180deg, #3d2a144d 0%, #3d2a1480 40%, #3d2a1499 100%);--tray-border:1px solid #3d2a1466;--tray-shadow:inset 0 2px 6px #0003;--tray-height:18px;--glass-bg:#ffffff0a;--glass-border:#ffffff14;--glass-hover:#ffffff14;--radius:16px;--radius-sm:10px;--transition:.3s cubic-bezier(.4, 0, .2, 1)}[data-theme=green]{--board-bg1:#2d5a40;--board-bg2:#234a34;--board-bg3:#1c3d2b;--chalk:#f5f2e8;--chalk-dim:#f5f2e8b3;--chalk-faint:#f5f2e84d;--accent-mint:#88d8b0;--accent-yellow:#ffe082;--accent-blue:#90caf9;--accent-orange:#ffcc80;--glass-bg:#ffffff0f;--glass-border:#ffffff1f;--glass-hover:#ffffff1a}[data-theme=white]{--board-bg1:#f5f6fa;--board-bg2:#ecedf5;--board-bg3:#e4e5f0;--chalk:#191f28;--chalk-dim:#191f288c;--chalk-faint:#191f2826;--accent-mint:#3182f6;--accent-yellow:#3182f6;--accent-blue:#3182f6;--accent-orange:#4a9bff;--accent-pink:#f04452;--frame-color:#d0d5e0;--frame-shadow:inset 0 0 40px #3182f60a, 0 0 0 1px #3182f60f, 0 4px 24px #0000000f;--tray-bg:none;--tray-border:none;--tray-shadow:none;--tray-height:0px;--glass-bg:#00000008;--glass-border:#0000000f;--glass-hover:#0000000d}[data-theme=pink]{--board-bg1:#fff0f5;--board-bg2:#ffe4ee;--board-bg3:#ffd6e5;--chalk:#5a2d3e;--chalk-dim:#5a2d3e99;--chalk-faint:#5a2d3e33;--accent-mint:#ff6b9d;--accent-yellow:#ff6b9d;--accent-blue:#a78bfa;--accent-orange:#ff8a65;--frame-color:#f0c0d8;--frame-shadow:inset 0 0 40px #ff6b9d0d, 0 0 0 1px #ff6b9d14, 0 4px 24px #0000000a;--tray-bg:none;--tray-border:none;--tray-shadow:none;--tray-height:0px;--glass-bg:#ffffff80;--glass-border:#ff64961f;--glass-hover:#fff9}[data-theme=dark]{--board-bg1:#2a2d3e;--board-bg2:#1e2030;--board-bg3:#171926;--chalk:#e8eaf0;--chalk-dim:#e8eaf099;--chalk-faint:#e8eaf040;--accent-mint:#7eb8ff;--accent-yellow:#ffe082;--accent-blue:#82b1ff;--accent-orange:#ffcc80;--frame-color:#363a50;--frame-shadow:inset 0 0 40px #7eb8ff08, 0 0 0 1px #7eb8ff0f, 0 4px 24px #00000026;--tray-bg:none;--tray-border:none;--tray-shadow:none;--tray-height:0px;--glass-bg:#ffffff0d;--glass-border:#ffffff1a;--glass-hover:#ffffff14}[data-theme=cream]{--board-bg1:#fdf8f0;--board-bg2:#f7f0e5;--board-bg3:#f0e8db;--chalk:#4a3728;--chalk-dim:#4a372899;--chalk-faint:#4a372833;--accent-mint:#e8854a;--accent-yellow:#e8854a;--accent-blue:#5a9fcf;--accent-orange:#e8854a;--accent-pink:#e88080;--frame-color:#dcc8a8;--frame-shadow:inset 0 0 40px #e8854a0a, 0 0 0 1px #d4b89626, 0 4px 24px #0000000a;--tray-bg:none;--tray-border:none;--tray-shadow:none;--tray-height:0px;--glass-bg:#ffffff80;--glass-border:#b48c501f;--glass-hover:#fff9}.board{background:linear-gradient(160deg, var(--board-bg1) 0%, var(--board-bg2) 50%, var(--board-bg3) 100%);width:100vw;height:100vh;font-family:var(--body-font);color:var(--chalk);flex-direction:column;display:flex;position:relative;overflow:hidden}.board-frame{pointer-events:none;z-index:100;box-shadow:var(--frame-shadow);position:absolute;inset:0;overflow:hidden}.board-frame:before{content:"";inset:var(--frame-width);border-radius:var(--frame-inner-radius);box-shadow:0 0 0 var(--frame-width) var(--frame-color);position:absolute}.board-noise{pointer-events:none;z-index:99;opacity:.035;position:absolute;inset:0}.board-tray{height:var(--tray-height);background:var(--tray-bg);border-top:var(--tray-border);z-index:5;box-shadow:var(--tray-shadow);flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative;overflow:visible}.board-chalks{bottom:calc(var(--frame-width) + 3px);z-index:101;pointer-events:none;align-items:flex-end;gap:12px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.chalk{cursor:pointer;pointer-events:auto;width:52px;height:11px;transform:rotate(var(--rot,0deg));border:none;border-radius:4px 4px 3px 3px;padding:0;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s;position:relative;box-shadow:0 2px 5px #0000004d}.chalk:after{content:"";pointer-events:none;background:#ffffff59;border-radius:4px 4px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.chalk:hover{transform:translateY(-3px) rotate(var(--rot,0deg));box-shadow:0 4px 9px #00000052}.chalk--active{transform:rotate(var(--rot,0deg));box-shadow:0 2px 5px #0000004d}.chalk--active:before{content:"";pointer-events:none;border:1.5px solid #ffffffb3;border-radius:6px;position:absolute;inset:-3px}.board-fullscreen-btn{z-index:110;border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);width:36px;height:36px;color:var(--chalk-dim);cursor:pointer;transition:all var(--transition);justify-content:center;align-items:center;padding:0;display:flex;position:fixed;bottom:calc(1.2vw + 24px);right:calc(1.2vw + 8px)}.board-fullscreen-btn:hover{background:var(--glass-hover);color:var(--chalk);transform:scale(1.08)}.board-fullscreen-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.board-topbar{z-index:50;flex-shrink:0;justify-content:space-between;align-items:center;padding:2px 24px;display:flex;position:relative}.board-title{font-family:var(--deco-font);color:var(--chalk-dim);letter-spacing:-.02em;font-size:1.6rem}.board-topbar-actions{align-items:center;gap:8px;display:flex}.edit-toolbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:200;background:#000000d9;border:1px solid #ffffff26;border-radius:16px;align-items:center;gap:14px;padding:10px 20px;animation:.3s cubic-bezier(.34,1.56,.64,1) slideDown;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000080}@keyframes slideDown{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.edit-toolbar--moved{animation:none;transform:none}.edit-toolbar-label{color:var(--accent-yellow);white-space:nowrap;font-size:.88rem;font-weight:600}.edit-toolbar-drag{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:8px;margin:-4px -2px;padding:4px 6px;transition:background .15s}.edit-toolbar-drag:hover{background:#ffffff14}.edit-toolbar-drag:active{cursor:grabbing}.edit-toolbar-btn{cursor:pointer;font-size:.85rem;font-weight:600;font-family:var(--body-font);border:none;border-radius:10px;padding:8px 18px;transition:all .2s}.edit-toolbar-btn--done{background:var(--accent-mint);color:#1a1a1a}.edit-toolbar-btn--savedefault{color:var(--accent-yellow);white-space:nowrap;background:#f5d76e29;border:1px solid #f5d76e66}.edit-toolbar-btn--reset{color:#ffffffe6;background:0 0;border:1px solid #ffffff4d}.edit-toolbar-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #0000004d}.edit-toolbar-restore{border-left:1px solid #ffffff1a;border-right:1px solid #ffffff1a;align-items:center;gap:6px;padding:0 6px;display:flex}.edit-toolbar-btn--restore{color:#ffffffe6;white-space:nowrap;background:#ffffff1f;border:1px solid #fff3;border-radius:8px;padding:5px 12px;font-size:.78rem}.edit-toolbar-btn--restore:hover{color:var(--accent-mint);background:#88d8b026;border-color:#88d8b04d}.widget-editing{opacity:.75;transition:opacity .3s;animation:2s ease-in-out infinite widgetPulse}@keyframes widgetPulse{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 2px #88d8b04d}}.react-resizable-handle{background:0 0!important;bottom:4px!important;right:4px!important}.react-resizable-handle:after{content:""!important;border-color:var(--accent-mint)!important;width:10px!important;height:10px!important}.dashboard-grid-wrapper{scrollbar-width:none;-ms-overflow-style:none;flex:1;min-height:0;padding:0 1.2vw;position:relative;overflow:hidden auto}.dashboard-grid-wrapper.editing{background-image:radial-gradient(circle,#88d8b033 2px,#0000 2px);background-size:var(--dot-step-x,40px) var(--dot-step-y,40px);background-position:var(--dot-offset-x,20px) var(--dot-offset-y,16px);background-color:#88d8b005;animation:.3s gridFadeIn}@keyframes gridFadeIn{0%{opacity:.5}to{opacity:1}}.dashboard-grid-wrapper::-webkit-scrollbar{display:none}.dashboard-grid{min-height:0}.circle-btn{background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1.5px solid var(--glass-border);width:38px;min-width:38px;height:38px;color:var(--chalk);cursor:pointer;transition:all var(--transition);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1rem;display:flex}.circle-btn:hover{background:var(--glass-hover);border-color:#fff3;transform:translateY(-1px);box-shadow:0 4px 16px #0000004d}.circle-btn svg{fill:currentColor;width:18px;height:18px}.circle-btn--user{background:var(--accent-mint);border-color:var(--accent-mint)}.circle-btn-initial{color:#1a1a1a;font-family:Noto Sans KR,sans-serif;font-size:1.1rem;font-weight:700;line-height:1}.edit-toggle-btn{border:1.5px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--chalk-dim);cursor:pointer;transition:all var(--transition);font-size:.78rem;font-weight:500;font-family:var(--body-font);white-space:nowrap;border-radius:20px;padding:6px 14px}.edit-toggle-btn:hover{background:var(--glass-hover);color:var(--chalk);border-color:#fff3}
