:root{--primary-blue:#0052cc;--primary-blue-dark:#003d99;--primary-gradient:linear-gradient(135deg,#0052cc,#003d99);--bg-light:#f7fafc;--bg-lighter:#edf2f7;--bg-gradient:linear-gradient(135deg,#f7fafc,#edf2f7);--bg-white:#fff;--text-primary:#2d3748;--text-secondary:#4a5568;--text-muted:#718096;--text-light:#a0aec0;--border-light:#e2e8f0;--border-lighter:#e2e8f0cc;--success-green:#0f8;--error-red:#ef4444;--warning-yellow:#f59e0b;--shadow-sm:0 1px 3px #0000001a,0 1px 2px #0000000f;--shadow-md:0 4px 6px #0000001a,0 2px 4px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--shadow-primary:0 4px 20px #0052cc4d;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--transition-fast:0.15s ease;--transition-normal:0.3s ease;--transition-slow:0.5s ease}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;line-height:1.15;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f7fafc,#edf2f7);background:var(--bg-gradient);color:#2d3748;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh;position:relative}body:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cdefs%3E%3Cpattern id='a' width='60' height='60' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='30' cy='30' r='1.5' fill='rgba(0,82,204,0.06)'/%3E%3C/pattern%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h60v60H0z'/%3E%3C/svg%3E");bottom:0;content:"";left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:0}.app{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1 1;min-height:0}.loading-screen{align-items:center;background:linear-gradient(135deg,#f7fafc,#edf2f7);background:var(--bg-gradient);display:flex;justify-content:center;min-height:100vh;position:relative;z-index:1}.loading-content{background:#fff;border:1px solid #fffc;border-radius:20px;border-radius:var(--radius-xl);box-shadow:0 20px 60px #0052cc1f,0 8px 25px #0000000f;margin:0 auto;max-width:400px;overflow:hidden;padding:2rem;position:relative;text-align:center}.loading-content:before{background:linear-gradient(135deg,#0052cc,#003d99);background:var(--primary-gradient);content:"";height:4px;left:0;position:absolute;right:0;top:0}.loading-spinner{border:4px solid #e2e8f0;border-top:4px solid #0052cc;border:4px solid var(--border-light);border-top-color:var(--primary-blue);height:48px;margin:0 auto 1.5rem;width:48px}.loading-content h2{color:#2d3748;color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.loading-content p{color:#718096;color:var(--text-muted);margin:0}.page-container{margin:0 auto;max-width:1200px;z-index:1}.card,.page-container{padding:2rem;position:relative}.card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff;border:1px solid #fffc;border-radius:20px;border-radius:var(--radius-xl);box-shadow:0 20px 60px #0052cc1f,0 8px 25px #0000000f;overflow:hidden}.card:before{background:linear-gradient(135deg,#0052cc,#003d99);background:var(--primary-gradient);content:"";height:4px;left:0;position:absolute;right:0;top:0}.btn{align-items:center;border:none;border-radius:12px;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:600;gap:.5rem;justify-content:center;overflow:hidden;padding:.875rem 1.5rem;position:relative;transition:all .3s ease;transition:all var(--transition-normal)}.btn-primary{background:linear-gradient(135deg,#0052cc,#003d99);background:var(--primary-gradient);box-shadow:0 4px 20px #0052cc4d;box-shadow:var(--shadow-primary);color:#fff}.btn-primary:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.btn-primary:hover:not(:disabled){box-shadow:0 8px 25px #0052cc66;transform:translateY(-2px)}.btn-primary:hover:not(:disabled):before{left:100%}.btn-secondary{background:linear-gradient(135deg,#f7fafc,#edf2f7);background:var(--bg-gradient);border:2px solid #e2e8f0;border:2px solid var(--border-light);color:#2d3748;color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:linear-gradient(135deg,#edf2f7,#e2e8f0);box-shadow:0 4px 6px #0000001a,0 2px 4px #0000000f;box-shadow:var(--shadow-md);transform:translateY(-1px)}.form-label{color:var(--text-secondary)}.form-input{border:2px solid var(--border-light);border-radius:var(--radius-md);color:var(--text-primary);transition:all var(--transition-normal)}.form-input:focus{border-color:var(--primary-blue)}.alert{align-items:flex-start;animation:slideIn .3s ease-out;border-radius:12px;border-radius:var(--radius-md);display:flex;gap:1rem;margin-bottom:1.5rem;padding:1rem}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.alert-error{background:linear-gradient(135deg,#fed7d7,#feb2b2);border:1px solid #fc8181;color:#c53030}.alert-success{background:linear-gradient(135deg,#c6f6d5,#9ae6b4);border:1px solid #68d391;color:#22543d}.status-dot{background:var(--success-green)}.empty-state{background:#fff;border-radius:20px;border-radius:var(--radius-xl);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);padding:3rem;text-align:center}.empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.6}@media (max-width:768px){.page-container{padding:1rem}.card{border-radius:16px;border-radius:var(--radius-lg);padding:1.5rem}.loading-content{margin:0 1rem;padding:1.5rem}}@media (prefers-color-scheme:dark){:root{--bg-gradient:linear-gradient(135deg,#1a202c,#2d3748);--text-primary:#f7fafc;--text-secondary:#e2e8f0;--text-muted:#cbd5e0;--border-light:#4a5568}body:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cdefs%3E%3Cpattern id='a' width='60' height='60' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='30' cy='30' r='1.5' fill='rgba(96,165,250,0.06)'/%3E%3C/pattern%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h60v60H0z'/%3E%3C/svg%3E")}.card,.loading-content{background:linear-gradient(135deg,#2d3748,#1a202c);color:#2d3748;color:var(--text-primary)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.text-center{text-align:center}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.login-page-layout{background:linear-gradient(135deg,#f7fafc,#edf2f7);display:flex;flex-direction:column;min-height:100vh;position:relative}.login-page-layout:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60'%3E%3Cdefs%3E%3Cpattern id='a' width='60' height='60' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='30' cy='30' r='1.5' fill='rgba(0,82,204,0.06)'/%3E%3C/pattern%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h60v60H0z'/%3E%3C/svg%3E");bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:0}.login-page-header{background:linear-gradient(135deg,#0052cc,#003d99);box-shadow:0 4px 20px #0052cc4d;color:#fff;padding:1.5rem 0;position:relative;z-index:1}.login-header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 2rem}.login-brand{align-items:center;display:flex;gap:1.5rem}.login-brand-logo{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));height:60px;width:auto}.login-brand-text h1{color:#fff;font-size:2rem;font-weight:800;margin:0;text-shadow:0 2px 4px #0000004d}.login-brand-text p{color:#ffffffe6;font-size:1rem;font-weight:500;margin:0}.login-status{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:25px;display:flex;gap:.75rem;padding:.75rem 1.25rem}.status-dot{animation:pulse 2s infinite;background:#0f8;border-radius:50%;box-shadow:0 0 10px #0f89;height:10px;width:10px}.login-status span:last-child{color:#fff;font-size:.9rem;font-weight:600}.login-main-content{flex:1 1;padding:2rem 1rem;position:relative;z-index:1}.login-main-content,.login-screen{align-items:center;display:flex;justify-content:center}.login-screen{width:100%}.login-container{max-width:450px;width:100%}.login-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff;border:1px solid #fffc;border-radius:20px;box-shadow:0 20px 60px #0052cc1f,0 8px 25px #0000000f;overflow:hidden;padding:2.5rem;position:relative}.login-card:before{background:linear-gradient(135deg,#0052cc,#003d99);content:"";height:4px;left:0;position:absolute;right:0;top:0}.login-header{margin-bottom:2rem;text-align:center}.logo-section{display:flex;justify-content:center;margin-bottom:1.5rem}.logo-image{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));height:120px;transition:transform .3s ease}.logo-image:hover{transform:scale(1.02)}.login-title{color:#2d3748;font-size:2rem;font-weight:700;margin:0 0 .75rem;text-shadow:0 2px 4px #0000000d}.login-subtitle{color:#718096;font-size:1rem;font-weight:400;line-height:1.5;margin:0}.alert.alert-error{align-items:flex-start;animation:errorSlideIn .3s ease-out;background:linear-gradient(135deg,#fed7d7,#feb2b2);border:1px solid #fc8181;border-radius:12px;display:flex;gap:1rem;margin-bottom:1.5rem;padding:1rem}@keyframes errorSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.error-icon{flex-shrink:0;font-size:1.25rem}.error-content{flex:1 1}.error-content strong{color:#c53030;display:block;font-weight:600;margin-bottom:.25rem}.error-content p{color:#e53e3e;font-size:.9rem;line-height:1.4;margin:0}.login-form{margin-bottom:2rem}.form-group{margin-bottom:1.5rem}.form-label{align-items:center;color:#4a5568;display:flex;font-size:.95rem;font-weight:600;gap:.5rem;margin-bottom:.5rem}.label-icon{font-size:1rem;opacity:.8}.form-input{background:#fff;border:2px solid #e2e8f0;border-radius:12px;color:#2d3748;font-size:1rem;padding:.875rem 1rem;transition:all .3s ease;width:100%}.form-input:focus{border-color:#0052cc;box-shadow:0 0 0 3px #0052cc1a;outline:none;transform:translateY(-1px)}.form-input:disabled{background:#f7fafc;color:#a0aec0;cursor:not-allowed}.form-input::placeholder{color:#a0aec0;font-weight:400}.login-btn{align-items:center;background:linear-gradient(135deg,#0052cc,#003d99);border:none;border-radius:12px;box-shadow:0 4px 15px #0052cc4d;color:#fff;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;gap:.75rem;justify-content:center;overflow:hidden;padding:1rem 2rem;position:relative;transition:all .3s ease;width:100%}.login-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.login-btn:hover:not(:disabled){box-shadow:0 8px 25px #0052cc66;transform:translateY(-2px)}.login-btn:hover:not(:disabled):before{left:100%}.login-btn:active:not(:disabled){transform:translateY(-1px)}.login-btn:disabled{background:#cbd5e0;box-shadow:none;color:#a0aec0;cursor:not-allowed;transform:none}.login-btn.loading{pointer-events:none}.login-btn-icon{font-size:1.1rem}.button-spinner{animation:spin 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:20px;width:20px}.login-help{border-top:1px solid #e2e8f0;padding-top:1.5rem}.help-section{margin-bottom:1.5rem}.help-section h4{color:#4a5568;font-size:1rem;font-weight:600;margin:0 0 .75rem}.help-list{list-style:none;margin:0;padding:0}.help-list li{color:#718096;font-size:.9rem;padding:.5rem 0 .5rem 1.5rem;position:relative}.help-list li:before{content:"💡";font-size:.8rem;left:0;position:absolute;top:.5rem}.debug-info{background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:1px solid #f39c12;border-radius:10px;margin-bottom:1rem;padding:1rem;text-align:center}.debug-header{align-items:center;display:flex;gap:.5rem;justify-content:center;margin-bottom:.5rem}.debug-icon{animation:bounce 2s infinite;font-size:1.2rem}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-3px)}60%{transform:translateY(-2px)}}.debug-info strong{color:#b7791f;font-weight:600}.debug-info p{color:#856404;font-size:.9rem;font-weight:500;margin:0}.security-note{align-items:center;background:linear-gradient(135deg,#f0fff4,#e6fffa);border:1px solid #9ae6b4;border-radius:10px;display:flex;gap:.75rem;padding:1rem}.security-icon{flex-shrink:0;font-size:1.25rem}.security-note p{color:#22543d;font-size:.9rem;font-weight:500;margin:0}.login-page-footer{background:linear-gradient(135deg,#2d3748,#1a202c);border-top:1px solid #4a5568;color:#e2e8f0;margin-top:auto;padding:1.5rem 0;position:relative;z-index:1}.login-footer-content{justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 2rem}.login-footer-brand,.login-footer-content,.login-footer-left{align-items:center;display:flex}.login-footer-brand{gap:1rem}.login-footer-logo{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));font-size:1.5rem}.login-footer-info p{color:#cbd5e0;font-size:.9rem;margin:.25rem 0}.login-footer-info a{color:#63b3ed;font-weight:500;text-decoration:none}.login-footer-info a:hover{color:#90cdf4;text-decoration:underline}.login-footer-right,.login-footer-status{align-items:center;display:flex}.login-footer-status{color:#e2e8f0;font-size:.85rem;gap:.75rem}.footer-status-dot{background:#0f8;border-radius:50%;box-shadow:0 0 8px #0f89;height:8px;width:8px}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@media (max-width:768px){.login-footer-content,.login-header-content{flex-direction:column;gap:1rem;text-align:center}.login-brand{flex-direction:column;gap:1rem}.login-brand-logo{height:50px}.login-brand-text h1{font-size:1.75rem}.login-main-content{padding:1.5rem 1rem}.login-card{padding:2rem 1.5rem}.login-title{font-size:1.75rem}.login-subtitle{font-size:.95rem}.logo-image{height:100px}.form-input{font-size:.95rem;padding:.75rem}.login-btn{font-size:1rem;padding:.875rem 1.5rem}}@media (max-width:480px){.login-main-content{padding:1rem .75rem}.login-card{border-radius:16px;padding:1.5rem 1rem}.login-title{font-size:1.5rem}.login-subtitle{font-size:.9rem}.logo-image{height:80px}.form-group{margin-bottom:1.25rem}.alert.alert-error{flex-direction:column;gap:.75rem;text-align:center}.help-list li{font-size:.85rem}.security-note{flex-direction:column;gap:.5rem;text-align:center}.debug-info{padding:.75rem}}@media (prefers-contrast:high){.form-input{border-width:3px}.login-btn{border:2px solid #003d99}.alert.alert-error,.debug-info,.security-note{border-width:2px}}@media (prefers-reduced-motion:reduce){.alert.alert-error,.form-input,.login-btn,.logo-image{transition:none}.login-btn:before{display:none}.button-spinner,.debug-icon,.status-dot{animation:none}}.app-header{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:linear-gradient(135deg,#fff,#fafbfc);border-bottom:1px solid #e2e8f0cc;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;color:#1a202c;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.header-container{gap:2rem;justify-content:space-between;margin:0;max-width:100%;min-height:52px;padding:.75rem 2rem}.header-container,.header-left{align-items:center;display:flex}.header-left{flex:0 0 auto;gap:1.5rem}.header-center{flex:1 1;justify-content:center;padding:0 2rem}.header-center,.header-right{align-items:center;display:flex}.header-right{flex:0 0 auto;gap:1rem;justify-content:flex-end}.logo-btn{align-items:center;background:none;border:none;border-radius:8px;color:#1a202c;cursor:pointer;display:flex;gap:.75rem;overflow:hidden;padding:.5rem .75rem;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1)}.logo-btn:before{background:linear-gradient(135deg,#0052cc1a,#667eea0d);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s ease}.logo-btn:hover:before{opacity:1}.logo-btn:hover{box-shadow:0 4px 12px #0052cc26;transform:translateY(-1px)}.logo-btn h1{font-size:1.375rem;font-weight:700;letter-spacing:-.025em;margin:0}.logo-btn h1,.logo-icon{color:#0052cc;position:relative;z-index:1}.logo-icon{font-size:1.25rem}.logo-image{display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.08));height:36px;position:relative;transition:transform .2s ease;width:auto;z-index:1}.logo-btn:hover .logo-image{transform:scale(1.05)}.page-title{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f8fafccc;border:1px solid #e2e8f099;border-radius:24px;box-shadow:0 1px 3px #0000000d;display:flex;padding:.5rem 1rem}.page-title h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#0052cc,#667eea);-webkit-background-clip:text;background-clip:text;color:#1a202c;font-size:1rem;font-weight:600;margin:0;white-space:nowrap}.breadcrumb-nav{align-items:center;background:#0000;display:flex;flex:1 1;gap:.5rem;justify-content:center;padding:0}.breadcrumb-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#f8fafcf2,#f1f5f9f2);border:1px solid #e2e8f099;border-radius:12px;box-shadow:0 1px 3px #0000000d;color:#64748b;cursor:pointer;font-size:.875rem;font-weight:500;padding:.625rem 1.25rem;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap}.breadcrumb-item:hover:not(:disabled){background:linear-gradient(135deg,#fffffff2,#f8fafcf2);border-color:#0052cc4d;box-shadow:0 4px 12px #0052cc26;color:#0052cc;transform:translateY(-1px)}.breadcrumb-item.active{background:linear-gradient(135deg,#0052cc,#0047bb);border:1px solid #0052cccc;box-shadow:0 4px 12px #0052cc4d;color:#fff;cursor:default;font-size:.9rem;font-weight:600;padding:.75rem 1.5rem}.breadcrumb-item.active:hover{box-shadow:0 4px 12px #0052cc4d;transform:none}.breadcrumb-item:disabled{background:#e2e8f04d;cursor:not-allowed;opacity:.5}.breadcrumb-separator{color:#cbd5e0;font-size:1rem;font-weight:400;margin:0 .25rem;opacity:.6}.user-info{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#f8fafce6,#f1f5f9e6);border:1px solid #e2e8f099;border-radius:12px;box-shadow:0 1px 3px #0000000d;color:#334155;display:flex;gap:.75rem;padding:.5rem 1rem;transition:all .2s ease}.user-info:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.user-icon{align-items:center;background:#0052cc1a;border-radius:8px;color:#0052cc;display:flex;font-size:1.25rem;height:32px;justify-content:center;width:32px}.user-icon:before{content:"👨‍💼"}.user-details{display:flex;flex-direction:column;gap:0}.user-name{color:#1e293b;font-size:.875rem;font-weight:600;line-height:1.2}.user-role{color:#64748b;line-height:1.2}.session-status,.user-role{font-size:.75rem;font-weight:500}.session-status{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#10b9811a;border:1px solid #10b98133;border-radius:20px;display:flex;gap:.5rem;padding:.5rem .75rem;transition:all .2s ease}.session-status:hover{background:#10b98126;box-shadow:0 2px 8px #10b98126;transform:translateY(-1px)}.status-indicator{border-radius:50%;display:inline-block;height:8px;position:relative;width:8px}.status-indicator:after{animation:pulse-ring 2s infinite;border-radius:50%;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.status-indicator.active{background:#10b981;box-shadow:0 0 0 2px #10b98133}.status-indicator.active:after{border:1px solid #10b981}.status-indicator.expiring_soon{background:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.status-indicator.expiring_soon:after{border:1px solid #f59e0b}.status-indicator.expired{background:#ef4444;box-shadow:0 0 0 2px #ef444433}.status-indicator.expired:after{border:1px solid #ef4444}.session-warning{color:#f59e0b;font-size:.75rem;font-weight:600}@keyframes pulse-ring{0%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(1.8)}to{opacity:0;transform:scale(2.2)}}.logout-btn{align-items:center;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:12px;box-shadow:0 1px 3px #ef44444d;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;height:48px;justify-content:center;overflow:hidden;padding:.75rem 1.25rem;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1)}.logout-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.logout-btn:hover:before{left:100%}.logout-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 4px 12px #ef444466;transform:translateY(-1px)}.logout-btn:active{transform:translateY(0)}.mobile-nav{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:linear-gradient(135deg,#fff,#fafbfc);border-top:1px solid #e2e8f0cc;box-shadow:0 -2px 8px #0000000d;display:none;padding:.75rem}.mobile-nav-items{display:flex;gap:1rem;justify-content:center;margin:0 auto;max-width:400px}.mobile-nav-btn{align-items:center;background:none;border:none;border-radius:12px;color:#64748b;cursor:pointer;display:flex;flex-direction:column;font-size:.75rem;font-weight:500;gap:.25rem;min-width:80px;overflow:hidden;padding:.75rem 1rem;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1)}.mobile-nav-btn:before{background:#0052cc14;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s ease}.mobile-nav-btn:hover:before{opacity:1}.mobile-nav-btn:hover{box-shadow:0 4px 12px #0000001a;color:#334155;transform:translateY(-2px)}.mobile-nav-btn.active{background:#0052cc1a;color:#0052cc;font-weight:600}.mobile-nav-btn.logout{color:#ef4444}.mobile-nav-btn.logout:hover{background:#ef44441a;color:#dc2626}.mobile-nav-btn.logout:before{background:#ef444414}.mobile-nav-icon{font-size:1.25rem;position:relative;transition:transform .2s ease;z-index:1}.mobile-nav-btn:hover .mobile-nav-icon{transform:scale(1.1)}.mobile-nav-label{font-size:.75rem;line-height:1;position:relative;z-index:1}@media (max-width:1024px){.breadcrumb-nav,.page-title{display:none}.header-container{gap:1.5rem}}@media (max-width:768px){.header-container{gap:1rem;min-height:48px;padding:.5rem 1rem}.header-left{gap:1rem}.header-center{display:none}.header-right{gap:.75rem;justify-content:flex-end}.logo-btn{padding:.375rem .5rem}.logo-btn h1{font-size:1.25rem}.logo-image{height:32px}.user-info{padding:.375rem .75rem}.logout-btn,.session-status,.session-warning,.user-details{display:none}.mobile-nav{display:block}}@media (max-width:480px){.header-container{padding:.5rem .75rem}.logo-btn h1{font-size:1.125rem}.logo-image{height:28px}.user-info{padding:.375rem .5rem}.mobile-nav{padding:.5rem}.mobile-nav-items{gap:.5rem}.mobile-nav-btn{min-width:70px;padding:.5rem .75rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.breadcrumb-item:hover,.logo-btn:hover,.logout-btn:hover,.mobile-nav-btn:hover{transform:none}}@media (prefers-contrast:high){.app-header{border-bottom-width:2px;box-shadow:0 2px 4px #0000004d}.breadcrumb-item,.logout-btn,.page-title,.session-status,.user-info{border-width:2px}.status-indicator{border:2px solid}}@media (prefers-color-scheme:dark){.app-header{background:linear-gradient(135deg,#1e293b,#0f172a);border-bottom-color:#475569cc}.app-header,.logo-btn{color:#f1f5f9}.logo-btn h1{color:#60a5fa}.breadcrumb-nav,.page-title{background:#1e293bcc;border-color:#47556999}.breadcrumb-item{color:#94a3b8}.page-title h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#60a5fa,#a78bfa);-webkit-background-clip:text;background-clip:text;color:#f1f5f9}.user-info{background:linear-gradient(135deg,#1e293be6,#0f172ae6);border-color:#47556999;color:#cbd5e1}.user-name{color:#f1f5f9}.mobile-nav{background:linear-gradient(135deg,#1e293b,#0f172a);border-top-color:#475569cc}.mobile-nav-btn{color:#94a3b8}.mobile-nav-btn:hover{color:#cbd5e1}}.jobs-page{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.jobs-page .page-container{background:linear-gradient(135deg,#f7fafc,#f8f9fa);margin:0 auto;max-width:1400px;min-height:100vh;padding:2rem}.jobs-page .loading-content{background:#fff;border-radius:16px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;margin:3rem auto;max-width:400px;padding:3rem;text-align:center}.jobs-page .loading-spinner{animation:jobsPageSpin 1s linear infinite;border:4px solid #edf2f7;border-radius:50%;border-top-color:#0052cc;height:48px;margin:0 auto 1.5rem;width:48px}@keyframes jobsPageSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.jobs-page .loading-content h2{color:#2d3748;font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.jobs-page .loading-content p{color:#718096;margin:0}.jobs-page .alert{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;display:flex;gap:1rem;margin-bottom:1.5rem;padding:1.5rem}.jobs-page .alert-error{background:#fed7d7;border:1px solid #fc8181;color:#c53030}.jobs-page .alert span:first-child{flex-shrink:0;font-size:1.5rem}.jobs-page .alert strong{display:block;font-weight:600;margin-bottom:.25rem}.jobs-page .alert p{font-size:.9rem;margin:0}.jobs-page .empty-state{background:#fff;border:2px dashed #e2e8f0;border-radius:12px;box-shadow:0 1px 2px 0 #0000000d;margin:3rem auto;max-width:600px;padding:3rem 2rem;text-align:center}.jobs-page .empty-icon{font-size:4rem;margin-bottom:1.5rem;opacity:.6}.jobs-page .empty-state h2{color:#4a5568;font-size:1.5rem;margin-bottom:.5rem}.jobs-page .empty-state p{color:#718096;margin:0}.jobs-page .text-center{text-align:center}.jobs-page .mt-4{margin-top:1.5rem}.jobs-page .mt-3{margin-top:1rem}.jobs-page .jobs-timeline{padding:0 1rem;position:relative}.jobs-page .date-section{margin-bottom:2rem;position:relative}.jobs-page .date-header{align-items:flex-start;display:flex;gap:1rem;margin-bottom:1.5rem}.jobs-page .date-indicator{align-items:center;display:flex;flex-direction:column;position:relative}.jobs-page .date-dot{border-radius:50%;box-shadow:0 0 0 4px var(--bg-light);height:16px;position:relative;width:16px;z-index:2}.jobs-page .date-dot.today{background:var(--primary-gradient);box-shadow:0 0 0 4px #0052cc1a,0 0 20px #0052cc66}.jobs-page .date-dot.yesterday{background:linear-gradient(135deg,#64648b,#475569)}.jobs-page .date-dot.past{background:linear-gradient(135deg,#cbd5e0,#94a3b8)}@keyframes jobsPagePulse{0%{box-shadow:0 0 0 0 #48bb7866}70%{box-shadow:0 0 0 10px #48bb7800}to{box-shadow:0 0 0 0 #48bb7800}}.jobs-page .date-line{background:linear-gradient(180deg,var(--border-light) 0,#0000 100%);height:calc(100% + 2rem);left:7px;position:absolute;top:20px;width:2px}.jobs-page .date-info{color:var(--text-primary);font-size:1.25rem;font-weight:700;margin:0}.jobs-page .date-title{font-size:1.3rem;font-weight:600;margin:0}.jobs-page .job-count{color:var(--text-muted);font-size:.875rem;font-weight:500}.jobs-page .jobs-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));margin-left:30px}.jobs-page .job-card{background:#fff;border:2px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;margin-left:2rem;overflow:hidden;padding:1.5rem;position:relative;transition:all var(--transition-normal)}.jobs-page .job-card:before{background:var(--primary-gradient);content:"";height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity var(--transition-fast);width:4px}.jobs-page .job-card:hover{border-color:var(--primary-blue);box-shadow:var(--shadow-lg);transform:translateX(4px)}.jobs-page .job-card:hover:before{opacity:1}.jobs-page .job-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.jobs-page .job-card:focus{border-color:#0052cc;box-shadow:0 0 0 3px #667eea1a;outline:none}.jobs-page .job-card:active{transform:translateY(0)}.jobs-page .card-header{align-items:flex-start;background:#f9fafb;border-bottom:1px solid #edf2f7;display:flex;justify-content:space-between;padding:1.5rem;position:relative}.jobs-page .job-identifier{color:var(--primary-blue);font-size:1.125rem;font-weight:700;margin:0}.jobs-page .customer-name{color:#2d3748;font-size:1.125rem;font-weight:700;line-height:1.2;margin:0}.jobs-page .job-number{color:#718096;font-size:.9rem;font-weight:500;margin:0}.jobs-page .priority-indicator{font-size:1.2rem;position:absolute;right:.5rem;top:.5rem;z-index:1}.jobs-page .status-badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:.75rem;font-weight:600;gap:.25rem;letter-spacing:.5px;padding:.25rem .75rem;text-transform:uppercase;white-space:nowrap}.jobs-page .status-badge.status-scheduled{background:#e6fffa;border:1px solid #81e6d9;color:#234e52}.jobs-page .status-badge.status-dispatched{background:#fff5e6;border:1px solid #f6ad55;color:#744210}.jobs-page .status-badge.status-working{background:#e6f3ff;border:1px solid #63b3ed;color:#1a365d}.jobs-page .status-badge.status-hold{background:#fef5e7;border:1px solid #f6ad55;color:#744210}.jobs-page .status-badge.status-done{background:#f0fff4;border:1px solid #9ae6b4;color:#22543d}.jobs-page .status-badge.status-canceled{background:#fed7d7;border:1px solid #fc8181;color:#c53030}.jobs-page .status-badge.status-default{background:#f7fafc;border:1px solid #e2e8f0;color:#4a5568}.jobs-page .card-body{padding:1.5rem}.jobs-page .job-info{display:flex;flex-direction:column;gap:.5rem}.jobs-page .job-title{color:#4a5568;font-size:1rem;font-weight:600;line-height:1.3;margin:0}.jobs-page .customer-address{align-items:flex-start;color:#718096;display:flex;font-size:.9rem;gap:.25rem;line-height:1.4}.jobs-page .next-appointment-centered{background:#f7fafc;border:1px solid #edf2f7;border-radius:8px;padding:.5rem;text-align:center}.jobs-page .appointment-time{color:#4a5568;font-size:.9rem;font-weight:500;margin-bottom:.25rem}.jobs-page .appointment-status-badge{border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.25rem .75rem;text-transform:uppercase}.jobs-page .card-footer{align-items:center;background:#f9fafb;border-top:1px solid #edf2f7;display:flex;justify-content:space-between;padding:1rem 1.5rem}.jobs-page .job-metadata{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.jobs-page .job-metadata small{color:#a0aec0;font-size:.8rem}.jobs-page .view-forms-btn{flex-shrink:0}.jobs-page .view-forms-btn .btn{font-size:.85rem;padding:.5rem 1rem;transition:all .2s ease}.jobs-page .job-card:hover .view-forms-btn .btn{background:#003d99;transform:translateX(2px)}.jobs-page .btn{align-items:center;background:#0052cc;border:none;border-radius:8px;box-shadow:0 1px 2px 0 #0000000d;color:#fff;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:.25rem;padding:.5rem 1rem;text-decoration:none;transition:all .2s ease}.jobs-page .btn:hover{background:#003d99;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transform:translateY(-1px)}.jobs-page .btn-primary{background:#0052cc;color:#fff}.jobs-page .btn-sm{font-size:.85rem;padding:.375rem .75rem}@media (max-width:768px){.jobs-page .page-container{padding:1rem}.jobs-page .jobs-grid{grid-template-columns:1fr;margin-left:0}.jobs-page .date-header,.jobs-page .date-info{flex-direction:column;gap:.5rem}.jobs-page .date-info{text-align:center}.jobs-page .date-indicator{display:none}.jobs-page .job-identifier{text-align:left}.jobs-page .customer-name{font-size:1rem}.jobs-page .next-appointment-centered{padding:.25rem}.jobs-page .appointment-time{font-size:.85rem}.jobs-page .card-header{align-items:flex-start;flex-direction:column;gap:.5rem}.jobs-page .status-badge{align-self:flex-start}}:root{--pdf-editor-primary:#1e3a8a;--pdf-editor-success:#28a745;--pdf-editor-warning:#ffc107;--pdf-editor-danger:#dc3545;--pdf-editor-secondary:#6c757d;--pdf-bg-light:#f5f5f5;--pdf-bg-white:#fff;--pdf-border-light:#ddd;--pdf-border-medium:#ccc;--pdf-text-dark:#333;--pdf-text-medium:#666;--pdf-shadow-sm:0 1px 3px #0000001a;--pdf-shadow-md:0 2px 10px #0000001a;--pdf-shadow-popup:0 20px 60px #0000004d;--pdf-transition-fast:0.15s ease;--pdf-radius-sm:4px;--pdf-radius-lg:8px}.pdf-editor-container{align-items:center;background:#f5f5f5;background:var(--pdf-bg-light);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100vh;touch-action:manipulation;-webkit-user-select:none;user-select:none}.pdf-editor-toolbar{background:#fff;background:var(--pdf-bg-white);border-bottom:1px solid #ddd;border-bottom:1px solid var(--pdf-border-light);box-shadow:0 1px 3px #0000001a;box-shadow:var(--pdf-shadow-sm);box-sizing:border-box;padding:10px 20px;touch-action:auto;width:100%}.pdf-editor-toolbar,.toolbar-content{flex-wrap:wrap}.pdf-editor-toolbar,.toolbar-content,.toolbar-controls{align-items:center;display:flex;gap:10px;justify-content:center}.toolbar-controls{margin-left:20px}.pdf-btn{align-items:center;background:#fff;background:var(--pdf-bg-white);border:1px solid #ccc;border:1px solid var(--pdf-border-medium);border-radius:4px;border-radius:var(--pdf-radius-sm);color:#333;color:var(--pdf-text-dark);cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:500;gap:6px;min-height:44px;min-width:44px;padding:8px 12px;touch-action:manipulation;transition:.15s ease;transition:var(--pdf-transition-fast);-webkit-user-select:none;user-select:none;white-space:nowrap}.pdf-btn.form-element{background:#1e3a8a;background:var(--pdf-editor-primary);border-color:#1e3a8a;border-color:var(--pdf-editor-primary);color:#fff}.pdf-btn.form-element:hover:not(:disabled){background:#1e40af;border-color:#1e40af;box-shadow:0 1px 3px #0000001a;box-shadow:var(--pdf-shadow-sm);transform:translateY(-1px)}.pdf-btn.navigation{background:#fff;background:var(--pdf-bg-white);border-color:#ccc;border-color:var(--pdf-border-medium);color:#333;color:var(--pdf-text-dark)}.pdf-btn.navigation:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8;box-shadow:0 1px 3px #0000001a;box-shadow:var(--pdf-shadow-sm);color:#333;color:var(--pdf-text-dark);transform:translateY(-1px)}.pdf-btn.action{background:#dc3545;background:var(--pdf-editor-danger);border-color:#dc3545;border-color:var(--pdf-editor-danger);color:#fff}.pdf-btn.action:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c;box-shadow:0 1px 3px #0000001a;box-shadow:var(--pdf-shadow-sm);transform:translateY(-1px)}.pdf-btn.save{background:#28a745;background:var(--pdf-editor-success);border-color:#28a745;border-color:var(--pdf-editor-success);color:#fff}.pdf-btn.save:hover:not(:disabled){background:#16a34a;border-color:#16a34a;box-shadow:0 1px 3px #0000001a;box-shadow:var(--pdf-shadow-sm);transform:translateY(-1px)}.pdf-btn:active:not(:disabled){transform:translateY(0)}.pdf-btn:disabled{background:#f5f5f5;background:var(--pdf-bg-light);color:#666;color:var(--pdf-text-medium);cursor:not-allowed;opacity:.5}.pdf-btn:disabled:hover{box-shadow:none;transform:none}.page-info{color:#333;color:var(--pdf-text-dark);font-size:14px;font-weight:600;margin:0 5px;white-space:nowrap}.scale-select{background:#fff;background:var(--pdf-bg-white);border:1px solid #ccc;border:1px solid var(--pdf-border-medium);border-radius:4px;border-radius:var(--pdf-radius-sm);cursor:pointer;font-family:inherit;font-size:14px;min-height:44px;padding:6px 8px;touch-action:manipulation}.scale-select:focus{border-color:#1e3a8a;border-color:var(--pdf-editor-primary);box-shadow:0 0 0 2px #1e3a8a33;outline:none}.pdf-canvas-container{align-items:flex-start;cursor:grab;display:flex;flex:1 1;justify-content:center;min-height:0;overflow:auto;padding:20px;position:relative;touch-action:pan-x pan-y;width:100%}.pdf-canvas-container.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.scroll-hint{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;border-radius:20px;box-shadow:0 2px 8px #0003;color:#fff;font-size:12px;font-weight:500;opacity:.8;padding:8px 12px;pointer-events:none;position:absolute;right:20px;top:20px;transition:opacity .3s ease;z-index:1000}.pdf-canvas-container:hover .scroll-hint{opacity:1}.pdf-canvas-container.dragging .scroll-hint{opacity:.5}.pdf-canvas-wrapper{display:inline-block;position:relative;touch-action:auto}.pdf-canvas{background:#fff;border:1px solid #ccc;border:1px solid var(--pdf-border-medium);border-radius:4px;border-radius:var(--pdf-radius-sm);box-shadow:0 2px 10px #0000001a;box-shadow:var(--pdf-shadow-md);display:block;touch-action:pan-x pan-y}.editable-field,.pdf-canvas{cursor:grab;-webkit-user-select:none;user-select:none}.editable-field{background:#0000;border:none;box-sizing:border-box;font-family:Arial,sans-serif;margin:0;outline:none;padding:0 20px 0 0;position:absolute;touch-action:none;z-index:100}.editable-field.selected,.editable-field:hover{border-radius:4px;outline:2px dashed #60a5fa}.editable-field.selected{z-index:1000}.editable-field.dragging{border-radius:4px;cursor:grabbing!important;outline:2px dashed #60a5fa;z-index:1001}.field-input,.field-textarea{-webkit-appearance:none;appearance:none;background:#0000;border:none;box-sizing:border-box;color:inherit;display:block;font-family:Arial,sans-serif;height:auto!important;line-height:1;margin:0;outline:none;padding:0;resize:none;text-align:left;touch-action:manipulation;-webkit-user-select:text;user-select:text;vertical-align:top;width:100%}.field-textarea{word-wrap:break-word;overflow:hidden;overflow-wrap:break-word;white-space:pre-wrap}.field-input::placeholder,.field-textarea::placeholder{color:#60a5fa;opacity:1}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;touch-action:auto;z-index:10000}.modal-dialog{animation:modalAppear .2s ease-out;background:#fff;background:var(--pdf-bg-white);border-radius:8px;border-radius:var(--pdf-radius-lg);box-shadow:0 20px 60px #0000004d;box-shadow:var(--pdf-shadow-popup);max-width:500px;padding:20px;touch-action:auto;width:90%}@keyframes modalAppear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.signature-options-dialog{max-width:400px}.signature-options-title{color:#333;color:var(--pdf-text-dark);font-size:18px;font-weight:600;margin:0 0 10px}.signature-options-subtitle{color:#666;color:var(--pdf-text-medium);font-size:14px;margin:0 0 20px}.signature-options-buttons{display:flex;flex-direction:column;gap:10px;margin:20px 0}.signature-option-btn{align-items:center;border:none;border-radius:4px;border-radius:var(--pdf-radius-sm);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;min-height:48px;padding:12px 16px;touch-action:manipulation;transition:.15s ease;transition:var(--pdf-transition-fast)}.signature-option-btn.use-existing{background-color:#1e3a8a;background-color:var(--pdf-editor-primary);color:#fff}.signature-option-btn.replace{background-color:#dc3545;background-color:var(--pdf-editor-danger);color:#fff}.signature-option-btn.create-new{background-color:#28a745;background-color:var(--pdf-editor-success);color:#fff}.signature-option-btn:hover{box-shadow:0 1px 3px #0000001a;box-shadow:var(--pdf-shadow-sm);transform:translateY(-1px)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.modal-cancel-btn{background-color:#6c757d;background-color:var(--pdf-editor-secondary);border:none;border-radius:4px;border-radius:var(--pdf-radius-sm);color:#fff;cursor:pointer;font-size:14px;min-height:44px;padding:8px 16px;touch-action:manipulation}.signature-dialog-title{color:#333;color:var(--pdf-text-dark);font-size:18px;font-weight:600;margin:0 0 15px;text-align:center}.signature-dialog-subtitle{color:#666;color:var(--pdf-text-medium);font-size:14px;margin:0 0 10px;text-align:center}.signature-canvas{background:#0000;border:1px solid #ccc;border:1px solid var(--pdf-border-medium);border-radius:4px;border-radius:var(--pdf-radius-sm);cursor:crosshair;display:block;margin:10px 0;touch-action:none;-webkit-user-select:none;user-select:none}.signature-actions{display:flex;gap:10px;justify-content:flex-end}.signature-clear-btn{background-color:#ffc107;background-color:var(--pdf-editor-warning);color:#333;color:var(--pdf-text-dark)}.signature-clear-btn,.signature-save-btn{border:none;border-radius:4px;border-radius:var(--pdf-radius-sm);cursor:pointer;min-height:44px;padding:8px 16px;touch-action:manipulation}.signature-save-btn{background-color:#28a745;background-color:var(--pdf-editor-success);color:#fff}.pdf-error,.pdf-loading{align-items:center;display:flex;flex-direction:column;height:100vh;justify-content:center;padding:20px;text-align:center}.pdf-error h3,.pdf-loading h3{color:#333;color:var(--pdf-text-dark);font-size:20px;margin-bottom:15px}.pdf-error p{color:#dc3545;color:var(--pdf-editor-danger);margin-bottom:20px}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #ddd;border-top:4px solid #1e3a8a;border:4px solid var(--pdf-border-light);border-radius:50%;border-top-color:var(--pdf-editor-primary);height:40px;margin-bottom:15px;width:40px}@media (max-width:768px){.pdf-editor-toolbar{flex-direction:column;gap:10px;padding:10px}.toolbar-content,.toolbar-controls{flex-wrap:wrap;gap:8px;justify-content:center;margin-left:0;width:100%}.modal-dialog{margin:15px;width:calc(100% - 30px)}}.attachments-page{background:#f7fafc;display:flex;flex-direction:column;min-height:100vh}.attachments-page .page-container{display:flex;flex:1 1;flex-direction:column;margin:0 auto;max-width:1400px;padding:1.5rem 2rem}.attachments-page .page-header{align-items:center;display:flex;justify-content:flex-start;margin-bottom:1.5rem}.attachments-page .back-btn{align-items:center;background:#fff;border:2px solid #0052cc;border-radius:12px;box-shadow:0 2px 4px #0000000d;color:#0052cc;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}.attachments-page .back-btn:hover{background:linear-gradient(135deg,#0052cc,#003d99);box-shadow:0 4px 20px #0052cc4d;color:#fff;transform:translateX(-4px)}.attachments-page .main-layout{display:flex;flex:1 1;gap:1.5rem;margin-bottom:1.5rem;min-height:0}.attachments-page .customer-info-section{background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;flex:0 0 33%;flex-direction:column;overflow:hidden;position:relative}.attachments-page .customer-info-section:before{background:linear-gradient(135deg,#0052cc,#003d99);content:"";height:4px;left:0;position:absolute;right:0;top:0}.attachments-page .section-header{align-items:center;background:none;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;padding:1.5rem}.attachments-page .section-header h3{align-items:center;color:#2d3748;display:flex;font-size:1.25rem;font-weight:700;gap:.5rem;margin:0}.attachments-page .customer-details{display:flex;flex:1 1;flex-direction:column;gap:1rem;padding:1.5rem}.attachments-page .customer-name{color:#0052cc;font-size:1.5rem;font-weight:700;margin:0}.attachments-page .job-number{align-items:center;color:#4a5568;display:flex;font-size:1rem;gap:1rem;margin:0}.attachments-page .customer-info-grid{grid-gap:1rem;display:grid;gap:1rem;margin-top:.5rem}.attachments-page .info-item{align-items:flex-start;background:#f7fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:.75rem;padding:1rem;transition:all .2s ease}.attachments-page .info-item:hover{background:#edf2f7;box-shadow:0 2px 4px #0000000d;transform:translateY(-1px)}.attachments-page .info-icon{color:#0052cc;font-size:1.25rem;margin-top:.125rem}.attachments-page .info-content{flex:1 1}.attachments-page .info-label{color:#4a5568;font-size:.875rem;font-weight:600;margin-bottom:.25rem}.attachments-page .info-value{color:#1a202c;font-size:1rem;font-weight:500;line-height:1.4}.attachments-page .status-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:.8rem;font-weight:600;gap:.375rem;padding:.375rem .75rem}.attachments-page .status-badge.status-scheduled{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af}.attachments-page .status-badge.status-dispatched{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}.attachments-page .status-badge.status-working{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46}.attachments-page .status-badge.status-done{background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#4338ca}.attachments-page .pdf-forms-section{background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;flex:1 1;flex-direction:column;overflow:hidden;position:relative}.attachments-page .pdf-forms-section:before{background:linear-gradient(135deg,#0052cc,#003d99);content:"";height:4px;left:0;position:absolute;right:0;top:0}.attachments-page .form-tabs{background:#f7fafc;border-bottom:2px solid #e2e8f0;display:flex;margin-top:4px}.attachments-page .tab-btn{background:none;border:none;color:#4a5568;cursor:pointer;flex:1 1;font-size:.95rem;font-weight:600;padding:1rem 1.5rem;position:relative;transition:all .2s ease}.attachments-page .tab-btn:hover{background:#0052cc0d;color:#0052cc}.attachments-page .tab-btn.active{background:#fff;color:#0052cc}.attachments-page .tab-btn.active:after{background:linear-gradient(135deg,#0052cc,#003d99);bottom:-2px;content:"";height:3px;left:0;position:absolute;right:0}.attachments-page .pdf-forms-grid-container{background:#fff;flex:1 1;overflow-x:hidden;overflow-y:auto;padding:1.5rem}.attachments-page .pdf-forms-grid{grid-gap:1rem;display:grid;gap:1rem;grid-auto-rows:minmax(160px,auto);grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.attachments-page .pdf-form-card{align-items:center;background:#f7fafc;border:2px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000d;cursor:pointer;display:flex;flex-direction:column;gap:.75rem;overflow:hidden;padding:1.25rem;position:relative;text-align:center;transition:all .3s ease}.attachments-page .pdf-form-card:hover{background:#fff;border-color:#0052cc;box-shadow:0 4px 12px #0052cc26;transform:translateY(-2px)}.attachments-page .pdf-form-card:hover:before{background:linear-gradient(135deg,#0052cc,#003d99);content:"";height:3px;left:0;position:absolute;right:0;top:0}.attachments-page .pdf-form-card .form-icon{background:#0052cc1a;border-radius:12px;color:#0052cc;font-size:2.5rem;padding:1rem;transition:all .3s ease}.attachments-page .pdf-form-card:hover .form-icon{background:#0052cc26;transform:scale(1.05)}.attachments-page .pdf-form-card .form-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#1a202c;display:-webkit-box;font-size:.95rem;font-weight:600;line-height:1.3;margin:0;overflow:hidden;text-overflow:ellipsis;width:100%}.attachments-page .pdf-form-card .form-meta{color:#718096;display:flex;flex-direction:column;font-size:.75rem;gap:.125rem;margin:0}.attachments-page .pdf-form-card .form-action{background:linear-gradient(135deg,#0052cc,#003d99);border:none;border-radius:8px;box-shadow:0 2px 4px #0052cc33;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;margin-top:auto;padding:.5rem 1rem;transition:all .3s ease;white-space:nowrap}.attachments-page .pdf-form-card .form-action:hover{box-shadow:0 4px 8px #0052cc4d;transform:translateY(-1px)}.attachments-page .bottom-sections{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr;min-height:350px}.attachments-page .forms-section{background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;display:flex;flex-direction:column;overflow:hidden;position:relative}.attachments-page .forms-section .section-header{background:linear-gradient(135deg,#0052cc,#003d99);border-bottom:none;box-shadow:0 2px 4px #0000001a;color:#fff;padding:1.25rem 1.5rem;text-align:center}.attachments-page .forms-section .section-header h3{align-items:center;color:#fff;display:flex;font-size:1.1rem;font-weight:700;gap:.5rem;justify-content:center;margin:0;text-shadow:0 1px 2px #0000001a}.attachments-page .forms-content{background:#fff;display:flex;flex:1 1;flex-direction:column;overflow:hidden;padding:0}.attachments-page .forms-content:has(.empty-state){align-items:center;justify-content:center;padding:2rem}.attachments-page .saved-forms-list,.attachments-page .uploaded-forms-list{display:flex;flex-direction:column;gap:.75rem;max-height:100%;overflow-y:auto;padding:1.5rem}.attachments-page .saved-form-item,.attachments-page .uploaded-form-item{align-items:center;background:#f7fafc;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;display:flex;gap:1rem;justify-content:space-between;padding:1rem 1.25rem;transition:all .3s ease}.attachments-page .saved-form-item:hover,.attachments-page .uploaded-form-item:hover{background:#fff;border-color:#0052cc;box-shadow:0 4px 6px #0052cc1a;transform:translateX(4px)}.attachments-page .form-info{flex:1 1;min-width:0}.attachments-page .form-name{align-items:center;color:#1a202c;display:flex;font-size:.95rem;font-weight:600;gap:.5rem;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachments-page .form-meta{align-items:center;color:#718096;display:flex;font-size:.8rem;gap:.5rem}.attachments-page .form-actions{align-items:center;display:flex;flex-shrink:0;gap:.75rem}.attachments-page .edit-btn,.attachments-page .upload-btn{align-items:center;background:linear-gradient(135deg,#0052cc,#003d99);border:none;border-radius:8px;box-shadow:0 2px 4px #0052cc33;color:#fff;cursor:pointer;display:flex;font-size:.85rem;font-weight:600;gap:.5rem;padding:.5rem 1rem;transition:all .3s ease;white-space:nowrap}.attachments-page .edit-btn:hover,.attachments-page .upload-btn:hover{box-shadow:0 4px 8px #0052cc4d;transform:translateY(-1px)}.attachments-page .status-badge.completed{background:linear-gradient(135deg,#10b981,#059669);border-radius:20px;box-shadow:0 2px 4px #10b9814d;color:#fff;font-size:.75rem;font-weight:600;padding:.375rem .75rem}.attachments-page .empty-state{align-items:center;color:#718096;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:3rem 2rem;text-align:center}.attachments-page .empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.6}.attachments-page .empty-state h4{color:#4a5568;font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.attachments-page .empty-state p{color:#718096;font-size:.9rem;line-height:1.5;margin:0}.attachments-page .loading-content{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:3rem;text-align:center}.attachments-page .loading-spinner{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#0052cc;height:48px;margin:0 auto 1.5rem;width:48px}.attachments-page .loading-content h2{color:#2d3748;font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.attachments-page .loading-content p{color:#718096;font-size:.9rem;margin:0}.attachments-page .error-message{align-items:center;background:linear-gradient(135deg,#fed7d7,#feb2b2);border:1px solid #fc8181;border-radius:12px;color:#c53030;display:flex;gap:1rem;margin:1.5rem 0;padding:1.5rem}@media (max-width:1200px){.attachments-page .pdf-forms-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}@media (max-width:1024px){.attachments-page .main-layout{flex-direction:column;gap:1.5rem}.attachments-page .customer-info-section{flex:1 1;position:static}.attachments-page .bottom-sections{gap:1.5rem;grid-template-columns:1fr}}@media (max-width:768px){.attachments-page .page-container{padding:1rem}.attachments-page .pdf-forms-grid{gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.attachments-page .saved-form-item,.attachments-page .uploaded-form-item{align-items:stretch;flex-direction:column;gap:1rem;text-align:center}.attachments-page .form-actions,.attachments-page .form-meta,.attachments-page .form-name{justify-content:center}}@media (max-width:480px){.attachments-page .pdf-forms-grid{grid-template-columns:1fr}.attachments-page .form-actions{flex-direction:column;width:100%}.attachments-page .edit-btn,.attachments-page .upload-btn{justify-content:center;width:100%}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.documentation-container{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin-bottom:var(--spacing-xl);overflow:hidden}.help-navigation{background:var(--gray-50);border-bottom:1px solid var(--gray-200);display:flex;gap:0;padding:0 var(--spacing-lg)}.help-nav-tab{background:none;border:none;border-bottom:3px solid #0000;color:var(--gray-600);cursor:pointer;font-size:.95rem;font-weight:500;padding:var(--spacing-md) var(--spacing-lg);position:relative;transition:all var(--transition-normal)}.help-nav-tab:hover{background:#0052cc0d;color:var(--gray-800)}.help-nav-tab.active{background:var(--white);border-bottom-color:var(--primary-color);color:var(--primary-color);font-weight:600}.help-section-content{padding:var(--spacing-2xl)}.section-header{align-items:flex-start;border-bottom:2px solid var(--gray-200);display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-lg)}.section-icon{flex-shrink:0;font-size:2.5rem}.section-title h2{color:var(--gray-800);font-size:1.75rem;font-weight:700;margin:0 0 var(--spacing-sm) 0}.section-title p{color:var(--gray-600);font-size:1.1rem;line-height:1.5;margin:0}.content-grid{grid-gap:var(--spacing-xl);display:grid;gap:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.support-card{background:var(--white);border:2px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:all var(--transition-normal)}.support-card:hover{border-color:var(--primary-color);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{align-items:center;background:linear-gradient(135deg,var(--primary-color) 0,var(--primary-dark) 100%);color:var(--white);display:flex;gap:var(--spacing-md);padding:var(--spacing-lg)}.card-icon{font-size:1.5rem}.card-header h3{font-size:1.25rem;font-weight:600;margin:0}.card-content{padding:var(--spacing-lg)}.contact-item{margin-bottom:var(--spacing-lg)}.contact-item:last-child{margin-bottom:0}.contact-item strong{color:var(--gray-800);display:block;font-size:1rem;font-weight:600;margin-bottom:var(--spacing-xs)}.contact-item p{color:var(--gray-600);line-height:1.5;margin:0 0 var(--spacing-xs) 0}.contact-item a{color:var(--primary-color);font-weight:500;text-decoration:none;transition:color var(--transition-normal)}.contact-item a:hover{color:var(--primary-dark);text-decoration:underline}.faq-item{border-bottom:1px solid var(--gray-200);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.faq-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.faq-item h4{color:var(--gray-800);font-size:1.1rem;font-weight:600;margin:0 0 var(--spacing-sm) 0}.faq-item p{color:var(--gray-600);line-height:1.6;margin:0}.tutorial-item{margin-bottom:var(--spacing-xl)}.tutorial-item h4{color:var(--gray-800);font-size:1.2rem;font-weight:600;gap:var(--spacing-sm);margin:0 0 var(--spacing-md) 0}.step-number,.tutorial-item h4{align-items:center;display:flex}.step-number{background:var(--primary-color);border-radius:50%;color:var(--white);flex-shrink:0;font-size:.85rem;font-weight:700;height:24px;justify-content:center;width:24px}.tutorial-steps{list-style:none;margin:0;padding:0}.tutorial-steps li{color:var(--gray-600);line-height:1.6;padding:var(--spacing-sm) 0;padding-left:var(--spacing-xl);position:relative}.tutorial-steps li:before{color:var(--primary-color);content:"•";font-weight:700;left:var(--spacing-md);position:absolute}.api-endpoint{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-md);font-family:var(--font-mono);margin:var(--spacing-md) 0;padding:var(--spacing-md)}.endpoint-method{background:var(--primary-color);border-radius:var(--radius-sm);color:var(--white);display:inline-block;font-size:.8rem;font-weight:600;margin-right:var(--spacing-sm);padding:.25rem .5rem}.endpoint-url{color:var(--gray-800);font-weight:600}.code-block{background:var(--gray-900);border-radius:var(--radius-md);color:var(--gray-100);font-family:var(--font-mono);font-size:.9rem;margin:var(--spacing-md) 0;overflow-x:auto;padding:var(--spacing-md)}.code-block pre{margin:0;white-space:pre-wrap}.version-info{background:linear-gradient(135deg,#e6fffa,#f0fff4);border:1px solid #81e6d9;border-radius:var(--radius-md);margin:var(--spacing-lg) 0;padding:var(--spacing-md)}.version-info h4{color:#234e52;font-size:1rem;margin:0 0 var(--spacing-sm) 0}.version-info p{color:#2d5a27;font-size:.9rem;margin:0}.help-back-btn{align-items:center;background:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--radius-md);color:var(--gray-700);cursor:pointer;display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md);transition:all var(--transition-normal)}.help-back-btn:hover{background:var(--gray-200);border-color:var(--gray-400);transform:translateX(-2px)}@media (max-width:768px){.help-navigation{flex-direction:column;padding:var(--spacing-sm)}.help-nav-tab{border-bottom:none;border-left:3px solid #0000;padding:var(--spacing-sm) var(--spacing-md);text-align:left}.help-nav-tab.active{border-bottom:none;border-left-color:var(--primary-color)}.help-section-content{padding:var(--spacing-lg)}.section-header{flex-direction:column;gap:var(--spacing-md);text-align:center}.content-grid{gap:var(--spacing-lg);grid-template-columns:1fr}.card-header{flex-direction:column;gap:var(--spacing-sm);text-align:center}.tutorial-steps li{padding-left:var(--spacing-lg)}.api-endpoint{overflow-x:auto}.api-endpoint,.code-block{font-size:.8rem}}
/*# sourceMappingURL=main.46ec255c.css.map*/