@import "https://fonts.googleapis.com/css2?family=Gowun+Dodum&family=Plus+Jakarta+Sans:wght@500;600;700;800&display=swap";:root{--ink:#25283a;--muted:#8790a3;--line:#e8eaf1;--violet:#7465dc;--soft:#f5f3ff;--mint:#63b995;--corner:12px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:#edf5ff;margin:0;font-family:Gowun Dodum,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}.app-shell{min-height:100vh;display:flex}.sidebar{z-index:4;background:#f4f9ff;border:1px solid #cfddec;border-radius:22px;flex-direction:column;width:226px;height:calc(100vh - 32px);margin:16px 0 16px 16px;padding:25px 17px;display:flex;position:fixed}.brand{color:var(--ink);text-align:left;background:0 0;align-items:center;gap:10px;padding:9px 10px 28px;font-size:17px;display:flex}.brand span{color:#6c5ed2;background:#eeeaff;border-radius:10px;place-items:center;width:29px;height:29px;padding-bottom:1px;font:700 17px/1 Plus Jakarta Sans;display:grid}.sidebar nav{gap:6px;display:grid}.nav{color:#667084;text-align:left;background:0 0;border-radius:10px;align-items:center;gap:10px;width:100%;padding:12px 11px;font-size:13px;display:flex}.nav:hover,.nav.active{color:#5c4fc3;background:#f0eeff;font-weight:700}.nav>span{text-align:center;width:18px}.badge{color:#fff;background:#e76c75;border-radius:10px;place-items:center;min-width:19px;height:19px;margin-left:auto;padding:0 5px;font:700 10px Plus Jakarta Sans;display:grid}.badge.seen{background:var(--mint)}.badge.new{letter-spacing:.02em;min-width:34px;padding:0 6px;font-size:8px}.side-bottom{margin-top:auto}.admin{color:#687184;background:#fff;border:1px solid #e1e4eb;border-radius:10px;width:100%;padding:11px;font-size:12px;font-weight:700}.admin.on{background:var(--soft);color:#5e50c8;border-color:#d0caff}main{width:min(1210px,100% - 242px);margin-left:242px;padding:42px clamp(24px,5vw,74px) 40px}.mobile-topbar,.mobile-menu-trigger,.mobile-menu-backdrop,.mobile-menu{display:none}.top-grid{grid-template-columns:minmax(0,1fr) 316px;align-items:start;gap:22px;display:grid}.now-bar{color:#263955;align-items:center;gap:10px;margin:3px 0 22px;display:flex}.now-bar>span{flex:none;font-size:28px;line-height:1}.now-bar p{color:#263955;letter-spacing:-.045em;margin:0;font-size:clamp(21px,2.25vw,30px);font-weight:800;line-height:1.32}.mobile-greeting-break{display:none}.important-banner{border-radius:var(--corner);color:#66532a;background:#fff9e8;border:1px solid #f0d68d;margin:2px 0 17px;padding:0;position:relative;box-shadow:0 5px 14px #a9831b12}.important-banner-open{border-radius:var(--corner);width:100%;color:inherit;text-align:left;background:0 0;gap:4px;padding:13px 42px 13px 15px;display:grid}.important-banner-open>span{color:#9c6a12;font-size:11px;font-weight:800}.important-banner-open strong{color:#655128;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.important-banner-close{color:#8d6a20;background:#f4e4ae;border-radius:50%;width:25px;height:25px;padding:0;font-size:18px;line-height:1;position:absolute;top:10px;right:10px}.calendar-card,.day-card,.tip-card,.board-section,.special-page{border:1px solid var(--line);background:#fff;border-radius:20px}.calendar-card{padding:27px 29px 21px}.section-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.eyebrow{color:#8f97a7;letter-spacing:.02em;margin:0 0 7px;font:700 11px Plus Jakarta Sans}.today{color:var(--violet);margin:0 0 7px;font:700 12px Plus Jakarta Sans}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:27px}h2{margin:0;font-size:20px}h3{margin-bottom:0}.month-controls{align-items:center;gap:7px;display:flex}.calendar-actions{justify-items:end;gap:8px;display:grid}.month-controls select,.month-controls button{color:#687083;background:#fff;border:1px solid #e0e3eb;border-radius:9px;height:34px;padding:0 9px}.month-controls .today-button{color:#6457bf;width:auto;padding:0 11px;font:700 12px/1 Plus Jakarta Sans}.month-controls button{width:34px;padding:0;font:800 25px/1 Plus Jakarta Sans}.month-controls .calendar-arrow{place-items:center;padding:0 0 2px;line-height:1;display:grid}.month-controls .date-input{color:#687083;background:#fff;border:1px solid #e0e3eb;border-radius:9px;width:132px;height:34px;padding:0 8px;font:12px Gowun Dodum}.timetable-trigger{color:#35405a;background:#fbfcff;border:1px solid #d9deea;border-radius:10px;min-width:172px;height:36px;font-size:12px;font-weight:800}.timetable-trigger:hover{color:var(--violet);background:#f0efff}.modal-backdrop:has(.timetable-modal){padding:8px}.modal:has(.timetable-modal){width:min(820px,100vw - 16px);padding:22px 18px}.timetable-modal{min-width:0}.timetable-modal h2{margin-bottom:18px}.timetable-toolbar{justify-content:space-between;align-items:center;gap:9px;margin-bottom:8px;display:flex}.timetable-tabs{gap:6px;display:flex}.timetable-tabs button,.timetable-edit{color:#657087;background:#fff;border:1px solid #dfe3ec;border-radius:8px;height:31px;padding:0 10px;font-size:11px;font-weight:700}.timetable-tabs button.active{color:#594cc4;background:#eeeaff;border-color:#7768db}.timetable-edit{color:#594cc4}.timetable-range{color:#566078;margin:0 0 5px;font-size:12px;font-weight:800}.timetable-note{color:#8b92a3;margin:0 0 11px;font-size:11px}.timetable-scroll{overflow-x:auto}.timetable-table{table-layout:fixed;border-collapse:separate;border-spacing:0;text-align:center;border:1px solid #dfe3ec;border-radius:12px;width:100%;min-width:0;overflow:hidden}.timetable-table th,.timetable-table td{overflow-wrap:anywhere;border-bottom:1px solid #e7eaf1;border-right:1px solid #e7eaf1;height:48px;padding:5px 3px;font-size:12px}.timetable-table tr>:last-child{border-right:0}.timetable-table tbody tr:last-child>*{border-bottom:0}.timetable-table thead th{color:#5143ae;background:#f1efff;font-weight:800}.timetable-table tbody th{color:#4e576b;background:#fafbfe;width:13%}.timetable-table small{color:#949bad;margin-top:2px;font-size:10px;font-weight:500;display:block}.timetable-table td.changed{color:#69511c;background:#fff7cf;font-weight:800}.timetable-table td input{color:#394155;text-align:center;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #d1c8f4;border-radius:5px;padding:4px 1px}.timetable-save-actions{justify-content:flex-end;margin-top:13px}.modal .timetable-save-actions button{box-sizing:border-box;height:48px;margin:0}.modal .timetable-save-actions .primary{margin-top:0}.weekdays,.calendar-days{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.weekdays{border-bottom:1px solid var(--line);color:#959eaf;text-align:center;margin-top:26px;font-size:13px}.weekdays span{padding:0 0 13px}.weekdays span:first-child{color:#d9959a}.weekdays span:last-child{color:#91addb}.calendar-days button{color:#40495d;text-align:left;vertical-align:top;background:#fff;border-bottom:1px solid #eef0f5;border-right:1px solid #eef0f5;min-height:75px;padding:13px;display:block;position:relative}.calendar-days button:nth-child(7n+1){border-left:1px solid #eef0f5}.calendar-days button:hover{background:#faf9ff}.calendar-days .muted{color:#c9ced9}.calendar-days .selected{background:#eeeaff}.calendar-days .day-number{z-index:0;line-height:1;position:absolute;top:13px;left:13px}.calendar-days .selected .day-number{color:#fff}.calendar-days .selected .day-number:before{z-index:-1;content:"";background:#222739;border-radius:50%;width:27px;height:27px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.calendar-days .is-today:not(.selected) .day-number{color:var(--violet);font-weight:700}.calendar-days button:nth-child(7n+1):not(.selected) .day-number{color:#c65c63}.calendar-days button:nth-child(7n):not(.selected) .day-number{color:#5e83c4}.calendar-days .muted:not(.selected) .day-number{color:#c9ced9}.calendar-days.rows-5 button{min-height:90px}.calendar-days.rows-4 button{min-height:112px}.calendar-dots{flex-direction:column;align-items:center;gap:3px;max-width:calc(100% - 16px);display:flex;position:absolute;bottom:11px;left:50%;overflow:visible;transform:translate(-50%)}.calendar-marker{color:#697286;border-radius:999px;align-items:center;gap:0;width:30px;min-width:30px;height:13px;padding:0;font-style:normal;line-height:1;display:inline-flex;position:relative}.calendar-marker i{border-radius:999px;width:100%;height:100%;display:block;position:absolute;inset:0}.calendar-marker.event-marker,.calendar-marker.event-marker i{border-radius:3px}.marker-symbol{z-index:1;color:#fff;text-align:center;width:100%;font:800 9px/1 Arial,sans-serif;position:relative}.calendar-marker b{display:none}.calendar-more{color:#737d91;font:800 12px/1 Plus Jakarta Sans}.legend{color:#80899a;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:17px;font-size:11px;display:grid}.legend>div{background:#fafaff;border-radius:9px;flex-wrap:wrap;align-items:center;gap:8px 11px;padding:9px 10px;display:flex}.legend b{color:#697286;font-size:10px}.legend .legend-type{align-items:center;gap:4px;display:inline-flex}.legend .legend-type span{color:#6558d4;background:#eeebff;border-radius:4px;place-items:center;width:14px;height:14px;font:800 9px/1 Arial,sans-serif;display:inline-grid}.category-chip{color:#697286;font:inherit;background:0 0;align-items:center;gap:5px;padding:0;display:flex}.category-chip:hover{color:var(--violet);text-underline-offset:3px;text-decoration:underline}.legend i,.item-line>i{border-radius:50%;flex:none;width:8px;height:8px}.right-column{gap:20px;display:grid}.day-card,.tip-card{padding:23px}.count{background:var(--soft);color:#6659ca;border-radius:50%;place-items:center;width:25px;height:25px;font:700 11px Plus Jakarta Sans;display:grid}.empty{color:#9ba3b2;text-align:center;margin:26px 0 10px;font-size:12px;line-height:1.7}.compact-list{gap:8px;margin-top:18px;display:grid}.item-line{text-align:left;align-items:center;gap:9px;display:flex}.item-line>div{gap:3px;display:grid}.item-line b{font-size:13px}.item-line span{color:#9099a9;font-size:10px}.upcoming-list time{justify-items:end;gap:3px;display:grid}.d-day{color:#6758d0;font-size:11px;font-weight:800}.d-day.urgent{color:#df4545}.category-summary{color:#687286;align-items:center;gap:9px;margin:3px 0 15px;font-size:12px;display:flex}.category-summary i{border-radius:50%;width:13px;height:13px}.category-list-button{color:#5e50c8;background:#fafaff;border:1px solid #dddff0;border-radius:9px;width:100%;padding:12px;font-size:12px;font-weight:800}.category-color-form{border-top:1px solid #eceef4;gap:11px;margin-top:18px;padding-top:17px;display:grid}.category-colors{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.color-card{color:#788195;border:1px solid #e1e4ee;border-radius:9px;grid-template-columns:24px 1fr;align-items:center;gap:3px 7px;padding:9px;display:grid}.color-card.selected{background:#f2fbff;border-color:#bcdceb}.color-card span{grid-column:1/-1;font-size:10px;font-weight:800}.color-card i{border-radius:50%;width:23px;height:23px;box-shadow:inset 0 0 0 1px #00000010}.color-card b{color:#596378;font:800 10px Plus Jakarta Sans}.color-suggestions>span{color:#697286;margin-bottom:7px;font-size:11px;font-weight:800;display:block}.color-suggestions>div{align-items:center;gap:9px;display:flex}.color-suggestions button,.custom-color{color:#7a8497;border:2px solid #0000;border-radius:50%;place-items:center;width:29px;height:29px;padding:0;font-size:16px;line-height:1;display:grid;position:relative}.color-suggestions button.chosen{border-color:#333b4f;box-shadow:0 0 0 2px #fff}.custom-color{cursor:pointer;background:#fff;border-color:#dce1eb}.custom-color input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.category-item-list{gap:8px;margin-top:17px;display:grid}.category-item-list button{border:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:#fff;border-radius:10px;align-items:center;gap:10px;padding:12px;display:flex}.category-item-list button:hover{background:#faf9ff;border-color:#cfc8ff}.category-item-list time{color:#7568d7;margin-left:auto;font:700 10px Plus Jakarta Sans}.primary{background:var(--violet);color:#fff;border-radius:9px;padding:10px 13px;font-size:13px;font-weight:700}.primary.add{width:100%;margin-top:19px;padding:13px;font-size:15px}.full{width:100%;margin-top:18px}.tip-card{background:linear-gradient(135deg,#b9d8fb,#dcecff)}.tip-card>p{color:#2e6eaf;margin-bottom:13px;font-size:12px;font-weight:700}.tip-card h3{font-size:18px}.tip-card span{color:#697286;margin-top:8px;font-size:12px;line-height:1.7;display:block}.tip-card button{color:#2e6eaf;background:0 0;margin-top:16px;padding:0;font-size:11px;font-weight:700}.board-section,.special-page{margin-top:25px;padding:27px 29px;scroll-margin-top:20px}.upcoming-list,.post-list,.feedback-list{gap:9px;margin-top:19px;display:grid}.upcoming-list>button,.post,.feedback-list button{border:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:#fff;border-radius:11px;padding:14px 15px}.upcoming-list>button{align-items:center;gap:12px;display:flex}.upcoming-list>button:hover,.post:hover,.feedback-list button:hover{background:#faf9ff;border-color:#cfc8ff}.upcoming-list time{color:#7568d7;margin-left:auto;font:700 10px Plus Jakarta Sans}.post>div{justify-content:space-between;align-items:center;display:flex}.post div span{background:var(--soft);color:#6759ca;border-radius:5px;padding:3px 7px;font:700 10px Plus Jakarta Sans}.post time,.feedback-list time{color:#969eae;font:10px Plus Jakarta Sans}.post h3{margin:10px 0 6px;font-size:15px}.post p,.feedback-list p{color:#687184;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.65;display:-webkit-box;overflow:hidden}.post small{color:#685bc7;margin-top:10px;font-size:10px;display:block}footer{color:#9aa1ad;text-align:center;padding:34px 0 8px;font-size:11px}.special-page{max-width:900px;margin:0 auto}.special-page>.section-head>button:not(.primary){color:#667084;background:#fff;border:1px solid #e0e3eb;border-radius:9px;padding:10px 13px;font-size:12px;font-weight:700}.tips-grid{grid-template-columns:repeat(2,1fr);gap:13px;margin-top:23px;display:grid}.tips-grid article{border:1px solid var(--line);border-radius:13px;padding:18px}.tips-grid span{color:var(--violet);font:700 10px Plus Jakarta Sans}.tips-grid h3{margin:9px 0 7px;font-size:16px}.tips-grid p{color:#727b8c;margin:0;font-size:12px;line-height:1.65}.tip-tabs{border-bottom:1px solid var(--line);gap:7px;margin-top:22px;display:flex}.tip-tabs button{color:#858e9f;background:0 0;border-bottom:2px solid #0000;padding:10px 12px;font-size:12px;font-weight:700}.tip-tabs button.active{border-color:var(--violet);color:#6457c7}.community-tips{margin-top:21px}.content-refresh{color:#7189a1;margin:13px 0 0;font-size:11px;font-weight:700}.community-tip-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.community-tip-head p{color:#737c8d;margin:0;font-size:12px}.community-tip-list{gap:10px;margin-top:16px;display:grid}.community-tip-list button{border:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:#fff;border-radius:11px;padding:15px}.community-tip-list button:hover{background:#faf9ff;border-color:#cfc8ff}.community-tip-list span{color:var(--violet);font:700 10px Plus Jakarta Sans}.community-tip-list p{color:#596274;white-space:pre-wrap;margin:8px 0 0;font-size:13px;line-height:1.7}.community-tip-list h3{margin:8px 0 5px;font-size:15px}.feedback-intro{background:#f8f7ff;border:1px solid #e4e0ff;border-radius:14px;margin-top:22px;padding:19px}.feedback-intro h2{margin-bottom:9px;font-size:18px}.feedback-intro p{color:#656e80;margin-bottom:10px;font-size:13px}.feedback-intro small{color:#a06565;font-size:11px}.feedback-view{width:min(900px,100%);margin:0 auto}.feedback-back{color:#687184;background:#fff;border:1px solid #e0e3eb;border-radius:9px;padding:9px 11px;font-size:12px;font-weight:700}.feedback-view .special-page{width:100%}.feedback-list button{position:relative}.feedback-statuses{gap:5px;display:flex;position:absolute;top:14px;right:15px}.feedback-list b{color:#398861;background:#e1f5e9;border-radius:5px;padding:3px 6px;font:700 9px Plus Jakarta Sans;display:inline-block}.feedback-list b.processed{color:#2776a4;background:#dff1ff}.feedback-list span{color:#7668d6;margin-top:8px;font-size:10px;display:block}.toast{z-index:12;color:#a55555;background:#fff;border:1px solid #efd3d3;border-radius:10px;align-items:center;gap:18px;padding:12px 14px;font-size:12px;display:flex;position:fixed;top:22px;right:24px;box-shadow:0 12px 30px #2426391a}.toast button{color:#a55555;background:0 0;font-size:17px}.news-list{gap:9px;margin:16px 0;display:grid}.news-item{border-radius:var(--corner);text-align:left;background:#fafbff;border:1px solid #e4e6ee;width:100%;padding:12px;display:block}.news-item:hover{background:#f8f7ff;border-color:#c9c4f4}.important-news{color:#9a6813;background:#fff0ba;border-radius:999px;margin-bottom:6px;padding:3px 7px;font-size:10px;display:inline-block}.news-item h3{color:#454d61;margin:0;font-size:15px}.news-list p{white-space:pre-wrap;color:#4f596e;margin:0;font-size:13px;line-height:1.7}.news-list time{color:#9ba3b2;margin-top:7px;font-size:10px;display:block}.news-admin-list{gap:7px;margin-top:12px;display:grid}.news-admin-list>div{border:1px solid #e4e6ee;border-radius:8px;align-items:center;gap:8px;padding:8px;display:flex}.news-admin-list span{color:#687286;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.news-admin-list .danger,.news-admin-list .edit{margin:0;padding:6px 8px;font-size:10px}.important-toggle{cursor:pointer;background:#faf9ff;border:1px solid #dddaf5;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;margin-top:12px;padding:12px;display:flex}.important-toggle>span{color:#49536a;gap:3px;font-size:13px;font-weight:800;display:grid}.important-toggle small{color:#8c96a8;font-size:10px;font-weight:500}.important-toggle input{opacity:0;pointer-events:none;position:absolute}.important-toggle i{background:#cdd4e2;border-radius:999px;flex:none;width:40px;height:23px;transition:background .18s;position:relative}.important-toggle i:after{content:"";background:#fff;border-radius:50%;width:17px;height:17px;transition:transform .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #2b315f30}.important-toggle input:checked+i{background:#7565d9}.important-toggle input:checked+i:after{transform:translate(17px)}.sidebar,.calendar-card,.day-card,.tip-card,.board-section,.special-page,.feedback-intro,.modal,.attachment-preview,.meal-grid article,.important-toggle,.news-admin-list>div,.mobile-menu>button,button:not(.close):not(.important-banner-close),input:not([type=checkbox]):not([type=radio]),textarea,select{border-radius:var(--corner)}.meal-note{color:#8a93a4;margin:5px 0 18px;font-size:12px}.meal-weeks{gap:11px;display:grid}.meal-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.meal-grid article{background:#fff;border:1px solid #dce3ee;border-radius:12px;min-height:148px;padding:14px}.meal-empty{min-height:0}.meal-grid article>b{color:#5f52c8;font-size:13px}.meal-grid article.today-meal{background:#ecf8ff;border-color:#79bfe5;box-shadow:inset 0 0 0 1px #c7ecff}.meal-grid article.today-meal>b{color:#277ca9}.meal-today{color:#24749e;vertical-align:middle;background:#bce9ff;border-radius:5px;margin-left:6px;padding:2px 5px;font-size:9px;font-weight:800;display:inline-block}.meal-grid ul{color:#566074;gap:4px;margin:10px 0 0;padding:0;font-size:12px;line-height:1.45;list-style:none;display:grid}.meal-grid li:before{color:#8d81df;content:"•";margin-right:5px}.meal-grid .holiday{background:#fff7e0}.meal-grid .holiday>b{color:#bf8134}.meal-grid textarea{resize:vertical;border:1px solid #cbd5e4;border-radius:7px;width:100%;min-height:92px;margin-top:9px;padding:7px;font-size:11px;line-height:1.4}.meal-grid li.highlighted-food{color:#4f4317;font-weight:800}.meal-grid li.highlighted-food span{-webkit-box-decoration-break:clone;box-decoration-break:clone;background:linear-gradient(#0000 15%,#fff29a 15% 90%,#0000 90%);border-radius:3px;padding:1px 3px}.meal-food-picks{flex-wrap:wrap;gap:4px;margin-top:7px;display:flex}.meal-food-picks button{color:#75601a;background:#fffdf1;border:1px solid #e2d794;border-radius:6px;padding:4px 5px;font-size:9px;font-weight:800}.meal-food-picks button.selected{color:#5e4a10;background:#fff19a;border-color:#d6b62f}.meal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.meal-actions button{color:#647087;background:#fff;border:1px solid #d6dcef;border-radius:10px;justify-content:center;align-items:center;min-height:38px;padding:9px 13px;font-size:12px;font-weight:800;transition:transform .16s,box-shadow .16s;display:inline-flex;box-shadow:0 2px 5px #1e27510a}.meal-actions button:hover{transform:translateY(-1px);box-shadow:0 5px 11px #1e275117}.meal-actions button.edit{color:#2376a5;background:#e8f7ff;border-color:#9ccfeb}.meal-actions button:last-child{color:#6254c5;background:#f5f3ff;border-color:#d8d2f7}.modal-backdrop{z-index:10;background:#25233882;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:18px;width:min(510px,100%);max-height:calc(100vh - 40px);padding:28px;position:relative;overflow:auto;box-shadow:0 20px 60px #2022374b}.modal h2{margin-bottom:20px;font-size:22px}.close{color:#7b8393;background:0 0;border-radius:7px;width:27px;height:27px;font-size:24px;line-height:1;position:absolute;top:16px;right:17px}.modal form{gap:13px;display:grid}.modal label{color:#586174;gap:7px;font-size:12px;display:grid}.modal input,.modal textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #dde0e8;border-radius:8px;padding:10px 11px}.modal textarea{resize:vertical;min-height:125px}.modal .primary{margin-top:4px}.helper,.form-error{color:#8d96a6;margin:0;font-size:11px}.back-to-choice{color:#685bd6;text-align:left;background:0 0;margin:-9px 0 2px;padding:0;font-size:11px;font-weight:700}.form-error{color:#c65d5d}.choice{grid-template-columns:1fr 1fr;gap:12px;display:grid}.choice button{min-height:150px;color:var(--ink);text-align:left;background:#fff;border:1px solid #e0e3eb;border-radius:13px;gap:9px;padding:18px;display:grid}.choice button:hover{background:#faf9ff;border-color:#a297ed}.choice b{color:#6b5ed1;background:#eeeaff;border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.choice strong{font-size:14px}.choice span{color:#8992a2;font-size:11px;line-height:1.6}.danger{color:#c85c5c;background:#fff;border:1px solid #f0d2d2;border-radius:8px;margin-top:5px;padding:9px 12px;font-size:12px}.modal-actions{justify-content:flex-end;gap:7px;margin-top:20px;display:flex}.modal-actions button{color:#657083;background:#fff;border:1px solid #dde0e8;border-radius:8px;min-width:90px;height:48px;margin:0;padding:8px 11px;font-size:12px}.modal-actions .danger{margin:0}.danger,.modal-actions .danger{color:#bf4d56;background:#fff0f1;border-color:#efb7bc}.edit,.primary.edit,.modal-actions .edit{color:#277d9b;background:#e8f7ff;border-color:#a9dced}.danger:hover,.modal-actions .danger:hover{background:#ffe2e5}.edit:hover,.primary.edit:hover,.modal-actions .edit:hover{background:#d7f1fc}.schedule-button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:11px}.detail-text{white-space:pre-wrap;color:#586174;font-size:14px;line-height:1.8}.file{background:var(--soft);color:#6457bf;border-radius:8px;margin-top:9px;padding:9px;font-size:12px;text-decoration:none;display:block}.attachment-preview{color:#6457bf;background:#fafbff;border:1px solid #e0e4ef;border-radius:9px;margin-top:9px;text-decoration:none;display:grid;overflow:hidden}.attachment-visual{background:#f3f5fa;border-radius:0;place-items:center;min-height:166px;display:grid;overflow:hidden}.attachment-preview img{object-fit:contain;background:#f3f5fa;width:100%;max-height:260px;display:block}.attachment-visual.image-preview{cursor:zoom-in}.file-visual{color:#69758a;justify-items:center;gap:9px;display:grid}.file-visual b{color:#6457bf;background:#fff;border:1px solid #cfd8e7;border-radius:9px;place-items:center;width:66px;height:82px;font-size:13px;display:grid;box-shadow:0 5px 12px #394b6b12}.file-visual span{font-size:11px}.attachment-info{color:#566174;background:#fafbff;justify-content:space-between;align-items:center;gap:8px;padding:9px;font-size:12px;display:flex}.attachment-info>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:0;overflow:hidden}.attachment-info>div,.attachment-viewer-actions{flex:none;gap:5px;display:flex}.attachment-info button,.attachment-info a{color:#5f52c8;background:#fff;border:1px solid #d9dfeb;border-radius:7px;padding:6px 7px;font-size:10px;font-weight:800;text-decoration:none}.attachment-edit-list{color:#566174;background:#fafbff;border:1px solid #dde3ee;border-radius:10px;gap:7px;margin:4px 0 12px;padding:11px;display:grid}.attachment-edit-list>b{color:#4b556a;font-size:12px}.attachment-edit-list>div{background:#fff;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:7px 8px;font-size:11px;display:flex}.attachment-edit-list>div.removed{opacity:.55;text-decoration:line-through}.attachment-edit-list span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.attachment-edit-list button{color:#c55761;background:#fff8f8;border:1px solid #efb6ba;border-radius:6px;flex:none;padding:4px 7px;font-size:10px;font-weight:800}.attachment-edit-list .removed button{color:#477ca0;background:#f4f9ff;border-color:#c9ddec}.attachment-edit-list small{color:#8993a4;font-size:10px}.pdf-upload-option{color:#596379;background:#faf9ff;border:1px solid #dcd8f5;border-radius:10px;gap:7px;margin:2px 0 12px;padding:11px;display:grid}.pdf-upload-option>b{color:#5447bd;font-size:12px}.pdf-upload-option p,.pdf-upload-option small{margin:0;font-size:10px;line-height:1.5}.pdf-upload-option small{color:#8b94a5}.pdf-upload-option label{cursor:pointer;align-items:center;gap:7px;font-size:11px;font-weight:800;display:flex}.pdf-upload-option label.disabled{color:#a1a8b5;cursor:not-allowed}.pdf-upload-option input{width:auto;height:auto}.modal:has(.image-viewer){width:min(920px,100%);padding:20px}.image-viewer{gap:10px;padding-top:15px;display:grid}.image-viewer img{object-fit:contain;background:#f3f5fa;border-radius:10px;width:100%;max-height:calc(100vh - 130px);display:block}.image-viewer iframe{background:#f3f5fa;border:0;border-radius:10px;width:100%;height:min(70vh,680px)}.image-viewer .file{text-align:center;flex:1;margin:0}.image-viewer .file.download{color:#25749e;background:#eef7ff}.attachment-preview iframe{pointer-events:none;background:#fff;border:0;width:100%;height:260px}.site-status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:24px;display:grid}.site-status-grid article{border:1px solid var(--line);border-radius:var(--corner);background:#fafbff;gap:11px;min-height:155px;padding:20px;display:grid}.site-status-grid span,.site-status-grid small,.status-checked{color:#7d8799;font-size:12px}.site-status-grid strong{color:var(--ink);font:800 27px/1 Plus Jakarta Sans}.site-status-grid .status-normal{color:#368766;font-size:20px}.status-checked{margin:18px 0 0}.mobile-feedback,.mobile-admin{display:none}.secondary{color:#667084;background:#fff;border:1px solid #dde0e8;border-radius:9px;padding:10px 13px;font-size:13px;font-weight:700}.picker-head{justify-content:space-between;align-items:center;padding-right:34px;display:flex}.picker-head div{gap:6px;display:flex}.picker-head button{color:#687083;background:#fff;border:1px solid #e0e3eb;border-radius:8px;width:31px;height:31px;font:800 22px/1 Plus Jakarta Sans}.picker-weekdays,.picker-days{text-align:center;grid-template-columns:repeat(7,1fr);display:grid}.picker-weekdays{color:#929aaa;margin-top:5px;padding:11px 0 8px;font-size:11px}.picker-weekdays span:first-child{color:#d9959a}.picker-weekdays span:last-child{color:#91addb}.picker-days{border-top:1px solid var(--line)}.picker-days button{color:#424b60;background:#fff;place-items:center;height:43px;display:grid}.picker-days button:hover{background:#faf9ff}.picker-days .muted{color:#cbd0da}.picker-days .selected span{color:#fff;background:#222739;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.picker-days .is-today:not(.selected){color:var(--violet);font-weight:700}.picker-days button:nth-child(7n+1):not(.selected){color:#c65c63}.picker-days button:nth-child(7n):not(.selected){color:#5e83c4}.picker-days .muted:not(.selected){color:#cbd0da}@media (max-width:900px){.sidebar{width:190px}.sidebar .brand strong{font-size:14px}main{width:calc(100% - 190px);margin-left:190px;padding:28px 23px}.top-grid{grid-template-columns:1fr}.right-column{grid-template-columns:1fr 1fr}}@media (max-width:650px){.app-shell{display:block}.sidebar{display:none}main{width:100%;margin:0;padding:22px 14px 84px}.mobile-topbar{z-index:9;-webkit-backdrop-filter:blur(11px)saturate(125%);backdrop-filter:blur(11px)saturate(125%);color:var(--ink);background:#eef5ffbf;border-bottom:1px solid #dce3efb8;align-items:center;gap:10px;margin:-22px -14px 18px;padding:18px 14px 12px;font-size:17px;display:flex;position:sticky;top:0;box-shadow:0 5px 14px #66738a14}.mobile-menu-trigger{color:#667084;background:0 0;border:0;border-radius:0;place-items:center;width:39px;height:39px;padding:0;font:800 23px/1 Plus Jakarta Sans;display:grid;transform:translateY(-3px)}.mobile-topbar span{color:#6c5ed2;background:#eeeaff;border-radius:9px;place-items:center;width:29px;height:29px;padding:0;font-size:0;line-height:1;display:grid;position:relative;transform:none}.mobile-topbar span:after{color:#6c5ed2;content:"✦";font:700 17px/1 Plus Jakarta Sans;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mobile-menu-backdrop{z-index:20;will-change:background-color;background:#1f263245;animation:.15s ease-out both mobile-backdrop-in;display:block;position:fixed;inset:0}.mobile-menu{will-change:transform, opacity;background:linear-gradient(#c9e7ff 0%,#dcefff 58%,#e5f4ff 100%);border:1px solid #b9d6ed;border-left:0;border-radius:0 22px 22px 0;align-content:start;gap:0;width:min(285px,82vw);min-height:100%;max-height:100%;padding:19px 14px;animation:.18s cubic-bezier(.2,.8,.2,1) both mobile-menu-in;display:grid;overflow-y:auto;box-shadow:12px 0 30px #24263920}.mobile-menu-backdrop.closing{animation:.17s ease-in both mobile-backdrop-out}.mobile-menu.closing{animation:.17s ease-in both mobile-menu-out}.mobile-menu-head{color:var(--ink);border-bottom:1px solid #b9d8ef;justify-content:space-between;align-items:center;margin-bottom:10px;padding:4px 7px 12px;display:flex}.mobile-menu-head button{color:#7b8496;background:0 0;padding:0 5px;font-size:24px;line-height:1}.mobile-menu>button{color:#526b84;text-align:left;background:0 0;border:0;border-bottom:1px solid #b9d8ef;border-radius:0;align-items:center;padding:12px 11px;font-size:14px;display:flex}.mobile-menu>button .badge{margin-left:auto}.mobile-menu>button:hover{color:#3f6c96;background:#b9ddf34d}.mobile-menu-section-label{color:#6d91b4;letter-spacing:.05em;border-top:1px solid #b9d8ef;margin:12px 7px 2px;padding-top:8px;font-size:10px;font-weight:800}.mobile-menu>button.mobile-menu-admin{color:#43759e}@keyframes mobile-backdrop-in{0%{background:0 0}to{background:#1f263245}}@keyframes mobile-backdrop-out{0%{background:#1f263245}to{background:0 0}}@keyframes mobile-menu-in{0%{opacity:.96;transform:translate(-104%)}to{opacity:1;transform:translate(0)}}@keyframes mobile-menu-out{0%{opacity:1;transform:translate(0)}to{opacity:.96;transform:translate(-104%)}}@media (prefers-reduced-motion:reduce){.mobile-menu-backdrop,.mobile-menu,.mobile-menu-backdrop.closing,.mobile-menu.closing{animation:none}}.calendar-card,.day-card,.tip-card,.board-section,.special-page{border-radius:15px;padding:19px}.site-status-grid{grid-template-columns:1fr}.now-bar{align-items:flex-start;gap:8px;margin:2px 0 18px}.now-bar>span{margin-top:3px;font-size:22px}.now-bar p{font-size:23px;line-height:1.38}.mobile-greeting-break,.calendar-card .section-head{display:block}.calendar-card h1{white-space:nowrap}.calendar-card .month-controls{justify-content:flex-end}.calendar-card .calendar-actions{justify-items:stretch;margin-top:13px}.calendar-days button{min-height:53px;padding:8px}.calendar-days.rows-5 button{min-height:64px}.calendar-days.rows-4 button{min-height:80px}.calendar-days .day-number{width:auto;height:auto;font-size:12px;line-height:1;display:block;top:8px;left:8px}.calendar-days .selected .day-number:before{width:20px;height:20px}.right-column,.tips-grid,.choice,.legend{grid-template-columns:1fr}.meal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.meal-grid article{min-height:128px;padding:10px}.meal-grid ul{font-size:10px}.month-controls .date-input{width:116px;font-size:11px}.timetable-trigger{width:100%;min-width:0}.modal:has(.timetable-modal){width:calc(100vw - 10px);padding:18px 8px 12px}.timetable-modal h2{margin-bottom:13px;font-size:20px}.timetable-toolbar{flex-direction:column;align-items:stretch}.timetable-tabs{width:100%}.timetable-tabs button{flex:1;padding:0 5px;font-size:10px}.timetable-edit{width:100%}.timetable-table th,.timetable-table td{height:44px;padding:4px 1px;font-size:11px}.timetable-table small{font-size:8px}.community-tip-head{flex-direction:column;align-items:flex-start}.weekdays{margin-top:19px}.board-section{margin-top:17px}.calendar-dots{gap:3px;max-width:calc(100% - 12px);bottom:7px;left:50%}.calendar-marker{width:26px;min-width:26px;height:11px;padding:0}.calendar-marker i{border-radius:999px;width:26px;height:11px}.calendar-marker.event-marker,.calendar-marker.event-marker i{border-radius:3px}.calendar-dots.multiple .calendar-marker{width:26px;min-width:26px;height:11px}.calendar-dots.multiple .calendar-marker i{width:26px;height:11px}.marker-symbol{font-size:8px}.calendar-more{font-size:13px}.calendar-marker b{display:none}.mobile-feedback{z-index:8;color:#fff;background:#7465dc;border-radius:999px;padding:13px 17px;font-size:13px;font-weight:700;display:block;position:fixed;bottom:16px;right:16px;box-shadow:0 8px 20px #5146a852}.mobile-admin{color:#687184;background:#fff;border:1px solid #dde0e8;border-radius:11px;width:100%;margin-top:9px;padding:13px;font-size:12px;font-weight:700;display:block}.mobile-admin.on{color:#6256cd;background:#f0edff;border-color:#c9c1ff}.feedback-back{margin-bottom:3px;padding:8px;font-size:11px}}
