@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--color-primary: #1E3A5F;--color-primary-hover: #162D4A;--color-primary-active: #0F2035;--color-primary-light: #E8EDF3;--color-primary-dark: #0F1F33;--color-accent: #0D7377;--color-accent-hover: #0A5C5F;--color-accent-light: #E6F4F4;--color-background: #F8FAFC;--color-surface: #FFFFFF;--color-surface-elevated: #FFFFFF;--color-surface-secondary: #F1F5F9;--color-surface-tertiary: #E2E8F0;--color-border: #E2E8F0;--color-border-hover: #CBD5E1;--color-border-focus: var(--color-primary);--color-border-subtle: #F1F5F9;--color-text-primary: #0F172A;--color-text-secondary: #475569;--color-text-tertiary: #64748B;--color-text-muted: #94A3B8;--color-text-inverse: #FFFFFF;--color-success: #059669;--color-success-hover: #047857;--color-success-light: #ECFDF5;--color-success-border: #A7F3D0;--color-warning: #D97706;--color-warning-hover: #B45309;--color-warning-light: #FFFBEB;--color-warning-border: #FDE68A;--color-error: #DC2626;--color-error-hover: #B91C1C;--color-error-light: #FEF2F2;--color-error-border: #FECACA;--color-info: #0284C7;--color-info-hover: #0369A1;--color-info-light: #F0F9FF;--color-info-border: #BAE6FD;--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono: "SF Mono", "Fira Code", "Monaco", "Consolas", monospace;--text-xs: 11px;--text-sm: 13px;--text-base: 14px;--text-md: 15px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 20px;--text-3xl: 24px;--text-4xl: 30px;--text-5xl: 36px;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--tracking-tight: -.025em;--tracking-normal: 0;--tracking-wide: .025em;--tracking-wider: .05em;--tracking-widest: .1em;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--radius-none: 0;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-3xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .08), 0 2px 4px -1px rgba(15, 23, 42, .04);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -2px rgba(15, 23, 42, .04);--shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, .1), 0 10px 10px -5px rgba(15, 23, 42, .04);--shadow-2xl: 0 25px 50px -12px rgba(15, 23, 42, .25);--shadow-primary: 0 4px 14px rgba(30, 58, 95, .25);--shadow-success: 0 4px 14px rgba(5, 150, 105, .25);--shadow-error: 0 4px 14px rgba(220, 38, 38, .25);--ring-width: 3px;--ring-offset: 2px;--ring-color: rgba(30, 58, 95, .2);--transition-fast: .1s ease;--transition-base: .15s ease;--transition-slow: .2s ease;--transition-slower: .3s ease;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--color-text-primary);letter-spacing:var(--tracking-tight)}h1{font-size:var(--text-4xl);font-weight:var(--font-bold)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg);font-weight:var(--font-medium)}h6{font-size:var(--text-base);font-weight:var(--font-medium)}p{margin-bottom:var(--space-4);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.mono{font-family:var(--font-mono);font-size:.9em;letter-spacing:-.02em}small{font-size:var(--text-sm)}strong,b{font-weight:var(--font-semibold)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}a:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset);border-radius:var(--radius-sm)}button{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);line-height:var(--leading-none);cursor:pointer;border:none;background:none;transition:all var(--transition-base)}button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}button:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}input,textarea,select{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-normal);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);width:100%;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:hover,textarea:hover,select:hover{border-color:var(--color-border-hover)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 var(--ring-width) var(--ring-color)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}textarea{resize:vertical;min-height:100px}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-10)}.form-group{margin-bottom:var(--space-5)}.form-label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);margin-bottom:var(--space-2)}.form-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:var(--space-1)}.form-error{font-size:var(--text-xs);color:var(--color-error);margin-top:var(--space-1)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}*{scrollbar-width:thin;scrollbar-color:var(--color-border-hover) transparent}.card-interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.card-header{margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.card-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0}.card-subtitle{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-top:var(--space-1)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-medium);line-height:var(--leading-none);white-space:nowrap;letter-spacing:var(--tracking-wide)}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary)}.badge-accent{background-color:var(--color-accent-light);color:var(--color-accent)}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-error{background-color:var(--color-error-light);color:var(--color-error)}.badge-info{background-color:var(--color-info-light);color:var(--color-info)}.badge-neutral{background-color:var(--color-surface-secondary);color:var(--color-text-secondary)}.badge-pill{border-radius:var(--radius-full);padding:var(--space-1) var(--space-3)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.status-dot-lg{width:10px;height:10px}.status-operational{background-color:var(--color-success)}.status-warning{background-color:var(--color-warning)}.status-critical{background-color:var(--color-error)}.status-pending{background-color:var(--color-text-tertiary)}.status-inactive{background-color:var(--color-text-muted)}.status-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.fade-in{animation:fadeIn .2s var(--ease-out)}.fade-in-up{animation:fadeInUp .3s var(--ease-out)}.slide-in-left{animation:slideInLeft .2s var(--ease-out)}.slide-in-right{animation:slideInRight .2s var(--ease-out)}.scale-in{animation:scaleIn .2s var(--ease-out)}.page-header-content{flex:1}.page-title{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--color-text-primary);margin:0 0 var(--space-2) 0;letter-spacing:var(--tracking-tight)}.page-subtitle{font-size:var(--text-md);color:var(--color-text-tertiary);margin:0;line-height:var(--leading-relaxed)}.page-actions{display:flex;gap:var(--space-3);flex-shrink:0}.section-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--space-2)}.section-title svg{color:var(--color-primary)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16);color:var(--color-text-tertiary);font-size:var(--text-sm);gap:var(--space-4)}.loading-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-8);text-align:center;color:var(--color-text-tertiary)}.empty-state-icon{width:64px;height:64px;margin-bottom:var(--space-5);color:var(--color-text-muted);opacity:.5}.empty-state h3{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.empty-state p{font-size:var(--text-md);max-width:360px;margin:0;line-height:var(--leading-relaxed)}hr{border:none;height:1px;background:var(--color-border);margin:var(--space-6) 0}.divider-vertical{width:1px;height:100%;background:var(--color-border)}table{width:100%;border-collapse:collapse}th{text-align:left;padding:var(--space-4) var(--space-5);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wider);background-color:var(--color-surface-secondary);border-bottom:1px solid var(--color-border)}td{padding:var(--space-4) var(--space-5);font-size:var(--text-sm);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}tbody tr:hover{background-color:var(--color-surface-secondary)}tbody tr:last-child td{border-bottom:none}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1024px){:root{--text-4xl: 28px;--text-3xl: 22px;--text-2xl: 18px}}@media(max-width:768px){:root{--text-4xl: 24px;--text-3xl: 20px;--text-2xl: 17px;--text-xl: 16px;--space-6: 20px;--space-8: 28px}.page-header{flex-direction:column;align-items:stretch;margin-bottom:var(--space-6)}.page-actions{justify-content:flex-start}.page-title{font-size:var(--text-2xl)}.page-subtitle{font-size:var(--text-sm)}}@media(max-width:480px){:root{--text-4xl: 22px;--text-3xl: 18px;--text-2xl: 16px;--space-5: 16px;--space-6: 18px}.card{padding:var(--space-4);border-radius:var(--radius-lg)}}.modal-overlay{position:fixed;inset:0;background-color:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);animation:fadeIn .15s var(--ease-out);padding:var(--space-8)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background-color:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);width:auto;min-width:480px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;animation:modalSlideUp .2s var(--ease-out);overflow:hidden;border:1px solid var(--color-border);z-index:var(--z-modal)}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-content.modal-small{min-width:380px;max-width:440px}.modal-content.modal-large{width:auto;min-width:720px;max-width:90vw;max-height:90vh}.modal-content.modal-full{width:95vw;height:95vh;max-width:1400px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0;background-color:var(--color-surface)}.modal-header-content{flex:1;min-width:0}.modal-title{font-size:var(--text-xl);font-weight:var(--font-semibold);margin:0;color:var(--color-text-primary);line-height:var(--leading-tight)}.modal-subtitle{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-top:var(--space-1)}.modal-close{background:none;border:1px solid var(--color-border);color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-lg);transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:var(--space-4)}.modal-close svg{width:18px;height:18px}.modal-close:hover{background-color:var(--color-surface-secondary);border-color:var(--color-border-hover);color:var(--color-text-primary)}.modal-close:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.modal-body{padding:var(--space-6);flex:1;overflow-y:auto;min-height:0}.modal-body-padded{padding:var(--space-8)}.modal-body-scrollable{overflow-y:auto;max-height:60vh}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-top:1px solid var(--color-border);background-color:var(--color-surface-secondary);flex-shrink:0}.modal-footer-left{justify-content:flex-start}.modal-footer-between{justify-content:space-between}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.form-actions-left{justify-content:flex-start}.form-actions-between{justify-content:space-between}.delete-confirm{text-align:center;padding:var(--space-6) 0}.delete-confirm-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;background-color:var(--color-error-light);color:var(--color-error);border-radius:var(--radius-full);margin-bottom:var(--space-5)}.delete-confirm-icon svg{width:32px;height:32px}.delete-confirm h3{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2)}.delete-confirm p{margin-bottom:var(--space-4);color:var(--color-text-secondary)}.confirm-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--radius-full);margin-bottom:var(--space-5)}.confirm-icon.success{background-color:var(--color-success-light);color:var(--color-success)}.confirm-icon.warning{background-color:var(--color-warning-light);color:var(--color-warning)}.confirm-icon.info{background-color:var(--color-info-light);color:var(--color-info)}.confirm-icon svg{width:32px;height:32px}.modal-section{margin-bottom:var(--space-6)}.modal-section:last-child{margin-bottom:0}.modal-section-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin-bottom:var(--space-4)}.modal-divider{height:1px;background-color:var(--color-border);margin:var(--space-6) 0}@media(max-width:768px){.modal-overlay{padding:var(--space-4);align-items:flex-end}.modal-content{min-width:auto;width:100%;max-width:100%;max-height:95vh;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0}.modal-content.modal-small,.modal-content.modal-large,.modal-content.modal-full{min-width:auto;max-width:100%}.modal-header{padding:var(--space-4) var(--space-5)}.modal-title{font-size:var(--text-lg)}.modal-body,.modal-footer{padding:var(--space-4) var(--space-5)}.form-actions{flex-direction:column}.form-actions .btn{width:100%}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}}@media(max-width:480px){.modal-overlay{padding:0}.modal-content{max-height:100vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.modal-header{padding:var(--space-3) var(--space-4)}.modal-body{padding:var(--space-4)}.modal-footer{padding:var(--space-3) var(--space-4)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius-lg);font-family:var(--font-sans);font-weight:var(--font-medium);font-size:var(--text-sm);line-height:var(--leading-none);transition:all var(--transition-base);white-space:nowrap;cursor:pointer;border:none;text-decoration:none}.btn:focus-visible{outline:var(--ring-width) solid var(--ring-color);outline-offset:var(--ring-offset)}.btn-small{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);border-radius:var(--radius-md);gap:var(--space-1)}.btn-small svg{width:14px;height:14px}.btn-medium{padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}.btn-medium svg{width:16px;height:16px}.btn-large{padding:var(--space-4) var(--space-6);font-size:var(--text-md);border-radius:var(--radius-xl)}.btn-large svg{width:18px;height:18px}.btn-full{width:100%}.btn-icon{display:flex;align-items:center}.btn-icon svg{width:16px;height:16px}.btn-icon-only{padding:var(--space-2);aspect-ratio:1}.btn-icon-only.btn-small{padding:var(--space-1)}.btn-icon-only.btn-large{padding:var(--space-3)}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);box-shadow:var(--shadow-primary);transform:translateY(-1px)}.btn-primary:active:not(:disabled){background-color:var(--color-primary-active);transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-secondary);border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.btn-secondary:active:not(:disabled){background-color:var(--color-surface-tertiary)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background-color:var(--color-surface-secondary);color:var(--color-text-primary)}.btn-ghost:active:not(:disabled){background-color:var(--color-surface-tertiary)}.btn-success{background-color:var(--color-success);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.btn-success:hover:not(:disabled){background-color:var(--color-success-hover);box-shadow:var(--shadow-success);transform:translateY(-1px)}.btn-success:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-warning{background-color:var(--color-warning);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.btn-warning:hover:not(:disabled){background-color:var(--color-warning-hover);transform:translateY(-1px)}.btn-warning:active:not(:disabled){transform:translateY(0)}.btn-danger{background-color:var(--color-error);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.btn-danger:hover:not(:disabled){background-color:var(--color-error-hover);box-shadow:var(--shadow-error);transform:translateY(-1px)}.btn-danger:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-danger-outline{background-color:transparent;color:var(--color-error);border:1px solid var(--color-error)}.btn-danger-outline:hover:not(:disabled){background-color:var(--color-error-light)}.btn-accent{background-color:var(--color-accent);color:var(--color-text-inverse);box-shadow:var(--shadow-sm)}.btn-accent:hover:not(:disabled){background-color:var(--color-accent-hover);transform:translateY(-1px)}.btn-accent:active:not(:disabled){transform:translateY(0)}.btn-link{background-color:transparent;color:var(--color-primary);padding:0;font-weight:var(--font-medium)}.btn-link:hover:not(:disabled){color:var(--color-primary-hover);text-decoration:underline}.btn-filter{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border);font-size:var(--text-sm)}.btn-filter:hover:not(:disabled){background-color:var(--color-surface-secondary);border-color:var(--color-border-hover);color:var(--color-text-primary)}.btn-filter.active{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary);font-weight:var(--font-semibold)}.btn-loading{position:relative;color:transparent!important}.btn-loading:after{content:"";position:absolute;width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-full);animation:spin .8s linear infinite}.btn-primary.btn-loading:after,.btn-success.btn-loading:after,.btn-danger.btn-loading:after,.btn-accent.btn-loading:after{border-color:#ffffff4d;border-top-color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none;transform:none!important;box-shadow:none!important}.btn-group{display:inline-flex;gap:0}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-radius:var(--radius-lg) 0 0 var(--radius-lg)}.btn-group .btn:last-child{border-radius:0 var(--radius-lg) var(--radius-lg) 0}.btn-group .btn-secondary:not(:last-child){border-right:none}@media(max-width:768px){.btn-primary:hover:not(:disabled),.btn-success:hover:not(:disabled),.btn-danger:hover:not(:disabled),.btn-accent:hover:not(:disabled){transform:none}}.profile-form{display:flex;flex-direction:column;gap:var(--space-4)}.profile-section{display:flex;flex-direction:column;gap:var(--space-3)}.profile-section-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);margin:0;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.profile-section-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:calc(var(--space-2) * -1) 0 0 0}.profile-error{padding:var(--space-3);background-color:var(--color-error-light, rgba(239, 68, 68, .1));border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-sm)}.profile-success{padding:var(--space-3);background-color:var(--color-success-light, rgba(34, 197, 94, .1));border:1px solid var(--color-success);border-radius:var(--radius-md);color:var(--color-success);font-size:var(--font-size-sm)}.profile-info{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background-color:var(--color-surface);border-radius:var(--radius-sm)}.profile-info-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.profile-info-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:500;text-transform:capitalize}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.layout{display:flex;min-height:100vh;background-color:var(--color-background)}@keyframes slideInFromLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeInUp{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.layout.animate-entrance .sidebar{animation:slideInFromLeft .3s var(--ease-out) forwards}.layout.animate-entrance .nav-link{opacity:0;animation:fadeInUp .2s var(--ease-out) forwards}.layout.animate-entrance .main-content{animation:fadeInUp .3s var(--ease-out) forwards}@keyframes slideOutToRight{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.layout.animate-exit{animation:slideOutToRight .3s var(--ease-in) forwards}.sidebar{width:260px;background-color:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;height:100vh;left:0;top:0;z-index:var(--z-fixed)}.sidebar-header{padding:var(--space-6) var(--space-5);border-bottom:1px solid var(--color-border);background-color:var(--color-surface)}.sidebar-logo{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-primary);margin:0;letter-spacing:var(--tracking-tight);display:flex;align-items:center;gap:var(--space-2)}.sidebar-logo-icon{width:28px;height:28px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--text-sm);font-weight:var(--font-bold)}.sidebar-nav{flex:1;padding:var(--space-4) var(--space-3);overflow-y:auto}.nav-section{margin-bottom:var(--space-4)}.nav-section-title{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-1)}.nav-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--color-text-secondary);border-radius:var(--radius-lg);transition:all var(--transition-fast);font-size:var(--text-sm);font-weight:var(--font-medium);margin-bottom:var(--space-1);text-decoration:none;position:relative}.nav-link svg{width:20px;height:20px;flex-shrink:0;opacity:.7;transition:opacity var(--transition-fast)}.nav-link:hover{background-color:var(--color-surface-secondary);color:var(--color-text-primary)}.nav-link:hover svg{opacity:1}.nav-link.active{background-color:var(--color-primary-light);color:var(--color-primary);font-weight:var(--font-semibold)}.nav-link.active svg{opacity:1;color:var(--color-primary)}.nav-link.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:24px;background-color:var(--color-primary);border-radius:0 var(--radius-full) var(--radius-full) 0}.nav-badge{margin-left:auto;background-color:var(--color-error);color:#fff;font-size:var(--text-xs);font-weight:var(--font-semibold);padding:2px 6px;border-radius:var(--radius-full);min-width:18px;text-align:center}.sidebar-footer{padding:var(--space-4);border-top:1px solid var(--color-border);background-color:var(--color-surface)}.user-section{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background-color:var(--color-surface-secondary);border-radius:var(--radius-lg)}.user-profile-btn{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0;padding:var(--space-1);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all var(--transition-fast)}.user-profile-btn:hover{background-color:var(--color-surface-tertiary)}.user-avatar{width:38px;height:38px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:var(--font-semibold);font-size:var(--text-sm);flex-shrink:0;box-shadow:var(--shadow-sm)}.user-details{flex:1;min-width:0;line-height:1.4}.user-name{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:capitalize}.logout-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background-color:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.logout-btn svg{width:16px;height:16px}.logout-btn:hover{background-color:var(--color-error-light);border-color:var(--color-error);color:var(--color-error)}.main-content{flex:1;margin-left:260px;min-height:100vh;background-color:var(--color-background)}.content-wrapper{padding:var(--space-8);max-width:1440px;margin:0 auto}.page-header-left{flex:1;min-width:0}.page-header-right{display:flex;gap:var(--space-3);flex-shrink:0}@media(max-width:1024px){.sidebar{width:240px}.main-content{margin-left:240px}.content-wrapper{padding:var(--space-6)}}@media(max-width:768px){.sidebar{width:72px}.sidebar-header{padding:var(--space-4) var(--space-3);text-align:center}.sidebar-logo{font-size:var(--text-xs);justify-content:center}.sidebar-logo span{display:none}.sidebar-logo-icon{width:32px;height:32px}.sidebar-nav{padding:var(--space-3) var(--space-2)}.nav-section-title{display:none}.nav-link{justify-content:center;padding:var(--space-3);margin-bottom:var(--space-1)}.nav-link svg{width:22px;height:22px}.nav-link span{display:none}.nav-link.active:before{width:2px;height:20px}.nav-badge{position:absolute;top:var(--space-1);right:var(--space-2);padding:1px 4px;font-size:9px;min-width:14px}.user-section{flex-direction:column;padding:var(--space-2);gap:var(--space-2);background:transparent}.user-profile-btn{justify-content:center;padding:var(--space-2)}.user-details{display:none}.user-avatar{width:36px;height:36px;font-size:var(--text-xs)}.logout-btn{width:100%;height:38px;border-radius:var(--radius-lg)}.sidebar-footer{padding:var(--space-3) var(--space-2)}.main-content{margin-left:72px}.content-wrapper{padding:var(--space-4) var(--space-3)}.page-header{flex-direction:column;align-items:stretch;gap:var(--space-3);margin-bottom:var(--space-5)}.page-header-right{justify-content:flex-start}}@media(max-width:480px){.sidebar{width:64px}.main-content{margin-left:64px}.content-wrapper{padding:var(--space-3)}.page-header{margin-bottom:var(--space-4)}.nav-link{padding:var(--space-2)}.nav-link svg{width:20px;height:20px}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-background) 0%,var(--color-surface-tertiary) 100%);padding:var(--space-6);position:relative}.login-page:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 25% 25%,rgba(30,58,95,.03) 0%,transparent 50%),radial-gradient(circle at 75% 75%,rgba(13,115,119,.03) 0%,transparent 50%);pointer-events:none}.login-card{background-color:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl),0 0 0 1px var(--color-border);width:100%;max-width:440px;overflow:hidden;animation:scaleIn .3s var(--ease-out);position:relative;z-index:1}.login-header{padding:var(--space-10) var(--space-10) var(--space-8);text-align:center;background-color:var(--color-surface)}.login-logo{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);border-radius:var(--radius-xl);margin-bottom:var(--space-5);box-shadow:var(--shadow-primary)}.login-logo svg{width:28px;height:28px;color:#fff}.login-title{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--color-text-primary);margin:0 0 var(--space-2);letter-spacing:var(--tracking-tight)}.login-subtitle{font-size:var(--text-md);color:var(--color-text-tertiary);margin:0;line-height:var(--leading-relaxed)}.login-form{padding:0 var(--space-10) var(--space-10)}.login-error{display:flex;align-items:flex-start;gap:var(--space-3);background-color:var(--color-error-light);border:1px solid var(--color-error-border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-6);color:var(--color-error);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.login-error svg{flex-shrink:0;width:18px;height:18px;margin-top:1px}.login-field{margin-bottom:var(--space-5)}.login-field label{display:block;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);margin-bottom:var(--space-2)}.login-field input{width:100%;padding:var(--space-4);font-size:var(--text-md);font-family:var(--font-sans);border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-sizing:border-box}.login-field input:hover{border-color:var(--color-border-hover)}.login-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 var(--ring-width) var(--ring-color)}.login-field input::placeholder{color:var(--color-text-muted)}.login-field-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.login-field-header label{margin-bottom:0}.login-forgot{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}.login-forgot:hover{color:var(--color-primary-hover)}.login-button{width:100%;padding:var(--space-4) var(--space-6);font-size:var(--text-md);font-weight:var(--font-semibold);font-family:var(--font-sans);color:var(--color-text-inverse);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);margin-top:var(--space-6);box-shadow:var(--shadow-primary)}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #1e3a5f59}.login-button:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-primary)}.login-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.login-button-loading{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.login-button-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:var(--radius-full);animation:spin .8s linear infinite}.reset-icon,.success-icon,.error-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:var(--radius-full);margin-bottom:var(--space-5)}.reset-icon{background-color:var(--color-primary-light);color:var(--color-primary)}.success-icon{background-color:var(--color-success-light);color:var(--color-success)}.error-icon{background-color:var(--color-error-light);color:var(--color-error)}.reset-icon svg,.success-icon svg,.error-icon svg{width:36px;height:36px}.reset-instructions{background-color:var(--color-surface-secondary);padding:var(--space-4);border-radius:var(--radius-lg);margin-bottom:var(--space-5);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.reset-instructions p{margin:0}.reset-instructions p+p{margin-top:var(--space-2)}.back-to-login{display:flex;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--font-medium);text-decoration:none;margin-top:var(--space-5);transition:color var(--transition-fast)}.back-to-login:hover{color:var(--color-primary-hover)}.back-to-login svg{width:16px;height:16px}@media(max-width:480px){.login-page{padding:var(--space-4);align-items:flex-start;padding-top:var(--space-12)}.login-card{max-width:100%;border-radius:var(--radius-xl)}.login-header{padding:var(--space-8) var(--space-5) var(--space-6)}.login-logo{width:48px;height:48px;margin-bottom:var(--space-4)}.login-logo svg{width:24px;height:24px}.login-form{padding:0 var(--space-5) var(--space-8)}.login-title{font-size:var(--text-2xl)}.login-subtitle{font-size:var(--text-sm)}.login-field{margin-bottom:var(--space-4)}.login-field label{font-size:var(--text-sm)}.login-field input{padding:var(--space-3) var(--space-4);font-size:16px}.login-button{padding:var(--space-4);font-size:var(--text-md);margin-top:var(--space-5)}.login-button:hover:not(:disabled){transform:none;box-shadow:var(--shadow-primary)}.login-forgot{font-size:var(--text-xs)}.login-error{padding:var(--space-3);font-size:var(--text-sm);margin-bottom:var(--space-4)}.reset-icon,.success-icon,.error-icon{width:64px;height:64px}.reset-icon svg,.success-icon svg,.error-icon svg{width:28px;height:28px}}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.card:hover{border-color:var(--color-border-hover)}.card-hoverable{cursor:pointer}.card-hoverable:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);transition:all var(--transition-base)}.card-elevated{box-shadow:var(--shadow-sm);border-color:transparent}.card-elevated:hover{box-shadow:var(--shadow-lg)}.card-flat{border:none;background-color:var(--color-surface-secondary)}.card-outlined{box-shadow:none}.card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border)}.card-header-left{flex:1;min-width:0}.card-header-right{flex-shrink:0;display:flex;align-items:center;gap:var(--space-2)}.card-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin:0;line-height:var(--leading-tight)}.card-subtitle{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-top:var(--space-1);line-height:var(--leading-relaxed)}.card-content{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.card-footer{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.card-footer-actions{display:flex;gap:var(--space-2)}.stat-card{text-align:left;padding:var(--space-5)}.stat-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.stat-card-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-xl);background-color:var(--color-primary-light);color:var(--color-primary);flex-shrink:0}.stat-card-icon svg{width:24px;height:24px}.stat-card-icon.success{background-color:var(--color-success-light);color:var(--color-success)}.stat-card-icon.warning{background-color:var(--color-warning-light);color:var(--color-warning)}.stat-card-icon.error{background-color:var(--color-error-light);color:var(--color-error)}.stat-card-icon.info{background-color:var(--color-info-light);color:var(--color-info)}.stat-value{font-size:var(--text-4xl);font-weight:var(--font-bold);color:var(--color-text-primary);line-height:var(--leading-none);margin-bottom:var(--space-2);letter-spacing:var(--tracking-tight)}.stat-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.stat-trend{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:var(--font-medium);margin-top:var(--space-2)}.stat-trend.positive{color:var(--color-success)}.stat-trend.negative{color:var(--color-error)}.stat-trend svg{width:14px;height:14px}.card-grid{display:grid;gap:var(--space-5)}.card-grid-2{grid-template-columns:repeat(2,1fr)}.card-grid-3{grid-template-columns:repeat(3,1fr)}.card-grid-4{grid-template-columns:repeat(4,1fr)}.card-grid-auto{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.card-list{display:flex;flex-direction:column;gap:var(--space-4)}.card-list-item{padding:var(--space-5)}.card-list-item-content{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.card-list-item-info{flex:1;min-width:0}.card-list-item-actions{flex-shrink:0;display:flex;gap:var(--space-2)}.card-accent{border-left:3px solid var(--color-primary)}.card-accent.success{border-left-color:var(--color-success)}.card-accent.warning{border-left-color:var(--color-warning)}.card-accent.error{border-left-color:var(--color-error)}@media(max-width:1024px){.card-grid-4,.card-grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.card{padding:var(--space-4);border-radius:var(--radius-lg)}.card-header{flex-direction:column;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-4)}.card-header-right{width:100%;justify-content:flex-start}.card-title{font-size:var(--text-md)}.card-grid-2,.card-grid-3,.card-grid-4{grid-template-columns:1fr}.stat-value{font-size:var(--text-3xl)}.stat-card-icon{width:40px;height:40px}.stat-card-icon svg{width:20px;height:20px}.card-hoverable:hover{transform:none}}@media(max-width:480px){.card{padding:var(--space-3)}.card-footer{flex-direction:column;align-items:stretch}.card-footer-actions{justify-content:flex-start}}.asset-detail{display:flex;flex-direction:column;gap:var(--space-4)}.asset-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.asset-detail-title{font-size:var(--font-size-xl);font-weight:600;margin:0;color:var(--color-text-primary)}.asset-detail-info{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.asset-info-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);background-color:var(--color-surface);border-radius:var(--radius-sm)}.asset-info-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.asset-info-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:500;text-align:right}.asset-edit-section,.asset-maintenance-section,.asset-notes-section{padding:var(--space-4);background-color:var(--color-surface);border-radius:var(--radius-md)}.asset-edit-section h4,.asset-maintenance-section h4,.asset-notes-section h4{font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin:0 0 var(--space-3) 0}.asset-edit-section .form-group{margin-bottom:var(--space-3)}.asset-edit-section .form-group:last-child{margin-bottom:0}.asset-edit-section .form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.asset-edit-section label{display:block;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.asset-edit-section select,.asset-edit-section input,.asset-edit-section textarea{width:100%;padding:var(--space-2) var(--space-3);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm)}.asset-edit-section select:focus,.asset-edit-section input:focus,.asset-edit-section textarea:focus{outline:none;border-color:var(--color-primary)}.asset-edit-section textarea{resize:vertical}.asset-maintenance-section .asset-info-row{background-color:var(--color-bg)}.asset-notes-section p{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6;margin:0}.asset-detail-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.asset-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4)}.asset-tab{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:none;border:none;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s ease}.asset-tab:hover{color:var(--color-text-primary)}.asset-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 var(--space-1);font-size:var(--font-size-xs);font-weight:600;background-color:var(--color-primary);color:#fff;border-radius:9px}.certificates-section{display:flex;flex-direction:column;gap:var(--space-3)}.certificates-header{display:flex;justify-content:space-between;align-items:center}.certificates-header h4{font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin:0}.certificates-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);color:var(--color-text-tertiary);text-align:center;background-color:var(--color-surface);border-radius:var(--radius-md);gap:var(--space-3)}.certificates-empty svg{opacity:.5}.certificates-empty p{margin:0;font-size:var(--font-size-sm)}.certificates-list{display:flex;flex-direction:column;gap:var(--space-3)}.certificate-item{padding:var(--space-3);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all .2s ease}.certificate-item.expiring{border-color:var(--color-warning);background-color:rgba(var(--color-warning-rgb),.05)}.certificate-item.expired{border-color:var(--color-error);background-color:rgba(var(--color-error-rgb),.05)}.cert-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.cert-item-title{display:flex;align-items:center;gap:var(--space-2);font-weight:500;color:var(--color-text-primary)}.cert-item-title svg{color:var(--color-text-tertiary)}.cert-status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px var(--space-2);font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-full)}.cert-status-badge.valid{background-color:var(--color-success-light);color:var(--color-success)}.cert-status-badge.expiring{background-color:var(--color-warning-light);color:var(--color-warning)}.cert-status-badge.expired{background-color:var(--color-error-light);color:var(--color-error)}.cert-item-actions{display:flex;gap:var(--space-1)}.cert-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.cert-action-btn:hover{background-color:var(--color-surface);border-color:var(--color-border-hover);color:var(--color-text-primary)}.cert-action-btn.danger:hover{background-color:var(--color-error-light);border-color:var(--color-error);color:var(--color-error)}.cert-item-details{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.cert-detail{display:flex;flex-direction:column;gap:2px}.cert-detail-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.cert-detail-value{font-size:var(--font-size-sm);color:var(--color-text-primary)}.cert-item-notes{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.cert-item-notes p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0 0;line-height:1.5}.cert-form{padding:var(--space-4);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3)}.cert-form h5{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--space-3) 0}.cert-form .form-group{margin-bottom:var(--space-3)}.cert-form .form-group:last-of-type{margin-bottom:0}.cert-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-bottom:var(--space-3)}.cert-form label{display:block;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.cert-form select,.cert-form input,.cert-form textarea{width:100%;padding:var(--space-2) var(--space-3);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm)}.cert-form select:focus,.cert-form input:focus,.cert-form textarea:focus{outline:none;border-color:var(--color-primary)}.cert-form-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.document-preview{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-2)}.document-preview.existing{background-color:var(--color-success-light);border-color:var(--color-success)}.document-name{flex:1;font-size:var(--font-size-sm);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remove-document{display:flex;align-items:center;justify-content:center;width:22px;height:22px;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:all .2s ease}.remove-document:hover{background-color:var(--color-error-light);color:var(--color-error)}.view-document{display:flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--color-success);text-decoration:none;transition:opacity .2s ease}.view-document:hover{opacity:.7}.document-input{font-size:var(--font-size-sm);padding:var(--space-2)}.document-input::file-selector-button{padding:var(--space-2) var(--space-3);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;margin-right:var(--space-3);transition:background-color .2s ease}.document-input::file-selector-button:hover{background-color:var(--color-primary-hover)}.cert-item-document{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.document-link{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background-color:var(--color-primary-light);color:var(--color-primary);text-decoration:none;font-size:var(--font-size-sm);font-weight:500;border-radius:var(--radius-sm);transition:all .2s ease}.document-link:hover{background-color:var(--color-primary);color:#fff}.document-link span{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){.asset-detail-header{flex-direction:column;gap:var(--space-2)}.asset-detail-info,.asset-edit-section .form-row,.cert-form .form-row,.cert-item-details{grid-template-columns:1fr}.asset-detail-footer{flex-direction:column}.asset-detail-footer .btn{width:100%}.certificates-header{flex-direction:column;align-items:flex-start;gap:var(--space-2)}}.dashboard{animation:fadeIn .25s var(--ease-out)}.welcome-banner{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);border-radius:var(--radius-2xl);padding:var(--space-8) var(--space-8);margin-bottom:var(--space-8);color:var(--color-text-inverse);position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-primary)}.welcome-pets{width:180px;height:auto;position:absolute;bottom:-10px;right:var(--space-4);z-index:1;flex-shrink:0;opacity:.9}.welcome-banner:before{content:"";position:absolute;top:-50%;right:-20%;width:400px;height:400px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);border-radius:var(--radius-full)}.welcome-banner:after{content:"";position:absolute;bottom:-30%;left:-10%;width:300px;height:300px;background:radial-gradient(circle,rgba(255,255,255,.05) 0%,transparent 70%);border-radius:var(--radius-full)}.welcome-content{position:relative;z-index:2}.welcome-greeting{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-3)}.greeting-icon{color:#ffffffe6;flex-shrink:0}.greeting-icon svg{width:28px;height:28px}.welcome-text{display:flex;flex-direction:column;gap:var(--space-1)}.welcome-title{font-size:var(--text-3xl);font-weight:var(--font-bold);margin:0;color:#fff;letter-spacing:var(--tracking-tight)}.welcome-date{font-size:var(--text-sm);color:#ffffffbf;margin:0;font-weight:var(--font-medium)}.welcome-subtitle{font-size:var(--text-md);color:#ffffffd9;margin:0;margin-top:var(--space-2);line-height:var(--leading-relaxed)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-5);margin-bottom:var(--space-8)}.stat-card{display:flex;gap:var(--space-5);padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);transition:all var(--transition-base)}.stat-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.stat-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--radius-xl);background-color:var(--color-primary-light);color:var(--color-primary);flex-shrink:0}.stat-icon svg{width:26px;height:26px}.stat-card-primary .stat-icon{background-color:var(--color-primary-light);color:var(--color-primary)}.stat-card-success .stat-icon{background-color:var(--color-success-light);color:var(--color-success)}.stat-card-warning .stat-icon{background-color:var(--color-warning-light);color:var(--color-warning)}.stat-card-error .stat-icon{background-color:var(--color-error-light);color:var(--color-error)}.stat-content{flex:1}.stat-label{font-size:var(--text-xs);color:var(--color-text-tertiary);font-weight:var(--font-semibold);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.stat-value{font-size:var(--text-4xl);font-weight:var(--font-bold);color:var(--color-text-primary);line-height:var(--leading-none);letter-spacing:var(--tracking-tight)}.stat-trend{font-size:var(--text-sm);color:var(--color-success);font-weight:var(--font-medium);margin-top:var(--space-2);display:inline-flex;align-items:center;gap:var(--space-1)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5);gap:var(--space-4)}.section-title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text-primary);display:flex;align-items:center;gap:var(--space-3)}.section-title svg{color:var(--color-primary);width:22px;height:22px}.todays-schedule-section{margin-bottom:var(--space-8)}.todays-schedule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-5)}.schedule-column{display:flex;flex-direction:column;gap:var(--space-4)}.schedule-column-header{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wider);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.schedule-column-header svg{color:var(--color-primary);width:18px;height:18px}.schedule-items{display:flex;flex-direction:column;gap:var(--space-3)}.schedule-item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);text-decoration:none;transition:all var(--transition-base)}.schedule-item:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.schedule-item-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.schedule-item-id{font-size:var(--text-xs);color:var(--color-text-muted);font-family:var(--font-mono);font-weight:var(--font-medium)}.schedule-item-title{font-size:var(--text-md);font-weight:var(--font-medium);color:var(--color-text-primary);margin:0;line-height:var(--leading-snug)}.schedule-item-meta{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2)}.schedule-item-vendor{font-size:var(--text-sm);color:var(--color-text-tertiary)}.schedule-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10) var(--space-5);color:var(--color-text-muted);text-align:center}.schedule-empty-icon{margin-bottom:var(--space-4);opacity:.4}.schedule-empty-icon svg{width:40px;height:40px}.schedule-empty p{margin:0;font-size:var(--text-sm)}.expiring-certs-section{margin-bottom:var(--space-8)}.expiring-certs-section .card-header .card-title{display:flex;align-items:center;gap:var(--space-2)}.section-icon.warning{color:var(--color-warning)}.expiring-certs-list{display:flex;flex-direction:column;gap:var(--space-3)}.expiring-cert-item{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);transition:all var(--transition-base);text-decoration:none;cursor:pointer}.expiring-cert-item:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.expiring-cert-item.expiring{border-left:3px solid var(--color-warning)}.expiring-cert-item.expired{border-left:3px solid var(--color-error)}.expiring-cert-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-lg);background-color:var(--color-warning-light);color:var(--color-warning);flex-shrink:0}.expiring-cert-icon svg{width:22px;height:22px}.expiring-cert-item.expired .expiring-cert-icon{background-color:var(--color-error-light);color:var(--color-error)}.expiring-cert-content{flex:1;min-width:0}.expiring-cert-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap}.expiring-cert-title{font-size:var(--text-md);font-weight:var(--font-medium);color:var(--color-text-primary);margin:0}.expiring-cert-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full)}.expiring-cert-badge.expiring{background-color:var(--color-warning-light);color:var(--color-warning)}.expiring-cert-badge.expired{background-color:var(--color-error-light);color:var(--color-error)}.expiring-cert-asset{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-2) 0}.expiring-cert-details{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.approvals-section{margin-bottom:var(--space-8)}.approval-list{display:flex;flex-direction:column;gap:var(--space-3)}.approval-item{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);transition:all var(--transition-base)}.approval-item:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.approval-item-header{display:flex;align-items:center;gap:var(--space-3)}.approval-id{font-size:var(--text-xs);color:var(--color-text-muted);font-family:var(--font-mono);font-weight:var(--font-medium)}.approval-title{font-size:var(--text-md);font-weight:var(--font-medium);color:var(--color-text-primary);margin:0}.approval-description{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.approval-meta{display:flex;align-items:center;gap:var(--space-5);font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-2)}.approval-meta strong{color:var(--color-text-muted);font-weight:var(--font-medium);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.approval-requester,.approval-cost{display:flex;align-items:center;gap:var(--space-3)}.work-orders-section{margin-bottom:var(--space-8)}.work-order-table{overflow-x:auto}.work-order-table table{width:100%;border-collapse:collapse}.work-order-table th{text-align:left;padding:var(--space-4) var(--space-5);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wider);border-bottom:1px solid var(--color-border);background-color:var(--color-surface-secondary)}.work-order-table td{padding:var(--space-4) var(--space-5);font-size:var(--text-sm);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.work-order-table tbody tr:hover{background-color:var(--color-surface-secondary)}.work-order-title{color:var(--color-text-primary);font-weight:var(--font-medium)}@media(max-width:1024px){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.welcome-pets{display:none}.welcome-banner{padding:var(--space-5) var(--space-4);margin-bottom:var(--space-5);border-radius:var(--radius-xl)}.welcome-greeting{gap:var(--space-3);margin-bottom:var(--space-2)}.greeting-icon svg{width:24px;height:24px}.welcome-title{font-size:var(--text-xl)}.welcome-subtitle{font-size:var(--text-sm)}.welcome-date{font-size:var(--text-xs)}.stat-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-3);margin-bottom:var(--space-5)}.stat-card{padding:var(--space-4);gap:var(--space-3)}.stat-icon{width:40px;height:40px;border-radius:var(--radius-lg)}.stat-icon svg{width:20px;height:20px}.stat-label{font-size:9px;margin-bottom:var(--space-1)}.stat-value{font-size:var(--text-2xl)}.section-header{margin-bottom:var(--space-4)}.section-title{font-size:var(--text-lg)}.section-title svg{width:18px;height:18px}.todays-schedule-section{margin-bottom:var(--space-5)}.todays-schedule-grid{grid-template-columns:1fr;gap:var(--space-4)}.schedule-column-header{font-size:10px;padding-bottom:var(--space-3)}.schedule-item{padding:var(--space-4)}.schedule-item:hover{transform:none}.schedule-item-title{font-size:var(--text-sm)}.expiring-certs-section{margin-bottom:var(--space-5)}.expiring-cert-item{flex-direction:row;gap:var(--space-3);padding:var(--space-4)}.expiring-cert-item:hover{transform:none}.expiring-cert-icon{width:36px;height:36px}.expiring-cert-icon svg{width:18px;height:18px}.expiring-cert-title{font-size:var(--text-sm)}.expiring-cert-badge{font-size:10px;padding:2px var(--space-2)}.approval-item{flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-4)}.approval-item:hover{transform:none}.approval-title,.approval-description{font-size:var(--text-sm)}.approval-meta{gap:var(--space-3);font-size:var(--text-xs)}.work-order-table{font-size:var(--text-xs)}.work-order-table th,.work-order-table td{padding:var(--space-3) var(--space-2)}}@media(max-width:480px){.stat-grid{grid-template-columns:1fr}.stat-card{flex-direction:row;align-items:center}.expiring-cert-item .btn{align-self:flex-start}.welcome-banner{padding:var(--space-4)}.welcome-title{font-size:var(--text-lg)}}.photo-upload{display:flex;flex-direction:column;gap:var(--space-3)}.photo-upload-header{display:flex;justify-content:space-between;align-items:center}.photo-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-secondary)}.photo-actions{display:flex;gap:var(--space-2)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:var(--space-2)}.photo-item{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-tertiary)}.photo-item img{width:100%;height:100%;object-fit:cover}.photo-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:#000000b3;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.photo-item:hover .photo-remove{opacity:1}.photo-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);border:2px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.qr-modal .modal-body{text-align:center;padding:var(--space-6)}.qr-code-wrapper{display:inline-flex;padding:var(--space-4);background:#fff;border-radius:var(--radius-lg);margin-bottom:var(--space-4)}.qr-instructions{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-4)}.qr-photos-count{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-primary)}.qr-photos-count .spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.create-work-order-page{animation:fadeIn .4s ease-out}.page-header{margin-bottom:var(--space-6)}.create-work-order-card{max-width:900px}.work-order-form{display:flex;flex-direction:column;gap:var(--space-6)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group.full-width{grid-column:1 / -1}.form-group label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-primary)}.required{color:var(--color-error)}.form-group input,.form-group select,.form-group textarea{width:100%}.form-group textarea{resize:vertical;min-height:100px;font-family:var(--font-sans)}.form-section{padding:var(--space-4);background-color:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border)}.form-section h4{font-size:var(--font-size-base);margin-bottom:var(--space-3);color:var(--color-text-primary)}.section-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin:0 0 var(--space-3) 0}.checkbox-group{display:flex;flex-direction:column;gap:var(--space-3)}.checkbox-label{display:flex;align-items:center;gap:var(--space-3);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-label span{-webkit-user-select:none;user-select:none}.approval-notice{padding:var(--space-4);background-color:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-md)}.approval-notice strong{display:block;color:var(--color-warning);margin-bottom:var(--space-2);font-size:var(--font-size-sm)}.approval-notice p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.error-message{padding:var(--space-4);background-color:var(--color-error-light);border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-sm);margin-bottom:var(--space-4)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.work-order-form-modal{gap:var(--space-4)}.work-order-form-modal .form-row{gap:var(--space-3)}.work-order-form-modal .form-group{gap:var(--space-1)}.work-order-form-modal textarea{min-height:60px}.modal-form-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-6)}.modal-form-left,.modal-form-right{display:flex;flex-direction:column;gap:var(--space-4)}.form-section.compact{padding:var(--space-3)}.form-section.compact h4{font-size:var(--font-size-sm);margin-bottom:var(--space-2)}.checkbox-group.vertical{gap:var(--space-2)}.checkbox-group.vertical .checkbox-label{font-size:var(--font-size-xs)}.approval-notice.compact{padding:var(--space-3)}.approval-notice.compact strong{font-size:var(--font-size-xs);margin-bottom:var(--space-1)}.approval-notice.compact p{font-size:var(--font-size-xs)}.recurring-options{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-2)}.recurring-options label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.recurring-options select{padding:var(--space-2);font-size:var(--font-size-xs);border-radius:var(--radius-sm)}.image-upload-area{display:flex;flex-direction:column;gap:var(--space-3)}.upload-button{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3);background-color:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:all .2s ease}.upload-button:hover{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-light)}.image-preview-list{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.image-preview-item{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border)}.image-preview-item img{width:100%;height:100%;object-fit:cover}.remove-image-btn{position:absolute;top:2px;right:2px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background-color:var(--color-error);color:#fff;border:none;border-radius:50%;cursor:pointer;opacity:.9;transition:opacity .2s ease}.remove-image-btn:hover{opacity:1}.no-images-text{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4);color:var(--color-text-tertiary);font-size:var(--font-size-xs)}@media(max-width:768px){.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions button{width:100%}.modal-form-grid{grid-template-columns:1fr}.image-preview-list{grid-template-columns:repeat(4,1fr)}.schedule-row{grid-template-columns:1fr 1fr}}.schedule-row{grid-template-columns:repeat(4,1fr)}.schedule-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.schedule-grid .form-group{gap:var(--space-1)}.schedule-grid input{padding:var(--space-2);font-size:var(--font-size-xs)}.form-section.full-width{width:100%}.wo-detail{display:flex;flex-direction:column;gap:var(--space-4)}.wo-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.wo-detail-title{font-size:var(--font-size-lg);font-weight:600;margin:0;color:var(--color-text-primary)}.wo-detail-badges{display:flex;gap:var(--space-2);flex-shrink:0}.wo-detail-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5;margin:0;padding:var(--space-3);background-color:var(--color-surface);border-radius:var(--radius-md)}.wo-detail-info{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.wo-info-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);background-color:var(--color-surface);border-radius:var(--radius-sm)}.wo-info-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.wo-info-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:500;text-align:right}.wo-detail-photos{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-1) 0}.wo-detail-photos img{width:80px;height:80px;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--color-border);flex-shrink:0}.wo-detail-footer{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.wo-completed-text{font-size:var(--font-size-sm);color:var(--color-success);margin-right:auto}.wo-status-text{font-size:var(--font-size-sm);color:var(--color-warning);margin-right:auto}.wo-approval-info{display:flex;align-items:center;gap:var(--space-2)}.wo-approval-info.approved{color:var(--color-success)}.wo-approval-info.rejected{color:var(--color-error)}.wo-approval-date{font-size:var(--font-size-xs);opacity:.7}.wo-schedule-section{grid-column:1 / -1;background-color:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-3)}.wo-schedule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.wo-edit-schedule-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:var(--color-background);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);transition:all .15s ease}.wo-edit-schedule-btn:hover{background:var(--color-primary-light);color:var(--color-primary)}.wo-schedule-display{display:flex;flex-direction:column;gap:var(--space-2)}.wo-schedule-display .wo-info-row{background:var(--color-background)}.wo-no-schedule{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-style:italic}.wo-schedule-edit{display:flex;flex-direction:column;gap:var(--space-3)}.wo-schedule-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.wo-schedule-field{display:flex;flex-direction:column;gap:var(--space-1)}.wo-schedule-field label{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.wo-schedule-field input{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-background);color:var(--color-text-primary)}.wo-schedule-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.wo-schedule-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}@media(max-width:640px){.wo-detail-header{flex-direction:column;gap:var(--space-2)}.wo-detail-info{grid-template-columns:1fr}.wo-detail-footer{flex-direction:column}.wo-detail-footer .btn{width:100%}.wo-completed-text{margin-right:0;text-align:center}}.work-orders-page{animation:fadeIn .25s var(--ease-out)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-8);gap:var(--space-4)}.page-title{font-size:var(--text-3xl);font-weight:var(--font-bold);margin-bottom:var(--space-2);letter-spacing:var(--tracking-tight)}.search-bar{position:relative;margin-bottom:var(--space-5)}.filter-buttons{display:flex;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap}.work-orders-list{display:flex;flex-direction:column;gap:var(--space-4)}.work-order-card-header{display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.work-order-id{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-2);font-family:var(--font-mono);font-weight:var(--font-medium)}.work-order-card-title{margin:var(--space-2) 0;font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text-primary)}.work-order-description{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0;line-height:var(--leading-relaxed)}.work-order-badges{display:flex;gap:var(--space-2);align-items:flex-start;flex-wrap:wrap}.work-order-meta{display:flex;gap:var(--space-5);font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-2)}.loading-state{text-align:center;padding:var(--space-12);color:var(--color-text-secondary)}@media(max-width:768px){.page-header{flex-direction:column;gap:var(--space-4);align-items:stretch;margin-bottom:var(--space-5)}.page-title{font-size:var(--text-xl)}.page-subtitle{font-size:var(--text-sm)}.search-bar{margin-bottom:var(--space-4)}.search-input{font-size:16px;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-10)}.filter-buttons{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-1);gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:nowrap}.work-orders-list{gap:var(--space-3)}.work-order-card-title{font-size:var(--text-md)}.work-order-description{font-size:var(--text-sm)}.work-order-meta{flex-direction:column;gap:var(--space-2);font-size:var(--text-xs)}.work-order-badges{flex-wrap:wrap}}@media(max-width:480px){.page-header{margin-bottom:var(--space-4)}.search-bar{margin-bottom:var(--space-3)}.filter-buttons{margin-bottom:var(--space-4);gap:var(--space-2)}.work-orders-list{gap:var(--space-3)}}.review-modal{display:flex;flex-direction:column;gap:var(--space-5)}.review-header{display:flex;justify-content:space-between;align-items:flex-start}.review-wo-id{display:block;font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-bottom:var(--space-1)}.review-title{font-size:var(--font-size-xl);font-weight:600;margin:0}.review-info{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background-color:var(--color-surface);border-radius:var(--radius-md)}.review-info-row{display:flex;justify-content:space-between;align-items:center}.review-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.review-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:500}.review-description h4,.review-attachments h4{font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:600;margin-bottom:var(--space-2)}.review-description p{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6;margin:0}.attachments-list{display:flex;flex-direction:column;gap:var(--space-2)}.attachment-button{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);text-decoration:none;transition:all .15s ease}.attachment-button:hover{background-color:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.attachment-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-external{opacity:.5;flex-shrink:0}.attachment-button:hover .attachment-external{opacity:1}.reject-form{display:flex;flex-direction:column;gap:var(--space-2)}.reject-form label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.reject-form textarea{padding:var(--space-3);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);resize:vertical}.reject-form textarea:focus{outline:none;border-color:var(--color-primary)}.approval-result{padding:var(--space-4);background-color:var(--color-surface);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-2)}.approval-result .approval-comments{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic;margin:0}.review-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.approvals-page{animation:fadeIn .25s var(--ease-out)}.approvals-header{margin-bottom:var(--space-8)}.page-title{font-size:var(--text-3xl);margin-bottom:var(--space-2);letter-spacing:var(--tracking-tight)}.page-subtitle{font-size:var(--text-md);color:var(--color-text-secondary);margin:0}.approval-tabs{display:flex;gap:var(--space-3);margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border)}.tab{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background-color:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);position:relative;margin-bottom:-1px}.tab:hover{color:var(--color-text-primary);background-color:var(--color-surface-secondary);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-semibold)}.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 var(--space-2);background-color:var(--color-primary);color:#fff;font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full);font-family:var(--font-mono)}.approvals-list{display:flex;flex-direction:column;gap:var(--space-4)}.approval-row{padding:var(--space-5) var(--space-6)}.approval-row-content{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6)}.approval-row-info{flex:1;min-width:0}.approval-row-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-2)}.approval-row-id{font-size:var(--text-xs);color:var(--color-text-muted);font-family:var(--font-mono);font-weight:var(--font-medium)}.approval-site-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-primary);font-family:var(--font-mono)}.approval-row-title{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text-primary);margin:0 0 var(--space-2) 0}.approval-row-description{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin:0 0 var(--space-3) 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.approval-row-meta{display:flex;align-items:center;gap:var(--space-5);font-size:var(--text-sm);color:var(--color-text-secondary)}.approval-row-meta strong{color:var(--color-text-muted);font-weight:var(--font-medium);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.approval-row-requester,.approval-row-vendor,.approval-row-cost,.approval-row-approver{display:flex;align-items:center;gap:var(--space-2)}.approval-row-approver{padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-medium)}.approval-row-approver.approved{background:var(--color-success-light);color:var(--color-success)}.approval-row-approver.rejected{background:var(--color-error-light);color:var(--color-error)}.approval-date{margin-left:var(--space-2);opacity:.7}.approval-row-actions{flex-shrink:0}.empty-state{text-align:center;padding:var(--space-16);color:var(--color-text-secondary)}.empty-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background-color:var(--color-surface-secondary);border-radius:var(--radius-full);color:var(--color-text-muted);margin-bottom:var(--space-6)}.empty-icon svg{width:36px;height:36px}.empty-state h3{font-size:var(--text-xl);color:var(--color-text-primary);margin-bottom:var(--space-3)}.empty-state p{font-size:var(--text-md);margin:0;color:var(--color-text-tertiary)}.loading-state{text-align:center;padding:var(--space-12);color:var(--color-text-secondary);font-size:var(--text-md)}@media(max-width:768px){.approvals-grid{grid-template-columns:1fr}.approvals-header{margin-bottom:var(--space-5)}.page-title{font-size:var(--text-xl)}.page-subtitle{font-size:var(--text-sm)}.approval-tabs{flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4);padding-bottom:var(--space-4)}.tab{flex:1;min-width:100px;justify-content:center;padding:var(--space-3);font-size:var(--text-xs)}.tab-count{font-size:10px;min-width:18px;height:18px;padding:0 var(--space-1)}.approvals-list{gap:var(--space-3)}.approval-row{padding:var(--space-4)}.approval-row-content{flex-direction:column;gap:var(--space-3)}.approval-row-title{font-size:var(--text-md)}.approval-row-description{font-size:var(--text-sm);margin-bottom:var(--space-2)}.approval-row-meta{flex-wrap:wrap;gap:var(--space-3);font-size:var(--text-xs)}.approval-row-actions{align-self:flex-start}.empty-state{padding:var(--space-10) var(--space-4)}.empty-icon{width:64px;height:64px;margin-bottom:var(--space-4)}.empty-icon svg{width:28px;height:28px}.empty-state h3{font-size:var(--text-lg)}.empty-state p{font-size:var(--text-sm)}}@media(max-width:480px){.approval-tabs{gap:var(--space-1)}.tab{min-width:80px;padding:var(--space-2) var(--space-3)}.approval-row{padding:var(--space-3) var(--space-4)}.approval-row-header{flex-wrap:wrap;gap:var(--space-2)}}.assets-page{animation:fadeIn .25s var(--ease-out)}.assets-filters{margin-bottom:var(--space-6)}.search-box{position:relative;flex:1;max-width:360px}.search-input{width:100%;padding:var(--space-4) var(--space-4) var(--space-4) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.assets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-5)}.asset-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4)}.asset-card-title{margin:var(--space-2) 0;font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text-primary)}.asset-id{display:block;font-size:var(--text-xs);color:var(--color-text-muted);font-family:var(--font-mono);font-weight:var(--font-medium)}.asset-meta{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.asset-maintenance{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.asset-maintenance-title{font-size:var(--text-sm);font-weight:var(--font-semibold);margin-bottom:var(--space-3);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.asset-maintenance-dates{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}@media(max-width:768px){.assets-filters{margin-bottom:var(--space-4)}.assets-grid{grid-template-columns:1fr;gap:var(--space-3)}.search-box{max-width:100%}.search-input{font-size:16px;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-10)}.asset-card-title{font-size:var(--text-md)}.asset-meta{font-size:var(--text-xs)}.asset-maintenance{margin-top:var(--space-4);padding-top:var(--space-4)}.asset-maintenance-title,.asset-maintenance-dates{font-size:var(--text-xs)}}@media(max-width:480px){.assets-filters{margin-bottom:var(--space-3)}.assets-grid{gap:var(--space-3)}}.vendors-page{animation:fadeIn .25s var(--ease-out)}.search-bar{position:relative;margin-bottom:var(--space-6)}.search-icon{position:absolute;left:var(--space-4);top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.search-icon svg{width:18px;height:18px}.search-input{width:100%;padding:var(--space-4) var(--space-4) var(--space-4) var(--space-12);font-size:var(--text-md);border:1px solid var(--color-border);border-radius:var(--radius-xl);background-color:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.search-input:hover{border-color:var(--color-border-hover)}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 var(--ring-width) var(--ring-color)}.search-input::placeholder{color:var(--color-text-muted)}.vendors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-5)}.vendor-card-header{margin-bottom:var(--space-4)}.vendor-card-title{margin:0 0 var(--space-2) 0;font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text-primary)}.vendor-meta{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);margin-bottom:var(--space-4);color:var(--color-text-secondary)}.vendor-services{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border)}.vendor-services-title{font-size:var(--text-sm);font-weight:var(--font-semibold);margin-bottom:var(--space-3);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.services-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.detail-content{display:flex;flex-direction:column;gap:var(--space-5)}.detail-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.detail-title{margin:0;font-size:var(--text-2xl);font-weight:var(--font-semibold);color:var(--color-text-primary)}.detail-section{padding-top:var(--space-5);border-top:1px solid var(--color-border)}.detail-section-title{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin:0 0 var(--space-4) 0}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.detail-item{display:flex;flex-direction:column;gap:var(--space-2)}.detail-label{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.detail-value{font-size:var(--text-sm);color:var(--color-text-primary)}.services-badges{display:flex;flex-wrap:wrap;gap:var(--space-2)}.delete-confirm-section{padding:var(--space-4);background:var(--color-error-light);border-radius:var(--radius-lg);border:1px solid var(--color-error-border)}.delete-confirm-section p{margin:0 0 var(--space-2) 0;color:var(--color-text-secondary)}.delete-warning{font-size:var(--text-sm);color:var(--color-error);font-weight:var(--font-medium)}@media(max-width:768px){.search-bar{margin-bottom:var(--space-4)}.vendors-grid{grid-template-columns:1fr;gap:var(--space-3)}.search-input{font-size:16px;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-10)}.vendor-card-title{font-size:var(--text-md)}.vendor-meta{font-size:var(--text-xs)}.vendor-services{margin-top:var(--space-4);padding-top:var(--space-4)}.vendor-services-title{font-size:var(--text-xs)}.detail-grid{grid-template-columns:1fr}.detail-title{font-size:var(--text-xl)}.detail-header{flex-direction:column;align-items:flex-start}}@media(max-width:480px){.search-bar{margin-bottom:var(--space-3)}.vendors-grid{gap:var(--space-3)}.services-list{gap:var(--space-1)}}.spaces-page{display:flex;flex-direction:column;gap:1.5rem;animation:fadeIn .4s ease-out}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center;gap:1rem;color:var(--color-text-secondary)}.awaiting-content{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;gap:1rem;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-top:1rem}.awaiting-content h2{margin:0;color:var(--color-text-primary);font-size:1.25rem}.awaiting-content p{margin:0;max-width:400px}.empty-state h3{margin:0;color:var(--color-text-primary)}.empty-state p{margin:0;max-width:400px}.floor-plan-tabs{display:flex;gap:.5rem;flex-wrap:wrap;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.floor-plan-tab{display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;font-weight:500;color:var(--color-text-primary)}.floor-plan-tab:hover{background:var(--color-background);border-color:var(--color-primary)}.floor-plan-tab.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.floor-plan-tab .tab-building{font-size:.7rem;font-weight:400;opacity:.7}.floor-plan-viewer{display:flex;flex-direction:column;gap:1rem}.viewer-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.toolbar-left{display:flex;flex-direction:column;gap:.25rem}.toolbar-left h2{margin:0;font-size:1.25rem}.floor-plan-description{font-size:.875rem;color:var(--color-text-secondary)}.toolbar-right{display:flex;gap:.5rem}.marker-toolbar{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap}.toolbar-label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.toolbar-hint{font-size:.75rem;color:var(--color-text-secondary);font-style:italic}.marker-type-selector{display:flex;gap:.25rem}.marker-type-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:2px solid transparent;border-radius:var(--radius-md);background:var(--color-background);cursor:pointer;color:var(--marker-color);transition:all .15s ease}.marker-type-btn:hover{background:var(--color-surface);border-color:var(--marker-color)}.marker-type-btn.active{background:var(--marker-color);color:#fff;border-color:var(--marker-color)}.floor-plan-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.floor-plan-image-wrapper{position:relative;display:flex;justify-content:center;background:#f8fafc;min-height:400px}.floor-plan-image-wrapper.edit-mode{cursor:crosshair}.floor-plan-image{max-width:100%;max-height:70vh;object-fit:contain;-webkit-user-select:none;user-select:none}.floor-plan-marker{position:absolute;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);cursor:pointer;box-shadow:0 2px 4px #0003;transition:transform .15s ease,box-shadow .15s ease;z-index:10}.floor-plan-marker:hover{transform:translate(-50%,-50%) scale(1.2);box-shadow:0 4px 8px #0000004d;z-index:20}.marker-legend{padding:1rem}.marker-legend h4{margin:0 0 .75rem;font-size:.875rem;color:var(--color-text-secondary)}.legend-items{display:flex;flex-wrap:wrap;gap:.5rem}.legend-item{display:flex;align-items:center;gap:.5rem;padding:.375rem .625rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;font-size:.75rem}.legend-item:hover{border-color:var(--color-primary)}.legend-item.hidden{opacity:.5}.legend-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%}.legend-label{color:var(--color-text-primary)}.legend-count{background:var(--color-surface);padding:.125rem .375rem;border-radius:10px;font-weight:600;font-size:.7rem}.floor-plan-form{display:flex;flex-direction:column;gap:1rem}.floor-plan-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.floor-plan-form .form-group{display:flex;flex-direction:column;gap:.375rem}.floor-plan-form label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.floor-plan-form input,.floor-plan-form textarea{padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;background:var(--color-surface);color:var(--color-text-primary)}.floor-plan-form input:focus,.floor-plan-form textarea:focus{outline:none;border-color:var(--color-primary)}.image-upload-area{border:2px dashed var(--color-border);border-radius:var(--radius-md);overflow:hidden}.upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:.5rem;cursor:pointer;color:var(--color-text-secondary);transition:all .15s ease}.upload-placeholder:hover{background:var(--color-background);border-color:var(--color-primary);color:var(--color-primary)}.upload-hint{font-size:.75rem;opacity:.7}.image-preview{position:relative}.image-preview img{width:100%;max-height:200px;object-fit:contain;background:#f8fafc}.remove-image{position:absolute;top:.5rem;right:.5rem;width:28px;height:28px;border-radius:50%;background:var(--color-danger);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem}.marker-detail-modal{display:flex;flex-direction:column;gap:1rem}.marker-type-header{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:var(--radius-md);color:#fff;font-weight:600}.marker-info{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--color-background);border-radius:var(--radius-md)}.marker-info .info-row{display:flex;justify-content:space-between;gap:1rem}.marker-info .info-label{color:var(--color-text-secondary);font-size:.875rem}.marker-info .info-value{font-weight:500;text-align:right}.marker-info .no-details{color:var(--color-text-secondary);font-size:.875rem;font-style:italic;text-align:center;margin:0}.marker-edit-form{display:flex;flex-direction:column;gap:.75rem}.marker-edit-form .form-group{display:flex;flex-direction:column;gap:.25rem}.marker-edit-form label{font-size:.8rem;font-weight:500;color:var(--color-text-secondary)}.marker-edit-form input,.marker-edit-form textarea{padding:.5rem .625rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;background:var(--color-surface);color:var(--color-text-primary)}.marker-edit-form input:focus,.marker-edit-form textarea:focus{outline:none;border-color:var(--color-primary)}.marker-actions{display:flex;justify-content:flex-end;gap:.5rem}@media(max-width:768px){.floor-plan-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.75rem}.floor-plan-tab{flex-shrink:0}.viewer-toolbar,.marker-toolbar{flex-direction:column;align-items:flex-start}.floor-plan-form .form-row{grid-template-columns:1fr}}.users-page{animation:fadeIn .4s ease-out}.users-table-card{padding:0;overflow:hidden}.users-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.users-table th{text-align:left;padding:var(--space-3) var(--space-4);background:var(--color-surface);font-weight:500;font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border)}.users-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);vertical-align:middle}.users-table tbody tr:last-child td{border-bottom:none}.users-table tbody tr:hover{background:var(--color-surface)}.users-table tbody tr.current-user{background:var(--color-primary-light)}.user-cell{display:flex;align-items:center;gap:var(--space-3)}.user-avatar-sm{width:32px;height:32px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--font-size-xs);flex-shrink:0}.user-name-text{font-weight:500}.you-badge{background:var(--color-success);color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:var(--radius-sm);margin-left:var(--space-2)}.email-cell{color:var(--color-text-secondary)}.user-actions{display:flex;gap:var(--space-1);justify-content:flex-end}.role-selector{display:flex;flex-direction:column;gap:var(--space-2)}.role-option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.role-option:hover{border-color:var(--color-primary);background:var(--color-surface)}.role-option.selected{border-color:var(--color-primary);background:var(--color-primary-light)}.role-option-content{flex:1}.role-option-label{font-weight:500;font-size:var(--font-size-sm);margin-bottom:2px}.role-option-description{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.user-form{display:flex;flex-direction:column;gap:var(--space-4)}.access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;color:var(--color-text-secondary)}.access-denied svg{margin-bottom:var(--space-4);opacity:.5}.access-denied h2{margin:0 0 var(--space-2) 0;color:var(--color-text-primary)}.location-selector{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.location-chip{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);cursor:pointer;transition:all .2s ease}.location-chip:hover{border-color:var(--color-primary)}.location-chip.selected{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.chip-code{font-weight:700;font-family:var(--font-mono)}.chip-name{font-weight:500}.chip-remove{margin-left:var(--space-1);opacity:.7}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-top:var(--space-1)}.form-label{display:flex;align-items:center;gap:var(--space-2)}.sites-cell{min-width:100px}.site-badges{display:flex;flex-wrap:wrap;gap:4px}.site-badge{display:inline-block;padding:2px 6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:10px;font-weight:600;color:var(--color-text-secondary);font-family:var(--font-mono)}.no-sites{color:var(--color-text-tertiary)}@media(max-width:768px){.form-row{grid-template-columns:1fr}.users-table{font-size:var(--font-size-xs)}.users-table th,.users-table td{padding:var(--space-2)}}.settings-page{animation:fadeIn .4s ease-out}.settings-card{margin-bottom:var(--space-6)}.settings-card .card-title{display:flex;align-items:center;gap:var(--space-2)}.settings-form{display:flex;flex-direction:column;gap:var(--space-4)}.settings-form .form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.settings-form .form-group{display:flex;flex-direction:column;gap:var(--space-2)}.settings-form .form-group.full-width{grid-column:1 / -1}.settings-form label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary)}.settings-form input[type=text],.settings-form input[type=email],.settings-form input[type=password]{padding:var(--space-3);font-size:var(--font-size-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);transition:border-color .2s ease,box-shadow .2s ease}.settings-form input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.settings-form input::placeholder{color:var(--color-text-tertiary)}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.form-divider{height:1px;background-color:var(--color-border);margin:var(--space-2) 0}.checkbox-label{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary)}.test-result{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.test-result.success{background-color:var(--color-success-light);color:var(--color-success);border:1px solid var(--color-success)}.test-result.error{background-color:var(--color-error-light);color:var(--color-error);border:1px solid var(--color-error)}.settings-actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.setup-guide{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.setup-guide ol{margin:0;padding-left:var(--space-6)}.setup-guide li{margin-bottom:var(--space-4)}.setup-guide li:last-child{margin-bottom:0}.setup-guide strong{color:var(--color-text-primary);display:block;margin-bottom:var(--space-1)}.setup-guide p{margin:0;line-height:1.5}.setup-guide code{background-color:var(--color-surface);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-xs)}@media(max-width:768px){.settings-form .form-row{grid-template-columns:1fr}.settings-actions{flex-direction:column}}.locations-section{display:flex;flex-direction:column;gap:var(--space-4)}.section-description{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.locations-list{display:flex;flex-direction:column;gap:var(--space-2)}.empty-locations{display:flex;flex-direction:column;align-items:center;padding:var(--space-6);color:var(--color-text-tertiary);text-align:center}.empty-locations svg{margin-bottom:var(--space-2);opacity:.5}.empty-locations p{margin:0}.location-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border)}.location-info{display:flex;flex-direction:column;gap:var(--space-1)}.location-name{font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;gap:var(--space-2)}.location-code{display:inline-block;padding:2px 6px;background:var(--color-primary-light);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:600;border-radius:var(--radius-sm);font-family:var(--font-mono)}.location-address{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.location-actions{display:flex;gap:var(--space-2)}.location-form{display:flex;flex-direction:column;gap:var(--space-4)}.lockout-card.locked{border:2px solid var(--color-error)}.lockout-card.locked .card-title{color:var(--color-error)}.lockout-section{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.lockout-status{flex:1}.status-indicator{display:flex;align-items:center;gap:var(--space-2);font-weight:600;margin-bottom:var(--space-2)}.status-indicator.locked{color:var(--color-error)}.status-indicator.unlocked{color:var(--color-success)}.lockout-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.lockout-confirm,.delete-confirm{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3)}.warning-icon{color:var(--color-warning)}.unlock-icon{color:var(--color-success)}.lockout-note{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.mobile-upload-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.mobile-upload-container{width:100%;max-width:400px;background:#fff;border-radius:24px;padding:32px 24px;box-shadow:0 20px 60px #0000004d}.mobile-upload-header{text-align:center;margin-bottom:24px}.mobile-upload-header h1{font-size:24px;font-weight:700;color:#1a1a2e;margin:0 0 8px}.mobile-upload-header p{font-size:14px;color:#666;margin:0}.upload-status{display:flex;justify-content:center;margin-bottom:24px}.upload-success,.upload-hint{display:flex;align-items:center;gap:8px;padding:12px 20px;border-radius:12px;font-size:14px;font-weight:500}.upload-success{background:#e8f5e9;color:#2e7d32}.upload-hint{background:#f5f5f5;color:#666}.upload-buttons{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.upload-btn{display:flex;align-items:center;justify-content:center;gap:12px;padding:20px;border-radius:16px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;border:none}.upload-btn:active{transform:scale(.98)}.upload-btn:disabled{opacity:.6;cursor:not-allowed}.camera-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 15px #667eea66}.gallery-btn{background:#fff;color:#333;border:2px solid #e0e0e0}.uploading-indicator{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;background:#f5f5f5;border-radius:12px;margin-bottom:24px;color:#666;font-size:14px}.spinner{width:20px;height:20px;border:2px solid #e0e0e0;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.mobile-upload-note{text-align:center;font-size:12px;color:#999;margin:0}.mobile-upload-loading{color:#fff;font-size:18px}.mobile-upload-error{text-align:center;color:#fff;background:#0003;padding:32px;border-radius:24px}.mobile-upload-error h2{margin:16px 0 8px}.mobile-upload-error p{margin:0;opacity:.9}.policies-page{animation:fadeIn .4s ease-out}.policies-filters{display:flex;gap:var(--space-3);margin-bottom:var(--space-4)}.policies-filters .search-input{flex:1;max-width:300px}.policies-filters .form-select{width:180px}.policies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-4)}.policy-card{display:flex;flex-direction:column;padding:var(--space-4)}.policy-card-header{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.policy-card-title{font-size:var(--font-size-base);font-weight:600;margin:0 0 var(--space-2) 0;color:var(--color-text-primary)}.policy-card-preview{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.6;flex:1;margin:0}.policy-card-meta{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.policy-review-date{display:flex;align-items:center;gap:var(--space-1)}.policy-review-date.overdue{color:var(--color-warning)}.policy-card-actions{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3)}.policy-card-actions .icon-btn{margin-left:auto}.policy-card-actions .icon-btn:first-of-type{margin-left:auto}.policy-form{display:flex;flex-direction:column;gap:var(--space-3);height:100%}.policy-form-top{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:var(--space-4)}.form-textarea{width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:inherit;resize:none;flex:1;min-height:0}.policy-form .form-group-content{flex:1;display:flex;flex-direction:column;min-height:0}.view-policy{display:flex;flex-direction:column;gap:var(--space-4);height:100%}.view-policy-header{display:flex;justify-content:space-between;align-items:flex-start}.view-policy-header>div{display:flex;flex-direction:column;gap:var(--space-2)}.view-policy-title{font-size:var(--font-size-xl);font-weight:600;margin:0}.view-policy-version{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.view-policy-meta{display:flex;gap:var(--space-6);padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-md)}.view-policy-meta-item{display:flex;flex-direction:column;gap:var(--space-1)}.meta-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.meta-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:500}.meta-value.overdue{color:var(--color-warning)}.view-policy-content{flex:1;display:flex;flex-direction:column;min-height:0}.view-policy-content h4{font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-3) 0;flex-shrink:0}.policy-text{background:var(--color-surface);padding:var(--space-4);border-radius:var(--radius-md);flex:1;overflow-y:auto;min-height:0}.policy-text p{margin:0 0 var(--space-2) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.7}.policy-text p:last-child{margin-bottom:0}@media(max-width:768px){.policies-filters{flex-direction:column}.policies-filters .search-input,.policies-filters .form-select{max-width:none;width:100%}.form-row,.policies-grid{grid-template-columns:1fr}.view-policy-meta{flex-direction:column;gap:var(--space-3)}}.maintenance-page{animation:fadeIn .4s ease-out}.maintenance-filters{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-4);gap:var(--space-4);flex-wrap:wrap}.location-filter{display:flex;align-items:center;gap:var(--space-2);color:var(--color-text-secondary)}.location-filter .form-select{min-width:180px}.maintenance-tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-2)}.maintenance-tabs .tab{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:transparent;border:none;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;border-radius:var(--radius-md);transition:all .2s ease}.maintenance-tabs .tab:hover{background:var(--color-surface);color:var(--color-text-primary)}.maintenance-tabs .tab.active{background:transparent;color:var(--color-primary);border-bottom:2px solid var(--color-primary);border-radius:0;margin-bottom:-2px}.maintenance-tabs .tab-count{padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-size-xs);background:transparent}.maintenance-tabs .tab.active .tab-count{background:transparent;color:var(--color-primary)}.maintenance-tabs .tab-count.warning{background:var(--color-warning);color:#fff}.maintenance-list{display:flex;flex-direction:column;gap:var(--space-3)}.maintenance-row{padding:var(--space-4)}.maintenance-row.overdue{border-left:3px solid var(--color-error)}.maintenance-row.upcoming{border-left:3px solid var(--color-warning)}.maintenance-row-content{display:flex;gap:var(--space-4);align-items:flex-start}.maintenance-row-status{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--color-surface)}.status-icon.overdue{color:var(--color-error)}.status-icon.upcoming{color:var(--color-warning)}.status-icon.scheduled{color:var(--color-text-tertiary)}.maintenance-row-info{flex:1;min-width:0}.maintenance-row-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.maintenance-row-title{font-size:var(--font-size-base);font-weight:600;margin:0}.maintenance-row-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--space-2) 0}.maintenance-row-meta{display:flex;flex-wrap:wrap;gap:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.maintenance-meta-item{display:inline-flex;align-items:center;gap:var(--space-1)}.maintenance-meta-item.due-date.overdue{color:var(--color-error);font-weight:600}.maintenance-meta-item.due-date.upcoming{color:var(--color-warning);font-weight:600}.maintenance-row-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.icon-btn{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-elevated);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.icon-btn:hover{background:var(--color-surface);color:var(--color-text-primary)}.icon-btn.danger:hover{background:var(--color-error);border-color:var(--color-error);color:#fff}.maintenance-form{display:flex;flex-direction:column;gap:var(--space-4);height:100%}.maintenance-form-top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-4)}.maintenance-form .form-group-grow{flex:1;display:flex;flex-direction:column;min-height:0}.maintenance-form .form-group-grow .form-textarea{flex:1;min-height:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.form-textarea{width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:inherit;resize:vertical}.form-textarea:focus{outline:none;border-color:var(--color-primary)}.form-error{background:var(--color-error-light);border:1px solid var(--color-error);color:var(--color-error);padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4)}.complete-maintenance{display:flex;flex-direction:column;gap:var(--space-4)}.complete-info h3{margin:0 0 var(--space-1) 0;font-size:var(--font-size-lg)}.complete-asset{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.complete-next{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--color-surface);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.complete-next strong{color:var(--color-text-primary)}.history-modal{display:flex;flex-direction:column;gap:var(--space-4)}.history-header{display:flex;align-items:center;gap:var(--space-3)}.history-header h3{margin:0;flex:1}.history-empty{display:flex;flex-direction:column;align-items:center;padding:var(--space-6);color:var(--color-text-tertiary);text-align:center}.history-empty svg{margin-bottom:var(--space-2);opacity:.5}.history-list{display:flex;flex-direction:column;gap:var(--space-3);max-height:400px;overflow-y:auto}.history-item{padding:var(--space-3);background:var(--color-surface);border-radius:var(--radius-md)}.history-item-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.history-check{color:var(--color-success)}.history-item-body{padding-left:calc(16px + var(--space-2))}.history-by{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.history-notes{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:var(--space-2) 0 0 0;font-style:italic}.delete-confirm p{margin-bottom:var(--space-3)}.delete-warning{color:var(--color-error);font-size:var(--font-size-sm)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10);text-align:center;color:var(--color-text-secondary)}.empty-state svg{margin-bottom:var(--space-4);opacity:.4}.empty-state h3{margin:0 0 var(--space-2) 0;color:var(--color-text-primary)}.empty-state p{margin:0;font-size:var(--font-size-sm)}@media(max-width:768px){.maintenance-tabs{flex-wrap:wrap}.form-row{grid-template-columns:1fr}.maintenance-row-content{flex-direction:column}.maintenance-row-status{display:none}.maintenance-row-actions{width:100%;justify-content:flex-end;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border)}}.planner-page{display:flex;flex-direction:column;gap:1.5rem}.planner-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.planner-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.summary-card{padding:1rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.summary-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.summary-card.active{border:2px solid var(--color-primary)}.summary-item{display:flex;align-items:center;gap:.75rem}.summary-icon{flex-shrink:0}.summary-icon.work-orders{color:var(--color-primary)}.summary-icon.deliveries{color:#8b5cf6}.summary-icon.maintenance{color:#10b981}.summary-icon.personal{color:#6366f1}.summary-content{display:flex;flex-direction:column}.summary-count{font-size:1.5rem;font-weight:600;color:var(--color-text-primary);line-height:1}.summary-label{font-size:.75rem;color:var(--color-text-secondary);margin-top:.25rem}.summary-badge{font-size:.65rem;padding:.125rem .375rem;border-radius:10px;margin-top:.25rem;display:inline-block;width:fit-content}.summary-badge.pending{background:rgba(var(--color-info-rgb),.15);color:var(--color-info)}.summary-badge.overdue{background:rgba(var(--color-danger-rgb),.15);color:var(--color-danger)}.filter-indicator{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--color-primary-light);border-radius:6px;font-size:.875rem;color:var(--color-primary)}.status-filter-tabs{display:flex;gap:.5rem;padding:.5rem;background:var(--color-surface);border-radius:8px;border:1px solid var(--color-border)}.status-tab{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;background:transparent;cursor:pointer;border-radius:6px;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);transition:all .15s ease}.status-tab:hover{background:var(--color-background);color:var(--color-text-primary)}.status-tab.active{background:var(--color-primary);color:#fff}.planner-calendar-card{padding:0;overflow:hidden}.calendar-controls{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.view-toggle{display:flex;gap:.25rem;background:var(--color-background);padding:.25rem;border-radius:var(--radius-md)}.calendar-navigation{display:flex;align-items:center;gap:.5rem}.calendar-period{font-weight:600;color:var(--color-text-primary);margin-left:1rem}.calendar-container{overflow-x:auto}.calendar-header{display:flex;border-bottom:2px solid var(--color-border);background:var(--color-background);position:sticky;top:0;z-index:10}.time-column-header{flex:0 0 60px;padding:.75rem .5rem;border-right:1px solid var(--color-border);background:var(--color-surface)}.date-column-header{flex:1;min-width:150px;padding:1rem .75rem;text-align:center;border-right:1px solid var(--color-border);display:flex;flex-direction:column;gap:.25rem}.date-column-header:last-child{border-right:none}.date-column-header.today{background:var(--color-primary-light)}.date-header-day{font-size:.7rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.date-header-num{font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.date-column-header.today .date-header-num{color:var(--color-primary)}.calendar-body{display:flex;min-height:500px}.time-column{flex:0 0 60px;border-right:1px solid var(--color-border);background:var(--color-surface);display:flex;flex-direction:column}.all-day-header{height:32px;border-bottom:1px solid var(--color-border);flex-shrink:0}.time-slots{flex:1}.time-slot{height:80px;display:flex;align-items:flex-start;justify-content:flex-end;padding:0 .5rem;border-bottom:1px solid var(--color-border)}.time-label{font-size:.7rem;color:var(--color-text-tertiary);transform:translateY(-.5rem)}.day-column{flex:1;min-width:150px;border-right:1px solid var(--color-border);display:flex;flex-direction:column}.day-column:last-child{border-right:none}.day-column.today{background:rgba(var(--color-primary-rgb),.03)}.all-day-section{height:32px;padding:.25rem;border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:.125rem;background:var(--color-surface);overflow:hidden;flex-shrink:0}.time-grid{flex:1;position:relative}.hour-cell{height:80px;border-bottom:1px solid var(--color-border)}.hour-cell:last-child{border-bottom:none}.calendar-item{border-radius:4px;padding:.25rem .5rem;cursor:pointer;display:flex;align-items:center;gap:.25rem;overflow:hidden;color:#fff;font-size:.75rem;transition:transform .1s ease,box-shadow .1s ease}.calendar-item:hover{transform:scale(1.02);box-shadow:0 2px 8px #00000026;z-index:5}.calendar-item.all-day{min-height:20px;padding:.125rem .375rem;font-size:.65rem}.calendar-item.timed{position:absolute;right:2px;min-height:24px;z-index:1}.calendar-item.full-day{position:absolute;top:0;bottom:0;min-height:auto;z-index:1;flex-direction:column;justify-content:flex-start;padding:.5rem .375rem;writing-mode:vertical-rl;text-orientation:mixed}.calendar-item-time{font-weight:600;font-size:.65rem;opacity:.9}.calendar-item-icon{flex-shrink:0;opacity:.9}.calendar-item-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.planner-key-row{display:flex;gap:.75rem}.planner-key-card{padding:.5rem .75rem;flex:1}.key-header{display:flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:.375rem}.key-items-horizontal{display:flex;flex-wrap:wrap;gap:.75rem}.key-item{display:flex;align-items:center;gap:.375rem;font-size:.7rem;color:var(--color-text-primary)}.key-color{width:10px;height:10px;border-radius:2px}.planner-detail-modal{display:flex;flex-direction:column;gap:1rem}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.detail-header h2{margin:0;font-size:1.25rem;font-weight:600}.detail-info{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--color-background);border-radius:8px}.detail-row{display:flex;justify-content:space-between;gap:1rem}.detail-label{color:var(--color-text-secondary);font-size:.875rem}.detail-value{font-weight:500;text-align:right}.detail-items{padding:1rem;background:var(--color-background);border-radius:8px}.detail-items h4{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:var(--color-text-secondary)}.detail-items ul{margin:0;padding-left:1.25rem;font-size:.875rem}.detail-items li{margin-bottom:.25rem}.detail-items .received{color:var(--color-success)}.detail-items .partial{color:var(--color-warning)}.receipt-table{width:100%;border-collapse:collapse;font-size:.875rem}.receipt-table th,.receipt-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--color-border)}.receipt-table th{font-weight:600;color:var(--color-text-secondary);font-size:.75rem;text-transform:uppercase}.receipt-quantity-input{width:80px;padding:.25rem .5rem;border:1px solid var(--color-border);border-radius:4px;font-size:.875rem}.receipt-quantity-input:focus{outline:none;border-color:var(--color-primary)}.receipt-quick-actions{display:flex;gap:.75rem;padding:1rem;background:var(--color-background);border-radius:8px;flex-wrap:wrap}.detail-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;border-top:1px solid var(--color-border)}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--color-text-secondary);text-align:center;min-height:300px}.hour-cell{cursor:pointer;transition:background-color .15s ease}.hour-cell:hover{background:rgba(var(--color-primary-rgb),.05)}.personal-task-form{display:flex;flex-direction:column;gap:1rem}.personal-task-form .form-group{display:flex;flex-direction:column;gap:.375rem}.personal-task-form label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.personal-task-form input,.personal-task-form select,.personal-task-form textarea{padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:6px;font-size:.875rem;background:var(--color-background);color:var(--color-text-primary);transition:border-color .15s ease,box-shadow .15s ease}.personal-task-form input:focus,.personal-task-form select:focus,.personal-task-form textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.personal-task-form .form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.personal-task-form .form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.5rem;border-top:1px solid var(--color-border);margin-top:.5rem}.personal-task-form .delete-confirm-section{padding:1rem;background:rgba(var(--color-danger-rgb),.1);border-radius:6px;border:1px solid var(--color-danger)}.personal-task-form .delete-confirm-section p{margin:0 0 .75rem;color:var(--color-danger)}.planner-key-card.personal{background:linear-gradient(135deg,#6366f11a,#8b5cf61a)}.calendar-item[draggable=true]{cursor:grab}.calendar-item[draggable=true]:active{cursor:grabbing}.day-column.drop-target{transition:background-color .15s ease}.day-column.drop-target:hover{background:rgba(var(--color-primary-rgb),.1)}.day-column.drop-target .time-grid{pointer-events:none}.day-column.drop-target .calendar-item{pointer-events:auto}.list-view-container{display:flex;flex-direction:column;gap:1rem;padding:1rem;max-height:800px;overflow-y:auto}.list-day-group{display:flex;flex-direction:column;gap:.5rem}.list-day-header{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--color-border)}.list-day-header.today{border-bottom-color:var(--color-primary)}.list-day-name{font-weight:600;font-size:.9rem;color:var(--color-text-primary)}.list-day-header.today .list-day-name{color:var(--color-primary)}.list-day-date{font-size:.8rem;color:var(--color-text-secondary)}.list-items{display:flex;flex-direction:column;gap:.5rem}.list-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:var(--color-surface);border-radius:var(--radius-md);border-left:3px solid;cursor:pointer;transition:all .15s ease}.list-item:hover{background:var(--color-background);transform:translate(4px)}.list-item-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:#fff;flex-shrink:0}.list-item-content{flex:1;min-width:0}.list-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.25rem}.list-item-title{font-weight:500;font-size:.875rem;color:var(--color-text-primary)}.list-item-type{font-size:.7rem;color:var(--color-text-secondary);background:var(--color-background);padding:.125rem .375rem;border-radius:4px;flex-shrink:0}.list-item-details{display:flex;align-items:center;gap:.75rem;font-size:.75rem;color:var(--color-text-secondary)}.list-item-time{display:flex;align-items:center;gap:.25rem}.list-item-status{text-transform:capitalize;padding:.125rem .375rem;border-radius:4px;font-size:.7rem;font-weight:500}.list-item-status.status-completed{background:#05b26826;color:var(--color-success)}.list-item-status.status-in-progress{background:#0052ff26;color:var(--color-primary)}.list-item-status.status-pending{background:#f9b03826;color:var(--color-warning)}.list-item-status.status-overdue{background:#e53e3e26;color:var(--color-error)}.list-item-status.status-scheduled{background:#10b98126;color:#10b981}.list-item-status.status-received{background:#05b26826;color:var(--color-success)}.list-empty-state{text-align:center;padding:2rem;color:var(--color-text-secondary);font-size:.9rem}@media(max-width:768px){.calendar-controls{flex-direction:column;gap:1rem}.planner-summary{grid-template-columns:repeat(2,1fr)}.day-column,.date-column-header{min-width:120px}.view-toggle{align-self:flex-end}}.deliveries-page{display:flex;flex-direction:column;gap:1.5rem}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.deliveries-filters{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.search-box{position:relative;flex:1;max-width:300px}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.search-input{width:100%;padding:8px 12px 8px 40px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:all .15s ease}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.search-input::placeholder{color:var(--color-text-tertiary)}.deliveries-tabs{display:flex;gap:.5rem}.deliveries-tabs .tab{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;font-size:.875rem;transition:all .15s ease}.deliveries-tabs .tab:hover{background:var(--color-surface-hover)}.deliveries-tabs .tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.tab-count{background:#fff3;padding:.125rem .5rem;border-radius:10px;font-size:.75rem;font-weight:600}.deliveries-tabs .tab:not(.active) .tab-count{background:var(--color-background)}.tab-count.warning{background:var(--color-warning);color:#fff}.deliveries-list{display:flex;flex-direction:column;gap:.75rem}.delivery-row{padding:1rem;transition:transform .15s ease,box-shadow .15s ease}.delivery-row:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.delivery-row-content{display:flex;align-items:center;gap:1rem}.delivery-row-status{flex-shrink:0}.status-icon{color:var(--color-text-tertiary)}.status-icon.received{color:var(--color-success)}.status-icon.in-transit{color:var(--color-info)}.status-icon.partial{color:var(--color-warning)}.status-icon.scheduled{color:var(--color-text-secondary)}.status-icon.cancelled{color:var(--color-danger)}.delivery-row-info{flex:1;min-width:0}.delivery-row-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem}.delivery-row-id{font-size:.7rem;color:var(--color-text-tertiary)}.delivery-row-title{font-size:1rem;font-weight:500;margin:0 0 .5rem;color:var(--color-text-primary)}.delivery-row-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.8rem;color:var(--color-text-secondary)}.delivery-meta-item strong{color:var(--color-text-tertiary);font-weight:500}.delivery-row-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.icon-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.icon-btn.danger:hover{background:var(--color-danger-light);color:var(--color-danger)}.delivery-form{display:flex;flex-direction:column;gap:1rem}.form-section{padding:1rem;background:var(--color-background);border-radius:8px}.form-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.form-section-header .form-label{margin-bottom:0}.delivery-items-list{display:flex;flex-direction:column;gap:.5rem}.delivery-item-row{display:flex;gap:.5rem;align-items:center}.item-name{flex:2}.item-quantity{width:80px}.item-unit{width:100px}.delivery-detail{display:flex;flex-direction:column;gap:1.5rem}.delivery-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.delivery-detail-title{font-size:1.25rem;font-weight:600;margin:0}.delivery-detail-info{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--color-background);border-radius:8px}.delivery-info-row{display:flex;justify-content:space-between;gap:1rem}.delivery-info-label{color:var(--color-text-secondary);font-size:.875rem}.delivery-info-value{font-weight:500;text-align:right}.delivery-items-section h4{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.delivery-items-table{width:100%;border-collapse:collapse;font-size:.875rem}.delivery-items-table th,.delivery-items-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--color-border)}.delivery-items-table th{font-weight:600;color:var(--color-text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.delivery-items-table tr.received{background:rgba(var(--color-success-rgb),.05)}.delivery-items-table tr.partial{background:rgba(var(--color-warning-rgb),.05)}.item-status{display:flex;align-items:center;gap:.25rem;font-size:.75rem}.item-status.received{color:var(--color-success)}.item-status.partial{color:var(--color-warning)}.item-status.pending{color:var(--color-text-secondary)}.receive-item-form{padding:1rem;background:var(--color-primary-light);border-radius:8px;border:1px solid var(--color-primary)}.receive-item-form h4{margin:0 0 1rem;font-size:.875rem;color:var(--color-primary)}.delivery-detail-footer{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;border-top:1px solid var(--color-border)}.delete-confirm{text-align:center}.delete-confirm p{margin:0 0 1rem}.delete-warning{color:var(--color-danger);font-size:.875rem}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--color-text-secondary);text-align:center}.empty-state svg{margin-bottom:1rem;opacity:.5}.empty-state h3{margin:0;font-size:1.125rem;color:var(--color-text-primary)}.empty-state p{margin:.5rem 0 0;font-size:.875rem}@media(max-width:768px){.delivery-row-content{flex-direction:column;align-items:flex-start}.delivery-row-actions{width:100%;justify-content:flex-end;margin-top:.5rem}.delivery-item-row{flex-wrap:wrap}.item-name{flex:1 1 100%}.deliveries-tabs{flex-wrap:wrap}}
