/* Consistent card actions across screen sizes. */
.task-card .actions,.course-card .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch;border-top:1px solid #e6edf5;padding-top:16px;margin-top:18px}
.task-card .actions>.inline{grid-column:1/-1;margin:0}
.task-card .actions>.inline button{width:100%;background:#153454;color:#fff}
.task-card .actions>.button,.course-card .actions>.button,.task-card .actions>.inline button{border-radius:10px;min-height:44px;font-size:14px;line-height:1.4;padding:11px 10px;text-align:center;white-space:normal;margin:0;width:100%;font-weight:600}
.task-card .actions>a[target=_blank]{grid-column:1/-1}
.course-card .actions>.button:first-child{background:#153454;color:white}
.task-card h3,.course-card h3{line-height:1.5;margin:6px 0 12px}
.task-card>small{display:block;line-height:1.6}
.card p:empty{display:none}
.summary-info .info-link{display:flex;flex-direction:column}
.summary-info .info-link>span:last-child{margin-top:auto;padding-top:12px}
.summary-info .info-link>.button:last-child{padding:10px 14px;margin-top:auto;align-self:flex-start}
@media(max-width:700px){
 html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
 body{font-size:15px;line-height:1.65}
 .shell{padding:20px 16px calc(100px + env(safe-area-inset-bottom))}
 .top{gap:12px;margin-bottom:20px}
 .university-brand{gap:10px;width:100%}
 .university-brand img{width:44px;height:46px}
 .university-name{min-width:0;gap:2px}
 .university-name strong{font-size:16px;line-height:1.4;letter-spacing:-.3px}
 .university-name>span,.university-name small{font-size:12px;line-height:1.5}
 #install-open{margin-left:54px;min-height:38px;padding:8px 13px;border-radius:9px}
 h1{font-size:26px;line-height:1.3;margin:0 0 10px}
 h2{font-size:19px;line-height:1.4}
 h3{font-size:17px}
 .hero{padding:24px;border-radius:18px;min-height:0;gap:14px;margin-bottom:18px}
 .hero h1{font-size:29px;line-height:1.25}
 .hero .button{border-radius:10px}
 .summary-info.has-resources{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:28px}
 .summary-info.has-resources .stat{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:12px;padding:17px 18px;border-radius:14px;grid-column:auto}
 .summary-info.has-resources .stat strong{font-size:30px;line-height:1.2;letter-spacing:-1px}
 .summary-info.has-resources .stat span{font-size:14px}
 .summary-info.has-resources .stat .action-button{margin:0;align-self:center;min-height:42px;padding:10px 12px;font-size:12px;border-radius:9px;white-space:nowrap}
 .summary-info.has-resources .info-link{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:17px 18px;border-radius:14px;align-items:center;box-shadow:none}
 .summary-info.has-resources .info-link h2{font-size:16px;line-height:1.5;margin:0}
 .summary-info.has-resources .info-link p{grid-column:1;font-size:13px;line-height:1.6;margin:0;color:#65768c}
 .summary-info.has-resources .info-link>span:last-child{grid-column:2;grid-row:1/3;align-self:center;margin:0;padding:9px 11px;font-size:12px;line-height:1.5;border-radius:9px;background:#eaf2fc;color:#254d7e;font-weight:600;white-space:nowrap}
 .head{gap:12px;margin-bottom:18px}
 .grid.actions{display:grid;gap:26px;margin-top:20px}
 .grid.actions>section>.head{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px}
 .grid.actions>section>.head h2{margin:0;font-size:18px}
 .grid.actions>section>.head .button{font-size:12px;padding:10px 12px;min-height:42px;border-radius:9px;white-space:nowrap}
 .grid{gap:14px}.stack{gap:14px}
 .card,.card.meeting-card{padding:18px;border-radius:16px;border:1px solid #e0e7f0;box-shadow:0 3px 12px #10264704}
 .card small,.task-card>small{font-size:13px;line-height:1.6}
 .card h3{font-size:17px;letter-spacing:-.2px}
 .card p{font-size:14px;line-height:1.75;margin:10px 0}
 .badge{font-size:12px;line-height:1.5;padding:5px 9px;border-radius:7px;margin-bottom:8px}
 .task-card>p>strong{font-size:15px}
 .task-card .actions,.course-card .actions{margin-top:16px;padding-top:14px;gap:8px}
 .task-card .actions>.button,.course-card .actions>.button,.task-card .actions>.inline button{font-size:13px;min-height:44px}
 .course-card>.muted{font-size:14px;color:#617189}
 .meeting-title{display:flex;flex-direction:column;align-items:flex-start;gap:7px;margin-bottom:12px}
 .meeting-title h3{font-size:17px}
 .meeting-card .badge.done{font-size:11px;padding:4px 8px}
 .meeting-card .meeting-date{font-size:13px;margin:0 0 16px!important;line-height:1.6}
 .meeting-field{grid-template-columns:56px minmax(0,1fr);font-size:14px;gap:8px;margin:10px 0;line-height:1.7}
 .meeting-field strong{font-size:14px}
 .meeting-card .actions{padding-top:14px;margin-top:16px;gap:8px}
 .meeting-card .actions>.button{font-size:13px;min-height:44px;border-radius:10px}
 .form,.resource-form{padding:18px}
 input,select,textarea{font-size:16px}
 nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;border-radius:16px 16px 0 0;padding:10px 8px calc(10px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -3px 15px #10264708}
 nav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 3px;font-size:11px;line-height:1.35;text-align:center;border-radius:10px;letter-spacing:-.2px}
 footer{font-size:12px;margin-top:28px}
 .resource-embedded .shell{padding:16px}
}
@media(max-width:340px){
 .summary-info.has-resources .info-link{grid-template-columns:1fr}
 .summary-info.has-resources .info-link>span:last-child{grid-column:1;grid-row:auto;justify-self:start}
 .grid.actions>section>.head{flex-wrap:wrap}
}

@media(max-width:700px){.filter>div:first-of-type,.filter>div:last-of-type{grid-column:1/-1}.filter>button,.filter>a{order:2;min-height:44px;border-radius:10px;text-align:center}.filter{gap:14px;padding:18px}.filter label{font-size:13px}}

.nav-icon{display:none}@media(max-width:700px){nav[aria-label="Navigasi utama"]{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:9px;background:rgba(255,255,255,.97);border:1px solid #e3eaf3;border-radius:22px;box-shadow:0 8px 32px rgba(16,38,71,.15);backdrop-filter:blur(16px);margin:0}nav .nav-label{display:none}nav .nav-icon{display:block;width:23px;height:23px;flex-shrink:0}nav a{position:relative;display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px;border-radius:15px;color:#6b7e94;background:transparent;transition:background .18s,color .18s,box-shadow .18s}nav a.active{background:#102647;color:#fff;box-shadow:0 4px 10px rgba(16,38,71,.19)}nav a:not(.active):hover{background:#edf4fd;color:#173e6b}nav a:focus-visible{outline:3px solid #74a9e8;outline-offset:2px}.shell{padding-bottom:calc(110px + env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){nav a{transition:none}}

/* Course workspace cards */
.course-grid{align-items:start}.card.premium-course{position:relative;border:1px solid #dae5f1;border-radius:22px;padding:24px;background:linear-gradient(145deg,#f7faff 0%,#fff 48%);box-shadow:0 6px 24px #173e6b06}.course-topline{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.course-code{font-size:11px;letter-spacing:.12em;font-weight:600;color:#51739b;background:#eaf2fc;padding:6px 9px;border-radius:7px}.course-manage{position:relative}.course-manage summary{list-style:none;cursor:pointer;min-width:44px;min-height:44px;display:grid;place-items:center;color:#56708d;letter-spacing:2px;border-radius:10px}.course-manage summary::-webkit-details-marker{display:none}.course-manage summary:hover,.course-manage[open] summary{background:#e7eff9}.course-manage>div{position:absolute;right:0;top:46px;z-index:5;width:190px;border:1px solid #dfe8f2;background:#fff;border-radius:12px;padding:6px;box-shadow:0 12px 32px #10264720}.course-manage a{display:block;padding:11px 12px;font-size:13px;border-radius:7px;color:#21466f}.course-manage a:hover{background:#edf4fd;text-decoration:none}.course-manage .manage-delete{color:#b12c48}.premium-course h3{font-size:20px;letter-spacing:-.4px;line-height:1.45;margin:0 0 16px}.course-lecturer{display:flex;align-items:flex-start;gap:10px;min-height:44px;margin-bottom:18px}.course-lecturer svg{width:18px;height:18px;flex-shrink:0;color:#6f87a2;margin-top:3px}.course-lecturer p{margin:0;font-size:14px;line-height:1.7;color:#61758f}.course-schedule{display:flex;align-items:center;gap:12px;background:#edf4fd;border:1px solid #e2ecf9;border-radius:13px;padding:14px;margin-bottom:20px}.course-schedule>svg{width:23px;height:23px;flex-shrink:0;color:#295487}.course-schedule strong{display:block;font-size:14px;font-weight:600;color:#183d66}.course-schedule small{display:block;font-size:12px;color:#59718e;margin-top:2px}.course-credits{margin-left:auto;font-size:11px;background:#fff;padding:5px 8px;border-radius:6px;color:#42658c;white-space:nowrap}.course-progress{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#627a95;margin-bottom:7px}.course-progress strong{color:#1e4677;font-weight:600}.course-progress strong span{font-weight:400;color:#8395ab}.premium-course progress{display:block;height:5px;border-radius:9px;accent-color:#376da5;margin:0}.premium-course progress::-webkit-progress-bar{background:#e9eff7}.premium-course progress::-webkit-progress-value{background:#376da5}.course-detail{margin-top:15px;font-size:12px;color:#5a718b}.course-detail summary{cursor:pointer;min-height:30px;padding:5px 0}.course-detail p{font-size:12px;line-height:1.7}.premium-course .actions{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:10px;padding-top:18px;margin-top:18px;border-color:#e6edf5}.premium-course .actions>.button{min-height:46px;font-size:13px;border-radius:11px;gap:9px}.premium-course .course-primary{background:#143555;color:white}.course-primary>span{margin-left:auto;font-size:18px}.premium-course .actions svg{width:17px;height:17px;flex-shrink:0}.premium-course .actions>a[target=_blank]{grid-column:1/-1}.course-manage summary:focus-visible,.course-detail summary:focus-visible{outline:3px solid #89b6ec;outline-offset:2px}@media(max-width:700px){.card.premium-course{padding:20px;border-radius:19px}.course-topline{margin-bottom:10px}.premium-course h3{font-size:18px;line-height:1.5;margin-bottom:14px}.course-lecturer{margin-bottom:16px;min-height:0}.course-lecturer p{font-size:13px}.course-schedule{padding:12px;margin-bottom:17px}.premium-course .actions>.button{font-size:12px;min-height:46px}.course-grid{gap:16px}}

.card.modern-meeting{padding:24px;border:1px solid #dae5f1;border-radius:22px;background:linear-gradient(145deg,#f7faff,#fff 55%);box-shadow:0 6px 24px #173e6b06}.card.modern-meeting.is-complete{background:linear-gradient(145deg,#edf5ff,#f9fbff);border-color:#cddff5}.meeting-kicker{display:block;font-size:10px;letter-spacing:.14em;font-weight:600;color:#6883a1;margin-bottom:5px}.modern-meeting .meeting-title{align-items:center;margin-bottom:16px}.modern-meeting .meeting-title h3{font-size:20px;margin:0;line-height:1.5}.modern-meeting .meeting-date{display:block;background:#eaf2fd;color:#315b87;border-radius:11px;padding:11px 13px;font-size:13px;margin:0 0 18px!important}.modern-meeting .meeting-field{margin:13px 0;font-size:14px;line-height:1.75}.meeting-description{margin-top:18px;padding:15px;border:1px solid #dfe9f5;border-radius:12px;background:#ffffffb8;overflow-wrap:anywhere}.meeting-description h4{margin:0 0 9px;font-size:12px;font-weight:600;color:#4b6889}.meeting-description .meeting-note{margin:0;font-size:14px;line-height:1.8;white-space:pre-wrap}.description-link{color:#1a5dad;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.description-link:hover{color:#102647}.meeting-zoom{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;font-size:12px;flex-wrap:wrap}.meeting-zoom span{color:#627a95}.meeting-zoom strong{background:#eaf2fc;border-radius:8px;padding:9px 12px;font-size:12px;color:#214e80}.modern-meeting .actions{margin-top:18px;padding-top:18px;gap:9px}.modern-meeting .actions>.button{border-radius:11px;min-height:46px;font-size:13px}.modern-meeting .badge.done{border-radius:7px;background:#dfeeff;color:#2c5b91;font-size:11px}@media(max-width:700px){.card.modern-meeting{padding:20px;border-radius:19px}.modern-meeting .meeting-title{align-items:flex-start;gap:10px;flex-direction:row;flex-wrap:wrap}.modern-meeting .meeting-title h3{font-size:18px}.modern-meeting .meeting-title .badge{margin-top:4px}.meeting-description{padding:13px}.modern-meeting .meeting-date{font-size:12px;line-height:1.7}.modern-meeting .actions>.button{font-size:12px}}
