*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute}.flex{display:flex}.table{display:table}.hidden{display:none}.resize{resize:both}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:#fff;border-radius:1rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:400px;padding:2.5rem;width:100%}.login-header{margin-bottom:2rem;text-align:center}.login-logo{align-items:center;color:var(--text-primary);display:flex;font-size:1.5rem;font-weight:700;gap:.5rem;justify-content:center;margin-bottom:.5rem}.login-logo .logo-icon{color:#3b82f6;font-size:1.75rem}.login-header p{color:var(--text-secondary);font-size:.875rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-form .form-group{display:flex;flex-direction:column;gap:.5rem}.login-form label{align-items:center;color:var(--text-secondary);display:flex;font-size:.875rem;font-weight:500;gap:.5rem}.login-form input{border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;padding:.75rem;transition:all .2s}.login-form input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a;outline:none}.error-message{background-color:#fee2e2;color:#dc2626}.error-message,.success-message{align-items:center;border-radius:.5rem;display:flex;font-size:.875rem;gap:.5rem;padding:.75rem}.success-message{background-color:#d1fae5;color:#065f46;margin-bottom:1rem}.login-button{background-color:var(--primary-color);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem;transition:all .2s}.login-button:hover:not(:disabled){background-color:#1d4ed8}.login-button:disabled{background-color:#cbd5e1;cursor:not-allowed}.login-footer{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem;text-align:center}.link-button{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:.875rem;transition:all .2s}.link-button:hover{text-decoration:underline}.google-button{background-color:#fff;border:1px solid #dadce0;border-radius:.5rem;color:#3c4043;font-size:.875rem;margin-bottom:1.5rem;padding:.75rem;transition:all .2s}.google-button:hover:not(:disabled){background-color:#f8f9fa;box-shadow:0 1px 2px 0 #3c40434d,0 1px 3px 1px #3c404326}.google-button:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.6}.divider{margin:1.5rem 0;position:relative;text-align:center}.divider:before{background-color:var(--border);content:"";height:1px;left:0;position:absolute;right:0;top:50%}.divider span{background-color:#fff;color:var(--text-secondary);font-size:.875rem;padding:0 1rem;position:relative}:root{--background:#f9fafb;--border:#e5e7eb;--text-primary:#111827;--text-secondary:#6b7280;--primary-color:#3b82f6;--success-color:#10b981}.dashboard-compact{background-color:#f9fafb;background-color:var(--background);min-height:100vh}.dashboard-header-compact{align-items:center;background-color:#fff;background-color:var(--surface);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;padding:.75rem 1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-left{flex:0 0 auto;gap:.75rem}.header-left,.header-logo{align-items:center;display:flex}.header-logo{color:#111827;color:var(--text-primary);cursor:pointer;font-size:1.1rem;font-weight:700;gap:.5rem;transition:opacity .2s}.header-logo:hover{opacity:.7}.header-logo .logo-icon{color:#3b82f6;color:var(--primary-color);font-size:1.25rem}.header-divider{color:#e5e7eb;color:var(--border);font-weight:300}.header-left h1{color:#111827;color:var(--text-primary);font-size:1.25rem;font-weight:700;margin:0;white-space:nowrap}.header-center{align-items:center;display:flex;flex:1 1 auto;gap:.5rem;justify-content:center;min-width:0}.header-site-name{color:#6b7280;color:var(--text-secondary);font-size:1rem;font-weight:600;white-space:nowrap}.header-right{flex:0 0 auto;gap:1rem}.header-right,.user-info{align-items:center;display:flex}.user-info{background-color:#f9fafb;background-color:var(--background);border-radius:.375rem;color:#6b7280;color:var(--text-secondary);font-size:.8125rem;gap:.375rem;padding:.375rem .75rem}.user-details{display:flex;flex-direction:column;line-height:1.2}.user-name{color:#111827;color:var(--text-primary);font-weight:500}.user-email{color:#6b7280;color:var(--text-secondary);font-size:.7rem}.btn-header{align-items:center;background-color:#fff;background-color:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:.375rem;color:#111827;color:var(--text-primary);cursor:pointer;display:flex;font-size:.8125rem;font-weight:500;gap:.375rem;padding:.375rem .875rem;transition:all .2s}.btn-header:hover{background-color:#f9fafb;background-color:var(--background)}.btn-tools{background-color:#3b82f6;background-color:var(--primary-color);border-color:#3b82f6;border-color:var(--primary-color);color:#fff;color:var(--surface)}.btn-tools:hover{background-color:#1d4ed8;border-color:#1d4ed8}.filters-section-compact{align-items:center;background-color:#fff;background-color:var(--surface);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);display:flex;gap:1rem;justify-content:space-between;padding:.75rem 1.5rem;position:-webkit-sticky;position:sticky;top:53px;z-index:99}.filters{display:flex;flex:1 1;flex-wrap:wrap;gap:.75rem}.filter-dropdown-container{position:relative}.filter-select-btn{align-items:center;background-color:#fff;background-color:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:.375rem;cursor:pointer;display:flex;font-size:.8125rem;gap:.5rem;justify-content:space-between;min-width:120px;padding:.375rem .875rem;transition:all .2s}.filter-select-btn:hover{background-color:#f9fafb;background-color:var(--background);border-color:#3b82f6;border-color:var(--primary-color)}.filter-select-btn svg{transition:transform .2s}.filter-select-btn svg.rotated{transform:rotate(90deg)}.filter-dropdown{background-color:#fff;background-color:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:.375rem;box-shadow:0 10px 15px -3px #0000001a;box-shadow:var(--shadow-lg);left:0;max-height:250px;min-width:180px;overflow-y:auto;position:absolute;top:calc(100% + 4px);z-index:150}.filter-dropdown-header{background-color:#f9fafb;background-color:var(--background);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);padding:.5rem}.clear-btn{background-color:#fff;background-color:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:.25rem;cursor:pointer;font-size:.75rem;padding:.25rem .5rem;transition:all .2s;width:100%}.clear-btn:hover{background-color:#ef4444;background-color:var(--danger-color);border-color:#ef4444;border-color:var(--danger-color);color:#fff}.filter-option{align-items:center;cursor:pointer;display:flex;gap:.5rem;padding:.5rem;transition:background-color .2s}.filter-option:hover{background-color:#f9fafb;background-color:var(--background)}.filter-option input[type=checkbox]{cursor:pointer}.filter-option span{font-size:.8125rem;-webkit-user-select:none;user-select:none}.filter-toggle{align-items:center;background-color:#fff;background-color:var(--surface);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:.375rem;cursor:pointer;display:flex;font-size:.8125rem;gap:.375rem;padding:.375rem .875rem;transition:all .2s}.filter-toggle:hover{background-color:#f9fafb;background-color:var(--background)}.filter-toggle.active{border-color:#3b82f6;border-color:var(--primary-color)}.btn-primary-compact,.filter-toggle.active{background-color:#3b82f6;background-color:var(--primary-color);color:#fff}.btn-primary-compact{align-items:center;border:none;border-radius:.375rem;cursor:pointer;display:flex;font-size:.8125rem;font-weight:500;gap:.375rem;padding:.375rem .875rem;transition:all .2s}.btn-primary-compact:hover{background-color:#1d4ed8}.timeline-container-compact{background-color:#fff;background-color:var(--surface);margin:0;overflow:visible!important;position:relative}.timeline-header-compact{grid-gap:.75rem;background-color:#f9fafb;background-color:var(--background);border-bottom:2px solid #e5e7eb;border-bottom:2px solid var(--border);color:#6b7280;color:var(--text-secondary);display:grid;font-size:.8125rem;font-weight:600;gap:.75rem;grid-template-columns:65px 85px minmax(120px,1fr) 75px 115px 75px 65px 90px minmax(165px,1fr) minmax(100px,.8fr);padding:.625rem 1.5rem;position:-webkit-sticky;position:sticky;top:106px;z-index:90}.timeline-body-compact{background-color:#fff;background-color:var(--surface);overflow:visible!important;position:relative}.timeline-row-compact{grid-gap:.75rem;align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);display:grid;gap:.75rem;grid-template-columns:65px 85px minmax(120px,1fr) 75px 115px 75px 65px 90px minmax(165px,1fr) minmax(100px,.8fr);min-height:42px;overflow:visible!important;padding:.5rem 1.5rem;position:relative;transition:all .2s}.timeline-row-compact:has(.location-menu),.timeline-row-compact:has(.room-dropdown),.timeline-row-compact:has(.status-menu){position:relative!important;z-index:9998!important}.timeline-row-compact.row-status-not-arrived{background:linear-gradient(90deg,#e5e7eb,#f3f4f6 10%);border-left:4px solid #4b5563}.timeline-row-compact.row-status-not-arrived:nth-child(2n){background:linear-gradient(90deg,#cbd5e1,#e2e8f0 10%);border-left:4px solid #4b5563}.timeline-row-compact.row-status-lobby{background:linear-gradient(90deg,#fed7aa,#ffedd5 10%);border-left:4px solid #ea580c}.timeline-row-compact.row-status-in-room{background:linear-gradient(90deg,#fef3c7,#fef9e7 10%);border-left:4px solid #f59e0b}.timeline-row-compact.row-status-with-crc{background:linear-gradient(90deg,#c7d2fe,#e0e7ff 10%);border-left:4px solid #4f46e5}.timeline-row-compact.row-status-waiting{background:linear-gradient(90deg,#fecaca,#fee2e2 10%);border-left:4px solid #dc2626}.timeline-row-compact.row-status-with-inv{background:linear-gradient(90deg,#ddd6fe,#ede9fe 10%);border-left:4px solid #7c3aed}.timeline-row-compact.row-status-done{background:linear-gradient(90deg,#bbf7d0,#dcfce7 10%);border-left:4px solid #16a34a;opacity:.8}.timeline-row-compact.row-status-no-show{background:linear-gradient(90deg,#fecaca,#fef2f2 10%);border-left:4px solid #b91c1c;opacity:.7}.timeline-row-compact.row-status-cancelled{background:linear-gradient(90deg,#cbd5e1,#e2e8f0 10%);border-left:4px solid #475569;opacity:.7}.timeline-row-compact.row-status-rescheduled{background:linear-gradient(90deg,#bfdbfe,#dbeafe 10%);border-left:4px solid #2563eb;opacity:.7}.timeline-row-compact.row-status-rescheduled:nth-child(2n){background:linear-gradient(90deg,#a5c8f7,#cce3fc 10%);border-left:4px solid #2563eb}.timeline-row-compact:hover{box-shadow:0 2px 4px #00000014;filter:brightness(.95)}.timeline-row-compact.status-green{border-right:3px solid #10b981;border-right:3px solid var(--success-color)}.timeline-row-compact.status-yellow{border-right:3px solid #f59e0b;border-right:3px solid var(--warning-color)}.timeline-row-compact.status-red{animation:pulse 2s infinite;border-right:3px solid #ef4444;border-right:3px solid var(--danger-color)}.col-time{align-items:center;display:flex;font-size:.8125rem;font-weight:500;white-space:nowrap}.col-patient{font-size:.875rem}.col-patient,.col-study{max-width:100%;overflow:hidden}.col-crc,.col-study{font-size:.8125rem}.col-location{font-size:.8125rem}.col-location,.col-status{overflow:visible!important;position:relative}.col-duration{color:#6b7280;color:var(--text-secondary);font-size:.8125rem}.col-investigator{font-size:.8125rem;min-width:90px;position:relative}.col-action{min-width:160px;overflow:visible!important;position:relative}.edit-icon{color:#6b7280;cursor:pointer;display:inline-block;margin-right:6px;opacity:0;transition:all .2s;vertical-align:middle;visibility:hidden}.col-time:hover .edit-icon{color:#6b7280;opacity:1;visibility:visible}.edit-icon:hover{color:#3b82f6!important;transform:scale(1.1)}.patient-info-compact{display:flex;flex-direction:column;gap:1px;line-height:1.25;max-width:100%;overflow:hidden}.patient-primary{color:#111827;color:var(--text-primary);font-size:.875rem;font-weight:600}.patient-primary,.patient-secondary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patient-secondary{color:#6b7280;color:var(--text-secondary);font-size:.75rem}.study-info-compact{word-wrap:break-word;display:flex;flex-direction:column;gap:1px;-webkit-hyphens:auto;hyphens:auto;line-height:1.25;overflow-wrap:break-word}.study-name{color:#111827;color:var(--text-primary);font-size:.8125rem;font-weight:500}.study-name,.visit-name{word-wrap:break-word;line-height:1.2;overflow-wrap:break-word}.visit-name{color:#6b7280;color:var(--text-secondary);font-size:.75rem}.investigator-buttons{display:flex;gap:.3rem;width:100%}.investigator-btn{align-items:center;background-color:#f9fafb;border:1px solid #d1d5db;border-radius:.375rem;color:#6b7280;cursor:pointer;display:flex;flex:1 1;font-size:.8rem;font-weight:500;justify-content:center;min-height:36px;min-width:40px;padding:.4rem .5rem;transition:all .2s;white-space:nowrap}.investigator-btn:hover{background-color:#e5e7eb;border-color:#9ca3af}.investigator-btn.selected{background-color:#4f46e5;border-color:#4f46e5;color:#fff}.investigator-btn.selected:hover{background-color:#4338ca;border-color:#4338ca}.status-badge-compact{align-items:center;border-radius:9999px;display:inline-flex;font-size:.75rem;font-weight:500;gap:.25rem;padding:.1875rem .5rem;transition:all .2s;white-space:nowrap}.status-not-arrived{background-color:#e5e7eb;color:#4b5563}.status-lobby{background-color:#fed7aa;color:#c2410c}.status-in-room{background-color:#fef3c7;color:#92400e}.status-with-crc{background-color:#c7d2fe;color:#3730a3}.status-waiting{background-color:#fecaca;color:#b91c1c}.status-with-inv{background-color:#c4b5fd;color:#4c1d95}.status-done{background-color:#bbf7d0;color:#14532d}.status-no-show{background-color:#fecaca;color:#b91c1c}.status-cancelled{background-color:#cbd5e1;color:#334155}.status-rescheduled{background-color:#bfdbfe;color:#1e3a8a}.action-btn-touch{align-items:center;border:none;border-radius:.375rem;color:#fff;cursor:pointer;display:flex;flex-direction:column;font-size:.8rem;font-weight:500;justify-content:center;line-height:1.1;min-height:36px;padding:.4rem .75rem;transition:all .2s;white-space:nowrap}.action-buttons-split-compact{display:flex;gap:.375rem}.action-buttons-triple-compact{display:flex;gap:.25rem;min-width:160px;width:100%}.action-buttons-triple-compact .action-btn-touch{word-wrap:break-word;flex:1 1;font-size:.65rem;line-height:1.1;min-height:42px;min-width:0;padding:.3rem .25rem;text-align:center;white-space:normal}.action-buttons-triple-compact .action-btn-touch span{display:block;line-height:1.1}.btn-status-not-arrived{background-color:#6b7280}.btn-status-not-arrived:hover{background-color:#4b5563}.btn-status-lobby{background-color:#f59e0b}.btn-status-lobby:hover{background-color:#d97706}.btn-status-in-room{background-color:#3b82f6}.btn-status-in-room:hover{background-color:#2563eb}.btn-status-with-crc{background-color:#6366f1}.btn-status-with-crc:hover{background-color:#4f46e5}.btn-status-waiting{background-color:#ef4444}.btn-status-waiting:hover{background-color:#dc2626}.btn-status-waiting.need-back{background-color:#3b82f6!important}.btn-status-waiting.need-back:hover{background-color:#2563eb!important}.btn-status-with-inv{background-color:#8b5cf6}.btn-status-with-inv:hover{background-color:#7c3aed}.btn-status-done{background-color:#22c55e}.btn-status-done:hover{background-color:#16a34a}.btn-back-to-crc{background-color:#8b5cf6!important;font-size:.7rem!important}.btn-back-to-crc:hover{background-color:#7c3aed!important}.btn-checkout{background-color:#10b981!important;font-size:.7rem!important}.btn-checkout:hover{background-color:#059669!important}.location-menu-container,.room-dropdown-container,.status-menu-container{display:inline-block;position:relative}.location-menu,.status-menu{left:0!important;max-height:200px!important;overflow-x:hidden!important;overflow-y:auto!important}.location-menu,.room-dropdown,.status-menu{background:#fff!important;border:1px solid #e5e7eb!important;border-radius:4px!important;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f!important;display:block!important;margin-top:2px!important;max-width:150px!important;min-width:100px!important;opacity:1!important;padding:2px 0!important;position:absolute!important;top:100%!important;visibility:visible!important;z-index:999999!important}.room-dropdown{left:50%!important;overflow:visible!important;transform:translateX(-50%)!important}@media (max-height:600px){.room-dropdown{max-height:250px!important;overflow-y:auto!important}}.location-option,.room-option,.status-option{background:#fff!important;border:none!important;color:#374151!important;cursor:pointer!important;display:block!important;font-size:13px!important;font-weight:400!important;line-height:1.4!important;margin:0!important;opacity:1!important;padding:8px 12px!important;pointer-events:auto!important;text-align:left!important;transition:background-color .15s ease!important;visibility:visible!important;width:100%!important}.location-option:hover,.room-option:hover,.status-option:hover{background:#f3f4f6!important;color:#111827!important}.location-text.clickable,.status-badge-compact.clickable{cursor:pointer;position:relative;-webkit-user-select:none;user-select:none;z-index:10}.status-badge-compact.clickable:hover{box-shadow:0 2px 8px #00000026;transform:scale(1.05)}.location-text.clickable:hover{color:#2563eb;font-weight:600;text-decoration:underline}.modal{background-color:#fff;box-shadow:0 10px 15px -3px #0000001a;min-width:400px}.modal h2{color:#111827}.form-group label{color:#6b7280}.form-group input{border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;padding:.5rem 1rem}.btn-secondary{background-color:#fff;border:1px solid #e5e7eb;color:#111827}.btn-secondary:hover{background-color:#f9fafb}.btn-primary{background-color:#3b82f6}.no-appointments{align-items:center;color:#6b7280;color:var(--text-secondary);display:flex;flex-direction:column;gap:.75rem;justify-content:center;padding:3rem 2rem}@keyframes pulse{0%,to{background-color:initial}50%{background-color:#ef44440d}}@media (max-width:768px){.location-menu,.room-dropdown,.status-menu{max-height:200px!important;overflow-y:auto!important}.timeline-header-compact,.timeline-row-compact{gap:.4rem;grid-template-columns:60px 70px minmax(90px,1fr) 60px 90px 60px 50px 75px minmax(140px,.9fr) minmax(80px,.6fr);padding:.5rem 1rem}.investigator-btn{font-size:.75rem;min-height:30px;min-width:35px;padding:.35rem .4rem}.action-buttons-triple-compact{min-width:140px}.action-buttons-triple-compact .action-btn-touch{font-size:.58rem;min-height:38px;padding:.2rem .15rem}.notes-preview{max-height:32px;min-height:26px;padding:.15rem .3rem}.notes-placeholder,.notes-text{font-size:.65rem}.col-notes{padding-left:.25rem}}@media (min-width:769px) and (max-width:1200px){.timeline-header-compact,.timeline-row-compact{gap:.6rem;grid-template-columns:65px 80px minmax(105px,1fr) 70px 105px 70px 60px 85px minmax(150px,1fr) minmax(90px,.7fr)}.investigator-btn{font-size:.75rem;min-height:34px;padding:.35rem .45rem}.action-buttons-triple-compact{min-width:150px}.action-buttons-triple-compact .action-btn-touch{font-size:.62rem;min-height:40px}.notes-preview{max-height:34px;min-height:28px}.col-notes{padding-left:.35rem}}@media (min-width:1201px) and (max-width:1600px){.timeline-header-compact,.timeline-row-compact{gap:.8rem;grid-template-columns:70px 90px minmax(130px,1fr) 80px 120px 80px 70px 95px minmax(170px,1.1fr) minmax(110px,.8fr)}.col-action{min-width:170px}.action-buttons-triple-compact{min-width:165px}}@media (min-width:1601px){.timeline-header-compact,.timeline-row-compact{gap:1rem;grid-template-columns:75px 95px minmax(140px,1fr) 85px 125px 85px 75px 100px minmax(180px,1.2fr) minmax(120px,.9fr)}.col-action{min-width:180px}.action-buttons-triple-compact{min-width:175px}}@media (min-width:1201px){.col-action{min-width:140px}}.col-action,.col-investigator{position:relative;z-index:1}.action-buttons-split-compact,.action-buttons-triple-compact{position:relative;width:100%}.timeline-row-compact:nth-last-child(-n+3) .room-dropdown{bottom:100%;margin-bottom:4px;margin-top:0;top:auto}.col-notes{font-size:.8125rem;padding-left:.5rem;position:relative}.notes-preview{align-items:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;cursor:pointer;display:flex;max-height:36px;min-height:28px;overflow:hidden;padding:.2rem .4rem;transition:all .2s;width:100%}.notes-preview:hover{background-color:#f3f4f6;border-color:#3b82f6;box-shadow:0 1px 3px #0000001a}.notes-text{color:#374151;display:block;line-height:1.2;max-height:1.4em;overflow:hidden;text-overflow:ellipsis;width:100%}.notes-placeholder,.notes-text{font-size:.7rem;white-space:nowrap}.notes-placeholder{color:#9ca3af;font-style:italic}.notes-modal{max-width:600px;width:90vw}.notes-textarea{border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:.5rem;font-family:inherit;font-size:.875rem;line-height:1.5;min-height:200px;padding:.75rem;resize:vertical;width:100%}.notes-textarea:focus{border-color:#3b82f6;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a;outline:none}@media (max-width:768px){.action-btn-touch,.btn-header,.btn-primary,.btn-primary-compact,.btn-secondary,.clear-btn,.filter-select-btn,.filter-toggle,.investigator-btn,.location-option,.location-text.clickable,.mobile-filter-toggle,.room-option,.status-badge-compact.clickable,.status-option{-webkit-tap-highlight-color:rgba(0,0,0,.1);-webkit-touch-callout:none;touch-action:manipulation;-webkit-user-select:none;user-select:none}.action-btn-touch:active,.btn-header:active,.btn-primary-compact:active,.btn-primary:active,.btn-secondary:active,.filter-select-btn:active,.filter-toggle:active,.investigator-btn:active,.location-option:active,.room-option:active,.status-option:active{opacity:.85;transform:scale(.96);transition:transform .1s,opacity .1s}.filters-section-compact{flex-direction:column;gap:8px;padding:12px}.filters{display:none}.filters.mobile-expanded{display:flex;flex-direction:column;gap:8px;width:100%}.mobile-filter-toggle{align-items:center;background:#f0f0f0;border:1px solid #ddd;border-radius:8px;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;min-height:48px;padding:14px 16px}.filter-select-btn,.filter-toggle{font-size:14px;min-height:44px;padding:12px 16px}.timeline-header-compact{display:none}.timeline-row-compact{grid-gap:6px 8px;display:grid;gap:6px 8px;grid-template-columns:65px 1fr 90px;grid-template-rows:auto auto auto;min-height:80px;padding:14px 12px;position:relative}.timeline-row-compact .col-time{align-items:center;display:flex;font-size:12px;font-weight:500;gap:4px;grid-column:1;grid-row:1}.timeline-row-compact .col-patient{font-size:14px;font-weight:600;grid-column:2;grid-row:1}.timeline-row-compact .col-crc{color:#666;font-size:12px;grid-column:1/3;grid-row:2}.timeline-row-compact .col-status{align-items:center;display:flex;grid-column:3;grid-row:1/3;justify-content:flex-end}.timeline-row-compact .col-action{grid-column:1/-1;grid-row:3;padding-top:8px}.timeline-row-compact .col-duration,.timeline-row-compact .col-investigator,.timeline-row-compact .col-location,.timeline-row-compact .col-notes,.timeline-row-compact .col-study{display:none}.timeline-row-compact.mobile-expanded{grid-template-columns:1fr;grid-template-rows:auto;padding-bottom:16px}.timeline-row-compact.mobile-expanded .col-crc,.timeline-row-compact.mobile-expanded .col-patient,.timeline-row-compact.mobile-expanded .col-status,.timeline-row-compact.mobile-expanded .col-time{grid-column:1;grid-row:auto}.timeline-row-compact.mobile-expanded .col-status{justify-content:flex-start;padding:8px 0}.timeline-row-compact.mobile-expanded .col-crc,.timeline-row-compact.mobile-expanded .col-duration,.timeline-row-compact.mobile-expanded .col-investigator,.timeline-row-compact.mobile-expanded .col-location,.timeline-row-compact.mobile-expanded .col-notes,.timeline-row-compact.mobile-expanded .col-study{border-top:1px solid #e5e7eb;display:block;margin-top:4px;padding:12px 0}.timeline-row-compact.mobile-expanded .col-study{margin-top:12px}.timeline-row-compact.mobile-expanded .col-action{border-top:1px solid #e5e7eb;grid-column:1;margin-top:12px;padding-top:12px}.mobile-detail-label{color:#666;display:block;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.status-badge-compact{align-items:center;display:inline-flex;font-size:11px;justify-content:center;min-height:36px;padding:8px 12px;white-space:nowrap}.status-badge-compact.clickable{cursor:pointer;min-height:44px;min-width:90px;padding:10px 14px}.status-badge-compact.clickable:active{transform:scale(.95)}.action-btn-touch{border-radius:8px;font-size:15px;font-weight:600;min-height:52px;padding:14px 16px;width:100%}.action-buttons-split-compact{display:flex;gap:10px;width:100%}.action-buttons-split-compact .action-btn-touch{flex:1 1}.action-buttons-triple-compact{flex-direction:column;gap:10px;width:100%}.action-buttons-triple-compact .action-btn-touch{flex-direction:row;font-size:14px;gap:6px;min-height:52px;padding:14px 16px;width:100%}.action-buttons-triple-compact .action-btn-touch span{display:inline;font-size:14px}.investigator-buttons{display:flex;gap:10px;width:100%}.investigator-btn{border-radius:8px;flex:1 1;font-size:15px;font-weight:500;min-height:52px;padding:14px 12px}.investigator-btn.selected{box-shadow:0 2px 8px #4f46e54d}.timeline-row-compact .action-btn-touch,.timeline-row-compact .investigator-btn,.timeline-row-compact .location-text,.timeline-row-compact .notes-preview,.timeline-row-compact .status-badge-compact{position:relative;z-index:10}.location-menu,.status-menu{border-radius:16px 16px 0 0!important;bottom:0!important;box-shadow:0 -4px 20px #00000026!important;left:0!important;margin:0!important;max-height:60vh!important;max-width:100%!important;min-width:100%!important;padding:8px 0 env(safe-area-inset-bottom,20px)!important;position:fixed!important;right:0!important;top:auto!important;transform:none!important;z-index:10000!important}.location-option,.status-option{align-items:center!important;border-bottom:1px solid #f0f0f0!important;display:flex!important;font-size:16px!important;min-height:52px!important;padding:16px 20px!important}.location-option:last-child,.status-option:last-child{border-bottom:none!important}.location-option:active,.status-option:active{background:#e5e7eb!important}.room-dropdown-container{position:static}.room-dropdown{border:none!important;border-radius:16px 16px 0 0!important;bottom:0!important;box-shadow:0 -4px 20px #0003!important;left:0!important;margin:0!important;max-height:60vh!important;max-width:100%!important;min-width:100%!important;overflow-y:auto!important;padding:8px 0 env(safe-area-inset-bottom,20px)!important;position:fixed!important;right:0!important;top:auto!important;transform:none!important;z-index:10000!important}.room-dropdown:before{border-bottom:1px solid #e5e7eb;color:#374151;content:"Select Room";display:block;font-size:16px;font-weight:600;padding:16px 20px;text-align:center}.room-option{align-items:center!important;background:#fff!important;border:none!important;border-bottom:1px solid #f0f0f0!important;cursor:pointer!important;display:flex!important;font-size:16px!important;min-height:52px!important;padding:16px 20px!important;text-align:left!important;width:100%!important}.room-option:last-child{border-bottom:none!important}.room-option:active{background:#e5e7eb!important}.mobile-backdrop{background:#0006;bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.dashboard-header-compact{flex-direction:column;gap:12px;padding:12px 16px}.header-left{justify-content:center;width:100%}.dashboard-header-compact h1{font-size:18px}.header-center{justify-content:center;width:100%}.header-site-name{font-size:14px}.header-right{justify-content:space-between;width:100%}.user-info{font-size:12px;padding:8px 12px}.btn-header{font-size:13px;min-height:44px;padding:10px 14px}.mobile-expand-indicator{color:#9ca3af;font-size:20px;font-weight:700;position:absolute;right:12px;top:14px;transition:transform .2s ease}.timeline-row-compact.mobile-expanded .mobile-expand-indicator{transform:rotate(90deg)}.notes-preview{font-size:14px;min-height:44px;padding:10px 12px}.notes-placeholder,.notes-text{font-size:13px}.modal{max-height:90vh;max-width:400px;min-width:auto;overflow-y:auto;padding:20px;width:calc(100vw - 32px)}.modal h2{font-size:18px}.form-group input,.form-group textarea{font-size:16px;min-height:44px;padding:12px}.modal-actions{flex-direction:column;gap:10px}.modal-actions .btn-primary,.modal-actions .btn-secondary{font-size:15px;min-height:48px;width:100%}}.duration-modal{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:90vh;max-width:700px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem}.modal-header h2{color:#111827;font-size:1.25rem;font-weight:600;margin:0}.close-btn{background:none;border:none;color:#6b7280;cursor:pointer;padding:.5rem;transition:color .2s}.close-btn:hover{color:#111827}.modal-body{padding:1.5rem}.patient-info{margin-bottom:2rem}.patient-info h3{color:#111827;font-size:1.125rem;margin:0 0 .5rem}.total-duration{align-items:center;color:#4b5563;display:flex;font-size:1rem;gap:.5rem}.total-duration strong{color:#111827;font-size:1.25rem}.manual-indicator{align-items:center;color:#f59e0b;display:flex;font-size:.875rem;gap:.25rem;margin-left:auto}.duration-breakdown{margin-bottom:2rem}.duration-breakdown h4{color:#111827;font-size:1rem;font-weight:600;margin:0 0 1rem}.duration-table{border-collapse:collapse;width:100%}.duration-table thead{background-color:#f9fafb}.duration-table th{border-bottom:1px solid #e5e7eb;color:#6b7280;font-size:.875rem;font-weight:500;padding:.75rem;text-align:left}.duration-table td{border-bottom:1px solid #f3f4f6;color:#111827;font-size:.875rem;padding:.75rem}.status-badge{display:inline-flex;font-size:.75rem}.manual-override{background-color:#f9fafb;border-radius:8px;padding:1.25rem}.override-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.override-header h4{color:#111827;font-size:1rem;font-weight:600;margin:0}.edit-btn{align-items:center;background-color:#fff;border:1px solid #d1d5db;border-radius:6px;color:#4b5563;cursor:pointer;display:flex;font-size:.875rem;gap:.375rem;padding:.375rem .75rem;transition:all .2s}.edit-btn:hover{background-color:#f9fafb;border-color:#9ca3af;color:#111827}.edit-form{background-color:#fff;border-radius:6px;padding:1rem}.form-group label{color:#374151;margin-bottom:.375rem}.form-group input,.form-group textarea{border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:.5rem .75rem;transition:border-color .2s;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-actions{justify-content:flex-end;margin-top:1rem}.cancel-btn{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;color:#4b5563;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:all .2s}.cancel-btn:hover{background-color:#f9fafb;border-color:#9ca3af;color:#111827}.save-btn{align-items:center;background-color:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;gap:.375rem;padding:.5rem 1rem;transition:background-color .2s}.save-btn:hover{background-color:#2563eb}.override-display{color:#4b5563;font-size:.875rem}.override-display p{margin:.5rem 0}.override-display strong{color:#111827}.no-override{color:#9ca3af;font-style:italic}.loading{color:#6b7280;padding:2rem;text-align:center}.site-selector{position:relative;z-index:1000}.site-selector-button{align-items:center;background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:8px 12px;transition:all .2s ease}.site-selector-button:hover{background:#ffffff26;border-color:#ffffff4d}.site-selector-button.open{background:#fff3;border-color:#fff6}.site-name{font-weight:500;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron{opacity:.7;transition:transform .2s ease}.chevron.rotated{transform:rotate(180deg)}.site-dropdown{animation:dropdownFade .2s ease;background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;min-width:280px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px)}@keyframes dropdownFade{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.site-dropdown-header{background:#fafafa;border-bottom:1px solid #eee;color:#666;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 16px;text-transform:uppercase}.site-list{max-height:320px;overflow-y:auto}.site-option{align-items:center;background:none;border:none;cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;text-align:left;transition:background .15s ease;width:100%}.site-option:hover{background:#f5f5f5}.site-option.selected{background:#e8f4fd}.site-option-content{display:flex;flex-direction:column;gap:2px}.site-option-name{color:#333;font-size:14px;font-weight:500}.site-option-code{color:#666;font-family:Monaco,Consolas,monospace;font-size:12px}.site-option-network{color:#999;font-size:11px;margin-top:2px}.check-icon{color:#0078d4;flex-shrink:0}.site-list::-webkit-scrollbar{width:6px}.site-list::-webkit-scrollbar-track{background:#0000}.site-list::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.site-list::-webkit-scrollbar-thumb:hover{background:#aaa}.admin-panel{display:flex;min-height:100vh}.admin-sidebar{background-color:#1e293b;color:#fff;display:flex;flex-direction:column;width:250px}.sidebar-logo{align-items:center;border-bottom:1px solid #ffffff1a;cursor:pointer;display:flex;font-size:1.1rem;font-weight:700;gap:.5rem;padding:1.25rem 1.5rem;transition:opacity .2s}.sidebar-logo:hover{opacity:.8}.sidebar-logo .logo-icon{color:#3b82f6;font-size:1.25rem}.admin-sidebar h2{border-bottom:1px solid #ffffff1a;color:#ffffffb3;font-size:1rem;font-weight:600;padding:1rem 1.5rem}.admin-nav{flex:1 1;padding:1rem 0}.admin-nav button,.nav-button{align-items:center;background:none;border:none;color:#ffffffb3;cursor:pointer;display:flex;font-size:.875rem;gap:.75rem;padding:.75rem 1.5rem;text-align:left;transition:all .2s;width:100%}.admin-nav button:hover,.nav-button:hover{background-color:#ffffff0d;color:#fff}.admin-nav button.active{background-color:#ffffff1a;border-left:3px solid var(--primary-color);color:#fff}.sidebar-footer{border-top:1px solid #ffffff1a;padding:1rem 0}.admin-content{background-color:var(--background);flex:1 1;overflow-y:auto;padding:2rem}.tab-content{background-color:var(--surface);border-radius:.75rem;box-shadow:var(--shadow-md);padding:2rem}.tab-content h3{font-size:1.5rem;margin-bottom:1.5rem}.tab-content h3,.tab-content h4{color:var(--text-primary);font-weight:600}.tab-content h4{font-size:1rem;margin-bottom:.75rem}.upload-form{margin-bottom:2rem;max-width:500px}.file-input-wrapper{margin-bottom:1rem;position:relative}.file-input-wrapper input[type=file]{cursor:pointer;height:100%;opacity:0;position:absolute;width:100%}.file-label{border:2px dashed var(--border);border-radius:.5rem;color:var(--text-secondary);cursor:pointer;display:block;padding:1rem;text-align:center;transition:all .2s}.file-label:hover{border-color:var(--primary-color);color:var(--primary-color)}.status-message{align-items:center;border-radius:.5rem;display:flex;font-size:.875rem;gap:.5rem;margin-bottom:1rem;padding:.75rem}.status-message.success{background-color:#dcfce7;color:#16a34a}.status-message.error{background-color:#fee2e2;color:#dc2626}.upload-button{background-color:var(--primary-color);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem;transition:all .2s;width:100%}.upload-button:hover:not(:disabled){background-color:#1d4ed8}.upload-button:disabled{background-color:#cbd5e1;cursor:not-allowed}.info-section{background-color:var(--background);border-radius:.5rem;padding:1.5rem}.info-section ul{list-style:none;margin:1rem 0;padding:0}.info-section li{color:var(--text-secondary);font-size:.875rem;padding:.5rem 0}.warning{align-items:center;background-color:#fef3c7;border-radius:.5rem;color:#d97706;display:flex;font-size:.875rem;gap:.5rem;margin-top:1rem;padding:.75rem}.users-table{overflow-x:auto}.users-table table{border-collapse:collapse;width:100%}.users-table th{background-color:var(--background);border-bottom:2px solid var(--border);color:var(--text-secondary);font-size:.75rem;font-weight:600;padding:.75rem;text-align:left;text-transform:uppercase}.users-table td{border-bottom:1px solid var(--border);font-size:.875rem;padding:.75rem}.role-badge{border-radius:9999px;font-size:.75rem}.role-badge.administrator{background-color:#dbeafe;color:#1e40af}.role-badge.basic_user{background-color:#f3f4f6;color:#4b5563}.role-select{background-color:var(--surface);border:1px solid var(--border);border-radius:.375rem;font-size:.875rem;padding:.25rem .5rem}.add-room{display:flex;gap:1rem;margin-bottom:1.5rem;max-width:500px}.add-room input{border:1px solid var(--border);border-radius:.5rem;flex:1 1;font-size:.875rem;padding:.75rem}.add-button{padding:.75rem 1.5rem}.rooms-list{display:flex;flex-direction:column;gap:.5rem;max-width:500px}.room-item{align-items:center;background-color:var(--background);border-radius:.5rem;display:flex;justify-content:space-between;padding:.75rem;transition:all .2s}.room-item.inactive{opacity:.5}.room-name{color:var(--text-primary);font-size:.875rem}.room-actions{display:flex;gap:.5rem}.icon-button{align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:.375rem;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all .2s}.icon-button:hover{background-color:var(--background)}.edit-input{border:1px solid var(--primary-color);border-radius:.375rem;flex:1 1;font-size:.875rem;margin-right:.5rem;padding:.5rem}.settings-section{max-width:600px}.settings-description{color:var(--text-secondary);font-size:.875rem;margin-bottom:1.5rem}.threshold-inputs{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.threshold-group{align-items:center;display:flex;gap:1rem}.threshold-group label{align-items:center;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;min-width:150px}.color-indicator{border-radius:50%;height:12px;width:12px}.color-indicator.green{background-color:var(--success-color)}.color-indicator.yellow{background-color:var(--warning-color)}.color-indicator.red{background-color:var(--danger-color)}.threshold-group input{border:1px solid var(--border);border-radius:.375rem;font-size:.875rem;padding:.5rem;text-align:center;width:80px}.unit{color:var(--text-secondary);font-size:.875rem}.save-button{align-items:center;background-color:var(--success-color);border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s}.save-button:hover{background-color:#16a34a}@media (max-width:768px){.admin-panel{flex-direction:column}.admin-sidebar{width:100%}.admin-nav{display:flex;flex-direction:row;overflow-x:auto;padding:.5rem}.admin-nav button{min-width:120px}.sidebar-footer{display:none}.admin-content{padding:1rem}}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background-color:var(--surface);border-radius:.75rem;box-shadow:var(--shadow-lg);max-width:90vw;min-width:450px;padding:2rem}.modal h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:1.5rem}.form-group label{color:var(--text-secondary);font-size:.875rem}.form-group input,.form-group select{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;padding:.5rem 1rem;width:100%}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.btn-secondary{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;color:var(--text-primary);font-size:.875rem;padding:.5rem 1rem;transition:all .2s}.btn-secondary:hover{background-color:var(--background)}.btn-primary{background-color:var(--primary-color);border-radius:.5rem;font-size:.875rem;padding:.5rem 1rem;transition:all .2s}.btn-primary:hover:not(:disabled){background-color:#1d4ed8}.btn-primary:disabled{background-color:#cbd5e1}.add-button{align-items:center;background-color:var(--primary-color);border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.add-button:hover{background-color:#1d4ed8}.management-section{background-color:var(--background);border-radius:.75rem;margin-bottom:1.5rem;padding:1.5rem}.management-section h4{align-items:center;color:var(--text-primary);display:flex;font-size:1rem;font-weight:600;gap:.5rem;margin-bottom:1rem}.invite-form{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.invite-form input,.invite-form select{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;padding:.625rem .875rem}.invite-form input{flex:1 1;min-width:200px}.invite-form select{min-width:150px}.requests-list{gap:.75rem}.request-card{align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;display:flex;justify-content:space-between;padding:1rem}.request-name{color:var(--text-primary);font-weight:600}.request-email{color:var(--text-secondary);font-size:.875rem}.request-network,.request-site{color:var(--text-secondary);font-size:.8rem}.request-date{color:var(--text-secondary);font-size:.75rem;margin-top:.25rem}.request-actions{align-items:center;display:flex;gap:.5rem}.request-actions .site-select{background-color:var(--surface);border:1px solid var(--border);border-radius:.375rem;font-size:.875rem;padding:.5rem}.btn-approve{align-items:center;background-color:var(--success-color);border:none;border-radius:.375rem;color:#fff;cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:.375rem;padding:.5rem .875rem;transition:all .2s}.btn-approve:hover:not(:disabled){background-color:#16a34a}.btn-approve:disabled{cursor:not-allowed;opacity:.6}.btn-deny{align-items:center;background-color:var(--danger-color);border:none;border-radius:.375rem;color:#fff;cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:.375rem;padding:.5rem .875rem;transition:all .2s}.btn-deny:hover:not(:disabled){background-color:#dc2626}.btn-deny:disabled{cursor:not-allowed;opacity:.6}.invites-table{overflow-x:auto}.invites-table table{border-collapse:collapse;width:100%}.invites-table th{background-color:var(--surface);border-bottom:2px solid var(--border);color:var(--text-secondary);font-size:.75rem;font-weight:600;padding:.75rem;text-align:left;text-transform:uppercase}.invites-table td{border-bottom:1px solid var(--border);font-size:.875rem;padding:.75rem}.invite-actions{display:flex;gap:.5rem}.icon-button.danger{color:var(--danger-color)}.icon-button.danger:hover{background-color:#fee2e2}.activity-list{display:flex;flex-direction:column;gap:.5rem}.activity-item{align-items:center;background-color:var(--surface);border-radius:.375rem;display:flex;font-size:.875rem;gap:.75rem;padding:.625rem}.status-indicator{border-radius:50%;flex-shrink:0;height:8px;width:8px}.status-indicator.accepted,.status-indicator.approved{background-color:var(--success-color)}.status-indicator.denied,.status-indicator.expired,.status-indicator.revoked{background-color:var(--danger-color)}.status-indicator.pending{background-color:var(--warning-color)}.empty-message{color:var(--text-secondary);font-size:.875rem;font-style:italic;padding:1rem 0}.nav-divider{color:#fff6;font-size:.7rem;font-weight:600;letter-spacing:.05em;margin-top:.5rem;padding:.75rem 1.5rem .5rem;text-transform:uppercase}.sidebar-site-selector{border-bottom:1px solid #ffffff1a;padding:0 1rem 1rem}.sites-table{margin-top:1.5rem;overflow-x:auto}.sites-table table{border-collapse:collapse;width:100%}.sites-table th{background-color:var(--background);border-bottom:2px solid var(--border);color:var(--text-secondary);font-size:.75rem;font-weight:600;padding:.75rem;text-align:left;text-transform:uppercase}.sites-table td{border-bottom:1px solid var(--border);font-size:.875rem;padding:.75rem}.sites-table tr.inactive{opacity:.5}.status-badge{border-radius:9999px;display:inline-block;font-size:.7rem;padding:.25rem .5rem}.status-badge.active{background-color:#dcfce7;color:#16a34a}.status-badge.inactive{background-color:#f3f4f6;color:#6b7280}.add-form{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}.add-form input,.add-form select{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;padding:.625rem .875rem}.add-form.site-form{flex-wrap:wrap}.add-form.site-form input,.add-form.site-form select{min-width:120px}.network-info{align-items:center;display:flex;gap:.75rem}.network-code{background-color:var(--surface);border-radius:.25rem;color:var(--text-secondary);font-family:monospace;font-size:.75rem;padding:.25rem .5rem}.primary-badge{background-color:#dbeafe;border-radius:9999px;color:#1e40af;display:inline-block;font-size:.7rem;font-weight:500;margin-left:.5rem;padding:.125rem .5rem}.role-badge.super_admin{background-color:#fef3c7;color:#d97706}.tools-config-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.tool-config-item{align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;display:flex;justify-content:space-between;padding:.875rem 1rem;transition:all .2s}.tool-config-item.inactive{background-color:#f9fafb;opacity:.6}.tool-config-item.globally-disabled,.tool-config-item.parent-disabled{background-color:#f3f4f6;opacity:.5}.tool-config-info{display:flex;flex-direction:column;gap:.25rem}.tool-config-info .tool-name{color:var(--text-primary);font-size:.9rem;font-weight:600}.tool-config-info .tool-route{color:var(--text-secondary);font-family:monospace;font-size:.75rem}.tool-config-actions{align-items:center;display:flex;gap:.75rem}.toggle-switch{display:inline-block;height:24px;position:relative;width:44px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#ccc;border-radius:24px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.toggle-slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:18px;left:3px;position:absolute;transition:.3s;width:18px}.toggle-switch input:checked+.toggle-slider{background-color:var(--success-color)}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(20px)}.toggle-label{font-size:.8rem;font-weight:500;min-width:60px}.toggle-label.active{color:var(--success-color)}.toggle-label.inactive{color:var(--text-secondary)}.access-select{background-color:var(--surface);border:1px solid var(--border);border-radius:.375rem;cursor:pointer;font-size:.8rem;min-width:140px;padding:.5rem .75rem}.access-select:focus{border-color:var(--primary-color);outline:none}.restriction-badge{background-color:#fee2e2;border-radius:9999px;color:#dc2626;display:inline-block;font-size:.7rem;font-weight:500;margin-left:.5rem;padding:.2rem .5rem}.select-wrapper{margin-bottom:.5rem}.select-wrapper select{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;min-width:250px;padding:.625rem 1rem}.select-wrapper select:focus{border-color:var(--primary-color);outline:none}.loading-message{color:var(--text-secondary);font-size:.875rem;padding:1rem 0}.add-link-form{background-color:var(--background);border-radius:.5rem;margin-bottom:2rem;padding:1.5rem}.add-link-form h4{margin-bottom:1rem}.link-inputs{display:flex;flex-direction:column;gap:.75rem}.link-inputs input{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;padding:.75rem}.link-inputs input:focus{border-color:var(--primary-color);outline:none}.link-inputs .add-button{align-self:flex-start;margin-top:.5rem}.links-list{margin-top:1.5rem}.links-list h4{margin-bottom:1rem}.link-item{align-items:center;background-color:var(--background);border-radius:.5rem;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem;transition:all .2s}.link-item.inactive{opacity:.5}.link-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem;min-width:0}.link-name{color:var(--text-primary);font-size:.9rem;font-weight:600}.link-url{align-items:center;color:var(--primary-color);display:inline-flex;font-size:.8rem;gap:.25rem;text-decoration:none;word-break:break-all}.link-url:hover{text-decoration:underline}.link-description{color:var(--text-secondary);font-size:.8rem}.link-actions{display:flex;gap:.5rem;margin-left:1rem}.link-edit-form{display:flex;flex-direction:column;gap:.5rem;width:100%}.link-edit-form input{border:1px solid var(--primary-color);border-radius:.375rem;font-size:.875rem;padding:.5rem}.link-edit-actions{display:flex;gap:.5rem;margin-top:.5rem}@media (max-width:768px){.link-inputs,.link-item{flex-direction:column}.link-item{align-items:flex-start;gap:.75rem}.link-actions{align-self:flex-end;margin-left:0}}.platform-admin{display:flex;min-height:100vh}.platform-admin .admin-sidebar{background-color:#1e293b;color:#fff;display:flex;flex-direction:column;width:250px}.platform-admin .sidebar-logo{align-items:center;border-bottom:1px solid #ffffff1a;cursor:pointer;display:flex;font-size:1.1rem;font-weight:700;gap:.5rem;padding:1.25rem 1.5rem;transition:opacity .2s}.platform-admin .sidebar-logo:hover{opacity:.8}.platform-admin .sidebar-logo .logo-icon{color:#3b82f6;font-size:1.25rem}.platform-admin .admin-sidebar h2{border-bottom:1px solid #ffffff1a;color:#ffffffb3;font-size:1rem;font-weight:600;padding:1rem 1.5rem}.platform-admin .admin-nav{flex:1 1;padding:1rem 0}.platform-admin .admin-nav button,.platform-admin .nav-button{align-items:center;background:none;border:none;color:#ffffffb3;cursor:pointer;display:flex;font-size:.875rem;gap:.75rem;padding:.75rem 1.5rem;text-align:left;transition:all .2s;width:100%}.platform-admin .admin-nav button:hover,.platform-admin .nav-button:hover{background-color:#ffffff0d;color:#fff}.platform-admin .admin-nav button.active{background-color:#ffffff1a;border-left:3px solid var(--primary-color);color:#fff}.platform-admin .sidebar-footer{border-top:1px solid #ffffff1a;padding:1rem 0}.platform-admin .admin-content{background-color:var(--background);flex:1 1;overflow-y:auto;padding:2rem}.platform-admin .tab-content{background-color:var(--surface);border-radius:.75rem;box-shadow:var(--shadow-md);padding:2rem}.platform-admin .tab-content h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.platform-admin .tab-content h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin-bottom:.75rem}.platform-admin .nav-divider{color:#fff6;font-size:.7rem;font-weight:600;letter-spacing:.05em;margin-top:.5rem;padding:.75rem 1.5rem .5rem;text-transform:uppercase}.platform-admin .sidebar-site-selector{border-bottom:1px solid #ffffff1a;padding:0 1rem 1rem}.platform-admin .settings-description{color:var(--text-secondary);font-size:.875rem;margin-bottom:1.5rem}.platform-admin .management-section{background-color:var(--background);border-radius:.75rem;margin-bottom:1.5rem;padding:1.5rem}.platform-admin .management-section h4{align-items:center;color:var(--text-primary);display:flex;font-size:1rem;font-weight:600;gap:.5rem;margin-bottom:1rem}.platform-admin .users-table{overflow-x:auto}.platform-admin .users-table table{border-collapse:collapse;width:100%}.platform-admin .users-table th{background-color:var(--background);border-bottom:2px solid var(--border);color:var(--text-secondary);font-size:.75rem;font-weight:600;padding:.75rem;text-align:left;text-transform:uppercase}.platform-admin .users-table td{border-bottom:1px solid var(--border);font-size:.875rem;padding:.75rem}.platform-admin .role-badge{border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.platform-admin .role-badge.administrator{background-color:#dbeafe;color:#1e40af}.platform-admin .role-badge.basic_user{background-color:#f3f4f6;color:#4b5563}.platform-admin .role-badge.super_admin{background-color:#fef3c7;color:#d97706}.platform-admin .role-select{background-color:var(--surface);border:1px solid var(--border);border-radius:.375rem;font-size:.875rem;padding:.25rem .5rem}.platform-admin .invite-form{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.platform-admin .invite-form input,.platform-admin .invite-form select{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;padding:.625rem .875rem}.platform-admin .invite-form input{flex:1 1;min-width:200px}.platform-admin .invite-form select{min-width:150px}.platform-admin .add-button{align-items:center;background-color:var(--primary-color);border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.625rem 1rem;transition:all .2s}.platform-admin .add-button:hover{background-color:#1d4ed8}.platform-admin .add-button:disabled{background-color:#cbd5e1;cursor:not-allowed}.platform-admin .requests-list{display:flex;flex-direction:column;gap:.75rem}.platform-admin .request-card{align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;display:flex;justify-content:space-between;padding:1rem}.platform-admin .request-info{display:flex;flex-direction:column;gap:.25rem}.platform-admin .request-name{color:var(--text-primary);font-weight:600}.platform-admin .request-email{color:var(--text-secondary);font-size:.875rem}.platform-admin .request-network,.platform-admin .request-site{color:var(--text-secondary);font-size:.8rem}.platform-admin .request-date{color:var(--text-secondary);font-size:.75rem;margin-top:.25rem}.platform-admin .request-actions{align-items:center;display:flex;gap:.5rem}.platform-admin .request-actions .site-select{background-color:var(--surface);border:1px solid var(--border);border-radius:.375rem;font-size:.875rem;padding:.5rem}.platform-admin .btn-approve{align-items:center;background-color:var(--success-color);border:none;border-radius:.375rem;color:#fff;cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:.375rem;padding:.5rem .875rem;transition:all .2s}.platform-admin .btn-approve:hover:not(:disabled){background-color:#16a34a}.platform-admin .btn-approve:disabled{cursor:not-allowed;opacity:.6}.platform-admin .btn-deny{align-items:center;background-color:var(--danger-color);border:none;border-radius:.375rem;color:#fff;cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:.375rem;padding:.5rem .875rem;transition:all .2s}.platform-admin .btn-deny:hover:not(:disabled){background-color:#dc2626}.platform-admin .btn-deny:disabled{cursor:not-allowed;opacity:.6}.platform-admin .invites-table{overflow-x:auto}.platform-admin .invites-table table{border-collapse:collapse;width:100%}.platform-admin .invites-table th{background-color:var(--surface);border-bottom:2px solid var(--border);color:var(--text-secondary);font-size:.75rem;font-weight:600;padding:.75rem;text-align:left;text-transform:uppercase}.platform-admin .invites-table td{border-bottom:1px solid var(--border);font-size:.875rem;padding:.75rem}.platform-admin .invite-actions{display:flex;gap:.5rem}.platform-admin .icon-button{align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:.375rem;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all .2s}.platform-admin .icon-button:hover{background-color:var(--background)}.platform-admin .icon-button.danger{color:var(--danger-color)}.platform-admin .icon-button.danger:hover{background-color:#fee2e2}.platform-admin .activity-list{display:flex;flex-direction:column;gap:.5rem}.platform-admin .activity-item{align-items:center;background-color:var(--surface);border-radius:.375rem;display:flex;font-size:.875rem;gap:.75rem;padding:.625rem}.platform-admin .status-indicator{border-radius:50%;flex-shrink:0;height:8px;width:8px}.platform-admin .status-indicator.accepted,.platform-admin .status-indicator.approved{background-color:var(--success-color)}.platform-admin .status-indicator.denied,.platform-admin .status-indicator.expired,.platform-admin .status-indicator.revoked{background-color:var(--danger-color)}.platform-admin .status-indicator.pending{background-color:var(--warning-color)}.platform-admin .empty-message{color:var(--text-secondary);font-size:.875rem;font-style:italic;padding:1rem 0}.platform-admin .add-form{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem}.platform-admin .add-form input,.platform-admin .add-form select{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;padding:.625rem .875rem}.platform-admin .add-form.site-form{flex-wrap:wrap}.platform-admin .add-form.site-form input,.platform-admin .add-form.site-form select{min-width:120px}.platform-admin .add-room{display:flex;gap:1rem;margin-bottom:1.5rem;max-width:500px}.platform-admin .add-room input{border:1px solid var(--border);border-radius:.5rem;flex:1 1;font-size:.875rem;padding:.75rem}.platform-admin .rooms-list{display:flex;flex-direction:column;gap:.5rem;max-width:500px}.platform-admin .room-item{align-items:center;background-color:var(--background);border-radius:.5rem;display:flex;justify-content:space-between;padding:.75rem;transition:all .2s}.platform-admin .room-item.inactive{opacity:.5}.platform-admin .room-name{color:var(--text-primary);font-size:.875rem}.platform-admin .room-actions{display:flex;gap:.5rem}.platform-admin .network-info{align-items:center;display:flex;gap:.75rem}.platform-admin .network-code{background-color:var(--surface);border-radius:.25rem;color:var(--text-secondary);font-family:monospace;font-size:.75rem;padding:.25rem .5rem}.platform-admin .sites-table{margin-top:1.5rem;overflow-x:auto}.platform-admin .sites-table table{border-collapse:collapse;width:100%}.platform-admin .sites-table th{background-color:var(--background);border-bottom:2px solid var(--border);color:var(--text-secondary);font-size:.75rem;font-weight:600;padding:.75rem;text-align:left;text-transform:uppercase}.platform-admin .sites-table td{border-bottom:1px solid var(--border);font-size:.875rem;padding:.75rem}.platform-admin .sites-table tr.inactive{opacity:.5}.platform-admin .inline-select{background:var(--surface);border:1px solid var(--border);border-radius:4px;cursor:pointer;font-size:.8rem;padding:.25rem .5rem}.platform-admin .inline-select:hover{border-color:var(--primary)}.platform-admin .inline-select:focus{border-color:var(--primary);box-shadow:0 0 0 2px #3b82f61a;outline:none}.platform-admin .status-badge{border-radius:9999px;display:inline-block;font-size:.7rem;font-weight:500;padding:.25rem .5rem}.platform-admin .status-badge.active{background-color:#dcfce7;color:#16a34a}.platform-admin .status-badge.inactive{background-color:#f3f4f6;color:#6b7280}.platform-admin .primary-badge{background-color:#dbeafe;border-radius:9999px;color:#1e40af;display:inline-block;font-size:.7rem;font-weight:500;margin-left:.5rem;padding:.125rem .5rem}.platform-admin .modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.platform-admin .modal{background-color:var(--surface);border-radius:.75rem;box-shadow:var(--shadow-lg);max-width:90vw;min-width:450px;padding:2rem}.platform-admin .modal h2{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:1.5rem}.platform-admin .form-group{margin-bottom:1rem}.platform-admin .form-group label{color:var(--text-secondary);display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.platform-admin .form-group input,.platform-admin .form-group select{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;padding:.5rem 1rem;width:100%}.platform-admin .modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.platform-admin .btn-secondary{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;color:var(--text-primary);cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.platform-admin .btn-secondary:hover{background-color:var(--background)}.platform-admin .btn-primary{background-color:var(--primary-color);border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.platform-admin .btn-primary:hover:not(:disabled){background-color:#1d4ed8}.platform-admin .tools-config-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.platform-admin .tool-config-item{align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;display:flex;justify-content:space-between;padding:.875rem 1rem;transition:all .2s}.platform-admin .tool-config-item.inactive{background-color:#f9fafb;opacity:.6}.platform-admin .tool-config-item.globally-disabled,.platform-admin .tool-config-item.parent-disabled{background-color:#f3f4f6;opacity:.5}.platform-admin .tool-config-info{display:flex;flex-direction:column;gap:.25rem}.platform-admin .tool-config-info .tool-name{color:var(--text-primary);font-size:.9rem;font-weight:600}.platform-admin .tool-config-info .tool-route{color:var(--text-secondary);font-family:monospace;font-size:.75rem}.platform-admin .tool-config-actions{align-items:center;display:flex;gap:.75rem}.platform-admin .toggle-switch{display:inline-block;height:24px;position:relative;width:44px}.platform-admin .toggle-switch input{height:0;opacity:0;width:0}.platform-admin .toggle-slider{background-color:#ccc;border-radius:24px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.platform-admin .toggle-slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:18px;left:3px;position:absolute;transition:.3s;width:18px}.platform-admin .toggle-switch input:checked+.toggle-slider{background-color:var(--success-color)}.platform-admin .toggle-switch input:checked+.toggle-slider:before{transform:translateX(20px)}.platform-admin .toggle-label{font-size:.8rem;font-weight:500;min-width:60px}.platform-admin .toggle-label.active{color:var(--success-color)}.platform-admin .toggle-label.inactive{color:var(--text-secondary)}.platform-admin .access-select{background-color:var(--surface);border:1px solid var(--border);border-radius:.375rem;cursor:pointer;font-size:.8rem;min-width:140px;padding:.5rem .75rem}.platform-admin .access-select:focus{border-color:var(--primary-color);outline:none}.platform-admin .restriction-badge{background-color:#fee2e2;border-radius:9999px;color:#dc2626;display:inline-block;font-size:.7rem;font-weight:500;margin-left:.5rem;padding:.2rem .5rem}.platform-admin .select-wrapper{margin-bottom:.5rem}.platform-admin .select-wrapper select{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;min-width:250px;padding:.625rem 1rem}.platform-admin .select-wrapper select:focus{border-color:var(--primary-color);outline:none}.platform-admin .loading-message{color:var(--text-secondary);font-size:.875rem;padding:1rem 0}.platform-admin .add-link-form{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.platform-admin .add-link-form input{background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;min-width:150px;padding:.625rem .875rem}.platform-admin .add-link-form input[type=url]{flex:1 1;min-width:250px}.platform-admin .links-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.platform-admin .link-item{align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:.5rem;display:flex;justify-content:space-between;padding:1rem;transition:all .2s}.platform-admin .link-item.inactive{background-color:#f9fafb;opacity:.5}.platform-admin .link-info{display:flex;flex:1 1;flex-direction:column;gap:.25rem;min-width:0}.platform-admin .link-name{color:var(--text-primary);font-size:.9rem;font-weight:600}.platform-admin .link-url{align-items:center;color:var(--primary-color);display:inline-flex;font-size:.75rem;gap:.375rem;text-decoration:none;word-break:break-all}.platform-admin .link-url:hover{text-decoration:underline}.platform-admin .link-description{color:var(--text-secondary);font-size:.8rem;margin-top:.25rem}.platform-admin .link-actions{display:flex;flex-shrink:0;gap:.5rem;margin-left:1rem}.platform-admin .link-edit-form{display:flex;flex-direction:column;gap:.75rem;width:100%}.platform-admin .link-edit-form input{background-color:var(--background);border:1px solid var(--border);border-radius:.5rem;font-size:.875rem;padding:.625rem .875rem}.platform-admin .link-edit-actions{display:flex;gap:.5rem;justify-content:flex-end}.platform-admin .btn-save{align-items:center;background-color:var(--success-color);border:none;border-radius:.375rem;color:#fff;cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:.375rem;padding:.5rem .875rem;transition:all .2s}.platform-admin .btn-save:hover{background-color:#16a34a}.platform-admin .btn-cancel{align-items:center;background-color:var(--surface);border:1px solid var(--border);border-radius:.375rem;color:var(--text-primary);cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:.375rem;padding:.5rem .875rem;transition:all .2s}.platform-admin .btn-cancel:hover{background-color:var(--background)}@media (max-width:768px){.platform-admin{flex-direction:column}.platform-admin .admin-sidebar{width:100%}.platform-admin .admin-nav{display:flex;flex-direction:row;overflow-x:auto;padding:.5rem}.platform-admin .admin-nav button{min-width:120px}.platform-admin .sidebar-footer{display:none}.platform-admin .admin-content{padding:1rem}}.tool-hub{background:#f8fafc;min-height:100vh}.tool-hub-header{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:16px 24px}.tool-hub-logo{align-items:center;color:#0f172a;display:flex;font-size:1.25rem;font-weight:700;gap:8px}.tool-hub-logo .logo-icon{color:#2563eb;font-size:1.5rem}.tool-hub-user{align-items:center;display:flex;gap:16px}.tool-hub-user .user-info{align-items:center;color:#64748b;display:flex;font-size:.875rem;gap:8px}.tool-hub-user .user-details{display:flex;flex-direction:column;line-height:1.2}.tool-hub-user .user-name{color:#1e293b;font-weight:500}.tool-hub-user .user-email{color:#64748b;font-size:.75rem}.tool-hub-main{padding:60px 24px}.tool-hub-container{margin:0 auto;max-width:900px;text-align:center}.tool-hub-container h1{color:#0f172a;font-size:2rem;font-weight:700;margin-bottom:8px}.tool-hub-subtitle{color:#64748b;font-size:1.125rem;margin-bottom:48px}.tools-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));text-align:left}.tool-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:32px;transition:all .2s ease}.tool-card:hover{box-shadow:0 12px 32px #0000001a;transform:translateY(-4px)}.tool-coming-soon{opacity:.75}.tool-coming-soon:hover{box-shadow:none;transform:none}.tool-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.tool-icon{color:#2563eb}.tool-badge{background:#10b981;border-radius:100px;color:#fff;font-size:.75rem;font-weight:600;padding:4px 12px;text-transform:uppercase}.badge-soon{background:#f59e0b}.tool-card h3{color:#0f172a;font-size:1.25rem;font-weight:600;margin-bottom:12px}.tool-card p{color:#64748b;line-height:1.6;margin-bottom:24px}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:8px;padding:12px 24px;text-decoration:none;transition:all .2s ease}.btn-primary:hover{background:#1d4ed8}.btn-secondary{color:#334155}.btn-disabled{background:#e2e8f0;color:#94a3b8;cursor:not-allowed}@media (max-width:768px){.tool-hub-header{flex-direction:column;gap:16px;text-align:center}.tool-hub-user{flex-direction:column;gap:12px}.tool-hub-main{padding:40px 16px}.tool-hub-container h1{font-size:1.5rem}.tool-hub-subtitle{margin-bottom:32px}.tools-grid{grid-template-columns:1fr}.tool-card{padding:24px}}.tools-loading{align-items:center;color:#64748b;display:flex;flex-direction:column;justify-content:center;padding:60px}.tools-loading .loading-spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#2563eb;height:40px;margin-bottom:16px;width:40px}.tools-empty{color:#64748b;padding:60px;text-align:center}.tools-empty p{margin-bottom:8px}.tools-empty p:first-child{color:#475569;font-size:1.125rem}.site-links-section{border-top:1px solid #e2e8f0;margin-top:60px;padding-top:40px}.site-links-section h2{color:#0f172a;font-size:1.5rem;font-weight:700;margin-bottom:8px}.site-link-card{border-left:4px solid #10b981}.site-link-card .btn-primary{align-items:center;display:inline-flex;gap:8px;text-decoration:none}.badge-link{background:#10b981}.link-favicon{border-radius:4px;height:32px;object-fit:contain;width:32px}.ixverify-placeholder{background:#f8fafc;display:flex;flex-direction:column;min-height:100vh}.placeholder-header{background:#fff;border-bottom:1px solid #e2e8f0;padding:1rem 2rem}.placeholder-logo{align-items:center;color:#0f172a;cursor:pointer;display:flex;font-size:1.25rem;font-weight:700;gap:.5rem;transition:opacity .2s;width:-webkit-fit-content;width:fit-content}.placeholder-logo:hover{opacity:.7}.placeholder-logo .logo-icon{color:#3b82f6;font-size:1.5rem}.placeholder-content{margin:auto;max-width:480px;padding:24px;text-align:center}.placeholder-icon{color:#2563eb;margin-bottom:24px}.placeholder-content h1{color:#0f172a;font-size:2rem;font-weight:700;margin-bottom:16px}.coming-soon-badge{background:#f59e0b;border-radius:100px;color:#fff;display:inline-block;font-size:.875rem;font-weight:600;margin-bottom:24px;padding:6px 16px;text-transform:uppercase}.placeholder-content p{color:#64748b;font-size:1.125rem;line-height:1.6;margin-bottom:32px}.placeholder-content .btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s ease}.placeholder-content .btn-primary{background:#2563eb;color:#fff}.placeholder-content .btn-primary:hover{background:#1d4ed8}.request-access-container{align-items:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);display:flex;justify-content:center;min-height:100vh;padding:2rem}.request-access-card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;max-width:500px;padding:2rem;width:100%}.request-logo{align-items:center;border-bottom:1px solid #e2e8f0;color:#0f172a;cursor:pointer;display:flex;font-size:1.25rem;font-weight:700;gap:.5rem;justify-content:center;margin-bottom:1.5rem;padding-bottom:1.5rem;transition:opacity .2s}.request-logo:hover{opacity:.7}.request-logo .logo-icon{color:#3b82f6;font-size:1.5rem}.request-access-header{margin-bottom:2rem;text-align:center}.request-access-header h1{color:#1e293b;font-size:1.75rem;margin-bottom:.5rem}.request-access-header p{color:#64748b;font-size:.95rem}.success-message{padding:2rem;text-align:center}.success-message svg{color:#10b981;margin-bottom:1rem}.success-message h2{color:#1e293b;margin-bottom:.5rem}.success-message p{color:#64748b;margin-bottom:1.5rem}.existing-requests{border-bottom:1px solid #e2e8f0;margin-bottom:2rem;padding-bottom:1.5rem}.existing-requests h3{color:#475569;font-size:.9rem;font-weight:600;letter-spacing:.5px;margin-bottom:.75rem;text-transform:uppercase}.requests-list{display:flex;flex-direction:column;gap:.5rem}.request-item{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;justify-content:space-between;padding:.75rem 1rem}.request-info{display:flex;flex-direction:column;gap:.25rem}.request-target{color:#1e293b;font-weight:500}.request-date{color:#94a3b8;font-size:.8rem}.status-badge{align-items:center;border-radius:12px;display:flex;font-size:.8rem;font-weight:500;gap:.25rem;padding:.25rem .75rem;text-transform:capitalize}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.approved{background:#d1fae5;color:#065f46}.status-badge.denied{background:#fee2e2;color:#991b1b}.request-form{gap:1.25rem}.form-group,.request-form{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{align-items:center;display:flex;gap:.5rem}.form-group input,.form-group select{border:1px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:.75rem 1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-hint{color:#94a3b8;font-size:.8rem}.pending-notice{background:#fef3c7;border-radius:8px;padding:2rem;text-align:center}.pending-notice svg{color:#92400e;margin-bottom:.5rem}.pending-notice p{color:#92400e;margin:0}.form-actions{margin-top:.5rem}.btn-secondary{background:#f1f5f9;display:inline-flex;transition:background .2s}.btn-secondary:hover{background:#e2e8f0}.request-access-footer{border-top:1px solid #e2e8f0;margin-top:2rem;padding-top:1.5rem;text-align:center}.btn-link{align-items:center;display:inline-flex;gap:.5rem}.accept-invite-container{align-items:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);display:flex;justify-content:center;min-height:100vh;padding:2rem}.accept-invite-card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;max-width:450px;padding:2rem;width:100%}.invite-logo{align-items:center;border-bottom:1px solid #e2e8f0;color:#0f172a;cursor:pointer;display:flex;font-size:1.25rem;font-weight:700;gap:.5rem;justify-content:center;margin-bottom:1.5rem;padding-bottom:1.5rem;transition:opacity .2s}.invite-logo:hover{opacity:.7}.invite-logo .logo-icon{color:#3b82f6;font-size:1.5rem}.loading-state{align-items:center;display:flex;flex-direction:column;padding:2rem}.loading-spinner{border:3px solid #e2e8f0;height:40px;margin-bottom:1rem;width:40px}.error-state{padding:2rem;text-align:center}.error-icon{color:#ef4444;margin-bottom:1rem}.error-icon.expired{color:#f59e0b}.error-state h2{color:#1e293b;margin-bottom:.5rem}.error-state p{color:#64748b;margin-bottom:1.5rem}.success-state{padding:2rem;text-align:center}.success-icon{color:#10b981;margin-bottom:1rem}.success-state h2{color:#1e293b;margin-bottom:.5rem}.success-state p{color:#64748b}.redirect-notice{color:#94a3b8;font-size:.9rem;margin-top:1rem}.invite-header{margin-bottom:1.5rem;text-align:center}.invite-icon{color:#2563eb;margin-bottom:.5rem}.invite-header h1{color:#1e293b;font-size:1.5rem;margin:0}.invite-details{background:#f8fafc;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.detail-row{align-items:center;color:#475569;display:flex;gap:.75rem}.detail-row+.detail-row{border-top:1px solid #e2e8f0;margin-top:.75rem;padding-top:.75rem}.detail-row svg{color:#94a3b8}.detail-label{color:#94a3b8;display:block;font-size:.8rem}.detail-value{color:#1e293b;display:block;font-weight:500}.role-badge{background:#dbeafe;border-radius:12px;color:#1d4ed8;display:inline-block;font-size:.85rem;font-weight:500;padding:.25rem .75rem;text-transform:capitalize}.error-message{background:#fee2e2;border-radius:8px;color:#991b1b;font-size:.9rem;margin-bottom:1rem;padding:.75rem 1rem}.authenticated-section{text-align:center}.auth-status{color:#64748b;margin-bottom:1rem}.email-mismatch{background:#fef3c7;border-radius:8px;padding:1rem}.email-mismatch p{color:#92400e;margin-bottom:1rem}.unauthenticated-section{text-align:center}.invite-email{color:#64748b;margin-bottom:1.5rem}.auth-options{display:flex;flex-direction:column;gap:.75rem}.signup-form{text-align:left}.form-group{margin-bottom:1rem}.form-group label{color:#475569;display:block;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.form-group input{border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-size:1rem;padding:.75rem 1rem;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-group .input-disabled{background:#f1f5f9;color:#64748b;cursor:not-allowed}.form-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem}.btn-primary{align-items:center;background:#2563eb;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;padding:.875rem 1.5rem;transition:background .2s;width:100%}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-primary:disabled{background:#94a3b8;cursor:not-allowed}.btn-secondary{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem 1.5rem;transition:background .2s,border-color .2s;width:100%}.btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1}.btn-link{background:none;border:none;color:#64748b;cursor:pointer;font-size:.9rem;transition:color .2s}.btn-link:hover{color:#2563eb}.google-button{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#1f2937;cursor:pointer;display:flex;font-size:1rem;font-weight:500;gap:.75rem;justify-content:center;padding:.875rem 1.5rem;transition:background .2s,box-shadow .2s;width:100%}.google-button:hover{background:#f8fafc;box-shadow:0 2px 8px #00000014}.google-button svg{flex-shrink:0}.auth-divider{align-items:center;display:flex;gap:1rem;margin:.5rem 0}.auth-divider:after,.auth-divider:before{background:#e2e8f0;content:"";flex:1 1;height:1px}.auth-divider span{color:#94a3b8;font-size:.85rem}.privacy-policy-container{background:#f8fafc;min-height:100vh}.privacy-header{background:#fff;border-bottom:1px solid #e2e8f0;margin-bottom:2rem;padding:1rem 2rem}.privacy-logo{align-items:center;color:#0f172a;cursor:pointer;display:flex;font-size:1.25rem;font-weight:700;gap:.5rem;transition:opacity .2s;width:-webkit-fit-content;width:fit-content}.privacy-logo:hover{opacity:.7}.privacy-logo .logo-icon{color:#3b82f6;font-size:1.5rem}.privacy-policy-content{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin:0 auto;max-width:800px;padding:3rem}.back-button{align-items:center;background:none;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;cursor:pointer;display:inline-flex;font-size:.875rem;gap:.5rem;margin-bottom:2rem;padding:.5rem 1rem;transition:all .2s}.back-button:hover{background:#f1f5f9;color:#334155}.privacy-policy-content h1{color:#1e293b;font-size:2.25rem;font-weight:700;margin:0 0 .5rem}.last-updated{border-bottom:1px solid #e2e8f0;color:#64748b;font-size:.875rem;margin-bottom:2.5rem;padding-bottom:1.5rem}.privacy-policy-content section{margin-bottom:2rem}.privacy-policy-content h2{color:#1e293b;font-size:1.375rem;font-weight:600;margin:0 0 1rem}.privacy-policy-content h3{color:#334155;font-size:1.1rem;font-weight:600;margin:1.25rem 0 .75rem}.privacy-policy-content p,.privacy-policy-content ul{color:#475569;line-height:1.7;margin:0 0 1rem}.privacy-policy-content ul{padding-left:1.5rem}.privacy-policy-content li{margin-bottom:.5rem}.privacy-policy-content strong{color:#334155}.contact-info{background:#f8fafc;border-left:4px solid #3b82f6;border-radius:8px;padding:1rem 1.5rem}@media (max-width:768px){.privacy-policy-container{padding:1rem}.privacy-policy-content{padding:1.5rem}.privacy-policy-content h1{font-size:1.75rem}.privacy-policy-content h2{font-size:1.25rem}}*{box-sizing:border-box;margin:0;padding:0}:root{--primary-color:#2563eb;--secondary-color:#64748b;--success-color:#22c55e;--warning-color:#f59e0b;--danger-color:#ef4444;--background:#f8fafc;--surface:#fff;--text-primary:#1e293b;--text-secondary:#64748b;--border:#e2e8f0;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;background-color:var(--background);color:#1e293b;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App{min-height:100vh}.loading-container{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:100vh}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-top-color:#2563eb;border:4px solid var(--border);border-radius:50%;border-top-color:var(--primary-color);height:48px;width:48px}@keyframes spin{to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.4edddf79.css.map*/