@import"https://fonts.googleapis.com/css2?family=Crimson+Pro:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--font-display: "Crimson Pro", serif;--font-body: "Source Sans 3", sans-serif;--color-primary-dark: #0a1628;--color-primary-blue: #1e3a5f;--color-accent-blue: #3b82f6;--color-accent-light: #60a5fa;--color-text-dark: #1e293b;--color-text-gray: #64748b;--color-bg-light: #f8fafc;--color-bg-white: #ffffff;--color-border: #e2e8f0;font-family:var(--font-body),-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;line-height:1.5;font-weight:400;--font-size-base: 16px;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--color-primary: #1890FF;--color-primary-hover: #1677CC;--color-success: #52C41A;--color-warning: #FAAD14;--color-error: #FF4D4F;--color-text-primary: #262626;--color-text-secondary: #8C8C8C;--color-text-tertiary: #BFBFBF;--color-border: #D9D9D9;--color-background: #F5F5F5;--color-background-page: #F0F2F5;--color-white: #FFFFFF;--color-card-bg: #FFFFFF;--color-input-bg: #FFFFFF;--color-hover-bg: #F5F5F5;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1)}[data-theme=dark]{--color-primary: #177DDC;--color-primary-hover: #3C9AE8;--color-success: #49AA19;--color-warning: #D89614;--color-error: #D32029;--color-text-primary: #E8E8E8;--color-text-secondary: #A6A6A6;--color-text-tertiary: #737373;--color-border: #424242;--color-background: #141414;--color-background-page: #1F1F1F;--color-white: #1F1F1F;--color-card-bg: #1F1F1F;--color-input-bg: #262626;--color-hover-bg: #262626;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5)}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--color-background);color:var(--color-text-primary);font-size:var(--font-size-base);overflow-x:hidden;overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}*{overflow-wrap:break-word;word-wrap:break-word}.truncate,.ellipsis,[class*=truncate]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}p,span,div,li,td,th{overflow-wrap:anywhere;word-break:break-word}.container,.wrapper,.card,.box{max-width:100%;overflow:auto}#root{min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;background:none}button:not([class*=btn]),button:not([class*=button]){min-height:44px;min-width:44px;padding:10px;display:inline-flex;align-items:center;justify-content:center}a{padding:8px 4px;display:inline-block}a.text-only{padding:8px 0}a{text-decoration:none;color:inherit}input,textarea,select{font-family:inherit}*:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;border-radius:2px}button:focus-visible,[class*=btn]:focus-visible,[class*=button]:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px;box-shadow:0 0 0 4px #1890ff33;border-radius:4px}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--color-primary);outline-offset:1px;box-shadow:0 0 0 3px #1890ff26;border-color:var(--color-primary)!important;border-radius:4px}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 3px #1890ff33}input[type=file]:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}@media(prefers-contrast:high){*:focus-visible{outline-width:4px;outline-color:currentColor;outline-offset:3px}button:focus-visible{outline-width:4px;box-shadow:none}}@media(prefers-reduced-motion:reduce){*:focus-visible{transition:none}}[data-theme=dark] *:focus-visible{outline-color:#3c9ae8;box-shadow:0 0 0 4px #3c9ae840}[data-theme=dark] button:focus-visible,[data-theme=dark] [class*=btn]:focus-visible,[data-theme=dark] [class*=button]:focus-visible{box-shadow:0 0 0 4px #3c9ae84d}[data-theme=dark] a:focus-visible{outline-color:#3c9ae8}button:focus:not(:focus-visible),a:focus:not(:focus-visible),input:focus:not(:focus-visible),textarea:focus:not(:focus-visible),select:focus:not(:focus-visible){outline:none;box-shadow:none}.skip-link:focus{position:fixed;top:10px;left:10px;padding:12px 24px;background:var(--color-primary);color:#fff;text-decoration:none;border-radius:4px;z-index:10000;outline:3px solid var(--color-text-primary);outline-offset:2px}[role=button]:focus-visible,[role=link]:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;border-radius:4px}[aria-label=Close]:focus-visible,[aria-label=close]:focus-visible{outline:3px solid var(--color-error);outline-offset:2px;box-shadow:0 0 0 3px #ff4d4f33}.animated-element{will-change:transform,opacity;backface-visibility:hidden;-webkit-backface-visibility:hidden;perspective:1000px;-webkit-perspective:1000px}button,a,input,textarea,select{transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,opacity .2s ease,box-shadow .2s ease}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95) translate(-50%,-50%)}to{opacity:1;transform:scale(1) translate(-50%,-50%)}}@keyframes modalFadeOut{0%{opacity:1;transform:scale(1) translate(-50%,-50%)}to{opacity:0;transform:scale(.95) translate(-50%,-50%)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms \!important;animation-iteration-count:1 \!important;transition-duration:.01ms \!important;scroll-behavior:auto \!important}button,a,input,textarea,select{transition:none \!important}.animated-element{will-change:auto \!important}}.modal-overlay,.dropdown-menu,.tooltip{contain:layout style paint}img,video{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.fixed-header,.fixed-footer{transform:translateZ(0);-webkit-transform:translateZ(0);will-change:transform}.scroll-container{-webkit-overflow-scrolling:touch;overflow-scrolling:touch;will-change:scroll-position}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{animation:spin 1s linear infinite;will-change:transform;transform:translateZ(0)}@keyframes progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.progress-bar-fill{animation:progress .3s ease-out;transform-origin:left;will-change:transform}@keyframes skeleton{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200px 100%;animation:skeleton 1.5s infinite}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;background:#f0f0f0}}button:active,[class*=btn]:active,[class*=button]:active{transform:scale(.97);opacity:.9;transition:transform .1s ease-out,opacity .1s ease-out}a:active{opacity:.75;transform:scale(.98);transition:transform .1s ease-out,opacity .1s ease-out}.card.clickable:active,.card[role=button]:active{transform:scale(.99);background-color:var(--color-hover-bg)!important}button.icon-btn:active,button[aria-label]:active,[role=button]:active{background-color:var(--color-hover-bg)!important;transform:scale(.95)}.list-item:active,.menu-item:active,.dropdown-item:active{background-color:var(--color-hover-bg)!important}@media(hover:none)and (pointer:coarse){button,a,[role=button],[tabindex]{min-height:44px;min-width:44px}button:active,a:active,[role=button]:active{transform:scale(.96);opacity:.8;transition:transform .05s ease-out,opacity .05s ease-out}button:active{box-shadow:0 2px 8px #00000026!important}}@media(prefers-reduced-motion:reduce){button:active,a:active,[role=button]:active{transition:none;transform:none}button:active{opacity:.85}a:active{opacity:.8}}@media print{header nav,.top-nav,.navbar,.header-nav,#main-nav{display:none!important}.sidebar,.side-panel,.aside,#sidebar,.bottom-bar,.tab-bar,.mobile-nav,#bottom-nav,.back-button,.go-back,[aria-label=Back],[aria-label=返回],button,.btn,.button,[role=button],input,textarea,select,.form-field,.input-group,.dropdown,.popover,.modal,.tooltip,.toast,.notification,.spinner,.skeleton,.loading,.icon-button,.action-icon,.more-btn,.pagination,.page-selector,.load-more,.search-box,.search-bar,.search-input,.filter,.filter-bar,.filter-tags,.settings-btn,.config-btn,.column-settings,.dropdown-arrow,.caret,.zoom-btn,.fullscreen-btn,.upload-btn,.edit-btn,.delete-btn,.close-btn,.dismiss-btn{display:none!important}::-webkit-scrollbar{display:none!important}body,html{background:#fff!important;color:#000!important;font-size:12pt;line-height:1.5}*{box-shadow:none!important;text-shadow:none!important}.content,.main-content,.page-content,#root,main{display:block!important;width:100%!important;margin:0!important;padding:0!important}table{width:100%!important;border-collapse:collapse!important;page-break-inside:auto}thead{display:table-header-group}tr{page-break-inside:avoid;page-break-after:auto}th,td{border:1px solid #000!important;padding:8px!important;text-align:left!important;color:#000!important;background:#fff!important}th{font-weight:700!important;background-color:#f0f0f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}ul,ol{margin:1em 0!important;padding-left:2em!important}li{margin:.5em 0!important;color:#000!important}.card,.panel,.container,.box{border:1px solid #000!important;background:#fff!important;color:#000!important;margin:1em 0!important;padding:1em!important;page-break-inside:avoid}h1,h2,h3,h4,h5,h6{color:#000!important;page-break-after:avoid;margin:1em 0 .5em!important}h1{font-size:24pt!important}h2{font-size:18pt!important}h3{font-size:14pt!important}a[href]:after{content:" (" attr(href) ")";font-size:.8em;color:#666}img{max-width:100%!important;height:auto!important;page-break-inside:avoid}.badge,.status-badge,.tag{border:1px solid #000!important;background:#fff!important;color:#000!important;padding:4px 8px!important;display:inline-block!important}.log-detail,.log-content{page-break-inside:avoid}.log-field{margin:1em 0!important;padding:.5em!important;border-bottom:1px solid #ccc!important}.log-label{font-weight:700!important;color:#000!important}.inspection-detail,.inspection-content,.project-detail,.project-info{page-break-inside:avoid}@page{margin:2cm;size:A4}.page-title,.document-title{font-size:20pt!important;font-weight:700!important;margin-bottom:1em!important;color:#000!important}.print-date,.print-time{font-size:10pt!important;color:#666!important}p,.paragraph{orphans:3;widows:3}.data-table,.list-table{page-break-inside:avoid}*{overflow-wrap:break-word!important;word-wrap:break-word!important;word-break:break-word!important}*,*:before,*:after{animation:none!important;transition:none!important}.fixed,.sticky,[style*="position: fixed"],[style*="position: sticky"]{position:static!important}[hidden],[style*="display: none"],.hidden,.d-none,.print-only{display:block!important}.screen-only{display:none!important}.print-header{display:block!important;border-bottom:2px solid #000!important;margin-bottom:1em!important;padding-bottom:.5em!important}.print-footer{display:block!important;border-top:1px solid #ccc!important;margin-top:1em!important;padding-top:.5em!important;font-size:10pt!important;color:#666!important}.print-watermark{display:block!important;position:fixed!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;font-size:80pt!important;color:#f0f0f0!important;z-index:-1!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media screen{.print-only,.print-header,.print-footer,.print-watermark{display:none}}*:focus:not(:focus-visible){outline:none}*:focus-visible{outline:3px solid #1890FF!important;outline-offset:2px!important}button:focus-visible,a:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.login-button:focus-visible,.send-code-button:focus-visible,.login-tab:focus-visible{outline:3px solid #1890FF!important;outline-offset:2px!important;box-shadow:0 0 0 4px #1890ff33!important}input:focus-visible,textarea:focus-visible,select:focus-visible,.form-input:focus-visible{outline:3px solid #1890FF!important;outline-offset:2px!important;border-color:#1890ff!important;box-shadow:0 0 0 4px #1890ff26!important}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:3px solid #1890FF!important;outline-offset:2px!important;box-shadow:0 0 0 4px #1890ff33!important}a:focus-visible{outline:3px solid #1890FF!important;outline-offset:2px!important;border-radius:2px;text-decoration:underline}@media(prefers-contrast:high){*:focus-visible{outline-width:4px!important;outline-color:#fff!important;outline-offset:2px!important}*:focus-visible:after{content:"";position:absolute;inset:-4px;border:2px solid #000000;pointer-events:none}}@media(prefers-reduced-motion:reduce){*:focus-visible{transition:none!important}}@media(prefers-color-scheme:dark){*:focus-visible{outline-color:#40a9ff!important}}.focus-none:focus{outline:none!important;box-shadow:none!important}.focus-ring{box-shadow:0 0 0 3px #1890ff4d}.focus-ring-thick{box-shadow:0 0 0 4px #1890ff66}button:active,[class*=btn]:active,[class*=button]:active{transform:scale(.97);opacity:.85;transition:transform .1s ease-out,opacity .1s ease-out}button.btn-primary:active,button.primary:active{background-color:var(--color-primary-hover)!important;transform:scale(.97);box-shadow:0 2px 4px #0003!important}button.btn-secondary:active,button.secondary:active{background-color:var(--color-hover-bg)!important;transform:scale(.97)}button.btn-danger:active,button.danger:active{background-color:#d32029!important;transform:scale(.97)}a:active{opacity:.7;transform:scale(.98);transition:transform .1s ease-out,opacity .1s ease-out}button.icon-btn:active,button[aria-label]:active{background-color:var(--color-hover-bg)!important;transform:scale(.95);border-radius:50%}.card.clickable:active,.card[role=button]:active{transform:scale(.99);box-shadow:var(--shadow-sm)!important;background-color:var(--color-hover-bg)!important}.list-item:active,.list-item.clickable:active{background-color:var(--color-hover-bg)!important;transform:translate(2px)}.ripple-container{position:relative;overflow:hidden}.ripple-container:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff80;border-radius:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none;transition:width .4s ease-out,height .4s ease-out,opacity .3s ease-out}.ripple-container:active:after{width:300%;height:300%;opacity:1;transition:width 0s,height 0s,opacity .1s ease-out}[data-theme=dark] .ripple-container:after{background:#fff3}.ripple-container.ripple-primary:after{background:#fff6}.ripple-container.ripple-success:after{background:#ffffff4d}.ripple-container.ripple-danger:after{background:#ffffff4d}@keyframes touchHighlight{0%{background-color:transparent}10%{background-color:#1890ff26}to{background-color:transparent}}@keyframes touchHighlightDark{0%{background-color:transparent}10%{background-color:#3c9ae833}to{background-color:transparent}}.touch-highlight:active{animation:touchHighlight .3s ease-out}[data-theme=dark] .touch-highlight:active{animation:touchHighlightDark .3s ease-out}@media(hover:none)and (pointer:coarse){button,a,[role=button],[tabindex]{min-height:44px;min-width:44px}button:active,a:active,[role=button]:active{transform:scale(.96);opacity:.8;transition:transform .05s ease-out,opacity .05s ease-out}button:active{box-shadow:0 2px 8px #00000026!important}.card.clickable:active,.card[role=button]:active{transform:scale(.98);box-shadow:0 2px 8px #0000001a!important}}.header-icon-btn:active{background-color:var(--color-hover-bg)!important;transform:scale(.9);border-radius:50%}.menu-item:active,.dropdown-item:active{background-color:var(--color-hover-bg)!important;transform:translate(4px)}.table-row.clickable:active{background-color:var(--color-hover-bg)!important}.tab:active{transform:scale(.98);opacity:.8}.pagination-btn:active{transform:scale(.95);background-color:var(--color-primary)!important;color:#fff!important}input:focus,textarea:focus,select:focus{transform:scale(.99)}input[type=checkbox]:active+label,input[type=radio]:active+label{opacity:.7}.switch:active{transform:scale(.95)}.fab:active{transform:scale(.9);box-shadow:0 4px 12px #0003!important}@media(prefers-reduced-motion:reduce){button:active,a:active,[class*=btn]:active,[role=button]:active{transition:none;transform:none}button:active,a:active{opacity:.7}.ripple-container:after{transition:none;animation:none}.touch-highlight:active{animation:none;background-color:#1890ff1a}}.touch-ripple{position:relative;overflow:hidden}.touch-ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#1890ff4d;border-radius:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none;transition:width .4s ease-out,height .4s ease-out,opacity .3s ease-out}.touch-ripple:active:after{width:200%;height:200%;opacity:1}.touch-scale:active{transform:scale(.97)}.touch-flash:active{animation:touchHighlight .3s ease-out}.touch-fade:active{opacity:.7}.touch-feedback:active{transform:scale(.97);opacity:.85;animation:touchHighlight .3s ease-out}.touch-demo-btn{padding:16px 32px;margin:8px;border:2px solid var(--color-border);border-radius:8px;background-color:var(--color-card-bg);color:var(--color-text-primary);font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease}.touch-demo-btn:active{transform:scale(.95);opacity:.8;background-color:var(--color-hover-bg);border-color:var(--color-primary)}.touch-indicator{position:fixed;bottom:20px;right:20px;padding:8px 16px;background-color:var(--color-primary);color:#fff;border-radius:4px;font-size:14px;opacity:0;transition:opacity .3s ease;pointer-events:none;z-index:10000}.touch-indicator.visible{opacity:1}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:10px;max-width:400px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;pointer-events:auto;animation:toastSlideIn .3s ease-out;transition:all .3s ease;min-height:48px}.toast-exiting{animation:toastSlideOut .3s ease-in forwards}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toastSlideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;flex-shrink:0;font-weight:700;font-size:.875rem}.toast-message{flex:1;font-size:.875rem;color:#262626;line-height:1.4;word-break:break-word}.toast-close{width:20px;height:20px;border:none;background:transparent;color:#8c8c8c;font-size:1.125rem;line-height:1;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;flex-shrink:0}.toast-close:hover{background:#f5f5f5;color:#262626}.toast-success{border-left:4px solid #52C41A}.toast-success .toast-icon{background:#f6ffed;color:#52c41a}.toast-error{border-left:4px solid #FF4D4F}.toast-error .toast-icon{background:#fff2f0;color:#ff4d4f}.toast-warning{border-left:4px solid #FAAD14}.toast-warning .toast-icon{background:#fffbf0;color:#faad14}.toast-info{border-left:4px solid #1890FF}.toast-info .toast-icon{background:#e6f7ff;color:#1890ff}@media(max-width:480px){.toast-container{top:10px;right:10px;left:10px;max-width:none}.toast{padding:12px 14px}.toast-message{font-size:.8125rem}}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;overflow:hidden}.confetti-particle{position:absolute;top:-20px;left:var(--confetti-left);width:var(--confetti-size);height:var(--confetti-size);background:var(--confetti-color);border-radius:2px;opacity:1;animation:confetti-fall var(--confetti-duration) ease-in forwards,confetti-sway var(--confetti-duration) ease-in-out infinite alternate;animation-delay:var(--confetti-delay);transform:rotate(var(--confetti-rotation));transition:transform var(--confetti-duration) linear}@keyframes confetti-fall{0%{top:-20px;opacity:1}70%{opacity:1}to{top:100vh;opacity:0}}@keyframes confetti-sway{0%{transform:translate(0) rotate(var(--confetti-rotation))}25%{transform:translate(30px) rotate(calc(var(--confetti-rotation) + var(--confetti-rotation-speed) * .25))}50%{transform:translate(-20px) rotate(calc(var(--confetti-rotation) + var(--confetti-rotation-speed) * .5))}75%{transform:translate(20px) rotate(calc(var(--confetti-rotation) + var(--confetti-rotation-speed) * .75))}to{transform:translate(0) rotate(calc(var(--confetti-rotation) + var(--confetti-rotation-speed)))}}@media(max-width:480px){.confetti-particle{width:calc(var(--confetti-size) * .8);height:calc(var(--confetti-size) * .8)}}@media(prefers-reduced-motion:reduce){.confetti-particle{animation:none;display:none}.confetti-container{display:none}}.layout-container{display:flex;width:100%;min-height:100vh;background:#f8fafc;position:relative}.sidebar-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0a162899;z-index:999;animation:fadeIn .3s ease;cursor:pointer}.sidebar{position:fixed;left:0;top:0;width:260px;height:100vh;background:#0a1628f2;border-right:1px solid rgba(59,130,246,.1);display:flex;flex-direction:column;z-index:100}.sidebar-header{padding:20px;border-bottom:1px solid rgba(59,130,246,.1)}.logo{display:flex;align-items:center;gap:12px;cursor:pointer}.logo-icon{width:40px;height:40px;background:linear-gradient(135deg,#3b82f6,#1e3a5f);border-radius:10px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #3b82f64d}.logo-icon svg{width:24px;height:24px;fill:#fff}.logo-text{font-family:Crimson Pro,serif;font-size:20px;font-weight:600;color:#fff;letter-spacing:-.5px}.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}.nav-section{margin-bottom:24px}.nav-section-title{font-size:11px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:1px;padding:0 12px 8px}.nav-item{display:flex!important;align-items:center;justify-content:flex-start!important;gap:12px;padding:10px 12px!important;color:#ffffffb3;text-decoration:none;border-radius:8px;margin-bottom:4px;transition:all .2s ease;font-size:14px;cursor:pointer;background:none;border:none;width:100%;text-align:left}.nav-item:hover{background:#3b82f61a;color:#fff}.nav-item.active{background:linear-gradient(135deg,#3b82f633,#1e3a5f33);color:#60a5fa;border-left:3px solid #3b82f6}.nav-item svg{width:18px;height:18px;fill:currentColor}.main-content{flex:1;margin-left:260px;display:flex;flex-direction:column;min-height:100vh}.top-header{background:#fff;border-bottom:1px solid #e2e8f0;padding:16px 24px;display:flex;align-items:center;justify-content:space-between}.header-left{display:flex;align-items:center;gap:16px}.mobile-menu-btn{display:none;width:38px;height:38px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;align-items:center;justify-content:center;cursor:pointer}.mobile-menu-btn svg{width:18px;height:18px}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:14px;color:#64748b}.breadcrumb a{color:#1e293b;text-decoration:none;cursor:pointer}.breadcrumb a:hover{color:#3b82f6}.breadcrumb .current{color:#94a3b8}.header-right{display:flex;align-items:center;gap:16px}.header-btn{width:38px;height:38px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.header-btn:hover{background:#f8fafc;border-color:#3b82f6}.header-btn svg{width:18px;height:18px;fill:#64748b}.user-dropdown{display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 12px;border-radius:8px;transition:all .2s ease}.user-dropdown:hover{background:#f8fafc}.user-avatar-circle{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#1e3a5f);display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:600}.user-name{font-size:14px;color:#1e293b}.page-content{flex:1;padding:24px;background:var(--bg-light);overflow-y:auto}@media(max-width:768px){.sidebar{transform:translate(-100%);transition:transform .3s ease}.sidebar.mobile-open{transform:translate(0)}.main-content{margin-left:0}.mobile-menu-btn{display:flex}.user-name{display:none}}.offline-indicator{position:fixed;left:0;right:0;z-index:9999;background:#d32f2f;color:#fff;box-shadow:0 2px 8px #00000026;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.offline-indicator-top{top:0}.offline-indicator-bottom{bottom:0;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.offline-indicator-online{background:#388e3c}.offline-indicator-content{display:flex;align-items:center;justify-content:center;padding:12px 20px;gap:10px;max-width:1200px;margin:0 auto}.offline-indicator-icon{width:20px;height:20px;flex-shrink:0;animation:pulse 2s infinite}.offline-indicator-text{font-size:.875rem;font-weight:500;flex-grow:1;text-align:center}.offline-indicator-close{background:#fff3;border:none;color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.125rem;line-height:1;padding:0;flex-shrink:0;transition:background .2s}.offline-indicator-close:hover{background:#ffffff4d}.offline-indicator-close:active{background:#ffffff1a}@media(max-width:768px){.offline-indicator-content{padding:10px 16px}.offline-indicator-text{font-size:.8125rem}}@media(prefers-color-scheme:dark){.offline-indicator{box-shadow:0 2px 8px #0000004d}}.session-warning-inline{position:fixed;top:0;left:0;right:0;background:#fff7e6;border-bottom:1px solid #ffd591;padding:8px 16px;z-index:1000;display:flex;align-items:center;justify-content:center;gap:12px;box-shadow:0 2px 4px #0000001a}.session-warning-icon{font-size:16px}.session-warning-message{flex:1;text-align:center;font-size:14px;color:#595959;margin:0}.session-warning-button{background:none;border:none;color:#1890ff;cursor:pointer;font-size:14px;padding:4px 12px;text-decoration:none;transition:all .2s}.session-warning-button:hover{color:#40a9ff;text-decoration:underline}.session-timeout-modal-overlay{position:fixed;inset:0;background:#00000073;z-index:1001;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s ease}.session-timeout-modal{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;max-width:480px;width:100%;animation:slideUp .3s ease}.session-timeout-modal-header{display:flex;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid #f0f0f0}.session-timeout-icon{font-size:24px;flex-shrink:0}.session-timeout-modal-title{margin:0;font-size:18px;font-weight:600;color:#262626}.session-timeout-modal-body{padding:24px}.session-timeout-message{margin:0 0 24px;font-size:14px;color:#595959;line-height:1.6}.session-timeout-critical{color:#ff4d4f;font-size:16px}.session-timeout-progress{margin-bottom:24px}.session-timeout-progress-label{font-size:12px;color:#8c8c8c;margin-bottom:8px}.session-timeout-progress-bar{height:8px;background:#f5f5f5;border-radius:4px;overflow:hidden;margin-bottom:12px}.session-timeout-progress-fill{height:100%;transition:width 1s linear,background-color .3s ease}.session-timeout-progress-fill.warning{background:linear-gradient(90deg,#faad14,#ffc53d)}.session-timeout-progress-fill.critical{background:linear-gradient(90deg,#ff4d4f,#ff7875);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.session-timeout-countdown{font-size:32px;font-weight:600;color:#262626;text-align:center;font-variant-numeric:tabular-nums}.session-timeout-countdown.critical{color:#ff4d4f;animation:pulse 1s ease-in-out infinite}.session-timeout-hint{margin:0;font-size:12px;color:#8c8c8c;text-align:center}.session-timeout-modal-footer{display:flex;gap:12px;justify-content:flex-end;padding:16px 24px;border-top:1px solid #f0f0f0;background:#fafafa;border-radius:0 0 8px 8px}.session-timeout-button{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.session-timeout-button.primary{background:#1890ff;color:#fff;border-color:#1890ff}.session-timeout-button.primary:hover{background:#40a9ff;border-color:#40a9ff}.session-timeout-button.secondary{background:#fff;color:#ff4d4f;border-color:#ff4d4f}.session-timeout-button.secondary:hover{background:#fff1f0;border-color:#ff4d4f}@media(max-width:480px){.session-timeout-modal{margin:20px}.session-timeout-modal-header{padding:16px 20px}.session-timeout-modal-body{padding:20px}.session-timeout-modal-footer{padding:12px 20px;flex-direction:column-reverse}.session-timeout-button{width:100%}.session-warning-inline{flex-direction:column;padding:12px}.session-warning-message{text-align:center}}.keyboard-shortcuts-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease-out}.keyboard-shortcuts-modal{background:var(--bg-primary, #ffffff);border-radius:12px;box-shadow:0 20px 60px #0000004d;width:90%;max-width:800px;max-height:80vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out;color:var(--text-primary, #1a1a1a)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.shortcuts-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color, #e5e7eb)}.shortcuts-modal-title{font-size:24px;font-weight:600;margin:0;display:flex;align-items:center;gap:8px}.shortcuts-modal-close{background:transparent;border:none;font-size:24px;color:var(--text-secondary, #6b7280);cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .2s;line-height:1}.shortcuts-modal-close:hover{background:var(--bg-secondary, #f3f4f6);color:var(--text-primary, #1a1a1a)}.shortcuts-search{position:relative;padding:16px 24px;border-bottom:1px solid var(--border-color, #e5e7eb)}.shortcuts-search-input{width:100%;padding:10px 40px 10px 16px;font-size:15px;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;background:var(--bg-secondary, #f9fafb);color:var(--text-primary, #1a1a1a);transition:all .2s}.shortcuts-search-input:focus{outline:none;border-color:#3b82f6;background:var(--bg-primary, #ffffff);box-shadow:0 0 0 3px #3b82f61a}.shortcuts-search-icon{position:absolute;right:36px;top:50%;transform:translateY(-50%);font-size:16px;pointer-events:none;color:var(--text-secondary, #9ca3af)}.shortcuts-categories{display:flex;gap:8px;padding:12px 24px;border-bottom:1px solid var(--border-color, #e5e7eb);overflow-x:auto;flex-wrap:wrap}.category-filter-btn{padding:6px 12px;font-size:13px;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;color:var(--text-secondary, #6b7280);cursor:pointer;white-space:nowrap;transition:all .2s}.category-filter-btn:hover{background:var(--bg-secondary, #f3f4f6);border-color:#d1d5db}.category-filter-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.shortcuts-content{flex:1;overflow-y:auto;padding:16px 24px}.shortcuts-content::-webkit-scrollbar{width:8px}.shortcuts-content::-webkit-scrollbar-track{background:transparent}.shortcuts-content::-webkit-scrollbar-thumb{background:var(--border-color, #e5e7eb);border-radius:4px}.shortcuts-content::-webkit-scrollbar-thumb:hover{background:#d1d5db}.shortcuts-category{margin-bottom:24px}.shortcuts-category:last-child{margin-bottom:0}.shortcuts-category-title{font-size:16px;font-weight:600;margin:0 0 12px;color:var(--text-primary, #1a1a1a);padding-bottom:8px;border-bottom:2px solid var(--border-color, #e5e7eb)}.shortcuts-list{display:flex;flex-direction:column;gap:8px}.shortcut-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg-secondary, #f9fafb);border-radius:6px;transition:all .2s}.shortcut-item:hover{background:var(--bg-tertiary, #f3f4f6);transform:translate(4px)}.shortcut-info{flex:1;display:flex;flex-direction:column;gap:2px}.shortcut-description{font-size:14px;color:var(--text-primary, #1a1a1a);font-weight:500}.shortcut-note{font-size:12px;color:var(--text-secondary, #6b7280);font-style:italic}.shortcut-keys{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.shortcut-keys kbd{display:inline-block;padding:4px 8px;font-size:12px;font-family:SF Mono,Monaco,Consolas,monospace;font-weight:600;background:linear-gradient(180deg,#fff,#f3f4f6);border:1px solid #d1d5db;border-radius:4px;box-shadow:0 1px 2px #0000000d,inset 0 1px #fffc;color:var(--text-primary, #1a1a1a);line-height:1.4;white-space:nowrap}.shortcut-keys kbd:hover{background:linear-gradient(180deg,#f9fafb,#e5e7eb)}.shortcuts-empty{text-align:center;padding:40px 20px;color:var(--text-secondary, #6b7280)}.shortcuts-clear-search{margin-top:12px;padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:background .2s}.shortcuts-clear-search:hover{background:#2563eb}.shortcuts-modal-footer{padding:16px 24px;border-top:1px solid var(--border-color, #e5e7eb);background:var(--bg-secondary, #f9fafb);border-radius:0 0 12px 12px}.shortcuts-tip{margin:0;font-size:13px;color:var(--text-secondary, #6b7280);text-align:center}.shortcuts-tip kbd{padding:2px 6px;font-size:11px;font-family:SF Mono,Monaco,Consolas,monospace;background:var(--bg-primary, #ffffff);border:1px solid #d1d5db;border-radius:3px;font-weight:600}@media(prefers-color-scheme:dark){:root{--bg-primary: #1f2937;--bg-secondary: #111827;--bg-tertiary: #374151;--text-primary: #f9fafb;--text-secondary: #9ca3af;--border-color: #374151}}@media(max-width:640px){.keyboard-shortcuts-modal{width:95%;max-height:90vh}.shortcuts-modal-header{padding:16px}.shortcuts-modal-title{font-size:20px}.shortcuts-search{padding:12px 16px}.shortcuts-categories{padding:8px 16px}.shortcuts-content,.shortcuts-modal-footer{padding:12px 16px}.shortcut-item{flex-direction:column;align-items:flex-start;gap:8px}.shortcut-keys{width:100%;justify-content:flex-start}}.history-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:flex-end;align-items:flex-start;z-index:1000;padding-top:60px}.history-panel{background:#fff;width:400px;max-width:90vw;height:calc(100vh - 80px);margin-right:20px;border-radius:12px;box-shadow:0 8px 32px #00000026;display:flex;flex-direction:column;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.history-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #F0F0F0}.history-header h2{margin:0;font-size:18px;font-weight:600;color:#262626;display:flex;align-items:center;gap:8px}.history-close-btn{background:none;border:none;font-size:20px;color:#8c8c8c;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.history-close-btn:hover{background-color:#f5f5f5;color:#262626}.history-content{flex:1;overflow-y:auto;padding:16px}.history-empty{text-align:center;padding:60px 20px;color:#8c8c8c}.history-empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.history-empty p{margin:8px 0;font-size:14px}.history-empty-hint{font-size:12px!important;color:#bfbfbf}.history-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px;background-color:#fafafa;border-radius:8px}.history-clear-btn{background:none;border:none;color:#ff4d4f;font-size:13px;cursor:pointer;padding:6px 12px;border-radius:4px;transition:all .2s}.history-clear-btn:hover{background-color:#fff1f0}.history-count{font-size:12px;color:#8c8c8c}.history-list{list-style:none;margin:0;padding:0}.history-item{display:flex;align-items:center;padding:12px;margin-bottom:8px;border-radius:8px;cursor:pointer;transition:all .2s;position:relative}.history-item:hover{background-color:#f5f5f5}.history-item-icon{font-size:24px;margin-right:12px;flex-shrink:0}.history-item-info{flex:1;min-width:0}.history-item-title{font-size:14px;font-weight:500;color:#262626;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item-path{font-size:12px;color:#8c8c8c;margin-bottom:4px;font-family:Courier New,monospace}.history-item-time{font-size:11px;color:#bfbfbf}.history-item-remove{background:none;border:none;color:#8c8c8c;font-size:16px;cursor:pointer;padding:4px 8px;border-radius:4px;opacity:0;transition:all .2s;flex-shrink:0}.history-item:hover .history-item-remove{opacity:1}.history-item-remove:hover{background-color:#fff1f0;color:#ff4d4f}.history-footer{padding:16px;border-top:1px solid #F0F0F0;background-color:#fafafa}.history-footer-hint{margin:0;font-size:12px;color:#8c8c8c;text-align:center}@media(prefers-color-scheme:dark){.history-panel{background:#1f1f1f}.history-header{border-bottom-color:#303030}.history-header h2{color:#e8e8e8}.history-close-btn{color:#a0a0a0}.history-close-btn:hover{background-color:#303030;color:#e8e8e8}.history-item:hover{background-color:#303030}.history-item-title{color:#e8e8e8}.history-item-path{color:#a0a0a0}.history-item-time{color:#707070}.history-item-remove{color:#a0a0a0}.history-item-remove:hover{background-color:#3a1a1a}.history-footer{border-top-color:#303030;background-color:#1a1a1a}.history-footer-hint{color:#a0a0a0}.history-actions{background-color:#1a1a1a}}@media(max-width:768px){.history-panel{width:100%;max-width:100%;height:calc(100vh - 60px);margin:0;border-radius:0}.history-overlay{padding-top:60px}}.unsaved-changes-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.unsaved-changes-dialog{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;max-width:480px;width:90%;animation:slideIn .3s ease-out;overflow:hidden}@keyframes slideIn{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.unsaved-changes-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px;border-bottom:1px solid #f0f0f0}.unsaved-changes-title{margin:0;font-size:18px;font-weight:600;color:#262626;display:flex;align-items:center;gap:8px}.warning-icon{font-size:20px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.unsaved-changes-close{background:none;border:none;font-size:20px;color:#8c8c8c;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s;line-height:1;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.unsaved-changes-close:hover{background-color:#f5f5f5;color:#262626}.unsaved-changes-close:active{background-color:#e8e8e8}.unsaved-changes-message{padding:24px;color:#595959;font-size:14px;line-height:1.6}.unsaved-changes-message p{margin:0 0 12px}.unsaved-changes-message p:last-child{margin-bottom:0}.unsaved-changes-hint{color:#ff4d4f;background-color:#fff2f0;border:1px solid #ffccc7;border-radius:6px;padding:8px 12px;margin-top:12px;font-size:13px;display:flex;align-items:center;gap:8px}.unsaved-changes-hint:before{content:"ℹ️";font-size:14px}.unsaved-changes-actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px 20px;border-top:1px solid #f0f0f0;background-color:#fafafa}.unsaved-changes-btn{padding:8px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid transparent;min-width:80px}.unsaved-changes-btn-cancel{background-color:#fff;border-color:#d9d9d9;color:#595959}.unsaved-changes-btn-cancel:hover{background-color:#f5f5f5;border-color:#bfbfbf;color:#262626}.unsaved-changes-btn-cancel:active{background-color:#e8e8e8}.unsaved-changes-btn-confirm{background-color:#ff4d4f;border-color:#ff4d4f;color:#fff}.unsaved-changes-btn-confirm:hover{background-color:#ff7875;border-color:#ff7875}.unsaved-changes-btn-confirm:active{background-color:#d9363e;border-color:#d9363e}@media(prefers-color-scheme:dark){.unsaved-changes-dialog{background-color:#1f1f1f;box-shadow:0 8px 32px #0006}.unsaved-changes-header{border-bottom-color:#3a3a3a}.unsaved-changes-title{color:#e8e8e8}.unsaved-changes-close{color:#8c8c8c}.unsaved-changes-close:hover{background-color:#3a3a3a;color:#e8e8e8}.unsaved-changes-message{color:#b8b8b8}.unsaved-changes-hint{color:#ff7875;background-color:#ff4d4f1a;border-color:#ff7875}.unsaved-changes-actions{background-color:#141414;border-top-color:#3a3a3a}.unsaved-changes-btn-cancel{background-color:#1f1f1f;border-color:#4a4a4a;color:#b8b8b8}.unsaved-changes-btn-cancel:hover{background-color:#3a3a3a;border-color:#5a5a5a;color:#e8e8e8}}@media(max-width:480px){.unsaved-changes-dialog{width:95%;max-width:none}.unsaved-changes-header,.unsaved-changes-message,.unsaved-changes-actions{padding-left:16px;padding-right:16px}.unsaved-changes-actions{flex-direction:column-reverse;gap:8px}.unsaved-changes-btn{width:100%}}@media(prefers-reduced-motion:reduce){.unsaved-changes-overlay,.unsaved-changes-dialog,.warning-icon{animation:none}}.unsaved-changes-btn:focus-visible{outline:2px solid #1890ff;outline-offset:2px}.unsaved-changes-close:focus-visible{outline:2px solid #1890ff;outline-offset:2px}.error-illustration{display:flex;align-items:center;justify-content:center;margin:0 auto 24px}.error-illustration-small{width:200px;height:150px}.error-illustration-small svg{width:100%;height:100%}.error-illustration-medium{width:320px;height:240px}.error-illustration-medium svg{width:100%;height:100%}.error-illustration-large{width:480px;height:360px}.error-illustration-large svg{width:100%;height:100%}@media(max-width:640px){.error-illustration-medium{width:280px;height:210px}.error-illustration-large{width:320px;height:240px}}@media(max-width:480px){.error-illustration-small,.error-illustration-medium,.error-illustration-large{width:240px;height:180px}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ripple{0%{r:8;opacity:1}to{r:20;opacity:0}}@keyframes drawX{0%{stroke-dashoffset:20}to{stroke-dashoffset:0}}@keyframes rippleDelayed{0%{r:8;opacity:0}50%{opacity:.6}to{r:20;opacity:0}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.error-illustration-animated .crash-shards{animation:fadeIn .5s ease-out}.error-illustration-animated .crack-lines{animation:fadeIn .8s ease-out .2s both}.error-illustration-animated .error-icon-pulse{animation:pulse 2s ease-in-out infinite}.error-illustration-animated .error-x-mark{stroke-dasharray:20;stroke-dashoffset:20;animation:drawX .5s ease-out .5s forwards}.error-illustration-animated .cloud-icon{animation:bounce 2s ease-in-out infinite}.error-illustration-animated .signal-waves{animation:fadeIn 1s ease-out .3s both}.error-illustration-animated .wave-pulse{animation:pulse 1.5s ease-in-out infinite .5s}.error-illustration-animated .wave-pulse-delayed{animation:pulse 1.5s ease-in-out infinite .8s}.error-illustration-animated .connection-dot-pulse{animation:blink 1s ease-in-out infinite}.error-illustration-animated .lock-shackle{transform-origin:170px 100px;animation:shake .5s ease-in-out .3s}.error-illustration-animated .warning-pulse{animation:pulse 2s ease-in-out infinite}.error-illustration-animated .permission-icons{animation:fadeIn .8s ease-out .5s both}.error-illustration-animated .database-icon{animation:fadeIn .6s ease-out}.error-illustration-animated .error-circle-pulse{animation:pulse 2s ease-in-out infinite}.error-illustration-animated .error-x-draw{stroke-dasharray:30;stroke-dashoffset:30;animation:drawX .6s ease-out .4s forwards}.error-illustration-animated .failed-spinner{animation:rotate 1s linear infinite}.error-illustration-animated .input-shake{animation:shake .5s ease-in-out .3s}.error-illustration-animated .input-error-pulse{animation:pulse 1.5s ease-in-out infinite}.error-illustration-animated .icon-bounce{animation:bounce 1s ease-in-out infinite .5s}.error-illustration-animated .icon-bounce-delayed{animation:bounce 1s ease-in-out infinite .7s}.error-illustration-animated .icon-check{animation:fadeIn .5s ease-out .3s both}.error-illustration-animated .magnifier-glass{animation:fadeIn .6s ease-out}.error-illustration-animated .text-bounce{animation:bounce 2s ease-in-out infinite}.error-illustration-animated .search-elements{animation:fadeIn .8s ease-out .4s both}.error-illustration-animated .server-led-1{animation:blink 1.5s ease-in-out infinite 0s}.error-illustration-animated .server-led-2{animation:blink 1.5s ease-in-out infinite .3s}.error-illustration-animated .server-error-unit{animation:shake .5s ease-in-out .5s}.error-illustration-animated .error-led-pulse{animation:blink .8s ease-in-out infinite}.error-illustration-animated .warning-triangle-pulse{animation:pulse 2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.error-illustration-animated *,.error-illustration-animated *:before,.error-illustration-animated *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-color-scheme:dark){.error-illustration svg{filter:brightness(.9)}}.error-illustration:focus{outline:2px solid #667eea;outline-offset:4px;border-radius:4px}@media print{.error-illustration-animated *,.error-illustration-animated *:before,.error-illustration-animated *:after{animation:none!important}.error-illustration{page-break-inside:avoid}}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2)}.error-boundary-content{max-width:600px;width:100%;background:#fff;border-radius:16px;padding:40px;box-shadow:0 20px 60px #0000004d;text-align:center;animation:errorBoundarySlideIn .3s ease-out}@keyframes errorBoundarySlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-icon{font-size:4rem;margin-bottom:20px;animation:errorIconShake .5s ease-in-out}@keyframes errorIconShake{0%,to{transform:rotate(0)}10%,30%,50%,70%,90%{transform:rotate(-5deg)}20%,40%,60%,80%{transform:rotate(5deg)}}.error-title{font-size:2rem;font-weight:700;color:#1a202c;margin:0 0 16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.error-message{font-size:1rem;color:#4a5568;line-height:1.6;margin:0 0 24px}.error-details{background:#fff5f5;border:1px solid #fed7d7;border-radius:8px;padding:16px;margin-bottom:24px;text-align:left}.error-text{font-size:.875rem;color:#c53030;margin:0;font-family:Courier New,monospace;word-break:break-word}.error-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}.error-button{padding:12px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;box-shadow:0 2px 4px #0000001a}.error-button:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.error-button:active{transform:translateY(0);box-shadow:0 2px 4px #0000001a}.error-button-primary{background:#667eea;color:#fff}.error-button-primary:hover{background:#5568d3}.error-button-secondary{background:#e2e8f0;color:#2d3748}.error-button-secondary:hover{background:#cbd5e0}.error-secondary-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}.error-link-button{background:none;border:none;color:#667eea;font-size:.875rem;font-weight:500;cursor:pointer;padding:8px 12px;border-radius:6px;transition:all .2s ease;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;text-decoration:none}.error-link-button:hover{background:#edf2f7;text-decoration:underline}.error-link-button:active{background:#e2e8f0}.error-hint{font-size:.8125rem;color:#718096;margin:0;line-height:1.5}@media(max-width:640px){.error-boundary-content{padding:24px}.error-icon{font-size:3rem}.error-title{font-size:1.5rem}.error-message{font-size:.875rem}.error-actions{flex-direction:column}.error-button{width:100%}.error-secondary-actions{flex-direction:column;gap:8px}}@media(prefers-color-scheme:dark){.error-boundary{background:linear-gradient(135deg,#4c51bf,#553c9a)}.error-boundary-content{background:#1a202c;color:#e2e8f0}.error-title{color:#f7fafc}.error-message{color:#cbd5e0}.error-details{background:#742a2a;border-color:#9b2c2c}.error-text{color:#feb2b2}.error-button-secondary{background:#2d3748;color:#e2e8f0}.error-button-secondary:hover{background:#4a5568}.error-hint{color:#a0aec0}.error-link-button{color:#90cdf4}.error-link-button:hover{background:#2d3748}}@media(prefers-contrast:high){.error-boundary-content,.error-button{border:2px solid #000}}@media(prefers-reduced-motion:reduce){.error-boundary-content,.error-icon,.error-button,.error-link-button{animation:none;transition:none}}@media print{.error-boundary{background:#fff}.error-boundary-content{box-shadow:none;border:1px solid #000}.error-button,.error-link-button{display:none}}.browser-compatibility-warning{position:relative;z-index:10000}.browser-compatibility-warning--minor{background:linear-gradient(135deg,#fff7ed,#fef3c7);border-bottom:1px solid #fbbf24;box-shadow:0 2px 8px #0000001a}.browser-compatibility-warning__content{display:flex;align-items:center;gap:12px;padding:12px 16px;max-width:1200px;margin:0 auto}.browser-compatibility-warning__icon{font-size:24px;flex-shrink:0;line-height:1}.browser-compatibility-warning__icon--large{font-size:64px;margin-bottom:16px}.browser-compatibility-warning__message{flex:1;font-size:14px;color:#92400e;line-height:1.5}.browser-compatibility-warning__message p{margin:0}.browser-compatibility-warning__close{background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:#78716c;border-radius:4px;transition:all .2s;flex-shrink:0}.browser-compatibility-warning__close:hover{background:#0000000d;color:#292524}.browser-compatibility-warning__close:active{transform:scale(.95)}.browser-compatibility-warning--critical{position:fixed;inset:0;z-index:10000}.browser-compatibility-warning__overlay{position:absolute;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.browser-compatibility-warning__modal{position:relative;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;margin:10vh auto;z-index:1;animation:browserWarningSlideIn .3s ease-out}@keyframes browserWarningSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.browser-compatibility-warning__close--modal{position:absolute;top:16px;right:16px;background:#f5f5f5;border-radius:8px}.browser-compatibility-warning__header{text-align:center;padding:32px 32px 24px}.browser-compatibility-warning__title{font-size:24px;font-weight:600;color:#292524;margin:0}.browser-compatibility-warning__body{padding:0 32px 32px}.browser-compatibility-warning__text{font-size:16px;line-height:1.6;color:#57534e;margin:0 0 16px}.browser-compatibility-warning__text strong{color:#292524;font-weight:600}.browser-compatibility-warning__browsers{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:20px 0}.browser-compatibility-warning__browser-link{display:flex;align-items:center;gap:12px;padding:16px;background:#f5f5f5;border-radius:8px;text-decoration:none;color:inherit;transition:all .2s;border:2px solid transparent}.browser-compatibility-warning__browser-link:hover{background:#e5e5e5;border-color:#3b82f6;transform:translateY(-2px)}.browser-compatibility-warning__browser-icon{font-size:28px;flex-shrink:0}.browser-compatibility-warning__browser-name{font-weight:500;color:#292524}.browser-compatibility-warning__note{font-size:14px;color:#78716c;font-style:italic;margin:16px 0 0}.browser-compatibility-warning__footer{display:flex;flex-direction:column;gap:12px;padding:0 32px 32px}.browser-compatibility-warning__button{padding:12px 24px;border-radius:8px;font-size:16px;font-weight:500;text-align:center;cursor:pointer;transition:all .2s}.browser-compatibility-warning__button--primary{background:#3b82f6;color:#fff;border:none}.browser-compatibility-warning__button--primary:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.browser-compatibility-warning__button--primary:active{transform:translateY(0)}.browser-compatibility-warning__button--link{background:none;color:#3b82f6;border:none;text-decoration:none}.browser-compatibility-warning__button--link:hover{text-decoration:underline;background:#eff6ff}@media(max-width:640px){.browser-compatibility-warning__modal{margin:0;width:100%;height:100%;max-height:100vh;border-radius:0}.browser-compatibility-warning__content{padding:10px 12px}.browser-compatibility-warning__message{font-size:13px}.browser-compatibility-warning__browsers{grid-template-columns:1fr}.browser-compatibility-warning__header,.browser-compatibility-warning__body,.browser-compatibility-warning__footer{padding-left:20px;padding-right:20px}}@media(prefers-color-scheme:dark){.browser-compatibility-warning--minor{background:linear-gradient(135deg,#451a03,#78350f);border-bottom-color:#d97706}.browser-compatibility-warning__message{color:#fef3c7}.browser-compatibility-warning__modal{background:#292524;color:#fafaf9}.browser-compatibility-warning__title{color:#fafaf9}.browser-compatibility-warning__text{color:#d6d3d1}.browser-compatibility-warning__text strong{color:#fafaf9}.browser-compatibility-warning__browser-link{background:#44403c}.browser-compatibility-warning__browser-link:hover{background:#57534e}.browser-compatibility-warning__browser-name{color:#fafaf9}.browser-compatibility-warning__close{color:#a8a29e}.browser-compatibility-warning__close:hover{background:#ffffff1a;color:#fafaf9}.browser-compatibility-warning__close--modal{background:#44403c}}
