:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: #e74c3c;--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient( to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55 );--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;padding:4px;width:var(--toastify-toast-width);box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%)}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right)}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%)}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right)}@media only screen and (max-width : 480px){.Toastify__toast-container{width:100vw;padding:0;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}}.Toastify__toast{--y: 0;position:relative;-ms-touch-action:none;touch-action:none;min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px #0000001a;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);cursor:default;direction:ltr;z-index:0;overflow:hidden}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-body{margin:auto 0;-ms-flex:1 1 auto;flex:1 1 auto;padding:6px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.Toastify__toast-body>div:last-child{word-break:break-word;-ms-flex:1;flex:1}.Toastify__toast-icon{-webkit-margin-end:10px;margin-inline-end:10px;width:20px;-ms-flex-negative:0;flex-shrink:0;display:-ms-flexbox;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}@media only screen and (max-width : 480px){.Toastify__toast{margin-bottom:0;border-radius:0}}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;-ms-flex-item-align:start;align-self:flex-start;z-index:1}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:var(--toastify-z-index);opacity:.7;transform-origin:left;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial;border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp{position:absolute;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.health-welcome-page{min-height:100vh;min-height:100dvh;width:100%;background:linear-gradient(160deg,#fff8f8,#f8fafc,#fef2f2);display:flex;align-items:center;justify-content:center;padding:32px 20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;position:relative;overflow:hidden}.health-bg-elements{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.health-blob{position:absolute;border-radius:50%;opacity:.15}.health-blob-1{width:300px;height:300px;background:#dc2626;top:-100px;right:-50px}.health-blob-2{width:350px;height:350px;background:#b91c1c;bottom:-100px;left:-100px}.health-welcome-content{display:flex;flex-direction:column;align-items:center;text-align:center;z-index:1;max-width:380px;width:100%}.health-app-icon{margin-bottom:20px}.health-app-icon img{max-width:100%;height:auto}.health-features-grid{display:flex;justify-content:center;gap:12px;margin-bottom:24px;width:100%}.health-feature-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 16px;background:#fff;border-radius:14px;border:1px solid #f1f5f9;box-shadow:0 2px 8px #0000000a;flex:1;max-width:110px}.health-feature-icon{width:22px!important;height:22px!important;color:#dc2626}.health-feature-item span{font-size:11px;font-weight:500;color:#475569;text-align:center;line-height:1.3}.clinic-compact-info{margin-bottom:20px}.clinic-tagline{font-size:12px;color:#64748b;margin:0;padding:8px 16px;background:#fff;border-radius:16px;display:inline-block;border:1px solid #e2e8f0}.health-continue-button{width:100%;max-width:260px;height:50px;background:#dc2626;border:none;border-radius:25px;color:#fff;font-size:17px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px #dc26264d;-webkit-tap-highlight-color:transparent}.health-continue-button:active{transform:scale(.97);opacity:.9}.sheet-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:999}.login-sheet{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:20px 20px 0 0;z-index:1000;max-height:85vh;overflow:hidden;box-shadow:0 -4px 20px #00000026;will-change:transform;-webkit-overflow-scrolling:touch}.sheet-handle{width:36px;height:5px;background:#d1d5db;border-radius:3px;margin:10px auto 0}.login-sheet-content{padding:16px 24px 32px;overflow-y:auto;max-height:calc(85vh - 20px);-webkit-overflow-scrolling:touch}.login-sheet-header{text-align:center;margin-bottom:24px}.login-sheet-title{font-size:24px;font-weight:700;color:#1e293b;margin:0 0 6px}.login-sheet-subtitle{font-size:15px;color:#64748b;margin:0}.login-sheet-form{display:flex;flex-direction:column;gap:16px}.sheet-input-stack{display:flex;flex-direction:column;gap:12px}.sheet-input-group{position:relative;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:12px;height:52px;display:flex;align-items:center;transition:border-color .15s,box-shadow .15s}.sheet-input-group:focus-within{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261a;background:#fff}.sheet-input-group.sheet-input-error{border-color:#ef4444}.sheet-input-icon{position:absolute;right:14px;color:#94a3b8;width:20px!important;height:20px!important;pointer-events:none}.sheet-input{width:100%;height:100%;border:none;background:transparent;padding:0 44px 0 16px;font-size:16px;color:#1e293b;outline:none;-webkit-appearance:none}.sheet-input::placeholder{color:#94a3b8}.sheet-password-toggle{position:absolute;right:42px;background:none;border:none;color:#94a3b8;cursor:pointer;padding:8px;display:flex;-webkit-tap-highlight-color:transparent}.sheet-password-toggle svg{width:20px;height:20px}.sheet-error-text{font-size:13px;color:#ef4444;font-weight:500;margin-top:-6px;padding-left:4px}.sheet-checkbox-group{margin:4px 0}.sheet-checkbox-label{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:14px;color:#475569;-webkit-tap-highlight-color:transparent}.sheet-checkbox-input{display:none}.sheet-checkbox-custom{width:20px;height:20px;border:2px solid #cbd5e1;border-radius:5px;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.sheet-checkbox-input:checked+.sheet-checkbox-custom{background:#dc2626;border-color:#dc2626;color:#fff}.sheet-checkbox-custom svg{width:12px;height:12px}.sheet-terms-link{color:#dc2626;text-decoration:none;font-weight:500}.sheet-submit-button{width:100%;height:50px;background:#dc2626;border:none;border-radius:12px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 12px #dc262640;-webkit-tap-highlight-color:transparent}.sheet-submit-button:active{transform:scale(.98);opacity:.9}.sheet-submit-button svg{width:18px;height:18px}.sheet-submit-button:disabled{background:#cbd5e1;box-shadow:none}.sheet-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .7s linear infinite}.sheet-footer-links{text-align:center;margin-top:16px}.sheet-footer-link{color:#64748b;font-size:14px;background:none;border:none;cursor:pointer;text-decoration:underline;-webkit-tap-highlight-color:transparent}.apple-error-banner{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:16px;color:#dc2626;font-size:14px;font-weight:500}.apple-error-banner svg{width:18px;height:18px;flex-shrink:0}@media (max-width: 480px){.health-welcome-page{padding:24px 16px}.health-features-grid{gap:8px}.health-feature-item{padding:12px 8px;max-width:100px}.health-feature-item span{font-size:10px}.clinic-tagline{font-size:11px;padding:6px 12px}.login-sheet{max-height:90vh}.login-sheet-content{padding:14px 20px 28px}}@supports (padding-bottom: env(safe-area-inset-bottom)){.login-sheet-content{padding-bottom:calc(32px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion: reduce){.health-blob{display:none}*{animation:none!important;transition:none!important}}.file-upload-container{background-color:#f9fafb;border:2px dashed #d1d5db;border-radius:12px;padding:16px;text-align:center;transition:all .2s ease-in-out;cursor:pointer;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:120px;width:100%;box-sizing:border-box}@media (min-width: 768px){.file-upload-container{padding:24px;min-height:160px}}.file-upload-container.dragging{border-color:#3b82f6;background-color:#eff6ff;transform:scale(1.01)}.file-upload-container.has-file{border-style:solid;border-color:#10b981;background-color:#f0fdf4;padding:12px;min-height:auto}@media (min-width: 768px){.file-upload-container.has-file{padding:16px}}.file-upload-container.has-error-border{border-color:#ef4444!important;background-color:#fef2f2}.file-input-hidden{display:none}.upload-icon-area{margin-bottom:12px}.upload-main-icon{color:#6b7280;opacity:.8}.upload-text{margin-bottom:12px;color:#6b7280;font-size:.875rem;line-height:1.5}@media (min-width: 768px){.upload-text{margin-bottom:16px;font-size:.95rem}}.upload-buttons-area{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap;justify-content:center}@media (min-width: 480px){.upload-buttons-area{gap:16px;flex-wrap:nowrap}}.browse-files-btn,.camera-btn{font-size:.9rem!important}.file-hint{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:var(--spacing-xs);line-height:var(--leading-normal);max-width:100%;word-wrap:break-word}.file-preview{display:flex;align-items:center;width:100%;padding:var(--spacing-xs);text-align:left;gap:var(--spacing-sm);box-sizing:border-box}@media (min-width: 768px){.file-preview{padding:var(--spacing-sm)}}.file-icon{color:var(--primary);flex-shrink:0}.file-info{flex-grow:1;overflow:hidden;min-width:0}.file-name{font-weight:500;color:var(--text-primary);margin:0 0 var(--space-1) 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--font-size-sm);line-height:var(--leading-tight)}@media (min-width: 768px){.file-name{font-size:.95rem}}.file-size{font-size:var(--font-size-xs);color:var(--text-secondary);margin:0;line-height:var(--leading-tight)}.remove-file-btn{flex-shrink:0;padding:6px!important;min-width:36px!important;min-height:36px!important;border-radius:6px!important;display:flex;align-items:center;justify-content:center}.remove-file-btn svg{display:block;width:16px;height:16px}@media (max-width: 640px){.remove-file-btn{min-width:32px!important;min-height:32px!important;padding:4px!important}.remove-file-btn svg{width:14px;height:14px}.file-preview{gap:8px;padding:8px}.file-info{min-width:0;flex:1}.file-name{font-size:.85rem;line-height:1.2}.file-size{font-size:.75rem}}@media (max-width: 480px){.remove-file-btn{min-width:28px!important;min-height:28px!important;padding:2px!important}.remove-file-btn svg{width:12px;height:12px}.file-preview{gap:6px;padding:6px}.file-name{font-size:.8rem}.file-size{font-size:.7rem}}.file-upload-error{color:var(--error);font-size:var(--font-size-xs);margin-top:var(--spacing-xs);text-align:left;width:100%;line-height:var(--leading-normal);padding:var(--space-2);background-color:var(--error-light);border-radius:var(--radius-md);border:1px solid var(--error)}.report-card-item{background-color:var(--surface);border-radius:var(--radius-lg);margin-bottom:var(--spacing-sm);overflow:hidden;cursor:pointer;border:1px solid var(--border-light);border-left:4px solid transparent;transition:all var(--transition-base);width:100%;box-sizing:border-box;position:relative}@media (min-width: 768px){.report-card-item{margin-bottom:var(--space-3);border-left-width:3px}}.report-card-item:hover{border-color:var(--border-medium);transform:translateY(-2px);box-shadow:var(--shadow-md)}@media (hover: none){.report-card-item:hover{transform:none}.report-card-item:active{transform:scale(.98);transition:transform .1s ease}}.report-card-item.status-completed{border-left-color:var(--success);background-color:#16a34a08}.report-card-item.status-processing,.report-card-item.status-uploaded,.report-card-item.status-extracting,.report-card-item.status-awaiting-analysis,.report-card-item.status-processing-analysis{border-left-color:var(--info);background-color:#2563eb08}.report-card-item.status-action-required,.report-card-item.status-pending-correction{border-left-color:var(--warning);background-color:#d9770608}.report-card-item.status-error,.report-card-item.status-error-extraction,.report-card-item.status-error-analysis{border-left-color:var(--error);background-color:#dc262608}.report-card-item.status-unknown{border-left-color:var(--border-medium)}.report-card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm);border-bottom:1px solid var(--border-light);background-color:var(--surface-secondary);gap:var(--spacing-xs);flex-wrap:wrap}.report-card-actions{display:flex;align-items:center;gap:var(--space-2)}.report-delete-btn{background:transparent;border:1px solid var(--border-light);color:var(--text-tertiary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);width:28px;height:28px;flex-shrink:0}.report-delete-btn:hover{background:var(--error-light);border-color:var(--error);color:var(--error)}.report-delete-btn:disabled{opacity:.5;cursor:not-allowed}.delete-spinner{animation:spin 1s linear infinite}@media (min-width: 480px){.report-card-header{padding:var(--space-2);flex-wrap:nowrap}}.report-card-file-icon{color:var(--text-tertiary);margin-right:var(--spacing-sm)}.report-card-id{font-weight:500;color:var(--text-secondary);font-size:var(--font-size-xs);flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}@media (max-width: 480px){.report-card-id{font-size:.7rem;order:1;width:100%;margin-top:var(--space-1)}}.report-card-status-badge{display:flex;align-items:center;gap:var(--space-1);font-size:.65rem;font-weight:500;padding:var(--space-1) var(--space-2);border-radius:var(--radius-2xl);text-transform:capitalize;line-height:1.2;white-space:nowrap;flex-shrink:0}@media (min-width: 480px){.report-card-status-badge{font-size:.75rem;padding:3px 8px}}.report-card-status-badge.status-completed{background-color:var(--success-light);color:var(--success-dark);border:1px solid var(--success)}.report-card-status-badge.status-processing,.report-card-status-badge.status-uploaded,.report-card-status-badge.status-extracting,.report-card-status-badge.status-awaiting-analysis,.report-card-status-badge.status-processing-analysis{background-color:var(--info-light);color:var(--info-dark);border:1px solid var(--info)}.report-card-status-badge.status-action-required,.report-card-status-badge.status-pending-correction{background-color:var(--warning-light);color:var(--warning-dark);border:1px solid var(--warning)}.report-card-status-badge.status-error,.report-card-status-badge.status-error-extraction,.report-card-status-badge.status-error-analysis{background-color:var(--error-light);color:var(--error-dark);border:1px solid var(--error)}.report-card-status-badge.status-unknown{background-color:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-300)}.status-icon-spinning{animation:spin 1.5s linear infinite}.report-card-body{padding:var(--spacing-sm)}@media (min-width: 768px){.report-card-body{padding:var(--space-3)}}.report-card-patient-name{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--space-1);color:var(--text-primary);line-height:var(--leading-tight);word-wrap:break-word;overflow-wrap:break-word}@media (min-width: 768px){.report-card-patient-name{font-size:1.05rem;margin-bottom:var(--spacing-xs)}}.report-card-patient-id{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;word-wrap:break-word;overflow-wrap:break-word}.report-card-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm);border-top:1px solid var(--border-light);background-color:var(--surface-secondary);gap:var(--space-2)}@media (min-width: 768px){.report-card-footer{padding:var(--space-2)}}.report-card-date{font-size:var(--font-size-xs);color:var(--text-tertiary);display:flex;align-items:center;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}@media (max-width: 480px){.report-card-date{font-size:.7rem}}.report-card-chevron{color:var(--text-tertiary);flex-shrink:0;transition:transform var(--transition-fast)}.report-card-item:hover .report-card-chevron{transform:translate(2px)}.hover-tick,.hover-check,.hover-overlay-tick,.report-card-item:hover .tick-button,.report-card-item:hover .check-button,.report-card-item:hover .hover-tick,.report-card-item:hover .fi-check,.report-card-item button:hover .tick-icon,.report-card-item button:hover .check-icon{display:none!important;visibility:hidden!important}.search-bar-wrapper{background-color:var(--surface);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-color) 0 2px 6px;margin-bottom:var(--spacing-md);transition:box-shadow .2s ease,transform .2s ease;position:relative}.search-bar-wrapper.focused{box-shadow:var(--shadow-color) 0 4px 10px;border:1px solid var(--primary-action-color)}.search-bar-wrapper.focused .search-bar-form{border-color:transparent}.search-bar-form{display:flex;align-items:center;padding:0 var(--spacing-sm);height:44px;border:1px solid transparent;border-radius:var(--border-radius-lg)}.search-bar-icon-label{cursor:text;padding:0 var(--spacing-sm);display:flex;align-items:center;height:100%}.search-bar-icon{color:var(--text-tertiary);font-size:1.1rem}.search-bar-input{flex-grow:1;border:none;background:transparent;color:var(--text-primary);padding:var(--spacing-sm) var(--spacing-xs);font-size:.95rem;height:100%}.search-bar-input:focus{outline:none}.search-bar-input::placeholder{color:var(--text-tertiary);opacity:.8}.search-bar-input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:none}.search-bar-clear-button{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm);border-radius:50%;margin-left:var(--spacing-xs)}.search-bar-clear-button:hover{color:var(--text-secondary);background-color:var(--surface-variant)}.search-bar-clear-button svg{display:block;width:16px;height:16px}.home-page-container{padding:var(--spacing-sm);max-width:var(--content-max-width);margin:0 auto;width:100%;box-sizing:border-box}@media (min-width: 768px){.home-page-container{padding:var(--space-4) var(--space-3)}}.home-page-header{margin-bottom:24px;display:flex;flex-direction:column;gap:12px;text-align:center}@media (min-width: 768px){.home-page-header{margin-bottom:28px;gap:16px}}.home-page-header h1{font-size:24px;font-weight:700;margin:0;color:var(--text-primary);line-height:1.2}@media (min-width: 768px){.home-page-header h1{font-size:26px}}@media (min-width: 1024px){.home-page-header h1{font-size:28px}}.home-page-header p{font-size:var(--font-size-lg);color:var(--text-secondary);font-weight:var(--font-weight-normal);max-width:600px;margin:0 auto var(--space-8);line-height:var(--leading-relaxed)}.view-toggle-buttons{display:flex;gap:var(--space-1);justify-content:center;background:var(--surface-secondary);padding:var(--space-1);border-radius:var(--radius-2xl);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);width:fit-content;margin:0 auto}@media (min-width: 768px){.view-toggle-buttons{gap:var(--space-3)}}@media (min-width: 1024px){.home-page-header{flex-direction:row;justify-content:space-between;align-items:flex-start;text-align:left;margin-bottom:var(--spacing-xl)}.home-page-header h1{font-size:var(--font-size-4xl);color:var(--text-primary);margin-bottom:0}.home-page-header p{margin:0}.view-toggle-buttons{margin:8px 0 0}}.report-upload-form{display:flex;flex-direction:column;gap:var(--spacing-md);background:var(--surface-elevated);padding:var(--spacing-md);border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);position:relative;width:100%;box-sizing:border-box}@media (min-width: 768px){.report-upload-form{gap:var(--space-4);padding:var(--space-4)}}.info-banner{background-color:var(--info-bg);border:1px solid var(--info-border);color:var(--info-text);padding:var(--spacing-md);border-radius:var(--border-radius-md);display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:.9rem}.info-banner .info-icon{flex-shrink:0;margin-top:2px;width:20px;height:20px}.info-banner p{margin:0;line-height:1.5}.info-banner strong{font-weight:600}.warning-banner{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--warning-light);border:1px solid var(--warning);border-radius:var(--radius-lg);margin-bottom:var(--spacing-md);position:relative;width:100%;box-sizing:border-box}@media (min-width: 768px){.warning-banner{padding:var(--space-3);gap:var(--space-2);margin-bottom:var(--space-4)}}.warning-banner:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--warning)}.warning-icon{color:var(--warning);font-size:var(--font-size-xl);flex-shrink:0;margin-top:2px}.warning-banner p{color:var(--warning-dark);margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--leading-relaxed);text-align:left}.warning-banner strong{font-weight:var(--font-weight-semibold);color:var(--warning-dark)}@media (max-width: 480px){.warning-banner{padding:var(--space-2);gap:var(--space-2)}.warning-banner p{font-size:var(--font-size-sm)}.warning-icon{font-size:var(--font-size-base)}}.compulsory-note{margin-bottom:var(--spacing-md);padding:var(--spacing-xs) 0}.compulsory-text{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin:0;text-align:left;font-style:italic}@media (min-width: 768px){.compulsory-note{margin-bottom:var(--space-4);padding:var(--space-2) 0}}@media (max-width: 480px){.compulsory-text{font-size:var(--font-size-xs)}}.form-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);width:100%}@media (min-width: 768px){.form-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--space-4)}}@media (min-width: 1024px){.form-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-4)}}.form-grid .form-group{margin-bottom:0}.full-width-field{grid-column:1 / -1}.full-width-field textarea{min-height:80px}.file-upload-group{margin-top:var(--spacing-sm)}.file-upload-group .form-label{font-weight:600}.form-submit-error{color:var(--error-text);background-color:var(--error-bg);border:1px solid var(--error-border);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-md);text-align:center;font-size:.9rem;margin-top:var(--spacing-sm)}.form-submit-action{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg);display:flex;justify-content:center;width:100%;padding-bottom:20px}@media (min-width: 768px){.form-submit-action{justify-content:flex-end}}.form-submit-action .button-spinner-small{width:18px;height:18px;border-width:2px;border-color:#ffffff4d;border-top-color:#fff;animation:spin 1s linear infinite;margin-right:var(--spacing-sm)}.report-history-list{padding-bottom:var(--spacing-xl);display:grid;grid-template-columns:1fr;gap:var(--spacing-md);max-height:calc(100vh - 200px);overflow-y:auto;width:100%;box-sizing:border-box}.report-history-list::-webkit-scrollbar{width:8px}.report-history-list::-webkit-scrollbar-track{background:var(--surface-secondary);border-radius:4px}.report-history-list::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.report-history-list::-webkit-scrollbar-thumb:hover{background:var(--primary)}@media (min-width: 768px){.report-history-list{grid-template-columns:repeat(2,1fr);max-height:calc(100vh - 180px)}}@media (min-width: 1200px){.report-history-list{grid-template-columns:repeat(3,1fr);max-height:calc(100vh - 160px)}}.loading-placeholder,.empty-state-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xxl) var(--spacing-md);color:var(--text-tertiary);text-align:center;grid-column:1 / -1;min-height:300px;background-color:var(--surface-variant);border-radius:var(--border-radius-lg)}.loading-spinner-icon,.empty-state-icon{width:48px;height:48px;margin-bottom:var(--spacing-md);opacity:.7}.loading-spinner-icon{animation:spin 1.5s linear infinite;border-width:4px;border-color:var(--gray-300);border-top-color:var(--primary-action-color)}.empty-state-placeholder p{font-size:1.05rem;font-weight:500;margin-bottom:var(--spacing-lg)}.history-search-container{margin-bottom:20px;padding:0 20px}.history-search-container .search-bar-wrapper{width:100%;max-width:none}.history-search-container .search-bar-input{width:100%;min-width:300px;padding:12px 16px;font-size:16px;border-radius:8px;border:2px solid #e2e8f0;transition:all .3s ease}.history-search-container .search-bar-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.report-history-container{width:100%}.home-page-search-container{width:100%;max-width:900px;margin:0 auto 1.5rem}.history-search-container{padding:0}.report-history-list{width:100%}@media (max-width: 768px){.home-page-container{padding:12px;overflow-x:hidden}.report-upload-form{padding:16px 16px 24px;gap:16px}.form-grid{grid-template-columns:1fr;gap:12px}.form-submit-action{margin-bottom:30px;padding-bottom:30px}.report-history-list{grid-template-columns:1fr;gap:16px}}@media (max-width: 480px){.home-page-container{padding:8px}.report-upload-form{padding:12px 12px 20px;gap:12px}.form-grid{gap:8px}.form-submit-action{margin-bottom:40px;padding-bottom:40px}}.warning-banner{padding:8px!important;margin-bottom:8px!important}.info-banner{padding:8px!important;font-size:13px!important}} .submission-loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:transparent;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px}.submission-loading-content{display:flex;flex-direction:column;align-items:center;gap:0}.submission-spinner{margin-bottom:0;display:flex;justify-content:center}.submission-loading-content h3,.submission-loading-content p{display:none}.spinning-icon{animation:home-spin 1s linear infinite;color:#dc3545;width:40px;height:40px}@keyframes home-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.home-page-container svg,svg{max-width:24px!important;max-height:24px!important}.w-4,svg.w-4{width:1rem!important;height:1rem!important;max-width:1rem!important;max-height:1rem!important}.w-5,svg.w-5{width:1.25rem!important;height:1.25rem!important;max-width:1.25rem!important;max-height:1.25rem!important}.w-6,svg.w-6{width:1.5rem!important;height:1.5rem!important;max-width:1.5rem!important;max-height:1.5rem!important}.w-\[18px\]{width:18px!important;height:18px!important;max-width:18px!important;max-height:18px!important}.inline-block{display:inline-block!important;vertical-align:middle!important}.mr-1{margin-right:.25rem!important}.mr-2{margin-right:.5rem!important}.machine-type-selector{background:var(--surface-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.machine-type-selector .form-label{display:block;margin-bottom:var(--spacing-sm);font-weight:600;color:var(--text-primary);font-size:var(--font-size-sm)}.machine-type-toggle{display:flex;gap:var(--spacing-sm);flex-direction:column}@media (min-width: 480px){.machine-type-toggle{flex-direction:row}}.machine-type-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-md) var(--spacing-lg);background:var(--surface-primary);border:2px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;text-align:center;min-height:80px}.machine-type-btn:hover:not(:disabled){border-color:var(--primary-color);background:var(--surface-hover)}.machine-type-btn.active{border-color:var(--primary-color);background:linear-gradient(135deg,#6366f11a,#8b5cf61a);box-shadow:0 0 0 3px #6366f133}.machine-type-btn:disabled{opacity:.6;cursor:not-allowed}.machine-type-btn .machine-name{font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary);margin-bottom:4px}.machine-type-btn.active .machine-name{color:var(--primary-color)}.machine-type-btn .machine-desc{font-size:var(--font-size-xs);color:var(--text-secondary);font-weight:400}.machine-type-btn.active .machine-desc{color:var(--primary-color);opacity:.8}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors: active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--scale-factor));width:100%;min-width:calc(180px * var(--scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--scale-factor)) calc(5px * var(--scale-factor)) #888;border-radius:calc(2px * var(--scale-factor));padding:calc(6px * var(--scale-factor));margin-left:calc(5px * var(--scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--scale-factor));padding-top:calc(2px * var(--scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors: active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer .endOfContent.active{top:0}.pdf-preview-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000e6;display:flex;align-items:center;justify-content:center;z-index:10010!important;padding:0;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);-webkit-transform:translateZ(0);transform:translateZ(0)}.pdf-preview-modal-content{background-color:#fff;border-radius:0;box-shadow:none;display:flex;flex-direction:column;overflow:hidden;width:100vw;height:100vh;max-width:100vw;max-height:100vh;position:relative;z-index:10011!important;margin-top:0;-webkit-transform:translateZ(0);transform:translateZ(0)}@media (min-width: 769px){.pdf-preview-backdrop{padding:20px}.pdf-preview-modal-content{border-radius:12px;box-shadow:0 20px 25px -5px #0000004d;width:90vw;max-width:1200px;height:85vh;max-height:800px}}.pdf-preview-header{padding:16px 16px 12px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;background:#fff;position:relative;min-height:56px;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:10011}.pdf-preview-title-text{margin:0;font-size:16px;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;text-align:center;padding:0 60px}.pdf-preview-close-btn{position:absolute!important;right:12px!important;top:12px!important;color:#fff!important;background:linear-gradient(135deg,#ef4444,#dc2626)!important;border:2px solid #dc2626!important;padding:0!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:10020!important;cursor:pointer!important;transition:all .2s ease!important;box-shadow:0 4px 12px #dc262666!important;font-size:20px!important;font-weight:600!important;-webkit-transform:translateZ(0);transform:translateZ(0)}.pdf-preview-close-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c)!important;border-color:#b91c1c!important;transform:scale(1.1)!important;box-shadow:0 6px 16px #dc262680!important}.pdf-preview-close-btn:active{transform:scale(.95)!important}.pdf-preview-close-btn svg{width:22px!important;height:22px!important;stroke-width:2.5!important}@media (max-width: 768px){.pdf-preview-backdrop{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100vw!important;height:100vh!important;height:-webkit-fill-available!important;min-height:-webkit-fill-available!important}.pdf-preview-modal-content{width:100vw!important;height:100vh!important;height:-webkit-fill-available!important;min-height:-webkit-fill-available!important;max-width:none!important;max-height:none!important}.pdf-preview-header{padding-top:80px!important;min-height:100px!important}.pdf-preview-title-text{font-size:14px;padding:0 50px}.pdf-preview-close-btn{position:fixed!important;top:80px!important;right:12px!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}.pdf-preview-close-btn svg{width:24px!important;height:24px!important}.pdf-preview-toolbar{padding:6px 8px;min-height:44px;gap:3px}.toolbar-group{gap:3px}.toolbar-group button{min-width:28px!important;height:28px!important;padding:4px 6px!important}.toolbar-group .button-icon-left svg{width:16px!important;height:16px!important}.page-indicator,.scale-indicator{font-size:.7rem;padding:3px 6px}}@media (max-width: 480px){.pdf-preview-header{padding-top:90px!important}.pdf-preview-title-text{font-size:13px;padding:0 45px}.pdf-preview-close-btn{top:90px!important;right:10px!important}}@supports (padding-top: env(safe-area-inset-top)){@media (max-width: 768px){.pdf-preview-header{padding-top:calc(80px + env(safe-area-inset-top))!important}.pdf-preview-close-btn{top:calc(80px + env(safe-area-inset-top))!important;right:calc(12px + env(safe-area-inset-right))!important}}}.pdf-preview-toolbar{display:flex;justify-content:center;align-items:center;padding:8px 12px;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;flex-wrap:nowrap;gap:4px;flex-shrink:0;min-height:48px}.toolbar-group{display:flex;align-items:center;gap:4px}.toolbar-group button{padding:8px 10px!important;font-size:.85rem!important;min-width:36px!important;height:36px!important;border-radius:8px!important;border:2px solid #3b82f6!important;background:linear-gradient(135deg,#3b82f6,#2563eb)!important;color:#fff!important;box-shadow:0 2px 6px #3b82f640!important;transition:all .2s ease!important;font-weight:600!important}.toolbar-group button:disabled{opacity:.5!important;background:#e5e7eb!important;border-color:#d1d5db!important;color:#9ca3af!important;box-shadow:none!important}.toolbar-group button:not(:disabled):hover{background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;border-color:#1d4ed8!important;box-shadow:0 4px 10px #3b82f659!important;transform:translateY(-2px)!important}.toolbar-group button:not(:disabled):active{transform:translateY(0)!important;box-shadow:0 2px 4px #3b82f633!important}.toolbar-group .button-icon-left svg{margin-right:0!important;width:20px!important;height:20px!important}.toolbar-group:last-child button{background:linear-gradient(135deg,#10b981,#059669)!important;border-color:#059669!important;box-shadow:0 2px 6px #10b9814d!important}.toolbar-group:last-child button:not(:disabled):hover{background:linear-gradient(135deg,#059669,#047857)!important;border-color:#047857!important;box-shadow:0 4px 10px #10b98166!important}.page-indicator,.scale-indicator{font-size:.8rem;color:#1e293b;font-weight:700;padding:6px 10px;background:linear-gradient(135deg,#fff,#f8fafc);border-radius:6px;border:2px solid #cbd5e1;min-width:auto;text-align:center;white-space:nowrap;box-shadow:0 2px 4px #00000014}.pdf-document-viewer{flex-grow:1;overflow:auto;background-color:#f3f4f6;padding:16px;display:flex;justify-content:center;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.pdf-document-viewer .react-pdf__Document{display:flex;flex-direction:column;align-items:center}.pdf-document-viewer .react-pdf__Page{margin-bottom:16px;box-shadow:0 4px 12px #00000026;max-width:100%;border-radius:4px;overflow:hidden}.pdf-feedback-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;color:#6b7280;text-align:center;width:100%;height:100%}.pdf-feedback-indicator.error p{color:#ef4444}.pdf-spinner-icon{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@media (min-width: 1025px){.pdf-preview-modal-content{width:95vw;max-width:1200px;height:95vh;max-height:900px}.pdf-preview-toolbar{padding:12px 20px}.pdf-document-viewer{padding:24px}}.file-preview-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000e6;display:flex;align-items:center;justify-content:center;z-index:10010!important;padding:0;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.file-preview-modal-content{background-color:#fff;border-radius:0;box-shadow:none;display:flex;flex-direction:column;overflow:hidden;width:100vw;height:100vh;max-width:100vw;max-height:100vh;position:relative;z-index:10011!important}@media (min-width: 769px){.file-preview-backdrop{padding:20px}.file-preview-modal-content{border-radius:12px;box-shadow:0 20px 25px -5px #0000004d;width:90vw;max-width:1200px;height:85vh;max-height:800px}}.file-preview-header{padding:16px 16px 12px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;background:#fff;position:relative;min-height:56px;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:10011}.file-preview-title{margin:0;font-size:16px;font-weight:600;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;text-align:center;padding:0 60px}.file-preview-close-btn{position:absolute!important;right:12px!important;top:12px!important;color:#fff!important;background:linear-gradient(135deg,#ef4444,#dc2626)!important;border:2px solid #dc2626!important;padding:0!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:10020!important;cursor:pointer!important;transition:all .2s ease!important;box-shadow:0 4px 12px #dc262666!important;font-size:20px!important;font-weight:600!important;-webkit-transform:translateZ(0);transform:translateZ(0)}.file-preview-close-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c)!important;border-color:#b91c1c!important;transform:scale(1.1)!important;box-shadow:0 6px 16px #dc262680!important}.file-preview-close-btn:active{transform:scale(.95)!important}.file-preview-close-btn svg{width:22px!important;height:22px!important;stroke-width:2.5!important}@media (max-width: 768px){.file-preview-backdrop{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100vw!important;height:100vh!important;height:-webkit-fill-available!important;min-height:-webkit-fill-available!important}.file-preview-modal-content{width:100vw!important;height:100vh!important;height:-webkit-fill-available!important;min-height:-webkit-fill-available!important;max-width:none!important;max-height:none!important}.file-preview-header{padding-top:80px!important;min-height:100px!important}.file-preview-title{font-size:14px;padding:0 50px}.file-preview-close-btn{position:fixed!important;top:80px!important;right:12px!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}.file-preview-close-btn svg{width:24px!important;height:24px!important}.file-preview-toolbar{padding:6px 8px;min-height:44px;gap:3px}.toolbar-group{gap:3px}.toolbar-group button{min-width:28px!important;height:28px!important;padding:4px 6px!important}.toolbar-group .button-icon-left svg{width:16px!important;height:16px!important}}@media (max-width: 480px){.file-preview-header{padding-top:90px!important}.file-preview-title{font-size:13px;padding:0 45px}.file-preview-close-btn{top:90px!important;right:10px!important}}@supports (padding-top: env(safe-area-inset-top)){@media (max-width: 768px){.file-preview-header{padding-top:calc(80px + env(safe-area-inset-top))!important}.file-preview-close-btn{top:calc(80px + env(safe-area-inset-top))!important;right:calc(12px + env(safe-area-inset-right))!important}}}.file-preview-toolbar{display:flex;justify-content:center;align-items:center;padding:8px 12px;background-color:#f9fafb;min-height:48px;border-bottom:1px solid #e5e7eb;flex-shrink:0}.file-preview-toolbar .toolbar-group{display:flex;align-items:center;gap:4px}.file-preview-toolbar button{padding:8px 12px!important;font-size:.85rem!important;min-width:40px!important;height:40px!important;border-radius:8px!important;border:2px solid #10b981!important;background:linear-gradient(135deg,#10b981,#059669)!important;color:#fff!important;box-shadow:0 2px 8px #10b9814d!important;transition:all .2s ease!important;font-weight:600!important}.file-preview-toolbar button:disabled{opacity:.5!important;background:#e5e7eb!important;border-color:#d1d5db!important;color:#9ca3af!important;box-shadow:none!important}.file-preview-toolbar button:not(:disabled):hover{background:linear-gradient(135deg,#059669,#047857)!important;border-color:#047857!important;box-shadow:0 4px 12px #10b98166!important;transform:translateY(-2px)!important}.file-preview-toolbar button:not(:disabled):active{transform:translateY(0)!important;box-shadow:0 2px 4px #10b98133!important}.file-preview-toolbar .button-icon-left svg{margin-right:0!important;width:20px!important;height:20px!important}.toolbar-group{display:flex;align-items:center;gap:8px}.file-preview-content{flex-grow:1;overflow:auto;background-color:#f3f4f6;display:flex;align-items:center;justify-content:center;padding:20px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.image-preview-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.preview-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 4px 12px #00000026;background:#fff;cursor:zoom-in}.file-preview-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#6b7280;text-align:center}.spinning-icon{width:32px;height:32px;margin-bottom:12px;animation:spin 1s linear infinite}.file-preview-error{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#ef4444;text-align:center;gap:16px}.unsupported-file{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#6b7280;gap:12px;max-width:400px}.unsupported-icon{font-size:64px;margin-bottom:12px;opacity:.7}.unsupported-file h4{font-size:18px;font-weight:600;color:#374151;margin:0}.unsupported-file p{margin:0;color:#6b7280;font-size:14px;line-height:1.5}@media (max-width: 480px){.file-preview-content{padding:12px}.unsupported-file{max-width:300px}.unsupported-icon{font-size:48px}.unsupported-file h4{font-size:16px}.unsupported-file p{font-size:13px}}.unknown-diagnosis-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10010!important;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);padding:20px}.unknown-diagnosis-modal{background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:500px;width:100%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;color:#1f2937;border:1px solid rgba(229,231,235,.5);z-index:10011!important}.modal-header{padding:20px 20px 16px;border-bottom:1px solid #f3f4f6;display:flex;align-items:center;justify-content:space-between;background:#fefefe}.modal-title-section{display:flex;align-items:center;gap:12px;flex-grow:1}.modal-icon.warning{color:#f59e0b;flex-shrink:0}.modal-title{font-size:1.2rem;font-weight:600;margin:0;color:#1f2937}.close-modal-btn{margin-left:8px!important;padding:0!important;border-radius:50%!important;width:36px!important;height:36px!important;min-width:auto!important;min-height:auto!important;background:#f8f9fa!important;border:1px solid #e9ecef!important;color:#6c757d!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:all .2s ease!important;box-shadow:0 2px 4px #0000001a!important}.close-modal-btn:hover{background:#fff!important;border-color:#dc3545!important;color:#dc3545!important;transform:scale(1.05)!important;box-shadow:0 4px 8px #00000026!important}.modal-body{padding:20px;overflow-y:auto;flex-grow:1}.diagnosis-message{display:flex;gap:16px;padding:20px;background:#fef3c7;border:1px solid #f59e0b;border-radius:12px;margin-bottom:24px}.message-icon{color:#d97706;flex-shrink:0;margin-top:2px}.message-content{flex-grow:1}.main-message{font-size:1rem;font-weight:600;color:#92400e;margin:0 0 8px;line-height:1.4}.sub-message{font-size:.9rem;color:#a16207;margin:0;line-height:1.5}.recommendations{margin-bottom:20px}.recommendations h4{font-size:.95rem;font-weight:600;color:#374151;margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.recommendations ul{margin:0;padding-left:20px;list-style-type:disc}.recommendations li{font-size:.9rem;color:#6b7280;margin-bottom:8px;line-height:1.5}.recommendations li:last-child{margin-bottom:0}.report-info{display:flex;flex-wrap:wrap;gap:12px;padding:16px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.info-label{font-size:.8rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:.9rem;color:#374151;font-weight:500}.modal-footer{padding:16px 20px 20px;border-top:1px solid #f3f4f6;background:#fafafa}.modal-actions{display:flex;gap:12px;justify-content:flex-end;align-items:center}@media (max-width: 640px){.unknown-diagnosis-backdrop{padding:calc(var(--mobile-header-height, 56px) + 12px) 12px 8px 12px;align-items:flex-start}.unknown-diagnosis-modal{max-height:calc(100vh - var(--mobile-header-height, 56px) - 80px);border-radius:20px 20px 0 0;max-width:100%;margin-top:0}.modal-header{padding:16px 16px 12px}.modal-body{padding:16px}.modal-footer{padding:12px 16px 16px}.modal-title{font-size:1.1rem;line-height:1.3}.modal-actions{flex-direction:column-reverse;width:100%;gap:8px}.modal-actions .button{width:100%;justify-content:center;padding:12px 16px;font-size:.95rem}.diagnosis-message{padding:16px;gap:12px}.main-message{font-size:.95rem}.sub-message,.recommendations li{font-size:.85rem}}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:10010!important;padding:8vh 4vw;box-sizing:border-box;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.reupload-modal{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000001f;display:flex;flex-direction:column;overflow:hidden;width:90vw;height:auto;max-width:480px;max-height:75vh;position:relative;z-index:10011!important}@media (min-width: 769px){.modal-overlay{padding:20px}.reupload-modal{border-radius:12px;box-shadow:0 20px 60px #00000026;width:85vw;max-width:520px;height:auto;max-height:80vh;overflow-y:auto}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;border-bottom:1px solid #e5e7eb;flex-shrink:0;background:#fff;position:relative;min-height:48px}@media (max-width: 768px){.modal-header{padding:10px 16px;min-height:44px}}@media (max-width: 480px){.modal-header{padding:8px 12px;min-height:40px}}.modal-title{display:flex;align-items:center;gap:12px}.modal-icon{color:#f59e0b;font-size:24px}.modal-title h2{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.close-button{background:#f8f9fa!important;border:1px solid #e9ecef!important;padding:0!important;width:36px!important;height:36px!important;border-radius:50%!important;cursor:pointer!important;color:#6c757d!important;transition:all .2s ease!important;display:flex!important;align-items:center!important;justify-content:center!important;flex-shrink:0!important;box-shadow:0 2px 4px #0000001a!important;font-size:18px!important;font-weight:300!important;min-height:auto!important}.close-button:hover{background:#fff!important;border-color:#dc3545!important;color:#dc3545!important;transform:scale(1.05)!important;box-shadow:0 4px 8px #00000026!important}.close-button:active{transform:scale(.95)!important}@media (max-width: 768px){.modal-title h2{font-size:1.1rem}.close-button{width:36px!important;height:36px!important}}@media (max-width: 480px){.modal-title h2{font-size:1rem}.close-button{width:32px!important;height:32px!important}}.modal-content{flex-grow:1;overflow-y:auto;padding:20px 24px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.modal-description{margin:0 0 20px;color:#6b7280;line-height:1.5}.quality-issues-section{margin-bottom:24px}.quality-issues-section h3{margin:0 0 16px;font-size:1rem;font-weight:600;color:#1f2937}.quality-issue-card{background:#fef3c7;border:1px solid #fbbf24;border-radius:8px;padding:16px;margin-bottom:12px}.quality-issue-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.issue-icon{color:#f59e0b;font-size:16px}.quality-issue-header h4{margin:0;font-size:.9rem;font-weight:600;color:#92400e;flex-grow:1}.quality-badge{padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:uppercase}.quality-badge.wrong_file{background:#fecaca;color:#dc2626}.quality-badge.poor{background:#fed7aa;color:#ea580c}.quality-message{margin:0 0 8px;color:#92400e;font-size:.9rem;line-height:1.4}.quality-details{margin-top:8px}.quality-details small{color:#78716c;font-size:.8rem}.reupload-section h3{margin:0 0 16px;font-size:1rem;font-weight:600;color:#1f2937}.file-upload-group{margin-bottom:20px}.file-upload-group label{display:block;margin-bottom:8px;font-weight:500;color:#374151;font-size:.9rem}.required-badge{background:#fca5a5;color:#dc2626;padding:2px 6px;border-radius:4px;font-size:.7rem;font-weight:600;margin-left:8px;text-transform:uppercase}.error-message{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.9rem;margin-top:16px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px 20px;border-top:1px solid #e5e7eb;flex-shrink:0;background:#fff}.spinning{animation:spin 1s linear infinite}@media (max-width: 768px){.modal-content{padding:16px}.modal-footer{padding:12px 16px 16px}.modal-description{font-size:.9rem;line-height:1.5}.quality-issue-card{padding:12px;margin-bottom:10px}.quality-issue-header h4,.quality-message{font-size:.85rem}.file-upload-group{margin-bottom:16px}.file-upload-group label{font-size:.85rem}}@media (max-width: 480px){.modal-content{padding:12px}.modal-footer{padding:12px 12px 16px;flex-direction:column;gap:8px}.modal-footer button{width:100%;min-height:44px}.modal-description{font-size:.85rem}.quality-issue-card{padding:10px;margin-bottom:8px}.quality-issue-header{gap:6px}.quality-issue-header h4,.quality-message{font-size:.8rem}.quality-details small{font-size:.75rem}.file-upload-group label{font-size:.8rem}.required-badge{font-size:.65rem;padding:1px 4px}.error-message{padding:10px 12px;font-size:.85rem}}@media (max-width: 380px){.modal-content{padding:10px}.quality-issue-card{padding:8px}.modal-footer{padding:10px 10px 14px}}.analysis-page-container{padding:0 16px 16px;width:100%;box-sizing:border-box;margin-top:0;overflow-x:hidden}@media (min-width: 768px){.analysis-page-container{padding:var(--spacing-md)}}@media (min-width: 1024px){.analysis-page-container{padding:var(--spacing-lg)}}.analysis-page-header{margin-bottom:24px;display:flex;flex-direction:column;gap:12px}@media (min-width: 768px){.analysis-page-header{margin-bottom:28px;gap:16px;flex-direction:row;justify-content:space-between;align-items:flex-start}}.analysis-page-header h1{font-size:24px;font-weight:700;margin:0;color:var(--text-primary);line-height:1.2;word-wrap:break-word;overflow-wrap:break-word}@media (min-width: 768px){.analysis-page-header h1{font-size:26px}}@media (min-width: 1024px){.analysis-page-header h1{font-size:28px}.analysis-page-header{align-items:center}}.analysis-layout-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-md);width:100%}@media (min-width: 768px){.analysis-layout-grid{gap:var(--spacing-lg)}}@media (min-width: 1024px){.analysis-layout-grid{grid-template-columns:minmax(280px,1fr) 2fr;gap:var(--spacing-xl)}.report-list-panel.collapsed{grid-column:1;max-height:80px}.report-details-panel{grid-column:2}.report-list-panel.collapsed+.report-details-panel{grid-column:1 / -1}}.report-list-panel{background-color:var(--surface);border-radius:var(--radius-lg);padding:var(--spacing-sm);box-shadow:var(--shadow-sm);max-height:calc(100vh - 250px);display:flex;flex-direction:column;width:100%;box-sizing:border-box;transition:all .4s cubic-bezier(.4,0,.2,1);overflow:hidden}.report-list-panel.collapsed{max-height:80px}.report-list-panel.navigating{position:relative;pointer-events:none;opacity:.9}.report-list-panel.navigating:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(45deg,transparent 30%,rgba(59,130,246,.05) 50%,transparent 70%);background-size:300% 300%;z-index:1;border-radius:var(--radius-lg)}.report-list-panel.navigating:hover:before{animation:navigationShimmer 1.5s ease-in-out infinite}@keyframes navigationShimmer{0%,to{background-position:-300% -300%}50%{background-position:300% 300%}}.panel-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-md);border-bottom:1px solid var(--border-light)}.collapse-toggle{width:36px;height:36px;border-radius:18px;background:var(--surface-tertiary);border:1px solid var(--border-light);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.collapse-toggle:hover{background:var(--primary);color:#fff;transform:scale(1.1)}@media (min-width: 768px){.report-list-panel{padding:var(--spacing-md);max-height:calc(100vh - 220px)}}@media (min-width: 1024px){.report-list-panel{max-height:calc(100vh - var(--header-height) - var(--tab-bar-height) - var(--spacing-xl) * 2)}}.report-list-panel h2{font-size:1.1rem;font-weight:600;margin:0 0 var(--spacing-md) 0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.reports-scrollable-list{overflow-y:auto;flex-grow:1;padding-right:8px;margin-right:-8px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;contain:layout style paint;will-change:scroll-position}.reports-scrollable-list::-webkit-scrollbar{width:8px}.reports-scrollable-list::-webkit-scrollbar-track{background:var(--surface-secondary);border-radius:4px}.reports-scrollable-list::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:4px;transition:background-color .2s}.reports-scrollable-list::-webkit-scrollbar-thumb:hover{background:var(--primary)}.loading-reports-placeholder,.no-reports-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl) 0;color:var(--text-tertiary);text-align:center;flex-grow:1}.loading-reports-placeholder .status-icon,.no-reports-placeholder svg{margin-bottom:var(--spacing-md);opacity:.7;width:32px;height:32px}.status-icon.spinning{animation:spin 1.5s linear infinite}.report-details-card-content{background-color:var(--surface);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-color) 0 2px 8px;overflow:hidden}.details-card-header{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:var(--spacing-sm)}.details-card-header h3{font-size:1.25rem;font-weight:600;margin:0;color:var(--text-primary);flex-grow:1}.original-docs-buttons{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}@media (min-width: 768px){.details-card-header{flex-direction:row;align-items:center;justify-content:space-between}}.details-info-grid{padding:12px;display:grid;grid-template-columns:1fr;gap:8px;border-bottom:1px solid var(--border-light);width:100%;box-sizing:border-box;word-wrap:break-word;overflow-wrap:break-word}@media (min-width: 480px){.details-info-grid{grid-template-columns:repeat(2,1fr);gap:12px 16px}}@media (min-width: 768px){.details-info-grid{padding:16px;gap:16px}}@media (max-width: 480px){.details-info-grid{padding:8px;gap:6px;font-size:14px}}@media (min-width: 600px){.details-info-grid{grid-template-columns:repeat(2,1fr)}}.info-item{display:flex;flex-direction:column;font-size:14px;min-width:0;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;overflow:hidden}.info-item .label{font-weight:500;color:var(--text-secondary);margin-bottom:2px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-item .value{color:var(--text-primary);word-break:break-word;overflow-wrap:break-word;max-width:100%;font-size:13px;line-height:1.4}.info-item .time-value{margin-left:var(--spacing-sm);color:var(--text-tertiary);font-size:.85rem}.info-item.status-highlight .value{font-weight:600}.status-text.uploaded,.status-text.extracting,.status-text.awaiting-analysis,.status-text.processing-analysis{color:var(--info-text)}.status-text.pending-correction{color:var(--warning-text)}.status-text.completed{color:var(--success-text)}.status-text.error-extraction,.status-text.error-analysis{color:var(--error-text)}.info-item.error-highlight .value.error-text{color:var(--error-text);background-color:var(--error-bg);padding:var(--spacing-xs);border-radius:var(--border-radius-sm);font-size:.85rem}.info-item.full-width{grid-column:1 / -1}.reports-content{transition:max-height .4s ease-in-out,opacity .3s ease-in-out}.reports-content.collapsed{max-height:0!important;opacity:0!important;overflow:hidden!important}.reports-content.expanded{max-height:none;opacity:1;overflow:hidden;display:flex;flex-direction:column}.navigation-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#fffffff2;display:flex;align-items:center;justify-content:center;z-index:10;border-radius:var(--radius-lg);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.navigation-feedback{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);text-align:center}.navigation-spinner{width:24px;height:24px;color:var(--primary);animation:spin 1s linear infinite}.navigation-feedback p{font-size:.9rem;color:var(--text-secondary);margin:0;font-weight:500}@media (prefers-color-scheme: dark){.navigation-overlay{background:#111827f2}}.analysis-actions-area{padding:var(--spacing-md) var(--spacing-md) var(--spacing-sm) var(--spacing-md)}.analysis-actions-area h4{font-size:1.1rem;font-weight:600;margin:0 0 var(--spacing-md) 0;color:var(--text-primary)}.analysis-status-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-lg) var(--spacing-sm);text-align:center;border-radius:var(--radius-lg);background-color:var(--surface-secondary);min-height:80px;width:100%;box-sizing:border-box}@media (min-width: 768px){.analysis-status-indicator{padding:var(--spacing-xl) var(--spacing-md);min-height:100px}}.analysis-status-indicator .status-icon{width:32px;height:32px;margin-bottom:var(--spacing-sm)}.analysis-status-indicator p{font-size:1rem;color:var(--text-secondary);margin-bottom:var(--spacing-md)}.analysis-status-indicator p.small-note{font-size:.85rem;color:var(--text-tertiary);margin-top:-8px}.analysis-status-indicator .button{margin-top:var(--spacing-sm)}.analysis-status-indicator.loading .status-icon{color:var(--info-text)}.analysis-status-indicator.action-needed .status-icon{color:var(--warning-text)}.analysis-status-indicator.completed .status-icon{color:var(--success-text)}.analysis-status-indicator.error .status-icon{color:var(--error-text)}.analysis-status-indicator.warning .status-icon{color:var(--warning-text)}.quality-issues-actions{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}.quality-issues-actions button{flex:1;min-width:140px}.analysis-content-placeholder,.no-report-selected-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xxl) var(--spacing-md);color:var(--text-tertiary);text-align:center;background-color:var(--surface);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-color) 0 2px 8px;min-height:300px}.analysis-content-placeholder svg,.no-report-selected-placeholder .placeholder-icon{margin-bottom:var(--spacing-md);opacity:.6;width:48px;height:48px}.analysis-content-placeholder p,.no-report-selected-placeholder p{font-size:1.05rem;font-weight:500}@media (max-width: 1024px){.report-list-panel.collapsed{max-height:70px}.panel-header{margin-bottom:var(--spacing-sm)}.collapse-toggle{width:32px;height:32px}}@media (max-width: 480px){.analysis-page-container{padding:8px;margin:0}.report-list-panel{padding:8px;margin-bottom:12px}.report-list-panel.collapsed{max-height:50px}.panel-header{padding-bottom:6px;margin-bottom:8px}.panel-header h2{font-size:16px;margin:0}.collapse-toggle{width:28px;height:28px;border-radius:14px}.details-info-grid{grid-template-columns:1fr;gap:6px;padding:8px}.info-item .label{font-size:11px}.info-item .value{font-size:12px;max-width:calc(100vw - 40px)}.analysis-page-container *{-webkit-text-size-adjust:100%;text-size-adjust:100%}.analysis-layout-grid{gap:8px;margin:0;width:100%;max-width:100%}.report-details-card-content{margin:0;width:100%;max-width:100%;overflow:hidden}}"
.button-spinner-small{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:spin .8s linear infinite}.reports-search-container{width:100%;max-width:600px;margin:0 auto 20px;padding:0 16px}.reports-search-container .search-bar-wrapper{width:100%;max-width:none}.reports-search-container .search-bar-input{width:100%;padding:12px 16px;font-size:16px;border-radius:8px;border:2px solid #e2e8f0;transition:all .3s ease;box-sizing:border-box}.reports-search-container .search-bar-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}@media (max-width: 480px){.reports-search-container{padding:0 12px;max-width:calc(100vw - 24px)}.reports-search-container .search-bar-input{min-width:0;font-size:16px}}@media (max-width: 768px){.analysis-layout-grid,.details-info-grid{grid-template-columns:1fr}.original-docs-buttons{flex-direction:row;align-items:center;gap:8px;margin-top:8px;justify-content:flex-start}}.floating-analysis-btn{position:fixed;bottom:90px;right:20px;width:56px;height:56px;background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;border:none;border-radius:28px;font-size:24px;display:flex;align-items:center;justify-content:center;z-index:var(--z-floating-button);cursor:pointer;box-shadow:0 4px 12px #dc26264d;transition:transform .2s ease,box-shadow .2s ease}.floating-analysis-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #dc262666}.floating-analysis-btn:active{transform:translateY(0) scale(.95)}@media (max-width: 480px){.floating-analysis-btn{bottom:80px;right:16px;width:50px;height:50px;font-size:20px;border-radius:25px}}@media (min-width: 1025px){.floating-analysis-btn{display:none}}.analysis-status-indicator .button,.analysis-status-indicator button,.analysis-actions-area button{max-width:100%!important;box-sizing:border-box!important;white-space:normal!important;word-wrap:break-word!important;overflow-wrap:break-word!important}.analysis-status-indicator.completed button,.analysis-status-indicator.completed .button{background:linear-gradient(135deg,#dc2626,#b91c1c)!important;color:#fff!important;padding:14px 28px!important;font-size:1.1rem!important;font-weight:600!important;border-radius:12px!important;box-shadow:0 4px 15px #dc262659!important;border:none!important;min-height:52px!important;display:inline-flex!important;align-items:center!important;gap:10px!important;transition:all .3s ease!important;max-width:100%!important}.analysis-status-indicator.completed button:hover,.analysis-status-indicator.completed .button:hover{background:linear-gradient(135deg,#b91c1c,#991b1b)!important;box-shadow:0 6px 20px #dc262673!important;transform:translateY(-2px)!important}@media (min-width: 769px){.report-details-panel,.report-details-card-content{overflow:visible!important}.analysis-status-indicator{padding:32px 24px!important;overflow:visible!important}.analysis-status-indicator.completed{background:linear-gradient(135deg,#f0fdf4,#dcfce7)!important;border:2px solid #22c55e!important}.analysis-status-indicator.completed .status-icon{color:#22c55e!important;width:48px!important;height:48px!important}.analysis-status-indicator.completed p{font-size:1.1rem!important;color:#15803d!important;font-weight:500!important}}.analysis-status-indicator button[class*=primary]:not(.analysis-status-indicator.completed button){background:linear-gradient(135deg,#3b82f6,#2563eb)!important;box-shadow:0 4px 12px #3b82f64d!important}.analysis-actions-area{overflow:visible!important;width:100%!important;box-sizing:border-box!important}.correction-page-layout{padding:var(--spacing-lg);max-width:1300px;margin:0 auto}.correction-page-header{display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:flex-start;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.correction-page-header h1{font-size:1.6rem;font-weight:700;margin:0;color:var(--text-primary)}.report-id-highlight{color:var(--primary-action-color);font-weight:600}.header-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}@media (min-width: 768px){.correction-page-header{flex-direction:row;justify-content:space-between;align-items:center}}.correction-form-sections{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-section-card{background-color:var(--surface);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-color) 0 3px 10px}.form-section-card .section-title{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-md) 0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.fields-grid{display:grid;gap:var(--spacing-md) var(--spacing-lg)}.fields-grid.one-column{grid-template-columns:1fr}.fields-grid.two-columns{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.fields-grid.three-columns{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.correction-subsection-title{font-size:1rem;font-weight:500;color:var(--text-secondary);margin-top:var(--spacing-md);margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-xs);border-bottom:1px dashed var(--border-color)}.fields-grid.responsive-peaks{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.peak-item{background-color:var(--surface-variant);padding:var(--spacing-md);border-radius:var(--border-radius-md);border:1px solid var(--border-color);display:flex;flex-direction:column;gap:var(--spacing-sm)}.peak-item-title{font-size:.95rem;font-weight:600;color:var(--blue-600);margin:0 0 var(--spacing-xs) 0}.no-data-message{color:var(--text-tertiary);font-style:italic;padding:var(--spacing-md) 0}.submission-indicator{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);color:var(--info-text);font-weight:500}.submission-indicator .spinner-icon{width:20px;height:20px;border-width:3px;border-color:var(--info-text);border-top-color:transparent;animation:spin 1s linear infinite}.form-submit-error-message{color:var(--error-text);background-color:var(--error-bg);border:1px solid var(--error-border);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-md);text-align:center;font-size:.9rem;margin-top:var(--spacing-md);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.correction-form-actions{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.fields-grid input,.fields-grid textarea{min-width:0;width:100%;word-wrap:break-word;overflow-wrap:break-word}@media (max-width: 768px){.fields-grid.two-columns,.fields-grid.three-columns{grid-template-columns:1fr}.peak-item{margin-bottom:var(--spacing-md)}}.form-section-card label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.form-section-card input{min-height:40px;padding:8px 12px;box-sizing:border-box}.page-loading-indicator,.page-error-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;padding:var(--spacing-xl)}.page-loading-indicator .spinner-icon,.page-error-indicator .error-icon{width:40px;height:40px;margin-bottom:var(--spacing-md)}.page-error-indicator .error-icon{color:var(--error-text)}.hplc-peaks-manual-input{width:100%;margin-bottom:var(--spacing-lg)}.peaks-header{margin-bottom:var(--spacing-md)}.manual-input-note{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0 0 var(--spacing-sm) 0;font-style:italic}.peaks-table{border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.peaks-table-header{display:grid;grid-template-columns:2fr 1fr 1fr 80px;background:var(--surface-elevated);border-bottom:1px solid var(--border-color);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.peak-header-cell{padding:var(--spacing-sm) var(--spacing-xs);text-align:left;color:var(--text-primary);border-right:1px solid var(--border-light)}.peak-header-cell:last-child{border-right:none;text-align:center}.peak-row{display:grid;grid-template-columns:2fr 1fr 1fr 80px;border-bottom:1px solid var(--border-light);align-items:center}.peak-row:last-child{border-bottom:none}.peak-row:hover{background:var(--surface-hover)}.peak-cell{padding:var(--spacing-xs);border-right:1px solid var(--border-light)}.peak-cell:last-child{border-right:none}.peak-name-cell{padding:var(--spacing-xs) var(--spacing-xs)}.peak-name-dropdown{width:100%;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--font-size-sm);color:var(--text-primary);outline:none;transition:border-color .2s ease}.peak-name-dropdown:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.peak-input{width:100%;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface);font-size:var(--font-size-sm);color:var(--text-primary);outline:none;transition:border-color .2s ease}.peak-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.peak-input[type=number]{text-align:right}.peak-actions-cell{text-align:center;padding:var(--spacing-xs)}.remove-peak-btn{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:400;margin:0 auto;color:var(--error-text);background:transparent;border:1px solid var(--border-color);cursor:pointer;transition:all .2s ease}.remove-peak-btn:hover:not(:disabled){background:var(--error-light);border-color:var(--error);color:var(--error)}.remove-peak-btn:disabled{opacity:.5;cursor:not-allowed}.no-peaks-message{text-align:center;color:var(--text-secondary);font-style:italic;padding:var(--spacing-lg);margin:0}@media (max-width: 768px){.peaks-table-header,.peak-row{grid-template-columns:2fr 1fr 1fr 60px;font-size:var(--font-size-xs)}.peak-header-cell,.peak-cell{padding:var(--spacing-xs)}.peak-name-dropdown,.peak-input{font-size:var(--font-size-xs);padding:6px 8px}.remove-peak-btn{width:24px;height:24px;font-size:16px}}@media (max-width: 480px){.peaks-table-header,.peak-row{grid-template-columns:1fr;gap:var(--spacing-xs)}.peak-row{padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-bottom:var(--spacing-xs);background:var(--surface)}.peak-cell{border-right:none;border-bottom:1px solid var(--border-light);padding:var(--spacing-xs) 0}.peak-cell:last-child{border-bottom:none}.peak-header-cell{display:none}.peak-name-cell:before{content:"Peak Name: ";font-weight:var(--font-weight-medium);color:var(--text-secondary);display:block;margin-bottom:4px}.peak-cell:nth-child(2):before{content:"RT (min): ";font-weight:var(--font-weight-medium);color:var(--text-secondary);display:block;margin-bottom:4px}.peak-cell:nth-child(3):before{content:"Area %: ";font-weight:var(--font-weight-medium);color:var(--text-secondary);display:block;margin-bottom:4px}.peak-actions-cell{text-align:center;padding-top:var(--spacing-sm)}}.submission-loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px}.submission-loading-content{background:#fff;border-radius:16px;padding:32px 24px;text-align:center;max-width:400px;width:100%;box-shadow:0 20px 25px -5px #0000004d}.submission-spinner{margin-bottom:16px;display:flex;justify-content:center}.submission-loading-content h3{margin:0 0 8px;font-size:18px;font-weight:600;color:#111827}.submission-loading-content p{margin:0;font-size:14px;color:#6b7280;line-height:1.5}.spinning-icon{animation:spin 1s linear infinite;color:#10b981}@media (max-width: 480px){.submission-loading-overlay{padding:16px}.submission-loading-content{padding:24px 20px}.submission-loading-content h3{font-size:16px}.submission-loading-content p{font-size:13px}}.correction-page-layout{padding-bottom:120px!important}.correction-form-actions{margin-bottom:40px;padding-bottom:40px}@media (min-width: 769px){.correction-page-layout{padding-bottom:140px!important}.correction-form-actions{margin-bottom:60px;padding-bottom:60px}}.admin-container{min-height:100vh;background:linear-gradient(135deg,#eff6ff,#e0e7ff)}.admin-header{background:var(--surface-elevated);box-shadow:var(--shadow-sm);border-bottom:1px solid var(--border-light)}.admin-header-content{max-width:1280px;margin:0 auto;padding:0 var(--space-4)}.admin-header-flex{display:flex;justify-content:space-between;align-items:center;height:64px}.admin-title-section{display:flex;align-items:center;gap:var(--space-3)}.admin-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.admin-role-badge{padding:var(--space-1) var(--space-3);background:#e0e7ff;color:#4338ca;font-size:var(--font-size-sm);border-radius:var(--radius-full);font-weight:var(--font-weight-medium)}.admin-user-section{display:flex;align-items:center;gap:var(--space-4)}.admin-welcome{color:var(--text-secondary);font-weight:var(--font-weight-medium)}.admin-back-btn{padding:var(--space-2) var(--space-4);color:var(--text-secondary);background:transparent;border:none;cursor:pointer;border-radius:var(--radius-lg);transition:all var(--transition-fast);font-weight:var(--font-weight-medium)}.admin-back-btn:hover{color:var(--text-primary);background:var(--hover-overlay)}.admin-nav{background:var(--surface-elevated);box-shadow:var(--shadow-sm)}.admin-nav-content{max-width:1280px;margin:0 auto;padding:0 var(--space-4)}.admin-nav-flex{display:flex;gap:var(--space-8)}.admin-tab{padding:var(--space-4) var(--space-2);border-bottom:2px solid transparent;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);background:transparent;border-left:none;border-right:none;border-top:none;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:var(--space-2);color:var(--text-tertiary)}.admin-tab.active{border-bottom-color:#4338ca;color:#4338ca}.admin-tab:hover{color:var(--text-secondary);border-bottom-color:var(--border-medium)}.admin-main{max-width:1280px;margin:0 auto;padding:var(--space-8) var(--space-4)}.admin-page-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--space-6) 0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-6);margin-bottom:var(--space-6)}.stat-card{background:var(--surface-elevated);padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.stat-card-content{display:flex;align-items:center;gap:var(--space-5)}.stat-icon{font-size:var(--font-size-2xl);flex-shrink:0}.stat-details{flex:1;min-width:0}.stat-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-tertiary);text-transform:uppercase;margin:0 0 var(--space-1) 0}.stat-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin:0}.stat-value.green{color:#16a34a}.stat-value.blue{color:#2563eb}.stat-value.orange{color:#ea580c}.role-distribution{background:var(--surface-elevated);padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.role-distribution h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--text-primary);margin:0 0 var(--space-4) 0}.role-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) 0}.role-item:not(:last-child){border-bottom:1px solid var(--border-light)}.role-name{color:var(--text-secondary);text-transform:capitalize;font-weight:var(--font-weight-medium)}.role-count{font-weight:var(--font-weight-semibold);color:var(--text-primary)}.content-section{margin-bottom:var(--space-6)}.create-btn{padding:var(--space-2) var(--space-4);background:#4338ca;color:#fff;border:none;border-radius:var(--radius-lg);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.create-btn:hover{background:#3730a3;transform:translateY(-1px);box-shadow:var(--shadow-md)}.filters-actions{background:var(--surface-elevated);padding:var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);margin-bottom:var(--space-6)}.filters-row{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;justify-content:space-between}.filters-left{display:flex;flex-wrap:wrap;gap:var(--space-4);flex:1}.search-input{min-width:256px;flex:1}.filter-select{min-width:120px}.actions-right{display:flex;gap:var(--space-2)}.action-btn{padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:var(--space-1)}.action-btn.export{background:#16a34a;color:#fff}.action-btn.export:hover{background:#15803d}.action-btn.activate{background:#2563eb;color:#fff}.action-btn.activate:hover{background:#1d4ed8}.action-btn.deactivate{background:#dc2626;color:#fff}.action-btn.deactivate:hover{background:#b91c1c}.data-table{background:var(--surface-elevated);box-shadow:var(--shadow-sm);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-light)}.table{width:100%;border-collapse:collapse}.table thead{background:#f9fafb}.table th{padding:var(--space-3) var(--space-6);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-light)}.table td{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-light);color:var(--text-primary)}.table tbody tr:hover{background:#f9fafb}.user-info{display:flex;flex-direction:column;gap:var(--space-1)}.user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.user-email{font-size:var(--font-size-sm);color:var(--text-tertiary)}.user-full-name{font-size:var(--font-size-xs);color:var(--text-secondary)}.role-select{font-size:var(--font-size-sm);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);background:var(--surface)}.status-badge{display:inline-flex;padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);text-transform:capitalize}.status-badge.active{background:#dcfce7;color:#16a34a}.status-badge.inactive{background:#fee2e2;color:#dc2626}.user-actions{display:flex;gap:var(--space-2)}.user-action-btn{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);font-weight:var(--font-weight-medium)}.user-action-btn.deactivate{background:#fee2e2;color:#dc2626}.user-action-btn.deactivate:hover{background:#fecaca}.user-action-btn.activate{background:#dcfce7;color:#16a34a}.user-action-btn.activate:hover{background:#bbf7d0}.admin-container .loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:transparent;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999}.admin-container .loading-overlay .loading-spinner{font-size:0;width:40px;height:40px;border:3px solid rgba(67,56,202,.2);border-top:3px solid #4338ca;border-radius:50%;animation:admin-loading-spin 1s linear infinite;margin:0}@keyframes admin-loading-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{color:var(--text-secondary);margin:0}.error-container{min-height:100vh;background:linear-gradient(135deg,#fef2f2,#fee2e2);display:flex;align-items:center;justify-content:center}.error-content{background:var(--surface-elevated);padding:var(--space-8);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;max-width:400px}.error-icon{font-size:3rem;margin-bottom:var(--space-4)}.error-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 var(--space-2) 0}.error-message{color:var(--text-secondary);margin:0 0 var(--space-4) 0}.error-button{padding:var(--space-2) var(--space-4);background:#4338ca;color:#fff;border:none;border-radius:var(--radius-lg);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.error-button:hover{background:#3730a3}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.modal-content{background:var(--surface-elevated);padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:28rem;margin:var(--space-4)}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin:0 0 var(--space-4) 0}.modal-form{display:flex;flex-direction:column;gap:var(--space-4)}.modal-actions{display:flex;gap:var(--space-3)}.modal-btn{flex:1;padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-lg);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.modal-btn.primary{background:#4338ca;color:#fff}.modal-btn.primary:hover{background:#3730a3}.modal-btn.secondary{background:#e5e7eb;color:var(--text-secondary)}.modal-btn.secondary:hover{background:#d1d5db}@media (max-width: 768px){.admin-header-flex{height:56px}.admin-title{font-size:var(--font-size-xl)}.admin-nav-flex{gap:var(--space-4);overflow-x:auto;padding-bottom:var(--space-2)}.admin-tab{white-space:nowrap;padding:var(--space-3) var(--space-2)}.admin-main{padding:var(--space-4)}.stats-grid{grid-template-columns:1fr;gap:var(--space-4)}.filters-row{flex-direction:column;align-items:stretch}.filters-left{flex-direction:column}.search-input{min-width:auto}.data-table{overflow-x:auto}.table th,.table td{padding:var(--space-2) var(--space-3);white-space:nowrap}}.admin-page svg,.admin-page .inline-block svg{width:1rem!important;height:1rem!important;vertical-align:middle}.admin-page h1 svg,.admin-page h2 svg,.admin-page h3 svg{width:1.25rem!important;height:1.25rem!important}.admin-page .w-4{width:1rem!important;height:1rem!important}.admin-page .w-5{width:1.25rem!important;height:1.25rem!important}.admin-page .w-6{width:1.5rem!important;height:1.5rem!important}.admin-page .w-8{width:2rem!important;height:2rem!important}.admin-page .inline-block{display:inline-block!important;vertical-align:middle!important}.admin-page .mr-1{margin-right:.25rem!important}.admin-page .mr-2{margin-right:.5rem!important}.admin-page .ml-2{margin-left:.5rem!important}.monitoring-container{padding:var(--space-6)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6)}.last-refresh{font-size:var(--font-size-sm);color:var(--text-secondary);font-family:monospace}.auto-refresh-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary)}.auto-refresh-btn.active{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-color:#10b981}.auto-refresh-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.spin{animation:spin 2s linear infinite}.stats-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}@media (max-width: 1024px){.stats-grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.stats-grid-4{grid-template-columns:1fr}}.monitoring-card{background:#fff;border-radius:var(--radius-xl);box-shadow:0 1px 3px #0000001a;overflow:hidden;transition:all var(--transition-base)}.monitoring-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.stat-card-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-bottom:1px solid var(--border-light)}.stat-card-header h3{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.stat-card-content{padding:var(--space-4)}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0}.stat-item .stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.stat-item .stat-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary);font-family:monospace}.bg-green-100{background-color:#d1fae5}.text-green-800{color:#065f46}.border-green-300{border-color:#6ee7b7}.bg-red-100{background-color:#fee2e2}.text-red-800{color:#991b1b}.border-red-300{border-color:#fca5a5}.bg-yellow-100{background-color:#fef3c7}.text-yellow-800{color:#92400e}.border-yellow-300{border-color:#fcd34d}.system-resources{background:#fff;border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-6);box-shadow:0 1px 3px #0000001a}.system-resources h3{margin-top:0;margin-bottom:var(--space-4);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary)}.resource-grid{display:grid;gap:var(--space-4)}.resource-item{padding:var(--space-3);background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border-light)}.resource-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3);font-size:var(--font-size-sm)}.resource-header span:first-child{font-weight:var(--font-weight-medium);color:var(--text-secondary)}.resource-value{font-family:monospace;font-weight:var(--font-weight-bold);color:var(--text-primary)}.progress-bar{width:100%;height:8px;background:var(--surface-elevated);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-base)}.progress-fill.cpu{background:linear-gradient(90deg,#3b82f6,#2563eb)}.progress-fill.memory{background:linear-gradient(90deg,#8b5cf6,#7c3aed)}.progress-fill.disk{background:linear-gradient(90deg,#10b981,#059669)}.report-stats{background:#fff;border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-6);box-shadow:0 1px 3px #0000001a}.report-stats h3{margin-top:0;margin-bottom:var(--space-4);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary)}.stat-icon.success{color:#10b981}.stat-icon.error{color:#ef4444}.stat-value.green{color:#10b981}.stat-value.red{color:#ef4444}.failed-tasks{background:#fff;border-radius:var(--radius-xl);padding:var(--space-6);margin-bottom:var(--space-6);box-shadow:0 1px 3px #0000001a}.failed-tasks h3{margin-top:0;margin-bottom:var(--space-4);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2)}.error-text{color:#dc2626;font-size:var(--font-size-sm);font-family:monospace}.btn-retry{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:var(--radius-lg);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.btn-retry:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.btn-retry:active{transform:translateY(0)}.status-badge.uploaded{background:#dbeafe;color:#1e40af}.status-badge.extracting{background:#fef3c7;color:#92400e}.status-badge.analyzed{background:#e0e7ff;color:#4338ca}.status-badge.completed{background:#d1fae5;color:#065f46}.status-badge.error_extraction,.status-badge.error{background:#fee2e2;color:#991b1b}code{font-family:Monaco,Courier New,monospace;font-size:var(--font-size-sm);padding:var(--space-1) var(--space-2);background:var(--surface-elevated);border-radius:var(--radius-md);border:1px solid var(--border-light)}.inline{display:inline-flex;align-items:center}@media (max-width: 768px){.monitoring-container{padding:var(--space-4)}.section-header{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.auto-refresh-btn{width:100%;justify-content:center}.admin-header-flex{flex-direction:column;height:auto;padding:var(--space-3) 0;gap:var(--space-3)}.admin-user-section{flex-direction:column;width:100%;gap:var(--space-2)}.admin-back-btn{width:100%;text-align:center}.admin-nav-flex{overflow-x:auto;gap:var(--space-2);padding-bottom:var(--space-2)}.admin-tab{white-space:nowrap;font-size:var(--font-size-xs);padding:var(--space-2)}.data-table{overflow-x:auto}.table{font-size:var(--font-size-sm)}}@media print{.admin-nav,.admin-back-btn,.auto-refresh-btn,.btn-retry,.user-action-btn,.create-btn{display:none!important}.admin-container{background:#fff}.monitoring-card,.system-resources,.report-stats,.failed-tasks{page-break-inside:avoid;box-shadow:none;border:1px solid #e5e7eb}}:root{--gm-primary: #6366f1;--gm-primary-dark: #4f46e5;--gm-success: #10b981;--gm-warning: #f59e0b;--gm-danger: #ef4444;--gm-info: #3b82f6;--gm-dark: #1e293b;--gm-light: #f8fafc;--gm-gray: #64748b;--gm-border: #e2e8f0;--gm-shadow: 0 4px 6px -1px rgb(0 0 0 / .1);--gm-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1);--gm-radius: 12px;--gm-radius-sm: 8px}.gm-admin-page{min-height:100vh;background:linear-gradient(135deg,#0f172a,#1e293b);color:#f1f5f9;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.gm-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:#1e293bcc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.1);position:sticky;top:0;z-index:100}.gm-header-left{display:flex;align-items:center;gap:1rem}.gm-header-left h1{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,#6366f1,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:0}.gm-header-left p{font-size:.85rem;color:var(--gm-gray);margin:0}.gm-logo{width:48px;height:48px;color:var(--gm-primary)}.gm-header-right{display:flex;align-items:center;gap:1.5rem}.gm-admin-name{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#6366f126;border-radius:var(--gm-radius-sm);font-weight:500}.gm-admin-name svg{width:20px;height:20px}.gm-server-time{color:var(--gm-gray);font-size:.9rem}.gm-nav{display:flex;gap:.5rem;padding:1rem 2rem;background:#0f172a80;border-bottom:1px solid rgba(255,255,255,.05)}.gm-nav-item{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:transparent;border:none;border-radius:var(--gm-radius-sm);color:var(--gm-gray);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.gm-nav-item svg{width:20px;height:20px}.gm-nav-item:hover{background:#ffffff0d;color:#f1f5f9}.gm-nav-item.active{background:var(--gm-primary);color:#fff}.gm-content{padding:2rem;max-width:1600px;margin:0 auto}.gm-dashboard{display:flex;flex-direction:column;gap:2rem}.gm-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}.gm-stat-card{display:flex;align-items:center;gap:1.25rem;padding:1.5rem;background:#1e293b99;border-radius:var(--gm-radius);border:1px solid rgba(255,255,255,.1);transition:transform .2s ease,box-shadow .2s ease}.gm-stat-card:hover{box-shadow:var(--gm-shadow-lg)}.gm-stat-card.primary{border-left:4px solid var(--gm-primary)}.gm-stat-card.success{border-left:4px solid var(--gm-success)}.gm-stat-card.warning{border-left:4px solid var(--gm-warning)}.gm-stat-card.info{border-left:4px solid var(--gm-info)}.gm-stat-icon{width:48px;height:48px;padding:12px;background:#6366f126;border-radius:12px}.gm-stat-card.primary .gm-stat-icon{background:#6366f126;color:var(--gm-primary)}.gm-stat-card.success .gm-stat-icon{background:#10b98126;color:var(--gm-success)}.gm-stat-card.warning .gm-stat-icon{background:#f59e0b26;color:var(--gm-warning)}.gm-stat-card.info .gm-stat-icon{background:#3b82f626;color:var(--gm-info)}.gm-stat-content{display:flex;flex-direction:column}.gm-stat-value{font-size:2rem;font-weight:700;line-height:1}.gm-stat-label{font-size:.9rem;color:var(--gm-gray);margin-top:.25rem}.gm-dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.gm-card{background:#1e293b99;border-radius:var(--gm-radius);border:1px solid rgba(255,255,255,.1);padding:1.5rem}.gm-card.full-width{grid-column:1 / -1}.gm-card h3{display:flex;align-items:center;gap:.5rem;font-size:1.1rem;font-weight:600;margin:0 0 1rem;color:#f1f5f9}.gm-icon{width:20px;height:20px;color:var(--gm-primary)}.gm-role-stats{display:flex;flex-direction:column;gap:.75rem}.gm-role-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.gm-role-badge{padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500;text-transform:capitalize}.gm-role-badge.admin{background:#ef444433;color:#f87171}.gm-role-badge.manager{background:#a855f733;color:#c084fc}.gm-role-badge.clinic{background:#3b82f633;color:#60a5fa}.gm-role-badge.patient{background:#10b98133;color:#34d399}.gm-role-badge.doctor{background:#f59e0b33;color:#fbbf24}.gm-role-badge.blood_bank{background:#ec489933;color:#f472b6}.gm-role-badge.user{background:#64748b33;color:#94a3b8}.gm-role-count{color:var(--gm-gray);font-size:.9rem}.gm-activity-list{display:flex;flex-direction:column;gap:.75rem}.gm-activity-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:#0f172a80;border-radius:var(--gm-radius-sm)}.gm-avatar,.gm-user-avatar{width:36px;height:36px;color:var(--gm-gray)}.gm-activity-info{flex:1;display:flex;flex-direction:column}.gm-activity-user{font-weight:500}.gm-activity-role{font-size:.8rem;color:var(--gm-gray)}.gm-activity-status{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:500}.gm-activity-status.active{background:#10b98133;color:#34d399}.gm-activity-status.inactive{background:#ef444433;color:#f87171}.gm-activity-time{font-size:.8rem;color:var(--gm-gray)}.gm-users-section{display:flex;flex-direction:column;gap:1.5rem}.gm-toolbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.gm-search-box{position:relative;flex:1;min-width:250px}.gm-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--gm-gray)}.gm-search-input{width:100%;padding:.75rem 1rem .75rem 2.75rem;background:#1e293b99;border:1px solid rgba(255,255,255,.1);border-radius:var(--gm-radius-sm);color:#f1f5f9;font-size:.95rem}.gm-search-input:focus{outline:none;border-color:var(--gm-primary)}.gm-filters{display:flex;gap:.75rem}.gm-filter-select{padding:.75rem 1rem;background:#1e293b99;border:1px solid rgba(255,255,255,.1);border-radius:var(--gm-radius-sm);color:#f1f5f9;font-size:.95rem;cursor:pointer}.gm-filter-select:focus{outline:none;border-color:var(--gm-primary)}.gm-actions{display:flex;gap:.75rem}.gm-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border:none;border-radius:var(--gm-radius-sm);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.gm-btn.sm{padding:.5rem 1rem;font-size:.85rem}.gm-btn.full-width{width:100%;justify-content:center}.gm-btn-icon{width:18px;height:18px}.gm-btn.primary{background:var(--gm-primary);color:#fff}.gm-btn.primary:hover{background:var(--gm-primary-dark)}.gm-btn.secondary{background:#ffffff1a;color:#f1f5f9}.gm-btn.secondary:hover{background:#ffffff26}.gm-btn.success{background:var(--gm-success);color:#fff}.gm-btn.warning{background:var(--gm-warning);color:#fff}.gm-btn.danger{background:var(--gm-danger);color:#fff}.gm-btn.info{background:var(--gm-info);color:#fff}.gm-btn.ghost{background:transparent;color:var(--gm-gray)}.gm-btn.ghost:hover{color:#f1f5f9}.gm-bulk-bar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#6366f126;border:1px solid var(--gm-primary);border-radius:var(--gm-radius-sm)}.gm-bulk-actions{display:flex;gap:.5rem}.gm-table-container{background:#1e293b99;border-radius:var(--gm-radius);border:1px solid rgba(255,255,255,.1);overflow:hidden}.gm-table{width:100%;border-collapse:collapse}.gm-table th,.gm-table td{padding:1rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.05)}.gm-table th{background:#0f172a80;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gm-gray);cursor:pointer}.gm-table th:hover{color:#f1f5f9}.gm-table tr:hover{background:#ffffff05}.gm-table tr.selected{background:#6366f11a}.gm-user-cell{display:flex;align-items:center;gap:.75rem}.gm-admin-badge{width:16px;height:16px;color:var(--gm-danger)}.gm-role-tag{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500;text-transform:capitalize}.gm-role-tag.admin{background:#ef444433;color:#f87171}.gm-role-tag.manager{background:#a855f733;color:#c084fc}.gm-role-tag.clinic{background:#3b82f633;color:#60a5fa}.gm-role-tag.patient{background:#10b98133;color:#34d399}.gm-role-tag.doctor{background:#f59e0b33;color:#fbbf24}.gm-role-tag.blood_bank{background:#ec489933;color:#f472b6}.gm-role-tag.user{background:#64748b33;color:#94a3b8}.gm-status-tag{display:inline-block;padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:500}.gm-status-tag.active{background:#10b98133;color:#34d399}.gm-status-tag.inactive{background:#ef444433;color:#f87171}.gm-action-buttons{display:flex;gap:.5rem}.gm-action-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:none;border-radius:6px;color:var(--gm-gray);cursor:pointer;transition:all .2s ease}.gm-action-btn:hover{background:#ffffff1a;color:#f1f5f9}.gm-action-btn.success:hover{color:var(--gm-success)}.gm-action-btn.warning:hover{color:var(--gm-warning)}.gm-action-btn.danger:hover{color:var(--gm-danger)}.gm-action-btn.info:hover{color:var(--gm-info)}.gm-action-btn svg{width:18px;height:18px}.gm-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem}.gm-page-btn{padding:.5rem 1rem;background:#ffffff1a;border:none;border-radius:var(--gm-radius-sm);color:#f1f5f9;cursor:pointer;transition:all .2s ease}.gm-page-btn:hover:not(:disabled){background:var(--gm-primary)}.gm-page-btn:disabled{opacity:.5;cursor:not-allowed}.gm-page-info{color:var(--gm-gray);font-size:.9rem}.gm-system-section{display:flex;flex-direction:column;gap:1.5rem}.gm-db-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:1rem}.gm-db-item{display:flex;flex-direction:column;align-items:center;padding:1rem;background:#0f172a80;border-radius:var(--gm-radius-sm)}.gm-db-item span{font-size:.8rem;color:var(--gm-gray)}.gm-db-item strong{font-size:1.5rem;font-weight:700;color:var(--gm-primary)}.gm-role-chart{display:flex;flex-direction:column;gap:.75rem}.gm-role-bar{display:flex;align-items:center;gap:1rem}.gm-role-name{width:100px;font-size:.9rem;text-transform:capitalize}.gm-bar-container{flex:1;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.gm-bar{height:100%;border-radius:4px;transition:width .3s ease}.gm-bar.admin{background:var(--gm-danger)}.gm-bar.manager{background:#a855f7}.gm-bar.clinic{background:var(--gm-info)}.gm-bar.patient{background:var(--gm-success)}.gm-bar.doctor{background:var(--gm-warning)}.gm-bar.blood_bank{background:#ec4899}.gm-bar.user{background:var(--gm-gray)}.gm-role-value{width:40px;text-align:right;font-weight:600}.gm-quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.gm-action-card{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem;background:#0f172a80;border:1px solid rgba(255,255,255,.1);border-radius:var(--gm-radius);color:#f1f5f9;cursor:pointer;transition:all .2s ease}.gm-action-card:hover{background:#6366f126;border-color:var(--gm-primary)}.gm-action-card svg{width:32px;height:32px;color:var(--gm-primary)}.gm-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.gm-modal{width:100%;max-width:600px;max-height:90vh;overflow-y:auto;background:#1e293b;border-radius:var(--gm-radius);border:1px solid rgba(255,255,255,.1);box-shadow:var(--gm-shadow-lg)}.gm-modal.sm{max-width:450px}.gm-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.gm-modal-header h2{font-size:1.25rem;font-weight:600;margin:0}.gm-modal-header.danger{background:#ef44441a;border-bottom-color:#ef444433}.gm-modal-header.success{background:#10b9811a;border-bottom-color:#10b98133}.gm-danger-icon,.gm-success-icon{width:32px;height:32px;margin-right:.75rem}.gm-danger-icon{color:var(--gm-danger)}.gm-success-icon{color:var(--gm-success)}.gm-modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--gm-gray);cursor:pointer;border-radius:6px;transition:all .2s ease}.gm-modal-close:hover{background:#ffffff1a;color:#f1f5f9}.gm-modal-close svg{width:24px;height:24px}.gm-modal-body{padding:1.5rem}.gm-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.1);background:#0f172a80}.gm-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.gm-form-group{display:flex;flex-direction:column;gap:.5rem}.gm-form-group label{font-size:.9rem;font-weight:500;color:var(--gm-gray)}.gm-form-group input,.gm-form-group select{padding:.75rem 1rem;background:#0f172a80;border:1px solid rgba(255,255,255,.1);border-radius:var(--gm-radius-sm);color:#f1f5f9;font-size:.95rem}.gm-form-group input:focus,.gm-form-group select:focus{outline:none;border-color:var(--gm-primary)}.gm-form-group small{font-size:.8rem;color:var(--gm-gray)}.gm-checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.gm-checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--gm-primary)}.gm-divider{display:flex;align-items:center;gap:1rem;color:var(--gm-gray);margin:1rem 0}.gm-divider:before,.gm-divider:after{content:"";flex:1;height:1px;background:#ffffff1a}.gm-delete-user-info{display:flex;flex-direction:column;padding:1rem;background:#ef44441a;border-radius:var(--gm-radius-sm);margin:1rem 0}.gm-delete-user-info strong{font-size:1.1rem}.gm-delete-user-info span{color:var(--gm-gray);font-size:.9rem}.gm-warning-text{color:var(--gm-warning);font-size:.9rem;margin-top:.5rem}.gm-note-text{color:var(--gm-gray);font-size:.85rem;font-style:italic;margin-top:.5rem}.gm-credentials-box{background:#0f172a80;border-radius:var(--gm-radius-sm);padding:1rem}.gm-credential{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.1)}.gm-credential:last-child{border-bottom:none}.gm-credential span{color:var(--gm-gray)}.gm-credential.highlight{background:#10b9811a;margin:.5rem -1rem;padding:.75rem 1rem;border-radius:var(--gm-radius-sm)}.gm-password{font-family:monospace;font-size:1.1rem;color:var(--gm-success)}.gm-token-input{flex:1;margin-left:1rem;padding:.5rem;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:var(--gm-gray);font-family:monospace;font-size:.8rem}.gm-notification{position:fixed;top:1rem;right:1rem;display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-radius:var(--gm-radius-sm);z-index:2000;max-width:400px}.gm-notification.error{background:var(--gm-danger);color:#fff}.gm-notification.success{background:var(--gm-success);color:#fff}.gm-notification svg{width:24px;height:24px;flex-shrink:0}.gm-notification button{background:transparent;border:none;color:#fff;font-size:1.5rem;cursor:pointer;margin-left:auto;opacity:.7}.gm-notification button:hover{opacity:1}.gm-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#0f172a,#1e293b);color:#f1f5f9}.gm-spinner{width:48px;height:48px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--gm-primary);border-radius:50%;animation:spin 1s linear infinite}.gm-error-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#0f172a,#1e293b);color:#f1f5f9;text-align:center}.gm-error-page .gm-error-icon{width:80px;height:80px;color:var(--gm-danger);margin-bottom:1rem}.gm-error-page h1{font-size:2rem;margin-bottom:.5rem}.gm-error-page p{color:var(--gm-gray)}@media (max-width: 1024px){.gm-dashboard-grid,.gm-form-grid{grid-template-columns:1fr}}@media (max-width: 768px){.gm-header{flex-direction:column;gap:1rem;text-align:center}.gm-toolbar{flex-direction:column}.gm-search-box{width:100%}.gm-filters{width:100%;justify-content:center}.gm-actions{width:100%;justify-content:center;flex-wrap:wrap}.gm-table-container{overflow-x:auto}.gm-table{min-width:800px}.gm-nav{overflow-x:auto}.gm-bulk-bar{flex-direction:column;gap:1rem}.gm-bulk-actions{flex-wrap:wrap;justify-content:center}}.gm-copy-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:5px 10px;margin-left:10px;cursor:pointer;font-size:14px;transition:all .2s ease}.gm-copy-btn:hover{background:#fff3;transform:scale(1.05)}.gm-credential{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;background:#ffffff0d;border-radius:8px;margin-bottom:10px}.gm-credential span{color:#888;font-size:14px;min-width:80px}.gm-credential strong{flex:1;font-family:Fira Code,monospace;font-size:15px;word-break:break-all}.gm-credential.highlight{background:linear-gradient(135deg,#4caf5033,#2196f333);border:1px solid rgba(76,175,80,.3)}.gm-credential.highlight .gm-password{color:#4caf50;font-size:18px;font-weight:700}.gm-btn.full-width{width:100%}.gm-credentials-box{background:#0003;border-radius:12px;padding:15px}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);padding:var(--spacing-sm)}@media (min-width: 768px){.modal-backdrop{padding:var(--space-2)}}.modal-container{background-color:var(--surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;overflow:hidden;width:100%;max-height:95vh;border:1px solid var(--border-light);animation:slideInUp .3s ease-out}@media (min-width: 768px){.modal-container{max-height:90vh}}.modal-container.size-small{max-width:400px}.modal-container.size-medium{max-width:600px}.modal-container.size-large{max-width:800px}.modal-container.size-xlarge{max-width:1000px}.modal-header{padding:var(--space-3);border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.modal-title-text{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.modal-close-button{background:#f8f9fa!important;border:1px solid #e9ecef!important;color:#6c757d!important;cursor:pointer!important;padding:0!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;width:36px!important;height:36px!important;transition:all .2s ease!important;box-shadow:0 2px 4px #0000001a!important;font-size:18px!important;font-weight:300!important;min-height:auto!important}.modal-close-button:hover{background:#fff!important;border-color:#dc3545!important;color:#dc3545!important;transform:scale(1.05)!important;box-shadow:0 4px 8px #00000026!important}.modal-close-button:active{transform:scale(.95)!important}.modal-body{padding:var(--space-3);overflow-y:auto;flex-grow:1}.modal-footer{padding:var(--space-3);border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:var(--space-2);flex-shrink:0;background-color:var(--surface-secondary)}:root{--ios-red: #FF3B30;--ios-red-light: #FF6B66;--ios-red-dark: #D70015;--ios-red-ultra-light: rgba(255, 59, 48, .08);--ios-red-gradient: linear-gradient(135deg, #FF3B30 0%, #D70015 100%);--ios-blue: #007AFF;--ios-green: #34C759;--ios-orange: #FF9500;--ios-purple: #AF52DE;--ios-pink: #FF2D92;--ios-yellow: #FFCC00;--ios-white: #FFFFFF;--ios-black: #000000;--ios-gray-1: #F2F2F7;--ios-gray-2: #E5E5EA;--ios-gray-3: #C7C7CC;--ios-gray-4: #8E8E93;--ios-gray-5: #636366;--ios-gray-6: #48484A;--ios-gray-7: #3A3A3C;--ios-gray-8: #2C2C2E;--ios-gray-9: #1C1C1E;--surface-primary: var(--ios-white);--surface-secondary: var(--ios-gray-1);--surface-tertiary: var(--ios-gray-2);--surface-card: rgba(255, 255, 255, .95);--surface-overlay: rgba(0, 0, 0, .6);--text-primary: var(--ios-gray-9);--text-secondary: var(--ios-gray-5);--text-tertiary: var(--ios-gray-4);--text-inverse: var(--ios-white);--border-light: var(--ios-gray-2);--border-medium: var(--ios-gray-3);--border-strong: var(--ios-gray-4);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07), 0 2px 4px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1), 0 4px 6px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1), 0 10px 10px rgba(0, 0, 0, .04);--shadow-red: 0 4px 14px rgba(255, 59, 48, .25);--shadow-blue: 0 4px 14px rgba(0, 122, 255, .25);--shadow-green: 0 4px 14px rgba(52, 199, 89, .25);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-3xl: 24px;--radius-full: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Arial, sans-serif;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-heavy: 800;--font-weight-black: 900;--transition-fast: all .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: all .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: all .35s cubic-bezier(.4, 0, .2, 1);--header-height: 64px;--tab-bar-height: 83px;--content-max-width: 1200px}.patient-portal *{box-sizing:border-box}.patient-portal{min-height:100vh;background:#f8f9fa;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;color:#212529;line-height:1.5;position:relative;overflow-x:hidden}.patient-portal .portal-header{background:#fff;border-bottom:1px solid #e9ecef;padding:20px 16px 16px;position:sticky;top:0;z-index:100;box-shadow:0 2px 4px #0000000d;margin-bottom:8px}.patient-portal .header-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;min-height:44px}.patient-portal .header-logo-title{display:flex;align-items:center;gap:12px;flex-shrink:0}.patient-portal .portal-logo{height:32px;width:auto;object-fit:contain}.patient-portal .portal-header h1{font-size:18px;font-weight:700;color:#dc3545;margin:0;flex-shrink:0;line-height:1.2}@media (max-width: 480px){.patient-portal .portal-header h1{font-size:16px}.patient-portal .portal-logo{height:28px}}.patient-portal .user-info{display:flex;align-items:center;gap:8px;font-size:13px;color:#6c757d;flex-shrink:0}.patient-portal .user-info span{display:none;font-weight:500}.patient-portal .btn-logout{background:#dc3545;color:#fff;border:none;padding:10px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;min-height:44px;display:flex!important;align-items:center;justify-content:center;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.patient-portal .btn-logout:hover{background:#c82333;transform:scale(.98)}.patient-portal .btn-logout:active{transform:scale(.95)}.patient-portal .portal-nav{background:#fff;border-bottom:1px solid #e9ecef;padding:0 16px;display:flex;justify-content:center;overflow-x:auto;-webkit-overflow-scrolling:touch;box-shadow:0 1px 3px #0000000d}.patient-portal .portal-nav::-webkit-scrollbar{display:none}.patient-portal .portal-nav button{background:none;border:none;padding:16px 20px;font-size:15px;font-weight:500;color:#6c757d;cursor:pointer;white-space:nowrap;transition:all .2s ease;border-bottom:3px solid transparent;flex-shrink:0;min-height:56px;display:flex;align-items:center;gap:8px}.patient-portal .portal-nav button .nav-icon{display:flex;align-items:center;justify-content:center}.patient-portal .portal-nav button .nav-text{display:inline}@media (max-width: 768px){.patient-portal .portal-nav{justify-content:space-around;padding:0 8px}.patient-portal .portal-nav button{padding:12px 8px;min-width:auto;flex-direction:column;gap:4px;font-size:11px}.patient-portal .portal-nav button .nav-text{display:none}.patient-portal .portal-nav button .nav-icon{font-size:20px}}.patient-portal .portal-nav button.active{color:#dc3545;font-weight:600;border-bottom-color:#dc3545;background:#dc35450d}.patient-portal .portal-nav button:hover{color:#dc3545;background:#dc354514}.patient-portal .portal-nav button:active{transform:scale(.98)}.patient-portal .portal-content{max-width:1200px;margin:0 auto;padding:24px 16px;min-height:calc(100vh - 140px);background:#f8f9fa}.patient-portal .dashboard-section{display:flex;flex-direction:column;gap:24px}.patient-portal .welcome-banner{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;padding:32px 24px;border-radius:16px;text-align:center;box-shadow:0 8px 32px #dc354540}.patient-portal .welcome-banner h2{font-size:24px;font-weight:700;margin:0 0 8px}.patient-portal .welcome-banner p{font-size:17px;margin:0;opacity:.9;font-weight:400}.patient-portal .dashboard-stats{display:grid;grid-template-columns:1fr;gap:20px}.patient-portal .stat-card{background:#fff;border-radius:16px;padding:24px 20px;text-align:center;box-shadow:0 4px 16px #00000014;border:1px solid #e9ecef;transition:all .3s ease}.patient-portal .stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #dc354526;border-color:#dc3545}.patient-portal .stat-card h3{font-size:14px;font-weight:600;color:#6c757d;margin:0 0 16px;text-transform:uppercase;letter-spacing:.5px}.patient-portal .stat-number{font-size:42px;font-weight:800;color:#dc3545;margin:0 0 12px;line-height:1}.patient-portal .stat-card p{font-size:14px;color:#6c757d;margin:0;font-weight:500}.patient-portal .btn-primary{background:var(--ios-red-gradient);color:var(--text-inverse);border:none;border-radius:var(--radius-lg);padding:var(--space-4) var(--space-6);font-weight:var(--font-weight-semibold);font-size:14px;cursor:pointer;width:100%;transition:var(--transition-fast);box-shadow:var(--shadow-red);position:relative;z-index:1;overflow:hidden}.patient-portal .btn-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.patient-portal .btn-primary:hover:before{left:100%}.patient-portal .btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),var(--shadow-red)}.patient-portal .btn-secondary{background:var(--surface-tertiary);color:var(--text-primary);border:.5px solid var(--border-medium);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-5);font-weight:var(--font-weight-medium);font-size:14px;cursor:pointer;transition:var(--transition-fast)}.patient-portal .btn-secondary:hover{background:var(--ios-red);color:var(--text-inverse);border-color:var(--ios-red);transform:translateY(-1px);box-shadow:var(--shadow-red)}.patient-portal .btn-danger{background:var(--ios-red-gradient);color:var(--text-inverse);border:none;border-radius:var(--radius-lg);padding:var(--space-3) var(--space-5);font-weight:var(--font-weight-semibold);font-size:13px;cursor:pointer;transition:var(--transition-fast);box-shadow:var(--shadow-red)}.patient-portal .btn-danger:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg),var(--shadow-red)}.patient-portal .reports-section h2,.patient-portal .blood-banks-section h2,.patient-portal .appointments-section h2,.patient-portal .profile-section h2{font-size:28px;font-weight:700;color:#1c1c1e;margin:0 0 20px}.reports-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:0 var(--space-6)}.reports-header h2{margin:0}.btn-upload-cbc{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;background:linear-gradient(135deg,var(--ios-blue) 0%,#0051D5 100%);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 14px #007aff40;position:relative;overflow:hidden}.btn-upload-cbc:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.btn-upload-cbc:hover:before{left:100%}.btn-upload-cbc:hover{transform:translateY(-2px);box-shadow:0 6px 20px #007aff59;background:linear-gradient(135deg,#06f,#0051d5)}.btn-upload-cbc:active{transform:translateY(0);box-shadow:0 2px 8px #007aff40}.btn-upload-cbc svg{width:20px;height:20px}@media (max-width: 768px){.reports-header{flex-direction:column;align-items:flex-start;gap:16px}.btn-upload-cbc{width:100%;justify-content:center}}.patient-portal .reports-section,.patient-portal .blood-banks-section,.patient-portal .appointments-section,.patient-portal .profile-section{display:flex;flex-direction:column;gap:20px}.patient-portal .reports-section>*:not(h2),.patient-portal .blood-banks-section>*:not(h2),.patient-portal .appointments-section>*:not(h2),.patient-portal .profile-section>*:not(h2){padding-left:var(--space-6);padding-right:var(--space-6)}.patient-portal .reports-section,.patient-portal .blood-banks-section,.patient-portal .appointments-section,.patient-portal .profile-section{padding-bottom:var(--space-6)}.patient-portal .reports-grid,.patient-portal .blood-banks-grid,.patient-portal .appointments-grid{display:grid;grid-template-columns:1fr;gap:16px}.patient-portal .report-card,.patient-portal .blood-bank-card,.patient-portal .appointment-card{background:#fff;border:1px solid #e9ecef;border-radius:16px;padding:20px;transition:all .3s ease;box-shadow:0 4px 16px #00000014;position:relative;overflow:hidden}.patient-portal .report-card:hover,.patient-portal .blood-bank-card:hover,.patient-portal .appointment-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #dc354526;border-color:#dc3545}.patient-portal .report-header,.patient-portal .blood-bank-header,.patient-portal .appointment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.patient-portal .report-header h3,.patient-portal .blood-bank-header h3,.patient-portal .appointment-header h3{margin:0;font-size:17px;font-weight:600;color:#1c1c1e}.patient-portal .status-badge{padding:6px 12px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px;display:inline-block;text-align:center}.patient-portal .status-badge.in_review{background:#ff950026;color:#ff9500}.patient-portal .status-badge.scheduled{background:#007aff26;color:#007aff}.patient-portal .status-badge.confirmed,.patient-portal .status-badge.completed{background:#34c75926;color:#34c759}.patient-portal .status-badge.in_progress,.patient-portal .status-badge.processing{background:#007aff26;color:#007aff}.patient-portal .status-badge.pending{background:#ff950026;color:#ff9500}.patient-portal .status-badge.no_show,.patient-portal .status-badge.failed,.patient-portal .status-badge.cancelled{background:#ff3b3026;color:#ff3b30}.patient-portal .status-badge.reschedule_requested{background:#ffcc0026;color:#fc0}.in-review-notice,.reschedule-notice{display:flex;align-items:flex-start;gap:12px;padding:16px;margin:16px 0;border-radius:12px;background:#ff950014;border:1px solid rgba(255,149,0,.2)}.in-review-notice svg,.reschedule-notice svg{flex-shrink:0;color:#ff9500;margin-top:2px}.reschedule-notice{background:#ffcc0014;border:1px solid rgba(255,204,0,.2)}.reschedule-notice svg{color:#fc0}.in-review-notice p,.reschedule-notice p{margin:0;color:#48484a;font-size:14px;line-height:1.5}.patient-portal .report-details,.patient-portal .blood-bank-details,.patient-portal .appointment-details{margin-bottom:16px}.patient-portal .report-details p,.patient-portal .blood-bank-details p,.patient-portal .appointment-details p{margin:8px 0;color:#8e8e93;font-size:13px;line-height:1.5;font-weight:400}.patient-portal .report-details strong,.patient-portal .blood-bank-details strong,.patient-portal .appointment-details strong{color:#1c1c1e;font-weight:600}.patient-portal .report-actions,.patient-portal .blood-bank-actions,.patient-portal .appointment-actions{display:flex;gap:8px;flex-wrap:wrap}.patient-portal .report-actions button,.patient-portal .blood-bank-actions button,.patient-portal .appointment-actions button{background:#dc3545;color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:40px;flex:1;min-width:120px}.patient-portal .report-actions button:hover,.patient-portal .blood-bank-actions button:hover,.patient-portal .appointment-actions button:hover{transform:scale(.95);opacity:.8}.patient-portal .badge-24x7,.patient-portal .badge-verified{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;margin-right:var(--space-2);margin-bottom:var(--space-1)}.patient-portal .badge-24x7{background:#af52de26;color:var(--ios-purple);border:.5px solid rgba(175,82,222,.3)}.patient-portal .badge-verified{background:#34c75926;color:var(--ios-green);border:.5px solid rgba(52,199,89,.3)}.patient-portal .blood-bank-badges{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-3)}.patient-portal .search-filters{margin-bottom:var(--space-6);padding:var(--space-4);background:var(--surface-secondary);border-radius:var(--radius-xl);border:.5px solid var(--border-light)}.patient-portal .filter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3);align-items:end}.patient-portal .search-filters input,.patient-portal .search-filters select{width:100%;padding:var(--space-3) var(--space-4);border:.5px solid var(--border-medium);border-radius:var(--radius-lg);background:var(--surface-primary);color:var(--text-primary);font-size:14px;font-weight:var(--font-weight-medium);transition:var(--transition-fast)}.patient-portal .search-filters input:focus,.patient-portal .search-filters select:focus{outline:none;border-color:var(--ios-blue);box-shadow:0 0 0 3px #007aff1a}.patient-portal .search-filters button{padding:var(--space-3) var(--space-6);background:var(--ios-blue);color:var(--text-inverse);border:none;border-radius:var(--radius-lg);font-weight:var(--font-weight-semibold);font-size:14px;cursor:pointer;transition:var(--transition-fast);box-shadow:var(--shadow-blue)}.patient-portal .search-filters button:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg),var(--shadow-blue)}.patient-portal .enhanced-search{background:linear-gradient(135deg,#f8f9fa,#fff);padding:24px;border-radius:16px;box-shadow:0 2px 12px #0000000f}.patient-portal .search-description{margin-bottom:20px;text-align:center}.patient-portal .search-description p{color:#6c757d;font-size:14px;font-weight:500;margin:0}.patient-portal .enhanced-search .filter-row{display:flex;flex-direction:column;gap:16px}.patient-portal .search-input-group{width:100%}.patient-portal .search-input-field,.patient-portal .search-select-field{width:100%;padding:14px 18px;border:2px solid #e9ecef;border-radius:12px;font-size:15px;background:#fff;transition:all .3s ease;box-shadow:0 1px 3px #0000000d}.patient-portal .search-input-field:focus,.patient-portal .search-select-field:focus{outline:none;border-color:#007aff;box-shadow:0 0 0 4px #007aff1a,0 2px 8px #00000014;transform:translateY(-1px)}.patient-portal .search-buttons{display:flex;gap:12px;margin-top:8px}.patient-portal .search-button.primary{flex:1;display:flex;align-items:center;justify-content:center;padding:14px 24px;background:linear-gradient(135deg,#007aff,#0051d5);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #007aff4d}.patient-portal .search-button.primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #007aff66}.patient-portal .clear-filters-button{display:flex;align-items:center;justify-content:center;padding:14px 20px;background:#f8f9fa;color:#6c757d;border:2px solid #e9ecef;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease}.patient-portal .clear-filters-button:hover{background:#e9ecef;border-color:#dee2e6;color:#495057}.patient-portal .active-filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:16px;padding:12px;background:#f1f3f5;border-radius:10px}.patient-portal .filter-label{font-size:13px;font-weight:600;color:#495057}.patient-portal .filter-tag{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#fff;border:1px solid #dee2e6;border-radius:20px;font-size:13px;font-weight:500;color:#495057}.patient-portal .remove-filter{background:none;border:none;color:#6c757d;font-size:18px;line-height:1;cursor:pointer;padding:0;margin-left:4px;transition:color .2s ease}.patient-portal .remove-filter:hover{color:#dc3545}.patient-portal .search-results-count{margin-top:16px;padding:12px;background:linear-gradient(135deg,#d4edda,#c3e6cb);border-radius:10px;text-align:center;font-size:14px;font-weight:600;color:#155724}@media (max-width: 768px){.patient-portal .enhanced-search{padding:16px}.patient-portal .search-buttons{flex-direction:column}.patient-portal .search-button.primary,.patient-portal .clear-filters-button{width:100%}}.patient-portal .profile-form{display:grid;gap:var(--space-5)}.patient-portal .form-group{display:flex;flex-direction:column;gap:var(--space-2)}.patient-portal .form-group label{font-weight:var(--font-weight-semibold);color:var(--text-primary);font-size:13px;text-transform:uppercase;letter-spacing:.5px}.patient-portal .form-group p{margin:0;padding:var(--space-4);background:var(--surface-secondary);border-radius:var(--radius-lg);border:.5px solid var(--border-light);color:var(--text-secondary);font-size:14px;font-weight:var(--font-weight-medium)}.form-section-divider{margin:32px 0 24px;padding-top:32px;border-top:2px solid var(--ios-gray-2)}.form-section-divider .section-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 8px;display:flex;align-items:center;gap:10px}.form-section-divider .section-title:before{content:"";width:4px;height:24px;background:linear-gradient(135deg,var(--ios-red) 0%,var(--ios-red-dark) 100%);border-radius:2px}.form-section-divider .section-subtitle{color:var(--text-secondary);font-size:.875rem;margin:0 0 0 14px}.patient-portal .empty-state{text-align:center;padding:var(--space-12) var(--space-6);color:var(--text-tertiary);background:var(--surface-secondary);border-radius:var(--radius-xl);border:2px dashed var(--border-medium);margin:var(--space-6) 0}.patient-portal .empty-state p{margin:var(--space-2) 0;font-size:16px;font-weight:var(--font-weight-medium)}.patient-portal .loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#ffffffd9;display:flex;align-items:center;justify-content:center;z-index:9999}.patient-portal .loading-overlay .loading-spinner{font-size:0;width:auto;height:auto;border:none;animation:none;position:relative}.patient-portal .loading-overlay .loading-spinner:before{content:"";display:block;width:40px;height:40px;border:3px solid rgba(255,59,48,.2);border-top:3px solid var(--ios-red);border-radius:50%;animation:patient-loading-spin 1s linear infinite;margin:0}@keyframes patient-loading-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.patient-portal .loading p{color:var(--text-secondary);font-size:16px;font-weight:var(--font-weight-medium);margin:0}.patient-portal .error{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:200px;text-align:center;background:#ff3b300d;border-radius:var(--radius-xl);padding:var(--space-8);border:.5px solid rgba(255,59,48,.2)}.patient-portal .error-message{color:var(--ios-red);font-size:16px;font-weight:var(--font-weight-semibold);margin-bottom:var(--space-4)}@media (min-width: 768px){.patient-portal .portal-header{padding:16px 24px}.patient-portal .portal-nav{padding:0 24px}.patient-portal .portal-content,.patient-portal .welcome-banner{padding:32px 24px}.patient-portal .dashboard-stats{grid-template-columns:repeat(4,1fr)}.patient-portal .profile-form{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}}@media (min-width: 1024px){.patient-portal .portal-content{padding:40px 32px}.patient-portal .reports-grid,.patient-portal .blood-banks-grid,.patient-portal .appointments-grid{grid-template-columns:repeat(3,1fr)}}@media (prefers-reduced-motion: reduce){.patient-portal *,.patient-portal *:before,.patient-portal *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){.patient-portal{--border-light: var(--ios-gray-4);--border-medium: var(--ios-gray-5);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .3)}}.patient-portal *:focus-visible{outline:2px solid var(--ios-blue);outline-offset:2px}.patient-portal ::-webkit-scrollbar{width:8px}.patient-portal ::-webkit-scrollbar-track{background:var(--surface-secondary);border-radius:var(--radius-md)}.patient-portal ::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:var(--radius-md)}.patient-portal ::-webkit-scrollbar-thumb:hover{background:var(--ios-red)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.patient-portal .info-card{animation:fadeInUp .5s ease-out}.patient-portal .info-card:nth-child(1){animation-delay:.1s}.patient-portal .info-card:nth-child(2){animation-delay:.2s}.patient-portal .info-card:nth-child(3){animation-delay:.3s}.patient-portal .info-card:nth-child(4){animation-delay:.4s}.patient-portal .report-card,.patient-portal .blood-bank-card,.patient-portal .appointment-card{animation:slideInRight .4s ease-out}.rating-display{margin-top:16px;padding:12px;background:var(--ios-gray-1);border-radius:var(--radius-medium);border-left:3px solid var(--ios-orange)}.rating-display p{margin:4px 0;font-size:14px}.stars-display{display:flex;align-items:center;gap:2px;margin:8px 0}.stars-display .star{font-size:16px;opacity:.3}.stars-display .star.filled{opacity:1}.rating-text{margin-left:8px;font-size:14px;font-weight:500;color:var(--ios-gray-5)}.rating-comment{font-style:italic;color:var(--ios-gray-5);background:var(--ios-white);padding:8px;border-radius:var(--radius-small);margin:8px 0}.rating-date{font-size:12px;color:var(--ios-gray-4)}.btn-rating{background:var(--ios-orange);color:var(--ios-white);border:none;padding:10px 16px;border-radius:var(--radius-medium);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.btn-rating:hover{background:var(--ios-orange);transform:scale(.98);box-shadow:0 2px 8px #ff95004d}.btn-rating:active{transform:scale(.95)}.appointment-actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}@media (max-width: 480px){.appointment-actions{flex-direction:column}.appointment-actions button{width:100%}}.profile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.profile-header h2{margin:0}.btn-edit-profile{background:var(--ios-blue);color:var(--ios-white);border:none;padding:10px 16px;border-radius:var(--radius-medium);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.btn-edit-profile:hover{background:var(--ios-blue);transform:scale(.98);box-shadow:0 2px 8px #007aff4d}.edit-actions{display:flex;gap:8px}.btn-save{background:var(--ios-green);color:var(--ios-white);border:none;padding:10px 16px;border-radius:var(--radius-medium);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-save:hover{background:var(--ios-green);transform:scale(.98)}.btn-cancel{background:var(--ios-red);color:var(--ios-white);border:none;padding:10px 16px;border-radius:var(--radius-medium);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-cancel:hover{background:var(--ios-red-dark);transform:scale(.98)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.form-group.full-width{grid-column:1 / -1}.profile-input{width:100%;padding:12px;border:1px solid var(--ios-gray-3);border-radius:var(--radius-medium);font-size:16px;font-family:inherit;background:var(--ios-white);transition:border-color .2s ease}.profile-input:focus{outline:none;border-color:var(--ios-blue);box-shadow:0 0 0 3px #007aff1a}.field-note{font-size:12px;color:var(--ios-gray-4);font-style:italic;margin-top:4px;display:block}.check-in-section{background:var(--ios-red-ultra-light);border-radius:16px;padding:16px;margin-bottom:16px;border:2px solid transparent;transition:all .3s ease}.btn-check-in.primary{background:var(--ios-red-gradient);color:#fff;border:none;border-radius:12px;padding:16px 24px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease;width:100%;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 16px #ff3b304d;animation:checkInPulse 3s ease-in-out infinite}@keyframes checkInPulse{0%{box-shadow:0 4px 16px #ff3b304d}50%{box-shadow:0 6px 24px #ff3b3080}to{box-shadow:0 4px 16px #ff3b304d}}.btn-check-in.primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ff3b3066}.btn-check-in.primary:active{transform:translateY(0)}.checked-in-status{text-align:center;padding:8px}.check-in-success{background:linear-gradient(135deg,var(--ios-green) 0%,#32D74B 100%);color:#fff;padding:12px 16px;border-radius:12px;font-size:15px;font-weight:700;margin-bottom:12px;box-shadow:0 2px 12px #34c7594d}.check-in-time{background:var(--ios-blue-ultra-light);color:var(--ios-blue);padding:8px 12px;border-radius:8px;font-size:13px;font-weight:600;margin-bottom:8px}.waiting-status{background:var(--ios-orange-ultra-light);color:var(--ios-orange);padding:10px 12px;border-radius:8px;font-size:13px;font-weight:500;animation:waitingPulse 2s ease-in-out infinite alternate}@keyframes waitingPulse{0%{opacity:.7}to{opacity:1}}.check-in-info{text-align:center;padding:8px}.check-in-window-status{background:var(--ios-gray-1);color:var(--ios-gray-6);padding:10px 12px;border-radius:10px;font-size:14px;font-weight:600;margin-bottom:12px;border:1px solid var(--ios-gray-3)}.check-in-instructions{background:var(--ios-blue-ultra-light);color:var(--ios-blue);padding:12px;border-radius:10px;font-size:12px;font-weight:500;line-height:1.4;text-align:left}.reschedule-reminder{margin-top:12px;padding:12px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:10px;border:1px solid #0ea5e9;display:flex;flex-direction:column;gap:10px}.reschedule-reminder p{margin:0;color:#0369a1;font-size:13px;font-weight:500;text-align:center}.btn-reschedule-inline{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;border:none;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0ea5e94d}.btn-reschedule-inline:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e966}.btn-reschedule-inline:active{transform:translateY(0)}.status-message{padding:12px 16px;border-radius:12px;font-size:15px;font-weight:600;text-align:center;margin-bottom:12px}.status-message.active{background:linear-gradient(135deg,var(--ios-orange) 0%,#FFCC02 100%);color:#fff;animation:activePulse 2s ease-in-out infinite alternate;box-shadow:0 2px 12px #ff95004d}@keyframes activePulse{0%{opacity:.9}to{opacity:1}}.status-message.completed{background:linear-gradient(135deg,var(--ios-green) 0%,#32D74B 100%);color:#fff;box-shadow:0 2px 12px #34c7594d}.in-progress-info,.completed-info{background:var(--ios-orange-ultra-light);border-radius:12px;padding:12px;margin-bottom:16px;border-left:4px solid var(--ios-orange)}.completed-info{background:var(--ios-green-ultra-light);border-left-color:var(--ios-green)}.no-show-info{background:#fff3cd;border-radius:12px;padding:16px;margin-bottom:16px;border-left:4px solid #ffc107;display:flex;flex-direction:column;gap:12px}.status-message.no-show{background:linear-gradient(135deg,#ffc107,#ffb300);color:#000;font-weight:600;box-shadow:0 2px 12px #ffc1074d;padding:12px 16px;border-radius:8px}.btn-reschedule-priority{background:linear-gradient(135deg,var(--ios-blue) 0%,#0071E3 100%);color:#fff;border:none;padding:12px 20px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #007aff4d}.btn-reschedule-priority:hover{transform:translateY(-1px);box-shadow:0 4px 12px #007aff66}.btn-reschedule-priority:active{transform:translateY(0)}.management-actions{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--ios-separator)}.appointment-card{border-radius:16px;padding:20px;margin-bottom:16px;background:#fff;box-shadow:0 2px 12px #00000014;border:1px solid var(--ios-separator);transition:all .3s ease}.appointment-card:hover{box-shadow:0 4px 20px #0000001f;transform:translateY(-2px)}.appointment-card[data-status=patient_arrived]{border-left:4px solid var(--ios-blue);background:linear-gradient(135deg,white 0%,var(--ios-blue-ultra-light) 100%)}.appointment-card[data-status=in_progress]{border-left:4px solid var(--ios-orange);background:linear-gradient(135deg,white 0%,var(--ios-orange-ultra-light) 100%);animation:inProgressGlow 3s ease-in-out infinite alternate}@keyframes inProgressGlow{0%{box-shadow:0 2px 12px #00000014}to{box-shadow:0 4px 20px #ff950033}}.appointment-card[data-status=completed]{border-left:4px solid var(--ios-green);background:linear-gradient(135deg,white 0%,var(--ios-green-ultra-light) 100%)}.status-badge{padding:6px 12px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;display:inline-block;text-align:center}.status-badge.patient_arrived{background:linear-gradient(135deg,var(--ios-blue) 0%,#0051D0 100%);color:#fff}.status-badge.in_progress{background:linear-gradient(135deg,var(--ios-orange) 0%,#FFCC02 100%);color:#fff;animation:statusPulse 2s ease-in-out infinite}@keyframes statusPulse{0%{opacity:.9}50%{opacity:1}to{opacity:.9}}.btn-rating,.btn-secondary,.btn-danger{border-radius:10px;padding:12px 16px;font-size:14px;font-weight:600;transition:all .2s ease;border:none;cursor:pointer}.btn-rating{background:linear-gradient(135deg,var(--ios-orange) 0%,#FFCC02 100%);color:#fff}.btn-rating:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ff95004d}.check-in-dashboard{background:var(--ios-red-ultra-light);border-radius:16px;padding:20px;margin-bottom:24px;border:2px solid var(--ios-red)}.check-in-dashboard h3{color:var(--ios-red);font-size:18px;font-weight:700;margin-bottom:16px;text-align:center}.today-appointments{display:grid;gap:12px}.today-appointment-item{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px #0000000f;border-left:4px solid var(--ios-red)}.appointment-time-location{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.appointment-time{font-size:16px;font-weight:700;color:var(--ios-red)}.appointment-location{font-size:13px;color:var(--ios-label-secondary);font-weight:500}@media (max-width: 768px){.form-row{grid-template-columns:1fr;gap:16px}.profile-header{flex-direction:column;gap:16px;align-items:stretch}.edit-actions{width:100%;justify-content:space-between}.edit-actions .btn-save,.edit-actions .btn-cancel{flex:1;max-width:48%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-check-in.primary{padding:14px 20px;font-size:15px}.management-actions{flex-direction:column;gap:8px}.management-actions button{width:100%}.check-in-section{padding:12px}.appointment-card{padding:16px}}@media (max-width: 480px){.check-in-instructions{font-size:11px;padding:10px}.reschedule-reminder{padding:10px;margin-top:10px;gap:8px}.reschedule-reminder p{font-size:12px}.btn-reschedule-inline{padding:10px 14px;font-size:13px}.status-message{font-size:14px;padding:10px 12px}.btn-check-in.primary{padding:12px 16px;font-size:14px}.check-in-dashboard{padding:16px;margin-bottom:16px}.appointment-time-location{flex-direction:column;align-items:flex-start;gap:4px}}.welcome-hero{background:linear-gradient(135deg,var(--ios-red) 0%,var(--ios-red-dark) 100%);border-radius:20px;margin:16px 16px 20px;padding:24px 20px;position:relative;overflow:hidden;box-shadow:0 10px 30px #ff3b3040}.welcome-hero:before{content:"";position:absolute;top:-50%;right:-20%;width:200px;height:200px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:50%}.welcome-content{position:relative;z-index:2}.welcome-content h2{color:#fff;font-size:24px;font-weight:700;margin:0 0 8px;text-shadow:0 2px 10px rgba(0,0,0,.1)}.welcome-content p{color:#ffffffe6;font-size:15px;margin:0;line-height:1.4;font-weight:400}.hero-slider{margin:0 16px 24px;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 8px 25px #00000014;border:1px solid var(--ios-gray-2);position:relative}.slider-container{display:flex;transition:transform .6s cubic-bezier(.4,0,.2,1);will-change:transform}.slide{min-width:100%;padding:28px 20px 24px;opacity:0;transition:opacity .6s ease}.slide.active{opacity:1}.slide-content{text-align:center;max-width:300px;margin:0 auto}.slide-icon{font-size:48px;margin-bottom:16px;display:block;filter:drop-shadow(0 4px 12px rgba(0,0,0,.15));animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.slide h3{color:var(--ios-gray-9);font-size:20px;font-weight:600;margin:0 0 12px;line-height:1.3}.slide p{color:var(--ios-label-secondary);font-size:15px;line-height:1.5;margin:0;font-weight:400}.slider-nav{display:flex;justify-content:center;gap:8px;padding:16px 20px 20px;background:#fff}.nav-dot{width:8px;height:8px;border-radius:50%;background:var(--ios-gray-3);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}.nav-dot.active{background:var(--ios-red);width:24px;border-radius:4px;transform:scale(1.1)}.nav-dot:hover:not(.active){background:var(--ios-gray-4);transform:scale(1.2)}.quick-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:0 16px 24px}.stat-item{background:#fff;border-radius:16px;padding:20px 12px;text-align:center;box-shadow:0 4px 15px #0000000f;border:1px solid var(--ios-gray-2);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.stat-item:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,59,48,.05),transparent);transition:left .6s ease}.stat-item:hover:before{left:100%}.stat-item:active{transform:scale(.98)}.stat-item:hover{transform:translateY(-3px);box-shadow:0 8px 25px #ff3b3026;border-color:#ff3b3033}.stat-number{font-size:28px;font-weight:700;color:var(--ios-red);margin-bottom:6px;display:block;line-height:1;text-shadow:0 2px 10px rgba(255,59,48,.1)}.stat-label{font-size:12px;color:var(--ios-label-secondary);font-weight:500;line-height:1.3}@media (max-width: 768px){.welcome-hero{margin:12px;padding:20px 16px;border-radius:16px}.welcome-content h2{font-size:22px}.welcome-content p{font-size:14px}.hero-slider{margin:0 12px 20px;border-radius:16px}.slide{padding:24px 16px 20px}.slide-icon{font-size:42px;margin-bottom:14px}.slide h3{font-size:18px;margin-bottom:10px}.slide p{font-size:14px}.quick-stats{margin:0 12px 20px;gap:10px}.stat-item{padding:16px 8px;border-radius:12px}.stat-number{font-size:24px}.stat-label{font-size:11px}}@media (max-width: 480px){.welcome-hero{margin:8px;padding:16px 12px;border-radius:12px}.welcome-content h2{font-size:20px}.welcome-content p{font-size:13px}.hero-slider{margin:0 8px 16px;border-radius:12px}.slide{padding:20px 12px 16px}.slide-icon{font-size:36px;margin-bottom:12px}.slide h3{font-size:16px;margin-bottom:8px}.slide p{font-size:13px}.quick-stats{margin:0 8px 16px;gap:8px}.stat-item{padding:14px 6px;border-radius:10px}.stat-number{font-size:20px;margin-bottom:4px}.stat-label{font-size:10px}.nav-dot{width:6px;height:6px}.nav-dot.active{width:20px}.slider-nav{padding:12px 16px 16px;gap:6px}}.slider-container{touch-action:pan-x}@media (hover: none) and (pointer: coarse){.stat-item:hover{transform:none;box-shadow:0 4px 15px #0000000f;border-color:var(--ios-gray-2)}.stat-item:active{transform:scale(.95);background:var(--ios-gray-1)}.nav-dot:hover:not(.active){background:var(--ios-gray-3);transform:none}}.phone-input-container{display:flex;gap:8px;align-items:stretch}.country-code-select{flex:0 0 120px;padding:12px;border:1px solid var(--ios-gray-2);border-radius:10px;font-size:16px;background:var(--ios-white);cursor:pointer;transition:all .2s ease;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif}.country-code-select:focus{outline:none;border-color:var(--ios-red);box-shadow:0 0 0 3px var(--ios-red-ultra-light)}.phone-number-input{flex:1;padding:12px;border:1px solid var(--ios-gray-2);border-radius:10px;font-size:16px;transition:all .2s ease;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;background:var(--ios-white)}.phone-number-input:focus{outline:none;border-color:var(--ios-red);box-shadow:0 0 0 3px var(--ios-red-ultra-light)}.phone-number-input::placeholder{color:var(--ios-gray-4);font-weight:400}@media (max-width: 768px){.phone-input-container{flex-direction:column;gap:12px}.country-code-select{flex:none;width:100%}.phone-number-input{width:100%}.patient-portal .appointment-card,.patient-portal .report-card,.patient-portal .blood-bank-card{word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.patient-portal .appointment-header,.patient-portal .blood-bank-header{flex-wrap:wrap;gap:8px}.patient-portal .appointment-header h3,.patient-portal .blood-bank-header h3{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis}.patient-portal .status-badge{max-width:80px;font-size:10px;padding:4px 8px}.patient-portal .appointment-actions,.patient-portal .blood-bank-actions{flex-direction:column;gap:8px}.patient-portal .appointment-actions button,.patient-portal .blood-bank-actions button{width:100%;font-size:14px;padding:10px 12px}}.dashboard-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:24px;margin-top:32px}.widget{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 20px #00000014;border:1px solid var(--ios-gray-2);transition:all .3s ease}.widget:hover{transform:translateY(-2px);box-shadow:0 8px 32px #0000001f}.widget h3{margin:0 0 20px;font-size:18px;font-weight:600;color:var(--ios-gray-9);display:flex;align-items:center;gap:8px}.widget-header-enhanced{margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--ios-gray-1)}.widget-title-group{display:flex;align-items:center;gap:12px;margin-bottom:8px}.widget-title-group svg{color:var(--ios-blue);flex-shrink:0}.widget-title-group h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.widget-subtitle{color:var(--text-secondary);font-size:.875rem;font-weight:400;margin-left:38px}.calendar-container{display:flex;flex-direction:column;gap:16px}.calendar-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--ios-gray-1);border-radius:12px;border-left:4px solid var(--ios-blue);transition:all .2s ease}.calendar-item.today{border-left-color:var(--ios-red);background:linear-gradient(135deg,#ff3b301a,#ff3b300d)}.calendar-item.tomorrow{border-left-color:var(--ios-orange);background:linear-gradient(135deg,#ff95001a,#ff95000d)}.calendar-date{display:flex;flex-direction:column;align-items:center;min-width:50px}.calendar-date .day{font-size:24px;font-weight:700;color:var(--ios-gray-9);line-height:1}.calendar-date .month{font-size:12px;font-weight:500;color:var(--ios-gray-5);text-transform:uppercase;letter-spacing:.5px}.calendar-details{flex:1;display:flex;flex-direction:column;gap:4px}.hospital-name{font-weight:600;color:var(--ios-gray-9);font-size:16px}.appointment-time{color:var(--ios-gray-6);font-size:14px}.today-badge,.tomorrow-badge{display:inline-block;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;text-transform:uppercase}.today-badge{background:var(--ios-red);color:#fff}.tomorrow-badge{background:var(--ios-orange);color:#fff}.empty-calendar{text-align:center;padding:32px 16px;color:var(--ios-gray-5)}.empty-calendar .empty-icon{font-size:48px;margin-bottom:16px}.btn-book-now{background:linear-gradient(135deg,var(--ios-red) 0%,#d70015 100%);color:#fff;border:none;padding:12px 24px;border-radius:12px;font-weight:600;margin-top:16px;cursor:pointer;transition:all .2s ease}.btn-book-now:hover{transform:translateY(-1px);box-shadow:0 4px 12px #dc35454d}.trend-container{padding:16px;min-height:320px;background:linear-gradient(135deg,#3b82f605,#8b5cf605);border-radius:12px}.hba2-trend-chart{position:relative;height:300px;padding:24px 12px 60px;background:#fff;border-radius:10px;box-shadow:inset 0 0 0 1px #0000000d}.reference-zones{position:absolute;top:20px;left:10px;right:10px;bottom:50px;border-radius:8px;overflow:hidden}.zone{position:absolute;width:100%;transition:opacity .3s ease}.high-zone{background:linear-gradient(to bottom,#ff3b3014,#ff3b300a);border-top:1px dashed rgba(255,59,48,.3)}.normal-zone{background:linear-gradient(to bottom,#34c75914,#34c7590a);border-top:1px dashed rgba(52,199,89,.3);border-bottom:1px dashed rgba(52,199,89,.3)}.low-zone{background:linear-gradient(to bottom,#ff950014,#ff95000a)}.zone-label{position:absolute;right:12px;top:8px;font-size:10px;font-weight:600;opacity:.6;text-transform:uppercase;letter-spacing:.5px}.high-zone .zone-label{color:#ff3b30}.normal-zone .zone-label{color:#34c759}.low-zone .zone-label{color:#ff9500}.trend-line-svg{position:absolute;top:20px;left:10px;right:10px;bottom:50px;width:calc(100% - 20px);height:calc(100% - 70px);z-index:2;pointer-events:none}.trend-points-container{position:absolute;top:20px;left:10px;right:10px;bottom:50px;z-index:3}.trend-data-point{position:absolute;transform:translate(-50%,-50%);cursor:pointer;transition:all .3s ease}.point-circle{position:relative;width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid #3b82f6;box-shadow:0 2px 8px #3b82f64d;transition:all .3s ease}.trend-data-point.high .point-circle{border-color:#ff3b30;box-shadow:0 2px 8px #ff3b304d}.trend-data-point.normal .point-circle{border-color:#34c759;box-shadow:0 2px 8px #34c7594d}.trend-data-point.low .point-circle{border-color:#ff9500;box-shadow:0 2px 8px #ff95004d}.trend-data-point:hover .point-circle{transform:scale(1.4);box-shadow:0 4px 16px #3b82f680}.trend-data-point.high:hover .point-circle{box-shadow:0 4px 16px #ff3b3080}.trend-data-point.normal:hover .point-circle{box-shadow:0 4px 16px #34c75980}.trend-data-point.low:hover .point-circle{box-shadow:0 4px 16px #ff950080}.trend-data-point.latest .point-circle{animation:pulse 2s infinite}.pulse-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px;border-radius:50%;border:2px solid #3b82f6;animation:pulse-ring 2s infinite}@keyframes pulse-ring{0%{transform:translate(-50%,-50%) scale(.8);opacity:1}to{transform:translate(-50%,-50%) scale(1.8);opacity:0}}.point-tooltip{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#fff;padding:10px 14px;border-radius:8px;box-shadow:0 8px 24px #00000026;opacity:0;pointer-events:none;transition:all .3s ease;white-space:nowrap;z-index:10;min-width:120px}.trend-data-point:hover .point-tooltip,.trend-data-point.latest .point-tooltip{opacity:1;bottom:24px}.tooltip-value{font-size:18px;font-weight:700;color:#1d1d1f;text-align:center;margin-bottom:4px}.tooltip-date{font-size:11px;color:#6e6e73;text-align:center;margin-bottom:6px}.tooltip-status{font-size:10px;font-weight:600;text-align:center;padding:3px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.tooltip-status.high{background:#ff3b301a;color:#ff3b30}.tooltip-status.normal{background:#34c7591a;color:#34c759}.tooltip-status.low{background:#ff95001a;color:#ff9500}.x-axis-labels{position:absolute;bottom:18px;left:10px;right:10px;display:flex;justify-content:space-between;pointer-events:none}.x-label{position:absolute;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:0px;font-weight:500;color:#6e6e73;white-space:nowrap;text-align:center;min-width:40px}.label-month{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:#86868b;line-height:1;margin-bottom:2px}.label-day{display:block;font-size:14px;font-weight:700;color:#1d1d1f;line-height:1}.trend-legend{position:absolute;bottom:0;left:10px;right:10px;display:flex;gap:16px;justify-content:center;padding:8px;background:#ffffff80;border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.legend-item{display:flex;align-items:center;gap:6px;font-size:11px;color:#6e6e73;font-weight:500}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.normal{background:#34c759}.legend-dot.high{background:#ff3b30}.empty-trend{text-align:center;padding:60px 20px}.empty-trend .empty-icon{margin-bottom:16px;opacity:.3}.empty-trend p{margin:8px 0}.empty-subtext{font-size:13px;color:#86868b}.activity-list{display:flex;flex-direction:column;gap:12px}.activity-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--ios-gray-1);border-radius:10px;transition:all .2s ease}.activity-item:hover{background:var(--ios-gray-2)}.activity-icon{font-size:20px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:10px;box-shadow:0 2px 4px #0000001a}.activity-details{flex:1}.activity-title{font-weight:500;color:var(--ios-gray-9);margin-bottom:2px}.activity-time{font-size:12px;color:var(--ios-gray-5)}.activity-status{padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;text-transform:uppercase}.activity-status.scheduled,.activity-status.pending{background:#ff950026;color:var(--ios-orange)}.activity-status.confirmed,.activity-status.completed{background:#34c75926;color:var(--ios-green)}.activity-status.cancelled{background:#ff3b3026;color:var(--ios-red)}.empty-activity{text-align:center;padding:32px 16px;color:var(--ios-gray-5)}@media (max-width: 768px){.dashboard-widgets{grid-template-columns:1fr;gap:16px;margin-top:24px}.widget{padding:20px}.calendar-item{padding:12px;gap:12px}.trend-container{min-height:300px;padding:16px 12px}.hba2-trend-chart{height:240px;padding:18px 8px 55px}.reference-zones{bottom:55px;border-radius:10px}.zone-label{font-size:9px;right:8px;top:6px;letter-spacing:.3px;font-weight:700;opacity:.7}.trend-line-svg,.trend-points-container{bottom:55px}.trend-line-svg polyline{stroke-width:2.5}.point-circle{width:14px;height:14px;border-width:3px}.trend-data-point{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.trend-data-point:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%}.trend-data-point.latest .point-tooltip{opacity:1;bottom:28px}.point-tooltip{min-width:110px;padding:10px 12px;box-shadow:0 4px 16px #0003}.tooltip-value{font-size:17px;margin-bottom:5px}.tooltip-date{font-size:11px;margin-bottom:7px}.tooltip-status{font-size:10px;padding:3px 7px;font-weight:700}.x-label{gap:1px;min-width:38px}.label-month{font-size:9px;letter-spacing:.4px;margin-bottom:2px;font-weight:600}.label-day{font-size:13px;font-weight:700}.x-axis-labels{bottom:26px}.trend-legend{gap:12px;padding:8px;bottom:0;flex-wrap:wrap;justify-content:center}.legend-item{font-size:11px;gap:5px;font-weight:600}.legend-dot{width:8px;height:8px}.activity-item{padding:10px;gap:10px}.activity-icon{width:35px;height:35px;font-size:18px}}@media (max-width: 480px){.hba2-trend-chart{height:220px;padding:15px 5px 52px}.reference-zones,.trend-line-svg,.trend-points-container{bottom:52px}.zone-label{font-size:8px;opacity:.65;right:6px;top:5px}.point-circle{width:12px;height:12px;border-width:2.5px}.trend-data-point:before{width:40px;height:40px}.point-tooltip{transform:translate(-50%);min-width:95px;padding:8px 10px}.tooltip-value{font-size:15px;margin-bottom:4px}.tooltip-date{font-size:10px;margin-bottom:6px}.tooltip-status{font-size:9px;padding:2px 6px}.x-label{min-width:32px}.label-month{font-size:8px;letter-spacing:.3px}.label-day{font-size:12px}.x-axis-labels{bottom:24px}.trend-legend{gap:8px;padding:6px 4px;flex-wrap:wrap}.legend-item{font-size:10px;gap:4px}.legend-dot{width:7px;height:7px}}.location-permission-banner{background:linear-gradient(135deg,#ff3b30,#ff6b66);border-radius:16px;padding:24px;margin-bottom:24px;display:flex;align-items:center;gap:16px;color:#fff;box-shadow:0 8px 24px #ff3b3033}.location-icon{font-size:32px;flex-shrink:0}.location-message{flex:1}.location-message h3{margin:0 0 8px;font-size:18px;font-weight:600}.location-message p{margin:0 0 16px;font-size:14px;opacity:.9;line-height:1.4}.enable-location-btn{background:#dc3545e6;border:1px solid rgba(255,255,255,.3);color:#fff;padding:12px 20px;border-radius:12px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #dc354540}.enable-location-btn:hover{background:#dc3545;border-color:#ffffff80;transform:translateY(-1px);box-shadow:0 4px 12px #dc354559}@media (max-width: 768px){.location-permission-banner{padding:20px;gap:12px}.location-icon{font-size:28px}.location-message h3{font-size:16px}.enable-location-btn{padding:10px 16px;font-size:13px}}.patient-portal svg,.patient-portal .inline-block svg{width:1rem!important;height:1rem!important;vertical-align:middle}.patient-portal h1 svg,.patient-portal h2 svg,.patient-portal h3 svg{width:1.25rem!important;height:1.25rem!important}.patient-portal .w-4{width:1rem!important;height:1rem!important}.patient-portal .w-5{width:1.25rem!important;height:1.25rem!important}.patient-portal .w-6{width:1.5rem!important;height:1.5rem!important}.patient-portal .w-7{width:1.75rem!important;height:1.75rem!important}.patient-portal .inline-block{display:inline-block!important;vertical-align:middle!important}.patient-portal .mr-1{margin-right:.25rem!important}.patient-portal .mr-2{margin-right:.5rem!important}.patient-portal .ml-2{margin-left:.5rem!important}.quick-actions-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:8px}.ai-analysis-button{position:relative;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:16px;padding:20px;cursor:pointer;overflow:hidden;box-shadow:0 8px 24px #667eea4d;transition:all .3s ease}.ai-analysis-button:hover{transform:translateY(-2px);box-shadow:0 12px 32px #667eea66}.ai-analysis-button:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%);animation:shimmer 3s infinite}@keyframes shimmer{0%{transform:translate(-100%) translateY(-100%) rotate(45deg)}to{transform:translate(100%) translateY(100%) rotate(45deg)}}.ai-button-content{display:flex;align-items:center;gap:16px;position:relative;z-index:1}.ai-icon-sparkle{flex-shrink:0;color:#fff;animation:sparkle-rotate 3s ease-in-out infinite}@keyframes sparkle-rotate{0%,to{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.1)}}.ai-text{text-align:left;color:#fff}.ai-text h3{margin:0 0 4px;font-size:18px;font-weight:700;color:#fff}.ai-text p{margin:0;font-size:13px;opacity:.9;color:#fff}.ai-preview-badge{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3);border-radius:50%;width:60px;height:60px;box-shadow:0 4px 12px #0000001a}.health-score{font-size:22px;font-weight:800;color:#fff;line-height:1}.score-label{font-size:10px;color:#fffc;margin-top:2px}.find-blood-bank-button{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:16px;padding:20px;cursor:pointer;box-shadow:0 8px 24px #ef44444d;transition:all .3s ease;color:#fff;text-align:left}.find-blood-bank-button:hover{transform:translateY(-2px);box-shadow:0 12px 32px #ef444466}.find-blood-bank-button svg{flex-shrink:0;color:#fff}.find-blood-bank-button h4{margin:0 0 4px;font-size:18px;font-weight:700;color:#fff}.find-blood-bank-button p{margin:0;font-size:13px;opacity:.9;color:#fff}@media (max-width: 768px){.quick-actions-grid{gap:12px;margin-top:6px}.ai-analysis-button,.find-blood-bank-button{padding:16px;border-radius:12px}.ai-button-content{gap:12px}.ai-icon-sparkle,.find-blood-bank-button svg{width:1.5rem!important;height:1.5rem!important}.ai-text h3,.find-blood-bank-button h4{font-size:16px}.ai-text p,.find-blood-bank-button p{font-size:12px}.ai-preview-badge{width:50px;height:50px}.health-score{font-size:18px}.score-label{font-size:9px}}@media (max-width: 480px){.ai-analysis-button,.find-blood-bank-button{padding:14px}.ai-text h3,.find-blood-bank-button h4{font-size:15px}.ai-text p,.find-blood-bank-button p{font-size:11px}.ai-preview-badge{width:45px;height:45px}.health-score{font-size:16px}}.cbc-reports-container{margin-bottom:40px}.section-subtitle{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:24px var(--space-6) 16px var(--space-6);padding-bottom:8px;border-bottom:2px solid var(--ios-gray-2)}.cbc-report-card{border-left:4px solid var(--ios-blue);background:linear-gradient(to right,rgba(0,122,255,.02),transparent)}.doctor-notes{margin-top:12px;padding:12px;background:var(--ios-gray-1);border-radius:8px;border-left:3px solid var(--ios-green)}.doctor-notes .notes-content{margin:4px 0 0;font-style:italic;color:var(--text-secondary)}.hplc-report-card{border-left:4px solid #dc3545;background:linear-gradient(to right,rgba(220,53,69,.02),transparent)}.report-title-group{display:flex;flex-direction:column;gap:8px}.report-title-group h3{margin:0;font-size:17px;font-weight:600;color:var(--text-primary)}.report-type-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;width:fit-content}.cbc-badge{background:linear-gradient(135deg,#007aff,#0056b3);color:#fff;box-shadow:0 2px 8px #007aff4d}.hplc-badge{background:linear-gradient(135deg,#dc3545,#a71d2a);color:#fff;box-shadow:0 2px 8px #dc35454d}.blood-bank-portal{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;background:#fff!important;min-height:100vh;margin:0;padding:0;overflow-x:hidden;font-size:17px;line-height:1.47;color:#1c1c1e}.blood-bank-portal.loading{background:none!important}.blood-bank-portal *{box-sizing:border-box}.blood-bank-portal .loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#ffffffd9;display:flex;align-items:center;justify-content:center;z-index:9999}.blood-bank-portal .loading-overlay .loading-spinner{font-size:0;width:auto;height:auto;border:none;animation:none;position:relative}.blood-bank-portal .loading-overlay .loading-spinner:before{content:"";display:block;width:40px;height:40px;border:3px solid rgba(220,53,69,.2);border-top:3px solid #dc3545;border-radius:50%;animation:simple-loading-spin 1s linear infinite;margin:0}@keyframes simple-loading-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.blood-bank-portal.error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;text-align:center}.error-message{color:#ff3b30;font-size:17px;margin-bottom:20px;font-weight:500}.portal-header{background:#fff;border-bottom:1px solid #e9ecef;padding:20px 16px 16px;position:sticky;top:0;z-index:100;box-shadow:0 2px 4px #0000000d;margin-bottom:8px}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;min-height:44px}.portal-header h1{font-size:18px;font-weight:700;color:#dc3545;margin:0;flex-shrink:0;line-height:1.2}.blood-bank-portal .user-info{display:flex!important;align-items:center!important;gap:8px!important;font-size:13px!important;color:#6c757d!important;flex-shrink:0!important}.blood-bank-portal .user-info span{display:none!important;font-weight:500!important}.blood-bank-portal .btn-logout{background:#dc3545!important;color:#fff!important;border:none!important;padding:10px 16px!important;border-radius:8px!important;font-size:13px!important;font-weight:600!important;cursor:pointer!important;transition:all .2s ease!important;white-space:nowrap!important;min-height:44px!important;display:flex!important;align-items:center!important;justify-content:center!important;text-transform:uppercase!important;letter-spacing:.5px!important;flex-shrink:0!important}.blood-bank-portal .btn-logout:hover{background:#c82333!important;transform:scale(.98)!important}.blood-bank-portal .btn-logout:active{transform:scale(.95)!important}.header-logo-title{display:flex;align-items:center;gap:12px}.portal-logo{height:28px;width:auto;flex-shrink:0}@media (min-width: 480px){.portal-header h1{font-size:20px}.user-info{gap:12px;font-size:14px}.btn-logout{font-size:14px;padding:12px 20px}.portal-logo{height:30px}}@media (min-width: 640px){.user-info span{display:inline}.portal-header h1{font-size:22px}.btn-logout{padding:12px 24px;font-size:15px}}@media (min-width: 768px){.portal-logo{height:32px}}.portal-nav{background:#fff;border-bottom:1px solid #e9ecef;padding:0 8px;display:flex;justify-content:space-around;overflow-x:auto;-webkit-overflow-scrolling:touch;box-shadow:none}.portal-nav::-webkit-scrollbar{display:none}.portal-nav button{background:none;border:none;padding:12px 8px;font-size:15px;font-weight:500;color:#6c757d;cursor:pointer;white-space:nowrap;transition:all .2s ease;border-bottom:3px solid transparent;flex-shrink:0;min-height:56px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:auto;border-radius:0!important;overflow:visible!important}.portal-nav button .nav-icon{font-size:20px;display:flex;align-items:center;justify-content:center}.portal-nav button .nav-text{font-size:11px;display:none}.portal-nav button.active{color:#dc3545;font-weight:600;border-bottom-color:#dc3545;background:transparent}.portal-nav button:hover{color:#dc3545;background:transparent}.portal-nav button:active{transform:scale(.98)}@media (min-width: 768px){.portal-nav{justify-content:flex-start;padding:0 16px}.portal-nav button{flex-direction:row;padding:16px 20px;gap:8px;min-width:auto}.portal-nav button .nav-icon{font-size:16px}.portal-nav button .nav-text{display:inline;font-size:15px}}.portal-content{max-width:1200px;margin:0 auto;padding:24px 16px;min-height:calc(100vh - 140px);background:#f8f9fa}.dashboard-section{display:flex;flex-direction:column;gap:24px}.welcome-banner{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;padding:32px 24px;border-radius:16px;text-align:center;box-shadow:0 8px 32px #dc354540}.welcome-banner h2{font-size:24px;font-weight:700;margin:0 0 8px;color:#fff}.welcome-banner p{font-size:17px;margin:0;opacity:.9;font-weight:400}.dashboard-stats{display:grid;grid-template-columns:1fr;gap:20px}.stat-card{background:#fff;border-radius:16px;padding:24px 20px;text-align:center;box-shadow:0 4px 16px #00000014;border:1px solid #e9ecef;transition:all .3s ease}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #dc354526;border-color:#dc3545}.stat-card h3{font-size:14px;font-weight:600;color:#6c757d;margin:0 0 16px;text-transform:uppercase;letter-spacing:.5px}.stat-number{font-size:42px;font-weight:800;color:#dc3545;margin:0 0 12px;line-height:1}.stat-card p{font-size:14px;color:#6c757d;margin:0;font-weight:500}.stat-card.primary{border-left:4px solid #dc3545}.stat-card.success{border-left:4px solid #28a745}.stat-card.warning{border-left:4px solid #ffc107}.stat-card.info{border-left:4px solid #17a2b8}.stat-progress{width:100%;height:6px;background:#f0f0f0;border-radius:3px;margin-top:12px;overflow:hidden}.progress-bar{height:100%;background:#dc3545;border-radius:3px;transition:width .3s ease}.completion-rate,.pending-breakdown,.availability-status{font-size:12px;color:#28a745;font-weight:600;margin-top:8px;text-transform:uppercase;letter-spacing:.5px}.pending-breakdown{color:#674e06}.availability-status{color:#17a2b8}.capacity-update-section{background:#fff;border-radius:16px;padding:20px 16px;box-shadow:0 4px 16px #00000014;border:1px solid #e9ecef}.capacity-update-section h3{font-size:17px;font-weight:600;color:#1c1c1e;margin:0 0 16px}.capacity-input-group{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.capacity-input-group input{flex:1;padding:14px 16px;border:2px solid #e9ecef;border-radius:10px;font-size:15px;font-weight:500;transition:all .2s ease;background:#f8f9fa}.capacity-input-group input:focus{outline:none;border-color:#dc3545;background:#fff;box-shadow:0 0 0 3px #dc35451a}.capacity-input-group button{padding:14px 20px;background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:50px}.capacity-input-group button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #dc35454d}.capacity-input-group button:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}.capacity-note{font-size:13px;color:#6c757d;margin:0;line-height:1.5}@media (min-width: 640px){.capacity-update-section{padding:24px}.capacity-input-group{flex-direction:row;gap:12px}.capacity-input-group input{max-width:250px}.capacity-input-group button{white-space:nowrap}}.todays-appointments{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 10px #00000014;border:.5px solid rgba(0,0,0,.06)}.todays-appointments h3{font-size:20px;font-weight:600;color:#1c1c1e;margin:0;padding:20px 20px 16px;border-bottom:.5px solid rgba(0,0,0,.06)}.empty-schedule{padding:40px 20px;text-align:center;color:#8e8e93;font-size:17px}.appointments-timeline{padding:0}.timeline-item{display:flex;padding:16px 20px;border-bottom:.5px solid rgba(0,0,0,.06);transition:background-color .2s ease}.timeline-item:last-child{border-bottom:none}.timeline-item:hover{background:#dc354505}.timeline-time{font-size:15px;font-weight:600;color:#dc3545;min-width:80px;flex-shrink:0;padding-top:2px}.timeline-content{flex:1;margin-left:16px}.patient-info h4{font-size:17px;font-weight:600;color:#1c1c1e;margin:0 0 8px}.patient-email{margin:4px 0 8px}.patient-email span{font-size:13px;color:#007aff;font-weight:500;font-family:monospace}.patient-email-history{margin:4px 0}.patient-email-history span{font-size:12px;color:#007aff;font-weight:500;font-family:monospace}.patient-details{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:8px}.patient-details span{font-size:13px;color:#8e8e93;font-weight:400}.special-requirements{background:#ffcc001a;color:#f57c00;padding:8px 12px;border-radius:8px;font-size:13px;margin-top:8px;border-left:3px solid #ffcc02}.appointment-actions{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.status-badge{padding:4px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.scheduled{background:#ff950026;color:#ff9500}.status-badge.confirmed{background:#34c75926;color:#34c759}.status-badge.in_progress{background:#007aff26;color:#007aff}.status-badge.completed{background:#34c75926;color:#34c759}.status-badge.no_show{background:#ff3b3026;color:#ff3b30}.action-buttons{display:flex;gap:8px}.action-buttons button{background:#dc3545;color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;min-height:40px}.btn-confirm{background:#28a745!important}.btn-start{background:linear-gradient(135deg,#dc3545,#c82333)!important;box-shadow:0 3px 10px #dc35454d!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important}.btn-start.priority{background:linear-gradient(135deg,#dc3545,#c82333)!important;padding:12px 20px!important;font-size:14px!important;font-weight:700!important;box-shadow:0 4px 14px #dc354566!important;border-radius:10px!important;text-transform:uppercase!important;letter-spacing:.5px!important}.btn-start:hover{background:linear-gradient(135deg,#c82333,#bd2130)!important;transform:translateY(-2px)!important;box-shadow:0 6px 16px #dc354580!important;opacity:1!important}.btn-start:active{transform:translateY(0)!important;box-shadow:0 2px 8px #dc35454d!important}.btn-complete{background:linear-gradient(135deg,#28a745,#218838)!important;box-shadow:0 3px 10px #28a7454d!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important}.btn-complete.primary{background:linear-gradient(135deg,#28a745,#218838)!important;padding:12px 20px!important;font-size:14px!important;font-weight:700!important;box-shadow:0 4px 14px #28a74566!important;border-radius:10px!important;text-transform:uppercase!important;letter-spacing:.5px!important}.btn-complete:hover{background:linear-gradient(135deg,#218838,#1e7e34)!important;transform:translateY(-2px)!important;box-shadow:0 6px 16px #28a74580!important;opacity:1!important}.btn-complete:active{transform:translateY(0)!important;box-shadow:0 2px 8px #28a7454d!important}.btn-no-show{background:#dc3545!important}.action-buttons button:hover{transform:translateY(-1px);opacity:1}.waiting-patient-info{display:flex;align-items:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,#fff3cd,#ffe69c);border-radius:8px;color:#856404;font-size:14px;font-weight:500;border-left:4px solid #ffc107;animation:pulse 2s ease-in-out infinite}.waiting-patient-info svg{width:20px;height:20px;flex-shrink:0}.weekly-summary{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 10px #00000014;border:.5px solid rgba(0,0,0,.06)}.weekly-summary h3{font-size:20px;font-weight:600;color:#1c1c1e;margin:0 0 16px}.weekly-summary p{font-size:15px;color:#8e8e93;margin:0 0 8px}.visit-history-section{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 10px #00000014;border:.5px solid rgba(0,0,0,.06)}.visit-history-header{padding:20px;border-bottom:.5px solid rgba(0,0,0,.06);transition:background-color .2s ease}.visit-history-header:hover{background:#dc354505}.visit-history-header h3{font-size:20px;font-weight:600;color:#1c1c1e;margin:0 0 8px;display:flex;align-items:center;justify-content:space-between}.toggle-icon{font-size:16px;color:#dc3545;transition:transform .2s ease;margin-left:8px}.history-summary{font-size:14px;color:#8e8e93;margin:0;font-weight:400}.visit-history-content{padding:20px;border-top:.5px solid rgba(0,0,0,.06);background:#fafafa}.empty-history{text-align:center;padding:40px 20px;color:#8e8e93;font-size:17px}.history-grid{display:grid;grid-template-columns:1fr;gap:16px}.history-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px #0000000f;border:.5px solid rgba(0,0,0,.06);transition:all .2s ease}.history-card:hover{transform:translateY(-1px);box-shadow:0 4px 16px #dc35451a;border-color:#dc354533}.history-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:.5px solid rgba(0,0,0,.06)}.history-card-header h4{font-size:18px;font-weight:600;color:#1c1c1e;margin:0}.visit-date{font-size:13px;color:#dc3545;font-weight:500;background:#dc35451a;padding:4px 8px;border-radius:8px}.history-card-details{display:flex;flex-direction:column;gap:8px}.detail-row{display:flex;justify-content:space-between;align-items:center;font-size:14px}.detail-label{color:#8e8e93;font-weight:500;min-width:100px}.detail-row span:last-child{color:#1c1c1e;font-weight:400;text-align:right}.detail-row .status-badge{margin:0}.patient-history-section{display:flex;flex-direction:column;gap:16px}.patient-group{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;border:.5px solid rgba(0,0,0,.06);overflow:hidden}.patient-group-header{padding:16px 20px;background:#fff;cursor:pointer;transition:background-color .2s ease;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(0,0,0,.06)}.patient-group-header:hover{background:#dc354505}.patient-header-info h4{font-size:18px;font-weight:600;color:#1c1c1e;margin:0 0 8px}.patient-summary{display:flex;gap:16px;font-size:13px;color:#8e8e93}.visit-count{background:#dc35451a;color:#dc3545;padding:2px 8px;border-radius:6px;font-weight:500}.last-visit{color:#6c757d}.blood-type{font-weight:500;color:#dc3545}.patient-actions{display:flex;align-items:center;gap:12px}.download-history-btn{background:#17a2b8;color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.download-history-btn:hover{background:#138496;transform:translateY(-1px)}.expand-icon{font-size:14px;color:#dc3545;transition:transform .2s ease}.patient-visits-expanded{padding:0 20px 20px;background:#fafafa}.visits-timeline{display:flex;flex-direction:column;gap:12px}.visit-timeline-item{display:flex;align-items:flex-start;gap:16px;padding:12px;background:#fff;border-radius:8px;border-left:3px solid #dc3545}.visit-number{background:#dc3545;color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.visit-details{flex:1}.visit-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.visit-date{font-weight:600;color:#1c1c1e;font-size:14px}.visit-time{color:#6c757d;font-size:13px}.visit-info{display:flex;flex-direction:column;gap:4px}.info-row{display:flex;gap:16px;font-size:13px;color:#8e8e93}.special-notes{background:#ffcc001a;color:#f57c00;padding:6px 8px;border-radius:6px;font-size:12px;margin-top:4px;border-left:3px solid #ffcc02}.analytics-section{display:flex;flex-direction:column;gap:24px}.analytics-row{display:grid;grid-template-columns:1fr;gap:20px}.analytics-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 16px #00000014;border:1px solid #e9ecef;transition:all .3s ease}.analytics-card:hover{transform:translateY(-2px);box-shadow:0 8px 32px #dc35451f}.analytics-card h3{font-size:18px;font-weight:600;color:#1c1c1e;margin:0 0 20px;display:flex;align-items:center;gap:8px}.analytics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.metric{display:flex;flex-direction:column;padding:16px;background:#f8f9fa;border-radius:12px;border-left:4px solid #dc3545}.metric-label{font-size:12px;color:#6c757d;font-weight:500;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.metric-value{font-size:24px;font-weight:700;color:#1c1c1e}.efficiency-card-red{background:linear-gradient(135deg,#fff5f5,#ffe8e8);border:2px solid #ffc9c9!important;box-shadow:0 8px 24px #dc354526!important}.efficiency-card-red h3{color:#c92a2a;font-size:20px;font-weight:700;margin-bottom:20px;letter-spacing:.3px}.efficiency-metrics{display:flex;flex-direction:column;gap:20px}.efficiency-item{display:flex;flex-direction:column;gap:8px;padding:20px;background:#fff;border-radius:14px;border:2px solid #ffc9c9;box-shadow:0 2px 8px #dc354514;transition:all .3s ease}.efficiency-item:hover{transform:translateY(-2px);box-shadow:0 4px 16px #dc354526;border-color:#ff6b6b}.efficiency-label{font-size:13px;color:#868e96;font-weight:600;text-transform:uppercase;letter-spacing:.8px}.efficiency-value{font-size:32px;font-weight:800;color:#c92a2a;line-height:1;margin:4px 0}.efficiency-trend{font-size:11px;font-weight:700;padding:6px 12px;border-radius:20px;text-transform:uppercase;letter-spacing:1px;display:inline-block;width:fit-content}.efficiency-trend.positive{background:linear-gradient(135deg,#ff8787,#ff6b6b);color:#fff;box-shadow:0 2px 8px #ff6b6b4d}.efficiency-trend.all-time{background:linear-gradient(135deg,#ffa8a8,#ff8787);color:#fff;box-shadow:0 2px 8px #ff87874d}.efficiency-trend.neutral{background:linear-gradient(135deg,#ff8787,#ff6b6b);color:#fff;box-shadow:0 2px 8px #ff6b6b4d}.efficiency-trend.negative{background:linear-gradient(135deg,#fa5252,#e03131);color:#fff;box-shadow:0 2px 8px #e0313166}.efficiency-value-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.efficiency-sub-item{padding:10px;background:#ffffff80;border-radius:10px;text-align:center}.efficiency-sub-label{font-size:11px;color:#6c757d;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.efficiency-sub-value{font-size:18px;font-weight:700;color:#1c1c1e}.projection-info{margin-top:12px;padding:10px;background:#fff6;border-radius:8px}.projection-item{font-size:12px;color:#495057;padding:4px 0;line-height:1.5}.projection-item.success{color:#10b981;font-weight:600}.projection-item.warning{color:#f59e0b;font-weight:600}.projection-item strong{color:#dc3545;font-weight:700}.quick-actions{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 16px #00000014;border:1px solid #e9ecef}.quick-actions h3{font-size:18px;font-weight:600;color:#1c1c1e;margin:0 0 20px}.action-buttons-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-action-btn{padding:12px 10px;border:none;border-radius:12px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:80px;word-wrap:break-word;overflow-wrap:break-word}.quick-action-btn svg{flex-shrink:0;width:20px;height:20px}.quick-action-btn.emergency{background:linear-gradient(135deg,#ff3b30,#ff5722);color:#fff}.quick-action-btn.capacity{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff}.quick-action-btn.reports{background:linear-gradient(135deg,#17a2b8,#138496);color:#fff}.quick-action-btn.inventory{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.quick-action-btn:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0003}.quick-action-btn:active{transform:translateY(0)}.appointments-section{display:flex;flex-direction:column;gap:12px}.appointments-section h2{font-size:22px;font-weight:700;color:#1c1c1e;margin:0 0 8px}.filter-section{margin-bottom:12px}.filter-title{font-size:12px;font-weight:600;color:#6c757d;margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px}.appointment-filters{display:flex;gap:8px;overflow-x:auto;padding:4px 0;-webkit-overflow-scrolling:touch;flex-wrap:wrap}.appointment-filters::-webkit-scrollbar{display:none}.appointment-filters button{background:#fff;color:#1c1c1e;border:2px solid #e9ecef;padding:6px 10px;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s ease;flex-shrink:0;display:flex;align-items:center;gap:4px;min-height:32px}.appointment-filters button svg{width:16px;height:16px;flex-shrink:0}.appointment-filters button .count{background:#f8f9fa;padding:2px 6px;border-radius:6px;font-size:12px;font-weight:600;color:#6c757d}.appointment-filters button:hover{border-color:#dc3545;transform:translateY(-1px);box-shadow:0 2px 8px #dc354526}.appointment-filters button.active{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border-color:#dc3545;box-shadow:0 4px 12px #dc35454d}.appointment-filters button.active .count{background:#fff3;color:#fff}.appointments-grid{display:grid;grid-template-columns:1fr;gap:16px}.appointment-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 2px 10px #00000014;border:.5px solid rgba(0,0,0,.06);transition:transform .2s ease}.appointment-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0000001f}.appointment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.appointment-header h3{font-size:20px;font-weight:600;color:#1c1c1e;margin:0}.appointment-details{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.appointment-details p{font-size:15px;color:#8e8e93;margin:0;display:flex;align-items:center;gap:8px}.appointment-details strong{color:#1c1c1e;font-weight:500}.appointments-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.appointment-card-compact{background:#fff;border-radius:8px;padding:12px;box-shadow:0 1px 3px #00000014;border:1px solid #e9ecef;transition:all .2s ease;display:flex;flex-direction:column}.appointment-card-compact:hover{transform:translateY(-2px);box-shadow:0 4px 12px #dc354526;border-color:#dc3545}.appointment-header-compact{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;gap:8px}.patient-info-compact h4{font-size:13px;font-weight:600;color:#1c1c1e;margin:0 0 3px}.appointment-datetime{font-size:10px;color:#6c757d;font-weight:500}.appointment-details-compact{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;flex:1}.detail-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.detail-row.full-width{flex-direction:column;align-items:flex-start}.detail-row .label{font-size:10px;color:#8e8e93;font-weight:500;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.detail-row .value{font-size:12px;color:#1c1c1e;font-weight:500;text-align:right}.detail-row.full-width .value{text-align:left;margin-top:2px}@media (min-width: 640px){.appointments-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.appointment-card-compact{padding:14px}.patient-info-compact h4{font-size:14px}}@media (min-width: 1024px){.appointments-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}.empty-state{text-align:center;padding:60px 20px;color:#8e8e93;font-size:17px}.profile-section{display:flex;flex-direction:column;gap:20px}.profile-section h2{font-size:28px;font-weight:700;color:#1c1c1e;margin:0}.profile-actions{display:flex;gap:12px;align-items:center}.profile-form{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 10px #00000014;border:.5px solid rgba(0,0,0,.06);display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:15px;font-weight:500;color:#1c1c1e}.profile-input{width:100%;padding:12px 16px;border:2px solid #e9ecef;border-radius:10px;font-size:15px;font-weight:500;transition:all .2s ease;background:#fff;color:#1c1c1e}.profile-input:focus{outline:none;border-color:#dc3545;box-shadow:0 0 0 3px #dc35451a}.form-group p{font-size:17px;color:#8e8e93;margin:0;padding:12px 16px;background:#f2f2f7;border-radius:12px}@media (min-width: 640px){.portal-content{padding:24px 20px}.dashboard-stats{grid-template-columns:repeat(2,1fr);gap:20px}.stat-card{padding:24px}.appointments-grid{grid-template-columns:repeat(2,1fr);gap:20px}.timeline-item{padding:20px}.patient-details{gap:20px}.history-grid{grid-template-columns:repeat(2,1fr);gap:20px}.analytics-grid{grid-template-columns:repeat(2,1fr)}.action-buttons-grid{grid-template-columns:repeat(2,1fr);gap:12px}.quick-action-btn{justify-content:center;text-align:center}}@media (min-width: 768px){.portal-header{padding:16px 24px}.portal-nav{padding:0 24px}.portal-content,.welcome-banner{padding:32px 24px}.dashboard-stats{grid-template-columns:repeat(4,1fr)}.profile-form{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.analytics-row,.analytics-grid{grid-template-columns:repeat(2,1fr)}.action-buttons-grid{grid-template-columns:repeat(4,1fr)}.quick-action-btn{padding:16px 20px;flex-direction:row;text-align:left;justify-content:flex-start;gap:12px;min-height:52px}.quick-action-btn svg{width:24px;height:24px}}@media (min-width: 1024px){.portal-content{padding:40px 32px}.appointments-grid{grid-template-columns:repeat(3,1fr)}.timeline-content{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.appointment-actions{margin-top:0;flex-shrink:0}.history-grid{grid-template-columns:repeat(3,1fr)}}.btn-primary{background:#dc3545;color:#fff;border:none;padding:12px 24px;border-radius:12px;font-size:17px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary:hover{background:#c82333;transform:scale(.95)}.inventory-header{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#fff;border-bottom:1px solid #f1f1f1;margin-bottom:0}.inventory-header h2{font-size:22px;font-weight:700;color:#1c1c1e;margin:0}.inventory-actions{display:flex;gap:8px}.btn-add-inventory{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border:none;border-radius:12px;padding:12px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-add-inventory:hover{transform:translateY(-1px);box-shadow:0 4px 12px #dc35454d}.inventory-tabs{display:flex;background:#f8f9fa;border-radius:0;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0;border-bottom:1px solid #e9ecef}.inventory-tabs button{flex:1;min-width:120px;padding:16px 12px;border:none;background:transparent;font-size:13px;font-weight:500;color:#6c757d;cursor:pointer;transition:all .2s ease;border-bottom:3px solid transparent;white-space:nowrap}.inventory-tabs .tab-active{color:#dc3545;background:#fff;border-bottom-color:#dc3545;font-weight:600}.inventory-tabs .tab-inactive:hover{color:#495057;background:#f8f9fa}.inventory-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:20px;background:#fff}.stat-card{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:16px;padding:16px;text-align:center;border:1px solid #e9ecef}.stat-card.warning{background:linear-gradient(135deg,#fff3cd,#ffeaa7);border-color:#ffc107}.stat-card.reserved{background:linear-gradient(135deg,#d1ecf1,#bee5eb);border-color:#17a2b8}.stat-card.info{background:linear-gradient(135deg,#d4edda,#c3e6cb);border-color:#28a745}.stat-number{font-size:24px;font-weight:700;color:#1c1c1e;margin-bottom:4px}.stat-label{font-size:12px;font-weight:500;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.blood-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;padding:20px;background:#fff}.blood-type-card{background:#fff;border-radius:16px;padding:16px;box-shadow:0 2px 12px #00000014;border:2px solid #f1f1f1;transition:all .2s ease}.blood-type-card.critical{border-color:#dc3545;background:linear-gradient(135deg,#fff,#fff5f5)}.blood-type-card.low{border-color:#ffc107;background:linear-gradient(135deg,#fff,#fffbf0)}.blood-type-card.good{border-color:#28a745;background:linear-gradient(135deg,#fff,#f8fff9)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.blood-type-title{font-size:18px;font-weight:700;color:#1c1c1e;margin:0}.status-indicator{font-size:16px}.stock-display{text-align:center;margin:16px 0}.main-count{font-size:36px;font-weight:800;color:#1c1c1e;line-height:1}.unit-label{font-size:11px;color:#8e8e93;text-transform:uppercase;font-weight:600;letter-spacing:.5px}.stock-breakdown{display:flex;justify-content:space-between;margin:12px 0;padding:8px 0;border-top:1px solid #f1f1f1;border-bottom:1px solid #f1f1f1}.breakdown-item{text-align:center;flex:1}.breakdown-label{font-size:10px;color:#8e8e93;text-transform:uppercase;font-weight:600;display:block;margin-bottom:2px}.breakdown-value{font-size:16px;font-weight:700}.breakdown-value.available{color:#28a745}.breakdown-value.reserved{color:#17a2b8}.quick-actions{display:flex;justify-content:space-between;gap:6px;margin:12px 0 8px}.action-btn{flex:1;border:none;border-radius:10px;padding:10px 6px;font-size:16px;cursor:pointer;transition:all .2s ease;min-height:40px;font-weight:600}.action-btn:disabled{opacity:.3;cursor:not-allowed;transform:none!important}.add-btn{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.remove-btn{background:linear-gradient(135deg,#ffc107,#fd7e14);color:#fff}.reserve-btn{background:linear-gradient(135deg,#17a2b8,#138496);color:#fff}.action-btn:not(:disabled):hover{transform:translateY(-1px)}.stock-status{text-align:center;font-size:12px;font-weight:600;color:#6c757d}.reserved-inventory{background:#fff;min-height:400px}.reserved-header{padding:20px;border-bottom:1px solid #f1f1f1;display:flex;justify-content:space-between;align-items:center}.reserved-header h3{font-size:18px;font-weight:600;color:#1c1c1e;margin:0}.filter-container{display:flex;align-items:center}.mobile-select{background:#fff;border:1px solid #e9ecef;border-radius:10px;padding:8px 12px;font-size:14px;color:#495057;cursor:pointer;min-width:120px}.reservation-list{padding:16px}.reservation-card{background:#fff;border-radius:16px;border:1px solid #e9ecef;margin-bottom:12px;box-shadow:0 2px 8px #0000000d;overflow:hidden}.reservation-header{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 12px;border-bottom:1px solid #f8f9fa}.patient-info{display:flex;align-items:center;gap:8px}.patient-name{font-size:16px;font-weight:600;color:#1c1c1e;margin:0}.blood-badge{background:#dc3545;color:#fff;padding:4px 8px;border-radius:8px;font-size:11px;font-weight:700}.reservation-units{font-size:14px;font-weight:600;color:#17a2b8;background:#e7f7fa;padding:6px 10px;border-radius:8px}.reservation-details{padding:12px 16px}.detail-row{display:flex;justify-content:space-between;margin-bottom:8px}.detail-row:last-child{margin-bottom:0}.detail-label{font-size:13px;color:#6c757d;font-weight:500}.detail-value{font-size:13px;color:#1c1c1e;font-weight:500;text-align:right;max-width:60%;word-wrap:break-word}.reservation-actions{padding:12px 16px;border-top:1px solid #f8f9fa}.release-btn{width:100%;background:linear-gradient(135deg,#6c757d,#495057);color:#fff;border:none;border-radius:10px;padding:12px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.release-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6c757d4d}.transaction-history{background:#fff;min-height:400px}.transaction-header{padding:20px;border-bottom:1px solid #f1f1f1}.transaction-header h3{font-size:18px;font-weight:600;color:#1c1c1e;margin:0 0 12px}.transaction-stats{display:flex;gap:16px;flex-wrap:wrap}.transaction-stats .stat{font-size:12px;color:#6c757d;background:#f8f9fa;padding:6px 10px;border-radius:8px;font-weight:500}.transaction-list{padding:16px}.transaction-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;margin-bottom:8px;overflow:hidden;transition:all .2s ease}.transaction-card:hover{box-shadow:0 2px 8px #0000001a}.transaction-main{display:flex;justify-content:space-between;align-items:center;padding:14px 16px}.transaction-type{display:flex;align-items:center;gap:12px;flex:1}.action-icon{font-size:18px;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.action-icon.add{background:#28a745}.action-icon.remove{background:#ffc107;color:#1c1c1e}.action-icon.reserve{background:#17a2b8}.action-icon.release{background:#6c757d}.transaction-details{flex:1}.transaction-title{font-size:15px;font-weight:600;color:#1c1c1e;margin:0 0 2px}.transaction-subtitle{display:flex;align-items:center;gap:8px}.transaction-subtitle .blood-type{background:#dc3545;color:#fff;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:700}.transaction-subtitle .change{font-size:12px;font-weight:600;color:#6c757d}.transaction-time{font-size:11px;color:#8e8e93;text-align:right;line-height:1.3;min-width:80px}.transaction-extra{background:#f8f9fa;padding:12px 16px;border-top:1px solid #e9ecef}.extra-detail{font-size:12px;margin-bottom:4px;color:#495057}.extra-detail:last-child{margin-bottom:0}.extra-detail strong{color:#1c1c1e}.empty-state{text-align:center;padding:60px 20px;color:#8e8e93}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.6}.empty-state p{font-size:16px;font-weight:500;margin:0}.inventory-modal{max-width:480px;max-height:90vh;overflow-y:auto}.modal-header h3{font-size:20px;font-weight:700;color:#1c1c1e;margin:0}.modal-body{padding:24px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:600;color:#1c1c1e}.form-input{border:1px solid #e9ecef;border-radius:10px;padding:12px;font-size:16px;color:#495057;transition:all .2s ease}.form-input:focus{outline:none;border-color:#dc3545;box-shadow:0 0 0 3px #dc35451a}.modal-footer{display:flex;gap:12px;padding:16px 24px;border-top:1px solid #e9ecef;background:#f8f9fa}.btn-cancel{flex:1;background:#6c757d;color:#fff;border:none;border-radius:10px;padding:14px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-add{flex:2;background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border:none;border-radius:10px;padding:14px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-start-transfusion{flex:2;background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border:none;border-radius:10px;padding:14px 20px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 12px #dc35454d}.btn-start-transfusion:hover:not(:disabled){background:linear-gradient(135deg,#c82333,#bd2130);transform:translateY(-2px);box-shadow:0 6px 16px #dc354566}.btn-start-transfusion:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #dc35454d}.btn-start-transfusion:disabled{background:linear-gradient(135deg,#6c757d,#5a6268);cursor:not-allowed;opacity:.6;box-shadow:none}.btn-cancel:hover,.btn-add:hover{transform:translateY(-1px)}@media (max-width: 768px){.inventory-stats{grid-template-columns:repeat(2,1fr);gap:8px;padding:16px}.blood-type-grid{grid-template-columns:1fr 1fr;gap:8px;padding:16px}.blood-type-card{padding:12px}.main-count{font-size:28px}.quick-actions{gap:4px}.action-btn{padding:8px 4px;font-size:14px;min-height:36px}.btn-start.priority,.btn-complete.primary{padding:14px 16px!important;font-size:13px!important;gap:6px!important}.btn-start.priority svg,.btn-complete svg{width:16px!important;height:16px!important}.form-row{grid-template-columns:1fr;gap:12px}.inventory-modal{margin:10px;max-width:calc(100vw - 20px)}.transaction-main{padding:12px}.transaction-type{gap:8px}.action-icon{width:28px;height:28px;font-size:14px}}@media (max-width: 480px){.inventory-header{padding:16px}.inventory-header h2{font-size:20px}.inventory-tabs button{padding:14px 8px;font-size:12px;min-width:100px}.blood-type-grid{grid-template-columns:1fr;padding:12px}.reservation-header,.transaction-header{padding:16px}.reservation-list,.transaction-list{padding:12px}}.status-and-timing{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.live-timer{background:linear-gradient(135deg,#28a745,#20c997);color:#fff;padding:6px 10px;border-radius:8px;font-size:13px;font-weight:700;text-align:center;animation:pulse 2s infinite;box-shadow:0 2px 8px #28a7454d}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.completed-duration{background:linear-gradient(135deg,#17a2b8,#138496);color:#fff;padding:6px 10px;border-radius:8px;font-size:13px;font-weight:600;text-align:center}.action-buttons{display:flex;flex-direction:column;gap:8px}.btn-time-check{background:linear-gradient(135deg,#ffc107,#fd7e14);color:#1c1c1e;border:none;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-time-check:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ffc1074d}.no-show-options{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.btn-show{background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:none;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-show:hover{transform:translateY(-1px);box-shadow:0 3px 8px #28a7454d}.btn-no-show-late{background:linear-gradient(135deg,#6c757d,#495057);color:#fff;border:none;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:8px}.btn-no-show-late:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6c757d4d}.in-progress-controls{background:#f8f9fa;border-radius:12px;padding:16px;margin-top:12px;border:2px solid #28a745}.btn-complete.primary{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border:none;border-radius:12px;padding:14px 20px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s ease;width:100%;margin-bottom:12px}.btn-complete.primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #dc354566}.timing-info{display:flex;justify-content:space-between;background:#fff;border-radius:8px;padding:12px;border:1px solid #e9ecef}.timing-detail{text-align:center;flex:1}.timing-detail:first-child{border-right:1px solid #e9ecef;padding-right:12px;margin-right:12px}.timing-detail{font-size:12px;color:#6c757d;font-weight:500}.timing-detail.live{color:#28a745;font-weight:700;animation:pulse 2s infinite}.status-badge{padding:6px 12px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;text-align:center;min-width:80px}.status-badge.scheduled{background:linear-gradient(135deg,#6c757d,#495057);color:#fff}.status-badge.confirmed{background:linear-gradient(135deg,#17a2b8,#138496);color:#fff}.status-badge.in_progress{background:linear-gradient(135deg,#ffc107,#fd7e14);color:#1c1c1e;animation:pulse 2s infinite}.status-badge.completed{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.status-badge.no_show{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff}.timeline-item{border-left:4px solid #e9ecef;transition:all .3s ease;margin-bottom:16px}.timeline-item.scheduled{border-left-color:#6c757d}.timeline-item.confirmed{border-left-color:#17a2b8}.timeline-item.in_progress{border-left-color:#ffc107;background:linear-gradient(135deg,#fff8e1,#fffbf0);box-shadow:0 4px 16px #ffc10733;animation:glow 3s ease-in-out infinite alternate}@keyframes glow{0%{box-shadow:0 4px 16px #ffc10733}to{box-shadow:0 4px 20px #ffc10766}}.timeline-item.completed{border-left-color:#28a745;background:linear-gradient(135deg,#f8fff9,#e8f5e8)}.timeline-item.no_show{border-left-color:#dc3545;background:linear-gradient(135deg,#fff5f5,#ffe6e6);opacity:.8}@media (max-width: 768px){.timing-info{flex-direction:column;gap:8px}.timing-detail:first-child{border-right:none;border-bottom:1px solid #e9ecef;padding-right:0;margin-right:0;padding-bottom:8px;margin-bottom:8px}.no-show-options{grid-template-columns:1fr;gap:8px}.in-progress-controls{padding:12px}.btn-complete.primary{padding:12px 16px;font-size:14px}}@media (max-width: 480px){.status-and-timing{align-items:center}.live-timer,.completed-duration{font-size:12px;padding:4px 8px}.timing-info{padding:8px}.timing-detail{font-size:11px}.status-badge{font-size:10px;padding:4px 8px;min-width:60px}}.portal-nav button:focus,.btn-logout:focus,.btn-primary:focus,.action-buttons button:focus,.appointment-filters button:focus,.inventory-tabs button:focus,.action-btn:focus,.btn-add-inventory:focus,.btn-time-check:focus,.btn-show:focus,.btn-no-show-late:focus,.btn-complete:focus{outline:2px solid #dc3545;outline-offset:2px}.clickable-metric{cursor:pointer!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important;position:relative;overflow:hidden}.clickable-metric:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(220,53,69,.1),transparent);transition:left .6s ease}.clickable-metric:hover:before{left:100%}.clickable-metric:hover{transform:translateY(-2px);box-shadow:0 8px 25px #dc354526;border-color:#dc3545}.clickable-metric .metric-hint{display:block;font-size:11px;color:#6c757d;margin-top:4px;opacity:.8;font-weight:400}.clickable-metric:hover .metric-hint{color:#dc3545;opacity:1}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;animation:fadeIn .3s ease-out}.ratings-modal{background:#fff;border-radius:16px;box-shadow:0 20px 40px #00000026;max-width:600px;width:100%;max-height:80vh;overflow:hidden;animation:slideUp .4s cubic-bezier(.4,0,.2,1);border:1px solid rgba(220,53,69,.1)}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e9ecef;background:linear-gradient(135deg,#fff5f5,#fff)}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:#1c1c1e}.close-btn{background:#f8f9fa;border:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;color:#6c757d;transition:all .2s ease}.close-btn:hover{background:#dc3545;color:#fff;transform:scale(1.1)}.ratings-content{max-height:60vh;overflow-y:auto;padding:0}.loading-state,.error-state{padding:40px 24px;text-align:center}.loading-state .loading-spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #dc3545;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 16px}.retry-btn{background:#dc3545;color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;margin-top:16px}.ratings-summary{padding:24px;background:linear-gradient(135deg,#fff5f5,#fff);border-bottom:1px solid #e9ecef}.summary-card{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:start}.overall-rating{text-align:center;min-width:120px}.rating-number{font-size:48px;font-weight:700;color:#dc3545;line-height:1}.rating-stars{margin:8px 0}.rating-stars .star{font-size:20px;margin:0 2px;opacity:.3;transition:all .2s ease}.rating-stars .star.filled{opacity:1;color:#ffc107;text-shadow:0 0 10px rgba(255,193,7,.5)}.overall-rating p{margin:8px 0 0;color:#6c757d;font-size:14px;font-weight:500}.rating-breakdown{display:flex;flex-direction:column;gap:8px}.breakdown-row{display:grid;grid-template-columns:50px 1fr 40px;align-items:center;gap:12px;font-size:14px}.breakdown-row span:first-child{color:#6c757d;font-weight:500}.breakdown-row span:last-child{text-align:right;color:#495057;font-weight:600}.progress-bar{height:8px;background:#e9ecef;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#dc3545,#ff6b6b);border-radius:4px;transition:width .6s ease}.individual-reviews{padding:24px}.individual-reviews h3{margin:0 0 20px;font-size:18px;font-weight:600;color:#1c1c1e}.no-reviews{text-align:center;padding:40px 20px;color:#6c757d}.no-reviews p:first-child{font-size:32px;margin-bottom:8px}.reviews-list{display:flex;flex-direction:column;gap:16px}.review-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;padding:16px;transition:all .3s ease;position:relative;overflow:hidden}.review-card:before{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:linear-gradient(to bottom,#dc3545,#ff6b6b);opacity:0;transition:opacity .3s ease}.review-card:hover{box-shadow:0 4px 15px #dc35451a;border-color:#dc354533;transform:translateY(-2px)}.review-card:hover:before{opacity:1}.review-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.reviewer-info{display:flex;align-items:center;gap:12px}.reviewer-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#dc3545,#ff6b6b);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:16px;flex-shrink:0}.reviewer-details{display:flex;flex-direction:column;gap:2px}.reviewer-name{font-weight:600;color:#1c1c1e;font-size:15px}.visit-date{font-size:12px;color:#6c757d}.review-rating{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.review-rating .star{font-size:14px;margin:0 1px;opacity:.3}.review-rating .star.filled{opacity:1;color:#ffc107}.rating-date{font-size:11px;color:#6c757d}.review-comment{background:#f8f9fa;border-radius:8px;padding:12px;margin-top:8px;border-left:3px solid #dc3545}.review-comment p{margin:0;color:#495057;font-style:italic;line-height:1.4}.review-comment-bubble{display:flex;gap:12px;align-items:flex-start;margin-top:12px;padding:16px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:16px;position:relative;box-shadow:0 2px 8px #00000014;transition:all .3s ease}.review-comment-bubble:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.review-comment-bubble:before{content:"";position:absolute;top:-8px;left:60px;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid #f8f9fa}.comment-icon{font-size:24px;flex-shrink:0;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.comment-text{flex:1;min-width:0}.comment-text p{margin:0;color:#2c3e50;font-size:14px;line-height:1.6;font-style:italic;word-wrap:break-word;overflow-wrap:break-word}@media (max-width: 768px){.modal-overlay{padding:10px}.ratings-modal{max-height:85vh;border-radius:12px}.modal-header{padding:16px 20px}.modal-header h2{font-size:18px}.ratings-content{max-height:70vh}.ratings-summary{padding:20px}.summary-card{grid-template-columns:1fr;gap:20px;text-align:center}.overall-rating{min-width:auto}.rating-number{font-size:36px}.breakdown-row{grid-template-columns:60px 1fr 30px;gap:8px}.individual-reviews{padding:20px}.review-header{flex-direction:column;align-items:flex-start;gap:8px}.review-comment-bubble{padding:12px;gap:10px}.comment-icon{font-size:20px}.comment-text p{font-size:13px}.review-rating{align-items:flex-start;text-align:left}}@media (max-width: 480px){.modal-overlay{padding:5px}.ratings-modal{border-radius:8px}.modal-header{padding:12px 16px}.ratings-summary,.individual-reviews{padding:16px}.rating-number{font-size:28px}.reviewer-avatar{width:32px;height:32px;font-size:14px}.review-comment-bubble{padding:10px;gap:8px;border-radius:12px}.review-comment-bubble:before{left:40px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #f8f9fa}.comment-icon{font-size:18px}.comment-text p{font-size:12px;line-height:1.5}.reviewer-info{gap:8px}.review-card{padding:12px}.review-comment{padding:8px}}.quick-action-modal{background:#fff;border-radius:16px;box-shadow:0 20px 40px #00000026;max-width:500px;width:100%;max-height:80vh;overflow:hidden;animation:slideUp .4s cubic-bezier(.4,0,.2,1);border:1px solid rgba(220,53,69,.1)}.quick-action-modal .modal-header h3{margin:0;font-size:18px;font-weight:600;color:#1c1c1e}.quick-action-modal .modal-close{background:#f8f9fa;border:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;color:#6c757d;transition:all .2s ease}.quick-action-modal .modal-close:hover{background:#dc3545;color:#fff;transform:scale(1.1)}.quick-action-form{display:flex;flex-direction:column;gap:20px}.quick-action-form .form-group{display:flex;flex-direction:column;gap:8px}.quick-action-form .form-group label{font-size:15px;font-weight:500;color:#1c1c1e}.quick-action-form .form-input{width:100%;padding:12px 16px;border:2px solid #e9ecef;border-radius:12px;font-size:16px;font-family:inherit;transition:all .2s ease;background:#fff}.quick-action-form .form-input:focus{outline:none;border-color:#dc3545;box-shadow:0 0 0 4px #dc35451a}.blood-type-display{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8f9fa;border-radius:12px;border:2px solid #e9ecef}.blood-badge{padding:6px 12px;border-radius:8px;font-weight:600;font-size:14px;color:#fff}.blood-badge.A{background:#007bff}.blood-badge.B{background:#28a745}.blood-badge.O{background:#dc3545}.blood-badge.AB{background:#6f42c1}.current-stock{font-size:14px;color:#6c757d;font-weight:500}.warning-message{padding:12px 16px;background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;color:#856404;font-size:14px;font-weight:500}.modal-footer{display:flex;gap:12px;padding:20px 24px;border-top:1px solid #e9ecef;background:#f8f9fa}.btn-cancel{flex:1;padding:14px 20px;border:2px solid #e9ecef;border-radius:12px;background:#fff;color:#6c757d;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-cancel:hover{border-color:#dc3545;color:#dc3545}.btn-action{flex:2;padding:14px 20px;border:none;border-radius:12px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.btn-action.add{background:linear-gradient(135deg,#28a745,#20c997)}.btn-action.remove{background:linear-gradient(135deg,#dc3545,#fd7e14)}.btn-action.reserve{background:linear-gradient(135deg,#007bff,#6610f2)}.btn-action:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00000026}.btn-action:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;transform:none;box-shadow:none}@media (max-width: 768px){.quick-action-modal{max-width:95vw;margin:10px}.modal-footer{flex-direction:column;gap:8px}.btn-cancel,.btn-action{flex:none;width:100%}.blood-type-display{flex-direction:column;align-items:flex-start;gap:8px}}.weekly-analytics-dashboard{background:linear-gradient(135deg,#c8b6ff,#9b8fff);border-radius:20px;padding:0;margin:20px 0;overflow:hidden;box-shadow:0 20px 40px #9b8fff4d;position:relative}.weekly-analytics-dashboard:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);pointer-events:none}.dashboard-header{background:#dc354514;padding:25px 30px;border-bottom:1px solid rgba(220,53,69,.15);position:relative;z-index:1}.dashboard-header h3{color:#1c1c1e;font-size:24px;font-weight:700;margin:0 0 8px;display:flex;align-items:center;gap:8px}.analytics-info-icon{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:#ffffffe6;color:#667eea;font-size:12px;font-weight:700;cursor:help;transition:all .3s ease;box-shadow:0 2px 6px #667eea33}.analytics-info-icon:hover{background:#667eea;color:#fff;transform:scale(1.1);box-shadow:0 4px 12px #667eea66}.week-period{color:#6c757d;font-size:16px;font-weight:500;margin:0}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;padding:30px;position:relative;z-index:1}.kpi-card{background:#fff;border-radius:16px;padding:24px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 8px #00000014;border:1px solid rgba(220,53,69,.12);transition:all .3s ease;position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;transition:all .3s ease}.kpi-card.primary:before{background:linear-gradient(180deg,#007aff,#0056cc)}.kpi-card.success:before{background:linear-gradient(180deg,#34c759,#28a745)}.kpi-card.warning:before{background:linear-gradient(180deg,#ff9500,#ff8c00)}.kpi-card.danger:before{background:linear-gradient(180deg,#ff3b30,#dc3545)}.kpi-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #00000026}.kpi-card:hover:before{width:100%;opacity:.05}.kpi-icon{font-size:16px;min-width:24px;text-align:center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));display:flex;align-items:center;justify-content:center}.kpi-icon svg{width:20px!important;height:20px!important}.kpi-content{flex:1}.kpi-value{font-size:32px;font-weight:800;color:#1c1c1e;line-height:1;margin-bottom:4px}.kpi-label{font-size:14px;font-weight:600;color:#8e8e93;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.kpi-trend{font-size:12px;font-weight:600;padding:4px 8px;border-radius:8px;background:#007aff1a;color:#007aff;display:inline-block}.kpi-subtitle{font-size:12px;color:#8e8e93;font-weight:500}.enhanced-analytics{background:#dc35450d;padding:30px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;border-top:1px solid rgba(220,53,69,.12);position:relative;z-index:1}.analytics-section h4{color:#1c1c1e;font-size:18px;font-weight:700;margin:0 0 20px}.timing-metrics,.quality-metrics{display:flex;flex-direction:column;gap:16px}.metric-item{display:flex;align-items:center;gap:12px;background:#fff;padding:16px;border-radius:12px;border:1px solid rgba(220,53,69,.15);transition:all .3s ease;box-shadow:0 1px 4px #0000000f}.metric-item:hover{background:#fff;transform:translate(4px);box-shadow:0 2px 8px #0000001a}.metric-icon{font-size:20px;min-width:24px;text-align:center}.metric-info{flex:1}.metric-item .metric-value{font-size:20px;font-weight:700;color:#1c1c1e;line-height:1;margin-bottom:2px}.metric-item .metric-label{font-size:12px;color:#6c757d;font-weight:500}.progress-section{background:#dc35450d;padding:30px;border-top:1px solid rgba(220,53,69,.12);position:relative;z-index:1}.progress-item{margin-bottom:20px}.progress-item:last-child{margin-bottom:0}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;color:#1c1c1e;font-weight:600;font-size:14px}.progress-bar{height:8px;background:#dc354526;border-radius:4px;overflow:hidden;position:relative}.progress-bar.success .progress-fill{background:linear-gradient(90deg,#34c759,#30d158)}.progress-fill{height:100%;background:linear-gradient(90deg,#007aff,#09f);border-radius:4px;transition:width .8s ease;position:relative}.progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:progressShine 2s infinite}@keyframes progressShine{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (max-width: 768px){.weekly-analytics-dashboard{margin:15px 0;border-radius:16px}.dashboard-header{padding:20px}.dashboard-header h3{font-size:20px}.week-period{font-size:14px}.analytics-grid{grid-template-columns:1fr;gap:16px;padding:20px}.kpi-card{padding:20px;gap:12px}.kpi-icon{font-size:28px;min-width:40px}.kpi-value{font-size:28px}.enhanced-analytics{grid-template-columns:1fr;gap:20px;padding:20px}.progress-section{padding:20px}.metric-item{padding:12px}.metric-value{font-size:18px}}.blood-bank-portal svg{max-width:100%;max-height:100%}.blood-bank-portal .w-4,.blood-bank-portal svg.w-4{width:1rem!important;height:1rem!important}.blood-bank-portal .w-5,.blood-bank-portal svg.w-5{width:1.25rem!important;height:1.25rem!important}.blood-bank-portal .h-4,.blood-bank-portal svg.h-4{height:1rem!important}.blood-bank-portal .h-5,.blood-bank-portal svg.h-5{height:1.25rem!important}.blood-bank-portal .inline-block{display:inline-block!important;vertical-align:middle!important}.blood-bank-portal .mr-1{margin-right:.25rem!important}.blood-bank-portal .mr-2{margin-right:.5rem!important}.blood-bank-portal .ml-2{margin-left:.5rem!important}.efficiency-info-tooltip{display:inline-block;margin-left:6px;cursor:help;opacity:.6;font-size:14px;font-weight:400;position:relative;z-index:1}.efficiency-info-tooltip:hover{opacity:1}.efficiency-info-tooltip[title]:hover:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:8px 12px;border-radius:4px;font-size:13px;white-space:nowrap;z-index:1000;margin-bottom:8px;box-shadow:0 2px 8px #0003}.efficiency-info-tooltip[title]:hover:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#333;z-index:1000;margin-bottom:2px}.weekday-selector{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;justify-content:center}.weekday-btn{min-width:40px;height:40px;border:2px solid #e9ecef;background:#fff;border-radius:8px;font-size:13px;font-weight:600;color:#6c757d;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.weekday-btn:hover{border-color:#dc3545;background:#dc35450d}.weekday-btn.active{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border-color:#dc3545;box-shadow:0 2px 8px #dc35454d}.efficiency-value-small{font-size:12px;color:#6c757d;margin-top:8px;text-align:center;font-weight:500}.appointments-timeline-container{max-height:600px;overflow-y:auto;overflow-x:hidden}.appointments-timeline-container::-webkit-scrollbar{width:8px}.appointments-timeline-container::-webkit-scrollbar-track{background:#f8f9fa;border-radius:4px}.appointments-timeline-container::-webkit-scrollbar-thumb{background:#dc3545;border-radius:4px}.appointments-timeline-container::-webkit-scrollbar-thumb:hover{background:#c82333}.visit-history-search{padding:20px;background:linear-gradient(135deg,#f8f9fa,#fff);border-bottom:2px solid rgba(220,53,69,.1)}.search-input-wrapper{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:16px;width:20px;height:20px;color:#dc3545;pointer-events:none;z-index:1}.visit-history-search-input{width:100%;padding:14px 48px;border:2px solid #e9ecef;border-radius:12px;font-size:15px;transition:all .3s ease;background:#fff;box-shadow:0 2px 8px #0000000d}.visit-history-search-input:focus{outline:none;border-color:#dc3545;background:#fff;box-shadow:0 4px 16px #dc354526;transform:translateY(-1px)}.visit-history-search-input::placeholder{color:#adb5bd;font-weight:500}.clear-search-btn{position:absolute;right:14px;background:#f8f9fa;border:1px solid #e9ecef;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;padding:0}.clear-search-btn:hover{background:#dc3545;color:#fff;border-color:#dc3545;transform:scale(1.1)}.clear-search-btn svg{width:16px;height:16px}.four-week-trend-section{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 16px #00000014;border:1px solid #e9ecef;margin-bottom:24px}.trend-header{margin-bottom:20px}.trend-header h3{font-size:20px;font-weight:700;color:#1c1c1e;margin:0 0 4px;display:flex;align-items:center}.trend-subtitle{font-size:14px;color:#6c757d;margin:0}.trend-chart-container{margin-top:20px;min-height:320px;width:100%;position:relative}.trend-chart-container svg,.trend-chart-container svg *{max-width:none!important;max-height:none!important}.trend-chart-container .recharts-wrapper{width:100%!important;height:300px!important}.trend-insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:24px}.insight-card{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:12px;border:1px solid #e9ecef}.insight-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.insight-icon.success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.insight-icon.primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.insight-icon.warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.insight-content{flex:1}.insight-label{font-size:12px;color:#6c757d;font-weight:600;margin-bottom:4px}.insight-value{font-size:20px;font-weight:700;color:#1c1c1e}.patient-ratings-section{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 16px #00000014;border:1px solid #e9ecef;margin-bottom:24px}.ratings-header{padding:24px;background:linear-gradient(135deg,#fff5e6,#ffe8cc);border-bottom:1px solid rgba(0,0,0,.06);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.ratings-header h3{font-size:20px;font-weight:600;color:#1c1c1e;margin:0;display:flex;align-items:center}.average-rating-display{display:flex;align-items:center;gap:12px}.rating-stars{display:flex;gap:4px}.rating-stars svg{width:20px!important;height:20px!important}.text-yellow-400{color:#fbbf24!important}.text-gray-300{color:#d1d5db!important}.average-rating-text{font-size:18px;font-weight:700;color:#1c1c1e}.total-ratings{margin-left:8px;font-size:13px;font-weight:500;color:#6c757d}.ratings-carousel{display:flex;align-items:center;padding:32px 20px;gap:16px;position:relative}.carousel-nav{background:#dc3545;border:none;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:#fff;flex-shrink:0;padding:0}.carousel-nav:hover:not(:disabled){background:#c82333;transform:scale(1.1);box-shadow:0 4px 12px #dc354566}.carousel-nav:disabled{background:#e9ecef;color:#adb5bd;cursor:not-allowed;opacity:.5}.carousel-nav svg{width:24px!important;height:24px!important}.rating-card-container{flex:1;min-height:180px;display:flex;align-items:center;justify-content:center}.rating-card{background:#f8f9fa;border-radius:12px;padding:24px;width:100%;max-width:600px;border:2px solid #e9ecef;transition:all .3s ease}.rating-card:hover{border-color:#fbbf24;box-shadow:0 4px 16px #fbbf2433}.rating-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.patient-rating-stars{display:flex;gap:4px}.patient-rating-stars svg{width:16px!important;height:16px!important}.rating-date{font-size:13px;color:#6c757d;font-weight:500}.rating-comment{font-size:15px;color:#1c1c1e;line-height:1.6;min-height:60px;margin-bottom:16px;font-style:italic}.rating-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid #e9ecef}.patient-info-anon{font-size:13px;color:#dc3545;font-weight:600}.visit-date-small{font-size:12px;color:#6c757d}.carousel-indicators{display:flex;justify-content:center;gap:8px;padding:0 20px 20px}.carousel-indicators .indicator{width:8px;height:8px;border-radius:50%;background:#e9ecef;border:none;cursor:pointer;transition:all .2s ease;padding:0}.carousel-indicators .indicator:hover{background:#fbbf24;transform:scale(1.2)}.carousel-indicators .indicator.active{background:#dc3545;width:24px;border-radius:4px}.blood-bank-profile__time-picker-group{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.blood-bank-profile__time-picker{display:flex;flex-direction:column;gap:8px;flex:1;min-width:140px}.time-picker-label{font-size:13px;color:#6c757d;font-weight:600}.profile-input.time-input{padding:12px 16px;border:2px solid #e9ecef;border-radius:10px;font-size:15px;font-weight:500;transition:all .2s ease;background:#f8f9fa}.profile-input.time-input:focus{outline:none;border-color:#dc3545;background:#fff;box-shadow:0 0 0 3px #dc35451a}.time-separator{font-size:16px;font-weight:600;color:#6c757d;padding-top:28px}.blood-bank-profile__operating-days{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.operating-day-btn{min-width:50px;padding:10px 16px;border:2px solid #e9ecef;background:#fff;border-radius:8px;font-size:13px;font-weight:600;color:#6c757d;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px}.operating-day-btn:hover{border-color:#dc3545;background:#dc35450d}.operating-day-btn.active{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border-color:#dc3545;box-shadow:0 2px 8px #dc35454d}@media (max-width: 768px){.weekday-selector{justify-content:flex-start}.weekday-btn{min-width:36px;height:36px;font-size:12px}.ratings-header{flex-direction:column;align-items:flex-start}.ratings-carousel{padding:20px 12px;gap:8px}.carousel-nav{width:36px;height:36px}.carousel-nav svg{width:20px!important;height:20px!important}.rating-card{padding:16px}.blood-bank-profile__time-picker-group{flex-direction:column;align-items:stretch}.time-separator{padding-top:0;align-self:center}.blood-bank-profile__operating-days{justify-content:flex-start}.operating-day-btn{min-width:44px;padding:8px 12px}.appointments-timeline-container{max-height:500px}}@media (max-width: 480px){.efficiency-item{padding:16px}.weekday-btn{min-width:32px;height:32px;font-size:11px}.rating-comment{font-size:14px;min-height:50px}.search-input-wrapper{flex-direction:column}.visit-history-search-input{padding:10px 40px;font-size:14px}}.ai-analysis-section{padding:20px;max-width:1400px;margin:0 auto}.ai-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding:24px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;box-shadow:0 8px 32px #667eea4d}.ai-header-content{display:flex;align-items:center;gap:16px;color:#fff}.ai-sparkle-icon{animation:sparkle 2s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(255,255,255,.6))}@keyframes sparkle{0%,to{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(1.1) rotate(180deg);opacity:.8}}.ai-header h1{margin:0;font-size:28px;font-weight:700}.ai-header p{margin:4px 0 0;font-size:14px;opacity:.9}.refresh-ai-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:#fff;color:#667eea;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease}.refresh-ai-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.refresh-ai-btn:disabled{opacity:.6;cursor:not-allowed}.ai-tab-button{position:relative;overflow:hidden}.ai-tab-button.active .ai-icon{animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{filter:drop-shadow(0 0 4px rgba(102,126,234,.6))}50%{filter:drop-shadow(0 0 12px rgba(102,126,234,1))}}.ai-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.ai-loader{width:80px;height:80px;border:6px solid #f3f4f6;border-top:6px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:24px}.ai-loading h3{font-size:24px;color:#1c1c1e;margin:0 0 12px}.ai-loading p{font-size:16px;color:#6c757d;max-width:500px}.ai-error{display:flex;flex-direction:column;align-items:center;padding:60px 20px;text-align:center}.ai-error svg{color:#dc3545;margin-bottom:20px}.ai-error h3{color:#1c1c1e;margin-bottom:20px}.retry-btn{padding:12px 32px;background:#dc3545;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease}.retry-btn:hover{background:#c82333;transform:translateY(-2px);box-shadow:0 4px 12px #dc35454d}.ai-insights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:20px}.ai-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 4px 12px #00000014;transition:all .3s ease;border:2px solid transparent}.ai-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f;border-color:#667eea}.ai-card-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #f3f4f6}.ai-card-header svg{color:#667eea}.ai-card-header h3{margin:0;font-size:18px;font-weight:700;color:#1c1c1e}.efficiency-score{display:flex;justify-content:center;margin:20px 0}.score-circle{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;box-shadow:0 8px 24px #667eea4d;animation:pulse-scale 3s ease-in-out infinite}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.score-number{font-size:36px;font-weight:700;line-height:1}.score-label{font-size:14px;opacity:.9}.ai-summary{font-size:14px;color:#6c757d;line-height:1.6;margin-bottom:16px}.ai-insights-list h4{font-size:13px;font-weight:600;color:#1c1c1e;margin:16px 0 8px;text-transform:uppercase;letter-spacing:.5px}.ai-insights-list ul{list-style:none;padding:0;margin:0 0 16px}.ai-insights-list li{display:flex;align-items:flex-start;gap:8px;padding:8px 0;font-size:14px;color:#1c1c1e}.ai-insights-list li svg{flex-shrink:0;margin-top:2px;color:#10b981}.improvement-list li svg{color:#f59e0b}.status-excellent{background:#10b981;color:#fff}.status-good{background:#3b82f6;color:#fff;white-space:nowrap;overflow:visible}.status-concerning{background:#f59e0b;color:#fff;white-space:nowrap;overflow:visible}.status-critical{background:#dc3545;color:#fff;white-space:nowrap;overflow:visible}.ai-card .status-badge{display:inline-block;padding:6px 16px;border-radius:20px;font-size:12px;font-weight:700;margin-bottom:16px;white-space:nowrap;overflow:visible;min-width:fit-content}.priority-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.priority-tag{padding:6px 12px;background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border-radius:6px;font-size:12px;font-weight:600}.forecast-trend{margin:20px 0}.trend-indicator{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;font-weight:700;font-size:14px}.trend-increasing{background:#10b9811a;color:#10b981}.trend-decreasing{background:#ef44441a;color:#ef4444}.trend-stable{background:#6b72801a;color:#6b7280}.capacity-recommendation{display:flex;flex-direction:column;gap:8px;padding:16px;background:#f8f9fa;border-radius:8px;margin-top:16px}.capacity-recommendation strong{font-size:13px;color:#1c1c1e}.capacity-recommendation span{font-size:14px;color:#6c757d}.recommendations-sections{display:flex;flex-direction:column;gap:20px}.rec-section h4{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:#1c1c1e;margin-bottom:12px}.rec-section ul{list-style:none;padding:0;margin:0}.rec-section li{padding:10px 0;border-bottom:1px solid #f3f4f6;font-size:14px;color:#1c1c1e}.rec-section li:last-child{border-bottom:none}.rec-section.urgent{background:#dc35450d;padding:16px;border-radius:8px;border-left:4px solid #dc3545}.rec-section.urgent h4{color:#dc3545}.alerts-list{display:flex;flex-direction:column;gap:12px}.alert-item{padding:16px;border-radius:8px;border-left:4px solid}.alert-high{background:#dc35450d;border-color:#dc3545}.alert-medium{background:#f59e0b0d;border-color:#f59e0b}.alert-low{background:#3b82f626;border-color:#3b82f6;color:#1e40af;font-weight:600}.alert-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.alert-header svg{color:inherit}.severity-badge{padding:4px 12px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;color:#fff}.alert-high .severity-badge,.severity-badge.high{background:#dc3545;color:#fff}.alert-medium .severity-badge,.severity-badge.medium{background:#f59e0b;color:#fff}.alert-low .severity-badge,.severity-badge.low{background:#3b82f6;color:#fff}.alert-message{font-size:14px;color:#1c1c1e;margin:8px 0;font-weight:500}.alert-action{font-size:13px;color:#6c757d;margin:8px 0 0}.ai-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center}.ai-empty svg{color:#667eea;margin-bottom:20px;opacity:.6}.ai-empty h3{font-size:24px;color:#1c1c1e;margin-bottom:12px}.ai-empty p{font-size:16px;color:#6c757d}@media (max-width: 768px){.ai-insights-grid{grid-template-columns:1fr}.ai-header{flex-direction:column;gap:16px}.refresh-ai-btn{width:100%;justify-content:center}}.blood-bank-portal .trend-chart-container svg,.blood-bank-portal .trend-chart-container svg *,.blood-bank-portal .recharts-surface,body .blood-bank-portal .trend-chart-container svg,#root .blood-bank-portal .trend-chart-container svg{max-width:none!important;max-height:none!important}.doctor-portal-modern{min-height:100vh;background:linear-gradient(135deg,#fef2f2,#fee2e2,#fef2f2);background-attachment:fixed}.portal-header-modern{background:#ffffffd9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(239,68,68,.1);padding:1.25rem 2rem;position:sticky;top:0;z-index:100;box-shadow:0 8px 32px #ef444414}.header-content-modern{max-width:1600px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.header-logo-section{display:flex;align-items:center;gap:1.25rem}.portal-logo-modern{height:55px;width:auto;filter:drop-shadow(0 4px 12px rgba(239,68,68,.2));transition:transform .3s ease}.portal-logo-modern:hover{transform:scale(1.05) rotate(2deg)}.header-title-group h1{font-size:1.75rem;font-weight:800;background:linear-gradient(135deg,#ef4444,#f97316,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;letter-spacing:-.5px}.header-title-group p{font-size:.85rem;color:#94a3b8;font-weight:500;margin:.25rem 0 0}.header-user-section{display:flex;align-items:center;gap:1.5rem}.user-info-modern{display:flex;flex-direction:column;align-items:flex-end}.user-name-modern{font-size:1rem;font-weight:700;color:#1e293b}.user-role-modern{font-size:.8rem;color:#ef4444;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.btn-logout-header{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;padding:.75rem 1.75rem;border-radius:14px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #ef44444d;font-size:.95rem}.btn-logout-header:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ef444466}.portal-nav-modern{background:#ffffffe6;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);padding:.5rem 2rem;display:flex;gap:1rem;justify-content:center;border-bottom:1px solid rgba(239,68,68,.08);position:sticky;top:88px;z-index:90}.nav-btn-modern{display:flex;align-items:center;gap:.65rem;padding:.85rem 1.75rem;background:transparent;border:none;border-radius:12px;color:#64748b;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;font-size:.95rem}.nav-btn-modern:hover{color:#ef4444;background:#ef44440d;transform:translateY(-1px)}.nav-btn-modern.active{color:#ef4444;background:linear-gradient(135deg,#ef44441a,#f973161a);box-shadow:0 4px 16px #ef444426}.nav-btn-modern.active:after{content:"";position:absolute;bottom:-.5rem;left:50%;transform:translate(-50%);width:40%;height:3px;background:linear-gradient(90deg,#ef4444,#f97316);border-radius:3px}.portal-content-modern{max-width:1600px;width:100%;margin:0 auto;padding:2.5rem 2rem}.hero-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2.5rem}.hero-stat-card{background:#fff;border-radius:24px;padding:2rem;display:flex;align-items:center;gap:1.5rem;box-shadow:0 8px 32px #00000014;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.hero-stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#ef4444,#f97316)}.hero-stat-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 16px 48px #0000001f}.hero-stat-card.gradient-red:before{background:linear-gradient(90deg,#ef4444,#dc2626)}.hero-stat-card.gradient-orange:before{background:linear-gradient(90deg,#f97316,#ea580c)}.hero-stat-card.gradient-purple:before{background:linear-gradient(90deg,#8b5cf6,#7c3aed)}.hero-stat-card.gradient-blue:before{background:linear-gradient(90deg,#06b6d4,#0891b2)}.hero-stat-icon{width:80px;height:80px;border-radius:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.gradient-red .hero-stat-icon{background:linear-gradient(135deg,#ef44441a,#dc262626);color:#ef4444}.gradient-orange .hero-stat-icon{background:linear-gradient(135deg,#f973161a,#ea580c26);color:#f97316}.gradient-purple .hero-stat-icon{background:linear-gradient(135deg,#8b5cf61a,#7c3aed26);color:#8b5cf6}.gradient-blue .hero-stat-icon{background:linear-gradient(135deg,#06b6d41a,#0891b226);color:#06b6d4}.hero-stat-content{flex:1}.hero-stat-content h2{font-size:2.75rem;font-weight:800;background:linear-gradient(135deg,#ef4444,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;line-height:1}.hero-stat-content p{color:#64748b;font-size:1rem;font-weight:600;margin:.5rem 0 .75rem;text-transform:uppercase;letter-spacing:.5px}.stat-sparkle{display:flex;align-items:center;gap:.4rem;color:#94a3b8;font-size:.8rem;font-weight:500}.stat-sparkle svg{color:#fbbf24}.ai-insights-section{background:#fff;border-radius:24px;padding:2rem;margin-bottom:2.5rem;box-shadow:0 8px 32px #00000014}.section-title-bar{display:flex;align-items:center;gap:.75rem;color:#ef4444;font-weight:700;font-size:1.25rem;margin-bottom:1.5rem}.section-title-bar svg{width:28px;height:28px}.section-title-bar h2{margin:0;font-size:1.5rem;background:linear-gradient(135deg,#ef4444,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.badge-count{background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:700;margin-left:auto}.insights-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.insight-card{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-radius:16px;padding:1.5rem;display:flex;gap:1rem;border-left:4px solid #ef4444;transition:all .3s cubic-bezier(.4,0,.2,1)}.insight-card:hover{transform:translate(6px);box-shadow:0 8px 24px #ef444426}.insight-card.insight-critical{background:linear-gradient(135deg,#fee2e2,#fecaca);border-left-color:#dc2626}.insight-card.insight-info{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-left-color:#3b82f6}.insight-card.insight-insight{background:linear-gradient(135deg,#f3e8ff,#e9d5ff);border-left-color:#8b5cf6}.insight-card.insight-research{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-left-color:#10b981}.insight-icon{font-size:2.5rem;line-height:1}.insight-content h3{margin:0 0 .5rem;color:#1e293b;font-size:1.1rem;font-weight:700}.insight-content p{margin:0;color:#475569;font-size:.9rem;line-height:1.5}.analytics-section{background:#fff;border-radius:24px;padding:2rem;margin-bottom:2.5rem;box-shadow:0 8px 32px #00000014}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.chart-card{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:16px;padding:1.5rem;box-shadow:0 4px 16px #0000000d;transition:all .3s cubic-bezier(.4,0,.2,1)}.chart-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001a}.chart-card-wide{grid-column:1 / -1}.chart-card h3{margin:0 0 1.25rem;color:#1e293b;font-size:1.15rem;font-weight:700}.pending-reviews-modern{background:#fff;border-radius:24px;padding:2rem;margin-bottom:2.5rem;box-shadow:0 8px 32px #00000014}.appointments-modern-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.25rem}.appointment-modern-card{background:linear-gradient(135deg,#fefefe,#fafafa);border-radius:18px;padding:1.5rem;border:2px solid #fee2e2;transition:all .3s cubic-bezier(.4,0,.2,1)}.appointment-modern-card:hover{border-color:#ef4444;transform:translateY(-4px);box-shadow:0 12px 32px #ef444426}.appointment-modern-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.patient-avatar-modern{width:50px;height:50px;border-radius:15px;background:linear-gradient(135deg,#ef4444,#f97316);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:1.25rem;box-shadow:0 4px 12px #ef44444d;flex-shrink:0}.patient-info-modern h4{margin:0 0 .35rem;color:#1e293b;font-size:1.1rem;font-weight:700}.appointment-date-modern{display:flex;align-items:center;gap:.4rem;color:#64748b;font-size:.85rem;font-weight:500;margin:0}.appointment-details-modern{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.detail-badge{display:flex;align-items:center;gap:.4rem;background:#ef444414;padding:.4rem .85rem;border-radius:10px;color:#ef4444;font-size:.85rem;font-weight:600}.detail-badge svg{width:16px;height:16px}.appointment-actions-modern{display:flex;gap:.75rem}.btn-modern{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;border:none;border-radius:12px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:.9rem}.btn-approve-modern{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 12px #10b9814d}.btn-approve-modern:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.btn-reschedule-modern{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 4px 12px #f59e0b4d}.btn-reschedule-modern:hover{transform:translateY(-2px);box-shadow:0 6px 20px #f59e0b66}.reports-section-modern{animation:fadeIn .6s ease}.section-header-modern{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1.5rem}.search-bar-modern{display:flex;align-items:center;gap:.75rem;background:#fff;padding:.85rem 1.5rem;border-radius:16px;border:2px solid #fee2e2;min-width:350px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #0000000d}.search-bar-modern:focus-within{border-color:#ef4444;box-shadow:0 0 0 4px #ef44441a}.search-bar-modern svg{color:#ef4444;flex-shrink:0}.search-bar-modern input{border:none;background:transparent;outline:none;flex:1;font-size:1rem;color:#1e293b;font-weight:500}.search-bar-modern input::placeholder{color:#94a3b8}.patient-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem}.patient-card-modern{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 8px 24px #00000014;transition:all .3s cubic-bezier(.4,0,.2,1)}.patient-card-modern:hover{transform:translateY(-6px);box-shadow:0 16px 40px #0000001f}.patient-card-header{padding:1.75rem;display:flex;align-items:center;gap:1.25rem;cursor:pointer;background:linear-gradient(135deg,#fff,#fef2f2);border-bottom:2px solid #fee2e2;transition:background .3s ease}.patient-card-header:hover{background:linear-gradient(135deg,#fef2f2,#fee2e2)}.patient-avatar-large{width:60px;height:60px;border-radius:18px;background:linear-gradient(135deg,#ef4444,#f97316);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:1.75rem;box-shadow:0 6px 20px #ef444459;flex-shrink:0}.patient-header-info{flex:1}.patient-header-info h3{margin:0 0 .4rem;color:#1e293b;font-size:1.35rem;font-weight:800}.patient-header-info p{margin:0 0 .75rem;color:#64748b;font-size:.9rem}.patient-stats-badges{display:flex;gap:.5rem;flex-wrap:wrap}.stat-badge{background:#ef44441a;color:#ef4444;padding:.35rem .85rem;border-radius:10px;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.stat-badge-success{background:#10b9811a;color:#10b981}.stat-badge-info{background:#06b6d41a;color:#06b6d4}.stat-badge-purple{background:#8b5cf61a;color:#8b5cf6}.expand-icon{color:#ef4444;transition:transform .3s ease}.patient-reports-expanded{padding:1.5rem;background:#fafafa;display:flex;flex-direction:column;gap:1rem}.report-item-modern{background:#fff;border-radius:14px;padding:1.25rem;border-left:4px solid #ef4444;transition:all .3s cubic-bezier(.4,0,.2,1)}.report-item-modern.report-cbc{border-left-color:#06b6d4}.report-item-modern.report-hplc{border-left-color:#8b5cf6}.report-item-modern:hover{transform:translate(6px);box-shadow:0 6px 20px #00000014}.report-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.report-header-left{display:flex;align-items:center;gap:.75rem}.report-type-badge{display:flex;align-items:center;gap:.4rem;padding:.4rem .85rem;border-radius:10px;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.badge-cbc{background:#06b6d426;color:#0891b2}.badge-hplc{background:#8b5cf626;color:#7c3aed}.report-date-modern{color:#64748b;font-size:.85rem;font-weight:600}.report-status-modern{padding:.35rem .85rem;border-radius:10px;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.status-completed{background:#d1fae5;color:#065f46}.status-pending{background:#fef3c7;color:#92400e}.status-processing{background:#dbeafe;color:#1e40af}.report-item-details{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1rem}.report-detail-row{display:flex;justify-content:space-between;font-size:.9rem}.report-detail-row strong{color:#475569;font-weight:600}.report-detail-row span{color:#1e293b;font-weight:700}.report-detail-full{grid-column:1 / -1;padding-top:.5rem}.report-detail-full strong{color:#475569;font-weight:600;display:block;margin-bottom:.5rem}.report-detail-full p{color:#1e293b;font-size:.9rem;line-height:1.5;margin:0}.report-detail-full.doctor-reviewed{background:linear-gradient(135deg,#f0fdf4,#dcfce7);padding:.75rem;border-radius:8px;border-left:3px solid #10b981}.report-actions-row{display:flex;gap:.75rem;align-items:center}.btn-download-modern{flex:1;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;padding:.85rem;border-radius:12px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:.95rem;display:flex;align-items:center;justify-content:center;gap:.6rem;box-shadow:0 4px 12px #ef44444d}.btn-download-modern:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #ef444466}.btn-download-modern:disabled{opacity:.5;cursor:not-allowed;transform:none}.status-submitted{background:#dbeafe;color:#1e40af}.status-reviewed{background:#d1fae5;color:#065f46}.profile-section-modern{display:flex;justify-content:center;align-items:center;min-height:60vh}.profile-card-modern{background:#fff;border-radius:28px;padding:3rem;max-width:800px;width:100%;box-shadow:0 16px 48px #0000001a}.profile-header-modern{text-align:center;margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:2px solid #fee2e2}.profile-avatar-modern{width:120px;height:120px;margin:0 auto 1.5rem;border-radius:28px;background:linear-gradient(135deg,#ef4444,#f97316);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 32px #ef444459;color:#fff}.profile-header-modern h2{font-size:2.25rem;color:#1e293b;margin:.5rem 0;font-weight:800}.profile-role-modern{color:#ef4444;font-size:1.1rem;font-weight:700;text-transform:uppercase;letter-spacing:1px}.profile-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.25rem;margin-bottom:2.5rem}.profile-stat-item{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-radius:16px;padding:1.5rem;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1)}.profile-stat-item:hover{transform:translateY(-4px);box-shadow:0 8px 20px #ef444426}.profile-stat-icon{width:50px;height:50px;margin:0 auto 1rem;border-radius:14px;background:linear-gradient(135deg,#ef44441a,#f9731626);display:flex;align-items:center;justify-content:center;color:#ef4444}.profile-stat-content h3{font-size:2rem;font-weight:800;background:linear-gradient(135deg,#ef4444,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 .35rem}.profile-stat-content p{margin:0;color:#64748b;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.profile-details-modern{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.detail-row-modern{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;background:#f8fafc;border-radius:12px;border-left:4px solid #ef4444}.label-modern{font-weight:700;color:#475569;font-size:.95rem}.value-modern{color:#1e293b;font-weight:700;font-size:1rem}.btn-logout-modern{width:100%;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;padding:1.15rem;border-radius:14px;font-weight:700;font-size:1.1rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 6px 20px #ef44444d}.btn-logout-modern:hover{transform:translateY(-2px);box-shadow:0 8px 28px #ef444466}.modal-overlay-modern{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;animation:fadeIn .3s ease}.modal-modern{background:#fff;border-radius:24px;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #0000004d;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.modal-header-modern{display:flex;justify-content:space-between;align-items:center;padding:1.75rem 2rem;background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;border-radius:24px 24px 0 0}.modal-header-modern h2{margin:0;font-size:1.5rem;font-weight:800}.close-btn-modern{background:#fff3;border:none;color:#fff;cursor:pointer;padding:.5rem;border-radius:10px;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.close-btn-modern:hover{background:#ffffff4d;transform:rotate(90deg)}.modal-body-modern{padding:2rem}.patient-summary-modern{background:linear-gradient(135deg,#fef2f2,#fee2e2);padding:1.5rem;border-radius:16px;margin-bottom:2rem;border-left:4px solid #ef4444}.patient-summary-modern h3{margin:0 0 .5rem;color:#991b1b;font-size:1.35rem;font-weight:800}.patient-summary-modern p{margin:.35rem 0;color:#475569;font-size:.95rem}.form-modern{display:flex;flex-direction:column;gap:1.5rem}.form-group-modern{display:flex;flex-direction:column;gap:.6rem}.form-group-modern label{font-weight:700;color:#1e293b;font-size:.95rem}.form-group-modern input,.form-group-modern select,.form-group-modern textarea{padding:.95rem;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;transition:all .3s cubic-bezier(.4,0,.2,1);font-family:inherit}.form-group-modern input:focus,.form-group-modern select:focus,.form-group-modern textarea:focus{outline:none;border-color:#ef4444;box-shadow:0 0 0 4px #ef44441a}.form-group-modern textarea{resize:vertical;min-height:100px}.modal-actions-modern{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem;border-top:2px solid #e2e8f0}.btn-cancel-modern{padding:.95rem 1.75rem;background:#e2e8f0;color:#475569;border:none;border-radius:12px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:.95rem}.btn-cancel-modern:hover{background:#cbd5e1;transform:translateY(-1px)}.btn-approve-final-modern,.btn-reschedule-final-modern{padding:.95rem 1.75rem;border:none;border-radius:12px;color:#fff;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:.95rem;display:flex;align-items:center;gap:.5rem}.btn-approve-final-modern{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 12px #10b9814d}.btn-approve-final-modern:hover{transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.btn-reschedule-final-modern{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 4px 12px #f59e0b4d}.btn-reschedule-final-modern:hover{transform:translateY(-2px);box-shadow:0 6px 20px #f59e0b66}.loading-container-modern{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#fef2f2,#fee2e2,#fef2f2);color:#1e293b}.loading-spinner-modern{border:5px solid rgba(239,68,68,.1);border-top:5px solid #ef4444;border-radius:50%;width:70px;height:70px;animation:spin 1s linear infinite;margin-bottom:1.5rem}.loading-container-modern p{font-size:1.15rem;font-weight:600;color:#64748b}.empty-state-modern{text-align:center;padding:5rem 2rem;color:#94a3b8}.empty-state-modern svg{color:#cbd5e1;margin-bottom:1.5rem}.empty-state-modern h3{font-size:1.5rem;color:#64748b;font-weight:700;margin:0 0 .75rem}.empty-state-modern p{font-size:1rem;font-weight:500;margin:0}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1024px){.charts-grid{grid-template-columns:1fr}.chart-card-wide{grid-column:1}}@media (max-width: 768px){.portal-header-modern{padding:1rem}.header-content-modern{flex-direction:column;gap:1rem;align-items:flex-start}.header-user-section{width:100%;justify-content:space-between}.portal-nav-modern{padding:.5rem 1rem;gap:.5rem;top:auto;position:relative}.nav-btn-modern{padding:.75rem 1.25rem;font-size:.85rem}.portal-content-modern{padding:1.5rem 1rem}.hero-stats-grid,.appointments-modern-grid,.patient-cards-grid{grid-template-columns:1fr}.search-bar-modern{min-width:100%}.section-header-modern{flex-direction:column;align-items:stretch}.profile-card-modern{padding:2rem 1.5rem}.modal-overlay-modern{padding:1rem}.modal-actions-modern{flex-direction:column}.modal-actions-modern button{width:100%}}@media (max-width: 480px){.header-title-group h1{font-size:1.35rem}.hero-stat-card{flex-direction:column;text-align:center}.hero-stat-icon{margin:0 auto}.hero-stat-content h2{font-size:2.25rem}.insights-grid,.report-item-details{grid-template-columns:1fr}.profile-header-modern h2{font-size:1.75rem}}.ai-analysis-cta{margin-bottom:2.5rem}.btn-ai-analysis{width:100%;background:linear-gradient(135deg,#8b5cf6,#7c3aed,#6d28d9);border:none;border-radius:20px;padding:2rem 2.5rem;display:flex;align-items:center;gap:1.5rem;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 10px 40px #8b5cf64d;position:relative;overflow:hidden}.btn-ai-analysis:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.btn-ai-analysis:hover:before{left:100%}.btn-ai-analysis:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 16px 56px #8b5cf666}.btn-ai-analysis:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-ai-analysis svg{width:48px;height:48px;color:#fff;flex-shrink:0;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.btn-ai-content{flex:1;text-align:left}.btn-ai-content h3{margin:0 0 .5rem;font-size:1.5rem;font-weight:800;color:#fff;letter-spacing:-.5px}.btn-ai-content p{margin:0;font-size:1rem;color:#ffffffe6;font-weight:500;line-height:1.4}.modal-overlay-ai{z-index:1100}.modal-ai-analysis{background:#fff;border-radius:28px;max-width:1200px;width:100%;max-height:92vh;overflow-y:auto;box-shadow:0 32px 80px #00000059;animation:slideUp .4s cubic-bezier(.4,0,.2,1)}.modal-header-ai{display:flex;justify-content:space-between;align-items:center;padding:2rem 2.5rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed,#6d28d9);color:#fff;border-radius:28px 28px 0 0;position:sticky;top:0;z-index:10}.header-ai-left{display:flex;align-items:center;gap:1.25rem}.header-ai-left svg{flex-shrink:0;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.modal-header-ai h2{margin:0;font-size:1.75rem;font-weight:800;letter-spacing:-.5px}.ai-subtitle{margin:.4rem 0 0;font-size:.9rem;color:#ffffffd9;font-weight:500}.modal-body-ai{padding:2.5rem;display:flex;flex-direction:column;gap:2.5rem}.ai-section{background:linear-gradient(135deg,#fefefe,#fafafa);border-radius:20px;padding:2rem;border:2px solid #f3e8ff;transition:all .3s ease}.ai-section:hover{border-color:#8b5cf6;box-shadow:0 8px 24px #8b5cf61f}.ai-section-title{display:flex;align-items:center;gap:.75rem;color:#8b5cf6;font-size:1.35rem;font-weight:800;margin:0 0 1.75rem;padding-bottom:1rem;border-bottom:2px solid #f3e8ff}.ai-section-title svg{flex-shrink:0}.ai-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-bottom:2rem}.ai-stat-card{background:#fff;border-radius:16px;padding:1.5rem;text-align:center;border:2px solid #f3e8ff;transition:all .3s cubic-bezier(.4,0,.2,1)}.ai-stat-card:hover{transform:translateY(-4px);border-color:#8b5cf6;box-shadow:0 8px 20px #8b5cf626}.ai-stat-label{display:block;font-size:.85rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.75rem}.ai-stat-value{display:block;font-size:2.5rem;font-weight:800;background:linear-gradient(135deg,#8b5cf6,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2}.ai-stat-value.trend{font-size:1.1rem;color:#10b981;-webkit-text-fill-color:#10b981}.age-distribution{background:#fff;border-radius:16px;padding:1.75rem;border:2px solid #f3e8ff}.age-distribution h4{margin:0 0 1.5rem;color:#1e293b;font-size:1.1rem;font-weight:700}.age-bars{display:flex;flex-direction:column;gap:1rem}.age-bar-item{display:grid;grid-template-columns:180px 1fr 60px;align-items:center;gap:1rem}.age-label{font-size:.9rem;font-weight:600;color:#475569}.age-bar-container{background:#f1f5f9;border-radius:10px;height:28px;overflow:hidden;box-shadow:inset 0 2px 4px #0000000d}.age-bar-fill{height:100%;background:linear-gradient(90deg,#8b5cf6,#ec4899);border-radius:10px;transition:width .6s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #8b5cf64d}.age-count{font-size:1.1rem;font-weight:800;color:#8b5cf6;text-align:right}.hbf-overview{display:grid;grid-template-columns:280px 1fr;gap:2rem}.hbf-avg-card{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-radius:18px;padding:2rem;text-align:center;color:#fff;box-shadow:0 8px 24px #8b5cf659;display:flex;flex-direction:column;justify-content:center;gap:.75rem}.hbf-label{font-size:.9rem;font-weight:600;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.hbf-value{font-size:4rem;font-weight:900;line-height:1;text-shadow:0 4px 12px rgba(0,0,0,.2)}.hbf-coverage{font-size:.85rem;opacity:.85;font-weight:500}.hbf-distribution{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.hbf-range-card{background:#fff;border-radius:14px;padding:1.5rem;border-left:4px solid #94a3b8;transition:all .3s cubic-bezier(.4,0,.2,1)}.hbf-range-card:hover{transform:translate(6px);box-shadow:0 6px 20px #0000001a}.hbf-range-card.critical{border-left-color:#dc2626;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.hbf-range-card.warning{border-left-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.hbf-range-card.success{border-left-color:#10b981;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.hbf-range-label{display:block;font-size:.85rem;font-weight:700;color:#475569;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.3px}.hbf-range-count{display:block;font-size:1.75rem;font-weight:800;color:#1e293b}.transfusion-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.transfusion-stat-item{background:#fff;border-radius:14px;padding:1.75rem;border:2px solid #f3e8ff;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1)}.transfusion-stat-item:hover{transform:translateY(-4px);border-color:#8b5cf6;box-shadow:0 8px 20px #8b5cf626}.transfusion-stat-item .label{display:block;font-size:.85rem;font-weight:600;color:#64748b;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.5px}.transfusion-stat-item .value{display:block;font-size:2.25rem;font-weight:800;background:linear-gradient(135deg,#ef4444,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.risk-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.risk-card{background:#fff;border-radius:16px;padding:2rem;text-align:center;border:3px solid;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.risk-card:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:currentColor}.risk-card:hover{transform:translateY(-6px);box-shadow:0 12px 32px #00000026}.risk-card.risk-high-risk{border-color:#dc2626;color:#dc2626;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.risk-card.risk-moderate-risk{border-color:#f59e0b;color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.risk-card.risk-low-risk{border-color:#10b981;color:#10b981;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.risk-count{display:block;font-size:3.5rem;font-weight:900;line-height:1;margin-bottom:.75rem}.risk-label{display:block;font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.insights-list{display:flex;flex-direction:column;gap:1.25rem}.insight-card-ai{background:#fff;border-radius:16px;padding:1.75rem;display:flex;gap:1.25rem;border-left:5px solid;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #0000000f}.insight-card-ai:hover{transform:translate(8px);box-shadow:0 8px 24px #0000001f}.insight-card-ai.insight-critical{border-left-color:#dc2626;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.insight-card-ai.insight-warning{border-left-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.insight-card-ai.insight-info{border-left-color:#3b82f6;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.insight-card-ai.insight-research{border-left-color:#8b5cf6;background:linear-gradient(135deg,#f3e8ff,#e9d5ff)}.insight-card-ai.insight-success{border-left-color:#10b981;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.insight-card-ai.insight-insight{border-left-color:#06b6d4;background:linear-gradient(135deg,#ecfeff,#cffafe)}.insight-icon-ai{font-size:3rem;line-height:1;flex-shrink:0}.insight-content-ai{flex:1}.insight-content-ai h4{margin:0 0 .75rem;color:#1e293b;font-size:1.2rem;font-weight:800}.insight-description{margin:0 0 .75rem;color:#475569;font-size:.95rem;line-height:1.6}.insight-action{margin:0;color:#1e293b;font-size:.9rem;padding:.75rem;background:#fff9;border-radius:8px;border-left:3px solid currentColor}.insight-action strong{color:#8b5cf6;font-weight:700}.recommendations-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.recommendation-item{display:flex;align-items:start;gap:1rem;padding:1.25rem;background:#fff;border-radius:12px;border:2px solid #f3e8ff;transition:all .3s cubic-bezier(.4,0,.2,1)}.recommendation-item:hover{border-color:#10b981;background:linear-gradient(135deg,#f0fdf4,#dcfce7);transform:translate(6px)}.recommendation-item svg{width:24px;height:24px;color:#10b981;flex-shrink:0;margin-top:2px}.recommendation-item span{flex:1;color:#1e293b;font-size:1rem;font-weight:600;line-height:1.6}.ai-section-footer{background:linear-gradient(135deg,#1e293b,#334155);color:#fff;border-color:#475569}.ai-section-footer h4{margin:0 0 1.25rem;color:#fff;font-size:1.15rem;font-weight:700}.data-quality-badges{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.quality-badge{background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.75rem 1.25rem;border-radius:12px;font-size:.9rem;font-weight:700;border:1px solid rgba(255,255,255,.2)}.data-disclaimer{margin:0;font-size:.85rem;line-height:1.6;color:#fffc;font-style:italic;padding:1rem;background:#0003;border-radius:10px;border-left:3px solid #fbbf24}.ai-loading-card{background:#fff;border-radius:24px;padding:3rem 2.5rem;text-align:center;max-width:500px;box-shadow:0 24px 64px #0000004d;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}.ai-loading-spinner{border:6px solid rgba(139,92,246,.15);border-top:6px solid #8b5cf6;border-radius:50%;width:80px;height:80px;animation:spin 1s linear infinite;margin:0 auto 1.75rem}.ai-loading-card h3{margin:0 0 .75rem;font-size:1.5rem;font-weight:800;background:linear-gradient(135deg,#8b5cf6,#ec4899);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.ai-loading-card p{margin:0;color:#64748b;font-size:1rem;line-height:1.5}@media (max-width: 1024px){.hbf-overview,.risk-cards{grid-template-columns:1fr}}@media (max-width: 768px){.modal-ai-analysis{max-width:100%;border-radius:20px;max-height:95vh}.modal-header-ai{padding:1.5rem;border-radius:20px 20px 0 0}.modal-header-ai h2{font-size:1.35rem}.header-ai-left{gap:1rem}.header-ai-left svg{width:32px;height:32px}.modal-body-ai{padding:1.5rem;gap:2rem}.ai-stats-grid{grid-template-columns:1fr 1fr}.age-bar-item{grid-template-columns:120px 1fr 50px;gap:.75rem}.age-label{font-size:.8rem}.hbf-distribution,.transfusion-stats{grid-template-columns:1fr}.btn-ai-analysis{padding:1.5rem;flex-direction:column;text-align:center}.btn-ai-content{text-align:center}.btn-ai-content h3{font-size:1.25rem}.btn-ai-content p{font-size:.9rem}}@media (max-width: 480px){.ai-stats-grid{grid-template-columns:1fr}.ai-stat-value{font-size:2rem}.hbf-value{font-size:3rem}.risk-count{font-size:2.5rem}.insight-card-ai{flex-direction:column;text-align:center}.insight-icon-ai{font-size:2.5rem}}.quality-improvement-list{display:flex;flex-direction:column;gap:16px}.quality-improvement-card{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-left:4px solid #0ea5e9;border-radius:12px;padding:20px}.quality-improvement-card h4{color:#0369a1;margin-bottom:16px;font-size:18px;font-weight:600}.qi-detail{margin-bottom:12px}.qi-detail strong{color:#0c4a6e;display:block;margin-bottom:4px}.qi-detail p{color:#475569;line-height:1.6}.qi-impact{background:#0ea5e91a;padding:12px;border-radius:8px;margin-top:12px}.research-opportunities-list{display:flex;flex-direction:column;gap:16px}.research-opportunity-card{background:linear-gradient(135deg,#faf5ff,#f3e8ff);border-left:4px solid #a855f7;border-radius:12px;padding:20px}.research-opportunity-card h4{color:#7e22ce;margin-bottom:16px;font-size:18px;font-weight:600;line-height:1.4}.research-detail{margin-bottom:12px}.research-detail strong{color:#581c87;display:block;margin-bottom:4px}.research-detail p{color:#475569;line-height:1.6}.research-collab{background:#a855f71a;padding:12px;border-radius:8px;margin-top:12px}.insight-affected,.insight-evidence{margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.1);font-size:14px}.priority-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;margin-right:8px;text-transform:uppercase}.priority-urgent{background:#fee2e2;color:#991b1b}.priority-high{background:#fed7aa;color:#9a3412}.priority-medium{background:#fef3c7;color:#92400e}.priority-low{background:#d1fae5;color:#065f46}.rec-rationale{margin-left:30px;margin-top:6px;font-size:13px;color:#64748b;font-style:italic}.calendar-section{animation:fadeIn .6s ease}.calendar-header-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1.5rem;background:#fff;border-radius:20px;box-shadow:0 4px 16px #0000000f}.calendar-month-display h2{margin:0;font-size:1.75rem;font-weight:800;background:linear-gradient(135deg,#ef4444,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.calendar-nav-buttons{display:flex;gap:.75rem}.btn-calendar-nav,.btn-calendar-today{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#fff;border:2px solid #fee2e2;border-radius:12px;color:#ef4444;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:.9rem}.btn-calendar-nav:hover,.btn-calendar-today:hover{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#ef4444;transform:translateY(-2px);box-shadow:0 4px 12px #ef444426}.btn-calendar-nav svg{width:18px;height:18px}.btn-calendar-today{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-color:#ef4444}.btn-calendar-today:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-2px) scale(1.02)}.calendar-grid-container{background:#fff;border-radius:20px;padding:2rem;box-shadow:0 8px 32px #00000014;margin-bottom:2rem}.calendar-weekday-headers{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #fee2e2}.calendar-weekday-header{text-align:center;font-weight:700;font-size:.85rem;color:#ef4444;text-transform:uppercase;letter-spacing:.5px}.calendar-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem}.calendar-day-cell{min-height:120px;background:linear-gradient(135deg,#fefefe,#fafafa);border:2px solid #f1f5f9;border-radius:14px;padding:.75rem;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.calendar-day-cell:hover{border-color:#fee2e2;box-shadow:0 4px 16px #ef44441a;transform:translateY(-2px)}.calendar-day-cell.empty-day{background:transparent;border-color:transparent}.calendar-day-cell.empty-day:hover{background:transparent;box-shadow:none;transform:none}.calendar-day-cell.today{border-color:#ef4444;border-width:3px;background:linear-gradient(135deg,#fef2f2,#fee2e2);box-shadow:0 6px 20px #ef444433}.calendar-day-cell.today .calendar-day-number{background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:10px;font-weight:800;box-shadow:0 4px 12px #ef44444d}.calendar-day-number{font-size:1rem;font-weight:700;color:#1e293b;margin-bottom:.5rem}.calendar-day-appointments{display:flex;flex-direction:column;gap:.35rem}.calendar-appointment-item{background:#fff;border-radius:8px;padding:.4rem .6rem;font-size:.75rem;border-left:3px solid #94a3b8;transition:all .2s ease;cursor:pointer}.calendar-appointment-item:hover{transform:translate(3px);box-shadow:0 2px 8px #0000001a}.calendar-appointment-item.status-in_review{border-left-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.calendar-appointment-item.status-scheduled{border-left-color:#3b82f6;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.calendar-appointment-item.status-in_progress{border-left-color:#8b5cf6;background:linear-gradient(135deg,#f3e8ff,#e9d5ff)}.calendar-appointment-item.status-completed{border-left-color:#10b981;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.appointment-time{font-weight:700;color:#1e293b;margin-bottom:.15rem}.appointment-patient{font-weight:600;color:#64748b;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-more-appointments{font-size:.7rem;font-weight:700;color:#ef4444;text-align:center;padding:.3rem;background:#ef444414;border-radius:6px;margin-top:.25rem}.calendar-legend{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 16px #0000000f}.calendar-legend h3{margin:0 0 1rem;font-size:1.1rem;font-weight:700;color:#1e293b}.legend-items{display:flex;gap:1.5rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-dot{width:16px;height:16px;border-radius:4px;border-left:3px solid currentColor}.legend-dot.status-in_review{color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.legend-dot.status-scheduled{color:#3b82f6;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.legend-dot.status-in_progress{color:#8b5cf6;background:linear-gradient(135deg,#f3e8ff,#e9d5ff)}.legend-dot.status-completed{color:#10b981;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.legend-item span{font-size:.85rem;font-weight:600;color:#475569}@media (max-width: 1024px){.calendar-day-cell{min-height:100px}.calendar-header-controls{flex-direction:column;gap:1rem;align-items:stretch}.calendar-month-display{text-align:center}.calendar-nav-buttons{justify-content:center}}@media (max-width: 768px){.calendar-grid-container{padding:1rem}.calendar-weekday-header{font-size:.7rem}.calendar-days-grid{gap:.5rem}.calendar-day-cell{min-height:80px;padding:.5rem}.calendar-day-number{font-size:.85rem}.appointment-time,.appointment-patient{font-size:.65rem}.legend-items{flex-direction:column;gap:.75rem}}@media (max-width: 480px){.calendar-weekday-header{font-size:.65rem}.calendar-day-cell{min-height:60px;padding:.35rem}.calendar-day-appointments{gap:.25rem}.calendar-appointment-item{padding:.25rem .4rem}.btn-calendar-nav,.btn-calendar-today{padding:.6rem 1rem;font-size:.8rem}}@media (max-width: 768px){.doctor-portal-modern{overflow-x:hidden;width:100%}.portal-header-modern{padding:.75rem 1rem;position:fixed;top:0;left:0;right:0;z-index:1000}.header-content-modern{flex-wrap:wrap;gap:.75rem}.header-logo-section{flex:1;min-width:0}.portal-logo-modern{height:40px}.header-title-group h1{font-size:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-title-group p{display:none}.header-user-section{gap:.75rem}.user-info-modern{display:none}.btn-logout-header{padding:.5rem 1rem;font-size:.8rem}.portal-nav-modern{position:fixed;bottom:0;left:0;right:0;top:auto;padding:.5rem;border-radius:20px 20px 0 0;z-index:1000;display:flex;justify-content:space-around;box-shadow:0 -4px 20px #0000001a;background:#fffffffa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.nav-btn-modern{flex-direction:column;padding:.5rem;font-size:.65rem;gap:.25rem;border-radius:12px;flex:1;max-width:80px}.nav-btn-modern svg{width:22px;height:22px}.nav-btn-modern span{font-size:.6rem;line-height:1.1;text-align:center}.portal-content-modern{padding:70px .75rem 90px;min-height:100vh}.hero-stats-grid{grid-template-columns:1fr;gap:.75rem}.hero-stat-card{padding:1rem;flex-direction:row;align-items:center;gap:1rem}.hero-stat-icon{width:50px;height:50px;flex-shrink:0}.hero-stat-icon svg{width:24px;height:24px}.hero-stat-content{text-align:left}.hero-stat-content h2{font-size:1.75rem;margin-bottom:.1rem}.hero-stat-content p{font-size:.8rem;margin-bottom:.25rem}.stat-sparkle{font-size:.65rem}.ai-analysis-cta{margin-bottom:1.5rem}.btn-ai-analysis{padding:1.25rem 1rem;border-radius:16px;flex-direction:column;text-align:center;gap:.75rem}.btn-ai-analysis svg{width:32px;height:32px}.btn-ai-content h3{font-size:1rem}.btn-ai-content p{font-size:.75rem;display:none}.section-title-bar{padding:.75rem 1rem;margin-bottom:1rem}.section-title-bar h2{font-size:1rem}.section-title-bar svg{width:20px;height:20px}.ai-insights-section{margin-bottom:1.5rem}.insights-grid{grid-template-columns:1fr;gap:.75rem}.insight-card{padding:1rem;border-radius:14px}.insight-icon{font-size:1.5rem;width:40px;height:40px}.insight-content h3{font-size:.9rem}.insight-content p{font-size:.75rem;line-height:1.4}.analytics-section{margin-bottom:1.5rem}.charts-grid{grid-template-columns:1fr;gap:1rem}.chart-card{padding:1rem;border-radius:16px}.chart-card h3{font-size:.9rem;margin-bottom:.75rem}.chart-card .recharts-wrapper{font-size:.7rem}.appointments-modern-grid{grid-template-columns:1fr;gap:.75rem}.appointment-modern-card{padding:1rem;border-radius:16px}.patient-avatar-modern{width:44px;height:44px;font-size:1.1rem}.patient-info-modern h4{font-size:.95rem}.appointment-date-modern{font-size:.75rem}.appointment-details-modern{gap:.5rem;flex-wrap:wrap}.detail-badge{font-size:.7rem;padding:.35rem .6rem}.appointment-actions-modern{flex-direction:column;gap:.5rem}.appointment-actions-modern button{width:100%;padding:.75rem;font-size:.85rem}.patient-cards-grid{grid-template-columns:1fr;gap:.75rem}.patient-card-modern{border-radius:16px}.patient-card-header{padding:1rem;gap:.75rem}.patient-avatar-large{width:48px;height:48px;font-size:1.25rem;flex-shrink:0}.patient-header-info h3{font-size:.95rem}.patient-header-info p{font-size:.75rem}.patient-stats-badges{flex-wrap:wrap;gap:.35rem}.stat-badge{font-size:.65rem;padding:.25rem .5rem}.expand-icon svg{width:20px;height:20px}.patient-reports-expanded{padding:.75rem}.report-item{padding:.75rem;margin-bottom:.5rem}.report-item-header{flex-direction:column;gap:.5rem;align-items:flex-start}.report-type-badge{font-size:.65rem}.report-item-details{grid-template-columns:1fr 1fr;gap:.5rem}.detail-item{font-size:.7rem}.report-item-actions{flex-direction:row;flex-wrap:wrap;gap:.5rem}.report-item-actions button{flex:1;min-width:calc(50% - .25rem);padding:.6rem .75rem;font-size:.75rem}.section-header-modern{flex-direction:column;gap:.75rem}.search-bar-modern{width:100%;min-width:unset}.search-bar-modern input{font-size:.9rem}.profile-card-modern{padding:1.25rem;border-radius:20px}.profile-avatar-container{width:80px;height:80px}.profile-avatar-modern{width:80px;height:80px;font-size:2rem}.profile-header-modern h2{font-size:1.25rem}.profile-header-modern p{font-size:.8rem}.profile-stats-modern{flex-direction:column;gap:.75rem}.profile-stat-item{padding:1rem}.profile-stat-value{font-size:1.75rem}.profile-stat-label{font-size:.75rem}.modal-overlay-modern{padding:0;align-items:flex-end}.modal-modern{width:100%;max-width:100%;max-height:90vh;border-radius:24px 24px 0 0;margin:0}.modal-header-modern{padding:1.25rem 1rem;position:sticky;top:0;background:#fff;z-index:10}.modal-header-modern h2{font-size:1.1rem}.modal-body-modern{padding:1rem;max-height:calc(90vh - 180px);overflow-y:auto}.modal-actions-modern{padding:1rem;flex-direction:column;gap:.75rem;position:sticky;bottom:0;background:#fff;border-top:1px solid #f0f0f0}.modal-actions-modern button{width:100%;padding:1rem;font-size:.95rem}.form-group-modern{margin-bottom:1rem}.form-group-modern label{font-size:.85rem;margin-bottom:.35rem}.form-group-modern input,.form-group-modern textarea,.form-group-modern select{padding:.85rem;font-size:1rem;border-radius:12px}}@media (max-width: 375px){.portal-header-modern{padding:.5rem .75rem}.portal-logo-modern{height:32px}.header-title-group h1{font-size:.95rem}.btn-logout-header{padding:.4rem .75rem;font-size:.7rem}.nav-btn-modern{padding:.4rem;font-size:.55rem}.nav-btn-modern svg{width:18px;height:18px}.portal-content-modern{padding:65px .5rem 85px}.hero-stat-card{padding:.75rem}.hero-stat-content h2{font-size:1.5rem}.hero-stat-content p{font-size:.7rem}.btn-ai-analysis{padding:1rem}.btn-ai-content h3{font-size:.9rem}.appointment-modern-card{padding:.75rem}.patient-avatar-modern{width:38px;height:38px;font-size:.95rem}.patient-info-modern h4{font-size:.85rem}.detail-badge{font-size:.6rem;padding:.25rem .5rem}.modal-modern{max-height:95vh}.modal-header-modern h2{font-size:1rem}}@media (max-width: 768px) and (orientation: landscape){.portal-nav-modern{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.portal-nav-modern::-webkit-scrollbar{display:none}.nav-btn-modern{flex:0 0 auto}.hero-stats-grid{grid-template-columns:repeat(2,1fr)}.modal-modern{max-height:80vh}}@supports (padding-bottom: env(safe-area-inset-bottom)){@media (max-width: 768px){.portal-nav-modern{padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}.portal-content-modern{padding-bottom:calc(90px + env(safe-area-inset-bottom))}.modal-modern{padding-bottom:env(safe-area-inset-bottom)}}}@media (hover: none) and (pointer: coarse){.btn-modern,.nav-btn-modern,.appointment-modern-card,.patient-card-header,.insight-card{-webkit-tap-highlight-color:transparent}.btn-modern:active,.nav-btn-modern:active{transform:scale(.97);opacity:.9}.appointment-modern-card:active,.patient-card-header:active{transform:scale(.99)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.popup-content-container{background:#fff;border-radius:12px;padding:24px;max-width:600px;width:100%;box-shadow:0 4px 6px #0000001a}.popup-content-container.size-small{max-width:400px}.popup-content-container.size-large{max-width:800px}.popup-icon{margin-bottom:var(--spacing-md);color:var(--text-primary)}.popup-icon.warning{color:var(--warning-text)}.popup-icon.error{color:var(--error-text)}.popup-icon.success{color:var(--success-text)}.popup-icon.info{color:var(--info-text)}.popup-title{font-size:1.5rem;font-weight:600;margin-bottom:16px;color:#333}.popup-message{font-size:1rem;color:#666;margin-bottom:24px;line-height:1.5}.popup-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.popup-button{min-width:120px}.contact-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin:24px 0}.contact-info-item{text-align:center;padding:20px;background:#f8f9fa;border-radius:8px;transition:transform .2s}.contact-info-item:hover{transform:translateY(-2px)}.contact-icon{font-size:24px;color:#007bff;margin-bottom:14px}.contact-info-item h4{font-size:1.15rem;margin-bottom:10px;color:#333;font-weight:600}.contact-info-item p{margin:6px 0;color:#666;line-height:1.7}.small-text{font-size:.875rem;color:#888;margin-top:4px}.help-sections{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin:24px 0}.help-section{background:#f8f9fa;padding:16px;border-radius:8px}.help-section h4{font-size:1.1rem;margin-bottom:12px;color:#333}.help-list{list-style:none;padding:0;margin:0}.help-list li{padding:8px 0;color:#666;border-bottom:1px solid #eee}.help-list li:last-child{border-bottom:none}.report-form{margin:24px 0}.report-textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;resize:vertical;font-family:inherit;font-size:1rem;margin-bottom:16px}.report-textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff1a}.privacy-content{margin:24px 0}.privacy-content section{margin-bottom:28px}.privacy-content h4{font-size:1.15rem;margin-bottom:14px;color:#333;font-weight:600}.privacy-content p{color:#666;line-height:1.8;margin-bottom:12px}.popup-icon.warning{color:#ffc107;margin-bottom:16px}.help-popup{max-width:550px;padding:16px}.modal-icon.help-icon{color:#10b981;margin-bottom:8px}.modal-title{font-size:1.25rem;font-weight:700;margin-bottom:4px;color:#111827;text-align:center}.modal-description{font-size:.875rem;color:#6b7280;text-align:center;margin-bottom:20px;line-height:1.4}.faq-section{margin-top:16px}.faq-item{border:1px solid #e5e7eb;border-radius:10px;margin-bottom:12px;overflow:hidden;background:#fff;box-shadow:0 1px 3px #0000001a;transition:all .3s ease}.faq-item:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.faq-question{padding:12px 16px;font-weight:600;font-size:.95rem;color:#111827;cursor:pointer;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border:none;outline:none;display:flex;justify-content:space-between;align-items:center;transition:all .2s ease;list-style:none}.faq-question::marker{display:none}.faq-question::-webkit-details-marker{display:none}.faq-question:after{content:"+";font-size:1.25rem;font-weight:400;color:#10b981;transition:transform .3s ease;flex-shrink:0;margin-left:12px;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.faq-item[open] .faq-question:after{transform:rotate(45deg);color:#ef4444}.faq-item[open] .faq-question{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.faq-item[open] .faq-question:after{color:#fff}.faq-answer{padding:16px;font-size:.875rem;color:#374151;line-height:1.5;background:#fafafa;border-top:1px solid #e5e7eb;margin:0;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.popup-content-container{padding:1.5rem 1rem;width:90vw;max-width:400px}.popup-title{font-size:1.25rem}.popup-message,.popup-description,.faq-answer,.privacy-content p{font-size:.9rem}.contact-info-grid{grid-template-columns:1fr;gap:1rem}.popup-actions{flex-direction:column;gap:.75rem;width:100%}.popup-actions .popup-button{width:100%;text-align:center}.help-popup{max-width:90vw;padding:12px}.modal-icon.help-icon{font-size:28px}.modal-title{font-size:1.125rem}.modal-description{font-size:.8rem;margin-bottom:16px}.faq-item{margin-bottom:10px;border-radius:8px}.faq-question{padding:10px 12px;font-size:.875rem}.faq-question:after{font-size:1.125rem;margin-left:8px;width:18px;height:18px}.faq-answer{padding:12px;font-size:.8rem}}@media (max-width: 480px){.help-popup{padding:8px;max-width:85vw}.modal-title{font-size:1rem}.modal-description{font-size:.75rem;margin-bottom:12px}.faq-question{padding:8px 10px;font-size:.8rem}.faq-question:after{font-size:1rem;margin-left:6px;width:16px;height:16px}.faq-answer{padding:10px;font-size:.75rem}}.modern-header{position:fixed;top:0;left:0;right:0;height:72px;background:var(--surface);border-bottom:1px solid var(--border-light);z-index:9999!important;box-shadow:0 1px 3px #0000001a;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);width:100%;box-sizing:border-box}.header-container{display:flex;align-items:center;justify-content:space-between;height:100%;max-width:1400px;margin:0 auto;padding:0 24px}.header-left{display:flex;align-items:center;flex:0 0 auto}.app-branding{display:flex;align-items:center;gap:16px;cursor:pointer;transition:all .2s ease;padding:8px 12px;border-radius:12px}.app-branding:hover{background:#dc26260d}.app-logo{width:48px;height:48px;background:transparent;border-radius:0;display:flex;align-items:center;justify-content:center}.app-logo img{width:100%;height:100%;object-fit:contain}.app-info{display:flex;flex-direction:column;gap:2px}.app-title{font-size:20px;font-weight:700;color:#1f2937;margin:0;letter-spacing:-.3px;line-height:1}.app-subtitle{font-size:13px;font-weight:500;color:#6b7280;letter-spacing:.2px}.header-center{flex:1;display:flex;justify-content:center;max-width:500px;margin:0 32px}.search-container{position:relative;width:100%;max-width:400px}.search-input{width:100%;height:48px;padding:0 24px 0 52px;background:var(--surface-tertiary);border:1px solid var(--border-light);border-radius:24px;font-size:16px;color:var(--text-primary);outline:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.search-input::placeholder{color:var(--text-tertiary);font-weight:500}.search-input:focus{background:var(--surface-elevated);border-color:var(--primary);box-shadow:0 0 0 3px #dc26261a}.search-icon-btn{position:absolute;left:16px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:6px;border-radius:6px;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.search-icon-btn:hover{color:var(--primary);background:#dc26261a}.search-icon{width:18px;height:18px}.header-right{display:flex;align-items:center;gap:12px;flex:0 0 auto}.header-action-btn{position:relative;width:48px;height:48px;background:var(--surface-tertiary);border:1px solid var(--border-light);border-radius:16px;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1)}.header-action-btn:hover{background:var(--surface-elevated);border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}.notification-badge{position:absolute;top:-6px;right:-6px;width:20px;height:20px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-hover) 100%);color:#fff;border-radius:10px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface)}.user-profile-menu{position:relative}.user-profile-button{display:flex;align-items:center;gap:12px;background:var(--surface-elevated);border:1px solid var(--border-light);padding:10px 18px;border-radius:20px;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer}.user-profile-button:hover{background:var(--surface-secondary);border-color:var(--primary);transform:translateY(-1px)}.user-avatar{position:relative}.avatar-image{width:36px;height:36px;border-radius:18px;background:linear-gradient(135deg,var(--red-600) 0%,var(--red-700) 100%);display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:600;font-size:14px}.online-indicator{position:absolute;bottom:-2px;right:-2px;width:12px;height:12px;background:#10b981;border:2px solid white;border-radius:6px}.user-info{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.user-name{font-size:15px;font-weight:600;color:var(--gray-900);line-height:1}.user-role{font-size:12px;font-weight:500;color:var(--gray-600);line-height:1}.profile-chevron{color:#9ca3af;font-size:16px;transition:all .3s ease}.profile-chevron.open{transform:rotate(180deg);color:#dc2626}.profile-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:320px;background:var(--surface-elevated);border:1px solid var(--border-light);border-radius:20px;box-shadow:0 10px 40px #0000001a;padding:20px;z-index:1001;overflow:hidden}.dropdown-header{display:flex;align-items:center;gap:16px;padding:16px 20px 20px;margin:-20px -20px 20px;border-bottom:1px solid var(--border-light);background:linear-gradient(135deg,var(--surface) 0%,var(--surface-secondary) 100%);border-radius:20px 20px 0 0}.dropdown-user-avatar{width:44px;height:44px;border-radius:22px;background:linear-gradient(135deg,var(--red-600) 0%,var(--red-700) 100%);display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:600;font-size:16px}.dropdown-user-details{flex:1;display:flex;flex-direction:column;gap:4px}.dropdown-user-name{font-size:16px;font-weight:600;color:var(--gray-900);line-height:1.2}.dropdown-user-email{font-size:13px;font-weight:400;color:var(--gray-500);line-height:1.2}.dropdown-section{margin-bottom:16px}.dropdown-section:last-of-type{margin-bottom:0}.section-title{display:block;font-size:12px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1px;margin-bottom:12px;padding-left:4px}.dropdown-menu-item{display:flex;align-items:center;gap:16px;width:100%;padding:14px 16px;background:transparent;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;text-align:left;margin-bottom:4px}.dropdown-menu-item:hover{background:var(--surface-secondary);transform:translate(4px)}.menu-item-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-secondary);background:var(--surface-tertiary);border-radius:8px;padding:2px;transition:all .3s ease}.dropdown-menu-item:hover .menu-item-icon{color:var(--primary);background:var(--primary-light)}.menu-item-content{flex:1;display:flex;flex-direction:column;gap:2px}.menu-item-title{font-size:15px;font-weight:600;color:var(--text-primary);line-height:1.3}.menu-item-subtitle{font-size:12px;font-weight:400;color:var(--text-tertiary);line-height:1.2}.dropdown-footer{border-top:1px solid var(--border-light);padding-top:16px;margin-top:20px}.logout-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:16px 20px;background:#ff3b30;color:#fff;border:none;border-radius:14px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:-apple-system,BlinkMacSystemFont,sans-serif}.logout-button:hover{background:#ff453a;transform:translateY(-2px)}@media (min-width: 1025px){.header-container{padding:0 32px}.header-right{gap:16px;min-width:300px;justify-content:flex-end}.header-action-btn{width:52px;height:52px;border-radius:18px}.user-profile-button{padding:12px 20px;min-width:160px}.profile-dropdown{width:340px}}@media (max-width: 768px){.modern-header{height:60px}.header-container{padding:0 16px}.app-branding{gap:10px;padding:4px 6px}.app-logo{width:32px;height:32px}.app-title{font-size:16px}.app-subtitle{font-size:10px}.header-center{display:none}.header-action-btn{width:40px;height:40px;border-radius:12px}.user-profile-button{padding:4px 8px;gap:8px}.avatar-image{width:28px;height:28px;font-size:12px}.user-info{display:none}.profile-dropdown{width:280px;padding:16px;right:-8px}}@media (max-width: 480px){.modern-header{height:56px}.header-container{padding:0 12px}.app-logo{width:28px;height:28px}.app-title{font-size:14px}.app-subtitle{display:none}.header-action-btn{width:36px;height:36px;border-radius:10px}.avatar-image{width:24px;height:24px;font-size:11px}.profile-dropdown{width:calc(100vw - 20px);right:-6px;padding:12px;border-radius:12px}}.page-content,.main-content,.app-layout{padding-top:72px!important;box-sizing:border-box}@media (max-width: 768px){.page-content,.main-content,.app-layout{padding-top:60px!important;padding-bottom:80px!important}}@media (max-width: 480px){.page-content,.main-content,.app-layout{padding-top:56px!important}}.app-container{min-height:100vh;min-height:100dvh;position:relative;overflow:visible;display:flex;flex-direction:column}.app-tab-bar{position:fixed!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;height:var(--mobile-tab-bar-height);display:flex;align-items:center;justify-content:space-around;z-index:var(--z-fixed)!important;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border-light);padding-bottom:env(safe-area-inset-bottom,0);transform:none!important;pointer-events:auto;box-sizing:border-box;margin:0}.app-tab-bar.debug{outline:2px solid rgba(255,0,0,.6);background:#ffffffe6}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;color:var(--text-tertiary);transition:color .2s ease,transform .15s ease;position:relative;text-decoration:none;-webkit-tap-highlight-color:transparent;min-height:44px;border-radius:8px;box-sizing:border-box;max-width:none}.tab-item:active{transform:scale(.95)}.tab-item.active{color:var(--primary-action-color)}.tab-item.active .tab-label-text{font-weight:600}.tab-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-1);width:32px;height:32px}.tab-icon-wrapper svg{width:20px;height:20px}@media (min-width: 768px){.tab-icon-wrapper{width:28px;height:28px}.tab-icon-wrapper svg{width:24px;height:24px}}.tab-item.active .tab-icon-wrapper:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:6px;height:6px;background-color:var(--primary-action-color);border-radius:50%;transition:all .2s ease}.tab-label-text{font-size:10px;font-weight:500;letter-spacing:.025em;text-transform:uppercase;line-height:1.2;text-align:center;margin:0;padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px}@media (max-width: 768px){.app-tab-bar{height:60px;padding:4px 0 calc(env(safe-area-inset-bottom,0px) + 4px)}.tab-item{padding:4px 2px;min-height:52px;gap:2px}.tab-icon-wrapper{width:24px;height:24px;margin-bottom:2px}.tab-icon-wrapper svg{width:18px;height:18px}.tab-label-text{font-size:9px;max-width:50px}:root{--mobile-tab-bar-height: 60px;--header-height: 60px}}@media (max-width: 480px){.app-tab-bar{height:56px;padding:2px 0 calc(env(safe-area-inset-bottom,0px) + 2px)}.tab-item{padding:2px 1px;min-height:48px;gap:1px}.tab-icon-wrapper{width:22px;height:22px;margin-bottom:1px}.tab-icon-wrapper svg{width:16px;height:16px}.tab-label-text{font-size:8px;max-width:45px}:root{--mobile-tab-bar-height: 56px;--header-height: 56px}}@media (min-width: 769px){.tab-label-text{font-size:11px;letter-spacing:.05em;max-width:80px}}.app-container{display:flex;flex-direction:column;min-height:100vh;width:100%;position:relative}.main-content{flex:1;overflow-x:hidden;position:relative;width:100%;max-width:100vw;box-sizing:border-box;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.page-container{max-width:1200px;margin:0 auto;padding:12px;width:100%;box-sizing:border-box;overflow-x:hidden}@media (max-width: 480px){.page-container{padding:8px;margin:0}}@media (min-width: 768px){.page-container{padding:24px 16px}}@media (min-width: 1024px){.page-container{padding:32px 24px}}.app-loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.app-loading-spinner{width:50px;height:50px;border:4px solid var(--surface-variant);border-top-color:var(--primary-action-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}:root{--red-50: #fef2f2;--red-100: #fee2e2;--red-200: #fecaca;--red-300: #fca5a5;--red-400: #f87171;--red-500: #ef4444;--red-600: #dc2626;--red-700: #b91c1c;--red-800: #991b1b;--red-900: #7f1d1d;--red-950: #450a0a;--gray-50: #fafafa;--gray-100: #f4f4f5;--gray-200: #e4e4e7;--gray-300: #d4d4d8;--gray-400: #a1a1aa;--gray-500: #71717a;--gray-600: #52525b;--gray-700: #3f3f46;--gray-800: #27272a;--gray-900: #18181b;--gray-950: #09090b;--white: #ffffff;--black: #000000;--off-white: #fafafa;--off-black: #0a0a0a;--success-light: #dcfce7;--success: #16a34a;--success-dark: #166534;--warning-light: #fef3c7;--warning: #d97706;--warning-dark: #92400e;--error-light: #fee2e2;--error: #dc2626;--error-dark: #991b1b;--info-light: #dbeafe;--info: #2563eb;--info-dark: #1d4ed8;--primary: var(--red-600);--primary-hover: var(--red-700);--primary-active: var(--red-800);--primary-light: var(--red-50);--primary-dark: var(--red-900);--gradient-primary: linear-gradient(135deg, var(--red-600) 0%, var(--red-800) 100%);--gradient-subtle: linear-gradient(135deg, var(--gray-50) 0%, var(--white) 100%);--gradient-dark: linear-gradient(135deg, var(--gray-900) 0%, var(--black) 100%);--gradient-red-glow: radial-gradient(circle at center, var(--red-500) 0%, transparent 70%);--background: var(--white);--surface: var(--white);--surface-secondary: var(--gray-50);--surface-tertiary: var(--gray-100);--surface-elevated: var(--white);--text-primary: var(--gray-900);--text-secondary: var(--gray-600);--text-tertiary: var(--gray-500);--text-inverse: var(--white);--border-light: var(--gray-200);--border-medium: var(--gray-300);--border-strong: var(--gray-400);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-red: 0 4px 14px 0 rgb(220 38 38 / .15);--shadow-red-lg: 0 10px 25px -5px rgb(220 38 38 / .25);--glass-bg: rgba(255, 255, 255, .95);--glass-border: rgba(255, 255, 255, .2);--glass-shadow: var(--shadow-xl);--hover-overlay: rgba(0, 0, 0, .05);--active-overlay: rgba(0, 0, 0, .1);--focus-ring: var(--red-500);--font-family-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "JetBrains Mono", "Fira Code", Consolas, Monaco, monospace;--header-height: 72px;--tab-bar-height: 64px;--mobile-header-height: 56px;--mobile-tab-bar-height: 56px;--actual-header-height: var(--header-height);--actual-mobile-header-height: var(--mobile-header-height);--sidebar-width: 280px;--content-max-width: 1200px;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--spacing-xs: var(--space-1);--spacing-sm: var(--space-2);--spacing-md: var(--space-2);--spacing-lg: var(--space-3);--spacing-xl: var(--space-4);--spacing-xxl: var(--space-6);--touch-target-min: 44px;--button-height-sm: 36px;--button-height-md: 44px;--button-height-lg: 52px;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--border-radius-sm: var(--radius-sm);--border-radius-md: var(--radius-lg);--border-radius-lg: var(--radius-xl);--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-black: 900;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--transition-fast: .1s ease;--transition-base: .15s ease;--transition-slow: .2s ease;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-header: 9999;--z-modal-backdrop: 10000;--z-modal: 10001;--z-popover: 10002;--z-tooltip: 10003;--z-toast: 10004;--z-floating-button: 10005;font-family:var(--font-family-primary);font-size:var(--font-size-base);line-height:var(--leading-normal);font-weight:var(--font-weight-normal);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}@media (min-width: 768px){:root{--spacing-md: var(--space-4);--spacing-lg: var(--space-5);--spacing-xl: var(--space-6);--spacing-xxl: var(--space-8);--actual-header-height: var(--header-height)}}@media (max-width: 767px){:root{--actual-header-height: var(--mobile-header-height)}}@media (max-width: 480px){:root{--mobile-header-height: 52px;--actual-header-height: 52px}}@media (max-width: 768px) and (min-height: 800px){:root{--mobile-header-height: 60px;--actual-header-height: 60px}}@media (max-width: 768px) and (-webkit-min-device-pixel-ratio: 2){:root{--mobile-header-height: 58px;--actual-header-height: 58px}}.dark-theme{--background: var(--gray-950);--surface: var(--gray-900);--surface-secondary: var(--gray-800);--surface-tertiary: var(--gray-700);--surface-elevated: var(--gray-800);--text-primary: var(--gray-50);--text-secondary: var(--gray-300);--text-tertiary: var(--gray-400);--text-inverse: var(--gray-900);--border-light: var(--gray-700);--border-medium: var(--gray-600);--border-strong: var(--gray-500);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .3);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .3), 0 2px 4px -2px rgb(0 0 0 / .3);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .3), 0 4px 6px -4px rgb(0 0 0 / .3);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .4), 0 8px 10px -6px rgb(0 0 0 / .4);--shadow-red: 0 4px 14px 0 rgb(220 38 38 / .3);--shadow-red-lg: 0 10px 25px -5px rgb(220 38 38 / .4);--glass-bg: rgba(24, 24, 27, .95);--glass-border: rgba(63, 63, 70, .3);--glass-shadow: var(--shadow-xl);--hover-overlay: rgba(255, 255, 255, .1);--active-overlay: rgba(255, 255, 255, .15);--success-light: rgba(34, 197, 94, .1);--warning-light: rgba(245, 158, 11, .1);--error-light: rgba(239, 68, 68, .1);--info-light: rgba(59, 130, 246, .1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent;scroll-behavior:smooth;height:100%}body{background:var(--background);color:var(--text-primary);transition:background-color var(--transition-base),color var(--transition-base);min-height:100vh;height:100%;display:flex;flex-direction:column;font-feature-settings:"cv02","cv03","cv04","cv11";font-variant-numeric:tabular-nums;overflow-x:hidden}#root{flex:1;display:flex;flex-direction:column;width:100%;max-width:100vw;min-height:100vh;position:relative}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--leading-tight);color:var(--text-primary);letter-spacing:-.025em}h1{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast);font-weight:var(--font-weight-medium)}a:hover{color:var(--primary-hover);text-decoration:underline}a:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}button{font-family:inherit;cursor:pointer;border:none;background:transparent;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-lg);transition:all var(--transition-fast);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);text-align:center;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}button:not(:disabled):hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}button:not(:disabled):active{transform:translateY(0);transition:transform .1s ease}@media (hover: none){button:not(:disabled):hover{transform:none;box-shadow:none}}button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}input[type=text],input[type=password],input[type=email],input[type=number],input[type=tel],input[type=date],input[type=datetime-local],select,textarea{font-family:inherit;font-size:var(--font-size-base);padding:var(--space-3) var(--space-3);border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--surface);color:var(--text-primary);width:100%;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);font-weight:var(--font-weight-normal);min-height:var(--button-height-md);box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #dc26261a}input::placeholder,textarea::placeholder{color:var(--text-tertiary);font-weight:var(--font-weight-normal)}select{cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right var(--space-3) center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:var(--space-10)}textarea{resize:vertical;min-height:4rem;line-height:var(--leading-normal)}.card{background:var(--surface-elevated);border-radius:var(--radius-lg);padding:var(--space-3);border:1px solid var(--border-light);position:relative;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:var(--border-medium);transform:translateY(-2px);box-shadow:var(--shadow-lg)}@media (hover: none){.card-interactive:hover{transform:none}.card-interactive:active{transform:scale(.98);transition:transform .1s ease}}.card-primary{border-color:var(--primary)}.glass-panel{background:var(--surface-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-light);position:relative}.w-full{width:100%}.h-full{height:100%}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.text-center{text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-only{display:block}.desktop-only{display:none}@media (min-width: 768px){.mobile-only{display:none}.desktop-only{display:block}}.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.word-break{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.touch-target{min-height:var(--touch-target-min);min-width:var(--touch-target-min)}.no-tap-highlight{-webkit-tap-highlight-color:transparent}.mobile-scroll{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.smooth-scroll{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}*{scrollbar-width:thin;scrollbar-color:var(--border-medium) var(--surface)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:var(--surface)}*::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.form-group{margin-bottom:var(--spacing-sm);width:100%;box-sizing:border-box}@media (min-width: 768px){.form-group{margin-bottom:var(--space-3)}}.form-label{display:block;margin-bottom:var(--space-1);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);color:var(--text-primary)}.form-label-required:after{content:"*";color:var(--error);margin-left:var(--space-1);font-weight:var(--font-weight-semibold)}.form-error{color:var(--error);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-top:var(--space-2);display:flex;align-items:center;gap:var(--space-1)}.form-help{color:var(--text-tertiary);font-size:var(--font-size-xs);margin-top:var(--space-1)}.input-error{border-color:var(--error)!important;box-shadow:0 0 0 3px #ef44441a!important}.loading-spinner{width:1.5rem;height:1.5rem;border:2px solid var(--border-light);border-top-color:var(--primary);border-radius:var(--radius-full);animation:spin 1s linear infinite}.loading-pulse{animation:pulse 2s ease-in-out infinite}.loading-bounce{animation:bounce 2s ease-in-out infinite}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#fffc;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);border-radius:inherit}.dark-theme .loading-overlay{background:#09090bcc}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes bounce{0%,20%,53%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-8px,0)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-4px,0)}90%{transform:translate3d(0,-1px,0)}}.status-success{color:var(--success)}.status-warning{color:var(--warning)}.status-error{color:var(--error)}.status-info{color:var(--info)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em}.badge-primary{background:var(--primary-light);color:var(--primary-dark);border:1px solid var(--primary)}.badge-success{background:var(--success-light);color:var(--success-dark)}.badge-warning{background:var(--warning-light);color:var(--warning-dark)}.badge-error{background:var(--error-light);color:var(--error-dark)}svg[class*=w-],svg[class*=h-]{flex-shrink:0;display:inline-block;vertical-align:middle}svg{color:currentColor;stroke:currentColor}.status-icon-spinning,.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.inline-block{display:inline-block}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}body svg:not(.recharts-surface):not([class*=recharts]):not(.trend-chart-container svg):not(.trend-chart-container *),#root svg:not(.recharts-surface):not([class*=recharts]):not(.trend-chart-container svg):not(.trend-chart-container *),* svg:not(.recharts-surface):not([class*=recharts]):not(.trend-chart-container svg):not(.trend-chart-container *){max-width:24px!important;max-height:24px!important}.recharts-surface,.recharts-wrapper svg,svg[class*=recharts],.trend-chart-container svg,.trend-chart-container * svg{max-width:none!important;max-height:none!important}.w-4,body .w-4,#root .w-4{width:1rem!important;height:1rem!important;max-width:1rem!important;max-height:1rem!important}.h-4,body .h-4,#root .h-4{height:1rem!important;max-height:1rem!important}.w-5,body .w-5,#root .w-5{width:1.25rem!important;height:1.25rem!important;max-width:1.25rem!important;max-height:1.25rem!important}.h-5,body .h-5,#root .h-5{height:1.25rem!important;max-height:1.25rem!important}.w-6,body .w-6,#root .w-6{width:1.5rem!important;height:1.5rem!important;max-width:1.5rem!important;max-height:1.5rem!important}.w-8,body .w-8,#root .w-8{width:2rem!important;height:2rem!important;max-width:2rem!important;max-height:2rem!important}.w-\[18px\],body .w-\[18px\],#root .w-\[18px\]{width:18px!important;height:18px!important;max-width:18px!important;max-height:18px!important}html,body{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}input,select,textarea{font-size:16px}@media screen and (max-width: 480px){input,select,textarea,button{min-height:44px}}@supports (-webkit-touch-callout: none){input,select,textarea{font-size:16px}.app-tab-bar{padding-bottom:env(safe-area-inset-bottom,8px)}}button.modal-close-button,button.file-preview-close-btn,button.pdf-preview-close-btn,button.close-modal-btn,button.close-button,button.mobile-close-btn,button[style*=borderRadius],.close-button[style*=borderRadius],.file-preview-close-btn[style*=borderRadius],.pdf-preview-close-btn[style*=borderRadius]{background:#f8f9fa!important;border:1px solid #e9ecef!important;color:#6c757d!important;cursor:pointer!important;padding:0!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;width:36px!important;height:36px!important;transition:all .2s ease!important;box-shadow:0 2px 4px #0000001a!important;font-size:18px!important;font-weight:300!important;min-height:auto!important;transform:none!important}button.modal-close-button:hover,button.file-preview-close-btn:hover,button.pdf-preview-close-btn:hover,button.close-modal-btn:hover,button.close-button:hover,button.mobile-close-btn:hover{background:#fff!important;border-color:#dc3545!important;color:#dc3545!important;transform:scale(1.05)!important;box-shadow:0 4px 8px #00000026!important}button.modal-close-button:active,button.file-preview-close-btn:active,button.pdf-preview-close-btn:active,button.close-modal-btn:active,button.close-button:active,button.mobile-close-btn:active{transform:scale(.95)!important}button.pdf-zoom-btn,button.pdf-nav-btn,button[style*=borderRadius][style*="var(--radius-lg)"],.pdf-zoom-btn[style*=borderRadius],.pdf-nav-btn[style*=borderRadius]{padding:0!important;background:#f8f9fa!important;border:1px solid #e9ecef!important;border-radius:50%!important;color:#495057!important;cursor:pointer!important;font-weight:400!important;font-size:20px!important;transition:all .2s ease!important;width:40px!important;height:40px!important;display:flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;box-shadow:0 2px 4px #0000001a!important;min-height:auto!important;transform:none!important}button.pdf-zoom-btn:hover,button.pdf-nav-btn:hover{background:#fff!important;border-color:#007bff!important;color:#007bff!important;transform:scale(1.05)!important;box-shadow:0 4px 8px #00000026!important}button.pdf-zoom-btn:active,button.pdf-nav-btn:active{transform:scale(.95)!important}button.logout-modal-cancel,button.logout-modal-confirm{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif!important;font-size:16px!important;font-weight:600!important;border:none!important;border-radius:12px!important;padding:14px 16px!important;cursor:pointer!important;transition:all .2s ease!important;letter-spacing:-.01em!important;min-height:48px!important;width:100%!important;box-sizing:border-box!important;white-space:nowrap!important;text-overflow:ellipsis!important;overflow:hidden!important;transform:none!important}button.logout-modal-cancel{background:#f2f2f7!important;color:#007aff!important;order:2!important}button.logout-modal-cancel:hover{background:#e8e8ed!important;transform:scale(.98)!important}button.logout-modal-confirm{background:#ff3b30!important;color:#fff!important;order:1!important;box-shadow:0 2px 10px #ff3b304d!important}button.logout-modal-confirm:hover{background:#ff453a!important;transform:scale(.98)!important;box-shadow:0 4px 15px #ff3b3066!important}button[aria-label*=Close],button[aria-label*=close],button[aria-label*=Zoom],button[aria-label*=zoom],button[aria-label*=PDF],.pdf-preview-modal-content .pdf-preview-close-btn,.file-preview-modal-content .file-preview-close-btn,.modal-container .modal-close-button,.unknown-diagnosis-modal .close-modal-btn,.reupload-modal .close-button{border-radius:50%!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;background:#f8f9fa!important;border:1px solid #e9ecef!important;color:#6c757d!important;cursor:pointer!important;transition:all .2s ease!important;box-shadow:0 2px 4px #0000001a!important;font-size:18px!important;font-weight:300!important}
