*,:before,:after{box-sizing:border-box}body{color:#f0ece4;background-color:#0d0d0d;margin:0;font-family:Georgia,serif}#root{flex-direction:column;min-height:100dvh;display:flex}.dev-banner{color:#000;letter-spacing:.08em;padding:calc(5px + env(safe-area-inset-top)) env(safe-area-inset-right) 5px env(safe-area-inset-left);text-align:center;background:#f5e300;font-family:monospace;font-size:13px;font-weight:700}.app{flex-direction:column;min-height:100dvh;display:flex}.header{padding:calc(12px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) 12px calc(24px + env(safe-area-inset-left));background:#111;border-bottom:2px solid #b07d2a;justify-content:space-between;align-items:center;gap:16px;display:flex}.header-left,.header-right{align-items:center;gap:14px;display:flex}.header-app-name{color:#e0b050;font-size:18px}.header-email{color:#b9b2a8;font-size:14px}.logout-btn,.tab{font:inherit;cursor:pointer}.logout-btn{color:#ddd;background:0 0;border:1px solid #444;border-radius:4px;padding:7px 14px}.logout-btn:hover{color:#e0b050;border-color:#b07d2a}.tab-bar{padding:0 calc(20px + env(safe-area-inset-right)) 0 calc(20px + env(safe-area-inset-left));background:#0a0a0a;border-bottom:1px solid #222;gap:4px;display:flex}.tab{color:#999;background:0 0;border:0;border-bottom:2px solid #0000;padding:13px 16px 9px}.tab.active{color:#f0ece4;border-bottom-color:#b07d2a}.page-content{padding:32px calc(24px + env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));flex:1}.page-content h1{color:#f0ece4;margin:0 0 12px;font-size:2rem;font-weight:400}.placeholder-sub{color:#aaa;max-width:640px;margin:0;font-size:15px;line-height:1.5}.sr-only{white-space:nowrap;clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.portal-page{width:100%;max-width:980px;margin:0 auto}.portal-section{margin-top:28px}.category-filter{flex-wrap:wrap;gap:6px;margin:18px 0 8px;display:flex}.category-pill{color:#ddd;max-width:100%;font:inherit;overflow-wrap:anywhere;cursor:pointer;background:#151515;border:1px solid #333;border-radius:999px;padding:6px 9px;font-size:.88rem;line-height:1.15}.category-pill.active{color:#0d0d0d;background:#b07d2a;border-color:#b07d2a;font-weight:700}.category-pill.category-pill--small{color:#ddd;background:#151515;border:1px solid #333;border-radius:999px;padding:6px 9px;font-size:.88rem;font-weight:400}.category-pill.category-pill--small.active{color:#0d0d0d;background:#b07d2a;border-color:#b07d2a;font-weight:700}.category-count{opacity:.72}.portal-section h2{color:#e0b050;margin:0 0 12px;font-size:1.1rem;font-weight:400}.video-grid,.treatment-list{gap:18px;display:grid}.video-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.video-card{background:#151515;border:1px solid #2b2b2b;border-radius:6px;overflow:hidden}.video-frame{aspect-ratio:16/9;background:#050505}.video-frame iframe{border:0;width:100%;height:100%;display:block}.video-card-body{gap:10px;padding:14px;display:grid}.video-card-body h3{color:#f0ece4;margin:0;font-size:1rem;font-weight:400}.video-card-body p{color:#aaa;margin:0;font-size:14px;line-height:1.45}.treatment-note{color:#f0ece4;white-space:pre-wrap;background:#171717;border-left:3px solid #b07d2a;margin:0 0 22px;padding:16px;line-height:1.5}.video-card-body .assignment-instructions{color:#f0ece4;white-space:pre-wrap}.assignment-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.done-btn{color:#0d0d0d;font:inherit;cursor:pointer;background:#b07d2a;border:0;border-radius:4px;padding:9px 16px;font-weight:700}.done-btn:disabled{opacity:.6;cursor:not-allowed}.completed-text{color:#aaa;font-size:13px}.loading{min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);color:#f0ece4;place-items:center;display:grid}.login-page{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));flex-direction:column;justify-content:center;align-items:center;gap:24px;display:flex}.login-app-name{color:#e0b050;letter-spacing:.06em;margin:0;font-size:28px}.login-form{background:#161616;border:1px solid #2a2a2a;border-top:2px solid #b07d2a;border-radius:6px;flex-direction:column;gap:12px;width:min(360px,100%);padding:28px;display:flex}.login-form h2{color:#e0b050;margin:0 0 4px;font-size:1.3rem;font-weight:400}.login-form input{color:#f0ece4;font:inherit;background:#0d0d0d;border:1px solid #333;border-radius:4px;padding:10px 12px}.login-form button{color:#0d0d0d;font:inherit;cursor:pointer;background:#b07d2a;border:0;border-radius:4px;padding:11px;font-weight:700}.login-form button:disabled{opacity:.6;cursor:not-allowed}.login-form .login-link-btn{color:#e0b050;background:0 0;border:0;padding:4px 0;font-weight:400}.login-error{color:#ff9b9b;margin:0;font-size:14px}.login-success{color:#88c97a;margin:0;font-size:14px;line-height:1.4}.staff-page{width:100%;max-width:980px;margin:0 auto}.staff-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;display:flex}.staff-section{margin-top:26px}.assign-videos-pair{flex-wrap:wrap;gap:24px;margin-top:26px;display:flex}.assign-videos-pair>.staff-section{flex:360px;min-width:0;margin-top:0}.staff-notice{color:#f0ece4;background:#211a10;border:1px solid #5a421d;border-radius:6px;margin:14px 0 0;padding:10px 12px;font-size:14px;line-height:1.45}.staff-section h2{color:#e0b050;margin:0 0 10px;font-size:1.1rem;font-weight:400}.danger-section{border-top:1px solid #3a2424;gap:12px;padding-top:20px;display:grid}.danger-section h2{color:#ff9b9b}.text-btn{color:#e0b050;font:inherit;cursor:pointer;background:0 0;border:0;margin:0 0 14px;padding:0}.search-form{flex:1;gap:6px;min-width:220px;display:flex}.search-form input{color:#f0ece4;font:inherit;background:#151515;border:1px solid #333;border-radius:4px;flex:1;padding:8px 10px}.search-form button,.add-btn{color:#0d0d0d;font:inherit;cursor:pointer;background:#b07d2a;border:0;border-radius:4px;padding:8px 14px;font-weight:700}.add-btn{margin-left:auto}.patient-form,.video-form{background:#151515;border:1px solid #2b2b2b;border-radius:6px;flex-wrap:wrap;gap:8px;margin-top:14px;padding:14px;display:flex}.patient-form input,.video-form input{color:#f0ece4;min-width:180px;font:inherit;background:#0d0d0d;border:1px solid #333;border-radius:4px;flex:1;padding:8px 10px}.field-with-help{flex:1;gap:5px;min-width:220px;display:grid}.field-with-help input{width:100%;min-width:0}.field-with-help span{color:#aaa;font-size:12px;line-height:1.35}.patient-form button,.video-form button{color:#0d0d0d;font:inherit;cursor:pointer;background:#b07d2a;border:0;border-radius:4px;padding:8px 14px;font-weight:700}.patient-form button:disabled,.video-form button:disabled{opacity:.6;cursor:not-allowed}.video-form select,.video-form textarea{color:#f0ece4;font:inherit;background:#0d0d0d;border:1px solid #333;border-radius:4px;padding:8px 10px}.video-form select{min-width:150px}.assign-video-picker{flex-basis:100%;gap:8px;display:grid}.assign-video-picker input{min-width:0}.assign-video-category-filter{margin:0}.assign-video-results{background:#111;border:1px solid #272727;border-radius:4px;flex-basis:100%;gap:8px;padding:8px;display:grid}.assign-video-result-count,.assign-video-empty{color:#aaa;margin:0;font-size:13px;line-height:1.35}.assign-video-result-list .assign-video-empty{padding:12px}.assign-video-result-list{background:#242424;border:1px solid #2d2d2d;border-radius:4px;align-content:start;gap:1px;height:280px;display:grid;overflow-y:auto}.video-form .assign-video-result{color:#f0ece4;text-align:left;cursor:pointer;background:#151515;border:0;border-radius:0;gap:2px;min-height:50px;padding:8px 12px;transition:background-color .12s;display:grid}.video-form .assign-video-result:hover,.video-form .assign-video-result:focus-visible{background:#202020}.video-form .assign-video-result:focus-visible{outline-offset:-2px;outline:2px solid #e0b050}.assign-video-result span,.assign-video-result small{overflow-wrap:anywhere}.assign-video-result span{font-size:14px;font-weight:700;line-height:1.25}.assign-video-result small{color:#aaa;font-size:12px;line-height:1.25}.assign-video-modal{width:min(480px,100vw - 32px)}.assign-video-modal-summary{background:#101010;border:1px solid #2d2d2d;border-radius:4px;gap:8px;margin-top:16px;padding:12px;display:grid}.assign-video-modal-title{color:#f0ece4;margin:0;font-size:1.05rem;font-weight:700;line-height:1.35}.assign-video-modal-meta{color:#cfc6b8;background:#1c1c1c;border:1px solid #333;border-radius:999px;width:fit-content;margin:0;padding:3px 7px;font-size:12px;line-height:1.2}.assign-video-modal-description{color:#ccc;margin:0;font-size:14px;line-height:1.45}.assign-video-modal-form{gap:14px;margin-top:16px;display:grid}.assign-video-modal-field{gap:7px;display:grid}.assign-video-modal-field span{color:#f0ece4;font-size:14px;font-weight:700}.assign-video-modal-field textarea{color:#f0ece4;width:100%;min-height:130px;font:inherit;resize:vertical;background:#0d0d0d;border:1px solid #333;border-radius:4px;padding:9px 10px}.assign-video-modal-field textarea:focus{border-color:#b07d2a;outline:none}.inline-add{flex:280px;gap:8px;display:flex}.inline-add input{min-width:0}.category-manager{margin:0 0 12px}.category-manager-toggle{margin:4px 0 0;font-size:14px}.category-manager-panel{background:#101010;border:1px solid #2b2b2b;border-radius:6px;gap:10px;max-width:620px;margin-top:8px;padding:10px;display:grid}.category-manager-add{flex:none}.category-manager-add input{color:#f0ece4;min-width:0;font:inherit;background:#0d0d0d;border:1px solid #333;border-radius:4px;flex:1;padding:8px 10px}.category-manager-add button{color:#0d0d0d;font:inherit;cursor:pointer;background:#b07d2a;border:0;border-radius:4px;padding:8px 12px;font-weight:700}.category-manager-add button:disabled{opacity:.6;cursor:not-allowed}.category-manager-list{gap:6px}.category-manager-row{padding:8px 10px}.category-manager-name{color:#f0ece4;overflow-wrap:anywhere;flex:1;min-width:0}.category-manager-actions{align-items:center;gap:6px;display:flex}.category-rename-form{flex:1;gap:8px;display:flex}.category-rename-form input{color:#f0ece4;min-width:0;font:inherit;background:#0d0d0d;border:1px solid #333;border-radius:4px;flex:1;padding:8px 10px}.category-rename-form button{color:#0d0d0d;font:inherit;cursor:pointer;background:#b07d2a;border:0;border-radius:4px;padding:7px 12px;font-weight:700}.category-rename-form button:disabled{opacity:.6;cursor:not-allowed}.category-order-btn{width:34px;padding-inline:0}.danger-link{color:#ff9b9b;border-color:#7a2f2f}.video-form textarea{resize:vertical;flex-basis:100%;min-height:78px}.video-detail-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.video-detail-header h1{margin-bottom:6px}.video-detail-header p{color:#aaa;margin:0;font-size:14px}.video-detail-layout{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);align-items:start;gap:18px;display:grid}.video-detail-preview,.video-detail-form{background:#151515;border:1px solid #2b2b2b;border-radius:6px}.video-detail-preview{overflow:hidden}.video-detail-frame{min-height:280px}.video-detail-form{gap:14px;padding:16px;display:grid}.video-detail-field{gap:7px;display:grid}.video-detail-field span{color:#c9b58d;text-transform:uppercase;font-size:12px;font-weight:700}.video-detail-form input,.video-detail-form select,.video-detail-form textarea{color:#f0ece4;width:100%;min-width:0;font:inherit;background:#0d0d0d;border:1px solid #333;border-radius:4px;padding:9px 10px}.video-detail-form input:focus,.video-detail-form select:focus,.video-detail-form textarea:focus{border-color:#b07d2a;outline:none}.video-detail-form textarea{resize:vertical;min-height:170px}.video-detail-actions{justify-content:flex-end;display:flex}.video-detail-actions button{color:#0d0d0d;font:inherit;cursor:pointer;background:#b07d2a;border:0;border-radius:4px;padding:9px 14px;font-weight:700}.video-detail-actions button:disabled{opacity:.6;cursor:not-allowed}.treatment-form{margin-top:0}.treatment-form select{flex:240px}.checkbox-label{color:#f0ece4;align-items:center;gap:8px;font-size:14px;display:inline-flex}.inline-edit-form{flex-wrap:wrap;gap:8px;width:100%;display:flex}.stacked-edit-form{display:grid}.inline-edit-form input,.inline-edit-form select,.inline-edit-form textarea{color:#f0ece4;min-width:140px;font:inherit;background:#0d0d0d;border:1px solid #333;border-radius:4px;padding:8px 10px}.inline-edit-form textarea{resize:vertical;min-height:72px}.inline-edit-form button{color:#0d0d0d;font:inherit;cursor:pointer;background:#b07d2a;border:0;border-radius:4px;padding:7px 12px;font-weight:700}.inline-actions{gap:8px;display:flex}.save-status{color:#88c97a;background:#88c97a1f;border:1px solid #88c97a52;border-radius:4px;align-items:center;width:fit-content;min-height:28px;padding:4px 8px;font-size:12px;font-weight:700;animation:2.4s forwards saved-fade;display:inline-flex}@keyframes saved-fade{0%,78%{opacity:1}to{opacity:0}}.patient-list{gap:10px;margin:18px 0 0;padding:0;list-style:none;display:grid}.compact-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.compact-row{background:#151515;border:1px solid #2b2b2b;border-radius:6px;align-items:center;gap:10px;padding:10px 12px;display:flex}.compact-row .patient-meta{margin:0}.patient-row{background:#151515;border:1px solid #2b2b2b;border-radius:6px;align-items:center;gap:14px;padding:14px 16px;display:flex}.patient-row.inactive{opacity:.65}.clickable-list-row,.patient-list-row{color:#f0ece4;width:100%;font:inherit;text-align:left;cursor:pointer;background:#151515;border:1px solid #2b2b2b;border-radius:6px;align-items:center;gap:16px;padding:10px 14px;transition:background-color .12s,border-color .12s;display:flex}.clickable-list-row:hover,.clickable-list-row:focus-visible,.patient-list-row:hover,.patient-list-row:focus-visible{background:#1d1d1d;border-color:#b07d2a;outline:none}.clickable-list-row.inactive,.patient-list-row.inactive{opacity:.65}.patient-list-row-name{color:#f0ece4;white-space:nowrap;text-overflow:ellipsis;flex:0 200px;min-width:0;margin:0;font-size:1rem;font-weight:500;overflow:hidden}.patient-list-row-email{color:#ccc;white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:14px;overflow:hidden}.clickable-list-row-meta,.patient-list-row-meta{color:#888;white-space:nowrap;flex:none;font-size:12px}.video-list-row{align-items:flex-start}.video-list-row-main{flex:auto;gap:3px;min-width:0;display:grid}.video-list-row-title{color:#f0ece4;margin:0;font-size:1rem;font-weight:500}.video-list-row-main .row-subtitle{margin:0}.video-list-row-meta{text-align:right;justify-items:end;gap:6px;display:grid}.patient-info{flex:1;min-width:0}.patient-info h3,.patient-row-title{color:#f0ece4;margin:0;font-size:1rem;font-weight:400}.row-subtitle{color:#ccc;word-break:break-all;margin:2px 0 0;font-size:14px}.patient-meta{color:#888;margin:4px 0 0;font-size:12px}.completion-list{color:#aaa;flex-wrap:wrap;gap:6px 12px;margin:8px 0 0;padding:0;font-size:12px;list-style:none;display:flex}.patient-actions{align-items:center;gap:10px;display:flex}.row-action-btn{color:#f0ece4;font:inherit;cursor:pointer;background:0 0;border:1px solid #b07d2a;border-radius:4px;padding:7px 12px;font-size:13px}.row-action-btn:disabled{opacity:.6;cursor:not-allowed}.danger-btn,.danger-confirm{color:#fff;width:fit-content;font:inherit;cursor:pointer;background:#b42318;border:1px solid #d92d20;border-radius:4px;padding:8px 14px;font-weight:700}.danger-btn:disabled{opacity:.6;cursor:not-allowed}.invite-success{color:#88c97a;font-size:13px}.alert-overlay{z-index:40;background:#0000009e;position:fixed;inset:0}.alert-content{z-index:50;width:min(420px,100vw - 32px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px);color:#f0ece4;background:#151515;border:1px solid #2b2b2b;border-radius:6px;padding:20px;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 18px 60px #00000073}.alert-title{color:#f0ece4;margin:0;font-size:1rem;font-weight:700}.alert-description{color:#ccc;margin:8px 0 0;font-size:14px;line-height:1.5}.alert-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.alert-cancel,.alert-confirm{font:inherit;cursor:pointer;border-radius:4px;padding:8px 12px;font-size:14px}.alert-cancel{color:#f0ece4;background:0 0;border:1px solid #555}.alert-confirm{color:#0d0d0d;background:#b07d2a;border:1px solid #b07d2a;font-weight:700}.login-modal{width:min(460px,100vw - 32px)}.login-modal-section{background:#1a1a1a;border:1px solid #262626;border-radius:6px;flex-direction:column;gap:8px;margin-top:16px;padding:14px;display:flex}.login-modal-section input{color:#f0ece4;font:inherit;background:#0d0d0d;border:1px solid #333;border-radius:4px;padding:8px 10px;font-size:14px}.login-modal-section button{color:#0d0d0d;font:inherit;cursor:pointer;background:#b07d2a;border:1px solid #b07d2a;border-radius:4px;align-self:flex-start;padding:8px 14px;font-size:14px;font-weight:700}.login-modal-section button:disabled{opacity:.5;cursor:not-allowed}.login-modal-section-title{color:#f0ece4;margin:0;font-size:14px;font-weight:700}.login-modal-hint{color:#aaa;margin:0;font-size:13px;line-height:1.4}.login-modal-hint strong{color:#f0ece4}.login-modal-warning{color:#f5deaa;background:#2a1d05;border-left:3px solid #e0b050;margin:0 0 4px;padding:8px 10px;font-size:13px;line-height:1.4}.login-modal-code-display{color:#f0ece4;letter-spacing:8px;text-align:center;background:#1f160a;border:1px solid #b07d2a;margin:0;padding:14px 22px;font-family:Menlo,Consolas,monospace;font-size:32px}.login-modal-divider{color:#777;text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:10px;margin-top:14px;font-size:12px;display:flex}.login-modal-divider:before,.login-modal-divider:after{content:"";background:#2b2b2b;flex:1;height:1px}.patient-info-actions{flex-wrap:wrap;flex:100%;align-items:center;gap:10px;margin:2px 0 18px;display:flex}.patient-info-actions .patient-meta{margin:0}.patient-info-actions button{color:#f0ece4;font:inherit;cursor:pointer;background:0 0;border:1px solid #b07d2a;border-radius:4px;padding:8px 14px;font-size:14px}.patient-info-actions button:hover{background:#1f160a}.patient-meta.warning{color:#ffb86b}@media (width<=640px){.staff-toolbar{flex-direction:column;align-items:stretch}.add-btn{margin-left:0}.category-manager-panel{max-width:none}.category-manager-add,.category-manager-row,.category-manager-actions{width:100%}.category-manager-row{flex-direction:column;align-items:stretch}.category-manager-actions{justify-content:flex-start}.category-rename-form{flex-direction:column;width:100%}.patient-row{flex-direction:column;align-items:flex-start}.patient-list-row{flex-direction:column;align-items:flex-start;gap:4px}.patient-list-row-name,.patient-list-row-email{flex:none;max-width:100%}.video-list-row-meta{text-align:left;justify-items:start}.video-detail-header{flex-direction:column;gap:8px}.video-detail-layout{grid-template-columns:1fr}.video-detail-frame{min-height:auto}.video-detail-actions{justify-content:stretch}.video-detail-actions button,.patient-actions,.row-action-btn{width:100%}.compact-row{flex-direction:column;align-items:flex-start}.compact-row .row-action-btn{width:100%}.category-manager-row .category-order-btn{width:34px}.header{padding:calc(10px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) 10px calc(14px + env(safe-area-inset-left))}.header-email{display:none}.tab-bar{padding:0 calc(10px + env(safe-area-inset-right)) 0 calc(10px + env(safe-area-inset-left))}.tab{flex:1}.page-content{padding:24px calc(16px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left))}.video-grid{grid-template-columns:1fr}}
