@charset "UTF-8";@tailwind base;@tailwind components;@tailwind utilities;.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media(prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}html,body,#root{margin:0;padding:0;height:100%}.login-box{background-color:#fffffff2;padding:40px;border-radius:12px;box-shadow:0 4px 20px #0003;width:100%;max-width:400px;text-align:center}.login-logo{font-size:40px;display:block;margin-bottom:8px}.login-title-top{margin:0 0 2px;font-size:13px;font-weight:500;color:#888;letter-spacing:2px;text-transform:uppercase}.login-title-main{margin:0 0 4px;font-size:22px;font-weight:800;color:#1a2a4a;letter-spacing:-.5px;line-height:1.2}.login-subtitle{margin:0 0 20px;font-size:13px;color:#aaa}.login-box input[type=text],.login-box input[type=email]{width:100%;padding:12px;margin:10px 0;border:1px solid #ccc;border-radius:8px;font-size:16px;box-sizing:border-box}.login-box input[type=text]:focus,.login-box input[type=email]:focus{outline:none;border-color:#007cf0;box-shadow:0 0 5px #007cf080}.password-wrapper{position:relative;margin:10px 0}.password-wrapper input{width:100%;padding:12px 44px 12px 12px;border:1px solid #ccc;border-radius:8px;font-size:16px;box-sizing:border-box}.password-wrapper input:focus{outline:none;border-color:#007cf0;box-shadow:0 0 5px #007cf080}.password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;padding:0;width:auto;font-size:18px;line-height:1;color:#888;cursor:pointer;transition:none}.password-toggle:hover{background:none;transform:translateY(-50%);color:#555}.btn-login{width:100%;padding:12px;background-color:#007cf0;color:#fff;border:none;border-radius:8px;font-weight:700;font-size:16px;cursor:pointer;transition:background-color .3s ease;margin-top:10px}.btn-login:hover:not(:disabled){background-color:#005bbb}.btn-login:disabled{background-color:#a0c4f0;cursor:not-allowed}.error{color:#e53e3e;margin:8px 0;font-size:14px;text-align:center}.login-links{margin-top:14px;display:flex;justify-content:center;gap:12px;font-size:14px}.login-links a,.login-register a{color:#1890ff;text-decoration:none}.login-links a:hover,.login-register a:hover{text-decoration:underline}.link-sep{color:#d9d9d9}.login-register{margin-top:10px;font-size:14px}.login-footer{margin-top:16px;border-top:1px solid #f0f0f0;padding-top:12px}.login-footer a{color:#aaa;text-decoration:none;font-size:12px}.login-footer a:hover{text-decoration:underline}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-box{background:#fff;border-radius:12px;padding:32px;width:100%;max-width:460px;box-shadow:0 8px 32px #0003}.modal-box h3{margin:0 0 10px;font-size:18px;color:#1a2a4a}.modal-box p{color:#666;margin-bottom:14px;font-size:14px;text-align:left}.modal-box input{width:100%;padding:12px;border:1px solid #ccc;border-radius:8px;font-size:15px;box-sizing:border-box;margin-bottom:4px}.modal-box input:focus{outline:none;border-color:#007cf0;box-shadow:0 0 5px #007cf066}.modal-actions{display:flex;gap:10px;margin-top:12px}.modal-actions .btn-login{flex:1;margin-top:0;font-size:15px}.btn-cancel{padding:12px 20px;background:#f5f5f5;color:#555;border:1px solid #e0e0e0;border-radius:8px;font-size:15px;cursor:pointer;white-space:nowrap}.btn-cancel:hover{background:#e8e8e8}.modal-success{color:#52c41a;font-size:14px;margin:8px 0;text-align:center}@media(max-width:768px){.login-box{padding:24px;margin:16px}.login-title-main{font-size:18px}.modal-box{margin:16px;padding:24px}}.dashboard-container{background:linear-gradient(135deg,#f0f4ff,#d9e8ff);min-height:100vh;padding:0;font-family:Segoe UI,Arial,sans-serif}.dashboard-welcome{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.5rem 1.5rem 0;flex-wrap:wrap}.dashboard-greeting{font-size:1.5rem;font-weight:700;color:#1e3a5f;margin:0 0 .25rem}.dashboard-username{color:#2563eb}.dashboard-role-label{font-size:.875rem;color:#475569;margin:0}.dashboard-org{color:#3b82f6}.dashboard-today{font-size:.8rem;color:#64748b;background:#ffffffb3;border-radius:8px;padding:.4rem .75rem;white-space:nowrap;align-self:flex-start}.dashboard-section{background:#fffc;border-radius:12px;padding:1.5rem;margin:1.5rem;box-shadow:0 4px 8px #00000014}.dashboard-section-heading{font-size:1rem;font-weight:600;color:#374151;margin:0 0 1.25rem}.shortcut-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.shortcut-item{display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;color:#1f2937;background:#fff;border-radius:12px;padding:1.25rem 1rem;border:1px solid #e5e7eb;box-shadow:0 2px 4px #0000000f;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.shortcut-item:hover{transform:translateY(-3px);box-shadow:0 8px 20px #2563eb26;border-color:#93c5fd;color:#1d4ed8}.shortcut-icon{font-size:2.5rem;margin-bottom:.625rem;line-height:1}.shortcut-text{font-size:.9rem;font-weight:600;margin-bottom:.25rem}.shortcut-desc{font-size:.75rem;color:#9ca3af;line-height:1.3}.shortcut-item:hover .shortcut-desc{color:#60a5fa}@media(max-width:640px){.dashboard-welcome{padding:1rem 1rem 0}.dashboard-section{margin:1rem;padding:1rem}.shortcut-grid{grid-template-columns:repeat(2,1fr)}}.header-bar{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background-color:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #0000000a;font-family:Segoe UI,sans-serif}.header-title{font-size:20px;font-weight:600;color:#333}.header-actions{position:relative;display:flex;align-items:center;gap:.75rem}.header-username{font-size:.825rem;font-weight:500;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:.25rem .75rem;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.gear-icon{font-size:22px;cursor:pointer;padding:8px;border-radius:50%;transition:background-color .2s ease}.gear-icon:hover{background-color:#f5f5f5}.tooltip-container{position:relative}.dropdown-menu{position:absolute;top:42px;right:0;background-color:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 6px 12px #0000001a;z-index:100;width:180px;overflow:hidden}.dropdown-item{display:block;padding:12px 16px;text-decoration:none;color:#333;cursor:pointer;transition:background-color .2s ease}.dropdown-item:hover{background-color:#f9f9f9}.logout-button{border:none;background:none;width:100%;text-align:left;padding:12px 16px;font-size:14px;cursor:pointer;color:#c0392b;transition:background-color .2s ease}.logout-button:hover{background-color:#fbe9e7}:root{--pfm-blue: #3b82f6;--pfm-blue-dark: #2563eb;--pfm-blue-light: #eff6ff;--pfm-red: #ef4444;--pfm-gray-50: #f9fafb;--pfm-gray-100: #f3f4f6;--pfm-gray-200: #e5e7eb;--pfm-gray-300: #d1d5db;--pfm-gray-500: #6b7280;--pfm-gray-700: #374151;--pfm-gray-900: #111827}.pfm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;box-sizing:border-box}.pfm-modal{background:#fff;border-radius:16px;box-shadow:0 24px 60px #00000038;width:100%;max-width:860px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;animation:pfm-pop .32s cubic-bezier(.34,1.56,.64,1)}@keyframes pfm-pop{0%{opacity:0;transform:scale(.92) translateY(-12px)}to{opacity:1;transform:scale(1) translateY(0)}}.pfm-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--pfm-gray-200);background:var(--pfm-gray-50);flex-shrink:0}.pfm-title{margin:0;font-size:1.25rem;font-weight:700;color:var(--pfm-gray-900)}.pfm-close{width:34px;height:34px;border:none;background:none;border-radius:8px;cursor:pointer;font-size:1.1rem;color:var(--pfm-gray-500);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.pfm-close:hover{background:var(--pfm-gray-200);color:var(--pfm-gray-900)}.pfm-form{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.pfm-body{overflow-y:auto;padding:24px;flex:1}.pfm-section{margin-bottom:28px}.pfm-section-title{margin:0 0 14px;font-size:.82rem;font-weight:700;color:var(--pfm-blue-dark);text-transform:uppercase;letter-spacing:.06em;padding-left:10px;border-left:3px solid var(--pfm-blue)}.pfm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.pfm-field--full{grid-column:1 / -1}.pfm-field{display:flex;flex-direction:column;gap:6px}.pfm-label{font-size:.82rem;font-weight:600;color:var(--pfm-gray-700)}.req{color:var(--pfm-red);margin-left:2px}.pfm-input,.pfm-select,.pfm-textarea{width:100%;padding:10px 12px;border:1.5px solid var(--pfm-gray-300);border-radius:8px;font-size:.875rem;color:var(--pfm-gray-900);background:#fff;box-sizing:border-box;transition:border-color .18s,box-shadow .18s;outline:none;font-family:inherit}.pfm-input:focus,.pfm-select:focus,.pfm-textarea:focus{border-color:var(--pfm-blue);box-shadow:0 0 0 3px #3b82f61f}.pfm-textarea{resize:vertical;min-height:80px}.pfm-datepicker-wrap{position:relative;z-index:10}.pfm-datepicker-wrap:focus-within{z-index:9999}.pfm-datepicker-wrap .react-datepicker-wrapper{display:block}.pfm-datepicker-wrap input{width:100%;padding:10px 12px;border:1.5px solid var(--pfm-gray-300);border-radius:8px;font-size:.875rem;color:var(--pfm-gray-900);background:#fff;box-sizing:border-box;outline:none;font-family:inherit;transition:border-color .18s,box-shadow .18s}.pfm-datepicker-wrap input:focus{border-color:var(--pfm-blue);box-shadow:0 0 0 3px #3b82f61f}.react-datepicker-popper{z-index:99999!important}.react-datepicker{font-family:inherit;border-radius:10px;border-color:var(--pfm-gray-200);box-shadow:0 12px 30px #00000026}.react-datepicker__header{background:var(--pfm-gray-50);border-bottom-color:var(--pfm-gray-200);border-radius:10px 10px 0 0}.react-datepicker__day--selected{background:var(--pfm-blue);color:#fff}.react-datepicker__day--selected:hover{background:var(--pfm-blue-dark)}.react-datepicker__day--today{background:#fef9c3;color:#92400e}.react-datepicker__day--keyboard-selected{background:#dbeafe;color:#1e40af}.react-datepicker__day:hover{background:var(--pfm-blue-light);color:var(--pfm-blue-dark)}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown{background:#fff;border-color:var(--pfm-gray-200);border-radius:8px;box-shadow:0 8px 20px #0000001f;z-index:99999!important}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover{background:var(--pfm-blue-light);color:var(--pfm-blue-dark)}.pfm-para-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;background:var(--pfm-gray-50);border:1.5px solid var(--pfm-gray-200);border-radius:10px;padding:16px;margin-top:4px}.pfm-para-item{display:flex;flex-direction:column;align-items:center;gap:6px}.pfm-para-item label{font-size:.72rem;color:var(--pfm-gray-500);font-weight:600;text-align:center;line-height:1.3}.pfm-para-item input{width:64px;text-align:center;padding:8px 4px;border:1.5px solid var(--pfm-gray-300);border-radius:8px;font-weight:700;font-size:1rem;outline:none;box-sizing:border-box;font-family:inherit}.pfm-para-item input:focus{border-color:var(--pfm-blue);box-shadow:0 0 0 3px #3b82f61f}.pfm-var-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.pfm-var-card{background:var(--pfm-blue-light);border:1.5px solid #bfdbfe;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}.pfm-var-card label{font-size:.82rem;font-weight:600;color:var(--pfm-blue-dark)}.pfm-message{margin:0 24px 8px;padding:10px 14px;border-radius:8px;font-size:.875rem;font-weight:500;flex-shrink:0}.pfm-message--success{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.pfm-message--error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.pfm-actions{display:flex;gap:10px;justify-content:flex-end;padding:18px 24px;border-top:1px solid var(--pfm-gray-200);background:var(--pfm-gray-50);flex-shrink:0}.pfm-btn-cancel{padding:10px 20px;border:1.5px solid var(--pfm-gray-300);background:#fff;border-radius:8px;font-size:.875rem;font-weight:600;color:var(--pfm-gray-700);cursor:pointer;transition:background .15s,border-color .15s;font-family:inherit}.pfm-btn-cancel:hover{background:var(--pfm-gray-100);border-color:#9ca3af}.pfm-btn-submit{padding:10px 24px;background:var(--pfm-blue);border:none;border-radius:8px;font-size:.875rem;font-weight:600;color:#fff;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .15s;font-family:inherit}.pfm-btn-submit:hover:not(:disabled){background:var(--pfm-blue-dark)}.pfm-btn-submit:disabled{opacity:.6;cursor:not-allowed}.pfm-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:pfm-spin .75s linear infinite;display:inline-block;flex-shrink:0}@keyframes pfm-spin{to{transform:rotate(360deg)}}.multiselect-checkbox-group{padding:.5rem;border:1.5px solid var(--pfm-gray-300);border-radius:8px;background:#fff}@media(max-width:640px){.pfm-backdrop{padding:0;align-items:flex-end}.pfm-modal{max-width:100%;max-height:96vh;border-radius:20px 20px 0 0;animation:pfm-slide-up .3s cubic-bezier(.34,1.56,.64,1)}@keyframes pfm-slide-up{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}.pfm-header{padding:14px 16px}.pfm-title{font-size:1.05rem}.pfm-body{padding:16px}.pfm-grid,.pfm-var-grid{grid-template-columns:1fr}.pfm-para-grid{grid-template-columns:repeat(2,1fr);padding:12px}.pfm-actions{padding:14px 16px;flex-direction:column-reverse;gap:8px}.pfm-btn-cancel,.pfm-btn-submit{width:100%;justify-content:center}.pfm-message{margin:0 16px 8px}}@media(max-width:380px){.pfm-para-grid{grid-template-columns:1fr}}.checkbox-group-container{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:8px}.checkbox-option{display:flex;align-items:center;gap:8px;font-size:14px;line-height:1.4;word-break:break-word;white-space:normal}.checkbox-option input[type=checkbox]{transform:scale(1.2);margin-right:6px}.checkbox-option:hover{color:#0366d6}.checkbox-option.disabled{opacity:.5;cursor:not-allowed}.error-text{color:red;font-size:13px;margin-top:4px}.multiselect-checkbox-group{display:flex;flex-direction:column;gap:8px;margin-top:4px}.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker-wrapper{display:inline-block;padding:0;border:0}.react-datepicker{font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:.3rem;display:inline-block;position:relative;line-height:initial}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker-popper{z-index:1;line-height:0}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select){border-top-right-radius:.3rem}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 15px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:700;font-size:.944rem}h2.react-datepicker__current-month{padding:0;margin:0}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{align-items:center;background:none;display:flex;justify-content:center;text-align:center;cursor:pointer;position:absolute;top:2px;padding:0;border:none;z-index:1;height:32px;width:32px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover *:before{border-color:#a6a6a6}.react-datepicker__navigation-icon{position:relative;top:-1px;font-size:20px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{transform:rotate(45deg);left:-7px}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{transform:rotate(225deg);right:-7px}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.4rem;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__month{margin:.4rem;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:4rem;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:.3rem;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:#fff;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center;border-bottom-right-radius:.3rem}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + .85rem);overflow-y:scroll;padding-right:0;padding-left:0;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__week-number--selected{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__day-names{white-space:nowrap;margin-bottom:-8px}.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:1.7rem;line-height:1.7rem;text-align:center;margin:.166rem}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{border-radius:.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{position:relative;border-radius:.3rem;background-color:#ff6803;color:#fff}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{visibility:visible;opacity:1}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{border-radius:.3rem;background-color:#bad9f1;color:#000}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{position:absolute;bottom:70%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{position:absolute;padding:.5rem;box-sizing:content-box}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{transform:rotate(135deg);right:-16px;top:0}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0 6px 0 0;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon:after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:"×"}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{cursor:default;background-color:#ccc}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:700;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:#000c;left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:3rem;line-height:3rem}@media(max-width:400px),(max-height:550px){.react-datepicker__portal .react-datepicker__day-name,.react-datepicker__portal .react-datepicker__day,.react-datepicker__portal .react-datepicker__time-name{width:2rem;line-height:2rem}}.react-datepicker__portal .react-datepicker__current-month,.react-datepicker__portal .react-datepicker-time__header{font-size:1.44rem}.react-datepicker__children-container{width:13.8rem;margin:.4rem;padding-right:.2rem;padding-left:.2rem;height:auto}.react-datepicker__aria-live{position:absolute;clip-path:circle(0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;white-space:nowrap}.react-datepicker__calendar-icon{width:1em;height:1em;vertical-align:-.125em}.sdm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:1100;padding:16px}.sdm-modal{background:#fff;border-radius:14px;width:100%;max-width:640px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.sdm-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 22px;border-bottom:1px solid #eef1f5}.sdm-header h2{margin:0;font-size:18px;color:#1a1a2e}.sdm-sub{margin:4px 0 0;color:#64748b;font-size:14px}.sdm-close{background:none;border:none;font-size:20px;cursor:pointer;color:#94a3b8}.sdm-body{overflow-y:auto;padding:18px 22px}.sdm-muted{color:#94a3b8;font-size:14px}.sdm-section{margin-bottom:20px}.sdm-section h4{margin:0 0 10px;font-size:14px;color:#334155;padding-bottom:6px;border-bottom:1px solid #f1f5f9}.sdm-dl{margin:0}.sdm-row{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:6px 0;align-items:start}.sdm-row dt{color:#64748b;font-size:13px}.sdm-row dd{margin:0;color:#1e293b;font-size:14px;word-break:break-word}@media(max-width:480px){.sdm-row{grid-template-columns:1fr;gap:2px}.sdm-row dt{font-size:12px}}.sdm-mono{font-family:monospace}.sdm-ua{font-size:12px;color:#64748b}.sdm-sig{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.sdm-sig-img{max-width:100%;border:1px solid #d4dae3;border-radius:10px;background:linear-gradient(#fff,#fff) padding-box,repeating-linear-gradient(transparent,transparent 39px,#eef1f5 39px,#eef1f5 40px) padding-box}.sdm-sig-dl{font-size:13px;color:#2b5dab;text-decoration:none;border:1px solid #c7d2fe;background:#eef2ff;padding:6px 12px;border-radius:8px}.sdm-footer{padding:14px 22px;border-top:1px solid #eef1f5;text-align:right}.sdm-btn{background:#1e293b;color:#fff;border:none;border-radius:9px;padding:9px 18px;font-size:14px;cursor:pointer}.plm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.plm-modal{background:#fff;border-radius:14px;width:100%;max-width:820px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040}.plm-header{display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px;border-bottom:1px solid #eef1f5}.plm-header h2{margin:0;font-size:19px;color:#1a1a2e}.plm-sub{margin:4px 0 0;color:#64748b;font-size:14px}.plm-close{background:none;border:none;font-size:20px;cursor:pointer;color:#94a3b8}.plm-body{overflow-y:auto;padding:20px 24px 24px}.plm-create{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px;margin-bottom:22px}.plm-create h4,.plm-list h4{margin:0 0 12px;font-size:15px;color:#334155}.plm-create-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:14px}@media(max-width:560px){.plm-create-grid{grid-template-columns:1fr}}.plm-create label{display:flex;flex-direction:column;gap:5px}.plm-create label>span{font-size:12px;color:#64748b}.plm-create input,.plm-create select{border:1px solid #d4dae3;border-radius:8px;padding:9px 11px;font-size:14px;font-family:inherit}.plm-btn-create{background:linear-gradient(135deg,#2b5dab,#1e40af);color:#fff;border:none;border-radius:9px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer}.plm-btn-create:disabled{opacity:.6;cursor:not-allowed}.plm-muted{color:#94a3b8;font-size:14px}.plm-link{border:1px solid #e2e8f0;border-radius:12px;padding:14px;margin-bottom:12px}.plm-link--inactive{opacity:.7;background:#fafafa}.plm-link-top{margin-bottom:10px}.plm-link-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.plm-link-label{font-weight:600;color:#1e293b}.plm-link-count{color:#64748b;font-size:13px}.plm-badge{font-size:11px;padding:3px 9px;border-radius:999px;font-weight:600}.plm-badge--on{background:#dcfce7;color:#166534}.plm-badge--off{background:#fee2e2;color:#991b1b}.plm-link-url{display:flex;gap:8px;margin-bottom:10px}.plm-link-url input{flex:1;border:1px solid #d4dae3;border-radius:8px;padding:8px 11px;font-size:13px;background:#f8fafc;color:#334155;font-family:monospace}.plm-link-url button{background:#1e293b;color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:13px;cursor:pointer;white-space:nowrap}.plm-link-actions{display:flex;gap:8px;flex-wrap:wrap}.plm-link-actions button{background:#f1f5f9;border:1px solid #d4dae3;color:#334155;border-radius:8px;padding:7px 13px;font-size:13px;cursor:pointer}.plm-link-actions button:hover{background:#e2e8f0}.plm-danger{color:#b91c1c!important;border-color:#fecaca!important}.plm-subs{margin-top:12px;border-top:1px dashed #e2e8f0;padding-top:12px}.plm-subtable{width:100%;border-collapse:collapse;font-size:12.5px}.plm-subtable th{text-align:left;color:#64748b;font-weight:600;padding:6px 8px;border-bottom:1px solid #eef1f5}.plm-subtable td{padding:7px 8px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.plm-mono{font-family:monospace;color:#475569}.plm-subactions{display:flex;gap:6px}.plm-approve{background:#16a34a;color:#fff;border:none;border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer}.plm-subactions .plm-danger{background:#fff;border:1px solid #fecaca;border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer}.plm-rev{font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600}.plm-rev--pending{background:#fef3c7;color:#92400e}.plm-rev--approved{background:#dcfce7;color:#166534}.plm-rev--rejected{background:#fee2e2;color:#991b1b}.plm-qr{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:12px;padding:16px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.plm-qr-hint{font-size:12px;color:#64748b}.plm-detail{background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe;border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer}.plm-detail:hover{background:#e0e7ff}.plm-edit{margin-top:12px;padding:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.plm-edit-actions{display:flex;gap:8px;margin-top:10px}.plm-edit-actions button:not(.plm-btn-create){background:#f1f5f9;border:1px solid #d4dae3;color:#334155;border-radius:8px;padding:8px 16px;font-size:13px;cursor:pointer}:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: hsl(6, 78%, 57%);--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-container-width: fit-content;--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-padding: 14px;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, .1);--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;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.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%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.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%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y: 0;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;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{--toastify-toast-width: 100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.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-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.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;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.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:1;opacity:.7;transform-origin:left}.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}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-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)}}.patient-form-container{max-width:1200px;margin:0 auto;padding:20px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.header-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.back-button{background-color:#6b7280;color:#fff;padding:10px 16px;text-decoration:none;border-radius:8px;font-weight:500;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.back-button:hover{background-color:#4b5563;transform:translateY(-1px)}.page-title{font-size:1.5rem;font-weight:600;color:#1f2937;margin:0}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#6b7280}.spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top:3px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.error-icon{font-size:3rem;margin-bottom:16px}.error-container h3{color:#dc2626;margin-bottom:8px}.error-message{color:#6b7280;margin-bottom:24px;max-width:500px}.retry-button{background-color:#3b82f6;color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s}.retry-button:hover{background-color:#2563eb}.search-section{margin-bottom:24px}.search-input{width:100%;max-width:500px;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;transition:all .2s}.search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-icon{font-size:4rem;margin-bottom:16px;opacity:.5}.empty-state h3{color:#374151;margin-bottom:8px}.empty-state p{color:#6b7280;max-width:400px}.studies-grid{width:100%;margin-bottom:32px;padding:0 8px}.studies-grid h3{color:#1f2937;margin-bottom:24px;font-size:1.25rem;text-align:center}.studies-grid>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:32px;margin-top:24px;align-items:stretch;width:100%}.study-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;height:auto;min-height:240px;position:static;z-index:1;margin:0;box-sizing:border-box}.study-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626;z-index:2}.study-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;gap:16px;flex-wrap:wrap}.study-name{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0;line-height:1.4;flex:1;min-width:0;word-wrap:break-word}.protocol-badge{background-color:#eff6ff;color:#1e40af;padding:6px 12px;border-radius:8px;font-size:.75rem;font-weight:500;white-space:nowrap;flex-shrink:0}.study-description{color:#6b7280;margin-bottom:16px;line-height:1.5}.study-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.info-item{display:flex;align-items:center;gap:4px;font-size:.875rem;color:#6b7280}.info-label{font-weight:500}.rct-badge{background-color:#ecfdf5;color:#059669;padding:4px 8px;border-radius:6px;font-size:.75rem;font-weight:500}.study-sites{display:flex;flex-wrap:wrap;gap:6px}.site-tag{background-color:#f3f4f6;color:#374151;padding:2px 8px;border-radius:4px;font-size:.75rem}.site-tag.more{background-color:#e5e7eb;font-weight:500}.site-selection{max-width:800px;margin:0 auto}.selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.back-btn{background-color:#6b7280;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.back-btn:hover{background-color:#4b5563}.study-info-banner{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px;margin-bottom:24px;text-align:center}.study-info-banner h4{margin:0 0 8px;color:#1f2937}.protocol-number{color:#6b7280;font-size:.875rem}.sites-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;margin-top:20px;align-items:stretch}.site-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;text-align:left;cursor:pointer;transition:all .2s ease;width:100%;box-sizing:border-box;position:static;margin:0}.site-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.site-header h5{margin:0 0 8px;color:#1f2937;font-weight:600}.site-location,.site-contact{margin:4px 0;color:#6b7280;font-size:.875rem}@media(max-width:768px){.patient-form-container{padding:16px}.header-section{flex-direction:column;align-items:stretch;text-align:center}.studies-grid{padding:0 4px}.studies-grid>div{grid-template-columns:1fr;gap:20px}.study-card{min-height:200px;padding:20px}.sites-grid{grid-template-columns:1fr}.selection-header{flex-direction:column;gap:12px;align-items:stretch}.study-header{flex-direction:column;align-items:stretch}.study-info{flex-direction:column;align-items:flex-start;gap:8px}}.site-selector button{margin:10px;padding:10px 20px;background:#3498db;border:none;color:#fff;border-radius:8px;cursor:pointer}.site-selector button:hover{background:#2980b9}.spinner{border:6px solid #f3f3f3;border-top:6px solid #3498db;border-radius:50%;width:60px;height:60px;animation:spin 1s linear infinite;margin:40px auto}.error-message{color:red;font-weight:700;text-align:center;margin-top:20px}.study-card-footer{margin-top:12px;padding-top:12px;border-top:1px solid #eef1f5}.public-link-btn{background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.public-link-btn:hover{background:#e0e7ff}.labresult-main-container{padding:1.5rem;max-width:1000px;margin:0 auto;background-color:#f8fafc;min-height:100vh}.labresult-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.labresult-title{font-size:1.75rem;font-weight:700;color:#1f2937;margin:0}.labresult-study-section,.labresult-search-section{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #00000014;margin-bottom:1.5rem}.labresult-search-container{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.labresult-search-input{flex:1;min-width:300px;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.95rem;transition:all .2s}.labresult-search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.labresult-patient-count{background:#eff6ff;color:#1e40af;padding:.5rem 1rem;border-radius:6px;font-weight:600;font-size:.875rem;white-space:nowrap}.labresult-patients-container{min-height:300px}.labresult-patient-card{border:1px solid #e5e7eb;padding:1.5rem;border-radius:12px;background:#fff;box-shadow:0 2px 8px #00000014;margin-bottom:1.5rem;transition:all .2s}.labresult-patient-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001f}.labresult-patient-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem}.labresult-patient-details{flex:1}.labresult-patient-name{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0 0 .5rem}.labresult-patient-code{color:#6b7280;font-weight:500;margin-left:.5rem}.labresult-patient-info{font-size:.875rem;color:#6b7280;line-height:1.5}.labresult-patient-actions{display:flex;gap:.75rem;flex-shrink:0}.labresult-form-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.labresult-variables-form{background:#f9fafb;padding:1.5rem;border-radius:8px;border:1px solid #e5e7eb}.labresult-variables-title{font-size:1.125rem;font-weight:600;color:#1f2937;margin:0 0 1.5rem}.labresult-variables-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.labresult-variable-group{display:flex;flex-direction:column}.labresult-variable-label{margin-bottom:.5rem;font-weight:500;color:#374151;font-size:.875rem;display:block}.labresult-variable-description{color:#6b7280;font-weight:400}.labresult-required{color:#ef4444;margin-left:.25rem}.labresult-form-actions{display:flex;gap:1rem;justify-content:flex-start;flex-wrap:wrap}.labresult-btn{background:#3b82f6;color:#fff;padding:.625rem 1.25rem;border-radius:8px;border:none;font-weight:500;cursor:pointer;transition:all .2s;font-size:.875rem;display:inline-flex;align-items:center;gap:.5rem;text-decoration:none}.labresult-btn:hover:not(:disabled){background:#2563eb;transform:translateY(-1px)}.labresult-btn:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.labresult-btn-secondary{background:#6b7280;color:#fff}.labresult-btn-secondary:hover:not(:disabled){background:#374151}.labresult-btn-active{background:#10b981}.labresult-btn-active:hover:not(:disabled){background:#059669}.labresult-save-btn{background:#10b981;color:#fff;padding:.75rem 1.5rem;border-radius:8px;border:none;font-weight:600;cursor:pointer;transition:all .2s;font-size:1rem;display:inline-flex;align-items:center;gap:.5rem}.labresult-save-btn:hover:not(:disabled){background:#059669;transform:translateY(-1px)}.labresult-save-btn:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.labresult-label{display:flex;flex-direction:column;gap:.5rem}.labresult-label-text{font-weight:600;color:#374151;font-size:.875rem}.labresult-select,.labresult-input{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;transition:all .2s;background-color:#fff;box-sizing:border-box}.labresult-select:focus,.labresult-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.labresult-select:disabled,.labresult-input:disabled{background-color:#f3f4f6;color:#6b7280;cursor:not-allowed}.labresult-error{border-color:#ef4444!important;box-shadow:0 0 0 3px #ef44441a!important}.labresult-error-message{color:#ef4444;font-size:.75rem;margin-top:.25rem;font-weight:500}.labresult-loading{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;color:#0284c7;font-weight:500}.spinner{width:1.25rem;height:1.25rem;border:2px solid #e5e7eb;border-top:2px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite}.spinner-small{width:1rem;height:1rem;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite;margin-right:.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.labresult-empty-state{text-align:center;padding:3rem 1.5rem;background:#fff;border-radius:12px;border:2px dashed #d1d5db}.labresult-empty-icon{font-size:3rem;margin-bottom:1rem}.labresult-empty-state h3{font-size:1.25rem;font-weight:600;color:#374151;margin:0 0 .5rem}.labresult-empty-state p{color:#6b7280;margin:0;line-height:1.5}.labresult-info-box{background:#fef3c7;border:1px solid #f59e0b;color:#92400e;padding:1rem;border-radius:8px;font-weight:500;text-align:center}.labresult-no-variables{padding:1.5rem}@media(max-width:768px){.labresult-main-container{padding:1rem}.labresult-patient-header{flex-direction:column;align-items:flex-start;gap:1rem}.labresult-patient-actions{width:100%;justify-content:flex-start}.labresult-variables-grid{grid-template-columns:1fr}.labresult-search-container{flex-direction:column;align-items:stretch}.labresult-search-input{min-width:unset}.labresult-form-actions{flex-direction:column}}.labresult-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:10000;padding:20px;box-sizing:border-box}.labresult-modal-content{background:#fff;border-radius:12px;box-shadow:0 25px 50px #00000040;max-height:90vh;overflow-y:auto;animation:modalSlideIn .3s ease-out;width:100%;max-width:1000px;position:relative}.labresult-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid #e5e7eb;background:#f8fafc;border-radius:12px 12px 0 0}.labresult-modal-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0}.labresult-modal-close{background:#ef4444;color:#fff;border:none;border-radius:50%;width:2.5rem;height:2.5rem;font-size:1.25rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.labresult-modal-close:hover:not(:disabled){background:#dc2626;transform:scale(1.1)}.labresult-modal-close:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.labresult-modal-body{padding:2rem;max-height:70vh;overflow-y:auto}.labresult-table-container{overflow-x:auto;border-radius:8px;border:1px solid #e5e7eb}.labresult-table{width:100%;border-collapse:collapse;background:#fff}.labresult-table th{background:#f8fafc;color:#374151;font-weight:600;padding:1rem;text-align:left;border-bottom:2px solid #e5e7eb;font-size:.875rem}.labresult-table td{padding:1rem;border-bottom:1px solid #f3f4f6;font-size:.875rem;color:#374151}.labresult-table tbody tr:hover{background:#f9fafb}.labresult-table tbody tr:last-child td{border-bottom:none}.labresult-variable-name{font-weight:600;color:#1f2937}.labresult-test-value{background:#eff6ff;color:#1e40af;font-weight:500;border-radius:4px;padding:.25rem .5rem;display:inline-block;min-width:60px;text-align:center}.labresult-test-date,.labresult-entered-by,.labresult-site-name{color:#6b7280}.labresult-edit-btn{background:#f59e0b;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s}.labresult-edit-btn:hover:not(:disabled){background:#d97706;transform:translateY(-1px)}.labresult-edit-btn:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.labresult-edit-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:15000}.labresult-edit-modal-content{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 25px 50px #00000040;max-width:400px;width:90%;animation:modalSlideIn .3s ease-out}.labresult-edit-modal-title{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0 0 1.5rem}.labresult-edit-input{width:100%;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;transition:all .2s;margin-bottom:1.5rem;box-sizing:border-box}.labresult-edit-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.labresult-edit-input:disabled{background-color:#f3f4f6;color:#6b7280;cursor:not-allowed}.labresult-edit-actions{display:flex;gap:1rem;justify-content:flex-end}.labresult-save-edit-btn{background:#10b981;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.labresult-save-edit-btn:hover:not(:disabled){background:#059669;transform:translateY(-1px)}.labresult-save-edit-btn:disabled{background:#9ca3af;cursor:not-allowed;transform:none}@media(max-width:768px){.labresult-modal-content{margin:1rem;max-width:calc(100% - 2rem)}.labresult-modal-header{padding:1rem 1.5rem}.labresult-modal-title{font-size:1.25rem}.labresult-modal-body{padding:1.5rem}.labresult-table th,.labresult-table td{padding:.75rem .5rem;font-size:.75rem}.labresult-edit-modal-content{padding:1.5rem}.labresult-edit-actions{flex-direction:column}}.alm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1100;padding:16px}.alm-modal{background:#fff;border-radius:14px;width:100%;max-width:620px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.alm-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 22px;border-bottom:1px solid #eef1f5}.alm-header h2{margin:0;font-size:18px;color:#1a1a2e}.alm-sub{margin:4px 0 0;color:#64748b;font-size:14px}.alm-close{background:none;border:none;font-size:20px;cursor:pointer;color:#94a3b8}.alm-body{overflow-y:auto;padding:16px 22px 22px}.alm-muted{color:#94a3b8;font-size:14px}.alm-timeline{list-style:none;margin:0;padding:0}.alm-item{border-left:3px solid #e2e8f0;padding:10px 0 10px 14px;margin-left:4px}.alm-item--create{border-left-color:#16a34a}.alm-item--update{border-left-color:#2b5dab}.alm-item--delete{border-left-color:#dc2626}.alm-item-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}.alm-action{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}.alm-action--create{background:#dcfce7;color:#166534}.alm-action--update{background:#dbeafe;color:#1e40af}.alm-action--delete{background:#fee2e2;color:#991b1b}.alm-table{font-weight:600;color:#334155}.alm-field{color:#475569}.alm-time{margin-left:auto;color:#94a3b8;font-size:12px}.alm-change{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0;font-size:13px}.alm-old{background:#fef2f2;color:#b91c1c;padding:2px 8px;border-radius:6px;text-decoration:line-through}.alm-arrow{color:#94a3b8}.alm-new{background:#f0fdf4;color:#166534;padding:2px 8px;border-radius:6px}.alm-meta{font-size:12px;color:#64748b;display:flex;gap:8px;flex-wrap:wrap}.alm-reason{color:#94a3b8}.sm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1100;padding:16px}.sm-modal{background:#fff;border-radius:14px;width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.sm-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 22px;border-bottom:1px solid #eef1f5}.sm-header h2{margin:0;font-size:18px;color:#1a1a2e}.sm-sub{margin:4px 0 0;color:#64748b;font-size:14px}.sm-close{background:none;border:none;font-size:20px;cursor:pointer;color:#94a3b8}.sm-body{overflow-y:auto;padding:16px 22px}.sm-muted{color:#94a3b8;font-size:14px}.sm-status{border-radius:10px;padding:10px 14px;margin-bottom:16px;font-size:14px;border:1px solid transparent}.sm-status--eligible{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.sm-status--ineligible{background:#fef2f2;color:#991b1b;border-color:#fecaca}.sm-status--incomplete{background:#fffbeb;color:#92400e;border-color:#fde68a}.sm-group{margin-bottom:16px}.sm-group h4{margin:0 0 8px;font-size:14px;color:#334155}.sm-group ul{list-style:none;margin:0;padding:0}.sm-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9}.sm-label{font-size:14px;color:#1e293b}.sm-yesno{display:flex;gap:6px;flex-shrink:0}.sm-yesno button{border:1px solid #d4dae3;background:#fff;color:#475569;border-radius:7px;padding:5px 14px;font-size:13px;cursor:pointer}.sm-yes.sm-on{background:#16a34a;border-color:#16a34a;color:#fff}.sm-no.sm-on{background:#dc2626;border-color:#dc2626;color:#fff}.sm-notes{display:flex;flex-direction:column;gap:5px;margin-top:8px}.sm-notes span{font-size:13px;color:#475569}.sm-notes textarea{border:1px solid #d4dae3;border-radius:8px;padding:9px 11px;font-size:14px;font-family:inherit;resize:vertical}.sm-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid #eef1f5}.sm-cancel{background:#f1f5f9;border:1px solid #d4dae3;color:#334155;border-radius:9px;padding:9px 16px;font-size:14px;cursor:pointer}.sm-save{background:linear-gradient(135deg,#2b5dab,#1e40af);color:#fff;border:none;border-radius:9px;padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer}.sm-save:disabled{opacity:.6;cursor:not-allowed}.saf-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1100;padding:16px}.saf-modal{background:#fff;border-radius:14px;width:100%;max-width:720px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.saf-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 22px;border-bottom:1px solid #eef1f5}.saf-header h2{margin:0;font-size:18px;color:#1a1a2e}.saf-sub{margin:4px 0 0;color:#64748b;font-size:14px}.saf-close{background:none;border:none;font-size:20px;cursor:pointer;color:#94a3b8}.saf-tabs{display:flex;gap:8px;padding:12px 22px 0}.saf-tab{background:#f1f5f9;border:1px solid #e2e8f0;color:#475569;border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer}.saf-tab--on{background:#2b5dab;border-color:#2b5dab;color:#fff;font-weight:600}.saf-body{overflow-y:auto;padding:16px 22px 22px}.saf-muted{color:#94a3b8;font-size:14px}.saf-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:14px;margin-bottom:18px}.saf-form h4{margin:0 0 12px;font-size:14px;color:#334155}.saf-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.saf-col2{grid-column:1 / -1}@media(max-width:520px){.saf-grid{grid-template-columns:1fr}}.saf-grid label{display:flex;flex-direction:column;gap:4px}.saf-grid label>span{font-size:12px;color:#64748b}.saf-grid input,.saf-grid select{border:1px solid #d4dae3;border-radius:8px;padding:8px 10px;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box}.saf-form-actions{display:flex;gap:8px;margin-top:12px}.saf-save{background:linear-gradient(135deg,#2b5dab,#1e40af);color:#fff;border:none;border-radius:9px;padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer}.saf-save:disabled{opacity:.6;cursor:not-allowed}.saf-cancel{background:#f1f5f9;border:1px solid #d4dae3;color:#334155;border-radius:9px;padding:9px 16px;font-size:14px;cursor:pointer}.saf-item{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;margin-bottom:8px}.saf-item-title{font-weight:600;color:#1e293b;font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.saf-item-meta{font-size:12px;color:#64748b;margin-top:3px}.saf-item-actions{display:flex;gap:6px;flex-shrink:0}.saf-item-actions button{background:#f1f5f9;border:1px solid #d4dae3;border-radius:7px;padding:5px 9px;font-size:13px;cursor:pointer}.saf-del{color:#b91c1c;border-color:#fecaca!important}.saf-sae{background:#dc2626;color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px}.saf-sev{font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px}.saf-sev--mild{background:#dcfce7;color:#166534}.saf-sev--moderate{background:#fef3c7;color:#92400e}.saf-sev--severe{background:#fee2e2;color:#991b1b}.obm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1100;padding:16px}.obm-modal{background:#fff;border-radius:14px;width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.obm-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 22px;border-bottom:1px solid #eef1f5}.obm-header h2{margin:0;font-size:18px;color:#1a1a2e}.obm-sub{margin:4px 0 0;color:#64748b;font-size:14px}.obm-close{background:none;border:none;font-size:20px;cursor:pointer;color:#94a3b8}.obm-body{overflow-y:auto;padding:16px 22px}.obm-muted{color:#94a3b8;font-size:14px}.obm-group-pick{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.obm-group-label{font-size:14px;color:#475569;font-weight:500}.obm-grp{background:#f1f5f9;border:1px solid #e2e8f0;color:#475569;border-radius:999px;padding:6px 16px;font-size:13px;cursor:pointer}.obm-grp--on{background:#5b21b6;border-color:#5b21b6;color:#fff;font-weight:600}.obm-section{margin-bottom:16px}.obm-section h4{margin:0 0 8px;font-size:14px;color:#334155}.obm-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid #f1f5f9}.obm-flabel{flex:1;font-size:14px;color:#1e293b}.obm-val,.obm-date{border:1px solid #d4dae3;border-radius:8px;padding:6px 9px;font-size:13px;font-family:inherit}.obm-val{min-width:110px}.obm-notes{display:flex;flex-direction:column;gap:5px;margin-top:8px}.obm-notes span{font-size:13px;color:#475569}.obm-notes textarea{border:1px solid #d4dae3;border-radius:8px;padding:9px 11px;font-size:14px;font-family:inherit;resize:vertical}.obm-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid #eef1f5}.obm-cancel{background:#f1f5f9;border:1px solid #d4dae3;color:#334155;border-radius:9px;padding:9px 16px;font-size:14px;cursor:pointer}.obm-save{background:linear-gradient(135deg,#5b21b6,#4c1d95);color:#fff;border:none;border-radius:9px;padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer}.obm-save:disabled{opacity:.6;cursor:not-allowed}.review-page{min-height:100vh;background:#f9fafb;padding:28px 24px;font-family:Inter,Segoe UI,sans-serif}.review-header{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px 20px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;box-shadow:0 1px 3px #00000012}.review-title{font-size:1.3rem;font-weight:700;color:#111827;margin:0}.btn-back{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#f3f4f6;color:#374151;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-back:hover{background:#e5e7eb}.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-primary:hover{background:#2563eb}.btn-outline{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#fff;color:#374151;border:1.5px solid #e5e7eb;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.btn-outline:hover{background:#f3f4f6}.btn-success{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;background:#22c55e;color:#fff;border:none;border-radius:7px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.btn-success:hover{background:#16a34a}.btn-warning{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;background:#f59e0b;color:#fff;border:none;border-radius:7px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.btn-warning:hover{background:#d97706}.btn-purple{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;background:#8b5cf6;color:#fff;border:none;border-radius:7px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.btn-purple:hover:not(:disabled){background:#7c3aed}.btn-purple:disabled{background:#9ca3af;cursor:not-allowed}.btn-save{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;background:#22c55e;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-save:hover:not(:disabled){background:#16a34a}.btn-save:disabled{opacity:.6;cursor:not-allowed}.btn-cancel{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;background:#fff;color:#374151;border:1.5px solid #e5e7eb;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-cancel:hover:not(:disabled){background:#f3f4f6}.btn-cancel:disabled{opacity:.6;cursor:not-allowed}.review-warning{background:#fffbeb;border:1px solid #fde68a;border-left:4px solid #f59e0b;border-radius:10px;padding:13px 18px;margin-bottom:20px;display:flex;align-items:flex-start;gap:12px}.review-warning-icon{font-size:1.25rem;flex-shrink:0;margin-top:1px}.review-warning-title{font-weight:700;color:#92400e;font-size:.875rem;margin-bottom:2px}.review-warning-text{color:#b45309;font-size:.82rem;margin:0}.review-controls{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:14px 20px;margin-bottom:20px;display:flex;flex-wrap:wrap;align-items:center;gap:10px;box-shadow:0 1px 3px #00000012}.review-select-label{font-size:.875rem;font-weight:600;color:#374151;white-space:nowrap}.review-select{padding:8px 12px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#111827;background:#fff;outline:none;min-width:240px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.review-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.review-table-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #00000012;overflow:hidden}.review-table-toolbar{padding:14px 20px;border-bottom:1px solid #f3f4f6;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.review-table-title{font-size:1rem;font-weight:700;color:#111827;margin:0 0 2px}.review-table-meta{font-size:.78rem;color:#9ca3af}.review-search-wrap{position:relative;flex:1;max-width:360px}.review-search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);pointer-events:none;font-size:.82rem;color:#9ca3af}.review-search{width:100%;padding:8px 32px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:.875rem;background:#f9fafb;color:#111827;outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s,background .15s}.review-search:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.review-search::placeholder{color:#9ca3af}.review-search-clear{position:absolute;right:9px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#9ca3af;font-size:.875rem;padding:2px;line-height:1}.review-search-clear:hover{color:#374151}.patient-table{width:100%;border-collapse:collapse;font-size:.85rem}.patient-table thead th{background:#1e40af;color:#fff;padding:11px 12px;text-align:left;font-weight:600;font-size:.78rem;white-space:nowrap;position:sticky;top:0;z-index:5}.patient-table tbody td{padding:10px 12px;border-bottom:1px solid #f3f4f6;color:#374151;vertical-align:middle}.patient-table tbody tr:last-child td{border-bottom:none}.patient-table tbody tr:nth-child(2n) td{background:#fafafa}.patient-table tbody tr:hover td{background:#eff6ff}.badge-male{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe;border-radius:9999px;font-size:.75rem;font-weight:500}.badge-female{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;background:#fce7f3;color:#9d174d;border:1px solid #fbcfe8;border-radius:9999px;font-size:.75rem;font-weight:500}.badge-arm{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;background:#dcfce7;color:#15803d;border:1px solid #bbf7d0;border-radius:9999px;font-size:.75rem;font-weight:600}.badge-pending{display:inline-flex;align-items:center;gap:3px;padding:3px 9px;background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb;border-radius:9999px;font-size:.75rem}.badge-active{display:inline-flex;align-items:center;padding:3px 9px;background:#dcfce7;color:#15803d;border-radius:9999px;font-size:.75rem;font-weight:600;cursor:pointer;border:1px solid #bbf7d0;transition:background .15s}.badge-active:hover{background:#bbf7d0}.badge-inactive{display:inline-flex;align-items:center;padding:3px 9px;background:#f3f4f6;color:#6b7280;border-radius:9999px;font-size:.75rem;font-weight:600;cursor:pointer;border:1px solid #e5e7eb;transition:background .15s}.badge-inactive:hover{background:#e5e7eb}.enrollment-select{padding:4px 8px;border:1.5px solid #e5e7eb;border-radius:7px;font-size:.78rem;color:#374151;background:#fff;outline:none;cursor:pointer;transition:border-color .15s}.enrollment-select:focus{border-color:#3b82f6}.arm-date{font-size:.7rem;color:#9ca3af;margin-top:3px}.table-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.review-empty{padding:48px 20px;text-align:center}.review-empty-icon{font-size:2.5rem;margin-bottom:10px}.review-empty-title{font-size:.95rem;font-weight:600;color:#374151;margin:0 0 4px}.review-empty-text{font-size:.85rem;color:#9ca3af;margin:0}.no-study-placeholder{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:56px 20px;text-align:center;box-shadow:0 1px 3px #00000012;color:#9ca3af}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-backdrop-dark{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1050;padding:20px}.review-modal{background:#fff;border-radius:16px;box-shadow:0 24px 64px #0000002e;width:100%;max-height:88vh;overflow:hidden;display:flex;flex-direction:column;animation:review-modal-in .2s cubic-bezier(.34,1.56,.64,1)}.review-modal-sm{max-width:460px}.review-modal-lg{max-width:860px}@keyframes review-modal-in{0%{opacity:0;transform:scale(.93) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.review-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f3f4f6;flex-shrink:0}.review-modal-title{font-size:1rem;font-weight:700;color:#111827;margin:0;display:flex;align-items:center;gap:8px}.review-modal-subtitle{font-size:.8rem;color:#6b7280;font-weight:400}.review-modal-close{width:32px;height:32px;border-radius:50%;border:none;background:#f3f4f6;color:#6b7280;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0}.review-modal-close:hover{background:#fee2e2;color:#dc2626}.review-modal-close:disabled{opacity:.5;cursor:not-allowed}.review-modal-body{flex:1;overflow-y:auto;padding:16px 20px;scrollbar-width:thin;scrollbar-color:#e5e7eb transparent}.review-modal-body::-webkit-scrollbar{width:5px}.review-modal-body::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:9999px}.review-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:13px 20px;border-top:1px solid #f3f4f6;flex-shrink:0}.lab-table{width:100%;border-collapse:collapse;font-size:.875rem}.lab-table th{background:#f9fafb;border-bottom:2px solid #e5e7eb;padding:10px 12px;text-align:left;font-weight:600;color:#374151;font-size:.8rem;white-space:nowrap}.lab-table td{padding:10px 12px;border-bottom:1px solid #f3f4f6;color:#4b5563;vertical-align:middle}.lab-table tbody tr:last-child td{border-bottom:none}.lab-table tbody tr:hover td{background:#f9fafb}.lab-value-badge{display:inline-block;padding:2px 9px;background:#eff6ff;color:#1e40af;border:1px solid #dbeafe;border-radius:6px;font-weight:600;font-size:.85rem}.edit-result-field{width:100%;padding:10px 14px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:.9rem;color:#111827;outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.edit-result-field:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.edit-result-field:disabled{opacity:.6;background:#f9fafb}.sequence-block-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:#eff6ff;border:1px solid #dbeafe;border-radius:10px;padding:14px 16px;margin-bottom:14px}.sequence-meta-item{display:flex;flex-direction:column;gap:2px}.sequence-meta-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#9ca3af}.sequence-meta-value{font-size:.9rem;font-weight:600;color:#1e40af}.sequence-section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;margin-bottom:8px}.sequence-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.sequence-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;font-size:.875rem;color:#374151;background:#f9fafb;border:1px solid #f3f4f6}.sequence-item-index{width:22px;height:22px;border-radius:50%;background:#e5e7eb;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#6b7280;flex-shrink:0}.sequence-item--current{background:#f0fdf4;border-color:#bbf7d0}.sequence-item--current .sequence-item-index{background:#22c55e;color:#fff}.sequence-item-name{flex:1;font-weight:500}.sequence-item-next{font-size:.7rem;font-weight:700;color:#22c55e;background:#dcfce7;padding:2px 7px;border-radius:9999px;flex-shrink:0}.spinner-sm{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .65s linear infinite;flex-shrink:0}.spinner-lg{width:36px;height:36px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .75s linear infinite}.loading-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px;color:#6b7280;font-size:.875rem}@media(max-width:768px){.review-page{padding:16px 12px}.review-header{flex-direction:column;align-items:flex-start}.patient-table thead th,.patient-table tbody td{padding:8px;font-size:.78rem}.btn-success,.btn-warning,.btn-purple{padding:4px 8px;font-size:.75rem}}.patient-table{border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #00000014;background:#fff}.patient-table th,.patient-table td{padding:16px 12px;border-bottom:1px solid #e5e7eb;vertical-align:middle}.patient-table th{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;font-weight:600;position:sticky;top:0;z-index:10;text-shadow:0 1px 2px rgba(0,0,0,.1)}.patient-table tbody tr{transition:all .2s ease}.patient-table tbody tr:nth-child(2n){background:#f8fafc}.patient-table tbody tr:hover{background:#dbeafe;transform:translateY(-1px);box-shadow:0 2px 8px #3b82f626}.treatment-arm-badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:20px;font-size:.875rem;font-weight:500;background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 2px 4px #10b98133}.status-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:500}.gender-male{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border:1px solid #93c5fd}.gender-female{background:linear-gradient(135deg,#fce7f3,#fbcfe8);color:#be185d;border:1px solid #f9a8d4}.action-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.action-btn{padding:6px 12px;border-radius:8px;font-weight:500;font-size:.875rem;transition:all .2s ease;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;box-shadow:0 2px 4px #0000001a}.action-btn:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.lab-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.edit-btn{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.randomize-btn{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.randomize-btn:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.active-btn{padding:6px 12px;border-radius:8px;font-weight:500;font-size:.875rem;transition:all .2s ease;border:none;cursor:pointer}.active-btn.active{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.active-btn.inactive{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.stats-card{background:linear-gradient(135deg,#fff,#f8fafc);border-radius:12px;padding:20px;box-shadow:0 4px 12px #0000000d;border:1px solid #e2e8f0}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006}.modal-content{border-radius:16px;box-shadow:0 20px 40px #00000026;max-height:90vh;overflow-y:auto}@media(max-width:768px){.action-buttons{flex-direction:column;gap:4px}.patient-table th,.patient-table td{padding:8px 6px;font-size:.875rem}.action-btn{font-size:.75rem;padding:4px 8px}}@keyframes modal-in{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.animate-modal-in{animation:modal-in .3s ease-out}.z-60{z-index:60}@media(max-width:768px){.fixed.inset-0 .max-w-5xl{max-width:calc(100% - 2rem);margin:1rem}.overflow-x-auto table{font-size:.875rem}.overflow-x-auto th,.overflow-x-auto td{padding:.5rem .25rem}}.elig-badge{display:inline-block;margin-left:8px;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;vertical-align:middle}.elig-eligible{background:#dcfce7;color:#166534}.elig-ineligible{background:#fee2e2;color:#991b1b}.elig-incomplete{background:#fef3c7;color:#92400e}.change-password-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f4f6f9;padding:20px}.change-password-form{background:#fff;padding:40px 30px;border-radius:12px;box-shadow:0 4px 15px #0000001a;width:100%;max-width:360px;text-align:center}.change-password-form h2{margin-bottom:25px;color:#333}.input-group{position:relative;margin-bottom:20px;width:100%}.input-group input{width:100%;padding:12px 44px 12px 14px;border:1px solid #ccc;border-radius:8px;font-size:16px;box-sizing:border-box}.toggle-eye{position:absolute;top:50%;right:12px;transform:translateY(-50%);cursor:pointer;font-size:16px;color:#555}button[type=submit]{width:100%;padding:12px;background-color:#007bff;border:none;color:#fff;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;margin-top:10px}button[type=submit]:hover{background-color:#0056b3}button[type=submit]:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.7}.back-button{display:inline-block;margin-top:15px;padding:10px 14px;font-size:15px;border-radius:8px;background-color:#ddd;color:#333;text-decoration:none;cursor:pointer;transition:background .2s ease-in-out}.back-button:hover{background-color:#ccc}.back-button:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed;opacity:.7}.form-message{text-align:center;margin-top:12px;font-weight:500;padding:8px;border-radius:4px;animation:fadeIn .3s ease-in-out}.success-message{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.error-message{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cup-page{max-width:1100px;margin:0 auto;padding:24px 20px;font-family:Segoe UI,system-ui,sans-serif}.cup-topbar{display:flex;align-items:center;gap:16px;margin-bottom:20px}.cup-page-title{font-size:1.25rem;font-weight:700;color:#1e293b;margin:0}.cup-back-btn{padding:6px 14px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#475569;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s}.cup-back-btn:hover{background:#e2e8f0}.cup-layout{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}.cup-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.cup-card-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid #f1f5f9;background:#f8fafc}.cup-card-icon{font-size:1rem}.cup-card-title{font-size:.9rem;font-weight:600;color:#1e293b;margin:0;flex:1;display:flex;align-items:center;gap:8px}.cup-user-count{font-size:.75rem;font-weight:600;color:#64748b;background:#e2e8f0;padding:2px 8px;border-radius:99px}.cup-form{padding:16px;display:flex;flex-direction:column;gap:10px}.cup-field{display:flex;flex-direction:column;gap:4px;flex:1}.cup-field label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.03em}.cup-field input,.cup-field select{padding:7px 10px;border:1px solid #e2e8f0;border-radius:7px;font-size:.875rem;color:#1e293b;background:#fff;transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box}.cup-field input:focus,.cup-field select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.cup-field-row{display:flex;gap:10px}.cup-btn{padding:8px 16px;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;white-space:nowrap}.cup-btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.cup-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.cup-btn-primary{background:#6366f1;color:#fff}.cup-btn-danger{background:#ef4444;color:#fff}.cup-search-wrap{position:relative;padding:10px 12px;border-bottom:1px solid #f1f5f9;display:flex;align-items:center;gap:6px}.cup-search-icon{font-size:.85rem;color:#94a3b8}.cup-search{flex:1;border:none;outline:none;font-size:.85rem;color:#1e293b;background:transparent}.cup-search-clear{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:.8rem;padding:2px 6px;border-radius:4px;transition:color .15s}.cup-search-clear:hover{color:#ef4444;background:#fef2f2}.cup-table-wrap{overflow-x:auto;max-height:420px;overflow-y:auto}.cup-table{width:100%;border-collapse:collapse;font-size:.84rem}.cup-table thead th{padding:8px 12px;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fafc;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:1}.cup-table tbody tr{cursor:pointer;border-bottom:1px solid #f1f5f9;transition:background .1s}.cup-table tbody tr:hover{background:#f8fafc}.cup-table tbody tr:last-child{border-bottom:none}.cup-table td{padding:8px 12px;color:#334155;vertical-align:middle}.cup-td-username{font-weight:600;color:#1e293b}.cup-td-muted{color:#94a3b8;font-size:.8rem}.cup-row-selected{background:#eef2ff!important}.cup-row-selected td,.cup-row-selected .cup-td-username{color:#4338ca}.cup-empty-row{text-align:center;padding:24px!important;color:#94a3b8;font-style:italic}.cup-loading{padding:24px;text-align:center;color:#94a3b8;font-size:.875rem}.cup-role-badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:.7rem;font-weight:700;color:#fff;letter-spacing:.02em}.cup-manage-card{margin-top:16px}.cup-selected-name{display:flex;align-items:center;gap:8px;font-weight:700;color:#4338ca}.cup-deselect{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:.85rem;padding:4px 8px;border-radius:6px;margin-left:auto;transition:color .15s,background .15s}.cup-deselect:hover{color:#ef4444;background:#fef2f2}.cup-tabs{display:flex;gap:0;border-bottom:1px solid #e2e8f0;background:#f8fafc;padding:0 12px}.cup-tab{padding:10px 16px;background:none;border:none;border-bottom:2px solid transparent;font-size:.83rem;font-weight:600;color:#64748b;cursor:pointer;transition:color .15s,border-color .15s;margin-bottom:-1px}.cup-tab:hover{color:#4338ca}.cup-tab-active{color:#4338ca;border-bottom-color:#6366f1}.cup-tab-body{padding:16px}.cup-inline-row{display:flex;gap:10px;align-items:center}.cup-inline-input{flex:1;padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;color:#1e293b;transition:border-color .15s,box-shadow .15s}.cup-inline-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.cup-profile-row{display:flex;flex-direction:column;gap:12px}@media(max-width:768px){.cup-layout{grid-template-columns:1fr}.cup-field-row{flex-direction:column}}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}.confirm-box{background:#fff;border-radius:12px;box-shadow:0 25px 50px #00000040;width:100%;max-width:28rem;padding:24px;box-sizing:border-box}.confirm-header{display:flex;align-items:center;margin-bottom:16px}.confirm-icon{width:48px;height:48px;border-radius:9999px;display:flex;align-items:center;justify-content:center;margin-right:16px;font-size:1.25rem;flex-shrink:0}.confirm-icon-danger{background:#fee2e2}.confirm-icon-warning{background:#fef9c3}.confirm-icon-info{background:#dbeafe}.confirm-title{margin:0;font-size:1.125rem;font-weight:600;color:#111827}.confirm-message{color:#4b5563;margin:0 0 24px;line-height:1.5}.confirm-actions{display:flex;gap:12px;justify-content:flex-end}.confirm-btn{padding:8px 16px;border-radius:6px;border:none;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .15s}.confirm-btn-cancel{color:#374151;background:#e5e7eb}.confirm-btn-cancel:hover{background:#d1d5db}.confirm-btn-danger{color:#fff;background:#ef4444}.confirm-btn-danger:hover{background:#dc2626}.confirm-btn-warning{color:#fff;background:#eab308}.confirm-btn-warning:hover{background:#ca8a04}.confirm-btn-info{color:#fff;background:#3b82f6}.confirm-btn-info:hover{background:#2563eb}.site-container{padding:1.5rem;max-width:900px;margin:0 auto;background-color:#f8fafc;min-height:100vh}.site-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.75rem}.site-btn-back{padding:.5rem 1rem;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;font-size:.875rem;font-weight:500;color:#475569;cursor:pointer;transition:all .15s;white-space:nowrap}.site-btn-back:hover{background:#e2e8f0;color:#1e293b}.site-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0}.site-form-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014;margin-bottom:1.5rem;border:1px solid #e5e7eb}.site-section-title{font-size:1rem;font-weight:600;color:#374151;margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.site-count-badge{background:#eff6ff;color:#1e40af;font-size:.8rem;font-weight:600;padding:.15rem .6rem;border-radius:9999px;margin-left:.5rem}.site-add-form{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-start}.site-input{flex:1;min-width:200px;padding:.625rem .875rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.875rem;transition:border-color .15s,box-shadow .15s;background:#fff}.site-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.site-input:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.site-btn-primary{padding:.625rem 1.25rem;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.site-btn-primary:hover:not(:disabled){background:#2563eb;transform:translateY(-1px)}.site-btn-primary:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.site-list-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014;border:1px solid #e5e7eb}.site-list-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.site-search-wrap{display:flex;align-items:center;gap:.5rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:.375rem .75rem}.site-search-icon{font-size:.875rem}.site-search{border:none;background:transparent;font-size:.875rem;outline:none;color:#374151;width:180px}.site-search-clear{border:none;background:none;cursor:pointer;color:#9ca3af;font-size:.875rem;padding:0;line-height:1}.site-search-clear:hover{color:#6b7280}.site-loading{display:flex;align-items:center;gap:.75rem;padding:2rem;justify-content:center;color:#6b7280;font-size:.875rem}.site-spinner{width:1.25rem;height:1.25rem;border:2px solid #e5e7eb;border-top:2px solid #3b82f6;border-radius:50%;animation:site-spin 1s linear infinite}@keyframes site-spin{to{transform:rotate(360deg)}}.site-empty{text-align:center;padding:3rem 1.5rem}.site-empty-icon{font-size:2.5rem;margin-bottom:.75rem}.site-empty-title{font-size:1rem;font-weight:600;color:#374151;margin:0 0 .25rem}.site-empty-sub{font-size:.875rem;color:#9ca3af;margin:0}.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.site-card{border:1px solid #e5e7eb;border-radius:10px;padding:1rem 1.25rem;display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;transition:box-shadow .15s,transform .15s;background:#fafafa}.site-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.site-card-info{flex:1;min-width:0}.site-card-name{font-weight:600;color:#111827;font-size:.95rem;margin-bottom:.25rem;word-break:break-word}.site-card-location{font-size:.825rem;color:#6b7280;word-break:break-word}.site-card-actions{display:flex;gap:.5rem;flex-shrink:0}.site-btn-edit,.site-btn-delete{border:none;border-radius:6px;width:2rem;height:2rem;font-size:.9rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.site-btn-edit{background:#fef9c3}.site-btn-edit:hover{background:#fde68a;transform:scale(1.1)}.site-btn-delete{background:#fee2e2}.site-btn-delete:hover{background:#fecaca;transform:scale(1.1)}.site-edit-form{width:100%;display:flex;flex-direction:column;gap:.5rem}.site-edit-actions{display:flex;gap:.5rem;justify-content:flex-end}.site-btn-save{padding:.375rem .875rem;background:#10b981;color:#fff;border:none;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.site-btn-save:hover:not(:disabled){background:#059669}.site-btn-save:disabled{background:#9ca3af;cursor:not-allowed}.site-btn-cancel{padding:.375rem .875rem;background:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s}.site-btn-cancel:hover:not(:disabled){background:#e5e7eb}@media(max-width:640px){.site-container{padding:1rem}.site-add-form{flex-direction:column}.site-input{min-width:unset}.site-btn-primary{width:100%}.site-list-header{flex-direction:column;align-items:flex-start}.site-grid{grid-template-columns:1fr}}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:12px;box-shadow:0 25px 50px #00000040;max-height:90vh;overflow-y:auto;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px;border-bottom:1px solid #e5e7eb}.modal-header h3{margin:0;font-size:1.5rem;font-weight:600;color:#1f2937}.close-btn{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s}.close-btn:hover{background-color:#f3f4f6;color:#374151}.close-btn:disabled{cursor:not-allowed;opacity:.5}.study-form{padding:24px}.form-group{margin-bottom:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:#374151;font-size:.875rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;transition:all .2s;background-color:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}.checkbox-label{display:flex!important;align-items:center;gap:8px;cursor:pointer;margin-bottom:0!important}.checkbox-label input[type=checkbox]{width:auto;margin:0}.checkbox-label span{font-weight:500;color:#374151}.error-text{display:block;color:#ef4444;font-size:.75rem;margin-top:4px;font-weight:500}.form-hint{display:block;color:#6b7280;font-size:.75rem;margin-top:4px;font-style:italic}.rct-section{background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:20px;margin-top:16px}.rct-section h4{margin:0 0 16px;font-size:1rem;font-weight:600;color:#1e40af}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:20px;border-top:1px solid #e5e7eb;margin-top:24px}.cancel-btn,.submit-btn{padding:10px 20px;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s;border:none;display:flex;align-items:center;gap:6px}.cancel-btn{background-color:#f3f4f6;color:#374151}.cancel-btn:hover:not(:disabled){background-color:#e5e7eb}.submit-btn{background-color:#3b82f6;color:#fff}.submit-btn:hover:not(:disabled){background-color:#2563eb}.cancel-btn:disabled,.submit-btn:disabled{cursor:not-allowed;opacity:.6}.spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}@media(max-width:768px){.modal{padding:10px}.modal-content{width:100%;max-width:none}.form-row{grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse}.cancel-btn,.submit-btn{width:100%;justify-content:center}}.ssm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.ssm-modal{background:#fff;border-radius:14px;width:100%;max-width:860px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040}.ssm-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 22px;border-bottom:1px solid #eef1f5}.ssm-header h2{margin:0;font-size:18px;color:#1a1a2e}.ssm-sub{margin:4px 0 0;color:#64748b;font-size:14px}.ssm-close{background:none;border:none;font-size:20px;cursor:pointer;color:#94a3b8}.ssm-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:14px 22px 0}.ssm-tab{background:#f1f5f9;border:1px solid #e2e8f0;color:#475569;border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer}.ssm-tab--active{background:#2b5dab;border-color:#2b5dab;color:#fff;font-weight:600}.ssm-body{overflow:auto;padding:16px 22px 22px}.ssm-muted{color:#94a3b8;font-size:14px}.ssm-table{width:100%;border-collapse:collapse;font-size:13px}.ssm-table th{text-align:left;color:#64748b;font-weight:600;padding:8px;border-bottom:1px solid #eef1f5;white-space:nowrap}.ssm-table td{padding:9px 8px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.ssm-device{color:#475569}.ssm-rev{font-size:11px;padding:2px 9px;border-radius:999px;font-weight:600}.ssm-rev--pending{background:#fef3c7;color:#92400e}.ssm-rev--approved{background:#dcfce7;color:#166534}.ssm-rev--rejected{background:#fee2e2;color:#991b1b}.ssm-actions{display:flex;gap:6px;flex-wrap:wrap}.ssm-detail{background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe;border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer}.ssm-approve{background:#16a34a;color:#fff;border:none;border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer}.ssm-reject{background:#fff;color:#b91c1c;border:1px solid #fecaca;border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer}@media(max-width:560px){.ssm-device{display:none}.ssm-table th:nth-child(3){display:none}}.sdm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a94;display:flex;align-items:center;justify-content:center;padding:18px;z-index:1000;box-sizing:border-box}.sdm-modal{width:min(1080px,100%);max-height:92vh;background:#fff;border-radius:12px;box-shadow:0 24px 60px #0f172a47;overflow:hidden;display:flex;flex-direction:column}.sdm-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 22px;border-bottom:1px solid #e5e7eb;background:#f8fafc}.sdm-header h3{margin:0;font-size:1.15rem;color:#0f172a}.sdm-header p{margin:4px 0 0;color:#64748b;font-size:.875rem}.sdm-close{width:34px;height:34px;border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:8px;cursor:pointer;font-weight:700}.sdm-body{overflow-y:auto;padding:18px 22px 24px}.sdm-loading,.sdm-error{padding:36px;text-align:center;color:#64748b}.sdm-error{color:#b91c1c}.sdm-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:16px}.sdm-stat{border:1px solid #e5e7eb;border-radius:8px;padding:12px 14px;background:#fff}.sdm-stat-label{display:block;color:#64748b;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.sdm-stat-value{display:block;margin-top:4px;font-size:1.45rem;color:#0f172a}.sdm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.sdm-panel{border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:14px;margin-bottom:14px}.sdm-panel h4{margin:0 0 12px;color:#1e293b;font-size:.95rem}.sdm-empty{margin:0;color:#94a3b8;font-size:.875rem}.sdm-bars{display:flex;flex-direction:column;gap:10px}.sdm-bar-meta{display:flex;justify-content:space-between;gap:10px;font-size:.83rem;color:#334155;margin-bottom:4px}.sdm-bar-track{height:8px;background:#f1f5f9;border-radius:999px;overflow:hidden}.sdm-bar-fill{height:100%;background:#2563eb;border-radius:999px}.sdm-months{display:flex;align-items:flex-end;gap:10px;min-height:138px;overflow-x:auto;padding-bottom:4px}.sdm-month{min-width:58px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;color:#475569;font-size:.75rem}.sdm-month-bar{width:28px;background:#0f766e;border-radius:7px 7px 2px 2px}.sdm-table-wrap{overflow-x:auto}.sdm-table{width:100%;border-collapse:collapse;font-size:.84rem}.sdm-table th,.sdm-table td{border-bottom:1px solid #e5e7eb;padding:8px 10px;text-align:left;white-space:nowrap}.sdm-table th{color:#475569;background:#f8fafc;font-size:.75rem;text-transform:uppercase}@media(max-width:760px){.sdm-grid{grid-template-columns:1fr}.sdm-body{padding:14px}}.svm2-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.svm2-modal{background:#fff;border-radius:14px;width:100%;max-width:720px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040}.svm2-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 22px;border-bottom:1px solid #eef1f5}.svm2-header h2{margin:0;font-size:18px;color:#1a1a2e}.svm2-sub{margin:4px 0 0;color:#64748b;font-size:14px}.svm2-close{background:none;border:none;font-size:20px;cursor:pointer;color:#94a3b8}.svm2-body{overflow-y:auto;padding:18px 22px 22px}.svm2-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px;margin-bottom:20px}.svm2-form h4,.svm2-list h4{margin:0 0 12px;font-size:15px;color:#334155}.svm2-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.svm2-col2{grid-column:span 2}.svm2-col4{grid-column:1 / -1}@media(max-width:560px){.svm2-grid{grid-template-columns:1fr 1fr}.svm2-col2,.svm2-col4{grid-column:1 / -1}}.svm2-grid label{display:flex;flex-direction:column;gap:5px}.svm2-grid label>span{font-size:12px;color:#64748b}.svm2-grid input{border:1px solid #d4dae3;border-radius:8px;padding:9px 11px;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box}.svm2-form-actions{display:flex;gap:8px;margin-top:14px}.svm2-save{background:linear-gradient(135deg,#2b5dab,#1e40af);color:#fff;border:none;border-radius:9px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer}.svm2-save:disabled{opacity:.6;cursor:not-allowed}.svm2-cancel{background:#f1f5f9;border:1px solid #d4dae3;color:#334155;border-radius:9px;padding:10px 16px;font-size:14px;cursor:pointer}.svm2-list ul{list-style:none;margin:0;padding:0}.svm2-item{display:flex;justify-content:space-between;align-items:center;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;margin-bottom:8px}.svm2-item-main{display:flex;align-items:center;gap:12px}.svm2-seq{width:26px;height:26px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#ede9fe;color:#5b21b6;border-radius:999px;font-size:12px;font-weight:700}.svm2-name{font-weight:600;color:#1e293b}.svm2-meta{font-size:12px;color:#64748b;display:flex;gap:8px;flex-wrap:wrap}.svm2-item-actions{display:flex;gap:6px}.svm2-item-actions button{background:#f1f5f9;border:1px solid #d4dae3;border-radius:7px;padding:5px 9px;font-size:13px;cursor:pointer}.svm2-del{color:#b91c1c;border-color:#fecaca!important}.svm2-muted{color:#94a3b8;font-size:14px}.ecm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.ecm-modal{background:#fff;border-radius:14px;width:100%;max-width:640px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040}.ecm-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 22px;border-bottom:1px solid #eef1f5}.ecm-header h2{margin:0;font-size:18px;color:#1a1a2e}.ecm-sub{margin:4px 0 0;color:#64748b;font-size:14px}.ecm-close{background:none;border:none;font-size:20px;cursor:pointer;color:#94a3b8}.ecm-body{overflow-y:auto;padding:18px 22px 22px}.ecm-add{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.ecm-add select,.ecm-add input{border:1px solid #d4dae3;border-radius:8px;padding:9px 11px;font-size:14px;font-family:inherit}.ecm-add input{flex:1;min-width:160px}.ecm-add-btn{background:linear-gradient(135deg,#2b5dab,#1e40af);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer}.ecm-add-btn:disabled{opacity:.6;cursor:not-allowed}.ecm-group{margin-bottom:18px}.ecm-group h4{margin:0 0 8px;font-size:14px;color:#334155}.ecm-muted{color:#94a3b8;font-size:14px;margin:4px 0}.ecm-list{margin:0;padding-left:22px}.ecm-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid #f1f5f9;font-size:14px;color:#1e293b}.ecm-del{background:none;border:none;cursor:pointer;font-size:14px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background-color:#00000080;display:flex;justify-content:center;align-items:center}.modal-content{background:#fff;padding:32px;border-radius:12px;width:90%;max-width:800px;box-shadow:0 10px 25px #0003;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.modal-content input,.modal-content select{width:100%;padding:10px 14px;border:1px solid #ccc;border-radius:6px;margin-bottom:12px;font-size:14px;transition:border-color .2s ease}.modal-content input:focus,.modal-content select:focus{border-color:#3498db;outline:none}.flex.items-center.gap-2.mb-4{display:flex;align-items:center;gap:8px;margin-bottom:20px}.flex.items-center.gap-2.mb-4 input[type=checkbox]{transform:scale(1.2)}.assign-btn{background-color:#3498db;color:#fff;padding:10px 16px;border:none;border-radius:6px;font-size:14px;cursor:pointer}.assign-btn:hover{background-color:#2980b9}.bg-red-500{background-color:#e74c3c}.bg-red-500:hover{background-color:#c0392b}.modal-content ul{margin-top:24px;border-top:1px solid #eee;padding-top:16px;max-height:300px;overflow-y:auto}.modal-content ul li{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #f3f3f3;font-size:14px}.unassign-btn{background:none;border:none;color:#e74c3c;font-size:16px;cursor:pointer}.unassign-btn:hover{color:#c0392b}.svm-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.svm-header h3{margin:0}.svm-close{background:none;border:none;font-size:22px;line-height:1;color:#94a3b8;cursor:pointer;padding:4px 8px;border-radius:6px}.svm-close:hover{background:#f1f5f9;color:#334155}.assign-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:backdrop-in .15s ease}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.assign-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000002e,0 4px 12px #00000014;width:100%;max-width:440px;display:flex;flex-direction:column;max-height:85vh;animation:modal-in .2s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes modal-in{0%{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.assign-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid #f3f4f6;flex-shrink:0}.assign-modal-title{font-size:1.1rem;font-weight:700;color:#111827;margin:0 0 4px}.assign-modal-subtitle{font-size:.82rem;color:#6b7280;margin:0}.assign-modal-subtitle strong{color:#374151;font-weight:600}.assign-modal-close{width:32px;height:32px;border:none;background:#f3f4f6;border-radius:50%;font-size:1.1rem;cursor:pointer;color:#6b7280;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s;line-height:1}.assign-modal-close:hover{background:#e5e7eb;color:#111827}.assign-modal-search-wrap{position:relative;padding:14px 16px 10px;flex-shrink:0}.assign-modal-search-icon{position:absolute;left:28px;top:50%;transform:translateY(-50%);font-size:.875rem;pointer-events:none;color:#9ca3af}.assign-modal-search{width:100%;padding:9px 12px 9px 36px;border:1.5px solid #e5e7eb;border-radius:9px;font-size:.875rem;background:#f9fafb;color:#111827;outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s,background .15s}.assign-modal-search:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.assign-modal-search::placeholder{color:#9ca3af}.assign-modal-list{flex:1;overflow-y:auto;padding:4px 16px 12px;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:#e5e7eb transparent}.assign-modal-list::-webkit-scrollbar{width:5px}.assign-modal-list::-webkit-scrollbar-track{background:transparent}.assign-modal-list::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:9999px}.assign-modal-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 0;font-size:.875rem;color:#9ca3af;text-align:center}.assign-modal-empty-icon{font-size:2rem}.assign-modal-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1.5px solid transparent;border-radius:10px;padding:11px 14px;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;background:#f9fafb}.assign-modal-item:hover:not(:disabled){transform:translate(2px)}.assign-modal-item:disabled{opacity:.5;cursor:not-allowed}.assign-modal-item--blue{border-color:#dbeafe;background:#eff6ff}.assign-modal-item--blue:hover:not(:disabled){background:#dbeafe;border-color:#93c5fd}.assign-modal-item--purple{border-color:#ede9fe;background:#f5f3ff}.assign-modal-item--purple:hover:not(:disabled){background:#ede9fe;border-color:#c4b5fd}.assign-modal-item-icon{font-size:1.25rem;flex-shrink:0}.assign-modal-item-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#8b5cf6,#6d28d9);color:#fff;font-size:.85rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.assign-modal-item-body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.assign-modal-item-name{font-size:.875rem;font-weight:600;color:#1e40af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assign-modal-item--purple .assign-modal-item-name{color:#5b21b6}.assign-modal-item-sub{font-size:.75rem;color:#60a5fa}.assign-modal-item--purple .assign-modal-item-sub{color:#7c3aed}.assign-modal-item-arrow{font-size:1rem;font-weight:700;color:#93c5fd;flex-shrink:0;margin-left:auto}.assign-modal-item--purple .assign-modal-item-arrow{color:#c4b5fd}.assign-modal-footer{display:flex;justify-content:flex-end;padding:12px 16px 16px;border-top:1px solid #f3f4f6;flex-shrink:0}.assign-modal-btn-close{padding:8px 20px;background:#fff;color:#374151;border:1.5px solid #e5e7eb;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.assign-modal-btn-close:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db}.assign-modal-btn-close:disabled{opacity:.5;cursor:not-allowed}:root{--blue: #3b82f6;--blue-dark: #2563eb;--blue-light: #eff6ff;--purple: #8b5cf6;--purple-light: #f5f3ff;--green: #22c55e;--green-light: #f0fdf4;--amber: #f59e0b;--red: #ef4444;--red-light: #fef2f2;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-400: #9ca3af;--gray-600: #4b5563;--gray-700: #374151;--gray-900: #111827;--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--shadow-lg: 0 10px 24px rgba(0,0,0,.1), 0 4px 8px rgba(0,0,0,.04);--radius: 12px;--radius-sm: 8px;--radius-pill: 9999px}.study-container{max-width:900px;margin:0 auto;padding:32px 24px;font-family:Inter,Segoe UI,sans-serif;color:var(--gray-900)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:12px}.page-title{font-size:1.5rem;font-weight:700;color:var(--gray-900);margin:0}.btn-back{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;text-decoration:none}.btn-back:hover{background:var(--gray-200)}.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;background:var(--blue);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,box-shadow .15s;box-shadow:0 1px 2px #3b82f64d}.btn-primary:hover{background:var(--blue-dark);box-shadow:0 3px 8px #3b82f659}.search-wrapper{position:relative;margin-bottom:24px}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--gray-400);pointer-events:none;font-size:1rem}.search-input{width:100%;padding:10px 14px 10px 40px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.9rem;color:var(--gray-900);background:#fff;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;outline:none}.search-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #3b82f61f}.search-input::placeholder{color:var(--gray-400)}.study-card-grid{display:flex;flex-direction:column;gap:16px;min-height:400px;position:relative}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#fffc;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--radius);z-index:10;gap:10px}.spinner{width:36px;height:36px;border:3px solid var(--gray-200);border-top-color:var(--blue);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.study-card{background:#fff;border:1px solid var(--gray-200);border-left:4px solid var(--blue);border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s}.study-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.study-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.study-title{font-size:1.1rem;font-weight:700;color:var(--gray-900);margin:0;line-height:1.4}.study-title-badges{display:flex;align-items:center;gap:6px;flex-shrink:0}.study-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--gray-100)}.study-meta-item{display:flex;flex-direction:column;gap:1px}.study-meta-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400)}.study-meta-value{font-size:.875rem;color:var(--gray-700);font-weight:500}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:600;line-height:1.4}.badge-rct{background:var(--green-light);color:#15803d;border:1px solid #bbf7d0}.badge-gray{background:var(--gray-100);color:var(--gray-600);border:1px solid var(--gray-200)}.toggle-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--gray-100);margin-bottom:2px}.toggle-label{font-size:.875rem;color:var(--gray-700);-webkit-user-select:none;user-select:none;cursor:pointer}.toggle-switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-pill);background:var(--gray-200);transition:background .2s;cursor:pointer}.toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}.toggle-switch input:checked+.toggle-track{background:var(--green)}.toggle-switch input:checked+.toggle-track:after{transform:translate(18px)}.rct-management{background:var(--blue-light);border:1px solid #bfdbfe;border-radius:var(--radius-sm);padding:14px;margin-top:12px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.section-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-400)}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.site-tag{display:inline-flex;align-items:center;gap:5px;background:var(--blue-light);color:var(--blue-dark);border:1px solid #bfdbfe;padding:4px 10px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:500}.user-tag{display:inline-flex;align-items:center;gap:5px;background:var(--purple-light);color:#6d28d9;border:1px solid #ddd6fe;padding:4px 10px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:500;height:auto;white-space:normal;line-height:1.4}.arm-tag{display:inline-flex;align-items:center;background:#fff;color:var(--blue-dark);border:1px solid #bfdbfe;padding:3px 10px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:500}.tag-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:none;background:#0000001f;color:inherit;cursor:pointer;font-size:.7rem;line-height:1;padding:0;transition:background .15s;flex-shrink:0}.tag-remove:hover{background:#00000040}.empty-state{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--gray-400);font-style:italic;padding:6px 0}.card-section{padding-top:12px;margin-top:12px;border-top:1px solid var(--gray-100)}.assign-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 13px;background:#fff;color:var(--blue);border:1.5px solid var(--blue);border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s;margin-top:6px}.assign-btn:hover:not(:disabled){background:var(--blue);color:#fff}.assign-btn:disabled{opacity:.45;cursor:not-allowed}.edit-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 16px;background:#fff;color:var(--amber);border:1.5px solid var(--amber);border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.edit-btn:hover{background:var(--amber);color:#fff}.archive-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 16px;background:#fff;color:var(--gray-600);border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.archive-btn:hover{background:var(--gray-600);color:#fff}.restore-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 16px;background:#fff;color:var(--green);border:1.5px solid var(--green);border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.restore-btn:hover{background:var(--green);color:#fff}.rct-action-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:#fff;color:var(--blue-dark);border:1px solid #bfdbfe;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s}.rct-action-btn:hover{background:#dbeafe}.card-actions,.export-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:12px;margin-top:12px;border-top:1px solid var(--gray-100)}.export-btn{display:inline-flex;align-items:center;justify-content:center;min-width:96px;padding:7px 14px;background:#fff;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.export-btn:disabled{opacity:.55;cursor:wait}.export-btn-dashboard{color:#334155;border:1.5px solid #cbd5e1}.export-btn-dashboard:hover:not(:disabled){background:#f8fafc;border-color:#64748b}.export-btn-csv{color:#047857;border:1.5px solid #a7f3d0}.export-btn-csv:hover:not(:disabled){background:#ecfdf5;border-color:#34d399}.export-btn-xlsx{color:var(--blue-dark);border:1.5px solid #bfdbfe}.export-btn-xlsx:hover:not(:disabled){background:var(--blue-light);border-color:var(--blue)}.pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:28px}.pagination-btn{padding:8px 18px;background:#fff;color:var(--blue);border:1.5px solid var(--blue);border-radius:var(--radius-pill);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.pagination-btn:hover:not(:disabled){background:var(--blue);color:#fff}.pagination-btn:disabled{opacity:.4;cursor:not-allowed;border-color:var(--gray-300);color:var(--gray-400)}.pagination-info{font-size:.875rem;color:var(--gray-600);padding:0 8px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:50;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{background:#fff;padding:24px;border-radius:var(--radius);max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-content h3{font-size:1.1rem;font-weight:700;margin-bottom:16px;color:var(--gray-900)}.modal-content ul{padding:10px 0;max-height:250px;overflow-y:auto}.modal-content li{margin-bottom:10px}.close-button{background:var(--red);color:#fff;padding:8px 14px;border:none;border-radius:var(--radius-sm);cursor:pointer;margin-top:10px;font-size:.875rem;font-weight:600;transition:background .15s}.close-button:hover{background:#dc2626}.site-item{display:flex;justify-content:space-between;align-items:center}.no-site,.no-user{display:none}.rct-badge{display:inline-block;background:var(--green-light);color:#15803d;padding:4px 8px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:600}.submissions-btn{background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe;border-radius:8px;padding:8px 14px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.submissions-btn:hover{background:#e0e7ff}.badge-type{background:#ede9fe;color:#5b21b6}.labresult-table-container{padding:1.5rem;max-width:900px;margin:0 auto}.labresult-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000012;overflow:hidden}.labresult-table th,.labresult-table td{border:1px solid #e5e7eb;padding:.75rem 1.25rem;text-align:left}.labresult-table th{background:linear-gradient(to right,#e0e7ff,#bae6fd);color:#1e293b;font-weight:600}.labresult-table tr:hover{background:#f0f9ff;transition:background .2s}.labresult-edit-btn{background:#facc15;color:#fff;font-weight:600;padding:.5rem 1.2rem;border-radius:6px;border:none;cursor:pointer;box-shadow:0 1px 4px #00000012;transition:background .2s}.labresult-edit-btn:hover{background:#eab308}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:50}.modal-content{background:#fff;padding:2rem 2.5rem;border-radius:10px;box-shadow:0 4px 24px #0000002e;min-width:320px;max-width:90vw}.superadmin-container,.dashboard-super-container{font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;min-height:100vh;background:linear-gradient(135deg,#f0f4ff,#d9e8ff)}.superadmin-body{padding:24px;max-width:1400px;margin:0 auto}.superadmin-hero{background:#ffffffd9;border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:0 4px 8px #00000014;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.superadmin-hero h2{margin:0;font-size:26px;color:#1a1a2e}.superadmin-hero p{margin:4px 0 0;color:#666;font-size:14px}.sa-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.sa-tab{padding:10px 22px;border-radius:8px;border:2px solid #dde3f0;background:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;color:#555}.sa-tab:hover{border-color:#1a73e8;color:#1a73e8}.sa-tab.active{background:#1a73e8;border-color:#1a73e8;color:#fff}.sa-section{background:#ffffffe6;border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:0 4px 8px #00000014}.sa-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.sa-section-header h3{margin:0;font-size:18px;color:#1a1a2e}.sa-table-wrapper{overflow-x:auto}.sa-table{width:100%;border-collapse:collapse;font-size:14px}.sa-table th{background:#f0f4ff;color:#333;font-weight:600;padding:10px 14px;text-align:left;border-bottom:2px solid #dde3f0}.sa-table td{padding:10px 14px;border-bottom:1px solid #eef0f5;vertical-align:middle}.sa-table tr:hover td{background:#f7f9ff}.badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600}.badge-active{background:#e6f9f0;color:#0a7c45}.badge-inactive{background:#fde8e8;color:#c0392b}.badge-trial{background:#fff3e0;color:#e65100}.badge-blue{background:#e8f0fe;color:#1a73e8}.badge-purple{background:#f3e8ff;color:#7b2ff7}.badge-gray{background:#f1f3f4;color:#666}.btn{padding:7px 16px;border-radius:7px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .2s}.btn:hover{opacity:.85}.btn-primary{background:#1a73e8;color:#fff}.btn-secondary{background:#f1f3f4;color:#444}.btn-danger{background:#d93025;color:#fff}.btn-warning{background:#f9ab00;color:#fff}.btn-sm{padding:4px 10px;font-size:12px}.btn-icon{background:none;padding:4px 8px;font-size:16px}.sa-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;justify-content:center;align-items:center;z-index:1000;padding:16px}.sa-modal{background:#fff;border-radius:14px;padding:28px;max-width:540px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 40px #0003}.sa-modal h3{margin:0 0 20px;font-size:18px;color:#1a1a2e}.sa-form-group{margin-bottom:16px}.sa-form-group label{display:block;font-size:13px;font-weight:600;color:#444;margin-bottom:5px}.sa-form-group input,.sa-form-group select,.sa-form-group textarea{width:100%;padding:9px 12px;border:1.5px solid #dde3f0;border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .2s;box-sizing:border-box}.sa-form-group input:focus,.sa-form-group select:focus,.sa-form-group textarea:focus{outline:none;border-color:#1a73e8}.sa-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sa-modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.sa-alert{padding:14px 18px;border-radius:8px;margin-bottom:20px;font-size:14px}.sa-alert-error{background:#fde8e8;color:#c0392b;border:1px solid #f5c6cb}.sa-alert-success{background:#e8f8ee;color:#27ae60;border:1px solid #b2dfdb}.sync-diff-section{margin-bottom:14px}.sync-diff-section h4{margin:0 0 6px;font-size:14px;color:#333}.sync-diff-section ul{margin:0;padding-left:20px;font-size:13px;line-height:1.7}.sync-diff-section code{font-size:12px;background:#f0f4ff;border-radius:3px;padding:1px 4px}.sync-col-list{color:#888;font-size:12px}.sync-col-type{color:#5c7cfa;font-size:12px;margin-left:6px}.sa-empty{text-align:center;padding:40px;color:#999;font-size:15px}.dashboard-super-container{min-height:100vh;background:linear-gradient(135deg,#f0f4ff,#d9e8ff)}.ds-body{padding:24px;max-width:1400px;margin:0 auto}.ds-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:24px}.ds-stat-card{background:#ffffffe6;border-radius:12px;padding:20px;box-shadow:0 4px 8px #00000012;text-align:center}.ds-stat-card .stat-icon{font-size:28px;margin-bottom:6px}.ds-stat-card .stat-value{font-size:28px;font-weight:700;color:#1a1a2e}.ds-stat-card .stat-label{font-size:13px;color:#666;margin-top:2px}.ds-stat-card.warning .stat-value{color:#d93025}.ds-stat-card.revenue .stat-value{font-size:20px}.sigpad{display:flex;flex-direction:column;gap:8px}.sigpad-canvas{width:100%;border:2px dashed #b9c2d0;border-radius:10px;background:linear-gradient(#fff,#fff) padding-box,repeating-linear-gradient(transparent,transparent 39px,#eef1f5 39px,#eef1f5 40px) padding-box;touch-action:none;cursor:crosshair}.sigpad-clear{align-self:flex-end;background:#f1f3f7;border:1px solid #d4dae3;color:#444;border-radius:8px;padding:6px 14px;font-size:13px;cursor:pointer}.sigpad-clear:hover{background:#e6e9ef}.pif-wrap{min-height:100vh;min-height:100dvh;background:linear-gradient(135deg,#eef2f7,#dde6f0);padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));display:flex;justify-content:center;overflow-x:hidden}.pif-wrap *,.pif-wrap *:before,.pif-wrap *:after{box-sizing:border-box}.pif-card{width:100%;max-width:720px;background:#fff;border-radius:16px;box-shadow:0 10px 40px #00000014;padding:28px 28px 32px}.pif-header{text-align:center;margin-bottom:20px}.pif-header h1{font-size:22px;margin:0 0 6px;color:#1a1a2e}.pif-study{font-weight:600;color:#2b5dab;margin:4px 0 0}.pif-site{color:#64748b;margin:2px 0 0;font-size:14px}.pif-section{border-top:1px solid #eef1f5;padding-top:18px;margin-top:18px}.pif-section:first-of-type{border-top:none;margin-top:0;padding-top:0}.pif-section h3{font-size:15px;color:#334155;margin:0 0 14px}.pif-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}@media(max-width:560px){.pif-grid{grid-template-columns:1fr}}.pif-field{display:flex;flex-direction:column;gap:6px}.pif-field--full{grid-column:1 / -1;margin-top:14px}.pif-field>span{font-size:13px;color:#475569;font-weight:500}.pif-field i{color:#e11d48;font-style:normal}.pif-input{width:100%;border:1px solid #d4dae3;border-radius:9px;padding:11px 12px;font-size:16px;min-height:44px;outline:none;transition:border-color .15s,box-shadow .15s;font-family:inherit;background:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea.pif-input{min-height:84px;resize:vertical}select.pif-input{padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center}.pif-input:focus{border-color:#2b5dab;box-shadow:0 0 0 3px #2b5dab1f}.pif-para-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.pif-para-item{display:flex;flex-direction:column;gap:4px}.pif-para-item label{font-size:12px;color:#64748b;text-align:center}.pif-para-item .pif-input{text-align:center;padding-left:6px;padding-right:6px}@media(max-width:420px){.pif-para-grid{grid-template-columns:repeat(2,1fr)}}.pif-datepicker-wrap{width:100%}.pif-datepicker-wrap .react-datepicker-wrapper,.pif-datepicker-wrap .react-datepicker__input-container{width:100%;display:block}.pif-checkgroup{display:flex;flex-wrap:wrap;gap:10px}.pif-check{display:flex;align-items:center;gap:6px;font-size:14px}.pif-consent{display:flex;gap:10px;align-items:flex-start;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;font-size:14px;color:#334155;margin-bottom:14px}.pif-consent input{margin-top:3px}.pif-sigwrap{display:flex;flex-direction:column;gap:8px}.pif-siglabel{font-size:13px;color:#475569;font-weight:500}.pif-honeypot{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.pif-turnstile{margin:18px 0 4px}.pif-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:9px;padding:10px 14px;font-size:14px;margin:14px 0}.pif-submit{width:100%;margin-top:20px;background:linear-gradient(135deg,#2b5dab,#1e40af);color:#fff;border:none;border-radius:10px;padding:14px;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .15s}.pif-submit:hover{opacity:.93}.pif-submit:disabled{opacity:.6;cursor:not-allowed}.pif-info-body{white-space:pre-wrap;line-height:1.65;color:#334155;font-size:15px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:18px 20px;max-height:55vh;overflow-y:auto}.pif-info-note{color:#64748b;font-size:13.5px;margin:16px 0 0;text-align:center}.pif-backlink{background:none;border:none;color:#2b5dab;cursor:pointer;font-size:13px;padding:0;margin-bottom:10px}.pif-state{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px;color:#475569;font-size:16px;background:linear-gradient(135deg,#eef2f7,#dde6f0)}.pif-state--error{color:#b91c1c}.pif-state--success h2{color:#166534;margin:6px 0}.pif-check-icon{font-size:56px}@media(max-width:600px){.pif-card{padding:20px 16px 24px;border-radius:14px}.pif-header h1{font-size:19px}.pif-info-body{max-height:none}}@media(max-width:380px){.pif-wrap{padding:max(12px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.pif-card{padding:16px 13px 20px}.pif-header h1{font-size:17px}.pif-section{padding-top:14px;margin-top:14px}.pif-grid{gap:12px}}@media(max-width:340px){.pif-turnstile{transform:scale(.9);transform-origin:left center}}@media(hover:none){.pif-submit:hover{opacity:1}}.security-page{min-height:calc(100vh - 64px);background:#f8fafc;padding:32px 20px;box-sizing:border-box}.security-panel{max-width:760px;margin:0 auto;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 8px 22px #0f172a0f;padding:24px}.security-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:16px;border-bottom:1px solid #e5e7eb}.security-header h2{margin:0;color:#0f172a;font-size:1.35rem}.security-header p,.security-section p{margin:6px 0 0;color:#64748b;line-height:1.5}.security-badge{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;font-size:.78rem;font-weight:700;white-space:nowrap}.security-badge-on{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.security-section{margin-top:20px}.security-section h3{margin:0 0 8px;color:#1e293b;font-size:1rem}.security-setup-grid{display:grid;grid-template-columns:210px 1fr;gap:20px;align-items:start}.security-qr{display:flex;justify-content:center;padding:16px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.security-secret{display:block;margin:8px 0 14px;padding:10px 12px;background:#f1f5f9;border-radius:8px;color:#334155;word-break:break-all}.security-label{display:block;margin:12px 0 6px;color:#475569;font-size:.82rem;font-weight:700}.security-section input{width:100%;max-width:320px;padding:10px 12px;border:1.5px solid #cbd5e1;border-radius:8px;box-sizing:border-box;font-size:1rem}.security-section input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.security-primary,.security-danger{display:inline-flex;justify-content:center;min-width:130px;margin-top:14px;padding:10px 16px;border:none;border-radius:8px;color:#fff;font-weight:700;cursor:pointer}.security-primary{background:#2563eb}.security-primary:hover{background:#1d4ed8}.security-danger{background:#dc2626}.security-danger:hover{background:#b91c1c}.security-success{padding:10px 12px;border-radius:8px;background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.security-error{padding:10px 12px;border-radius:8px;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.security-muted{color:#64748b;font-size:.9rem}@media(max-width:680px){.security-setup-grid{grid-template-columns:1fr}.security-panel{padding:18px}}
