/* Mobile refinements preserve the original KU palette and card layout. */
:root{--host-badge-space:0px}
@media(max-width:840px){body:has(iframe#nl-badge-frame){--host-badge-space:64px}}
#app{padding-bottom:calc(86px + env(safe-area-inset-bottom,0px) + var(--host-badge-space))}
.bottom{bottom:var(--host-badge-space);height:calc(70px + env(safe-area-inset-bottom,0px))}
.top{height:auto;min-height:128px;padding:32px 16px 0}
.toprow{min-height:44px}
.headicons{gap:4px}
.iconbtn{min-width:44px;min-height:44px;display:grid;place-items:center}
.red-dot{right:9px;top:8px}
.tabs{gap:12px;margin-top:8px}
.tab{min-width:44px;min-height:44px;padding:6px 0 10px;display:flex;align-items:center;justify-content:center}
.sort{min-height:44px;font-size:12px;max-width:170px;padding:8px}
.checkline{min-height:44px}
.checkline input{width:18px;height:18px}
.bookmark{min-width:44px;min-height:44px;align-items:center;justify-content:center;margin:-8px -6px -8px 0;flex-shrink:0}
.notice-link{color:inherit;text-decoration:none;display:block}
.notice-title,.source,.detailbody h1,.detail-fact span{overflow-wrap:anywhere}
.source{min-width:0}
.primary,.ghost,.choice,.outline{min-height:44px}
.profile{flex-wrap:wrap}
.profile>div:nth-child(2){min-width:0;flex:1;overflow-wrap:anywhere}
.setting[role=button]{cursor:pointer}
.detailactions{height:auto;min-height:110px;padding:56px 16px 0}
.detailactions button{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.detailbody{padding:20px 22px calc(90px + env(safe-area-inset-bottom,0px) + var(--host-badge-space))}
.detailbody h1{font-size:clamp(22px,6vw,25px)}
.detail-fact{align-items:flex-start;gap:12px}
.detail-fact b{flex:0 0 70px}
.detail-cta{flex-wrap:wrap}
.detail-cta>button{flex:1 1 135px}
.calendarbar button{min-width:44px;min-height:44px}
.overlay{padding-bottom:var(--host-badge-space)}
.modal{padding:24px 20px 28px;max-height:calc(91dvh - var(--host-badge-space))}
.modal h2{padding-right:28px}
.x{min-width:44px;min-height:44px;right:8px;top:8px}
.searchbox button{min-width:44px;min-height:44px}
.searchbox{align-items:center}
.searchbox>svg{width:22px;height:22px;flex-shrink:0}
.searchbox input,.formrow input,.formrow select{font-size:16px;min-height:44px}
.summary-close{min-width:44px;min-height:44px;right:4px;top:4px}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:3px solid #a90000;outline-offset:3px}
@media(max-width:350px){.content{padding-left:12px;padding-right:12px}.tabs{gap:10px}.detailbody{padding-left:18px;padding-right:18px}.profile{gap:8px}.outline{padding:6px 8px}}
.alertrow{min-height:44px}
.nav:focus-visible{outline-offset:-4px}
@media(max-width:380px){.calendar{padding-left:0;padding-right:0}}
@media(max-width:350px){.calendar{margin-left:-6px;margin-right:-6px;gap:0}}
.deadline-manager{background:#fff;border:1px solid #eee;border-radius:12px;padding:16px;margin:12px 0 16px}
.deadline-manager h2,.application-status h2{font-size:17px;margin:0 0 8px;color:var(--red)}
.deadline-manager p,.application-status p{font-size:13px;line-height:1.6}
.deadline-next{display:flex;flex-direction:column;gap:8px;width:100%;padding:12px;text-align:left;background:#fff6f6;border:1px solid #e7caca;border-radius:8px;cursor:pointer;color:#333;min-height:44px}
.deadline-next span{color:var(--red);font-weight:700}.deadline-next strong{font-size:14px;line-height:1.5}.deadline-next small{font-size:12px;color:#666}
.application-status{border-top:1px solid #ddd;margin-top:28px;padding-top:22px}
.completion-label{color:#17602a;font-weight:700;font-size:12px;margin:8px 0 0}
.interest-panel{background:white;border:1px solid #ead4d4;border-radius:14px;padding:14px;margin:12px 0}
.interest-panel h2{font-size:16px;color:var(--red);margin:0}
.interest-panel .ghost{margin-top:8px}
.interest-sentence{overflow-wrap:anywhere}
.recommendation-reason{font-size:12px;color:#800026;margin:8px 0 0}
.interest-setting{width:100%;background:white;border:0;text-align:left;cursor:pointer}
#personalSentence{display:block;box-sizing:border-box;width:100%;font:inherit;font-size:16px;padding:10px;border:1px solid #aaa;border-radius:8px}
#interestError{font-size:13px;color:#900}
