:root{--primary:#f26522;--primary-dark:#d95316;--text:#20242a;--muted:#66707a;--border:#dfe3e7;--surface:#fff;--bg:#f3f5f7;--danger:#a52a2a;--success:#267447;--radius:10px;--shadow:0 4px 18px rgba(25,35,45,.07)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:#973b10;text-underline-offset:3px}a:hover{color:var(--primary-dark)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid rgba(242,101,34,.35);outline-offset:2px}.site-main{width:min(1120px,calc(100% - 32px));margin:24px auto}.portal-header,.portal-content,.portal-footer{background:var(--surface)}.portal-header{border-radius:var(--radius) var(--radius) 0 0;box-shadow:var(--shadow);overflow:hidden}.portal-nav{display:flex;align-items:stretch;gap:4px;min-height:54px;padding:6px 18px;border-bottom:1px solid var(--border);overflow-x:auto}.portal-nav a{display:inline-flex;align-items:center;min-height:42px;padding:8px 14px;border-radius:7px;color:#3c444c;font-size:.92rem;font-weight:650;text-decoration:none;white-space:nowrap}.portal-nav a:hover{background:#fff2eb}.portal-nav a.active{background:var(--primary);color:#fff}.nav-spacer{margin-left:auto}.portal-content{min-height:380px;padding:clamp(22px,4vw,42px);box-shadow:var(--shadow)}.site-main>.portal-content:first-child{border-radius:var(--radius) var(--radius) 0 0}h1,h2,h3{margin-top:0;line-height:1.25}h1{font-size:clamp(1.65rem,3vw,2.2rem)}h2{margin-top:32px;font-size:clamp(1.35rem,2.5vw,1.7rem)}h3{font-size:1.1rem}.page-intro,.lead{max-width:760px;color:var(--muted);font-size:1.05rem}.page-actions,.action-group{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.panel{margin:22px 0;padding:22px;border:1px solid var(--border);border-radius:var(--radius);background:#fafbfc}.dashboard-grid,.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}.dashboard-card,.category-card,.exercise-card{display:flex;min-height:145px;flex-direction:column;padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:0 3px 12px rgba(25,35,45,.05);color:var(--text);text-decoration:none}.dashboard-card:hover,.category-card:hover,.exercise-card:hover{border-color:var(--primary);color:var(--text);transform:translateY(-2px)}.dashboard-card strong,.category-card strong,.exercise-card strong{font-size:1.15rem}.dashboard-card span,.category-card span,.exercise-card span{margin:7px 0;color:var(--muted)}.dashboard-card em,.category-card em,.exercise-card em{margin-top:auto;color:#973b10;font-style:normal;font-weight:700}.exercise-list{display:grid;gap:14px}.exercise-card{min-height:110px}.table-wrap{overflow-x:auto;margin:18px 0;border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;min-width:760px;border-collapse:collapse;font-size:.92rem}th,td{padding:13px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{background:#f7f8f9;color:#4c555d;font-size:.78rem;text-transform:uppercase}form:not(.inline){max-width:720px;margin:20px 0;padding:22px;border:1px solid var(--border);border-radius:var(--radius);background:#fafbfc}form.inline{display:inline;margin:0;padding:0;border:0}label{display:block;margin-bottom:17px;font-weight:650}label small{display:block;color:var(--muted);font-weight:400}input:not([type=checkbox]),select,textarea{display:block;width:100%;max-width:540px;min-height:44px;margin-top:6px;padding:9px 11px;border:1px solid #bfc6cc;border-radius:7px;background:#fff;color:var(--text);font:inherit}textarea{resize:vertical}.check{font-weight:500}.check input{margin-right:7px}button,.btn,.btn-secondary,.btn-danger{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 15px;border:1px solid transparent;border-radius:7px;cursor:pointer;font:inherit;font-size:.9rem;font-weight:700;text-decoration:none}button,.btn{background:var(--primary);color:#fff}button:hover,.btn:hover{background:var(--primary-dark);color:#fff}.btn-secondary{border-color:#c9cfd4;background:#fff;color:#343a40}.btn-danger{border-color:#efc1c1;background:#fff5f5;color:var(--danger)}button:disabled{cursor:not-allowed;opacity:.45}.message{margin:16px 0;padding:13px 15px;border-left:4px solid;border-radius:7px}.message.error{border-color:var(--danger);background:#fff0f0;color:#831e1e}.message.success{border-color:var(--success);background:#eaf7ef;color:#1f603b}.message.info,.message.warning{border-color:#9b6b11;background:#fff5d8;color:#694908}.status{display:inline-flex;padding:3px 9px;border-radius:999px;font-size:.8rem;font-weight:700}.status.active{background:#eaf7ef;color:var(--success)}.status.inactive{background:#eee;color:#555}.media-admin-list{display:grid;gap:10px;margin:18px 0}.media-admin-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--border);border-radius:8px}.media-admin-item small{display:block;color:var(--muted)}.exercise-detail section{margin-top:32px}.formatted-text,.note{max-width:820px}.note{margin:26px 0;padding:18px;border-left:5px solid var(--primary);background:#fff5ee}.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.media-card{padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.media-card img,.media-card video{display:block;width:100%;max-height:520px;border-radius:7px;object-fit:contain;background:#f2f2f2}.download-card{display:flex;align-items:center;gap:12px;min-height:72px;padding:15px;border:1px solid var(--border);border-radius:8px;text-decoration:none;font-weight:700}.external-video{padding:20px;background:#f5f6f7;text-align:center}.external-video iframe{width:100%;aspect-ratio:16/9;border:0}.portal-footer{padding:18px clamp(22px,4vw,42px) 24px;border-top:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow);font-size:.9rem}.portal-footer details{margin:7px 0}.portal-footer summary{cursor:pointer;font-weight:650}.disclosure{max-width:780px;margin-top:8px;padding:14px;border-left:3px solid var(--primary);background:#f7f8f9}dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px}dt{font-weight:700}dd{margin:0}code{font-size:1.02em}@media(max-width:760px){.site-main{width:min(100% - 16px,1120px);margin:8px auto}.portal-nav{padding:6px 10px}.portal-nav a{padding:8px 11px}.portal-content{padding:22px 16px 30px}.dashboard-grid,.category-grid,.media-grid{grid-template-columns:1fr}form:not(.inline){padding:17px}.media-admin-item{align-items:flex-start;flex-direction:column}button,.btn,.btn-secondary,.btn-danger{min-height:44px}}

.exercise-section-title{font-size:1.25rem}
.media-admin-summary{display:flex;align-items:center;gap:14px;min-width:0}
.media-admin-thumbnail{display:block;width:86px;height:64px;border:1px solid var(--border);border-radius:7px;background:#f2f2f2;object-fit:cover}
.media-edit-preview{display:flex;max-width:720px;align-items:flex-end;gap:14px;margin:18px 0 24px}
.media-edit-preview img{display:block;width:min(320px,100%);max-height:240px;border:1px solid var(--border);border-radius:8px;background:#f2f2f2;object-fit:contain}
@media(max-width:760px){.media-edit-preview{align-items:flex-start;flex-direction:column}}

.image-thumbnail-button,.patient-image-preview{padding:0;border:0;background:transparent;color:inherit}
.image-thumbnail-button:hover,.patient-image-preview:hover{background:transparent;color:inherit}
.patient-image-preview{display:block;width:100%;text-align:left}
.patient-image-preview img{width:100%;height:190px;object-fit:cover}
.patient-image-preview span{display:block;margin-top:8px;color:#973b10;font-size:.9rem;font-weight:700;text-align:center}
.portal-modal{width:min(920px,calc(100% - 30px));max-width:none;max-height:90vh;padding:0;border:0;border-radius:12px;background:#fff;box-shadow:0 20px 70px rgba(0,0,0,.3)}
.portal-modal::backdrop{background:rgba(18,24,30,.72)}
.portal-modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--border)}
.portal-modal-close{width:42px;min-height:42px;padding:0;border-radius:50%;background:#f1f2f3;color:#20242a;font-size:1.6rem}
.portal-modal-close:hover{background:#e4e6e8;color:#20242a}
.portal-modal-content{overflow:auto;max-height:calc(90vh - 67px);padding:18px;text-align:center}
.portal-modal-image{display:block;max-width:100%;max-height:calc(90vh - 105px);margin:auto;object-fit:contain}
.portal-modal-wide{width:min(1120px,calc(100% - 20px));height:min(90vh,900px)}
.portal-modal-wide .portal-modal-content{height:calc(100% - 67px);padding:0}
.portal-modal-frame{display:block;width:100%;height:100%;border:0;background:#f3f5f7}
body:has(.portal-modal[open]){overflow:hidden}
@media(max-width:760px){.patient-image-preview img{height:160px}.portal-modal-content{padding:10px}}
.embedded-preview{background:#fff}.embedded-preview .site-main{width:100%;margin:0}.embedded-preview .portal-content{min-height:0;padding:clamp(22px,4vw,42px);box-shadow:none}
.patient-image-preview{display:flex;width:fit-content;max-width:100%;flex-direction:column;align-items:center;margin:0 auto}
.patient-image-preview img{width:auto;max-width:100%;height:auto;max-height:240px;object-fit:contain}
@media(max-width:760px){.patient-image-preview img{width:auto;height:auto;max-height:210px}}
.install-app h2{margin-top:0}.install-app ol{padding-left:1.4rem}.install-app li+li{margin-top:7px}.install-app-note{min-height:1.5em;color:var(--muted)}.install-app-privacy{margin-top:18px;color:var(--muted);font-size:.9rem}
.mail-template-disclosure{margin-top:16px}.mail-template-disclosure summary{width:fit-content;cursor:pointer;font-weight:700}.mail-template{max-width:720px;margin-top:12px;padding:18px;border:1px solid #b9ddc8;border-radius:7px;background:#fff;color:var(--text)}.mail-template p:first-child{margin-top:0}.mail-template p:last-child{margin-bottom:0}

/* Sequential exercise elements and admin sorting */
.media-grid{max-width:820px;grid-template-columns:minmax(0,1fr)}
.media-card video{width:min(100%,420px);max-height:320px}
.external-video{max-width:560px}
.media-admin-item{background:#fff}
.media-admin-item.is-dragging{opacity:.45;border-color:var(--primary)}
.media-admin-controls{display:flex;align-items:center;gap:10px}
.media-admin-controls .action-group{margin-bottom:0}
.media-drag-handle{flex:0 0 44px;width:44px;padding:0;border-color:#c9cfd4;background:#fff;color:#343a40;cursor:grab;font-size:1.35rem}
.media-drag-handle:hover{background:#fff2eb;color:#343a40}
.media-drag-handle:active{cursor:grabbing}
.media-sort-status{min-height:1.5em;color:var(--success);font-size:.9rem}
.media-sort-status.error{color:var(--danger)}
.media-admin-video{object-fit:contain}
.media-admin-pdf{pointer-events:none}
.media-admin-placeholder{display:inline-flex;width:86px;height:64px;flex:0 0 86px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:7px;background:#f2f2f2;color:#59636c;font-size:1.5rem}
.media-admin-text-icon{font-family:Georgia,serif;font-weight:700}
.media-edit-preview video{display:block;width:min(520px,100%);max-height:340px;border-radius:8px;background:#111}
.portal-modal-video{display:block;max-width:100%;max-height:calc(90vh - 105px);margin:auto}
@media(max-width:760px){.media-admin-controls{width:100%;justify-content:space-between}}

.admin-sort-list{display:grid;gap:10px;margin:18px 0}
.admin-sort-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--border);border-radius:8px;background:#fff}
.admin-sort-item.is-dragging{opacity:.45;border-color:var(--primary)}
.admin-sort-summary{min-width:0}
.admin-sort-summary strong,.admin-sort-summary small{display:block}
.admin-sort-summary small{margin-top:4px;color:var(--muted)}
.admin-sort-controls{display:flex;align-items:center;gap:10px}
.admin-sort-controls .action-group{margin-bottom:0}
@media(max-width:760px){.admin-sort-item{align-items:flex-start;flex-direction:column}.admin-sort-controls{width:100%;justify-content:space-between}}

.table-meta{display:grid;gap:3px;min-width:190px}
.table-meta strong{color:#4c555d;font-size:.8rem}
.compact-admin-table{min-width:620px}
.portal-nav .nav-logout{display:flex;align-items:stretch}
.portal-nav .nav-logout button{min-height:42px;padding:8px 14px;border:0;border-radius:7px;background:transparent;color:#3c444c;font-size:.92rem;font-weight:650;white-space:nowrap}
.portal-nav .nav-logout button:hover{background:#fff2eb;color:#3c444c}
