@layer components{.letter-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.letter-head .lead{margin:0}.board-table .col-author{text-align:center;width:96px;color:var(--color-body);font-size:14px}.board-table .col-status{text-align:center;width:100px}.letter-chip{background:var(--color-fill-weak-strong);color:var(--color-muted-foreground)}.letter-chip.done{background:var(--color-fill-blue-weak);color:var(--color-primary)}.letter-form{max-width:560px}@media (min-width:1024px){.letter-form{max-width:1040px}.letter-col-student{max-width:480px}.letter-cols.is-open{grid-template-columns:minmax(0,380px) minmax(0,1fr);align-items:start;gap:48px;display:grid}.letter-cols.is-open .letter-col-student{max-width:none;top:calc(var(--gnb-h,56px) + 24px + var(--gnb-off,0px));position:sticky}}.letter-back{margin-bottom:16px}.letter-body{resize:vertical;display:block}.letter-msg{color:var(--color-danger);margin:0 0 12px}.letter-inline{gap:8px;display:flex}.letter-inline .form-control{flex:1;min-width:0}.letter-inline .btn{flex:none}.letter-help{color:var(--color-caption);margin:8px 0 0;font-size:12px}.letter-note{background:var(--color-fill-weak);border-radius:var(--radius-md);color:var(--color-body);margin:8px 0 0;padding:12px 16px;font-size:14px;line-height:1.6}.letter-note p{margin:0 0 10px}.letter-ok{color:var(--color-body);align-items:center;gap:6px;margin:10px 0 0;font-size:14px;display:flex}.letter-ok svg{color:var(--color-primary);flex:none}.letter-ok b{color:var(--color-foreground);font-weight:600}.letter-submit{width:100%}.letter-col-letter{scroll-margin-top:calc(var(--gnb-h,56px) + 16px);animation:.35s both letter-in}@keyframes letter-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.letter-col-letter{animation:none}}.letter-pw{max-width:400px}.letter-card{background:var(--color-fill-weak);border-radius:var(--radius-xl);padding:20px}.letter-card>.form-group:last-child{margin-bottom:0}:is(.letter-card,.letter-pw) .form-control,.letter-card .letter-note{background:var(--color-background)}@media (min-width:640px){.letter-card{padding:24px}}.letter-sec{margin:40px 0 16px}.letter-photos{flex-wrap:wrap;gap:8px;display:flex}.letter-photo,.letter-photo-add{border-radius:var(--radius-md);background:var(--color-fill-weak);width:80px;height:80px;position:relative;overflow:hidden}.letter-photo img{object-fit:cover;width:100%;height:100%}.letter-photo button{color:#fff;background:#191f2899;border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:4px;right:4px}.letter-photo-add{border:1px dashed var(--color-border-strong);color:var(--color-muted-foreground);cursor:pointer;place-items:center;display:grid}.letter-photo-add:hover{color:var(--color-foreground)}.letter-title-btn{text-align:left;width:100%;color:inherit;cursor:pointer;display:block}.letter-title-btn:hover .board-title{text-underline-offset:3px;text-decoration:underline}.letter-photo-ic{vertical-align:-2px;color:var(--color-muted-foreground);margin-left:6px;display:inline}.letter-table tr.is-open td{border-bottom-color:#0000}.letter-open-row td{background:var(--color-fill-weak);padding:18px 16px}.letter-open{max-width:720px}.letter-detail-meta{color:var(--color-body);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;font-size:14px;display:flex}.letter-detail-badges{flex-wrap:wrap;gap:6px;display:flex}.letter-detail-body{white-space:pre-wrap;word-break:break-word;color:var(--color-foreground);margin:16px 0 0;font-size:15px;line-height:1.75}.letter-detail-photos{gap:8px;margin-top:16px;display:grid}.letter-detail-photos img{border-radius:var(--radius-md);max-width:100%;height:auto;display:block}.letter-detail-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:18px;display:flex}.letter-del{background:var(--color-danger);border-color:var(--color-danger)}.board-table{border-collapse:collapse;width:100%;font-size:14px}.board-table th{text-align:left;color:var(--color-caption);border-bottom:1px solid var(--color-border);padding:14px 10px;font-size:12px;font-weight:400}.board-table td{border-bottom:1px solid var(--color-border);color:var(--color-foreground);padding:15px 10px}.board-table td.title-cell{overflow:hidden}.board-title{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.board-meta{display:none}.board-table .col-num{text-align:center;width:36px;color:var(--color-muted-foreground)}.board-table .col-date{width:88px;color:var(--color-muted-foreground);white-space:nowrap;font-size:12px}.board-table .col-views{text-align:right;width:56px;color:var(--color-muted-foreground);font-size:12px}@media (max-width:640px){.board-table .col-views,.board-table .col-date{display:none}.board-title{white-space:normal}.board-meta{color:var(--color-muted-foreground);margin-top:5px;font-size:12px;display:block}}.board-table tr.pinned td{background:var(--color-fill-weak)}.board-table tr.pinned .title-cell{color:var(--color-foreground);font-weight:500}.board-table tr.pin-last td{border-bottom:1px solid var(--color-border-strong)}.board-pin{color:var(--color-primary);justify-content:center;align-items:center;display:inline-flex}.column-grid{grid-template-columns:1fr;gap:20px;margin-top:24px;display:grid}@media (min-width:640px){.column-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.column-grid{grid-template-columns:repeat(3,1fr)}}.column-card{text-align:left;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-background);flex-direction:column;display:flex;overflow:hidden}.column-card .gray-box{border:none;border-bottom:1px solid var(--color-border);border-radius:0}@media (max-width:639px){.column-grid{gap:28px}.column-card{background:0 0;border:0;border-radius:0;flex-direction:row;align-items:start;gap:14px;overflow:visible}.column-card .gray-box,.column-card .placeholder{aspect-ratio:4/3;border-radius:var(--radius-lg);border:0;flex:0 0 116px;height:auto;overflow:hidden}.column-card .gray-box{position:relative}.column-card .gray-box img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.column-card .column-card-body{gap:6px;min-width:0;padding:0}.column-card .column-card-title{font-size:14px;line-height:1.45}.column-card .column-card-lead{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex-grow:0;display:-webkit-box;overflow:hidden}}.column-card-body{flex-direction:column;flex-grow:1;gap:8px;padding:16px 20px 20px;display:flex}.column-card-badge{align-self:flex-start}.column-card-title{color:var(--color-foreground);font-size:17px;font-weight:500;line-height:1.5}.column-card-lead{color:var(--color-body);flex-grow:1;font-size:14px;font-weight:400;line-height:1.7}.column-card-date{color:var(--color-caption);font-size:12px}.sch-tabs{border-bottom:1px solid var(--color-border);gap:20px;margin:20px 0 0;display:flex}.sch-tab{white-space:nowrap;color:var(--color-muted-foreground);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;margin-bottom:-1px;padding:11px 0;font-family:inherit;font-size:14px;text-decoration:none}.sch-tab:hover{color:var(--color-foreground)}.sch-tab.active{color:var(--color-foreground);border-bottom-color:var(--color-navy)}.sch-chips{margin:16px 0 0}.sch-monthbar{background:var(--color-muted);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;margin:22px 0 0;padding:8px 10px;display:flex}.sch-monthbar-label{letter-spacing:-.02em;color:var(--color-foreground);font-size:17px;font-weight:500}@media (min-width:640px){.sch-monthbar-label{font-size:18px}}.sch-step{border-radius:var(--radius-md);width:30px;height:30px;color:var(--color-body);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.sch-step:hover{background:var(--color-background);color:var(--color-foreground)}.sch-list{flex-direction:column;display:flex}.sch-row{grid-template-columns:58px minmax(0,1fr) auto;align-items:baseline;column-gap:12px;padding:11px 4px;display:grid}@media (min-width:640px){.sch-row{grid-template-columns:74px minmax(0,1fr) 76px;column-gap:14px;padding:12px 4px}}.sch-mgrid{margin-top:18px}@media (min-width:1024px){.sch-mgrid{grid-template-columns:330px minmax(0,1fr);align-items:start;column-gap:64px;display:grid}.sch-mgrid>.sch-list,.sch-mgrid>.sch-empty{max-width:620px}}@media (min-width:1280px){.sch-mgrid{column-gap:88px}}.sch-cal{border-collapse:collapse;table-layout:fixed;width:100%}.sch-cal th{color:var(--color-muted-foreground);border-bottom:1px solid var(--color-border);padding:8px 0;font-size:14px;font-weight:500}.sch-cal th.sun{color:var(--color-cal-sun)}.sch-cal th.sat{color:var(--color-cal-sat)}.sch-cal td{text-align:center;padding:3px 0}.sch-cal-d{border-radius:var(--radius-md);font-variant-numeric:tabular-nums;width:36px;height:36px;color:var(--color-caption);justify-content:center;align-items:center;font-size:14px;display:inline-flex}.sch-cal-d.sun{color:var(--color-cal-sun)}.sch-cal-d.sat{color:var(--color-cal-sat)}.sch-cal-d.has{background:var(--color-fill-blue-weak);color:var(--color-primary);cursor:default;font-weight:500}.sch-cal-d.today{box-shadow:inset 0 0 0 1.5px var(--color-border-strong)}.sch-cal-d.has.today{box-shadow:inset 0 0 0 1.5px var(--color-primary)}.sch-cal-d.hl{background:var(--color-primary);color:var(--color-primary-foreground);box-shadow:none}.sch-row.hl{background:var(--color-fill-weak);border-radius:var(--radius-md)}.sch-row[data-schd]{cursor:default;margin-left:-6px;margin-right:-6px;padding-left:10px;padding-right:10px;transition:background .12s}.sch-mgrid>.sch-list,.sch-mgrid>.sch-empty{border-top:1px solid var(--color-border);margin-top:18px;padding-top:6px}@media (min-width:1024px){.sch-mgrid>.sch-list,.sch-mgrid>.sch-empty{border-top:0;margin-top:-4px;padding-top:0}}.sch-date{font-variant-numeric:tabular-nums;align-items:baseline;gap:5px;display:flex}.sch-day{color:var(--color-foreground);font-size:14px;font-weight:500}.sch-dow{color:var(--color-muted-foreground);font-size:12px;font-style:normal}@media (min-width:640px){.sch-day,.sch-dow{font-size:14px}}.sch-title{color:var(--color-foreground);font-size:14px;line-height:1.5}@media (min-width:640px){.sch-title{font-size:14px}}.sch-cat{color:var(--color-muted-foreground);white-space:nowrap;text-align:right;font-size:12px}.sch-cat-exam{color:var(--color-primary)}.sch-empty{color:var(--color-muted-foreground);margin:0;padding:20px 4px;font-size:14px}.sch-year{margin-top:22px}.sch-month-block+.sch-month-block{margin-top:40px}.sch-month-head{background:var(--color-fill-weak);border-radius:var(--radius-md);cursor:pointer;text-align:left;border:0;justify-content:space-between;align-items:center;gap:9px;width:100%;padding:11px 14px;font-family:inherit;display:flex}.sch-month-head:hover{background:var(--color-fill-weak-strong)}.sch-month-name{letter-spacing:-.02em;color:var(--color-foreground);font-size:17px;font-weight:500}@media (min-width:640px){.sch-month-name{font-size:18px}}.sch-month-count{color:var(--color-muted-foreground);font-size:12px}.sch-month-block.current .sch-month-head{background:var(--color-fill-weak-strong)}.sch-month-block.current .sch-month-name,.sch-month-block.current .sch-month-count{color:var(--color-primary)}.sch-month-block .sch-list{padding-top:4px}.diet-grid{display:none}.diet-daybar{gap:4px;margin-top:18px;display:flex}.diet-daychip{border-radius:var(--radius-md);background:var(--color-fill-weak-strong);cursor:pointer;min-width:0;color:var(--color-body);border:0;flex-direction:column;flex:1;align-items:center;gap:1px;padding:8px 0;font-family:inherit;transition:background .18s,color .18s;display:flex}.diet-daychip b{font-size:14px;font-weight:500}.diet-daychip i{font-size:12px;font-style:normal}.diet-daychip:hover{color:var(--color-foreground)}.diet-daychip.active,.diet-daychip.active:hover{background:var(--color-navy);color:var(--color-background)}.diet-cards{flex-direction:column;gap:8px;margin-top:14px;display:flex}.diet-daytag{margin:0}.diet-closed{color:var(--color-muted-foreground);margin:0;font-size:13px}.diet-card{background:var(--color-muted);border-radius:var(--radius-xl);padding:14px 16px}.diet-card-label{color:var(--color-foreground);letter-spacing:-.01em;margin:0 0 8px;font-size:14px;font-weight:500}.diet-meal+.diet-meal{border-top:1px solid var(--color-border);margin-top:10px;padding-top:10px}.diet-menu{margin:0;padding:0;list-style:none}.diet-menu li{color:var(--color-body);font-size:14px;line-height:1.75}.diet-badge{margin-left:5px}.diet-badge-pick{background:var(--color-fill-blue-weak);color:var(--color-primary)}.diet-badge-day{background:var(--color-background);color:var(--color-body);margin-left:0}.diet-note{margin-top:16px}@media (min-width:1024px){.diet-daybar,.diet-cards{display:none}.diet-grid{grid-template-columns:56px repeat(var(--diet-days,7), minmax(0, 1fr));gap:6px;margin-top:20px;display:grid}.diet-cell{min-width:0}.diet-day-head{background:var(--color-fill-weak);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.diet-dow{color:var(--color-primary);font-size:14px;font-weight:500}.diet-date{color:var(--color-primary);opacity:.72;font-size:12px}.diet-meal-label{color:var(--color-muted-foreground);align-items:flex-start;padding-top:12px;font-size:12px;display:flex}.diet-grid .diet-cell:not(.diet-cell-head):not(.diet-day-head):not(.diet-meal-label){background:var(--color-muted);border-radius:var(--radius-md);padding:10px 10px 12px}.diet-grid .diet-menu li{text-align:center;font-size:12px;line-height:1.7}}}
