.dashboard_dashboard__SjbNP{display:flex;flex-direction:column;min-height:100vh}.dashboard_dashboardContainer__h17rQ{flex:1 1;margin:0 auto;max-width:100vw;padding:10px}.dashboard_threePanelLayout__h99MD{background:var(--bg-primary);border-radius:12px;box-shadow:var(--shadow-lg);display:grid;grid-template-areas:"center" "center" "center";grid-template-columns:1fr;grid-template-rows:auto 1fr auto;height:calc(100vh - 140px);overflow:hidden;position:relative;transition:background .3s ease}.dashboard_panelLeft__Hbi8h{background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;grid-area:left;height:100vh;left:-100%;max-width:320px;overflow-y:auto;position:fixed;top:0;transition:background .3s ease,border-color .3s ease,transform .3s ease;width:90vw;z-index:1000}.dashboard_panelLeft__Hbi8h.dashboard_open__GsOHm{box-shadow:4px 0 20px #0000004d;left:0}.dashboard_panelCenter__ZE06O{background:var(--bg-primary);display:flex;flex-direction:column;grid-area:center;min-height:0;overflow:auto;transition:background .3s ease}.dashboard_panelRight__-KSBP{background:var(--bg-secondary);border-left:1px solid var(--border-color);grid-area:right;height:100vh;max-width:400px;overflow-y:auto;position:fixed;right:-100%;top:0;transition:background .3s ease,border-color .3s ease,transform .3s ease;width:90vw;z-index:1000}.dashboard_panelRight__-KSBP.dashboard_open__GsOHm{box-shadow:-4px 0 20px #0000004d;right:0}.dashboard_panelBackdrop__jOZMO{background:#00000080;height:100vh;left:0;opacity:0;position:fixed;top:0;transition:opacity .3s ease,visibility .3s ease;visibility:hidden;width:100vw;z-index:999}.dashboard_panelBackdrop__jOZMO.dashboard_active__vzNoh{opacity:1;visibility:visible}.dashboard_panelClose__JXyeW{background:#0000001a;border:1px solid var(--border-color);border-radius:var(--border-radius-standard);color:var(--text-secondary);cursor:pointer;font-size:var(--font-size-large);height:var(--touch-size-small);position:absolute;right:1rem;top:1rem;transition:var(--transition-standard);width:var(--touch-size-small);z-index:1001}.dashboard_panelClose__JXyeW:hover{background:#0003;color:var(--text-primary)}@media (min-width:576px){.dashboard_dashboardContainer__h17rQ{padding:15px}.dashboard_threePanelLayout__h99MD{grid-template-areas:"left center" "left center";grid-template-columns:280px 1fr}.dashboard_panelLeft__Hbi8h{height:auto;left:auto;position:static;width:auto;z-index:auto}.dashboard_panelLeft__Hbi8h .dashboard_panelClose__JXyeW{display:none}.dashboard_panelRight__-KSBP{max-width:380px;width:85vw}}@media (min-width:768px){.dashboard_dashboardContainer__h17rQ{padding:20px}.dashboard_threePanelLayout__h99MD{gap:0;grid-template-areas:"left center right";grid-template-columns:300px 1fr 350px}.dashboard_panelLeft__Hbi8h{border-right:1px solid var(--border-color)}.dashboard_panelRight__-KSBP{border-left:1px solid var(--border-color);height:auto;position:static;right:auto;width:auto;z-index:auto}.dashboard_panelBackdrop__jOZMO,.dashboard_panelRight__-KSBP .dashboard_panelClose__JXyeW{display:none}}@media (min-width:992px){.dashboard_threePanelLayout__h99MD{gap:0;grid-template-columns:320px 1fr 400px}}@media (min-width:1200px){.dashboard_dashboardContainer__h17rQ{max-width:1400px}.dashboard_threePanelLayout__h99MD{border-radius:12px;gap:20px}.dashboard_panelLeft__Hbi8h{border-radius:12px 0 0 12px}.dashboard_panelRight__-KSBP{border-radius:0 12px 12px 0}}.base_btnBase__eHF3v{align-items:center;background:var(--bg-tertiary);border:1px solid var(--border-hover);border-radius:var(--border-radius-standard);color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:var(--font-size-standard);font-weight:500;justify-content:center;outline:none;padding:var(--padding-standard);text-decoration:none;transition:var(--transition-standard);-webkit-user-select:none;user-select:none;white-space:nowrap}.base_btnBase__eHF3v:hover{background:var(--bg-primary);border-color:var(--accent-primary);color:var(--text-primary)}.base_btnBase__eHF3v:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.base_btnBase__eHF3v:active{transform:scale(.98)}.base_btnBase__eHF3v:disabled{cursor:not-allowed;opacity:.5;transform:none}.base_btnPrimary__xHt0g{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.base_btnPrimary__xHt0g:hover{background:#2563eb;border-color:#2563eb;color:#fff}.base_btnSecondary__d-SS0{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}.base_btnDanger__3puw3{background:#ef44441a;border-color:#ef4444;color:#ef4444}.base_btnDanger__3puw3:hover{background:#ef444433;border-color:#dc2626;color:#dc2626}.base_btnSuccess__8QMyK{background:#10b9811a;border-color:#10b981;color:#10b981}.base_btnSuccess__8QMyK:hover{background:#10b98133;border-color:#059669;color:#059669}.base_touchTarget__frvPe{align-items:center;display:flex;justify-content:center;min-height:var(--touch-size);min-width:var(--touch-size);position:relative}.base_touchTargetSmall__mL3WF{min-height:var(--touch-size-small);min-width:var(--touch-size-small)}.base_flexCenter__kCOGv,.base_touchTargetSmall__mL3WF{align-items:center;display:flex;justify-content:center}.base_flexBetween__-sV\+y{align-items:center;display:flex;justify-content:space-between}.base_flexStart__AnrRQ{align-items:center;display:flex;justify-content:flex-start}.base_flexEnd__Y5cOE{align-items:center;display:flex;justify-content:flex-end}.base_flexColumn__kPqZz{display:flex;flex-direction:column}.base_flexWrap__fThNf{flex-wrap:wrap}.base_flex1__RKq9W{flex:1 1}.base_responsiveContainer__9azvR{background:var(--bg-primary);border-radius:var(--border-radius-standard);padding:var(--spacing-md);transition:var(--transition-slow);width:100%}@media (min-width:576px){.base_responsiveContainer__9azvR{padding:var(--spacing-lg)}}@media (min-width:768px){.base_responsiveContainer__9azvR{padding:var(--spacing-xl)}}.base_panelBase__9NirO{background:var(--bg-secondary);border:1px solid var(--border-color);overflow:hidden;transition:var(--transition-slow)}.base_iconBtn__Mowmg{background:var(--bg-tertiary);border:1px solid var(--border-hover);border-radius:var(--border-radius-standard);color:var(--text-secondary);cursor:pointer;font-size:var(--font-size-medium);height:var(--touch-size);transition:var(--transition-standard);width:var(--touch-size)}.base_iconBtn__Mowmg:hover{background:var(--bg-primary);border-color:var(--accent-primary);color:var(--text-primary)}.base_iconBtn__Mowmg:active{transform:scale(.95)}.base_textSmall__R-w9W{font-size:var(--font-size-small)}.base_textStandard__DCMf7{font-size:var(--font-size-standard)}.base_textMedium__5Eq-B{font-size:var(--font-size-medium)}.base_textLarge__IEurH{font-size:var(--font-size-large)}.base_gapXs__mW1Oa{gap:var(--spacing-xs)}.base_gapSm__zz\+Ny{gap:var(--spacing-sm)}.base_gapMd__pcAYT{gap:var(--spacing-md)}.base_gapLg__3w8B6{gap:var(--spacing-lg)}.base_gapXl__JwJwZ{gap:var(--spacing-xl)}.base_srOnly__FQVr4{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}*,::backdrop,: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: }
/* ! tailwindcss v3.4.17 | 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;margin:0}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}[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}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input:where(:not([type])),select,textarea{--tw-shadow:0 0 #0000;appearance:none;background-color:#fff;border-color:#6b7280;border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,input:where(:not([type])):focus,select:focus,textarea:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:#2563eb;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-bottom:0;padding-top:0}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:none;background-position:0 0;background-repeat:repeat;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:inherit;print-color-adjust:inherit}[type=checkbox],[type=radio]{--tw-shadow:0 0 #0000;appearance:none;background-color:#fff;background-origin:border-box;border-color:#6b7280;border-width:1px;color:#2563eb;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;user-select:none;vertical-align:middle;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000;outline-offset:2px}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}@media (forced-colors:active){[type=checkbox]:checked{appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}@media (forced-colors:active){[type=radio]:checked{appearance:auto}}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=checkbox]:indeterminate,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:#0000}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%}@media (forced-colors:active){[type=checkbox]:indeterminate{appearance:auto}}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:#0000}[type=file]{background:#0000 none repeat 0 0/auto auto padding-box border-box scroll;background:initial;border-color:inherit;border-radius:0;border-width:0;font-size:inherit;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-y-0{bottom:0;top:0}.bottom-0{bottom:0}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-2{top:.5rem}.top-4{top:1rem}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-auto{height:auto}.h-full{height:100%}.max-h-\[70vh\]{max-height:70vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[calc\(85vh-200px\)\]{max-height:calc(85vh - 200px)}.max-h-full{max-height:100%}.min-h-screen{min-height:100vh}.min-h-touch{min-height:44px;min-height:var(--touch-size)}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-auto{width:auto}.w-full{width:100%}.min-w-touch{min-width:44px;min-width:var(--touch-size)}.max-w-7xl{max-width:80rem}.max-w-\[250px\]{max-width:250px}.max-w-\[60\%\]{max-width:60%}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.flex-1{flex:1 1}.flex-shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;user-select:none}.select-all{-webkit-user-select:all;user-select:all}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-large{border-radius:8px;border-radius:var(--border-radius-large)}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-standard{border-radius:6px;border-radius:var(--border-radius-standard)}.rounded-xl{border-radius:.75rem}.rounded-b-lg{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-blue-300{--tw-border-opacity:1;border-color:#93c5fd;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:#60a5fa;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-600{--tw-border-opacity:1;border-color:#2563eb;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.border-current{border-color:currentColor}.border-gray-200{--tw-border-opacity:1;border-color:#e5e7eb;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:#d1d5db;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-400{--tw-border-opacity:1;border-color:#9ca3af;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:#bbf7d0;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-orange-200{--tw-border-opacity:1;border-color:#fed7aa;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:#fecaca;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-300{--tw-border-opacity:1;border-color:#fca5a5;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.border-white{--tw-border-opacity:1;border-color:#fff;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.border-white\/10{border-color:#ffffff1a}.border-white\/20{border-color:#fff3}.border-white\/30{border-color:#ffffff4d}.border-r-transparent{border-right-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-accent-primary{background-color:#3b82f6;background-color:var(--accent-primary)}.bg-bg-primary{background-color:#fff;background-color:var(--bg-primary)}.bg-black{--tw-bg-opacity:1;background-color:#000;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/20{background-color:#0003}.bg-black\/50{background-color:#00000080}.bg-black\/70{background-color:#000000b3}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity:1;background-color:#dbeafe;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-400\/20{background-color:#60a5fa33}.bg-blue-50{--tw-bg-opacity:1;background-color:#eff6ff;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:#3b82f6;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:#2563eb;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:#d1d5db;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:#f9fafb;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:#4b5563;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-gray-700{--tw-bg-opacity:1;background-color:#374151;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.bg-gray-900{--tw-bg-opacity:1;background-color:#111827;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:#dcfce7;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:#f0fdf4;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:#22c55e;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-green-600{--tw-bg-opacity:1;background-color:#16a34a;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-orange-100{--tw-bg-opacity:1;background-color:#ffedd5;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.bg-orange-50{--tw-bg-opacity:1;background-color:#fff7ed;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:#fee2e2;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:#fef2f2;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:#dc2626;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/20{background-color:#fff3}.bg-yellow-50{--tw-bg-opacity:1;background-color:#fefce8;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-opacity-50{--tw-bg-opacity:0.5}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black{--tw-gradient-from:#000 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-black\/70{--tw-gradient-from:#000000b3 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-black\/80{--tw-gradient-from:#000c var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-black\/90{--tw-gradient-from:#000000e6 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from:#3b82f6 var(--tw-gradient-from-position);--tw-gradient-to:#3b82f600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gray-100{--tw-gradient-from:#f3f4f6 var(--tw-gradient-from-position);--tw-gradient-to:#f3f4f600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-gray-200{--tw-gradient-to:#e5e7eb var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to:#9333ea var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:#0000 var(--tw-gradient-to-position)}.object-contain{object-fit:contain}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.py-8{padding-bottom:2rem;padding-top:2rem}.pb-2{padding-bottom:.5rem}.pl-10{padding-left:2.5rem}.pl-3{padding-left:.75rem}.pr-3{padding-right:.75rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-6xl{font-size:3.75rem;line-height:1}.text-large{font-size:1.125rem;font-size:var(--font-size-large)}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.leading-5{line-height:1.25rem}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.text-accent-primary{color:#3b82f6;color:var(--accent-primary)}.text-blue-600{--tw-text-opacity:1;color:#2563eb;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:#1d4ed8;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:#1e40af;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:#1e3a8a;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:#9ca3af;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:#6b7280;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:#4b5563;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:#374151;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:#111827;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:#22c55e;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:#16a34a;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:#15803d;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:#166534;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-green-900{--tw-text-opacity:1;color:#14532d;color:rgb(20 83 45/var(--tw-text-opacity,1))}.text-orange-500{--tw-text-opacity:1;color:#f97316;color:rgb(249 115 22/var(--tw-text-opacity,1))}.text-orange-700{--tw-text-opacity:1;color:#c2410c;color:rgb(194 65 12/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:#ef4444;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:#dc2626;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:#b91c1c;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-text-primary{color:#1f2937;color:var(--text-primary)}.text-text-secondary{color:#6b7280;color:var(--text-secondary)}.text-white{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/70{color:#ffffffb3}.text-yellow-800{--tw-text-opacity:1;color:#854d0e;color:rgb(133 77 14/var(--tw-text-opacity,1))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity:1;color:#6b7280;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-blue-400\/50{--tw-shadow-color:#60a5fa80;--tw-shadow:var(--tw-shadow-colored)}.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)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-md,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.text-shadow-sm{text-shadow:1px 1px 2px #0000004d}:root{--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f3f4f6;--text-primary:#1f2937;--text-secondary:#6b7280;--text-tertiary:#9ca3af;--border-color:#e2e8f0;--border-hover:#d1d5db;--accent-primary:#3b82f6;--accent-secondary:#8b5cf6;--gradient-start:#667eea;--gradient-end:#764ba2;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 12px #00000026;--shadow-lg:0 10px 25px #0000001a;--touch-size:44px;--touch-size-small:32px;--padding-standard:10px 12px;--padding-small:6px 8px;--padding-large:12px 16px;--border-radius-standard:6px;--border-radius-small:4px;--border-radius-large:8px;--transition-standard:all 0.2s ease;--transition-fast:all 0.1s ease;--transition-slow:all 0.3s ease;--font-size-small:0.75rem;--font-size-standard:0.875rem;--font-size-medium:1rem;--font-size-large:1.125rem;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:20px;--spacing-2xl:24px}[data-theme=dark]{--bg-primary:#1a1a1a;--bg-secondary:#2d2d2d;--bg-tertiary:#404040;--text-primary:#f3f4f6;--text-secondary:#d1d5db;--text-tertiary:#9ca3af;--border-color:#404040;--border-hover:#525252;--accent-primary:#60a5fa;--accent-secondary:#a78bfa;--gradient-start:#4c1d95;--gradient-end:#5b21b6;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 10px 25px #0000004d}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg,#667eea,#764ba2);background:linear-gradient(135deg,var(--gradient-start) 0,var(--gradient-end) 100%);color:#1f2937;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5;min-height:100vh;transition:background .3s ease,color .3s ease}button{border:none;cursor:pointer;font-family:inherit;outline:none}.dashboard{display:flex;flex-direction:column;min-height:100vh}.dashboard-container{flex:1 1;margin:0 auto;max-width:100vw;padding:10px}@media (min-width:576px){.dashboard-container{padding:15px}}@media (min-width:768px){.dashboard-container{padding:20px}}@media (min-width:1200px){.dashboard-container{max-width:1400px}}.three-panel-layout{background:#fff;background:var(--bg-primary);border-radius:12px;box-shadow:0 10px 25px #0000001a;box-shadow:var(--shadow-lg);display:grid;grid-template-areas:"center" "center" "center";grid-template-columns:1fr;grid-template-rows:auto 1fr auto;height:calc(100vh - 140px);overflow:hidden;position:relative;transition:background .3s ease}.panel-left{background:#f8fafc;background:var(--bg-secondary);border-right:1px solid #e2e8f0;border-right:1px solid var(--border-color);display:flex;flex-direction:column;grid-area:left;height:100vh;left:-100%;max-width:320px;overflow-y:auto;position:fixed;top:0;transition:background .3s ease,border-color .3s ease,transform .3s ease;width:90vw;z-index:1000}.panel-left.open{box-shadow:4px 0 20px #0000004d;left:0}.panel-center{background:#fff;background:var(--bg-primary);display:flex;flex-direction:column;grid-area:center;min-height:0;overflow:auto;transition:background .3s ease}.panel-right{background:#f8fafc;background:var(--bg-secondary);border-left:1px solid #e2e8f0;border-left:1px solid var(--border-color);grid-area:right;height:100vh;max-width:400px;overflow-y:auto;position:fixed;right:-100%;top:0;transition:background .3s ease,border-color .3s ease,transform .3s ease;width:90vw;z-index:1000}.panel-right.open{box-shadow:-4px 0 20px #0000004d;right:0}@media (min-width:576px){.three-panel-layout{grid-template-areas:"left center" "left center";grid-template-columns:280px 1fr}.panel-left{height:auto;left:auto;position:static;width:auto;z-index:auto}.panel-right{max-width:380px;width:85vw}}@media (min-width:768px){.three-panel-layout{gap:0;grid-template-areas:"left center right";grid-template-columns:300px 1fr 350px}.panel-left{border-right:1px solid #e2e8f0;border-right:1px solid var(--border-color)}.panel-right{border-left:1px solid #e2e8f0;border-left:1px solid var(--border-color);height:auto;position:static;right:auto;width:auto;z-index:auto}}@media (min-width:992px){.three-panel-layout{gap:0;grid-template-columns:320px 1fr 400px}}@media (min-width:1200px){.three-panel-layout{border-radius:12px;gap:20px}.panel-left{border-radius:12px 0 0 12px}.panel-right{border-radius:0 12px 12px 0}}.panel-backdrop{background:#00000080;height:100vh;left:0;opacity:0;position:fixed;top:0;transition:opacity .3s ease,visibility .3s ease;visibility:hidden;width:100vw;z-index:999}.panel-backdrop.active{opacity:1;visibility:visible}.panel-close{background:#0000001a;border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:6px;border-radius:var(--border-radius-standard);color:#6b7280;color:var(--text-secondary);cursor:pointer;font-size:1.125rem;font-size:var(--font-size-large);height:32px;height:var(--touch-size-small);position:absolute;right:1rem;top:1rem;transition:all .2s ease;transition:var(--transition-standard);width:32px;width:var(--touch-size-small);z-index:1001}.panel-close:hover{background:#0003;color:#1f2937;color:var(--text-primary)}@media (min-width:576px){.panel-left .panel-close{display:none}}@media (min-width:768px){.panel-backdrop,.panel-right .panel-close{display:none}}.panel-swipe-indicator{background:#3b82f699;border-radius:2px;height:40px;opacity:0;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .3s ease;width:4px;z-index:1002}.panel-left .panel-swipe-indicator{right:-2px}.panel-right .panel-swipe-indicator{left:-2px}.panel-left.open .panel-swipe-indicator,.panel-right.open .panel-swipe-indicator{opacity:1}.touch-feedback{overflow:hidden;position:relative}.touch-feedback:after{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;opacity:0;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .3s ease,height .3s ease,opacity .3s ease;width:0}.touch-feedback:active:after{height:100px;opacity:1;transition:width .1s ease,height .1s ease,opacity .1s ease;width:100px}.touch-target{align-items:center;display:flex;justify-content:center;min-height:44px;min-width:44px}.gesture-container{touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none}.pinch-zoom-container{overflow:hidden;position:relative;touch-action:pinch-zoom}.swipe-area{bottom:0;position:absolute;top:0;touch-action:pan-x;width:20px;z-index:998}.swipe-area-left{left:0}.swipe-area-right{right:0}.pull-refresh-indicator{animation:spin 1s linear infinite;border:2px solid #3b82f6;border-radius:50%;border-top-color:#0000;height:40px;left:50%;opacity:0;position:absolute;top:-60px;transform:translateX(-50%);transition:opacity .3s ease,top .3s ease;width:40px}.pull-refresh-indicator.active{opacity:1;top:20px}@media (hover:none){.thumbnail-list::-webkit-scrollbar{width:8px}.thumbnail-list::-webkit-scrollbar-track{background:#0000001a}.thumbnail-list::-webkit-scrollbar-thumb{background:#0000004d;border-radius:4px}.image-viewer-content::-webkit-scrollbar{height:8px;width:8px}.provenance-sections::-webkit-scrollbar{width:8px}}.long-press-target{position:relative}.long-press-target:before{border:2px solid #3b82f6;border-radius:inherit;content:"";inset:-2px;opacity:0;pointer-events:none;position:absolute;transform:scale(.95);transition:opacity .2s ease,transform .2s ease}.long-press-target.long-pressing:before{opacity:.6;transform:scale(1.02)}@keyframes haptic-light{0%{transform:scale(1)}50%{transform:scale(.98)}to{transform:scale(1)}}@keyframes haptic-medium{0%{transform:scale(1)}25%{transform:scale(.96)}75%{transform:scale(1.02)}to{transform:scale(1)}}.haptic-light{animation:haptic-light .1s ease}.haptic-medium{animation:haptic-medium .15s ease}@media (hover:none){button:focus,input:focus,select:focus,textarea:focus{border-color:#3b82f6;outline:3px solid #3b82f6;outline-offset:2px}}.privacy-indicator,.selection-checkbox input,.thumbnail-item .quick-action-btn{position:relative}.privacy-indicator:after,.selection-checkbox:after,.thumbnail-item .quick-action-btn:after{bottom:-8px;content:"";left:-8px;min-height:44px;min-width:44px;position:absolute;right:-8px;top:-8px}@media (hover:none){.bulk-action-btn:hover,.quick-action-btn:hover,.selection-mode-btn:hover,.thumbnail-item:hover{background:inherit;border-color:inherit;color:inherit;transform:none}.thumbnail-item:active{background:#f3f4f6;background:var(--bg-tertiary);transform:scale(.98)}.bulk-action-btn:active,.selection-mode-btn:active{transform:scale(.95)}.quick-action-btn:active{transform:scale(.9)}}.app-header{background:linear-gradient(135deg,#3b82f6,#8b5cf6);box-shadow:0 4px 6px #0000001a;padding:.75rem 0;position:relative;z-index:999}.header-content{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin:0 auto;max-width:1400px;padding:0 1rem}.mobile-nav-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:8px;border-radius:var(--border-radius-large);color:#fff;cursor:pointer;font-size:1.125rem;font-size:var(--font-size-large);height:40px;transition:all .2s ease;transition:var(--transition-standard);width:40px}.mobile-nav-button:hover{background:#ffffff4d;transform:scale(1.05)}.mobile-nav-button:active{transform:scale(.95)}@media (min-width:576px){.mobile-nav-left{display:none}}@media (min-width:768px){.mobile-nav-right{display:none}.header-content{padding:0 2rem}.app-header{padding:1rem 0}}.header-brand{flex:1 1;justify-content:center}.header-brand,.logo-container{align-items:center;display:flex}.brand-tagline{color:#fff;font-size:1.25rem;font-weight:600;margin:0;text-shadow:1px 1px 2px #0000004d}@media (min-width:576px){.header-brand{flex:none;justify-content:flex-start}.brand-tagline{font-size:1.5rem}}@media (max-width:360px){.brand-tagline{font-size:1.1rem}}.header-actions{align-items:center;display:flex;gap:.5rem}.theme-toggle{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:8px;border-radius:var(--border-radius-large);font-size:1.125rem;font-size:var(--font-size-large);height:40px;transition:all .2s ease;transition:var(--transition-standard);width:40px}.theme-toggle:hover{background:#ffffff4d;transform:scale(1.05)}.theme-toggle:active{transform:scale(.95)}.user-section{align-items:center;display:flex;gap:.5rem}.user-info{display:none;text-shadow:1px 1px 2px #0000004d}.logout-button,.user-info{color:#fff;font-size:.875rem}.logout-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:6px;border-radius:var(--border-radius-standard);font-size:var(--font-size-standard);padding:6px 8px;padding:var(--padding-small);transition:all .2s ease;transition:var(--transition-standard)}.logout-button:hover{background:#ffffff4d;transform:translateY(-1px)}.logout-button:active{transform:translateY(0)}@media (min-width:576px){.user-info{display:block}.header-actions,.user-section{gap:1rem}.logout-button{font-size:1rem;padding:.5rem 1rem}}.thumbnail-sidebar{display:flex;flex-direction:column;height:100%;position:relative}.thumbnail-sidebar-header{background:#fff;background:var(--bg-primary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);padding:15px;transition:background .3s ease,border-color .3s ease}@media (min-width:576px){.thumbnail-sidebar-header{padding:20px}}.thumbnail-sidebar-header h3{color:#6b7280;color:var(--text-secondary);font-size:.75rem;font-weight:600;letter-spacing:.05em;margin-bottom:4px}.media-count{color:#9ca3af;color:var(--text-tertiary);font-size:.875rem}.thumbnail-list{flex:1 1;overflow-y:auto;padding:8px}@media (min-width:576px){.thumbnail-list{padding:10px}}.thumbnail-item{background:#fff;background:var(--bg-primary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;display:flex;gap:10px;margin-bottom:6px;min-height:72px;padding:10px;transition:all .2s ease}@media (min-width:576px){.thumbnail-item{gap:12px;margin-bottom:8px;min-height:84px;padding:12px}}.thumbnail-item:hover{background:#f3f4f6;background:var(--bg-tertiary)}.thumbnail-item.selected,.thumbnail-item:hover{border-color:#3b82f6;border-color:var(--accent-primary)}.thumbnail-item.selected{background-opacity:.1;background:#3b82f6;background:var(--accent-primary);box-shadow:0 2px 4px #3b82f61a}[data-theme=dark] .thumbnail-item.selected{background:#60a5fa33}.thumbnail-image-container{background:#f3f4f6;border-radius:6px;flex-shrink:0;height:52px;overflow:hidden;width:52px}@media (min-width:576px){.thumbnail-image-container{height:60px;width:60px}}.thumbnail-image{loading:lazy;backface-visibility:hidden;height:100%;object-fit:cover;transform:translateZ(0);transition:opacity .3s ease;width:100%;will-change:opacity}.thumbnail-image,.thumbnail-image.loading{background:#f3f4f6;background:var(--bg-tertiary)}.thumbnail-image.loading{animation:shimmer 1.5s infinite;background-image:linear-gradient(90deg,#f3f4f6 25%,#f8fafc 50%,#f3f4f6 75%);background-image:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-secondary) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;opacity:.7}.thumbnail-image.loaded{animation:none;opacity:1}.thumbnail-image.error{background:#f3f4f6;background:var(--bg-tertiary);opacity:.5}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.thumbnail-image{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media (prefers-reduced-motion:reduce){.thumbnail-image{animation:none;transition:none}}.thumbnail-placeholder{align-items:center;background:#e5e7eb;display:flex;font-size:1.5rem;height:100%;justify-content:center;width:100%}.thumbnail-info{flex:1 1;min-width:0}.thumbnail-filename{color:#374151;font-size:.875rem;font-weight:500;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thumbnail-date{color:#6b7280;font-size:.75rem}.empty-thumbnails{color:#6b7280;padding:40px 20px;text-align:center}.empty-thumbnails p{font-size:.875rem;margin-bottom:8px}.thumbnail-search{background:#fff;background:var(--bg-primary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:6px;padding:8px;transition:background .3s ease,border-color .3s ease}@media (min-width:576px){.thumbnail-search{flex-wrap:nowrap;gap:8px;padding:10px}}.search-input-container{align-items:center;display:flex;flex:1 1;min-width:200px;position:relative}@media (max-width:575px){.search-input-container{order:-1;width:100%}}.search-input{background:#fff;background:var(--bg-primary);border:1px solid #d1d5db;border:1px solid var(--border-hover);border-radius:6px;color:#1f2937;color:var(--text-primary);flex:1 1;font-size:.875rem;padding:8px 32px 8px 12px;transition:border-color .2s ease,background .3s ease,color .3s ease}.search-input:focus{border-color:#3b82f6;border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f61a;outline:none}.search-clear-button{background:none;border:none;border-radius:3px;color:#9ca3af;color:var(--text-tertiary);cursor:pointer;font-size:.75rem;padding:2px;position:absolute;right:8px;top:50%;transform:translateY(-50%);transition:all .2s ease}.search-clear-button:hover{background:#f3f4f6;background:var(--bg-tertiary);color:#6b7280;color:var(--text-secondary)}.advanced-search-button,.filter-toggle-button{background:#f3f4f6;background:var(--bg-tertiary);border:1px solid #d1d5db;border:1px solid var(--border-hover);border-radius:6px;cursor:pointer;font-size:.875rem;min-height:44px;padding:8px 10px;transition:all .2s ease;white-space:nowrap}@media (min-width:576px){.advanced-search-button,.filter-toggle-button{font-size:1rem;padding:8px 12px}}.advanced-search-button:hover,.filter-toggle-button:hover{background:#f8fafc;background:var(--bg-secondary);border-color:#9ca3af;border-color:var(--text-tertiary)}.advanced-search-button.active{background:#3b82f6;background:var(--accent-primary);border-color:#3b82f6;border-color:var(--accent-primary);color:#fff}.search-suggestions{background:#f8fafc;background:var(--bg-secondary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);padding:8px 10px;transition:background .3s ease,border-color .3s ease}.suggestions-header{color:#9ca3af;color:var(--text-tertiary);font-size:.75rem;font-weight:500;margin-bottom:6px}.suggestions-list{display:flex;flex-wrap:wrap;gap:4px}.suggestion-item{background:#fff;background:var(--bg-primary);border:1px solid #d1d5db;border:1px solid var(--border-hover);border-radius:4px;color:#6b7280;color:var(--text-secondary);cursor:pointer;font-size:.75rem;padding:4px 8px;transition:all .2s ease;white-space:nowrap}.suggestion-item:hover{background:#3b82f6;background:var(--accent-primary);border-color:#3b82f6;border-color:var(--accent-primary);color:#fff}.advanced-search-panel{background:#f8fafc;background:var(--bg-secondary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);padding:16px 10px;transition:background .3s ease,border-color .3s ease}.advanced-search-section{margin-bottom:16px}.advanced-search-section:last-child{margin-bottom:0}.advanced-search-section h4{color:#6b7280;color:var(--text-secondary);font-size:.875rem;font-weight:600;margin-bottom:8px}.date-inputs{display:flex;gap:8px}.date-input{background:#fff;background:var(--bg-primary);border:1px solid #d1d5db;border:1px solid var(--border-hover);border-radius:4px;color:#1f2937;color:var(--text-primary);flex:1 1;font-size:.875rem;padding:6px 8px;transition:border-color .2s ease}.date-input:focus{border-color:#3b82f6;border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f61a;outline:none}.filter-input{background:#fff;background:var(--bg-primary);border:1px solid #d1d5db;border:1px solid var(--border-hover);border-radius:4px;color:#1f2937;color:var(--text-primary);font-size:.875rem;padding:6px 8px;transition:border-color .2s ease;width:100%}.filter-input:focus{border-color:#3b82f6;border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f61a;outline:none}.camera-settings-grid{display:flex;flex-direction:column;gap:12px}.setting-group{display:flex;flex-direction:column;gap:6px}.setting-group label{color:#9ca3af;color:var(--text-tertiary);font-size:.75rem;font-weight:500}.range-inputs{align-items:center;display:flex;gap:6px}.range-input{background:#fff;background:var(--bg-primary);border:1px solid #d1d5db;border:1px solid var(--border-hover);border-radius:4px;color:#1f2937;color:var(--text-primary);flex:1 1;font-size:.875rem;padding:6px 8px;transition:border-color .2s ease}.range-input:focus{border-color:#3b82f6;border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f61a;outline:none}.range-inputs span{color:#9ca3af;color:var(--text-tertiary);font-size:.75rem;font-weight:500}.advanced-search-actions{border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color);display:flex;justify-content:center;margin-top:16px;padding-top:16px}.clear-filters-button{background:#f3f4f6;background:var(--bg-tertiary);border:1px solid #d1d5db;border:1px solid var(--border-hover);border-radius:6px;color:#6b7280;color:var(--text-secondary);cursor:pointer;font-size:.875rem;padding:8px 16px;transition:all .2s ease}.clear-filters-button:hover{background:#fff;background:var(--bg-primary);border-color:#9ca3af;border-color:var(--text-tertiary)}.metadata-tag{font-size:.7rem;white-space:nowrap}.metadata-tag.device{background:#3b82f61a;color:#3b82f6}.metadata-tag.camera{background:#10b9811a;color:#10b981}.search-tips{background:#f3f4f6;background:var(--bg-tertiary);border:1px solid #d1d5db;border:1px solid var(--border-hover);border-radius:6px;margin-top:16px;padding:12px}.search-tips h4{color:#6b7280;color:var(--text-secondary);font-size:.875rem;font-weight:600;margin-bottom:8px}.search-tips ul{margin:0;padding-left:16px}.search-tips li{color:#9ca3af;color:var(--text-tertiary);font-size:.75rem;line-height:1.4;margin-bottom:4px}.search-tips code{background:#fff;background:var(--bg-primary);border-radius:3px;color:#3b82f6;color:var(--accent-primary);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.7rem;padding:2px 4px}@media (max-width:768px){.thumbnail-search{flex-direction:column;gap:8px}.search-input-container{order:1}.advanced-search-button,.filter-toggle-button{flex:1 1;justify-content:center;order:2}.date-inputs{flex-direction:column}.camera-settings-grid{gap:8px}.range-inputs{flex-direction:column;gap:4px}.range-inputs span{display:none}.suggestions-list{flex-direction:column}.suggestion-item{text-align:left}}.thumbnail-filters{background:#f8fafc;background:var(--bg-secondary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:10px;padding:12px 10px;transition:background .3s ease,border-color .3s ease}.filter-row{align-items:center;display:flex;gap:8px}.filter-row label{color:#6b7280;font-size:.75rem;font-weight:500;min-width:50px}.filter-select{background:#fff;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;flex:1 1;font-size:.75rem;padding:6px 8px;transition:border-color .2s ease}.filter-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a;outline:none}.selection-mode-banner{align-items:center;background:#3b82f6;background:var(--accent-primary);color:#fff;display:flex;flex-wrap:wrap;font-size:.875rem;font-weight:500;gap:8px;justify-content:space-between;min-height:54px;padding:10px 15px}.selection-mode-text{align-items:center;display:flex;flex:1 1;gap:8px;min-width:150px}.exit-selection-btn{background:#fff3;border:1px solid #ffffff4d;border-radius:6px;border-radius:var(--border-radius-standard);color:#fff;cursor:pointer;font-size:.875rem;font-size:var(--font-size-standard);font-weight:500;min-height:44px;min-height:var(--touch-size);padding:6px 8px;padding:var(--padding-small);transition:all .2s ease;transition:var(--transition-standard);white-space:nowrap}.exit-selection-btn:active{transform:scale(.95)}@media (min-width:576px){.selection-mode-banner{flex-wrap:nowrap;min-height:auto;padding:6px 8px;padding:var(--padding-small)}.exit-selection-btn{font-size:.75rem;font-size:var(--font-size-small);min-height:auto;padding:4px 12px;padding:var(--spacing-xs) var(--spacing-md)}}.exit-selection-btn:hover{background:#ffffff4d;border-color:#fff6}.bulk-operations-toolbar{align-items:center;background:#f8fafc;background:var(--bg-secondary);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;min-height:60px;padding:12px 10px;transition:background .3s ease,border-color .3s ease}@media (min-width:576px){.bulk-operations-toolbar{flex-wrap:nowrap;gap:0;min-height:auto;padding:10px}}.toolbar-left{align-items:center;display:flex;flex:1 1;gap:8px;min-width:0}@media (min-width:576px){.toolbar-left{flex:none;gap:12px}}.selection-mode-btn{gap:8px;gap:var(--spacing-sm);min-height:44px;min-height:var(--touch-size);white-space:nowrap}@media (min-width:576px){.selection-mode-btn{min-height:auto}}.selection-mode-btn:hover{background:#fff;background:var(--bg-primary);color:#1f2937;color:var(--text-primary)}.selection-mode-btn.active,.selection-mode-btn:hover{border-color:#3b82f6;border-color:var(--accent-primary)}.selection-mode-btn.active{background:#3b82f6;background:var(--accent-primary);color:#fff}.selection-info{align-items:center;display:flex;gap:8px}.selected-count{background:#3b82f61a;border-radius:4px;color:#3b82f6;color:var(--accent-primary);font-size:.75rem;font-weight:500;padding:4px 8px}.deselect-all-btn{align-items:center;background:#f3f4f6;background:var(--bg-tertiary);border:1px solid #d1d5db;border:1px solid var(--border-hover);border-radius:4px;color:#9ca3af;color:var(--text-tertiary);cursor:pointer;display:flex;height:24px;justify-content:center;transition:all .2s ease;width:24px}.deselect-all-btn:hover{background:#fff;background:var(--bg-primary);border-color:#9ca3af;border-color:var(--text-tertiary);color:#6b7280;color:var(--text-secondary)}.bulk-actions{align-items:center;display:flex;flex-wrap:wrap;gap:6px}@media (max-width:575px){.bulk-actions{justify-content:flex-start;order:1;width:100%}}@media (min-width:576px){.bulk-actions{flex-wrap:nowrap;gap:8px}}.bulk-action-btn{gap:4px;gap:var(--spacing-xs);min-height:44px;min-height:var(--touch-size);white-space:nowrap}@media (min-width:576px){.bulk-action-btn{min-height:auto}}.bulk-action-btn:hover{background:#fff;background:var(--bg-primary);border-color:#3b82f6;border-color:var(--accent-primary);color:#1f2937;color:var(--text-primary)}.bulk-action-btn.make-public:hover{background:#10b9811a;border-color:#10b981;color:#10b981}.bulk-action-btn.make-private:hover{background:#6b72801a;border-color:#6b7280;color:#6b7280}.bulk-action-btn.share:hover{background:#3b82f61a;border-color:#3b82f6;border-color:var(--accent-primary);color:#3b82f6;color:var(--accent-primary)}.bulk-action-btn.delete:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.thumbnail-item.selection-mode{padding-left:8px}.thumbnail-item.item-selected{background:#3b82f61a;border-color:#3b82f6;border-color:var(--accent-primary);box-shadow:0 2px 8px #3b82f626}.thumbnail-image-container{position:relative}.selection-checkbox{left:6px;position:absolute;top:6px;z-index:10}.selection-checkbox input[type=checkbox]{cursor:pointer;height:20px;width:20px}@media (min-width:576px){.selection-checkbox{left:4px;top:4px}.selection-checkbox input[type=checkbox]{height:16px;width:16px}}.privacy-indicator{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe6;border-radius:4px;box-shadow:0 1px 3px #0003;padding:6px;position:absolute;right:6px;top:6px;z-index:10}.privacy-indicator svg{height:18px;width:18px}@media (min-width:576px){.privacy-indicator{padding:4px;right:4px;top:4px}.privacy-indicator svg{height:16px;width:16px}}.privacy-indicator svg.text-green-500{color:#10b981}.privacy-indicator svg.text-gray-500{color:#6b7280}.quick-actions{bottom:6px;display:flex;gap:6px;opacity:0;position:absolute;right:6px;transition:opacity .2s ease}@media (hover:none){.quick-actions{opacity:1}}.thumbnail-item:hover .quick-actions{opacity:1}.quick-action-btn{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;border:none;border-radius:6px;border-radius:var(--border-radius-standard);color:#fff;cursor:pointer;height:32px;height:var(--touch-size-small);transition:all .2s ease;transition:var(--transition-standard);width:32px;width:var(--touch-size-small)}@media (min-width:576px){.quick-actions{bottom:4px;bottom:var(--spacing-xs);gap:4px;gap:var(--spacing-xs);right:4px;right:var(--spacing-xs)}.quick-action-btn{border-radius:4px;border-radius:var(--border-radius-small);height:24px;width:24px}}.quick-action-btn:hover{background:#000000e6;transform:scale(1.05)}.quick-action-btn.privacy-toggle:hover{background:#10b981e6}.quick-action-btn.share:hover{background:#3b82f6e6}.quick-action-btn.delete:hover{background:#ef4444e6}.thumbnail-metadata{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.metadata-tag{border-radius:3px;font-size:.625rem;font-weight:500;letter-spacing:.025em;padding:2px 6px;text-transform:uppercase}.metadata-tag.content-type{background:#6b72801a;color:#6b7280}.metadata-tag.verified{background:#10b9811a;color:#10b981}[data-theme=dark] .thumbnail-item.item-selected{background:#60a5fa33;border-color:#3b82f6;border-color:var(--accent-primary)}[data-theme=dark] .privacy-indicator{background:#000000b3}[data-theme=dark] .selected-count{background:#60a5fa33}[data-theme=dark] .metadata-tag.content-type{background:#9ca3af33;color:#9ca3af}[data-theme=dark] .metadata-tag.verified{background:#10b98133;color:#34d399}.filter-select:hover{border-color:#9ca3af}.verification-badge,.verification-badge-large,.verification-badge-small{align-items:center;border-radius:6px;display:inline-flex;font-size:.75rem;font-weight:500;gap:6px;padding:6px 10px;transition:all .2s ease;white-space:nowrap}.verification-badge-small{font-size:.7rem;gap:4px;padding:4px 8px;position:absolute;right:4px;top:4px;z-index:10}.verification-badge-large{font-size:.875rem;gap:8px;height:36px;padding:8px 12px}.verification-badge-large.clickable:hover,.verification-badge.clickable:hover{box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.verification-icon{font-size:1em}.filename-item{color:#1f2937;font-size:.9rem;font-weight:600}.image-viewer{display:flex;flex-direction:column;height:100%;overflow:auto;scrollbar-color:#cbd5e0 #f7fafc;scrollbar-width:auto}.image-viewer-header{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;contain:layout style;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;min-height:60px;padding:12px 15px}@media (min-width:576px){.image-viewer-header{flex-wrap:nowrap;gap:16px;min-height:auto;padding:16px 20px}}.image-header-left{align-items:center;display:flex;flex-shrink:0;gap:8px}.image-header-center{align-items:center;display:flex;flex:1 1;justify-content:center}.image-header-right{align-items:center;display:flex;flex-shrink:0;gap:8px}.image-title{align-items:center;display:flex;gap:12px}.image-title h2{color:#1f2937;font-size:1.25rem;font-weight:600;margin:0}.image-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;order:1}@media (max-width:575px){.image-actions{justify-content:center;order:2;width:100%}}@media (min-width:576px){.image-actions{flex-wrap:nowrap;gap:12px;order:1}}.zoom-controls{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:6px;height:44px;padding:8px}@media (min-width:576px){.zoom-controls{gap:8px;height:36px;padding:6px}}.zoom-button{background:#fff;border:1px solid #e5e7eb;border-radius:6px;border-radius:var(--border-radius-standard);color:#374151;cursor:pointer;font-size:1rem;font-size:var(--font-size-medium);font-weight:500;height:32px;height:var(--touch-size-small);transition:all .2s ease;transition:var(--transition-standard);width:32px;width:var(--touch-size-small)}@media (min-width:576px){.zoom-button{font-size:.875rem;font-size:var(--font-size-standard);height:28px;width:28px}}.zoom-button:hover:not(:disabled){background:#e5e7eb;border-color:#d1d5db;transform:translateY(-1px)}.zoom-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.zoom-level{color:#374151;font-size:.875rem;font-weight:600;min-width:48px;text-align:center}.share-button-compact{background:#3b82f6;background:var(--accent-primary);border:none;border-radius:8px;border-radius:var(--border-radius-large);color:#fff;cursor:pointer;font-size:1.125rem;font-size:var(--font-size-large);font-weight:500;height:44px;height:var(--touch-size);transition:all .2s ease;transition:var(--transition-standard);width:44px;width:var(--touch-size)}@media (min-width:576px){.share-button-compact{font-size:1rem;font-size:var(--font-size-medium);height:36px;width:36px}}.share-button-compact:hover{background:#2563eb;transform:translateY(-1px)}.zoom-toggle-button-compact{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;color:#374151;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;height:36px;padding:8px 12px;transition:all .2s ease}.zoom-toggle-button-compact:hover{background:#e5e7eb;border-color:#d1d5db;transform:translateY(-1px)}.button-text{font-size:13px;font-weight:500}.image-viewer-content{-webkit-overflow-scrolling:touch;align-items:center;background:#fafafa;contain:layout style paint;display:flex;flex:1 1;justify-content:center;overflow:auto;padding:15px;position:relative;scrollbar-color:#cbd5e0 #f7fafc;scrollbar-width:auto;transform:translateZ(0);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}@media (max-width:768px){.image-viewer-content{padding:10px}}@media (min-width:768px){.image-viewer-content{padding:20px}}.image-viewer-content::-webkit-scrollbar{height:12px;width:12px}.image-viewer-content::-webkit-scrollbar-track{background:#f7fafc;border-radius:6px}.image-viewer-content::-webkit-scrollbar-thumb{background:#cbd5e0;border:2px solid #f7fafc;border-radius:6px}.image-viewer-content::-webkit-scrollbar-thumb:hover{background:#a0aec0}.image-container{align-items:center;display:flex;justify-content:center;position:relative}.image-container.fit-to-screen{height:100%;width:100%}.image-container.actual-size{height:auto;min-height:100%;min-width:100%;width:auto}.image-loading-placeholder{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1}.main-image{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;backface-visibility:hidden;border-radius:8px;border-radius:var(--border-radius-large);box-shadow:0 4px 12px #00000026;box-shadow:var(--shadow-md);contain:layout style paint;contain-intrinsic-size:800px 600px;content-visibility:auto;cursor:grab;display:block;height:auto;image-rendering:optimizeQuality;max-height:none;max-width:none;transform-origin:center center;transition:opacity .3s ease-in-out,transform .2s ease;width:auto;will-change:transform,opacity}.main-image.loading{filter:blur(5px)}.main-image.loaded{filter:none}@media (max-width:768px){.main-image{border-radius:6px;border-radius:var(--border-radius-standard);box-shadow:0 1px 3px #0000001a;box-shadow:var(--shadow-sm);height:auto;max-height:100%;max-width:100%;width:auto}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.main-image{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media (prefers-reduced-motion:reduce){.main-image{transition:none;will-change:auto}}.main-image:active{cursor:grabbing}@media (hover:none) and (pointer:coarse){.main-image,.main-image:active{cursor:default}}.main-image.loading{opacity:0}.main-image.loaded{opacity:1}.image-viewer-empty{color:#6b7280;text-align:center}.empty-state-icon{font-size:4rem;margin-bottom:16px;opacity:.5}.image-viewer-empty h3{color:#374151;font-size:1.25rem;margin-bottom:8px}.image-viewer-footer{background:#fff;border-top:1px solid #e2e8f0;padding:16px 20px}.image-metadata-summary{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:8px}.zoom-info{display:flex;justify-content:center}.zoom-hint{color:#6b7280;font-size:.75rem;font-style:italic;text-align:center}.metadata-item{align-items:center;color:#6b7280;display:flex;font-size:.875rem;gap:6px}.provenance-panel{display:flex;flex-direction:column;height:100%}.provenance-panel-header{background:#fff;border-bottom:1px solid #e2e8f0;padding:20px}.provenance-panel-header h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin-bottom:4px}.panel-filename{color:#6b7280;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provenance-sections{flex:1 1;overflow-y:auto;padding:20px}.provenance-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:16px;overflow:hidden}.section-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;cursor:pointer;display:flex;justify-content:space-between;padding:16px;transition:background-color .2s ease}.section-header:hover{background:#f1f5f9}.section-header h4{color:#374151;font-size:.875rem;font-weight:600;margin:0}.section-toggle{background:none;color:#6b7280;font-size:.875rem;padding:4px}.section-content{padding:16px}.data-row{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.data-row:last-child{margin-bottom:0}.data-label{color:#6b7280;flex-shrink:0;margin-right:16px;min-width:120px}.data-label,.data-value{font-size:.875rem;font-weight:500}.data-value{color:#1f2937;text-align:right;word-break:break-all}.data-value.verified{color:#10b981;font-weight:600}.share-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.share-options,.share-section{margin-bottom:16px}.share-options h5{color:#374151;font-size:.875rem;font-weight:600;margin-bottom:12px}.checkbox-option{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:.875rem;gap:8px;margin-bottom:8px}.checkbox-option input[type=checkbox]{accent-color:#3b82f6;height:16px;width:16px}.send-secure-link-button{background:#3b82f6;border-radius:6px;color:#fff;font-weight:500;margin-bottom:16px;padding:12px;transition:background-color .2s ease;width:100%}.send-secure-link-button:hover{background:#2563eb}.recently-shared h5{color:#374151;font-size:.875rem;font-weight:600;margin-bottom:8px}.shared-contacts{color:#6b7280;font-size:.75rem}.shared-contact{border-bottom:1px solid #f3f4f6;padding:6px 0}.shared-contact:last-child{border-bottom:none}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.share-modal{animation:modalSlideIn .3s ease;background:#fff;border-radius:12px;box-shadow:0 20px 25px #00000026;max-height:80vh;max-width:500px;overflow:hidden;width:90%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px}.modal-header h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0}.modal-close{background:none;border-radius:4px;color:#6b7280;font-size:1.25rem;padding:4px;transition:all .2s ease}.modal-close:hover{background:#e5e7eb;color:#374151}.modal-content{max-height:60vh;overflow-y:auto;padding:20px}.share-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:20px;padding:16px}.share-preview h4{color:#1f2937;font-size:1rem;font-weight:600;margin-bottom:4px}.share-preview p{color:#6b7280;font-size:.875rem}.share-recipient{margin-bottom:20px}.share-recipient label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:8px}.email-input{border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:12px;transition:border-color .2s ease;width:100%}.email-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.email-input.error{border-color:#ef4444}.error-message{color:#ef4444;display:block;font-size:.75rem;margin-top:4px}.share-method-tabs{background:#f3f4f6;border-radius:8px;display:flex;gap:8px;margin-bottom:20px;padding:4px}.method-tab{background:#0000;border:none;border-radius:6px;color:#6b7280;cursor:pointer;flex:1 1;font-size:.875rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.method-tab:hover{background:#3b82f61a;color:#3b82f6}.method-tab.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#3b82f6}.share-link-info{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;margin-bottom:20px;padding:16px}.share-link-info p{color:#0c4a6e;font-size:.875rem;margin:0}.link-note{color:#64748b!important;font-size:.75rem!important;margin-top:8px!important}.modal-actions{background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;gap:12px;justify-content:flex-end;padding:20px}.cancel-button{background:#f3f4f6;border-radius:6px;color:#374151;font-weight:500;padding:8px 16px;transition:background-color .2s ease}.cancel-button:hover{background:#e5e7eb}.modal-actions .share-button{background:#3b82f6;border-radius:6px;color:#fff;font-weight:500;padding:8px 16px;transition:all .2s ease}.modal-actions .share-button:hover:not(:disabled){background:#2563eb}.modal-actions .share-button:disabled{background:#9ca3af;cursor:not-allowed}.dashboard-loading,.loading-container{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;min-height:400px}.dashboard-loading p,.loading-container p{font-size:.875rem;margin-top:16px}.image-loading{gap:16px}.error-container,.image-error,.image-loading{align-items:center;color:#6b7280;display:flex;flex-direction:column}.error-container,.image-error{justify-content:center;padding:40px;text-align:center}.error-icon{font-size:2rem;margin-bottom:12px}.refresh-button,.retry-button{background:#3b82f6;border-radius:6px;color:#fff;font-weight:500;margin-top:12px;padding:8px 16px;transition:background-color .2s ease}.refresh-button:hover,.retry-button:hover{background:#2563eb}.empty-dashboard{align-items:center;background:#fff;border-radius:12px;color:#6b7280;display:flex;flex-direction:column;justify-content:center;min-height:400px;padding:40px;text-align:center}.empty-dashboard .empty-state-icon{font-size:4rem;margin-bottom:16px;opacity:.5}.empty-dashboard h3{color:#374151;font-size:1.25rem;margin-bottom:8px}.empty-dashboard p{font-size:.875rem;margin-bottom:8px}.spinner{display:inline-block;height:40px;width:40px}.spinner-circle{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#3b82f6;height:100%;width:100%}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.skeleton-loader{width:100%}.skeleton-animate{animation:loading 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-line{border-radius:4px;height:12px;margin-bottom:8px}.skeleton-thumbnail{display:flex;gap:12px;margin-bottom:8px;padding:12px}.skeleton-thumbnail-image{border-radius:6px;flex-shrink:0;height:60px;width:60px}.skeleton-thumbnail-info{display:flex;flex:1 1;flex-direction:column;justify-content:center}.skeleton-image{border-radius:8px;height:400px;width:100%}.skeleton-provenance{padding:20px}.skeleton-section{margin-bottom:20px}.toast{animation:slideIn .3s ease;border-radius:6px;box-shadow:0 4px 12px #00000026;color:#fff;font-weight:500;padding:12px 16px;position:fixed;right:20px;top:20px;z-index:1000}.toast-success{background:#10b981}.toast-error{background:#ef4444}.toast-info{background:#3b82f6}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh}.login-card{background:#fff;border-radius:12px;box-shadow:0 10px 25px #0000001a;max-width:400px;padding:40px;text-align:center;width:100%}.login-card h1{color:#3b82f6;font-weight:600;margin-bottom:20px}.login-card p{color:#6b7280;margin-bottom:30px}.login-button{background:#3b82f6;border-radius:6px;color:#fff;font-weight:500;padding:12px;transition:background-color .2s ease;width:100%}.login-button:hover{background:#2563eb}.login-button:disabled{background:#9ca3af;cursor:not-allowed}@media (max-width:1200px){.panel-right{width:350px}}@media (max-width:1024px){.three-panel-layout{flex-direction:column;gap:15px;height:auto}.panel-left{height:200px;width:100%}.panel-center{height:500px;min-height:400px}.panel-right{height:auto;max-height:300px;overflow-y:auto;width:100%}.thumbnail-list{-webkit-overflow-scrolling:touch;display:flex;overflow-x:auto;padding:10px}.thumbnail-item{flex-shrink:0;margin-right:10px;width:200px}}@media (max-width:768px){.dashboard-container{padding:10px}.header-content{padding:0 1rem}.brand-tagline{font-size:1.25rem}.three-panel-layout{gap:10px}.share-modal{margin:10px;width:95%}.modal-content{max-height:50vh}.image-viewer-header{align-items:stretch;flex-direction:column;gap:12px;padding:12px}.image-header-left{gap:12px;justify-content:center}.image-header-center{order:-1}.image-header-right{justify-content:center}.zoom-controls{height:40px;padding:8px}.zoom-button{font-size:16px;height:32px;width:32px}.zoom-level{font-size:1rem;min-width:56px}.zoom-toggle-button-compact{font-size:.875rem;height:40px;padding:10px 16px}.share-button-compact{font-size:18px;height:40px;width:40px}.button-text{font-size:14px}.image-viewer-content{padding:10px}.image-viewer-footer{padding:12px}.image-metadata-summary{gap:16px;justify-content:center}.metadata-item{font-size:.75rem}.zoom-hint{font-size:.7rem;margin-top:8px}}.verification-detail-modal{animation:modalSlideIn .3s ease;background:#fff;border-radius:12px;box-shadow:0 20px 25px #00000026;max-height:80vh;max-width:700px;overflow:hidden;width:90%}.verification-tabs{background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex}.verification-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;flex:1 1;font-size:.875rem;font-weight:500;padding:12px 16px;transition:all .2s ease}.verification-tab:hover{color:#3b82f6}.verification-tab.active{border-bottom-color:#3b82f6;color:#3b82f6}.verification-content{max-height:50vh;overflow-y:auto;padding:24px}.verification-error-state,.verification-loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:40px;text-align:center}.verification-status-card{background:#f8fafc;border-radius:8px;margin-bottom:24px;padding:24px;text-align:center}.status-icon{font-size:3rem;margin-bottom:12px}.status-valid{color:#10b981;font-weight:600}.status-invalid{color:#ef4444;font-weight:600}.verification-summary{margin-bottom:24px}.verification-summary h4{color:#1f2937;font-size:1rem;font-weight:600;margin-bottom:12px}.summary-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-label{color:#6b7280;font-size:.75rem;font-weight:500}.summary-value{color:#1f2937;font-size:.875rem;font-weight:500;word-break:break-all}.verification-errors{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:16px}.verification-errors h4{color:#dc2626;font-size:.875rem;font-weight:600;margin-bottom:8px}.verification-errors ul{list-style:none;margin:0;padding:0}.verification-errors li{color:#dc2626;font-size:.75rem;padding:4px 0}.detail-section{margin-bottom:24px}.detail-section h5{color:#374151;font-size:.875rem;font-weight:600;margin-bottom:12px}.camera-details,.device-details,.metadata-info,.sensor-details{background:#f8fafc;border-radius:8px;padding:16px}.metadata-info p{color:#6b7280;font-size:.875rem;margin-bottom:12px}.detail-row{border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:8px 0}.detail-row:last-child{border-bottom:none}.detail-label{color:#6b7280;font-size:.875rem;font-weight:500}.detail-value{color:#1f2937;font-size:.875rem;max-width:60%;text-align:right;word-break:break-all}.verification-steps{list-style:decimal;padding-left:20px}.verification-steps li{color:#6b7280;font-size:.875rem;padding:4px 0}.blockchain-status{display:flex;flex-direction:column;gap:20px}.status-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:24px;text-align:center}.status-card.pending{background:#fef3c7;border-color:#fbbf24}.blockchain-preview{background:#f8fafc;border-radius:8px;padding:16px}.blockchain-preview h5{color:#374151;font-size:.875rem;font-weight:600;margin-bottom:12px}.blockchain-preview ul{list-style:disc;padding-left:20px}.blockchain-preview li{color:#6b7280;font-size:.875rem;padding:4px 0}.wallet-info{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:16px}.wallet-info h5{font-weight:600}.wallet-address,.wallet-info h5{color:#1e40af;font-size:.875rem;margin-bottom:8px}.wallet-address{font-family:monospace;word-break:break-all}.wallet-note{color:#64748b;font-size:.75rem}.close-button{background:#3b82f6;border-radius:6px;color:#fff;font-weight:500;padding:8px 16px;transition:background-color .2s ease}.close-button:hover{background:#2563eb}.pagination-container{background:#fff;background:var(--bg-primary);border-top:1px solid #e2e8f0;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:12px 16px;transition:background .3s ease,border-color .3s ease}.pagination-info{align-items:center;display:flex;justify-content:center}.pagination-text{color:#6b7280;color:var(--text-secondary);font-size:.75rem;font-weight:500;text-align:center}.pagination-controls{align-items:center;display:flex;gap:4px;justify-content:space-between;min-width:0}.pagination-button{align-items:center;background:#fff;background:var(--bg-primary);border:1px solid #e2e8f0;border:1px solid var(--border-color);border-radius:4px;color:#1f2937;color:var(--text-primary);cursor:pointer;display:flex;font-size:.75rem;font-weight:500;justify-content:center;min-width:32px;padding:6px 8px;transition:all .2s ease;white-space:nowrap}.pagination-button:hover:not(.disabled){background:#f3f4f6;background:var(--bg-tertiary);border-color:#3b82f6;border-color:var(--accent-primary);color:#3b82f6;color:var(--accent-primary)}.pagination-button.active{background:#3b82f6;background:var(--accent-primary);border-color:#3b82f6;border-color:var(--accent-primary);color:#fff}.pagination-button.disabled{background:#f8fafc;background:var(--bg-secondary);color:#9ca3af;color:var(--text-tertiary);cursor:not-allowed;opacity:.5}.pagination-next,.pagination-prev{flex-shrink:0;font-size:.7rem;font-weight:600;padding:6px 8px}.pagination-numbers{align-items:center;display:flex;flex:1 1;gap:2px;justify-content:center;min-width:0;overflow:hidden}.pagination-ellipsis{color:#9ca3af;color:var(--text-tertiary);font-size:.7rem;font-weight:500;padding:6px 2px}@media (max-width:768px){.pagination-container{padding:10px 12px}.pagination-controls{flex-wrap:wrap;gap:3px}.pagination-button{font-size:.7rem;min-width:28px;padding:5px 6px}.pagination-next,.pagination-prev{font-size:.65rem;padding:5px 6px}.pagination-text{font-size:.7rem}}.floating-zoom-controls{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;gap:8px;padding:8px 12px;position:fixed;right:20px;top:20px;transition:all .2s ease;z-index:1000}.floating-zoom-controls:hover{background:#fff;box-shadow:0 6px 16px #0003}.floating-zoom-button{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:4px;color:#374151;cursor:pointer;display:flex;font-weight:500;height:32px;justify-content:center;transition:all .2s ease;width:32px}.floating-zoom-button:hover{background:#e5e7eb;border-color:#d1d5db;transform:translateY(-1px)}.floating-zoom-level{color:#374151;font-size:.875rem;font-weight:600;min-width:48px;text-align:center}.floating-zoom-controls{gap:6px;padding:6px 8px;right:10px;top:10px}.floating-zoom-button{font-size:.875rem;height:28px;width:28px}.floating-zoom-level{font-size:.75rem;min-width:40px}.hover\:border-blue-300:hover{--tw-border-opacity:1;border-color:#93c5fd;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.hover\:border-white\/40:hover{border-color:#fff6}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:#bfdbfe;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:#eff6ff;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:#1d4ed8;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:#e5e7eb;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:#f9fafb;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-green-100:hover{--tw-bg-opacity:1;background-color:#dcfce7;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.hover\:bg-green-200:hover{--tw-bg-opacity:1;background-color:#bbf7d0;background-color:rgb(187 247 208/var(--tw-bg-opacity,1))}.hover\:bg-red-200:hover{--tw-bg-opacity:1;background-color:#fecaca;background-color:rgb(254 202 202/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:#fef2f2;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:#b91c1c;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:bg-white\/30:hover{background-color:#ffffff4d}.hover\:bg-opacity-20:hover{--tw-bg-opacity:0.2}.hover\:bg-opacity-70:hover{--tw-bg-opacity:0.7}.hover\:text-blue-500:hover{--tw-text-opacity:1;color:#3b82f6;color:rgb(59 130 246/var(--tw-text-opacity,1))}.hover\:text-blue-800:hover{--tw-text-opacity:1;color:#1e40af;color:rgb(30 64 175/var(--tw-text-opacity,1))}.hover\:text-gray-800:hover{--tw-text-opacity:1;color:#1f2937;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:#111827;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-red-800:hover{--tw-text-opacity:1;color:#991b1b;color:rgb(153 27 27/var(--tw-text-opacity,1))}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:border-blue-500:focus{--tw-border-opacity:1;border-color:#3b82f6;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.focus\:placeholder-gray-400:focus::placeholder{--tw-placeholder-opacity:1;color:#9ca3af;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.focus\:ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.active\:translate-y-0:active{--tw-translate-y:0px}.active\:scale-95:active,.active\:translate-y-0:active{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95}@media (prefers-reduced-motion:reduce){@keyframes spin{to{transform:rotate(1turn)}}.motion-reduce\:animate-\[spin_1\.5s_linear_infinite\]{animation:spin 1.5s linear infinite}}@media (min-width:640px){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-4{gap:1rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-2{padding-bottom:.5rem;padding-top:.5rem}.sm\:py-4{padding-bottom:1rem;padding-top:1rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:768px){.md\:block{display:block}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (min-width:1536px){.\32xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}