.web-app .pwa-status{padding:12px 16px;margin-bottom:20px;background:#eaf0f5;border-radius:9px;font-size:13px}.web-app .pwa-status span{margin-left:10px}.web-app .pwa-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}.web-app .pwa-actions details{flex:1;min-width:180px}.web-app .pwa-actions summary{padding:8px 0;cursor:pointer}.web-app .notice{background:#fff4d8;padding:12px 16px;border-radius:8px;overflow-wrap:anywhere}.web-app .backup-summary{display:grid;grid-template-columns:auto 1fr;gap:10px 20px}.web-app .backup-summary dd{margin:0;overflow-wrap:anywhere}.web-app .checkbox-label{display:flex;gap:12px;align-items:center}.web-app .checkbox-label input{width:24px;min-height:24px;flex-shrink:0}.web-app .save-status,.web-app .data-location{overflow-wrap:anywhere}.web-app .dialog{max-height:calc(var(--visible-height, 100dvh) - 32px);scroll-padding-bottom:100px}.web-app .dialog .actions{position:sticky;bottom:-24px;background:#fff;padding:12px 0;z-index:2}.web-app dialog.web-confirm,.web-app dialog.web-file-picker{border:0;border-radius:12px;width:min(90vw,500px);max-height:calc(var(--visible-height, 100dvh) - 48px);padding:24px;overflow:auto;color:#29323c;box-shadow:0 12px 60px #15223655}.web-app dialog::backdrop{background:#1d293877}.web-app .web-confirm div{display:flex;gap:12px;justify-content:flex-end}.web-app .web-confirm p{margin:0 0 24px;line-height:1.7}@media(max-width:700px){.web-app{font-size:15px}.web-app .app-shell{display:block;min-height:100dvh}.web-app .sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid #dfe5ec;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 12px max(12px,env(safe-area-inset-left))}.web-app .brand{margin-bottom:12px;font-size:17px}.web-app .brand small{display:none}.web-app .sidebar nav{display:flex;overflow-x:auto;gap:6px;padding-bottom:4px}.web-app .sidebar nav button{flex-shrink:0;padding:8px 12px;white-space:nowrap}.web-app .legend,.web-app .local-info{display:none}.web-app .workspace{padding:16px max(12px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.web-app h1{font-size:21px;overflow-wrap:anywhere}.web-app h2{font-size:18px}.web-app .eyebrow{display:none}.web-app button{min-height:44px}.web-app input,.web-app select,.web-app textarea{font-size:16px;min-width:0;min-height:44px}.web-app .panel{padding:16px;margin:16px 0}.web-app .welcome{padding:12px;gap:8px;flex-wrap:wrap}.web-app .welcome div{flex-basis:100%}.web-app .steps{gap:10px;font-size:13px;margin:20px 0;justify-content:space-between}.web-app .steps li{gap:4px}.web-app .steps li span{width:22px;height:22px;flex-shrink:0}.web-app .table-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.web-app .table-wrap table{min-width:610px}.web-app .calendar-toolbar{gap:8px;flex-wrap:wrap}.web-app .calendar-surface{overflow-x:auto}.web-app .calendar-surface.week-scroll .fc{min-width:780px}.web-app .period-row{grid-template-columns:42px minmax(0,1fr) 16px minmax(0,1fr) 44px;gap:4px}.web-app .period-row input{padding:6px 2px}.web-app .period-row button{padding:4px}.web-app .section-title{gap:12px;align-items:center}.web-app .section-title h2{margin:0}.web-app .overlay{padding:8px;align-items:flex-start;top:var(--viewport-top, 0px);height:var(--visible-height, 100dvh);bottom:auto}.web-app .dialog{width:100%;padding:18px;max-height:calc(var(--visible-height, 100dvh) - 16px);border-radius:10px;overflow-y:auto;overscroll-behavior:contain}.web-app .dialog .actions{bottom:-18px}.web-app .page-header{gap:10px}.web-app .page-header button{flex-shrink:0}.web-app .fields{gap:10px}.web-app .pwa-status{padding:10px 12px;font-size:12px}.web-app .pwa-status span{display:block;margin:4px 0 0}}@media(max-width:450px){.web-app .course-fields{grid-template-columns:1fr;gap:0}.web-app .page-header{align-items:flex-start}.web-app .metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}}
