*{margin:0;padding:0;box-sizing:border-box}:root{font-size:13px;--primary-color: #E85A2B;--error-color: #E63946;--success-color: #4CAF50;--warning-color: #FFC107;--bg-primary: #ffffff;--bg-secondary: #f9f9f9;--bg-tertiary: #f5f5f5;--text-primary: #1a1a1a;--text-secondary: #666;--text-tertiary: #999;--border-color: #e0e0e0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-tertiary);color:var(--text-primary)}.app-container{display:flex;height:100vh;width:100vw;overflow:hidden}.sidebar-left{width:280px;flex-shrink:0;min-width:280px;background:var(--bg-primary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;font-size:12px;transition:width .15s ease,min-width .15s ease}.sidebar-left.collapsed{width:56px;min-width:56px}.sidebar-left.collapsed .sidebar-header{padding:.75rem 0;display:flex;justify-content:center}.sidebar-left.collapsed .logo{justify-content:center}.sidebar-left.collapsed nav button{justify-content:center;padding:.65rem 0;gap:0;border-left:none;border-radius:6px;margin:2px 6px;border-bottom:2px solid transparent}.sidebar-left.collapsed nav button.active{background:#fff5f0;color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.sidebar-left.collapsed .icon{font-size:16px}.sidebar-bottom-collapsed{display:flex;flex-direction:column;align-items:center;gap:8px;padding:.6rem 0}.sidebar-mini-btn{width:32px;height:32px;border-radius:50%;border:none;background:var(--bg-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;transition:background .15s}.sidebar-mini-btn:hover{background:#ececec}.sidebar-mini-avatar{background:var(--primary-color);color:#fff;font-weight:600;font-size:11px}.sidebar-mini-avatar:hover{background:#d64a1a}@media(max-width:640px){.sidebar-left.collapsed{display:none}}.sidebar-scrollable{flex:1;overflow-y:auto;min-height:0}.sidebar-bottom{border-top:1px solid var(--border-color);flex-shrink:0}.sidebar-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-color)}.logo{font-size:14px;font-weight:600;color:var(--primary-color);display:flex;align-items:center;gap:8px}.logo-mark{display:block;width:22px;height:22px;object-fit:contain;flex-shrink:0}.nav-section{padding:.4rem 0;border-bottom:1px solid var(--border-color)}.nav-section:last-of-type{border-bottom:none;flex:1;display:flex;flex-direction:column}.nav-label{padding:.3rem .75rem;font-size:9px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px;margin-top:.25rem}nav{display:flex;flex-direction:column;gap:0}nav button{background:none;border:none;text-align:left;padding:.5rem .75rem;cursor:pointer;color:var(--text-primary);font-size:12px;display:flex;align-items:center;gap:8px;border-left:3px solid transparent;transition:all .15s}nav button:hover{background:var(--bg-tertiary)}nav button.active{border-left-color:var(--primary-color);background:#fff5f0}nav button.disabled{opacity:.5;cursor:not-allowed;color:var(--text-tertiary)}nav button.disabled:hover{background:none}.icon{font-size:14px;width:16px;text-align:center}.projects-list{flex:1;overflow-y:auto;padding:.3rem}.projects-list nav button{padding:.45rem .5rem;border-radius:4px;font-size:11px;gap:6px}.projects-list nav button span:last-child{flex:1;min-width:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.user-profile-section{border-top:1px solid var(--border-color);padding:.5rem;display:flex;gap:8px;align-items:center}.user-profile{padding:.65rem;display:flex;gap:8px;align-items:center;cursor:pointer;flex:1;border-radius:6px}.user-profile:hover{background:var(--bg-tertiary)}.logout-btn{background:none;border:none;font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .2s}.logout-btn:hover{background:var(--bg-tertiary)}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary-color);display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:600;flex-shrink:0}.user-info{flex:1;min-width:0}.user-name{font-size:11px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:10px;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-content{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg-tertiary)}.tab-bar{height:40px;background:var(--bg-primary);border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 .75rem;gap:4px;overflow-x:auto;overflow-y:hidden}.tab{display:flex;align-items:center;gap:6px;padding:0 10px;height:40px;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;font-size:12px;color:var(--text-secondary);transition:all .15s;border-radius:4px 4px 0 0}.tab.active{color:var(--text-primary);border-bottom-color:var(--primary-color);background:#fff5f0;font-weight:500}.tab:hover:not(.active){background:var(--bg-tertiary)}.tab-close{font-size:12px;opacity:.5;cursor:pointer;padding:0 2px}.tab-close:hover{opacity:1}.tab-plus{display:flex;align-items:center;justify-content:center;width:40px;height:40px;cursor:pointer;color:var(--text-secondary);font-size:14px;font-weight:500}.breadcrumb{background:var(--bg-primary);padding:.75rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:6px;font-size:11px}.breadcrumb div{display:flex;align-items:center;gap:6px}.breadcrumb span{color:var(--text-secondary);cursor:pointer}.breadcrumb span:hover{color:var(--primary-color)}.breadcrumb span.active{color:var(--text-primary);font-weight:500;cursor:default}.chevron{color:#ccc;font-size:8px}.page-content{flex:1;padding:1.5rem;overflow-y:auto}.card{background:var(--bg-primary);padding:1.5rem;border-radius:8px;border:1px solid var(--border-color)}.card h2{font-size:16px;font-weight:500;margin-bottom:.5rem}.card h3{font-size:12px;font-weight:500;margin-bottom:.5rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.btn-primary{background:var(--primary-color);color:#fff;border:none;padding:.6rem 1rem;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;display:flex;align-items:center;gap:6px}.btn-primary:hover{background:#d64a1a}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1rem}.stat-card{background:var(--bg-secondary);padding:1rem;border-radius:6px;text-align:center}.stat-label{font-size:10px;color:var(--text-tertiary);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.3px}.stat-value{font-size:24px;font-weight:600;color:var(--text-primary)}.company-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:1rem}.company-btn{background:var(--bg-secondary);border:1px solid var(--border-color);padding:1.2rem;border-radius:8px;cursor:pointer;text-align:center;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:12px;font-weight:500;color:var(--text-primary)}.company-btn:hover{border-color:var(--primary-color);background:#fff5f0}.resource-item{padding:.6rem;background:var(--bg-secondary);border-radius:6px;border-left:3px solid var(--primary-color);font-size:11px;font-weight:500}table{width:100%;border-collapse:collapse;font-size:12px}th{background:var(--bg-secondary);padding:.75rem;border-bottom:1px solid var(--border-color);font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px;text-align:left}td{padding:.75rem;border-bottom:1px solid var(--border-color);font-size:12px;color:var(--text-primary)}tr:hover{background:var(--bg-secondary);cursor:pointer}.badge{display:inline-block;padding:.2rem .6rem;border-radius:4px;font-size:10px;font-weight:500;background:var(--bg-secondary)}.sidebar-right{width:320px;background:var(--bg-primary);border-left:1px solid var(--border-color);display:flex;flex-direction:column;font-size:12px}.right-header{padding:.5rem;border-bottom:1px solid var(--border-color);display:flex;gap:4px;align-items:center}.right-tab-btn{background:none;border:none;padding:.4rem .6rem;cursor:pointer;font-size:11px;font-weight:500;color:var(--text-secondary);border-bottom:2px solid transparent;display:flex;gap:4px;align-items:center;transition:all .15s;border-radius:3px 3px 0 0}.right-tab-btn.active{color:var(--primary-color);border-bottom-color:var(--primary-color);background:#fff5f0}.right-search{padding:.5rem}.right-search input{width:100%;padding:.4rem;border:1px solid var(--border-color);border-radius:4px;font-size:11px;background:var(--bg-secondary)}.right-content{flex:1;overflow-y:auto;padding:.4rem;display:flex;flex-direction:column}.chat-item{padding:.6rem;border-radius:6px;margin-bottom:2px;cursor:pointer;display:flex;gap:8px;align-items:flex-start;transition:all .15s;font-size:11px}.chat-item:hover{background:var(--bg-tertiary)}.chat-item.unread{background:#fff5f0}.chat-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary-color);display:flex;align-items:center;justify-content:center;color:#fff;font-size:10px;font-weight:600;flex-shrink:0}.chat-info{flex:1;min-width:0}.chat-name{font-size:11px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis}.chat-preview{font-size:10px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;margin-top:1px}.unread-dot{width:6px;height:6px;border-radius:50%;background:var(--primary-color);flex-shrink:0;margin-top:3px}.ai-messages{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:8px}.ai-message{padding:.6rem;border-radius:6px;font-size:11px;line-height:1.3}.ai-message.user{background:var(--primary-color);color:#fff;margin-left:.5rem;text-align:right}.ai-message.assistant{background:var(--bg-secondary);color:var(--text-primary);margin-right:.5rem}.ai-input-area{padding:.6rem;border-top:1px solid var(--border-color);display:flex;gap:4px}.ai-input-area input{flex:1;padding:.4rem;border:1px solid var(--border-color);border-radius:4px;font-size:11px;background:var(--bg-secondary)}.ai-input-area button{background:none;border:none;cursor:pointer;color:var(--primary-color);font-size:12px;padding:.3rem}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#999}:root{--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--content-padding: 1.5rem 2rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-pill: 12px;--font-xs: 11px;--font-sm: 12px;--font-md: 13px;--font-lg: 14px;--font-xl: 18px;--font-2xl: 24px;--control-height: 36px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-modal: 0 10px 40px rgba(0, 0, 0, .2);--shadow-focus-ring: 0 0 0 3px rgba(44, 62, 127, .12);--color-primary: var(--primary-color);--color-primary-hover: #cf4f22;--color-success: #27ae60;--color-success-hover: #229954;--color-danger: #e74c3c;--color-danger-hover: #c0392b;--color-neutral-bg: #ffffff;--color-neutral-border: #ddd;--color-neutral-text: #2c3e50;--color-focus-ring: #2c3e7f}:is(.project-detail-page,.project-management-page) :is(.btn,.btn-primary,.btn-secondary,.btn-danger,.btn-success,.btn-cancel,.btn-cancel-edit,.btn-back-step,.btn-edit,.btn-save,.btn-new-project){display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1rem;border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:600;font-family:inherit;line-height:1.2;cursor:pointer;white-space:nowrap;transition:background-color .2s,border-color .2s,color .2s,opacity .2s}:is(.project-detail-page,.project-management-page) :is(.btn,.btn-primary,.btn-secondary,.btn-danger,.btn-success,.btn-cancel,.btn-cancel-edit,.btn-back-step,.btn-edit,.btn-save,.btn-new-project):disabled{opacity:.6;cursor:not-allowed}:is(.project-detail-page,.project-management-page) :is(.btn,.btn-primary,.btn-secondary,.btn-danger,.btn-success)[aria-busy=true]{opacity:.75;cursor:wait}:is(.project-detail-page,.project-management-page) :is(.btn-primary,.btn-new-project){background:var(--color-primary);color:#fff}:is(.project-detail-page,.project-management-page) :is(.btn-primary,.btn-new-project):hover:not(:disabled){background:var(--color-primary-hover)}:is(.project-detail-page,.project-management-page) :is(.btn-secondary,.btn-cancel,.btn-cancel-edit,.btn-back-step,.btn-edit){background:var(--color-neutral-bg);border-color:var(--color-neutral-border);color:var(--color-neutral-text)}:is(.project-detail-page,.project-management-page) :is(.btn-secondary,.btn-cancel,.btn-cancel-edit,.btn-back-step,.btn-edit):hover:not(:disabled){border-color:var(--color-focus-ring);background:#f9fafb}:is(.project-detail-page,.project-management-page) :is(.btn-success,.btn-save){background:var(--color-success);color:#fff}:is(.project-detail-page,.project-management-page) :is(.btn-success,.btn-save):hover:not(:disabled){background:var(--color-success-hover)}:is(.project-detail-page,.project-management-page) .btn-danger{background:var(--color-danger);color:#fff}:is(.project-detail-page,.project-management-page) .btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}:is(.project-detail-page,.project-management-page) .btn-sm{padding:.35rem .7rem;font-size:var(--font-xs)}:is(.project-detail-page,.project-management-page) .btn-page-action{padding:.75rem 1.4rem;font-size:var(--font-md)}:is(.project-detail-page,.project-management-page) :is(.btn,.btn-primary,.btn-secondary,.btn-danger,.btn-success,.btn-cancel,.btn-cancel-edit,.btn-back-step,.btn-edit,.btn-save,.btn-new-project):focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}:is(.project-detail-page,.project-management-page) .edit-actions :is(.btn-save,.btn-cancel-edit){flex:1}:is(.project-detail-page,.project-management-page) .form-group{margin-bottom:var(--space-5)}:is(.project-detail-page,.project-management-page) .form-group label{display:block;font-size:var(--font-sm);font-weight:600;color:var(--color-neutral-text);text-transform:uppercase;letter-spacing:.3px;margin-bottom:var(--space-2)}:is(.project-detail-page,.project-management-page) .form-group :is(input,select,textarea){width:100%;padding:.75rem;border:1px solid var(--color-neutral-border);border-radius:var(--radius-md);font-size:var(--font-md);font-family:inherit;color:var(--color-neutral-text);background:var(--color-neutral-bg);transition:border-color .2s,box-shadow .2s}:is(.project-detail-page,.project-management-page) .form-group textarea{resize:vertical;min-height:5.5rem}:is(.project-detail-page,.project-management-page) .form-group :is(input,select,textarea):focus{outline:none;border-color:var(--color-focus-ring);box-shadow:var(--shadow-focus-ring)}:is(.project-detail-page,.project-management-page) .form-group :is(input,select,textarea):disabled{background:#ecf0f1;cursor:not-allowed}:is(.project-detail-page,.project-management-page) .form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}:is(.project-detail-page,.project-management-page) .form-helper-text{margin-top:var(--space-2);font-size:var(--font-xs);color:#7f8c8d}:is(.project-detail-page,.project-management-page) :is(.form-error-text,.field-error){margin:var(--space-2) 0 0 0;font-size:var(--font-xs);color:var(--color-danger-hover);font-weight:600}:is(.project-detail-page,.project-management-page) .modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}:is(.project-detail-page,.project-management-page) .modal-content{background:var(--color-neutral-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);max-width:600px;width:90%;max-height:90vh;overflow-y:auto}:is(.project-detail-page,.project-management-page) .modal-content.modal-sm{max-width:420px}:is(.project-detail-page,.project-management-page) :is(.modal-content.modal-lg,.modal-content.modal-large){max-width:800px;width:95%;max-height:85vh}:is(.project-detail-page,.project-management-page) .modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5);border-bottom:1px solid #eee;background:#f9fafb;border-radius:var(--radius-lg) var(--radius-lg) 0 0}:is(.project-detail-page,.project-management-page) .modal-header :is(h2,h3){margin:0;font-size:var(--font-xl);font-weight:700;color:var(--color-neutral-text)}:is(.project-detail-page,.project-management-page) .modal-close{background:none;border:none;border-radius:var(--radius-sm);font-size:24px;cursor:pointer;color:#7f8c8d;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;transition:all .2s}:is(.project-detail-page,.project-management-page) .modal-close:hover{color:var(--color-neutral-text);background:#f0f0f0}:is(.project-detail-page,.project-management-page) .modal-body{padding:var(--space-6)}:is(.project-detail-page,.project-management-page) :is(.modal-footer,.modal-actions){display:flex;gap:var(--space-4);padding-top:var(--space-4);margin-top:var(--space-4);border-top:1px solid #eee}:is(.project-detail-page,.project-management-page) :is(.modal-footer,.modal-actions,.form-actions) :is(.btn-primary,.btn-secondary,.btn-danger,.btn-success,.btn-cancel,.btn-back-step){flex:1}:is(.project-detail-page,.project-management-page) .status-badge{display:inline-block;padding:.3rem .8rem;border-radius:var(--radius-pill);font-size:var(--font-xs);font-weight:700;text-transform:uppercase;letter-spacing:.4px}:is(.project-detail-page,.project-management-page) .status-badge.status-draft{background:#fdf3d6;color:#92640a}:is(.project-detail-page,.project-management-page) .status-badge.status-submitted{background:#e3f6ea;color:#1e7d42}:is(.project-detail-page,.project-management-page) :is(.empty-state,.tab-empty){text-align:center;padding:3rem 2rem;color:#95a5a6;font-size:var(--font-lg)}:is(.project-detail-page,.project-management-page) :is(.loading-state,.tab-loading,.loading){text-align:center;padding:3rem 2rem;color:#7f8c8d;font-size:var(--font-lg)}:is(.project-detail-page,.project-management-page) :is(.error-banner,.pm-error-banner){background:#ffebee;color:#c62828;border:1px solid #ffcdd2;padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:var(--font-md);margin-bottom:var(--space-4)}:is(.project-detail-page,.project-management-page) .success-banner{background:#e8f5e9;color:#2e7d32;border:1px solid #c8e6c9;padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:var(--font-md);margin-bottom:var(--space-4)}:is(.project-detail-page,.project-management-page) .info-banner{background:#eaf1ff;color:#2c3e7f;border:1px solid #cfe0ff;padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:var(--font-md);margin-bottom:var(--space-4)}:is(.project-detail-page,.project-management-page) :is(.page-header,.overview-header){display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:2px solid #eee}:is(.project-detail-page,.project-management-page) :is(.page-header,.overview-header) h2{margin:0;font-size:var(--font-2xl);color:var(--color-neutral-text)}:is(.project-detail-page,.project-management-page) .page-header h1{margin:0;font-size:var(--font-2xl);color:var(--color-neutral-text)}:is(.project-detail-page,.project-management-page) :is(.page-subtitle,.project-subtitle){margin:.4rem 0 0;font-size:var(--font-lg);color:#7f8c8d}:is(.project-detail-page,.project-management-page) .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid #eee}:is(.project-detail-page,.project-management-page) .section-header h3{margin:0;font-size:var(--font-lg);font-weight:700;color:var(--color-neutral-text)}*{box-sizing:border-box}.login-page{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#eef0f3;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:hidden}.login-shell{width:100%;max-width:1180px;background:#fff;border-radius:20px;box-shadow:0 30px 80px #14182140;overflow:hidden;display:flex;flex-direction:column}.login-hero{display:none;position:relative;color:#fff;padding:2.5rem;background-color:#1a1d24;background-image:linear-gradient(135deg,#0e1118d1,#0e111873 55%,#0e1118cc),url(/branding/hero-construction.jpg);background-size:cover;background-position:center;background-repeat:no-repeat}.login-hero-content{display:flex;flex-direction:column;justify-content:flex-end;min-height:100%;gap:1.25rem}.login-hero-headline{font-size:30px;line-height:1.2;font-weight:700;margin:0}.login-hero-headline-accent{color:#ef8237}.login-hero-copy{font-size:14px;line-height:1.6;color:#ffffffe0;margin:0;max-width:46ch}.login-hero-features{list-style:none;margin:.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem}.login-hero-feature{display:flex;align-items:center;gap:.6rem;font-size:12.5px;font-weight:600;color:#fff}.login-hero-feature svg{flex-shrink:0;color:#ef8237}.login-panel{display:flex;flex-direction:column;justify-content:space-between;background:#fff;padding:2.5rem 1.75rem 1.5rem}.login-panel-inner{width:100%;max-width:360px;margin:0 auto}.login-brand{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.3rem;margin-bottom:1.75rem}.login-brand-mark{width:64px;height:64px;object-fit:contain;margin-bottom:.3rem}.login-wordmark{font-size:22px;font-weight:800;letter-spacing:.04em;color:#1a1f29}.login-brand-subtitle{font-size:13px;color:#7a8190;margin:0}.login-section-label{display:flex;align-items:center;margin-bottom:1.1rem}.login-section-label span{font-size:12.5px;font-weight:600;color:#9aa0ab;text-transform:none}.login-error{background:#fdecea;color:#c62828;border-left:3px solid #c62828;padding:.7rem .9rem;border-radius:6px;font-size:12.5px;margin-bottom:1rem;line-height:1.4}.oauth-btn{width:100%;min-height:48px;padding:.85rem 1.1rem;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:background-color .15s,box-shadow .15s,border-color .15s;margin-bottom:.9rem}.oauth-btn:disabled{opacity:.7;cursor:not-allowed}.oauth-btn-microsoft{background:#fff;color:#1a1f29;border:1px solid #e0e2e7}.oauth-btn-microsoft:hover:not(:disabled){background:#f7f8fa;box-shadow:0 2px 10px #14182114}.oauth-btn-google{background:#fff;color:#1a1f29;border:1px solid #e0e2e7}.oauth-btn-google:hover:not(:disabled){background:#f7f8fa;box-shadow:0 2px 10px #14182114}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(26,31,41,.15);border-top-color:#1a1f29;border-radius:50%;animation:spin .8s linear infinite}.spinner-dark{border:2px solid rgba(26,31,41,.15);border-top-color:#1a1f29}@keyframes spin{to{transform:rotate(360deg)}}.login-domain-note{display:flex;align-items:flex-start;gap:.55rem;font-size:11.5px;line-height:1.5;color:#9aa0ab;margin:.5rem 0 0}.login-domain-note svg{flex-shrink:0;margin-top:2px;color:#b0b5bf}.login-panel-footer{text-align:center;padding-top:1.5rem}.login-panel-footer span{font-size:11px;color:#b0b5bf}@media(min-width:641px){.login-shell{flex-direction:row;min-height:560px}.login-hero{display:flex;flex:0 0 42%;padding:2rem 1.75rem}.login-hero-headline{font-size:24px}.login-hero-copy{display:none}.login-hero-features{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem}.login-hero-feature span{display:none}.login-panel{flex:0 0 58%;padding:2.5rem 2rem 1.75rem}}@media(min-width:1024px){.login-page{padding:2rem}.login-hero{flex:0 0 55%;padding:3.5rem}.login-hero-headline{font-size:34px}.login-hero-copy{display:block;font-size:14.5px}.login-hero-features{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1.75rem}.login-hero-feature span{display:inline}.login-panel{flex:0 0 45%;padding:3.5rem 3rem 2rem}}.create-company-container{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100vw;background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.create-company-card{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:450px;overflow:hidden}.create-company-header{background:linear-gradient(135deg,#e85a2b,#d64a1a);color:#fff;padding:2.5rem 2rem;text-align:center}.create-company-logo{font-size:40px;margin-bottom:.75rem}.create-company-header h1{font-size:22px;font-weight:600;margin:.5rem 0}.create-company-header p{font-size:13px;opacity:.9;margin:0;line-height:1.5}.create-company-form{padding:2rem}.create-company-form .error-message{background:#ffebee;color:#c62828;padding:.75rem 1rem;border-radius:6px;font-size:12px;margin-bottom:1rem;border-left:3px solid #c62828}.create-company-form .form-group{margin-bottom:1.25rem}.create-company-form .form-group label{display:block;font-size:12px;font-weight:600;color:#1a1a1a;margin-bottom:.4rem}.create-company-form .form-group input{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit;box-sizing:border-box;transition:all .2s}.create-company-form .form-group input:focus{outline:none;border-color:#e85a2b;box-shadow:0 0 0 3px #e85a2b1a}.create-company-form .form-group input:disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6}.create-company-btn{width:100%;padding:.8rem 1.5rem;background:#e85a2b;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s}.create-company-btn:hover:not(:disabled){background:#d64a1a;box-shadow:0 4px 12px #e85a2b4d}.create-company-btn:disabled{opacity:.7;cursor:not-allowed}.create-company-footer{padding:1.25rem 2rem 1.75rem;border-top:1px solid #e0e0e0;text-align:center}.create-company-signout{background:none;border:none;color:#999;font-size:12px;cursor:pointer;text-decoration:underline}.create-company-signout:hover:not(:disabled){color:#666}.create-company-signout:disabled{cursor:not-allowed;opacity:.6}.workspace-sidebar{width:240px;flex-shrink:0;min-width:240px;height:100%;background:#fff;border-right:1px solid #eee;display:flex;flex-direction:column;overflow:hidden}.workspace-sidebar-header{padding:.85rem 1rem;border-bottom:1px solid #eee;display:flex;flex-direction:column;gap:.6rem;flex-shrink:0}.workspace-sidebar-back{align-self:flex-start;padding:.4rem .7rem;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;color:#2c3e50;transition:all .2s}.workspace-sidebar-back:hover{border-color:#2c3e7f;background:#f9fafb}.workspace-sidebar-close{display:none}.workspace-sidebar-identity{min-width:0}.workspace-sidebar-title{font-size:14px;font-weight:700;color:#2c3e50;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.workspace-sidebar-subtitle{margin-top:2px;font-size:12px;color:#7f8c8d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-sidebar-nav{flex:1;overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;gap:2px}.workspace-sidebar-nav-btn{display:flex;align-items:center;gap:10px;padding:.65rem .75rem;border:none;background:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;color:#5a6572;text-align:left;transition:background .15s,color .15s;width:100%}.workspace-sidebar-nav-btn:hover{background:#f5f6fa;color:#2c3e50}.workspace-sidebar-nav-btn.active{background:#eaf1ff;color:#2c3e7f;font-weight:600}.workspace-sidebar-nav-btn .icon{font-size:15px;width:18px;text-align:center;flex-shrink:0}.workspace-sidebar-group-btn{display:flex;align-items:center;gap:10px;padding:.65rem .75rem;border:none;background:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;color:#5a6572;text-align:left;transition:background .15s,color .15s;width:100%}.workspace-sidebar-group-btn:hover{background:#f5f6fa;color:#2c3e50}.workspace-sidebar-group-btn.active{color:#2c3e7f;font-weight:600}.workspace-sidebar-group-btn .icon{font-size:15px;width:18px;text-align:center;flex-shrink:0}.workspace-sidebar-group-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-sidebar-chevron{flex-shrink:0;font-size:10px;color:#9aa3ad}.workspace-sidebar-children{display:flex;flex-direction:column;gap:2px}.workspace-sidebar-backdrop{display:none}@media(max-width:900px){.workspace-sidebar{width:190px;min-width:190px}}@media(max-width:640px){.workspace-sidebar{position:fixed;top:0;left:0;bottom:0;width:78vw;max-width:280px;min-width:0;z-index:40;transform:translate(-100%);transition:transform .2s ease;box-shadow:2px 0 12px #00000026}.workspace-sidebar.mobile-open{transform:translate(0)}.workspace-sidebar-close{display:block;position:absolute;top:.75rem;right:.75rem;width:28px;height:28px;border:none;background:#f5f6fa;border-radius:50%;cursor:pointer;font-size:13px;color:#5a6572}.workspace-sidebar-header{position:relative}.workspace-sidebar-backdrop{display:block;position:fixed;inset:0;background:#00000059;z-index:39}}.dispatch-container{width:100%;max-width:100%;min-width:0;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#f5f6fa}.dispatch-toolbar{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;background:#fff;border-bottom:1px solid #eee;gap:2rem;min-width:0;flex-shrink:0}.toolbar-left{display:flex;align-items:center;gap:1rem}.toolbar-left h2{margin:0;font-size:18px;color:#2c3e50;font-weight:600;white-space:nowrap}.date-picker{padding:.6rem .8rem;border:1px solid #ddd;border-radius:4px;font-size:13px;color:#2c3e50;cursor:pointer}.date-picker:focus{outline:none;border-color:#2c3e7f}.toolbar-date-input{padding:.6rem .8rem;border:1px solid #ddd;border-radius:4px;font-size:13px;color:#2c3e50;cursor:pointer;background:#fff;transition:all .2s}.toolbar-date-input:hover{border-color:#2c3e7f;background:#f9fafb}.toolbar-date-input:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 2px #2c3e7f1a}.toolbar-center{display:flex;gap:.5rem;align-items:center}.copy-section{display:flex;align-items:center;gap:.6rem;padding:0 .8rem;border-left:2px solid #ddd;border-right:2px solid #ddd;margin:0 .3rem}.copy-label{font-size:13px;font-weight:600;color:#2c3e50;white-space:nowrap;margin:0}.copy-btn{background:#27ae60;color:#fff;border-color:#27ae60}.copy-btn:hover{background:#229954;border-color:#229954}.toolbar-btn{padding:.6rem 1rem;background:#fff;border:1px solid #ddd;border-radius:4px;color:#2c3e50;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}.toolbar-btn:hover{background:#f9fafb;border-color:#2c3e7f}.toolbar-right{display:flex;gap:1rem;align-items:center}.search-input{padding:.6rem 1rem;border:1px solid #ddd;border-radius:4px;font-size:13px;width:200px}.search-input:focus{outline:none;border-color:#2c3e7f}.filter-select{padding:.6rem 1rem;border:1px solid #ddd;border-radius:4px;font-size:13px;color:#2c3e50;cursor:pointer;background:#fff}.filter-select:focus{outline:none;border-color:#2c3e7f}.dispatch-content{display:flex;flex:1;min-width:0;min-height:0;overflow:hidden;gap:1.5rem;padding:1.5rem}.dispatch-sidebar{flex:0 0 220px;min-width:220px;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto;overflow-x:hidden}.resource-section{background:#fff;border-radius:6px;padding:1.2rem;box-shadow:0 1px 3px #0000001a}.resource-section h3{margin:0 0 1rem;font-size:13px;font-weight:600;color:#2c3e50;text-transform:uppercase;letter-spacing:.5px}.resource-list{display:flex;flex-direction:column;gap:.7rem}.resource-item{display:flex;align-items:center;gap:.8rem;padding:.8rem;background:#f9fafb;border-radius:4px;cursor:grab;transition:all .2s;border:2px solid #eee;user-select:none;-webkit-user-select:none;-moz-user-select:none}.resource-item:hover{background:#eff1f5;border-color:#2c3e7f;transform:translateY(-2px);box-shadow:0 2px 8px #2c3e7f26}.resource-item.dragging{opacity:.5;background:#e7f0ff;border-color:#2c3e7f;cursor:grabbing}.resource-avatar{width:32px;height:32px;border-radius:50%;background:#2c3e7f;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.resource-icon{font-size:18px;flex-shrink:0}.resource-info{flex:1;min-width:0}.resource-name{font-size:12px;font-weight:600;color:#2c3e50;margin-bottom:.2rem}.resource-role{font-size:11px;color:#7f8c8d}.dispatch-board{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff;border-radius:6px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.board-header{padding:1.2rem;border-bottom:1px solid #eee;background:#f9fafb}.board-header h3{margin:0;font-size:14px;font-weight:600;color:#2c3e50}.columns-container{display:flex;flex:1;min-width:0;min-height:0;overflow-x:auto;overflow-y:hidden;gap:1rem;padding:1.2rem}.project-column{flex:0 0 280px;min-width:280px;display:flex;flex-direction:column;background:#f9fafb;border-radius:6px;border:1px solid #eee;overflow:hidden}.column-header{background:linear-gradient(135deg,#e8751a,#d46e0f);color:#fff;padding:1rem;border-bottom:2px solid #d46e0f;flex-shrink:0}.project-title{font-size:13px;font-weight:600;margin-bottom:.4rem}.assigned-count{font-size:11px;opacity:.9}.column-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto}.activity-groups{display:flex;flex-direction:column;padding:.6rem;gap:.4rem}.no-activities-note{font-size:11px;color:#bdc3c7;text-align:center;padding:1rem .5rem}.activity-group{background:#fff;border:1px solid #e6e8ec;border-radius:4px;overflow:hidden}.activity-group-header{width:100%;display:flex;align-items:flex-start;gap:.5rem;padding:.55rem .6rem;background:none;border:none;cursor:pointer;text-align:left;font:inherit;color:inherit}.activity-group-header:hover{background:#f5f6fa}.activity-group-chevron{flex-shrink:0;font-size:9px;color:#95a5a6;width:10px;padding-top:2px}.activity-group-identity{flex:1;min-width:0;font-size:12px;font-weight:600;color:#2c3e50;white-space:normal;overflow-wrap:break-word}.activity-group-milestone-badge{flex-shrink:0;font-size:9px;color:#d68910;padding-top:2px}.activity-group-historical-badge{flex-shrink:0;font-size:9px;font-weight:600;color:#a08a4a;background:#fbf6e8;border:1px solid #ecdfb0;border-radius:999px;padding:.1rem .45rem;white-space:nowrap}.activity-group.activity-group-historical{border-style:dashed}.activity-group-count{flex-shrink:0;min-width:18px;height:18px;padding:0 .35rem;border-radius:999px;background:#eef1f7;color:#2c3e7f;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}.activity-group-body{border-top:1px solid #eee;padding:.6rem;display:flex;flex-direction:column;gap:.6rem;transition:all .2s}.activity-group-body.drag-over{background:#e7f0ff}.activity-group-subsection-label{font-size:10px;font-weight:700;color:#7f8c8d;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.4rem}.activity-group-subsection{display:flex;flex-direction:column}.activity-group-subsection+.activity-group-subsection{margin-top:.2rem}.activity-group-subsection .assigned-card-group,.activity-group-subsection .assigned-card{margin-bottom:.4rem}.activity-group-empty{font-size:11px;color:#bdc3c7;padding:.3rem 0}.project-wide-section{border-top:1px solid #eee;flex-shrink:0}.project-wide-header{display:flex;align-items:center;gap:.5rem;padding:.6rem .6rem .3rem}.project-wide-label{font-size:10px;font-weight:700;color:#7f8c8d;text-transform:uppercase;letter-spacing:.5px}.drop-zone{flex:1;padding:1rem;display:flex;flex-direction:column;gap:.6rem;min-height:120px;position:relative;transition:all .2s}.drop-zone.drag-over{background:#e7f0ff;border:2px dashed #2C3E7F}.empty-zone{display:flex;align-items:center;justify-content:center;height:100%;font-size:12px;color:#bdc3c7;text-align:center;padding:1rem}.assigned-card{display:flex;justify-content:space-between;align-items:center;padding:.8rem;background:#fff;border:1px solid #ddd;border-radius:4px;font-size:12px;box-shadow:0 1px 2px #0000000d}.card-content{flex:1;min-width:0}.card-name{font-weight:600;color:#2c3e50;margin-bottom:.2rem}.card-role{font-size:11px;color:#7f8c8d}.btn-remove-small{flex-shrink:0;background:none;border:none;color:#e74c3c;cursor:pointer;font-size:16px;padding:.2rem .4rem;transition:all .2s}.btn-remove-small:hover{color:#c0392b}.assigned-card-group{display:flex;flex-direction:column;gap:.4rem}.assigned-equipment-nested{display:flex;flex-direction:column;gap:.4rem;margin-left:1.25rem;padding-left:.6rem;border-left:2px solid #e0e0e0}.assigned-card-nested{cursor:default;background:#f8f9fb;border-style:dashed}.assigned-card-lock-icon{flex-shrink:0;font-size:12px;opacity:.5;padding:.2rem .4rem}.dispatch-error-banner{margin:0 1.5rem;padding:.8rem 1.2rem;background:#fdecea;border:1px solid #f5c6cb;border-radius:4px;color:#c0392b;font-size:13px}.btn-assign-small{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:#27ae60;color:#fff;border:none;cursor:pointer;font-size:16px;font-weight:700;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-assign-small:hover{background:#229954;transform:scale(1.1)}.btn-assign-small:active{transform:scale(.95)}.project-select{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:4px;font-size:13px;color:#2c3e50;background:#fff;cursor:pointer}.project-select:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 2px #2c3e7f1a}.loading{display:flex;align-items:center;justify-content:center;height:100%;color:#7f8c8d;font-size:16px}@media(max-width:1400px){.dispatch-content{gap:1rem}.dispatch-sidebar{flex:0 0 200px;min-width:200px}.project-column{flex:0 0 250px;min-width:250px}}@media(max-width:1200px){.dispatch-content{flex-direction:column}.dispatch-sidebar{flex:0 0 auto;min-width:0;width:100%}.dispatch-board{flex:1;min-width:0}.columns-container{gap:.8rem}.project-column{flex:0 0 200px;min-width:200px}}.md-open-requests-panel{grid-area:requests}.md-request-group{margin-bottom:1.25rem}.md-request-group:last-child{margin-bottom:0}.md-request-group-header{font-size:11px;font-weight:700;color:#7f8c8d;text-transform:uppercase;letter-spacing:.4px;padding:0 .2rem .5rem}.md-request-group-list{display:flex;flex-direction:column;gap:.6rem}.md-request-card{background:#fff;border:1px solid #e5e7eb;border-left:3px solid transparent;border-radius:var(--radius-md, 6px);padding:.7rem .8rem;display:flex;flex-direction:column;gap:.35rem;user-select:none;-webkit-user-select:none;transition:box-shadow .15s,border-color .15s,transform .15s}.md-request-card:hover{box-shadow:0 2px 6px #00000014}.md-request-card.selected{border-color:var(--color-focus-ring, #2c3e7f);box-shadow:0 0 0 2px #2c3e7f1f}.md-request-card.dragging{opacity:.5;transform:scale(.98)}.md-request-card.md-priority-urgent{border-left-color:var(--color-danger, #e74c3c)}.md-request-card.md-priority-high{border-left-color:#d68910}.md-request-card.md-priority-normal{border-left-color:#cfd4dc}.md-request-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.md-request-card-title{font-size:13px;font-weight:700;color:#2c3e50;line-height:1.3}.md-request-card-meta{display:flex;flex-wrap:wrap;gap:.3rem;font-size:11px;color:#7f8c8d}.md-request-card-location{display:flex;align-items:flex-start;gap:.4rem;font-size:11px;color:#4b5563;line-height:1.35}.md-request-card-location .md-location-text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.md-request-card-notes{font-size:11px;font-style:italic;color:#8a8f98;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-request-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.1rem}.md-request-card-number{font-variant-numeric:tabular-nums;font-weight:600;color:#4b5563}.md-request-card-menu{position:relative}.md-request-card-menu-btn{background:none;border:none;cursor:pointer;color:#9aa1ab;font-size:14px;line-height:1;padding:.1rem .35rem;border-radius:var(--radius-sm, 4px)}.md-request-card-menu-btn:hover{background:#f0f0f0;color:#2c3e50}.md-request-card-menu-dropdown{position:absolute;bottom:100%;right:0;z-index:5;background:#fff;border:1px solid #e0e3e8;border-radius:var(--radius-sm, 4px);box-shadow:var(--shadow-modal, 0 6px 20px rgba(0, 0, 0, .15));min-width:150px;overflow:hidden}.md-request-card-menu-dropdown button{display:block;width:100%;text-align:left;background:none;border:none;padding:.5rem .7rem;font-size:12px;color:var(--color-danger, #c0392b);cursor:pointer}.md-request-card-menu-dropdown button:hover{background:#fbeeee}.md-field-request-card{cursor:pointer;border-left-style:dashed}.md-field-request-card:focus-visible{outline:2px solid var(--color-focus-ring, #2c3e7f);outline-offset:1px}.md-field-request-eyebrow{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#8a8f98}.md-field-request-cta{font-size:11px;font-weight:600;color:var(--color-primary, #2c3e7f)}.md-delivery-map{grid-area:map;display:flex;flex-direction:column;min-height:0}.md-panel-subtitle{font-size:11px;color:#7f8c8d;margin-top:.1rem}.md-map-surface{position:relative;flex:1;min-height:160px;margin:0 1rem 1rem;border-radius:var(--radius-md, 6px);overflow:hidden;background:#eef1f5;background-image:linear-gradient(#e3e7ed 1px,transparent 1px),linear-gradient(90deg,#e3e7ed 1px,transparent 1px);background-size:24px 24px;border:1px solid #dfe3e8}.md-map-roads{position:absolute;inset:0}.md-map-road{position:absolute;background:#d4d9e0}.md-map-road-h{left:0;right:0;height:6px;transform:translateY(-3px)}.md-map-road-v{top:0;bottom:0;width:6px;transform:translate(-3px)}.md-map-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.md-map-route{stroke:#9ca3af;stroke-width:.6;stroke-dasharray:2 1.5;vector-effect:non-scaling-stroke}.md-map-route-selected{stroke:var(--color-primary, #2c3e7f);stroke-width:.9;stroke-dasharray:none}.md-map-marker-pair{pointer-events:none}.md-map-marker{position:absolute;width:14px;height:14px;transform:translate(-50%,-50%);border-radius:50%;border:2px solid white;box-shadow:0 1px 3px #00000059;cursor:pointer;pointer-events:auto;padding:0;transition:transform .15s,box-shadow .15s}.md-map-marker:hover{transform:translate(-50%,-50%) scale(1.2)}.md-map-marker.selected{box-shadow:0 0 0 3px #2c3e7f4d,0 1px 3px #00000059;transform:translate(-50%,-50%) scale(1.25)}.md-map-marker-pickup{background:#2c9c6b}.md-map-marker-delivery{background:var(--color-danger, #e74c3c);border-radius:3px}.md-map-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#9aa1ab;font-size:13px}.md-map-legend{position:absolute;bottom:.6rem;left:.6rem;background:#ffffffeb;border:1px solid #e0e3e8;border-radius:var(--radius-sm, 4px);padding:.4rem .6rem;display:flex;gap:.8rem;font-size:11px;color:#4b5563;box-shadow:0 1px 3px #00000014}.md-map-legend-item{display:flex;align-items:center;gap:.35rem}.md-map-legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.md-map-legend-pickup{background:#2c9c6b}.md-map-legend-delivery{background:var(--color-danger, #e74c3c);border-radius:2px}.md-driver-board{grid-area:drivers;display:flex;flex-direction:column;min-height:0}.md-driver-board-scroll{flex:1;min-height:0;overflow-x:auto;overflow-y:hidden;display:flex;gap:.9rem;padding:0 1rem 1rem}.md-driver-board-empty{display:flex;align-items:center;justify-content:center;color:#9aa1ab;font-size:12.5px;text-align:center;padding:1rem;width:100%}.md-driver-column{flex:0 0 240px;display:flex;flex-direction:column;background:#f7f8fa;border:1px solid #e5e7eb;border-radius:var(--radius-md, 6px);min-height:0;transition:border-color .15s,background .15s}.md-driver-column.drag-over{border-color:var(--color-primary, #2c3e7f);background:#eef1fb}.md-driver-column-header{display:flex;align-items:flex-start;gap:.6rem;padding:.75rem .75rem .6rem;border-bottom:1px solid #e5e7eb}.md-driver-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-primary, #2c3e7f);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.md-driver-info{flex:1;min-width:0}.md-driver-name{font-size:13px;font-weight:700;color:#2c3e50}.md-driver-vehicle{font-size:11px;color:#7f8c8d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-driver-status{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;flex-shrink:0}.md-driver-dot{width:8px;height:8px;border-radius:50%;align-self:flex-end}.md-driver-dot.available{background:#2c9c6b}.md-driver-dot.busy{background:#d68910}.md-driver-dot.unavailable{background:#b5bac2}.md-driver-status-label{font-size:10px;color:#7f8c8d;white-space:nowrap}.md-driver-task-count{font-size:10px;font-weight:700;color:#2c3e50;background:#e9ebef;border-radius:999px;padding:.05rem .4rem}.md-driver-dropzone{flex:1;min-height:100px;overflow-y:auto;padding:.65rem;display:flex;flex-direction:column;gap:.6rem}.md-driver-empty{font-size:12px;color:#9aa1ab;text-align:center;padding:1rem .5rem;border:1px dashed #d6d9de;border-radius:var(--radius-sm, 4px)}.md-driver-task-card{background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius-md, 6px);padding:.6rem .65rem;display:flex;flex-direction:column;gap:.35rem}.md-driver-task-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.4rem;position:relative}.md-driver-task-title{font-size:12.5px;font-weight:700;color:#2c3e50;line-height:1.3}.md-driver-task-menu{position:relative}.md-driver-task-menu-btn{background:none;border:none;cursor:pointer;color:#9aa1ab;font-size:14px;line-height:1;padding:.1rem .3rem;border-radius:var(--radius-sm, 4px)}.md-driver-task-menu-btn:hover{background:#f0f0f0;color:#2c3e50}.md-driver-task-menu-dropdown{position:absolute;top:100%;right:0;z-index:5;background:#fff;border:1px solid #e0e3e8;border-radius:var(--radius-sm, 4px);box-shadow:var(--shadow-modal, 0 6px 20px rgba(0, 0, 0, .15));min-width:150px;overflow:hidden}.md-driver-task-menu-dropdown button{display:block;width:100%;text-align:left;background:none;border:none;padding:.5rem .7rem;font-size:12px;color:var(--color-danger, #c0392b);cursor:pointer}.md-driver-task-menu-dropdown button:hover{background:#fbeeee}.md-driver-task-meta{font-size:10.5px;color:#7f8c8d}.md-driver-task-location{display:flex;align-items:flex-start;gap:.35rem;font-size:10.5px;color:#4b5563;line-height:1.3}.md-driver-task-location .md-location-text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}.md-driver-task-footer{display:flex;gap:.35rem}.md-driver-task-actions{margin-top:.15rem}.md-driver-task-actions .md-btn-small{width:100%}.md-activity-feed{grid-area:activity}.md-activity-scroll{padding-top:.25rem}.md-activity-timeline{display:flex;flex-direction:column}.md-activity-entry{display:flex;gap:.6rem;padding:.55rem .2rem;position:relative}.md-activity-entry:before{content:"";position:absolute;left:5px;top:1.1rem;bottom:-.55rem;width:1px;background:#e5e7eb}.md-activity-entry:last-child:before{display:none}.md-activity-marker{flex-shrink:0;width:11px;height:11px;border-radius:50%;background:#cfd4dc;border:2px solid white;box-shadow:0 0 0 1px #e5e7eb;margin-top:.15rem}.md-activity-entry-requested .md-activity-marker{background:#7f8c8d}.md-activity-entry-assigned .md-activity-marker{background:var(--color-primary, #2c3e7f)}.md-activity-entry-picked_up .md-activity-marker{background:#d68910}.md-activity-entry-delivered .md-activity-marker{background:#2c9c6b}.md-activity-entry-unable_to_complete .md-activity-marker{background:var(--color-danger, #e74c3c)}.md-activity-entry-cancelled .md-activity-marker{background:#b5bac2}.md-activity-body{flex:1;min-width:0}.md-activity-text{font-size:12.5px;color:#2c3e50;line-height:1.4}.md-activity-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.2rem;font-size:10.5px;color:#9aa1ab}.md-activity-type-tag{font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#7f8c8d}.md-activity-type-tag-delivered{color:#2c9c6b}.md-activity-type-tag-unable_to_complete{color:var(--color-danger, #e74c3c)}.md-activity-type-tag-assigned{color:var(--color-primary, #2c3e7f)}.md-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.md-modal-content{background:#fff;border-radius:var(--radius-lg, 8px);box-shadow:var(--shadow-modal, 0 10px 40px rgba(0, 0, 0, .2));max-width:600px;width:90%;max-height:90vh;overflow-y:auto}.md-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #eee;background:#f9fafb;border-radius:var(--radius-lg, 8px) var(--radius-lg, 8px) 0 0}.md-modal-header h2{margin:0;font-size:18px;font-weight:700;color:#2c3e50}.md-modal-close{background:none;border:none;border-radius:var(--radius-sm, 4px);font-size:22px;cursor:pointer;color:#7f8c8d;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;transition:all .2s}.md-modal-close:hover{color:#2c3e50;background:#f0f0f0}.md-modal-body{padding:1.5rem}.md-modal-footer{display:flex;gap:1rem;padding:1rem 1.5rem;border-top:1px solid #eee}.md-modal-footer .md-btn{flex:1}.md-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.md-form-group{margin-bottom:1.25rem}.md-form-group label{display:block;font-size:12px;font-weight:600;color:#2c3e50;text-transform:uppercase;letter-spacing:.3px;margin-bottom:.4rem}.md-form-group :is(input,select,textarea){width:100%;padding:.65rem .75rem;border:1px solid #ddd;border-radius:var(--radius-md, 6px);font-size:13px;font-family:inherit;color:#2c3e50;background:#fff;transition:border-color .2s,box-shadow .2s}.md-form-group textarea{resize:vertical;min-height:4.5rem}.md-form-group :is(input,select,textarea):focus{outline:none;border-color:var(--color-focus-ring, #2c3e7f);box-shadow:var(--shadow-focus-ring, 0 0 0 3px rgba(44, 62, 127, .12))}.md-error-banner{background:#ffebee;color:#c62828;border:1px solid #ffcdd2;padding:.7rem .9rem;border-radius:var(--radius-sm, 4px);font-size:13px;margin-bottom:1rem}@media(max-width:640px){.md-form-row{grid-template-columns:1fr}}.md-manage-board-content{max-width:420px}.md-manage-board-hint{margin:0 0 1rem;font-size:12.5px;color:#7f8c8d;line-height:1.5}.md-manage-board-list{display:flex;flex-direction:column;gap:.5rem;max-height:320px;overflow-y:auto}.md-board-employee-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border:1px solid #eee;border-radius:var(--radius-sm, 4px);font-size:13px;color:#2c3e50;cursor:pointer}.md-board-employee-row input{flex-shrink:0}.md-board-employee-forced{margin-left:auto;font-size:10px;text-transform:uppercase;letter-spacing:.3px;color:#a5680f;background:#fdf1de;padding:.15rem .4rem;border-radius:var(--radius-sm, 4px)}.md-frd-body{display:flex;flex-direction:column;gap:1rem}.md-frd-top-row{display:flex;align-items:center;justify-content:space-between}.md-frd-number{font-variant-numeric:tabular-nums;font-weight:700;color:#4b5563;font-size:12px}.md-frd-subline{font-size:12.5px;color:#7f8c8d}.md-frd-fields{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}.md-frd-field label{display:block;font-size:11px;font-weight:600;color:#7f8c8d;text-transform:uppercase;letter-spacing:.3px;margin-bottom:.3rem}.md-frd-field select{width:100%;padding:.5rem .6rem;border:1px solid #ddd;border-radius:var(--radius-md, 6px);font-size:13px;color:#2c3e50;background:#fff}.md-frd-field-value{font-size:13.5px;color:#2c3e50}.md-frd-description label{display:block;font-size:11px;font-weight:600;color:#7f8c8d;text-transform:uppercase;letter-spacing:.3px;margin-bottom:.3rem}.md-frd-description p{margin:0;font-size:13.5px;color:#2c3e50;line-height:1.5;white-space:pre-wrap}.md-frd-convert{border-top:1px solid #eee;padding-top:.9rem}.md-frd-converted-notice{font-size:13px;font-weight:600;color:#2c9c6b}.md-frd-activity{border-top:1px solid #eee;padding-top:.9rem}.md-frd-activity h4{margin:0 0 .6rem;font-size:13px;color:#2c3e50}.md-frd-activity-list{display:flex;flex-direction:column;gap:.55rem;margin-bottom:.9rem}.md-frd-activity-item{font-size:12.5px;color:#4b5563;padding:.5rem .6rem;border-radius:var(--radius-sm, 4px);background:#f9fafb}.md-frd-activity-item.internal{background:#fff8e6;border:1px solid #f0e0ad}.md-frd-activity-item-top{display:flex;align-items:center;gap:.4rem;margin-bottom:.2rem}.md-frd-internal-badge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#a5680f;background:#fdf1de;padding:.1rem .4rem;border-radius:var(--radius-sm, 4px)}.md-frd-activity-time{font-size:11px;color:#9aa1ab}.md-frd-activity-note-text{white-space:pre-wrap}.md-frd-add-note label{display:block;font-size:11px;font-weight:600;color:#7f8c8d;text-transform:uppercase;letter-spacing:.3px;margin-bottom:.3rem}.md-frd-add-note textarea{width:100%;padding:.55rem .65rem;border:1px solid #ddd;border-radius:var(--radius-md, 6px);font-size:13px;font-family:inherit;color:#2c3e50;resize:vertical;margin-bottom:.5rem}.md-frd-add-note textarea:focus{outline:none;border-color:var(--color-focus-ring, #2c3e7f);box-shadow:var(--shadow-focus-ring, 0 0 0 3px rgba(44, 62, 127, .12))}.md-page{width:100%;max-width:100%;min-width:0;height:100%;overflow:hidden;display:flex;flex-direction:column;background:#f5f6fa}.md-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem 1rem;flex-shrink:0}.md-page-header h2{margin:0 0 4px;font-size:20px;color:#2c3e50}.md-page-header p{margin:0;color:#7f8c8d;font-size:13px;line-height:1.5}.md-header-btn{padding:.6rem 1.1rem;font-size:13px;white-space:nowrap;flex-shrink:0}.md-page-loading{flex:1;display:flex;align-items:center;justify-content:center;color:#9aa1ab;font-size:14px;padding:0 1.5rem 1.5rem}.md-page-error{color:var(--color-danger, #c0392b)}.md-page-error-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0 1.5rem 1rem;padding:.65rem .9rem;background:#fbeeee;color:var(--color-danger, #c0392b);border:1px solid #f3cccc;border-radius:var(--radius-sm, 4px);font-size:13px;flex-shrink:0}.md-page-error-banner button{background:none;border:none;color:inherit;cursor:pointer;font-size:14px;line-height:1;flex-shrink:0}.md-board{flex:1;min-height:0;display:grid;grid-template-columns:minmax(260px,300px) 1fr minmax(260px,300px);grid-template-rows:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"requests map activity" "requests drivers activity";gap:1rem;padding:0 1.5rem 1.5rem;min-width:0}@media(max-width:1100px){.md-board{grid-template-columns:minmax(240px,280px) 1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr) 260px;grid-template-areas:"requests map" "requests drivers" "activity activity"}}@media(max-width:720px){.md-page-header{flex-direction:column}.md-board{grid-template-columns:1fr;grid-template-rows:340px 220px 260px 240px;grid-template-areas:"requests" "map" "drivers" "activity"}}.md-panel{background:#fff;border:1px solid #e5e7eb;border-radius:var(--radius-lg, 8px);box-shadow:0 1px 3px #0000000f;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}.md-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:.9rem 1rem;border-bottom:1px solid #eee;flex-shrink:0}.md-panel-header h3{margin:0;font-size:14px;font-weight:700;color:#2c3e50}.md-count-badge{background:var(--color-primary, #2c3e7f);color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:.1rem .5rem;flex-shrink:0}.md-panel-scroll{flex:1;min-height:0;overflow-y:auto;padding:.85rem 1rem}.md-empty-state{color:#9aa1ab;font-size:12.5px;text-align:center;padding:2rem 1rem}.md-status-badge{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:.2rem .5rem;border-radius:var(--radius-sm, 4px)}.md-status-requested{background:#eef1f5;color:#5b6472}.md-status-assigned{background:#e7ebfa;color:var(--color-primary, #2c3e7f)}.md-status-picked_up{background:#fdf1de;color:#a5680f}.md-priority-badge{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:.2rem .5rem;border-radius:var(--radius-sm, 4px)}.md-priority-badge-normal{background:#eef1f5;color:#5b6472}.md-priority-badge-high{background:#fdf1de;color:#a5680f}.md-priority-badge-urgent{background:#fbeaea;color:var(--color-danger, #c0392b)}.md-priority-badge-low{background:#eef1f5;color:#5b6472}.md-fr-status-badge{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:.2rem .5rem;border-radius:var(--radius-sm, 4px)}.md-fr-status-new{background:#eef1f5;color:#5b6472}.md-fr-status-in_progress{background:#e7ebfa;color:var(--color-primary, #2c3e7f)}.md-fr-status-ordered{background:#fdf1de;color:#a5680f}.md-fr-status-delivered{background:#e5f5ec;color:#2c9c6b}.md-fr-status-cancelled{background:#f1f1f1;color:#9aa1ab}.md-location-icon{flex-shrink:0;width:8px;height:8px;margin-top:.3rem;border-radius:50%}.md-pickup-icon{background:#2c9c6b}.md-delivery-icon{background:var(--color-danger, #e74c3c);border-radius:2px}.md-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1rem;border-radius:var(--radius-md, 6px);border:1px solid transparent;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.md-btn-primary{background:var(--color-primary, #2c3e7f);color:#fff}.md-btn-primary:hover{background:#24326a}.md-btn-secondary{background:#fff;color:#2c3e50;border-color:#d7dbe1}.md-btn-secondary:hover{background:#f5f6fa}.md-btn-small{padding:.4rem .7rem;font-size:12px}.dispatch-workspace{display:flex;flex-direction:row;height:100%;background:#f5f6fa}.dsp-content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.dsp-mobile-bar{display:none}.dsp-content{flex:1;overflow-y:auto}@media(max-width:640px){.dsp-mobile-bar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #eee;flex-shrink:0}.dsp-mobile-menu-btn{width:34px;height:34px;flex-shrink:0;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:15px;color:#2c3e50}.dsp-mobile-menu-btn:hover{border-color:#2c3e7f}.dsp-mobile-title{min-width:0;display:flex;flex-direction:column;line-height:1.3}.dsp-mobile-title strong{font-size:13px;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dsp-mobile-title span{font-size:11px;color:#7f8c8d}}.company-logo-box{display:flex;align-items:center;justify-content:center;overflow:hidden;background:#f8f7f6;border:1px solid #d0ccc8;border-radius:var(--radius-lg, 8px);flex-shrink:0}.company-logo-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.company-logo-box--preview{width:100%;max-width:360px;height:140px}.company-logo-box--avatar{width:48px;height:48px;border-radius:8px}.company-logo-fallback-initial{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:18px;font-weight:700}.company-logo-fallback-text{color:#999;font-size:13px;padding:0 var(--space-3, .75rem);text-align:center}@media(max-width:768px){.company-logo-box--avatar{width:40px;height:40px;font-size:18px}.company-logo-box--preview{height:110px}}.company-list{background:#f9f9f9;border-top:1px solid #eee;border-bottom:1px solid #eee;padding:15px;margin:15px 0}.company-list.loading,.company-list.empty{text-align:center;color:#999;font-size:13px;padding:20px 15px}.company-header{margin-bottom:12px;display:none}.company-header h3{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;color:#666;letter-spacing:.5px}.company-info{display:flex;gap:12px;margin-bottom:15px;padding:12px;background:#fff;border-radius:8px;align-items:flex-start}.company-logo{width:50px;height:50px;border-radius:6px;object-fit:cover;border:1px solid #ddd;flex-shrink:0}.company-details{flex:1;min-width:0}.company-details h4{margin:0 0 4px;font-size:14px;font-weight:600;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.company-role{display:inline-block;background:#e3f2fd;color:#1976d2;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:capitalize}.company-actions{display:flex;flex-direction:column;gap:8px}.action-link{display:block;padding:10px 12px;background:#fff;border:1px solid #ddd;border-radius:6px;text-decoration:none;color:#333;font-size:13px;font-weight:500;text-align:center;transition:all .2s;cursor:pointer}.action-link:hover{background:#f5f5f5;border-color:#999}.action-link.admin{background:#fff3e0;border-color:#ffb74d;color:#e65100}.action-link.admin:hover{background:#ffe0b2}.profile-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.profile-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:400px;width:90%;padding:30px;position:relative;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.close-btn{position:absolute;top:15px;right:15px;background:none;border:none;font-size:24px;cursor:pointer;color:#999;transition:color .2s}.close-btn:hover{color:#333}.profile-header{text-align:center;margin-bottom:30px}.profile-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-size:32px;font-weight:700;margin:0 auto 15px}.profile-header h2{margin:0;font-size:24px;color:#333}.profile-details{margin-bottom:30px}.detail-item{margin-bottom:20px}.detail-item label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;color:#999;margin-bottom:5px;letter-spacing:.5px}.detail-item p{margin:0;font-size:14px;color:#333}.status-active{color:#4caf50;font-weight:500}.profile-actions{display:flex;gap:10px;flex-wrap:wrap}.btn{flex:1;min-width:100px;padding:10px 15px;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary{background:#f5f5f5;color:#333;border:1px solid #ddd}.btn-secondary:hover{background:#e8e8e8}.btn-danger{background:#ff6b6b;color:#fff}.btn-danger:hover{background:#ff5252}.profile-name-display{display:flex;align-items:center;justify-content:space-between;gap:10px}.profile-name-edit-link{background:none;border:none;color:#667eea;font-size:12px;font-weight:600;cursor:pointer;padding:0}.profile-name-edit-link:hover{text-decoration:underline}.profile-name-edit-row{display:flex;flex-direction:column;gap:8px}.profile-name-input{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:14px;box-sizing:border-box}.profile-name-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea26}.profile-name-edit-actions{display:flex;gap:8px}.btn-primary-small,.btn-secondary-small{flex:none;min-width:0;padding:6px 14px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;border:none}.btn-primary-small{background:#667eea;color:#fff}.btn-primary-small:hover{background:#5a6fd8}.btn-secondary-small{background:#f5f5f5;color:#333;border:1px solid #ddd}.btn-secondary-small:hover{background:#e8e8e8}.profile-name-error{margin:0;font-size:12px;color:#c0392b;font-weight:600}.confirm-message{margin-top:15px;padding:12px;background:#fff3cd;border-left:4px solid #ffc107;color:#856404;border-radius:4px;font-size:13px;font-weight:500}.loading-text,.empty-text{font-size:13px;color:#999;padding:12px;margin:0;text-align:center}.home-container{display:flex;gap:1.5rem;height:100%}.home-main{flex:1;overflow-y:auto;padding-right:0}.home-sidebar{width:350px;flex-shrink:0;overflow:hidden}.active-projects-section h3{margin:0 0 16px;font-size:16px;font-weight:600;color:#333}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.project-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 12px;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s}.project-card:hover{background:#f0f0f0;border-color:#667eea;box-shadow:0 2px 8px #00000014}.project-icon{font-size:28px}.project-name{font-size:13px;font-weight:500;color:#333;text-align:center;word-break:break-word}@media(max-width:1200px){.home-container{flex-direction:column}.home-sidebar{width:100%;max-height:300px}}.company-selector{position:relative}.company-selector-input-row{position:relative;display:flex;align-items:center}.company-selector-input{width:100%;padding:8px 12px;border:1px solid #d0ccc8;border-radius:4px;font-size:14px;box-sizing:border-box;font-family:inherit;background:#fff}.company-selector-input:focus{outline:none;border-color:#2c3e7f}.company-selector-input:disabled{background:#f5f5f5;color:#999;cursor:not-allowed}.company-selector-clear{position:absolute;right:6px;border:none;background:transparent;color:#9aa1a9;font-size:13px;cursor:pointer;padding:4px 6px;line-height:1}.company-selector-clear:hover{color:#c0392b}.company-selector-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:#fff;border:1px solid #dcdfe4;border-radius:6px;box-shadow:0 4px 14px #0000001f;max-height:240px;overflow-y:auto}.company-selector-note{padding:10px 12px;font-size:13px;color:#9aa1a9}.company-selector-option{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:8px 12px;border:none;background:none;cursor:pointer;font-size:13px;color:#2c3e50}.company-selector-option:hover{background:#f5f6fa}.company-selector-option.selected{background:#eaf1ff;font-weight:600}.company-selector-option-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-selector-option-dba{font-size:11px;color:#9aa1a9;white-space:nowrap}.company-selector-option-inactive{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#c0392b;white-space:nowrap}.project-management-page{padding:var(--content-padding, 1.5rem 2rem);min-height:100vh;background:#f5f6fa}.pm-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.pm-header h1{margin:0;font-size:28px;color:#2c3e50}.pm-tabs{display:flex;gap:4px;border-bottom:1px solid #e5e7eb;margin-bottom:1.2rem}.pm-tab-btn{padding:10px 16px;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:14px;font-weight:600;color:#666;transition:all .2s}.pm-tab-btn:hover{color:#2c3e50}.pm-tab-btn.active{color:#2c3e7f;border-bottom-color:#2c3e7f}.pm-toolbar{margin-bottom:1.2rem}.pm-search-box{position:relative;max-width:320px}.pm-search-box input{width:100%;padding:8px 12px 8px 2.2rem;border:1px solid #d0ccc8;border-radius:6px;background:#fff;color:#333;font-size:13px;box-sizing:border-box}.pm-search-box input:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 2px #2c3e7f1a}.pm-search-icon{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);font-size:14px}.pm-project-cell{font-weight:600;color:#2c3e50}.pm-row-actions{display:flex;gap:1rem;justify-content:flex-end;white-space:nowrap}.pm-action-link{background:none;border:none;color:#2c3e7f;font-weight:600;font-size:13px;cursor:pointer;padding:0}.pm-action-link:hover:not(:disabled){text-decoration:underline}.pm-action-link:disabled{color:#ccc;cursor:not-allowed}.projects-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.projects-table thead{background:#f8f9fa;border-bottom:2px solid #e5e7eb}.projects-table th{padding:1rem;text-align:left;font-weight:600;color:#2c3e50;font-size:14px}.projects-table tbody tr{border-bottom:1px solid #e5e7eb;transition:all .2s}.projects-table tbody tr:hover{background:#f9fafb}.projects-table td{padding:1rem;color:#475569;font-size:14px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.project-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:all .3s;border:2px solid transparent}.project-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #00000026;border-color:#2c3e7f}.project-card-header{padding:1.2rem;background:linear-gradient(135deg,#2c3e7f,#34495e);color:#fff;display:flex;justify-content:space-between;align-items:center}.project-code-type{display:flex;align-items:center;gap:.8rem}.project-code{font-weight:700;font-size:16px}.project-type{font-size:20px;background:#fff3;padding:.4rem .6rem;border-radius:4px}.project-status{padding:.4rem .8rem;border-radius:20px;font-size:12px;font-weight:600;color:#fff;text-transform:uppercase}.project-card-body{padding:1.2rem}.project-name{margin:0 0 .8rem;font-size:16px;font-weight:600;color:#2c3e50;line-height:1.4}.project-client{margin:0;font-size:13px;color:#7f8c8d}.project-card-footer{padding:0 1.2rem 1.2rem}.progress-bar{width:100%;height:6px;background:#ecf0f1;border-radius:3px;overflow:hidden;margin-bottom:.6rem}.progress-text{font-size:12px;color:#7f8c8d;font-weight:600}.empty-state{text-align:center;padding:4rem 2rem;color:#95a5a6;font-size:16px}.modal-content{background:#fff;border-radius:8px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d}.modal-header{padding:1.5rem;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center;background:#f9fafb}.modal-header h2{margin:0;font-size:20px;color:#2c3e50}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#7f8c8d;transition:color .2s}.modal-close:hover{color:#2c3e50}.project-type-selector{padding:1.5rem;border-bottom:1px solid #eee}.project-type-selector label{display:block;font-size:14px;font-weight:600;color:#2c3e50;margin-bottom:1rem}.type-buttons{display:flex;gap:1rem}.type-btn{flex:1;padding:1rem;border:2px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;color:#2c3e50;transition:all .3s}.type-btn:hover{border-color:#2c3e7f;background:#f9fafb}.type-btn.active{background:#2c3e7f;color:#fff;border-color:#2c3e7f}.creation-mode{display:flex;border-bottom:1px solid #eee;background:#f9fafb}.mode-tab{flex:1;padding:1rem;border:none;background:none;cursor:pointer;font-size:14px;font-weight:600;color:#7f8c8d;border-bottom:3px solid transparent;transition:all .3s}.mode-tab:hover{color:#2c3e50}.mode-tab.active{color:#2c3e7f;border-bottom-color:#2c3e7f}.method-selection{padding:1.5rem}.step-description{font-size:14px;color:#2c3e50;margin-bottom:1.5rem;font-weight:500}.method-buttons{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.method-btn{display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:1.5rem;border:2px solid #ddd;border-radius:8px;background:#fff;cursor:pointer;transition:all .3s}.method-btn:hover{border-color:#2c3e7f;background:#f9fafb;transform:translateY(-2px)}.method-icon{font-size:32px}.method-label{font-size:14px;font-weight:600;color:#2c3e50}.method-hint{font-size:12px;color:#7f8c8d}.details-section{padding:1.5rem;max-height:70vh;overflow-y:auto}.form-section-title{font-size:13px;font-weight:700;color:#2c3e50;text-transform:uppercase;letter-spacing:.5px;margin:1.5rem 0 1rem;padding-bottom:.8rem;border-bottom:2px solid #eee}.form-section-title:first-child{margin-top:0}.role-toggle{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.role-btn{padding:.8rem;border:2px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;color:#2c3e50;transition:all .3s}.role-btn:hover{border-color:#2c3e7f;background:#f9fafb}.role-btn.active{background:#2c3e7f;color:#fff;border-color:#2c3e7f}.file-upload-section{margin-bottom:1.5rem}.file-upload-label{display:block;padding:2rem;border:2px dashed #ddd;border-radius:8px;text-align:center;cursor:pointer;background:#f9fafb;transition:all .3s;font-weight:600;color:#2c3e50;font-size:14px;font-family:inherit;width:100%}.file-upload-label:hover:not(:disabled){border-color:#2c3e7f;background:#f0f4ff}.file-upload-label:disabled{opacity:.6;cursor:not-allowed}.files-found{margin-top:1rem;padding:1rem;background:#f0f8f4;border-radius:6px;border-left:4px solid #27ae60}.files-title{margin:0 0 .8rem;font-size:13px;font-weight:600;color:#27ae60}.file-item{padding:.4rem 0;font-size:12px;color:#229954}.file-upload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.5rem}.file-upload-box{border:2px dashed #ddd;border-radius:6px;padding:1rem;text-align:center;cursor:pointer;transition:all .3s;background:#f9fafb}.file-upload-box:hover{border-color:#2c3e7f;background:#f0f4ff}.file-upload-box label{display:block;font-size:12px;font-weight:600;color:#2c3e50;margin-bottom:.6rem;cursor:pointer}.file-upload-box input{display:none}.file-selected{margin:.6rem 0 0;font-size:11px;color:#27ae60;font-weight:600}.sc-note{padding:.8rem;background:#fff3cd;border-left:4px solid #f39c12;border-radius:4px;font-size:12px;color:#856404;margin-bottom:1rem}.required-hint{display:block;font-size:11px;font-weight:400;color:#7f8c8d;margin-top:.3rem}.form-section{padding:1.5rem}.form-group{margin-bottom:1.2rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.7rem;border:1px solid #ddd;border-radius:4px;font-size:13px;font-family:inherit;transition:border-color .2s}.upload-area{border:2px dashed #ddd;border-radius:6px;padding:2rem;text-align:center;cursor:pointer;transition:all .3s;margin-bottom:1.2rem;background:#f9fafb}.upload-area:hover{border-color:#2c3e7f;background:#f0f4ff}.upload-area input{display:none}.upload-area p{margin:0;color:#7f8c8d;font-size:13px}.file-name{color:#27ae60;font-weight:600;margin-top:.5rem!important}.form-actions{display:flex;gap:.8rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #eee}.btn-primary,.btn-cancel,.btn-back-step{padding:.8rem 1.2rem;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s}.btn-primary{flex:1;background:#27ae60;color:#fff}.btn-primary:hover:not(:disabled){background:#229954}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-cancel,.btn-back-step{flex:1;background:#ecf0f1;color:#2c3e50}.btn-cancel:hover:not(:disabled),.btn-back-step:hover:not(:disabled){background:#bdc3c7}.btn-cancel:disabled,.btn-back-step:disabled{opacity:.6;cursor:not-allowed}.pd-doc-page{padding:0}.pd-doc-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.pd-doc-title{margin:0;font-size:20px;color:#2c3e50}.pd-doc-search{border:1px solid #d1d5db;border-radius:8px;padding:8px 12px;font-size:13px;width:260px;max-width:100%}.pd-doc-categories{display:flex;flex-direction:column;gap:28px}.pd-doc-category-title{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:16px;color:#2c3e50}.pd-doc-category-icon{font-size:18px}.pd-doc-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.pd-doc-slot{border:1px solid #e5e7eb;border-radius:10px;padding:14px;background:#fafafa;display:flex;flex-direction:column;gap:10px}.pd-doc-slot-header{display:flex;align-items:center;justify-content:space-between}.pd-doc-slot-label{font-weight:600;font-size:14px;color:#2c3e50}.pd-doc-slot-count{font-size:12px;color:#6b7280}.pd-doc-file-list{display:flex;flex-direction:column;gap:8px}.pd-doc-file-card{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px}.pd-doc-file-info{display:flex;flex-direction:column;gap:2px;min-width:0}.pd-doc-file-name{font-size:13px;font-weight:600;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pd-doc-file-meta{font-size:12px;color:#6b7280}.pd-doc-file-notes{font-size:12px;color:#6b7280;font-style:italic}.pd-doc-file-actions{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.pd-doc-action-btn{background:none;border:1px solid #d1d5db;border-radius:6px;padding:4px 8px;font-size:12px;color:#2c3e50;cursor:pointer}.pd-doc-action-btn:hover{background:#f3f4f6}.pd-doc-dropzone{border:1px dashed #9ca3af;border-radius:8px;padding:12px;text-align:center;font-size:12px;color:#6b7280;cursor:pointer;position:relative}.pd-doc-dropzone.drag-over{border-color:#2c3e7f;background:#eef1fb;color:#2c3e7f}.pd-doc-dropzone-input{display:none}.pd-doc-search-empty{padding:60px 20px;text-align:center;color:#6b7280}.pd-doc-search-results{display:flex;flex-direction:column;gap:8px}.pd-doc-search-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px}.pd-doc-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.pd-doc-modal-content{background:#fff;border-radius:12px;width:100%;max-width:560px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.pd-doc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb}.pd-doc-modal-header h3{margin:0;font-size:16px;color:#2c3e50}.pd-doc-modal-close{background:none;border:none;font-size:16px;cursor:pointer;color:#6b7280}.pd-doc-modal-body{padding:16px 20px;overflow-y:auto;flex:1}.pd-doc-modal-body select{border:1px solid #d1d5db;border-radius:6px;padding:8px 10px;font-size:13px;width:100%}.pd-doc-modal-error{background:#fdecea;color:#c0392b;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:14px}.pd-doc-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid #e5e7eb}.pd-doc-replace-note,.pd-doc-move-note{font-size:13px;color:#6b7280;margin:0 0 14px}.pd-doc-picker{display:inline-flex;align-items:center;gap:8px;border:1px dashed #9ca3af;border-radius:8px;padding:10px 16px;font-size:13px;color:#2c3e50;cursor:pointer}.pd-doc-picker input[type=file]{display:none}.pd-doc-pending-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.pd-doc-pending-item{border:1px solid #e5e7eb;border-radius:8px;padding:8px}.pd-doc-pending-fields{display:flex;flex-direction:column;gap:6px}.pd-doc-pending-filename{font-size:13px;font-weight:600;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pd-doc-pending-fields input[type=text]{border:1px solid #d1d5db;border-radius:6px;padding:6px 8px;font-size:13px}.pd-doc-pending-status{font-size:12px;color:#6b7280;display:flex;align-items:center;gap:8px}.pd-doc-status-done{color:#1e7e34;font-weight:600}.pd-doc-status-error{color:#c0392b}.pd-doc-pending-status button{background:none;border:none;color:#c0392b;cursor:pointer;font-size:12px;padding:0}.pd-doc-history-list{display:flex;flex-direction:column;gap:10px}.pd-doc-history-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px}.pd-doc-history-info{display:flex;flex-direction:column;gap:2px;min-width:0}.pd-doc-history-version{font-size:12px;font-weight:600;color:#2c3e50;display:flex;align-items:center;gap:8px}.pd-doc-history-current{background:#e6f4ea;color:#1e7e34;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.pd-doc-history-filename{font-size:13px;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pd-doc-history-meta{font-size:12px;color:#6b7280}.pd-doc-history-notes{font-size:12px;color:#6b7280;font-style:italic}.submittal-form{max-width:820px;margin:0 auto;padding-bottom:90px}.submittal-form-header,.submittal-form-header .btn-back{margin-bottom:8px}.submittal-form-header h3{display:flex;align-items:center;gap:10px;font-size:22px;color:#2c3e50;margin:0}.submittal-form-readonly-banner{background:#fff7e6;color:#8a5a00;border:1px solid #f0d9a0;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px}.submittal-form-new-banner{background:#eaf1ff;color:#2c3e7f;border-color:#c7d7f7}.submittal-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:22px 24px;margin-bottom:20px}.submittal-section h4{margin:0 0 16px;font-size:16px;color:#2c3e7f;letter-spacing:.02em}.submittal-section-empty{color:#9aa1a9;font-size:14px;margin:0 0 12px}.submittal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 20px}.submittal-grid-full{grid-column:1 / -1}.submittal-grid .form-group{margin-bottom:0}.submittal-attachment-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.submittal-attachment-item{display:flex;align-items:center;gap:12px;background:#f9fafb;border:1px solid #eef0f2;border-radius:8px;padding:10px 14px;font-size:13px}.submittal-attachment-name{flex:1;color:#2c3e50;font-weight:500}.submittal-attachment-date{color:#9aa1a9;white-space:nowrap}.submittal-upload-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.submittal-upload-row input[type=text]{padding:8px 10px;border:1px solid #dcdfe4;border-radius:6px;font-size:14px}.submittal-action-bar{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:12px;background:#fff;border-top:1px solid #eef0f2;padding:14px 24px;border-radius:0 0 12px 12px;box-shadow:0 -2px 8px #0000000f}.submittals-tab{padding:0}.submittals-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.submittals-header h3{margin:0;font-size:20px;color:#2c3e50}.submittals-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.submittals-search-box{position:relative;flex:1;min-width:220px}.submittals-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:13px;opacity:.5;pointer-events:none}.submittals-search-box input{width:100%;padding:8px 12px 8px 30px;border:1px solid #dcdfe4;border-radius:6px;font-size:14px;box-sizing:border-box}.submittals-toolbar .filter-select{padding:8px 12px;border:1px solid #dcdfe4;border-radius:6px;font-size:14px;background:#fff}.submittals-toolbar .btn-refresh{padding:8px 14px;border:1px solid #dcdfe4;border-radius:6px;background:#fff;font-size:14px;cursor:pointer;white-space:nowrap}.submittals-toolbar .btn-refresh:hover:not(:disabled){background:#f5f6f8}.submittals-toolbar .btn-refresh:disabled{opacity:.6;cursor:default}.submittals-notice{display:flex;align-items:center;justify-content:space-between;background:#eaf1ff;color:#2c3e7f;border:1px solid #c7d7f7;border-radius:6px;padding:10px 14px;margin-bottom:16px;font-size:14px}.submittals-notice button{border:none;background:transparent;color:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:underline;padding:0 0 0 12px}.submittals-notice-error{background:#fdecea;color:#c0392b;border-color:#f6c6c1}.submittals-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.submittals-table{width:100%;min-width:1080px;border-collapse:separate;border-spacing:0;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #0000001a;font-size:14px}.submittals-table thead th{text-align:left;padding:12px 14px;background:#f7f8fa;color:#5a6572;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #e5e7eb;white-space:nowrap}.submittals-table tbody td{padding:12px 14px;border-bottom:1px solid #eef0f2;color:#2c3e50;vertical-align:middle}.submittals-table tbody tr:last-child td{border-bottom:none}.submittals-row{cursor:pointer;transition:background .1s ease}.submittals-row:hover{background:#f9fafb}.submittals-col-number{font-weight:600;color:#2c3e7f;white-space:nowrap}.submittals-col-title{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.submittals-col-actions{white-space:nowrap;cursor:default}.submittals-action-link{border:none;background:transparent;color:#3498db;font-size:13px;font-weight:500;cursor:pointer;padding:4px 6px}.submittals-action-link:hover:not(:disabled){text-decoration:underline}.submittals-action-link:disabled{color:#b5bac1;cursor:not-allowed}.submittals-action-danger{color:#c0392b}.status-badge.status-approved_as_noted{background:#eafaf1;color:#27ae60}.status-badge.status-revise_resubmit{background:#fff3cd;color:#8a5a00}.submittals-empty-card{text-align:center;padding:60px 24px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014}.submittals-empty-icon{font-size:40px;margin-bottom:12px}.submittals-empty-card h3{margin:0 0 8px;color:#2c3e50}.submittals-empty-card p{max-width:440px;margin:0 auto 20px;color:#5a6572;font-size:14px}.rfi-form{max-width:820px;margin:0 auto;padding-bottom:90px}.rfi-form-header,.rfi-form-header .btn-back{margin-bottom:8px}.rfi-form-header h3{display:flex;align-items:center;gap:10px;font-size:22px;color:#2c3e50;margin:0}.rfi-form-readonly-banner{background:#fff7e6;color:#8a5a00;border:1px solid #f0d9a0;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px}.rfi-form-new-banner{background:#eaf1ff;color:#2c3e7f;border-color:#c7d7f7}.rfi-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:22px 24px;margin-bottom:20px}.rfi-section h4{margin:0 0 16px;font-size:16px;color:#2c3e7f;letter-spacing:.02em}.rfi-section-question{border-left:4px solid #3498db}.rfi-section-response{border-left:4px solid #27ae60}.rfi-attachment-subheading{margin:20px 0 12px;padding-top:16px;border-top:1px solid #eef0f2;font-size:13px;color:#5a6572;text-transform:uppercase;letter-spacing:.03em}.rfi-section-empty{color:#9aa1a9;font-size:14px;margin:0 0 12px}.rfi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 20px}.rfi-grid-full{grid-column:1 / -1}.rfi-grid .form-group{margin-bottom:0}.rfi-attachment-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.rfi-attachment-item{display:flex;align-items:center;gap:12px;background:#f9fafb;border:1px solid #eef0f2;border-radius:8px;padding:10px 14px;font-size:13px}.rfi-attachment-name{flex:1;color:#2c3e50;font-weight:500}.rfi-attachment-date{color:#9aa1a9;white-space:nowrap}.rfi-upload-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.rfi-upload-row input[type=text]{padding:8px 10px;border:1px solid #dcdfe4;border-radius:6px;font-size:14px}.rfi-action-bar{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:12px;background:#fff;border-top:1px solid #eef0f2;padding:14px 24px;border-radius:0 0 12px 12px;box-shadow:0 -2px 8px #0000000f}.rfis-tab{padding:0}.rfis-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.rfis-header h3{margin:0;font-size:20px;color:#2c3e50}.rfis-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.rfis-search-box{position:relative;flex:1;min-width:220px}.rfis-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:13px;opacity:.5;pointer-events:none}.rfis-search-box input{width:100%;padding:8px 12px 8px 30px;border:1px solid #dcdfe4;border-radius:6px;font-size:14px;box-sizing:border-box}.rfis-toolbar .filter-select{padding:8px 12px;border:1px solid #dcdfe4;border-radius:6px;font-size:14px;background:#fff}.rfis-toolbar .btn-refresh{padding:8px 14px;border:1px solid #dcdfe4;border-radius:6px;background:#fff;font-size:14px;cursor:pointer;white-space:nowrap}.rfis-toolbar .btn-refresh:hover:not(:disabled){background:#f5f6f8}.rfis-toolbar .btn-refresh:disabled{opacity:.6;cursor:default}.rfis-notice{display:flex;align-items:center;justify-content:space-between;background:#eaf1ff;color:#2c3e7f;border:1px solid #c7d7f7;border-radius:6px;padding:10px 14px;margin-bottom:16px;font-size:14px}.rfis-notice button{border:none;background:transparent;color:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:underline;padding:0 0 0 12px}.rfis-notice-error{background:#fdecea;color:#c0392b;border-color:#f6c6c1}.rfis-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.rfis-table{width:100%;min-width:1020px;border-collapse:separate;border-spacing:0;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #0000001a;font-size:14px}.rfis-table thead th{text-align:left;padding:12px 14px;background:#f7f8fa;color:#5a6572;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #e5e7eb;white-space:nowrap}.rfis-table tbody td{padding:12px 14px;border-bottom:1px solid #eef0f2;color:#2c3e50;vertical-align:middle}.rfis-table tbody tr:last-child td{border-bottom:none}.rfis-row{cursor:pointer;transition:background .1s ease}.rfis-row:hover{background:#f9fafb}.rfis-col-number{font-weight:600;color:#2c3e7f;white-space:nowrap}.rfis-col-title{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rfis-col-actions{white-space:nowrap;cursor:default}.rfis-action-link{border:none;background:transparent;color:#3498db;font-size:13px;font-weight:500;cursor:pointer;padding:4px 6px}.rfis-action-link:hover:not(:disabled){text-decoration:underline}.rfis-action-link:disabled{color:#b5bac1;cursor:not-allowed}.rfis-action-danger{color:#c0392b}.status-badge.status-under_review{background:#eaf1ff;color:#2c3e7f}.status-badge.status-answered{background:#e3f6ea;color:#1e7d42}.status-badge.status-closed{background:#f0f0f0;color:#5a6572}.status-badge.status-rejected{background:#fdecea;color:#c0392b}.rfis-empty-card{text-align:center;padding:60px 24px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014}.rfis-empty-icon{font-size:40px;margin-bottom:12px}.rfis-empty-card h3{margin:0 0 8px;color:#2c3e50}.rfis-empty-card p{max-width:440px;margin:0 auto 20px;color:#5a6572;font-size:14px}.sov-page{padding:1.5rem;height:100%;overflow-y:auto;box-sizing:border-box}.sov-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.sov-header h3{margin:0 0 .25rem;font-size:18px;color:#2c3e50}.sov-table{width:100%;min-width:720px;background:#fff;border-collapse:collapse;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a;font-size:13px}.sov-table thead{background:#f9fafb;border-bottom:2px solid #eee}.sov-table th{padding:.75rem 1rem;text-align:left;font-weight:600;color:#7f8c8d;text-transform:uppercase;font-size:11px;letter-spacing:.5px}.sov-table td{padding:.75rem 1rem;border-bottom:1px solid #eee;color:#2c3e50;vertical-align:middle}.sov-table tbody tr:hover{background:#f9fafb}.sov-col-numeric{text-align:right}.sov-item-number{font-weight:600;color:#2c3e50}.sov-total-cell{font-weight:600;color:#27ae60}.sov-actions-cell{display:flex;gap:.5rem;justify-content:flex-end;white-space:nowrap}.sov-total-row{background:#f5f6fa;font-weight:700}.sov-total-row td{border-top:2px solid #ddd;border-bottom:none;color:#2c3e50}.sov-total-row td:first-child{text-align:right}.sov-spreadsheet{table-layout:fixed;font-size:13px}.sov-spreadsheet th,.sov-spreadsheet td.sov-cell,.sov-spreadsheet td.sov-col-numeric,.sov-spreadsheet td.sov-actions-cell{padding:0}.sov-spreadsheet th{padding:.5rem .6rem}.sov-spreadsheet td{vertical-align:middle}.sov-cell-input{width:100%;box-sizing:border-box;padding:.45rem .6rem;border:1px solid transparent;background:transparent;font-size:13px;font-family:inherit;color:#2c3e50;border-radius:4px}.sov-cell-input-numeric{text-align:right}.sov-cell-input:hover{border-color:#ddd}.sov-cell-input:focus{outline:none;border-color:#667eea;background:#fff;box-shadow:0 0 0 2px #667eea1f}.sov-cell-input::placeholder{color:#b6bcc4}.sov-spreadsheet .sov-total-cell{padding:.45rem .6rem}.sov-new-row{background:#fbfbfd}.sov-row-error{background:#fdecea}.sov-row-status{font-size:11px;color:#7f8c8d;white-space:nowrap;margin-right:.4rem}.sov-row-delete{width:24px;height:24px;line-height:1;padding:0;border-radius:4px;font-size:15px}.sov-actions-cell{padding-right:.6rem!important}.sov-error-list{margin-top:.75rem;display:flex;flex-direction:column;gap:.35rem}.sov-section{background:#fff;border:1px solid #e2e5ec;border-radius:10px;padding:1.25rem;margin-bottom:1.25rem}.sov-section:last-child{margin-bottom:0}.sov-section-title{margin:0 0 .75rem;font-size:13px;font-weight:700;color:#2c3e50;text-transform:uppercase;letter-spacing:.5px}.sov-section-note{margin:-.35rem 0 .75rem;font-size:12px;color:#7f8c8d;font-style:italic}.sov-section .table-wrapper{margin:0}.sov-section .sov-table{box-shadow:none;border:1px solid #eee}.sov-co-readonly-table tbody tr.sov-co-row{background:transparent}.sov-co-readonly-table tbody tr.sov-co-row:hover{background:#f9fafb}.sov-co-empty{text-align:center;color:#9aa0a8;font-size:13px;padding:1rem!important}.sov-current-total-table tbody tr:hover{background:transparent}.paw-info-section{padding-bottom:.75rem}.paw-header-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem 1.5rem}.paw-header-field{display:flex;flex-direction:column;gap:.2rem}.paw-header-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:#9aa0a8}.paw-header-value{font-size:14px;color:#2c3e50;font-weight:600}.paw-retainage-edit{display:flex;align-items:center;gap:.5rem}.paw-retainage-input{width:70px;padding:.4rem .5rem;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit}.paw-retainage-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1f}.paw-readonly-banner{background:#fff8e6;border:1px solid #f0dfa8;color:#8a6d1f;border-radius:8px;padding:.75rem 1rem;font-size:13px;margin-bottom:1.25rem}.paw-table-wrapper{overflow-x:auto}.paw-worksheet-table{min-width:1400px}.paw-group-row th{background:#eef0f8;color:#4b5566;text-align:center;border-bottom:1px solid #e2e5ec}.paw-readonly-cell{background:#fafbfc;color:#6b7280}.paw-row-saving{opacity:.65}.paw-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem 2.5rem;max-width:720px}.paw-summary-row{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;border-bottom:1px solid #f0f1f4;font-size:13px;color:#555}.paw-summary-row-strong{font-weight:700;color:#2c3e50}@media(max-width:900px){.paw-header-grid{grid-template-columns:repeat(2,1fr)}.paw-summary-grid{grid-template-columns:1fr}}.sov-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:.75rem}.sov-form-field{display:flex;flex-direction:column;gap:.35rem}.sov-form-field-wide{grid-column:1 / -1}.sov-form-field label{font-size:12px;font-weight:600;color:#666}.sov-form-field input,.sov-form-field select{padding:.6rem .75rem;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;box-sizing:border-box}.sov-form-field input:focus,.sov-form-field select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1f}.sov-custom-unit-input{margin-top:.5rem}.sov-total-preview{margin:.5rem 0 0;font-size:14px;color:#333}.sov-modal-actions{display:flex;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #eee}.sov-modal-actions .btn-primary,.sov-modal-actions .btn-secondary{flex:1}.status-badge.status-approved{background:#e3f6ea;color:#1e7d42}.status-badge.status-rejected{background:#fdecea;color:#b3261e}.status-badge.status-paid{background:#e3e0ff;color:#4b3fcf}.status-badge.status-void{background:#f0f0f0;color:#777}@media(max-width:768px){.sov-page{padding:1rem}.sov-form-grid{grid-template-columns:1fr}}.schedule-tab{display:flex;flex-direction:column;gap:1rem}.schedule-toolbar{display:flex;align-items:center;justify-content:flex-end;background:#fff;border-radius:8px;padding:.75rem 1rem}.schedule-toolbar-actions{display:flex;align-items:center;gap:.6rem}.schedule-reset-btn{background:none;border:none;color:#7f8c8d;font-size:12px;padding:.4rem .5rem;margin-left:.4rem;cursor:pointer;text-decoration:underline;text-decoration-style:dotted}.schedule-reset-btn:hover{color:#922b21}.schedule-action-error{background:#fdecea;border:1px solid #f5b7b1;color:#922b21;padding:.7rem 1rem;border-radius:6px;display:flex;align-items:center;justify-content:space-between;font-size:13px}.schedule-action-error button{background:none;border:none;color:#922b21;font-weight:600;cursor:pointer;text-decoration:underline}.schedule-entry-screen{display:flex;align-items:center;justify-content:center;padding:4rem 1rem}.schedule-entry-card{max-width:620px;text-align:center}.schedule-entry-card h2{margin:0 0 .5rem;color:#2c3e50;font-size:20px}.schedule-entry-hint{color:#7f8c8d;font-size:14px;margin:0 0 1.75rem}.schedule-entry-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.schedule-entry-option{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;text-align:left;background:#fff;border:1px solid #ddd;border-radius:8px;padding:1.25rem;cursor:pointer}.schedule-entry-option:hover{border-color:#2c3e7f;background:#eaf1ff}.schedule-entry-option:disabled{opacity:.6;cursor:not-allowed}.schedule-entry-option-title{font-size:15px;font-weight:700;color:#2c3e7f}.schedule-entry-option-desc{font-size:12px;color:#7f8c8d}.schedule-split{display:flex;align-items:flex-start;background:#fff;border-radius:8px;border:1px solid #eee;overflow:hidden}.schedule-grid-pane{flex:0 0 72%;min-width:0;overflow-x:auto;border-right:1px solid #eee;position:relative}.schedule-gantt-pane{flex:1 1 28%;min-width:0;overflow-x:auto}.schedule-grid-header-row,.schedule-grid-row{display:grid;grid-template-columns:20px minmax(240px,1fr) 74px 92px 92px 90px 32px;align-items:center;gap:.4rem;padding:0 .6rem;min-width:740px}.schedule-grid-header-row{position:sticky;top:0;background:#f9fafb;color:#7f8c8d;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #eee;z-index:2}.schedule-grid-row{border-bottom:1px solid #f2f2f2;font-size:13px;color:#2c3e50}.schedule-grid-row.has-conflict{background:#fff8f2}.schedule-grid-row.drag-over{background:#eaf1ff}.schedule-grid-row.dragging{opacity:.5}.schedule-grid-row.selected{background:#eaf1ff;box-shadow:inset 2px 0 #2c3e7f}.schedule-grid-row.selected.has-conflict{background:#fdf1e9}.schedule-grid-header-row .col-drag,.schedule-grid-header-row .col-activity-name,.schedule-grid-row .col-drag,.schedule-grid-row .col-activity-name{position:sticky;background-color:inherit;z-index:1}.schedule-grid-header-row .col-drag,.schedule-grid-row .col-drag{left:0}.schedule-grid-header-row .col-activity-name,.schedule-grid-row .col-activity-name{left:20px;border-right:1px solid #f0f0f0}.schedule-grid-header-row .col-drag,.schedule-grid-header-row .col-activity-name{z-index:3}.col-row-menu{display:flex;justify-content:flex-end;position:relative}.schedule-grid-row-summary{font-weight:700;color:#1c2b4a}.schedule-grid-row-summary .col-activity-name{font-weight:700}.schedule-grid-row-summary-depth-0{background:#eef1fb;box-shadow:inset 3px 0 #2c3e7f;font-size:13.5px}.schedule-grid-row-summary-depth-1{background:#f3f5fa;box-shadow:inset 3px 0 #6b7bb0}.schedule-grid-row-summary-depth-2{background:#f7f8fb;box-shadow:inset 3px 0 #a7b0cf;font-weight:600}.schedule-grid-row-summary.selected{box-shadow:inset 3px 0 #2c3e7f,inset 2px 0 #2c3e7f}.schedule-grid-row-draft{background:#fbfdf8;box-shadow:inset 2px 0 #27ae60}.schedule-grid-row-draft:hover{background:#fbfdf8}.schedule-activity-number{flex-shrink:0;color:#a7adb8;font-size:11px;font-variant-numeric:tabular-nums;font-weight:400;min-width:26px}.schedule-activity-number-pending{color:#27ae60;font-style:italic}.schedule-activity-name-btn{flex:1;min-width:0;text-align:left;background:none;border:1px solid transparent;border-radius:3px;padding:2px 4px;margin:-2px -4px;font:inherit;color:#2c3e50;cursor:text;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-activity-name-btn:hover{border-color:#ddd;background:#fbfbfc}.schedule-grid-row-summary .schedule-activity-name-btn{font-weight:700;color:inherit}.schedule-activity-name-input{flex:1}.schedule-draft-name-input{border-color:#27ae60!important}.schedule-draft-saving{flex-shrink:0;font-size:11px;font-style:italic;color:#7f8c8d}.schedule-row-kebab{position:relative}.schedule-row-kebab-trigger{visibility:hidden;width:22px;height:22px;border:none;background:none;border-radius:4px;color:#7f8c8d;font-size:14px;cursor:pointer;line-height:1}.schedule-grid-row:hover .schedule-row-kebab-trigger,.schedule-grid-row:focus-within .schedule-row-kebab-trigger,.schedule-row-kebab:focus-within .schedule-row-kebab-trigger{visibility:visible}.schedule-row-kebab-trigger:hover{background:#eef1fb;color:#2c3e7f}.schedule-row-kebab-menu{position:absolute;top:100%;right:0;z-index:5;display:flex;flex-direction:column;min-width:140px;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 14px #0000001f;padding:.3rem}.schedule-row-kebab-menu button{text-align:left;background:none;border:none;padding:.4rem .6rem;font-size:13px;color:#2c3e50;border-radius:4px;cursor:pointer}.schedule-row-kebab-menu button:hover{background:#f2f3f7}.schedule-row-kebab-danger{color:#c0392b!important}.schedule-grid-row-placeholder{border-bottom:1px dashed #f2f2f2;color:#bbb}.schedule-empty-row-hint{grid-column:1 / -1;font-size:12px;color:#7f8c8d}.schedule-drag-handle{cursor:grab;color:#bbb;text-align:center;-webkit-user-select:none;user-select:none}.col-wbs{color:#7f8c8d;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-activity-id{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-activity-name{display:flex;align-items:center;gap:.3rem;min-width:0}.schedule-grid-name-editable{min-width:0;overflow:hidden;text-overflow:ellipsis}.schedule-grid-name-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-tree-toggle{flex-shrink:0;width:14px;height:14px;padding:0;border:none;background:none;color:#7f8c8d;font-size:9px;cursor:pointer;display:flex;align-items:center;justify-content:center}.schedule-tree-toggle:hover{color:#2c3e7f}.schedule-tree-toggle-spacer{flex-shrink:0;width:14px;display:inline-block}.schedule-planning-trigger{visibility:hidden;flex-shrink:0;width:20px;height:20px;padding:0;border:none;background:none;border-radius:4px;color:#7f8c8d;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center}.schedule-grid-row:hover .schedule-planning-trigger,.schedule-grid-row:focus-within .schedule-planning-trigger{visibility:visible}.schedule-planning-trigger:hover{background:#eef1fb;color:#2c3e7f}.col-duration,.col-start,.col-finish,.col-percent,.col-status,.col-constraint{font-size:12px;white-space:nowrap;min-width:0}.col-predecessors{font-size:12px;color:#7f8c8d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.col-predecessors:hover{color:#2c3e7f;text-decoration:underline}.col-row-actions{display:flex;gap:.5rem;justify-content:flex-end}.schedule-cell-readonly{color:#2c3e50}.schedule-grid-row-summary .schedule-cell-readonly{color:#7f8c8d;font-style:italic}.schedule-cell-editable{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;background:none;border:1px solid transparent;border-radius:3px;padding:2px 4px;margin:-2px -4px;font:inherit;color:#2c3e50;text-align:left;cursor:text}.schedule-cell-editable:hover{border-color:#ddd;background:#fbfbfc}.schedule-cell-placeholder{color:#bbb}.schedule-cell-input,.schedule-cell-select{width:100%;font:inherit;font-size:12px;color:#2c3e50;padding:2px 4px;border:1px solid #2C3E7F;border-radius:3px;background:#fff}.schedule-constraint-editor{display:flex;flex-direction:column;gap:2px}.schedule-constraint-editor .schedule-cell-input,.schedule-constraint-editor .schedule-cell-select{width:auto}.schedule-milestone-marker{color:#2c3e7f;flex-shrink:0}.schedule-manual-badge,.schedule-conflict-badge{font-size:10px;font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:4px}.schedule-manual-badge{background:#eef1fb;color:#2c3e7f}.schedule-conflict-badge{background:#fdecea;color:#c0392b;cursor:help}.schedule-link-button{background:none;border:none;color:#2c3e7f;font-size:12px;font-weight:600;cursor:pointer;padding:0}.schedule-link-button:hover{text-decoration:underline}.schedule-link-button-danger{color:#c0392b}.schedule-modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem;z-index:100;overflow-y:auto}.schedule-modal{background:#fff;border-radius:8px;padding:1.5rem;width:100%;max-width:480px}.schedule-modal-wide{max-width:760px}.schedule-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.schedule-modal-header h3{margin:0;color:#2c3e50;font-size:17px}.schedule-modal-close{background:none;border:none;font-size:22px;line-height:1;color:#7f8c8d;cursor:pointer}.schedule-modal-section{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #f0f0f0}.schedule-modal-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.schedule-modal-section h4{margin:0 0 .6rem;font-size:14px;color:#2c3e50}.schedule-modal-hint{font-size:12px;color:#7f8c8d;margin:.3rem 0}.schedule-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.schedule-form-error{background:#fdecea;border:1px solid #f5b7b1;color:#922b21;padding:.6rem .9rem;border-radius:6px;font-size:13px;margin-bottom:1rem}.schedule-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.schedule-form-subgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-top:.75rem}.schedule-form-field-wide{grid-column:1 / -1}.schedule-form-field{display:flex;flex-direction:column;gap:.3rem;font-size:12px;font-weight:600;color:#555}.schedule-form-field input,.schedule-form-field select,.schedule-form-field textarea{font-family:inherit;font-size:13px;font-weight:400;color:#2c3e50;padding:.5rem .6rem;border:1px solid #ddd;border-radius:5px}.schedule-checkbox-field{flex-direction:row;align-items:center;gap:.5rem}.schedule-form-fieldset{border:1px solid #eee;border-radius:6px;padding:.9rem}.schedule-form-fieldset legend{font-size:12px;font-weight:700;color:#7f8c8d;padding:0 .4rem}.schedule-radio-row{display:flex;gap:1.5rem;font-size:13px;font-weight:500;color:#2c3e50}.schedule-radio-row label{display:flex;align-items:center;gap:.4rem}.schedule-weekday-toggles{display:flex;gap:1rem;margin-bottom:1rem}.schedule-weekday-toggle{display:flex;flex-direction:column-reverse;align-items:center;gap:.3rem;font-size:12px;font-weight:600;color:#555}.schedule-holiday-apply-row,.schedule-add-exception-row,.schedule-add-dependency-row,.schedule-import-file-row{display:flex;gap:.6rem;margin-top:.75rem;align-items:center}.schedule-holiday-apply-row input,.schedule-add-exception-row input,.schedule-add-exception-row select,.schedule-add-dependency-row select,.schedule-add-dependency-row input{padding:.5rem .6rem;border:1px solid #ddd;border-radius:5px;font-size:13px}.schedule-exceptions-table,.schedule-dependency-table,.schedule-import-preview-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:.5rem}.schedule-exceptions-table th,.schedule-dependency-table th,.schedule-import-preview-table th{text-align:left;font-size:11px;text-transform:uppercase;color:#7f8c8d;padding:.4rem .5rem;border-bottom:1px solid #eee}.schedule-exceptions-table td,.schedule-dependency-table td,.schedule-import-preview-table td{padding:.4rem .5rem;border-bottom:1px solid #f5f5f5;color:#2c3e50}.schedule-import-preview-table tr.has-issue td{color:#c0392b}.schedule-import-format-row{display:flex;gap:.6rem;margin-bottom:1.25rem;flex-wrap:wrap}.schedule-import-format-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.6rem 1rem;border:1px solid #ddd;border-radius:6px;background:#fff;font-size:13px;font-weight:600;color:#2c3e50;cursor:pointer}.schedule-import-format-btn.active{border-color:#2c3e7f;color:#2c3e7f;background:#eaf1ff}.schedule-import-format-btn.disabled{color:#bbb;cursor:not-allowed}.schedule-import-format-note{font-size:10px;font-weight:500;color:#aaa}.schedule-import-mapping-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem;margin:.75rem 0 1.25rem}.schedule-import-error-list{margin:.5rem 0 0;padding-left:1.1rem;font-size:12px}.schedule-import-error-list li{margin-bottom:.3rem}.schedule-gantt-header-row{position:sticky;top:0;background:#f9fafb;border-bottom:1px solid #eee;z-index:2}.schedule-gantt-body{position:relative}.gantt-today-marker{position:absolute;top:0;bottom:0;width:1px;background:#c0392b;z-index:3;pointer-events:none}.gantt-today-label{position:absolute;top:2px;left:3px;font-size:9px;font-weight:700;color:#c0392b;white-space:nowrap}.gantt-row{position:absolute;left:0;border-bottom:1px solid #f5f5f5}.gantt-row.gantt-row-placeholder{border-bottom:1px dashed #f5f5f5}.gantt-day-marker{position:absolute;top:0;bottom:0;border-right:1px solid #f2f2f2;font-size:10px;color:#aaa;display:flex;align-items:center;justify-content:center}.gantt-day-marker.weekend{background:#fafafa}.gantt-day-label{white-space:nowrap}.gantt-bar{position:absolute;top:4px;height:24px;border-radius:4px;background:#2c3e7f;cursor:default;overflow:hidden}.gantt-bar.manual{background:#5b6fb8;border:1px dashed #2C3E7F}.gantt-bar.has-conflict{background:#e0743a}.gantt-bar-progress{display:block;height:100%;background:#ffffff59}.gantt-milestone{position:absolute;top:10px;width:12px;height:12px;background:#2c3e7f;transform:rotate(45deg)}.gantt-milestone.has-conflict{background:#e0743a}.gantt-summary-bar-wrap{position:absolute;top:8px;height:16px;pointer-events:none}.gantt-summary-bar{position:absolute;left:0;right:0;top:4px;height:4px;background:#1c2b4a;border-radius:1px}.gantt-summary-cap{position:absolute;top:4px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:8px solid #1c2b4a}.gantt-summary-cap-left{left:-1px}.gantt-summary-cap-right{right:-1px}.schedule-split-wrapper{display:flex;flex-direction:column;gap:0}.schedule-split-toggle-row{display:flex;align-items:center}.schedule-split-toggle-spacer{flex:0 0 72%;min-width:0}.schedule-right-pane-controls{flex:1 1 28%;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0 0 .5rem .75rem}.schedule-gantt-mini-toolbar{display:flex;gap:.3rem}.schedule-gantt-mini-toolbar button{background:#fff;border:1px solid #ddd;border-radius:5px;min-width:28px;padding:.3rem .6rem;font-size:12px;font-weight:600;color:#555;cursor:pointer}.schedule-gantt-mini-toolbar button:hover:not(:disabled){border-color:#2c3e7f;color:#2c3e7f;background:#eaf1ff}.schedule-gantt-mini-toolbar button:disabled{opacity:.4;cursor:not-allowed}.schedule-right-pane-toggle{display:flex;gap:.4rem;flex-shrink:0}.schedule-right-pane-toggle button{background:#fff;border:1px solid #ddd;border-radius:5px;padding:.35rem .8rem;font-size:12px;font-weight:600;color:#7f8c8d;cursor:pointer}.schedule-right-pane-toggle button.active{border-color:#2c3e7f;color:#2c3e7f;background:#eaf1ff}.apw-pane{flex:1 1 28%;min-width:0;padding:.9rem 1rem 1.5rem}.apw-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #eee}.apw-header-identity{display:flex;flex-direction:column;gap:.1rem;min-width:0}.apw-header-activity-number{font-weight:700;color:#2c3e7f;font-size:12px}.apw-header-activity-name{font-weight:600;color:#2c3e50;font-size:15px}.apw-close-btn{flex-shrink:0;width:24px;height:24px;border:none;background:none;border-radius:4px;color:#7f8c8d;font-size:13px;cursor:pointer}.apw-close-btn:hover{background:#eef1fb;color:#2c3e7f}.apw-sections{display:flex;flex-direction:column;gap:1.1rem}.apw-section-title{font-weight:700;font-size:12.5px;color:#2c3e50;text-transform:uppercase;letter-spacing:.02em;margin-bottom:.4rem}.apw-subsection-title{font-weight:600;font-size:11px;color:#7f8c8d;text-transform:uppercase;letter-spacing:.02em;margin-bottom:.4rem}.apw-subsection-title-spaced{margin-top:.9rem}.apw-section-hint{font-size:11.5px;color:#7f8c8d;margin:-.2rem 0 .5rem}.apw-inline-picker{border:1px solid #eee;border-radius:6px;background:#fafbfc;padding:.6rem;margin-top:.4rem}.apw-inline-picker-actions{display:flex;justify-content:flex-end;margin-top:.4rem}.apw-rollup-table{display:flex;flex-direction:column;border:1px solid #eee;border-radius:6px;overflow:hidden}.apw-rollup-row{display:grid;grid-template-columns:1.1fr 1.3fr .6fr .6fr;gap:.4rem;padding:.4rem .5rem;font-size:12px;border-bottom:1px solid #f5f5f5}.apw-rollup-row.apw-rollup-row-3col{grid-template-columns:1fr 1fr 1fr}.apw-rollup-row:last-child{border-bottom:none}.apw-rollup-header{background:#fafbfc;font-weight:700;color:#7f8c8d;font-size:10.5px;text-transform:uppercase;letter-spacing:.02em}.apw-rollup-activity{color:#2c3e50;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ad-pane{flex:1 1 28%;min-width:0;padding:.9rem 1rem 1.5rem}.ad-empty-state{color:#7f8c8d;font-size:13px;padding:2rem 1rem;text-align:center}.ad-pane-header{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #eee}.ad-pane-activity-number{font-weight:700;color:#2c3e7f;font-size:13px}.ad-pane-activity-name{font-weight:600;color:#2c3e50;font-size:15px}.ad-sections{display:flex;flex-direction:column;gap:.5rem}.ad-section{border:1px solid #eee;border-radius:6px;background:#fff}.ad-section-header{width:100%;display:flex;align-items:center;gap:.5rem;background:none;border:none;padding:.6rem .8rem;cursor:pointer;text-align:left}.ad-section-toggle{color:#7f8c8d;font-size:10px;flex-shrink:0}.ad-section-title{font-size:13px;font-weight:700;color:#2c3e50}.ad-section-summary{margin-left:auto;font-size:11px;color:#7f8c8d}.ad-section-body{padding:.75rem .9rem .9rem;border-top:1px solid #f2f2f2}.ad-empty-hint{font-size:12px;color:#7f8c8d;margin:0 0 .6rem}.ad-field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem 1rem}.ad-field{display:flex;flex-direction:column;gap:.15rem;font-size:12px;min-width:0}.ad-field-label{color:#7f8c8d;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.ad-field-value{color:#2c3e50;font-size:13px;overflow:hidden;text-overflow:ellipsis}.ad-field-empty{color:#bbb}.ad-linked-list{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-direction:column;gap:.4rem}.ad-linked-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-size:13px;color:#2c3e50;padding:.35rem 0;border-bottom:1px solid #f5f5f5}.ad-linked-row-content{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ad-unresolved{color:#aaa;font-style:italic}.ad-inline-badge{font-size:10px;font-weight:700;text-transform:uppercase;color:#7f8c8d;background:#f2f3f7;border-radius:4px;padding:1px 6px;margin-left:.3rem}.ad-inline-muted{color:#7f8c8d}.ad-add-link-button{display:inline-block}.ad-picker-modal{max-width:420px}.ad-picker-search{width:100%;padding:.5rem .6rem;border:1px solid #ddd;border-radius:5px;font-size:13px;margin-bottom:.6rem}.ad-picker-list{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.ad-picker-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;text-align:left;background:none;border:none;border-radius:4px;padding:.5rem .6rem;font-size:13px;color:#2c3e50;cursor:pointer}.ad-picker-row:hover{background:#eaf1ff}.ad-picker-row:disabled{cursor:default;opacity:.7}.ad-picker-row-linking{font-size:11px;color:#7f8c8d;flex-shrink:0}.ad-checklist{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-direction:column;gap:.25rem}.ad-checklist-row{display:flex;align-items:center;gap:.5rem;font-size:13px;padding:.25rem 0;border-bottom:1px solid #f5f5f5}.ad-checklist-text{flex:1;min-width:0;color:#2c3e50;overflow:hidden;text-overflow:ellipsis}.ad-checklist-text.checked{color:#aaa;text-decoration:line-through}.ad-checklist-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.ad-checklist-move-btn{background:none;border:1px solid #ddd;border-radius:3px;width:20px;height:20px;font-size:10px;color:#7f8c8d;cursor:pointer;display:flex;align-items:center;justify-content:center}.ad-checklist-move-btn:disabled{opacity:.4;cursor:not-allowed}.ad-inline-add-row{display:flex;gap:.5rem}.ad-inline-add-row input{flex:1;min-width:0;padding:.4rem .6rem;border:1px solid #ddd;border-radius:5px;font-size:13px}.ad-entry-list{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-direction:column;gap:.4rem}.ad-entry-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem;padding:.4rem 0;border-bottom:1px solid #f5f5f5}.ad-entry-row-editing{display:block;padding:.4rem 0}.ad-entry-content{min-width:0}.ad-entry-title{font-size:13px;color:#2c3e50;font-weight:600}.ad-entry-sub{font-size:12px;color:#7f8c8d;margin-top:.1rem}.ad-entry-actions{display:flex;gap:.5rem;flex-shrink:0}.ad-inline-form{display:flex;flex-direction:column;gap:.5rem;background:#fafbfc;border:1px solid #eee;border-radius:6px;padding:.7rem}.ad-inline-form input,.ad-inline-form textarea{font-family:inherit;font-size:13px;padding:.4rem .6rem;border:1px solid #ddd;border-radius:5px;width:100%}.ad-inline-form-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.ad-inline-form-actions{display:flex;justify-content:flex-end;gap:.5rem}.ad-notes-list{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.ad-note-row{border-bottom:1px solid #f5f5f5;padding-bottom:.4rem}.ad-note-text{font-size:13px;color:#2c3e50;white-space:pre-wrap}.ad-note-meta{font-size:11px;color:#aaa;margin-top:.15rem}.tm-tag-form{max-width:820px;margin:0 auto;padding-bottom:90px}.tm-tag-form-header,.tm-tag-form-header .btn-back{margin-bottom:8px}.tm-tag-form-header h3{display:flex;align-items:center;gap:10px;font-size:22px;color:#2c3e50;margin:0}.tm-tag-form-readonly-banner{background:#fff7e6;color:#8a5a00;border:1px solid #f0d9a0;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px}.tm-tag-form-new-banner{background:#eaf1ff;color:#2c3e7f;border-color:#c7d7f7}.tm-tag-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:22px 24px;margin-bottom:20px}.tm-tag-section h4{margin:0 0 16px;font-size:16px;color:#2c3e7f;letter-spacing:.02em}.tm-tag-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.tm-tag-section-header h4{margin:0}.tm-tag-section-empty{color:#9aa1a9;font-size:14px;margin:0 0 12px}.tm-tag-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 20px}.tm-tag-grid-full{grid-column:1 / -1}.tm-tag-grid .form-group,.tm-tag-row-grid .form-group{margin-bottom:0}.tm-tag-rows{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.tm-tag-row-card{background:#f9fafb;border:1px solid #eef0f2;border-radius:10px;padding:16px 18px;position:relative}.tm-tag-row-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 16px}.tm-tag-row-grid-labor,.tm-tag-row-grid-equipment,.tm-tag-row-grid-materials,.tm-tag-row-grid-other-costs{grid-template-columns:repeat(3,1fr)}.tm-tag-checkbox-group label{display:flex;align-items:center;gap:8px;font-weight:500;margin-top:22px}.tm-tag-row-remove{margin-top:12px;border:none;background:transparent;color:#c0392b;font-size:13px;font-weight:500;cursor:pointer;padding:0}.tm-tag-row-remove:hover{text-decoration:underline}.tm-tag-totals{font-size:14px;color:#5a6572;border-top:1px solid #eef0f2;padding-top:12px}.tm-tag-totals strong{color:#2c3e50}.tm-tag-attachment-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.tm-tag-attachment-item{display:flex;align-items:center;gap:12px;background:#f9fafb;border:1px solid #eef0f2;border-radius:8px;padding:10px 14px;font-size:13px}.tm-tag-attachment-type{background:#eaf1ff;color:#2c3e7f;border-radius:10px;padding:2px 8px;font-weight:600;font-size:12px;white-space:nowrap}.tm-tag-attachment-name{flex:1;color:#2c3e50;font-weight:500}.tm-tag-attachment-date{color:#9aa1a9;white-space:nowrap}.tm-tag-upload-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.tm-tag-upload-row select,.tm-tag-upload-row input[type=text]{padding:8px 10px;border:1px solid #dcdfe4;border-radius:6px;font-size:14px}.tm-tag-ack-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.tm-tag-ack-block{background:#f9fafb;border:1px solid #eef0f2;border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.tm-tag-ack-block h5{margin:0;font-size:14px;color:#2c3e50}.tm-tag-ack-meta{margin:0;font-size:13px;color:#5a6572}.tm-tag-ack-signature-preview{max-width:100%;max-height:100px;border:1px solid #eef0f2;border-radius:6px;background:#fff}.tm-tag-ack-typed-signature{font-family:Brush Script MT,cursive;font-size:26px;color:#2c3e50;margin:4px 0}.tm-tag-ack-mode-toggle{display:inline-flex;background:#f0f2f5;border-radius:8px;padding:4px;gap:4px;width:fit-content}.tm-tag-ack-mode-toggle button{border:none;background:transparent;padding:6px 14px;border-radius:6px;font-size:13px;font-weight:500;color:#5a6572;cursor:pointer}.tm-tag-ack-mode-toggle button.active{background:#fff;color:#2c3e7f;box-shadow:0 1px 3px #0000001f}.signature-pad-wrap{border:1px dashed #c7ccd3;border-radius:8px;background:#fff;overflow:hidden}.signature-pad-canvas{width:100%;height:140px;display:block;touch-action:none;cursor:crosshair}.signature-pad-disabled{cursor:default;opacity:.7}.signature-pad-footer{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-top:1px solid #eef0f2;background:#f9fafb}.signature-pad-hint{font-size:12px;color:#9aa1a9}.signature-pad-clear{border:none;background:transparent;color:#3498db;font-size:12px;font-weight:500;cursor:pointer}.signature-pad-clear:disabled{color:#c7ccd3;cursor:not-allowed}.tm-tag-action-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e5e7eb;box-shadow:0 -2px 8px #0000000f;padding:14px 24px;display:flex;justify-content:flex-end;gap:12px;z-index:20}@media(max-width:640px){.tm-tag-grid,.tm-tag-row-grid,.tm-tag-ack-columns{grid-template-columns:1fr}.tm-tag-section{padding:18px 16px}.tm-tag-action-bar{padding:12px 16px;flex-wrap:wrap}.tm-tag-action-bar button{flex:1}}.tm-tags-tab{padding:0}.tm-tags-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.tm-tags-header h3{margin:0;font-size:20px;color:#2c3e50}.tm-tags-view-toggle{display:inline-flex;background:#f0f2f5;border-radius:8px;padding:4px;margin-bottom:16px;gap:4px}.tm-tags-view-toggle .toggle-btn{border:none;background:transparent;padding:6px 16px;border-radius:6px;font-size:14px;font-weight:500;color:#5a6572;cursor:pointer;transition:background .15s ease,color .15s ease}.tm-tags-view-toggle .toggle-btn:hover{color:#2c3e50}.tm-tags-view-toggle .toggle-btn.active{background:#fff;color:#2c3e7f;box-shadow:0 1px 3px #0000001f}.tm-tags-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.tm-tags-search-box{position:relative;flex:1;min-width:220px}.tm-tags-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:13px;opacity:.5;pointer-events:none}.tm-tags-search-box input.search-input,.tm-tags-search-box input{width:100%;padding:8px 12px 8px 30px;border:1px solid #dcdfe4;border-radius:6px;font-size:14px;box-sizing:border-box}.tm-tags-toolbar .filter-select{padding:8px 12px;border:1px solid #dcdfe4;border-radius:6px;font-size:14px;background:#fff}.tm-tags-toolbar .btn-refresh{padding:8px 14px;border:1px solid #dcdfe4;border-radius:6px;background:#fff;font-size:14px;cursor:pointer;white-space:nowrap}.tm-tags-toolbar .btn-refresh:hover:not(:disabled){background:#f5f6f8}.tm-tags-toolbar .btn-refresh:disabled{opacity:.6;cursor:default}.tm-tags-notice{display:flex;align-items:center;justify-content:space-between;background:#eaf1ff;color:#2c3e7f;border:1px solid #c7d7f7;border-radius:6px;padding:10px 14px;margin-bottom:16px;font-size:14px}.tm-tags-notice button{border:none;background:transparent;color:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:underline;padding:0 0 0 12px}.tm-tags-notice-error{background:#fdecea;color:#c0392b;border-color:#f6c6c1}.tm-tags-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.tm-tags-table{width:100%;min-width:1080px;border-collapse:separate;border-spacing:0;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #0000001a;font-size:14px}.tm-tags-table thead th{text-align:left;padding:12px 14px;background:#f7f8fa;color:#5a6572;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #e5e7eb;white-space:nowrap}.tm-tags-table tbody td{padding:12px 14px;border-bottom:1px solid #eef0f2;color:#2c3e50;vertical-align:middle}.tm-tags-table tbody tr:last-child td{border-bottom:none}.tm-tags-row{cursor:pointer;transition:background .1s ease}.tm-tags-row:hover{background:#f9fafb}.tm-tags-col-number{font-weight:600;color:#2c3e7f;white-space:nowrap}.tm-tags-col-title{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tm-tags-col-actions{white-space:nowrap;cursor:default}.tm-tags-action-link{border:none;background:transparent;color:#3498db;font-size:13px;font-weight:500;cursor:pointer;padding:4px 6px}.tm-tags-action-link:hover:not(:disabled){text-decoration:underline}.tm-tags-action-link:disabled{color:#b5bac1;cursor:not-allowed}.tm-tags-action-danger{color:#c0392b}.tm-ack-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600}.tm-ack-badge.ack-signed{background:#eafaf1;color:#27ae60}.tm-ack-badge.ack-refused{background:#fdecea;color:#c0392b}.tm-ack-badge.ack-none{color:#b5bac1}.status-badge.status-signed{background:#eaf1ff;color:#2c3e7f}.status-badge.status-disputed{background:#fdecea;color:#c0392b}.status-badge.status-void{background:#f0f0f0;color:#7f8c8d}.tm-tags-empty-card{text-align:center;padding:60px 24px;background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000000f}.tm-tags-empty-icon{font-size:48px;margin-bottom:12px}.tm-tags-empty-card h3{margin:0 0 8px;font-size:18px;color:#2c3e50}.tm-tags-empty-card p{margin:0 auto 20px;max-width:420px;color:#7f8c8d;font-size:14px;line-height:1.5}.photos-page{padding:0}.photos-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.photos-title{margin:0;font-size:20px;color:#2c3e50}.photos-upload-btn{background:#2c3e7f;color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;cursor:pointer}.photos-upload-btn:disabled{opacity:.5;cursor:not-allowed}.photos-error-banner{display:flex;align-items:center;justify-content:space-between;background:#fdecea;color:#c0392b;border-radius:8px;padding:10px 14px;margin-bottom:16px;font-size:13px}.photos-error-banner button{background:none;border:1px solid currentColor;border-radius:6px;padding:4px 10px;color:inherit;cursor:pointer}.photos-loading,.photos-empty{padding:60px 20px;text-align:center;color:#6b7280}.photos-empty-title{font-size:16px;font-weight:600;color:#2c3e50;margin:0 0 6px}.photos-empty-sub{margin:0;font-size:13px}.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.photos-grid-item{position:relative;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;padding:0;background:#f3f4f6;cursor:pointer;aspect-ratio:1 / 1;display:block}.photos-grid-item img{width:100%;height:100%;object-fit:cover;display:block}.photos-grid-item-placeholder{width:100%;height:100%;background:#e5e7eb}.photos-grid-item-caption{position:absolute;left:0;right:0;bottom:0;padding:6px 8px;font-size:12px;color:#fff;background:linear-gradient(to top,#000000a6,#0000);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photos-viewer-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.photos-viewer-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}.photos-viewer-close{position:absolute;top:-36px;right:0;background:none;border:none;color:#fff;font-size:20px;cursor:pointer}.photos-viewer-image-wrap{display:flex;align-items:center;justify-content:center;max-height:75vh}.photos-viewer-image{max-width:90vw;max-height:75vh;object-fit:contain;border-radius:6px}.photos-viewer-image-placeholder{color:#fff;padding:40px}.photos-viewer-meta{color:#fff;text-align:center;margin-top:12px}.photos-viewer-caption{font-size:15px;font-weight:600;margin:0 0 4px}.photos-viewer-meta-line{font-size:13px;color:#d1d5db;margin:0}.photos-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.photos-modal-content{background:#fff;border-radius:12px;width:100%;max-width:560px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.photos-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e7eb}.photos-modal-header h3{margin:0;font-size:16px;color:#2c3e50}.photos-modal-close{background:none;border:none;font-size:16px;cursor:pointer;color:#6b7280}.photos-modal-body{padding:16px 20px;overflow-y:auto;flex:1}.photos-modal-error{background:#fdecea;color:#c0392b;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:14px}.photos-modal-picker{display:inline-flex;align-items:center;gap:8px;border:1px dashed #9ca3af;border-radius:8px;padding:10px 16px;font-size:13px;color:#2c3e50;cursor:pointer}.photos-modal-picker input[type=file]{display:none}.photos-modal-pending-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.photos-modal-pending-item{display:flex;gap:12px;align-items:center;border:1px solid #e5e7eb;border-radius:8px;padding:8px}.photos-modal-pending-item img{width:56px;height:56px;object-fit:cover;border-radius:6px;flex-shrink:0}.photos-modal-pending-fields{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.photos-modal-pending-fields input[type=text]{border:1px solid #d1d5db;border-radius:6px;padding:6px 8px;font-size:13px}.photos-modal-pending-status{font-size:12px;color:#6b7280}.photos-modal-status-done{color:#1e7e34;font-weight:600}.photos-modal-status-error{color:#c0392b}.photos-modal-pending-status button{background:none;border:none;color:#c0392b;cursor:pointer;font-size:12px;padding:0}.photos-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid #e5e7eb}.pss-panel{width:200px;min-width:200px;flex-shrink:0;height:100%;background:#fff;border-left:1px solid #eee;display:flex;flex-direction:column;overflow:hidden}.pss-collapsed{width:28px;min-width:28px;flex-shrink:0;height:100%;background:#fff;border-left:1px solid #eee;display:flex;flex-direction:column;align-items:center;padding-top:.85rem}.pss-expand-btn,.pss-collapse-btn{border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600;color:#5a6572;width:22px;height:22px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.pss-expand-btn:hover,.pss-collapse-btn:hover{border-color:#2c3e7f;color:#2c3e7f;background:#f9fafb}.pss-header{padding:.85rem .85rem .6rem;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.pss-title{font-size:13px;font-weight:700;color:#2c3e50}.pss-add-btn{margin:.6rem .85rem 0;padding:.5rem .6rem;background:#2c3e7f;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;transition:background .15s;flex-shrink:0}.pss-add-btn:hover{background:#23315f}.pss-list{flex:1;overflow-y:auto;padding:.6rem;display:flex;flex-direction:column;gap:2px}.pss-empty{padding:.5rem .15rem;font-size:12px;color:#9aa3ad}.pss-row{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:.6rem .7rem;border:none;background:none;border-radius:6px;cursor:pointer;text-align:left;width:100%;transition:background .15s,color .15s}.pss-row:hover{background:#f5f6fa}.pss-row.active{background:#eaf1ff}.pss-row-name{font-size:13px;font-weight:500;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.pss-row.active .pss-row-name{color:#2c3e7f;font-weight:600}.pss-row-number{font-size:11px;color:#9aa3ad}@media(max-width:900px){.pss-panel{width:170px;min-width:170px}}@media(max-width:640px){.pss-panel,.pss-collapsed{display:none}}.project-detail-page{display:flex;flex-direction:row;height:100%;background:#f5f6fa}.btn-back{padding:.6rem 1rem;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;color:#2c3e50;transition:all .2s}.tab-button{padding:1rem 1.2rem;border:none;background:none;cursor:pointer;font-size:13px;font-weight:600;color:#7f8c8d;white-space:nowrap;border-bottom:3px solid transparent;transition:all .3s}.tab-button:hover{color:#2c3e50}.tab-button.active{color:#2c3e7f;border-bottom-color:#2c3e7f}.pd-content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.pd-mobile-bar{display:none}.pd-content{flex:1;overflow-y:auto;padding:var(--content-padding, 1.5rem 2rem)}.tab-loading,.tab-empty{text-align:center;padding:3rem;color:#7f8c8d;font-size:14px}.tab-placeholder{background:#fff;border-radius:8px;padding:3rem;text-align:center;color:#95a5a6;font-size:16px}.overview-tab{background:#fff;border-radius:8px;padding:2rem}.phases-pills{display:flex;gap:.8rem;margin:1.5rem 0 2rem;flex-wrap:wrap}.phase-pill{display:flex;align-items:center;gap:.6rem;padding:.8rem 1.4rem;background:#fff;border:2px solid #e5e7eb;border-radius:24px;cursor:pointer;font-size:13px;font-weight:600;color:#7f8c8d;transition:all .2s}.phase-pill:hover{border-color:#2c3e7f;color:#2c3e7f}.phase-pill.active{background:#2c3e7f;border-color:#2c3e7f;color:#fff}.phase-icon{font-size:16px}.phase-name{white-space:nowrap}.phase-count{background:#0000001a;padding:.2rem .6rem;border-radius:12px;font-size:12px;font-weight:700}.phase-pill.active .phase-count{background:#ffffff4d}.phase-tasks-section{background:#fff;border-radius:8px;padding:1.5rem}.tasks-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #eee}.tasks-header h3{margin:0;font-size:16px;font-weight:700;color:#2c3e50}.task-progress{font-size:12px;color:#7f8c8d;font-weight:600}.no-tasks{text-align:center;padding:2rem;color:#95a5a6;font-size:14px;margin:0}.tasks-list{margin-bottom:1.5rem}.task-item{display:flex;align-items:center;gap:12px;padding:.8rem;margin-bottom:.6rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;transition:all .2s}.task-item:hover{background:#f0f9ff;border-color:#2c3e7f}.task-checkbox{width:18px;height:18px;cursor:pointer;accent-color:#27ae60;flex-shrink:0}.task-name{font-size:14px;color:#2c3e50;flex:1;transition:all .2s}.task-name.completed{text-decoration:line-through;color:#95a5a6}.add-task-section{display:flex;gap:.8rem;padding-top:1rem;border-top:2px solid #eee}.add-task-input{flex:1;padding:.8rem 1rem;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;transition:all .2s}.add-task-input:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 2px #2c3e7f1a}.btn-add-task{padding:.8rem 1.4rem;background:#27ae60;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-add-task:hover{background:#229954;transform:translateY(-1px)}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem}.info-card{background:#f9fafb;border:1px solid #eee;border-radius:6px;padding:1.5rem}.info-card h3{margin:0 0 1rem;font-size:14px;font-weight:600;color:#2c3e50;text-transform:uppercase;letter-spacing:.5px}.info-row{display:flex;justify-content:space-between;align-items:center;padding:.8rem 0;border-bottom:1px solid #eee}.info-row:last-child{border-bottom:none}.info-row .label{font-size:12px;font-weight:600;color:#7f8c8d;text-transform:uppercase;letter-spacing:.3px}.info-row .value{font-size:14px;color:#2c3e50;font-weight:500}.progress-bar-large{width:100%;height:8px;background:#ecf0f1;border-radius:4px;overflow:hidden;margin:.6rem 0}.progress-fill{height:100%;background:linear-gradient(90deg,#27ae60,#2ecc71);transition:width .3s}.progress-text{font-size:12px;font-weight:600;color:#7f8c8d}.edit-form{background:#f9fafb;border:1px solid #eee;border-radius:6px;padding:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.edit-actions{display:flex;gap:1rem;margin-top:1.5rem}.btn-save,.btn-cancel-edit{flex:1;padding:.8rem 1.2rem;border:none;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-save:hover{background:#229954}.btn-cancel-edit{background:#ecf0f1;color:#2c3e50}.btn-cancel-edit:hover{background:#bdc3c7}.document-hub{display:flex;align-items:flex-start;gap:1.5rem}.document-hub-main{flex:1;min-width:0}.document-hub-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.document-hub-title{margin:0;font-size:20px;font-weight:700;color:#2c3e50}.document-hub-toolbar{display:flex;align-items:center;gap:.8rem;flex:1;justify-content:flex-end;min-width:280px}.document-hub-search{flex:1;max-width:340px;padding:.7rem 1rem;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit}.document-hub-search:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 3px #2c3e7f1a}.document-hub-upload-btn{white-space:nowrap;flex:none}.document-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.2rem}.document-category-card{background:#fff;border-radius:10px;padding:1.2rem;box-shadow:0 1px 3px #00000014}.document-category-header{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid #eee}.document-category-icon{font-size:18px}.document-category-label{flex:1;font-size:14px;font-weight:700;color:#2c3e50}.document-slot-list{display:flex;flex-direction:column;gap:.9rem}.document-slot-row{padding-bottom:.9rem;border-bottom:1px solid #f1f2f6}.document-slot-row:last-child{padding-bottom:0;border-bottom:none}.document-slot-checklist-line{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}.document-slot-checkbox{display:flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;border-radius:4px;border:2px solid #bdc3c7;font-size:12px;font-weight:700;color:#fff}.document-slot-checkbox.checked{background:#27ae60;border-color:#27ae60}.document-slot-title{flex:1;font-size:13px;font-weight:600;color:#2c3e50}.document-slot-status-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:.25rem .6rem;border-radius:999px;flex-shrink:0}.document-slot-status-badge.missing{background:#f1f2f6;color:#95a5a6}.document-slot-status-badge.uploaded{background:#e6f7ee;color:#1e8a52}.document-slot-details{padding-left:1.6rem}.document-slot-meta{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.6rem}.document-slot-filename{font-size:12px;font-weight:600;color:#2c3e50;overflow-wrap:break-word}.document-slot-meta-line{font-size:11px;color:#7f8c8d}.document-slot-actions{display:flex;flex-wrap:wrap;gap:.5rem;padding-left:1.6rem}.document-slot-details .document-slot-actions{padding-left:0}.document-slot-action-btn{padding:.4rem .7rem;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:11px;font-weight:600;color:#2c3e50;transition:all .2s}.document-slot-action-btn:hover:not(:disabled){border-color:#2c3e7f;color:#2c3e7f}.document-slot-action-btn.primary{background:#2c3e7f;border-color:#2c3e7f;color:#fff}.document-slot-action-btn.primary:hover{background:#22305f}.document-slot-action-btn.disabled,.document-slot-action-btn:disabled{opacity:.5;cursor:not-allowed}.document-category-card-other{display:flex;flex-direction:column}.document-category-card-other .document-category-header{margin-bottom:.8rem}.document-other-upload-btn{padding:.4rem .8rem;background:#ecf0f1;border:none;border-radius:4px;cursor:pointer;font-size:11px;font-weight:600;color:#2c3e50;transition:all .2s}.document-other-upload-btn:hover{background:#dfe4e6}.document-other-empty{padding:1rem 0;text-align:center;color:#95a5a6;font-size:12px}.document-other-list,.document-search-results{display:flex;flex-direction:column;gap:.6rem}.document-other-row,.document-search-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid #f1f2f6}.document-other-row:last-child,.document-search-row:last-child{border-bottom:none}.document-other-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.document-other-name{font-size:13px;font-weight:600;color:#2c3e50;overflow-wrap:break-word}.document-other-meta{font-size:11px;color:#7f8c8d}.document-search-results{background:#fff;border-radius:10px;padding:1.2rem;box-shadow:0 1px 3px #00000014}.document-search-empty{background:#fff;border-radius:10px;padding:3rem;text-align:center;color:#95a5a6;font-size:14px;box-shadow:0 1px 3px #00000014}.document-hub-intelligence-panel{width:280px;flex-shrink:0;background:#fff;border-radius:10px;padding:1.2rem;box-shadow:0 1px 3px #00000014;position:sticky;top:0}.intelligence-panel-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.8rem;border-bottom:1px solid #eee}.intelligence-panel-icon{font-size:16px}.intelligence-panel-title{font-size:13px;font-weight:700;color:#2c3e50}.intelligence-panel-body{text-align:center;padding:1.5rem .5rem}.intelligence-panel-placeholder{margin:0 0 .6rem;font-size:13px;font-weight:700;color:#bdc3c7;text-transform:uppercase;letter-spacing:.5px}.intelligence-panel-hint{margin:0;font-size:11px;color:#95a5a6;line-height:1.5}@media(max-width:900px){.document-hub{flex-direction:column}.document-hub-intelligence-panel{width:100%;position:static}}.daily-reports-tab{background:#fff;border-radius:8px;padding:2rem}.reports-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #eee}.reports-header h3{margin:0;font-size:18px;font-weight:700;color:#2c3e50}.btn-create-report{padding:.8rem 1.4rem;background:#27ae60;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-create-report:hover{background:#229954;transform:translateY(-1px)}.reports-table{width:100%;border-collapse:collapse;background:#fff}.reports-table thead{background:#f8f9fa;border-bottom:2px solid #e5e7eb}.reports-table th{padding:1rem;text-align:left;font-weight:600;color:#2c3e50;font-size:13px}.reports-table tbody tr{border-bottom:1px solid #e5e7eb;transition:all .2s}.reports-table tbody tr:hover{background:#f9fafb}.reports-table td{padding:1rem;color:#475569;font-size:13px}.reports-table td .btn-small{margin-left:.5rem}.empty-state{text-align:center;padding:3rem;color:#95a5a6;font-size:14px}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003;max-width:600px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #eee}.modal-header h3{margin:0;font-size:18px;font-weight:700;color:#2c3e50}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#7f8c8d;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close:hover{color:#2c3e50;background:#f0f0f0;border-radius:4px}.modal-body{padding:2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-size:13px;font-weight:600;color:#2c3e50;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 3px #2c3e7f1a}.modal-actions{display:flex;gap:1rem;margin-top:2rem}.btn-primary{flex:1;padding:.8rem 1.2rem;background:#27ae60;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary:hover{background:#229954}.btn-cancel{flex:1;padding:.8rem 1.2rem;background:#ecf0f1;color:#2c3e50;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel:hover{background:#bdc3c7}.btn-small{padding:.5rem 1rem;background:#3498db;color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.btn-small:hover{background:#2980b9}.modal-large{max-width:800px;width:95%;max-height:85vh}.form-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid #eee}.form-section:last-of-type{border-bottom:none}.form-section h4{margin:0 0 1rem;font-size:14px;font-weight:700;color:#2c3e50}.items-list{margin-bottom:1rem;background:#f9fafb;border-radius:6px;overflow:hidden}.item-row{display:flex;justify-content:space-between;align-items:center;padding:.8rem;border-bottom:1px solid #e5e7eb}.item-row:last-child{border-bottom:none}.item-info{display:flex;align-items:center;flex:1;gap:1rem}.item-name{font-size:13px;font-weight:600;color:#2c3e50}.item-meta{font-size:11px;color:#7f8c8d}.item-info input[type=text]{flex:.5;padding:.7rem;border:1px solid #ddd;border-radius:6px;font-size:12px;font-family:inherit}.empty-list{padding:1rem;text-align:center;color:#95a5a6;font-size:12px;margin:0}.btn-remove{padding:.4rem .6rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s;flex-shrink:0;margin-left:.8rem}.btn-remove:hover{background:#c0392b}.add-item-row{display:flex;gap:.6rem;flex-wrap:wrap}.add-item-row input,.add-item-row select{flex:1;min-width:120px;padding:.7rem;border:1px solid #ddd;border-radius:4px;font-size:12px;font-family:inherit}.add-item-row input:focus,.add-item-row select:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 2px #2c3e7f1a}.btn-add-item{padding:.7rem 1rem;background:#27ae60;color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-add-item:hover{background:#229954}.notes-textarea{width:100%;padding:.8rem;border:1px solid #ddd;border-radius:6px;font-size:12px;font-family:inherit;resize:vertical;transition:all .2s}.notes-textarea:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 3px #2c3e7f1a}.coming-soon{padding:1rem;text-align:center;background:#f0f0f0;border-radius:6px;color:#95a5a6;font-size:12px;margin:0}.payapp-container{background:#fff;border-radius:8px;padding:2rem}.payapp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #eee}.payapp-header h3{margin:0;font-size:18px;font-weight:700;color:#2c3e50}.payapp-header div{display:flex;gap:1rem}.btn-secondary{padding:.6rem 1.2rem;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s}.btn-secondary:hover{border-color:#2c3e7f;background:#f9fafb}.payapp-table{width:100%;border-collapse:collapse;margin-bottom:2rem}.payapp-table thead{background:#f8f9fa;border-bottom:2px solid #e5e7eb}.payapp-table th{padding:1rem;text-align:left;font-weight:600;color:#2c3e50;font-size:13px}.payapp-table td{padding:1rem;color:#475569;font-size:13px;border-bottom:1px solid #e5e7eb}.payapp-table tbody tr:hover{background:#f9fafb}.btn-delete{padding:.4rem .8rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}.btn-delete:hover{background:#c0392b}.payapp-total{background:#f8f9fa;padding:1rem;border-radius:6px;margin-bottom:2rem;font-size:14px;font-weight:600;color:#2c3e50}.payapp-add-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:1.5rem}.payapp-add-item h4{margin:0 0 1rem;font-size:14px;font-weight:600;color:#2c3e50}.form-row{display:flex;gap:1rem}.form-row input{flex:1;padding:.7rem;border:1px solid #ddd;border-radius:4px;font-size:13px}.form-row input:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 2px #2c3e7f1a}.form-row button{padding:.7rem 1.4rem;background:#27ae60;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:all .2s}.form-row button:hover{background:#229954}.payapp-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem}.payapp-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:1.5rem;cursor:pointer;transition:all .2s}.payapp-card:hover{border-color:#2c3e7f;background:#fff;box-shadow:0 2px 8px #2c3e7f1a}.payapp-card h4{margin:0 0 .5rem;font-size:16px;font-weight:700;color:#2c3e50}.payapp-card p{margin:0;font-size:13px;color:#7f8c8d}.payapp-detail{max-width:1000px}.payapp-dates{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.payapp-dates input{padding:.6rem;border:1px solid #ddd;border-radius:4px;font-size:13px}.payapp-billing-table{width:100%;border-collapse:collapse;margin-bottom:2rem;border:1px solid #e5e7eb}.payapp-billing-table thead{background:#2c3e7f;color:#fff}.payapp-billing-table th{padding:1rem;text-align:center;font-weight:600;font-size:12px}.payapp-billing-table th:first-child{text-align:left}.payapp-billing-table td{padding:.8rem;text-align:center;border-bottom:1px solid #e5e7eb;font-size:13px}.payapp-billing-table td:first-child{text-align:left;font-weight:600;color:#2c3e50}.payapp-billing-table input{width:80px;padding:.4rem;border:1px solid #ddd;border-radius:4px;text-align:center;font-size:12px}.payapp-summary{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:1.5rem;margin-bottom:2rem}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid #e5e7eb}.summary-row:last-child{border-bottom:none}.summary-row label{font-weight:600;color:#2c3e50;font-size:14px}.summary-row input{width:80px;padding:.6rem;border:1px solid #ddd;border-radius:4px;text-align:right;font-size:13px}.retainage-amount,.net-due-amount{font-weight:600;color:#2c3e50;font-size:14px}.net-due{background:#e8f4f8;padding:1rem 1rem 1.5rem;margin:0 -1.5rem -1.5rem}.net-due label{color:#2c3e7f}.net-due-amount{color:#2c3e7f;font-size:16px}.table-wrapper{overflow-x:auto;border:1px solid #e5e7eb;border-radius:6px;margin-bottom:2rem}.subtitle{margin:0;font-size:13px;color:#7f8c8d;font-weight:400}.status-badge{display:inline-block;padding:.3rem .8rem;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.status-badge.status-draft{background:#fdf3d6;color:#92640a}.status-badge.status-submitted{background:#e3f6ea;color:#1e7d42}.source-badge-manual{display:inline-block;margin-left:.6rem;padding:.15rem .5rem;border-radius:10px;background:#eef1fb;color:#2c3e7f;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.item-row-group{border-bottom:1px solid #e5e7eb}.item-row-group:last-child{border-bottom:none}.item-row-group .item-row{border-bottom:none}.item-row-nested-list{display:flex;flex-direction:column;margin:0 .8rem .6rem 2rem;padding-left:.6rem;border-left:2px solid #e0e0e0}.item-row-nested{padding:.5rem .6rem;border-bottom:none}.source-badge-assigned{display:inline-block;margin-left:.6rem;padding:.15rem .5rem;border-radius:10px;background:#eaf6ea;color:#2e7d32;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.report-meta-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #eee}.btn-small:disabled{background:#bcd3e8;cursor:not-allowed}.prepared-by{display:flex;align-items:center;gap:.5rem;font-size:13px;color:#2c3e50}.prepared-by-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#7f8c8d}.resource-selector{position:relative;margin-top:.6rem}.resource-selector input[type=text]{width:100%;padding:.7rem;border:1px solid #ddd;border-radius:6px;font-size:12px;font-family:inherit}.resource-selector input[type=text]:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 2px #2c3e7f1a}.selector-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:220px;overflow-y:auto;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 16px #0000001f;z-index:10}.selector-option{display:block;width:100%;text-align:left;padding:.6rem .8rem;background:none;border:none;border-bottom:1px solid #f0f0f0;font-size:12px;color:#2c3e50;cursor:pointer}.selector-option:last-child{border-bottom:none}.selector-option:hover{background:#f0f9ff}.selector-option-name{display:block;font-weight:600}.selector-option-email{display:block;font-size:10px;color:#7f8c8d;margin-top:2px;font-weight:400}.selector-empty{padding:.8rem;font-size:12px;color:#95a5a6;text-align:center}.safety-toggle{display:flex;gap:.6rem;margin-bottom:.8rem}.safety-toggle .toggle-btn{padding:.6rem 1.4rem;border:1px solid #ddd;background:#fff;border-radius:6px;font-size:12px;font-weight:600;color:#7f8c8d;cursor:pointer;transition:all .2s}.safety-toggle .toggle-btn.active{background:#2c3e7f;border-color:#2c3e7f;color:#fff}.history-list{display:flex;flex-direction:column;gap:.6rem}.history-entry{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;padding:.8rem}.history-entry-meta{display:flex;justify-content:space-between;font-size:11px;color:#7f8c8d;margin-bottom:.3rem}.history-entry-by{font-weight:600;color:#2c3e50}.history-entry-summary{font-size:12px;color:#2c3e50}.overview-layout{display:grid;grid-template-columns:1fr 300px;gap:1.5rem;align-items:start}.overview-main,.overview-sidebar{min-width:0}@media(max-width:900px){.overview-layout{grid-template-columns:1fr}}.project-team-card{background:#fff;border:1px solid #eee;border-radius:8px;padding:1.25rem}.project-team-card-header{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:1rem;padding-bottom:.8rem;border-bottom:2px solid #eee}.project-team-card-header h3{margin:0;font-size:14px;font-weight:700;color:#2c3e50;text-transform:uppercase;letter-spacing:.5px}.btn-manage-team{padding:.5rem .9rem;background:#2c3e7f;color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s}.btn-manage-team:hover{background:#24326a}.btn-manage-team:disabled{background:#bcd3e8;cursor:not-allowed}.project-team-loading,.project-team-empty{text-align:center;padding:1.5rem .5rem;color:#95a5a6;font-size:13px}.project-team-error{text-align:center;padding:1rem .5rem}.project-team-error p{margin:0 0 .6rem;color:#7f8c8d;font-size:13px}.project-team-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}.project-team-member{display:flex;align-items:center;gap:.7rem}.project-team-avatar{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.project-team-name{font-size:13px;color:#2c3e50;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){.pd-mobile-bar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #eee;flex-shrink:0}.pd-mobile-menu-btn{width:34px;height:34px;flex-shrink:0;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:15px;color:#2c3e50}.pd-mobile-menu-btn:hover{border-color:#2c3e7f}.pd-mobile-title{min-width:0;display:flex;flex-direction:column;line-height:1.3}.pd-mobile-title strong{font-size:13px;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pd-mobile-title span{font-size:11px;color:#7f8c8d}.pd-content{padding:1.25rem}}.payroll-container{padding:2rem;background:#f5f6fa;min-height:100%}.tab-empty{text-align:center;padding:3rem;color:#7f8c8d;font-size:14px}.loading{text-align:center;padding:2rem;color:#7f8c8d}.field-error{margin:.5rem 0 0;font-size:12px;color:#c0392b;font-weight:600}.btn-edit{padding:.6rem 1rem;background:#3498db;color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.btn-edit:hover{background:#2980b9}.timecards-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.timecards-page-header h2{margin:0;font-size:20px;color:#2c3e50}.week-start-selector{display:flex;align-items:center;gap:.6rem}.week-start-selector label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:#7f8c8d}.week-start-selector select{padding:.5rem .8rem;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit;background:#fff}.week-cell-label{font-weight:600;color:#2c3e50}.week-cell-range{font-size:11px;color:#95a5a6;margin-top:.2rem}.timecard-status-badge{display:inline-block;padding:.3rem .7rem;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.timecard-status-open{background:#e8f5e9;color:#2e7d32}.week-detail-range{color:#7f8c8d;font-size:13px;margin:-1rem 0 1.5rem}.week-detail-actions{display:flex;gap:.6rem;margin-bottom:1.5rem}.weeks-view{background:#fff;border-radius:8px;padding:2rem}.weeks-view h2{margin:0 0 1.5rem;font-size:20px;color:#2c3e50}.weeks-table-wrapper{overflow-y:auto;max-height:80vh;border:1px solid #e0e0e0;border-radius:8px}.weeks-table{width:100%;border-collapse:collapse;background:#fff}.weeks-table thead{background:#f8f9fa;border-bottom:2px solid #e5e7eb;position:sticky;top:0}.weeks-table th{padding:1rem;text-align:left;font-weight:600;color:#2c3e50;font-size:13px}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}.sortable-header:hover{background:#e8ecf1;color:#2c3e7f}.week-row{border-bottom:1px solid #e5e7eb;cursor:pointer;transition:all .2s}.week-row:hover{background:#f0f0f0}.weeks-table td{padding:1rem;color:#475569;font-size:13px}.download-cell{display:flex;gap:.5rem;justify-content:center}.btn-download-small{padding:.4rem .8rem;background:#fff;border:1px solid #2C3E7F;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s;min-width:40px}.btn-download-small:hover{background:#2c3e7f;color:#fff;transform:translateY(-2px);box-shadow:0 2px 8px #2c3e7f4d}.btn-download-small:active{transform:translateY(0)}.btn-download-small:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.timecards-view{background:#fff;border-radius:8px;padding:2rem}.btn-back{padding:.6rem 1rem;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s;margin-bottom:1.5rem}.btn-back:hover{border-color:#2c3e7f;background:#f9fafb}.timecards-view h2{margin:0 0 2rem;font-size:20px;color:#2c3e50}.timecards-scroll{display:flex;flex-direction:column;gap:2rem;max-height:75vh;overflow-y:auto;padding-right:1rem}.timecard-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;page-break-inside:avoid}.timecard-card h3{margin:0 0 1rem;font-size:16px;font-weight:700;color:#2c3e50}.timecard-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:6px;overflow:hidden}.timecard-table thead{background:#2c3e7f;color:#fff}.timecard-table th{padding:.8rem;text-align:center;font-weight:600;font-size:12px}.timecard-table th:first-child{text-align:left}.timecard-table td{padding:.8rem;text-align:center;font-size:13px;color:#2c3e50;border-bottom:1px solid #e5e7eb}.date-cell{text-align:left!important;font-weight:600;color:#2c3e50!important}.hours-cell{background:#f9fafb}.hours-cell:hover{background:#f0f0f0}.daily-total{font-weight:600}.total-cell{font-weight:600;background:#e8f5e9;color:#2e7d32}.total-row{background:#f8f9fa;font-weight:700;border-top:2px solid #2C3E7F}.total-row td{background:#f8f9fa;border:none}.total-label{text-align:left!important;color:#2c3e50!important}.total-hours{color:#2e7d32!important;background:#e8f5e9!important}.grand-total{color:#1565c0!important;background:#e3f2fd!important}.no-data{text-align:center;padding:3rem;color:#95a5a6;font-size:14px}.timecards-scroll::-webkit-scrollbar{width:6px}.timecards-scroll::-webkit-scrollbar-track{background:transparent}.timecards-scroll::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}.timecards-scroll::-webkit-scrollbar-thumb:hover{background:#999}.payroll-workspace{display:flex;flex-direction:row;height:100%;background:#f5f6fa}.pyr-content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.pyr-mobile-bar{display:none}.pyr-content{flex:1;overflow-y:auto}@media(max-width:640px){.pyr-mobile-bar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #eee;flex-shrink:0}.pyr-mobile-menu-btn{width:34px;height:34px;flex-shrink:0;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:15px;color:#2c3e50}.pyr-mobile-menu-btn:hover{border-color:#2c3e7f}.pyr-mobile-title{min-width:0;display:flex;flex-direction:column;line-height:1.3}.pyr-mobile-title strong{font-size:13px;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pyr-mobile-title span{font-size:11px;color:#7f8c8d}}.employee-detail-panel{position:fixed;right:0;top:0;height:100vh;width:460px;background:#fff;box-shadow:-2px 0 8px #00000026;z-index:999;display:flex;flex-direction:column;animation:slideIn .3s ease-out}.panel-tabs{display:flex;gap:4px;padding:0 1.5rem;border-bottom:1px solid #eee;background:#fff;flex-shrink:0;overflow-x:auto}.panel-tab-btn{padding:12px 14px;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:13px;font-weight:600;color:#666;transition:all .2s;white-space:nowrap}.panel-tab-btn:hover{color:#333}.panel-tab-btn.active{color:#667eea;border-bottom-color:#667eea}.panel-section-heading{margin:0 0 12px;font-size:12px;text-transform:uppercase;color:#999;letter-spacing:.5px}.edit-form .panel-section-heading:not(:first-child),.view-mode .panel-section-heading:not(:first-child){margin-top:.5rem;padding-top:1rem;border-top:1px solid #eee}.detail-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.form-group input{padding:.7rem;border:1px solid #ddd;border-radius:4px;font-size:14px;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 2px #2c3e7f1a}.field-hint-text{margin:0;font-size:11px;color:#999;font-style:italic}.field-error-text{margin:0;font-size:11px;color:#c0392b;font-weight:600}.form-row{display:grid;grid-template-columns:1fr .6fr .8fr;gap:.8rem}.form-row .form-group{gap:.4rem}.form-row .form-group input{padding:.6rem}@media(max-width:768px){.employee-detail-panel{width:100%}.panel-tabs{padding:0 1rem}}.assigned-equipment-tab{display:flex;flex-direction:column;gap:1rem}.assigned-equipment-tab.loading{color:#7f8c8d;font-size:13px}.assigned-equipment-hint{margin:-.5rem 0 0;font-size:12px;color:#999}.assigned-equipment-empty{margin:0;font-size:13px;color:#999;font-style:italic}.assigned-equipment-list{display:flex;flex-direction:column;gap:.6rem}.assigned-equipment-row{display:flex;justify-content:space-between;align-items:center;padding:.7rem .9rem;background:#f8f9fb;border:1px solid #eee;border-radius:6px}.assigned-equipment-info{min-width:0}.assigned-equipment-name{font-weight:600;font-size:13px;color:#2c3e50}.assigned-equipment-meta{font-size:11px;color:#999;margin-top:.1rem}.assigned-equipment-remove{flex-shrink:0;background:none;border:none;color:#e74c3c;cursor:pointer;font-size:15px;padding:.2rem .4rem}.assigned-equipment-remove:hover:not(:disabled){color:#c0392b}.assigned-equipment-remove:disabled{color:#bbb;cursor:not-allowed}.assigned-equipment-error{margin:0;font-size:12px;color:#c62828}.assigned-equipment-add{display:flex;flex-direction:column;gap:.5rem;padding-top:.75rem;border-top:1px solid #eee}.assigned-equipment-add label{font-size:12px;font-weight:700;color:#7f8c8d;text-transform:uppercase;letter-spacing:.5px}.assigned-equipment-selector{position:relative}.assigned-equipment-selector input{width:100%;padding:.7rem;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box}.assigned-equipment-selector input:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 2px #2c3e7f1a}.assigned-equipment-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:220px;overflow-y:auto;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 12px #0000001a;z-index:10}.assigned-equipment-dropdown-empty{padding:.7rem;font-size:13px;color:#999}.assigned-equipment-dropdown-option{display:block;width:100%;text-align:left;padding:.6rem .8rem;background:none;border:none;font-size:13px;color:#2c3e50;cursor:pointer}.assigned-equipment-dropdown-option:hover:not(:disabled){background:#f0f2f8}.assigned-equipment-dropdown-option:disabled{color:#bbb;cursor:not-allowed}.employees-page{height:100%;display:flex;flex-direction:column;background:#f5f6fa}.employees-header{padding:12px 20px;background:#fff;border-bottom:1px solid #e8e6e1;display:flex;align-items:center;flex-wrap:wrap;gap:16px}.employees-header h1{margin:0;font-size:18px;font-weight:700;color:#000}.toggle-buttons{display:flex;gap:8px}.toggle-btn{padding:8px 14px;background:#f0ede8;border:1px solid #d0ccc8;color:#333;border-radius:6px;cursor:pointer;font-weight:600;font-size:13px;transition:all .2s}.toggle-btn:hover{background:#e8e6e1}.toggle-btn.active{background:#667eea;color:#fff;border-color:#667eea}.search-box{position:relative;max-width:320px;flex:1;min-width:200px}.search-box input{width:100%;padding:8px 12px 8px 2.2rem;border:1px solid #d0ccc8;border-radius:6px;background:#fff;color:#333;font-size:13px;box-sizing:border-box}.search-box input::placeholder{color:#999}.search-box input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.search-icon{position:absolute;left:.7rem;top:50%;transform:translateY(-50%);font-size:14px}.employees-list{flex:1;padding:16px 20px;overflow-y:auto;overflow-x:auto;-webkit-overflow-scrolling:touch}.employees-table{width:100%;min-width:720px;background:#fff;border-collapse:collapse;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a;font-size:14px}.employees-table thead{background:#f9fafb;border-bottom:2px solid #eee}.employees-table th{padding:1rem;text-align:left;font-weight:600;color:#7f8c8d;text-transform:uppercase;font-size:11px;letter-spacing:.5px}.employees-table td{padding:1rem;border-bottom:1px solid #eee;color:#2c3e50}.employees-table tbody tr:hover{background:#f9fafb}.emp-name{font-weight:600;color:#2c3e50}.emp-rate{font-weight:600;color:#27ae60}.access-badge{display:inline-block;padding:.25rem .6rem;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.access-badge-admin{background:#e3e0ff;color:#4b3fcf}.access-badge-active{background:#e8f5e9;color:#2e7d32}.access-badge-invited{background:#fff3cd;color:#8a6d00}.access-badge-none{background:#f0f0f0;color:#777}.access-badge-revoked{background:#ffebee;color:#c62828}.empty-state{text-align:center;padding:3rem 2rem;color:#7f8c8d;font-size:16px}.btn-add-employee{padding:.8rem 1.5rem;background:#27ae60;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s;white-space:nowrap}.btn-add-employee:hover{background:#229954}.add-form-container{background:#fff;padding:1.5rem 2rem;margin:0 2rem 2rem;border-radius:8px;box-shadow:0 1px 3px #0000001a}.add-form-container h3{margin:0 0 1rem;font-size:16px;color:#2c3e50}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem}.form-grid input,.form-grid select{padding:.8rem;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit}.form-grid input:focus,.form-grid select:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 2px #2c3e7f1a}.form-actions{display:flex;gap:1rem;justify-content:flex-end}.btn-confirm{padding:.8rem 1.5rem;background:#27ae60;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:14px}.btn-confirm:hover{background:#229954}.btn-cancel{padding:.8rem 1.5rem;background:#ecf0f1;color:#7f8c8d;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:14px}@media(max-width:768px){.employees-header{padding:10px 16px;gap:10px}.employees-header h1{flex:1 1 100%}.toggle-buttons{flex:1 1 auto}.search-box{flex:1 1 100%;max-width:100%;min-width:0}.btn-add-employee{flex:1 1 auto}.employees-list{padding:12px 16px}.add-form-container{margin:0 1rem 1rem;padding:1.25rem}.form-grid{grid-template-columns:1fr}}.equipment-detail-panel{position:fixed;right:0;top:0;height:100vh;width:400px;background:#fff;box-shadow:-2px 0 8px #00000026;z-index:999;display:flex;flex-direction:column;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.panel-header{background:#2c3e7f;color:#fff;padding:1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd}.panel-header h2{margin:0;font-size:18px}.btn-close-panel{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-close-panel:hover{background:#fff3;border-radius:4px}.panel-content{flex:1;overflow-y:auto;padding:1.5rem}.view-mode{display:flex;flex-direction:column;gap:1.5rem}.detail-item{display:flex;flex-direction:column;gap:.4rem}.detail-item label{font-size:12px;font-weight:700;color:#7f8c8d;text-transform:uppercase;letter-spacing:.5px}.detail-item p{margin:0;font-size:14px;color:#2c3e50}.detail-item p.highlight{color:#2c3e7f;font-weight:600;font-size:15px}.status-badge{display:inline-block;padding:.4rem .8rem;border-radius:4px;font-size:12px;font-weight:600;text-transform:capitalize}.detail-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.detail-row .detail-item{gap:.3rem}.detail-row .detail-item p{font-size:13px}.btn-edit{background:#2c3e7f;color:#fff;border:none;padding:.8rem;border-radius:6px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s;margin-top:1rem}.btn-edit:hover{background:#1f2e5f}.edit-form{display:flex;flex-direction:column;gap:1.2rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:12px;font-weight:700;color:#7f8c8d;text-transform:uppercase;letter-spacing:.5px}.form-group input,.form-group select,.form-group textarea{padding:.7rem;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2c3e7f;box-shadow:0 0 0 2px #2c3e7f1a}.panel-actions{display:flex;gap:.8rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #eee}.btn-save,.btn-cancel{flex:1;padding:.8rem;border:none;border-radius:6px;cursor:pointer;font-weight:600;font-size:14px;transition:all .2s}.btn-save{background:#27ae60;color:#fff}.btn-save:hover:not(:disabled){background:#229954}.btn-save:disabled{background:#95a5a6;cursor:not-allowed}.btn-cancel{background:#ecf0f1;color:#7f8c8d}.btn-cancel:hover{background:#d5dbdb}@media(max-width:768px){.equipment-detail-panel{width:100%}}.equip-detail-page{height:100%;display:flex;flex-direction:column;background:#f8f9fa}.status-badge{padding:.4rem .8rem;border-radius:4px;font-size:12px;font-weight:600;text-transform:capitalize}.status-available{background:#e8f5e9;color:#2e7d32}.status-in_use{background:#fff3e0;color:#e65100}.status-maintenance{background:#fce4ec;color:#c2185b}.status-retired{background:#f3e5f5;color:#6a1b9a}.perm-tree{display:flex;flex-direction:column;gap:.4rem}.perm-tree-row{display:flex;align-items:center;gap:.6rem;cursor:pointer;font-size:13px;color:#333;padding:.3rem 0}.perm-tree-row input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#667eea}.perm-tree-all-row{font-weight:700;font-size:14px;padding-bottom:.5rem;border-bottom:1px solid #e8e6e1;margin-bottom:.3rem}.perm-tree-group{margin-bottom:.6rem}.perm-tree-group-row{font-weight:600;font-size:11px;color:#444;text-transform:uppercase;letter-spacing:.4px}.perm-tree-children{display:flex;flex-direction:column;padding-left:1.6rem;gap:.15rem}.perm-tree-leaf-row{font-size:13px;color:#333}.manage-access-modal{max-width:480px}.manage-access-user{display:flex;flex-direction:column;gap:2px;margin-bottom:.75rem}.manage-access-user strong{font-size:15px;color:#1a1a1a}.manage-access-user span{font-size:13px;color:#7f8c8d}.manage-access-hint{margin:0 0 1rem;font-size:12px;color:#7f8c8d;line-height:1.5}.manage-access-error{color:#c62828;font-size:12px;margin:1rem 0 0}.manage-access-footer{display:flex;justify-content:flex-end;gap:.6rem;padding:1rem 1.5rem;border-top:1px solid #eee;background:#f9fafb}.manage-access-btn-save{background:#667eea;color:#fff;border:none;padding:8px 20px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600}.manage-access-btn-save:disabled{background:#e0e0e0;color:#999;cursor:not-allowed}.manage-access-btn-cancel{background:#fff;color:#666;border:1px solid #d0ccc8;padding:8px 20px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600}.manage-access-btn-cancel:hover:not(:disabled){background:#f3f2ef}.manage-access-btn-cancel:disabled{color:#bbb;cursor:not-allowed}.company-page{display:flex;flex-direction:row;height:100%;background:#f3f2ef}.company-page.loading{display:flex;align-items:center;justify-content:center;font-size:16px;color:#666}.co-content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.co-mobile-bar{display:none}.co-content{flex:1;overflow-y:auto}.co-coming-soon{background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000000f;padding:3rem 2rem;text-align:center;max-width:520px;margin:2rem auto 0}.co-coming-soon h2{margin:0 0 10px;font-size:20px;color:#2c3e50}.co-coming-soon-badge{display:inline-block;background:#eaf1ff;color:#2c3e7f;border-radius:10px;padding:3px 12px;font-size:12px;font-weight:600;margin-bottom:14px}.co-coming-soon p{margin:0;color:#7f8c8d;font-size:14px;line-height:1.5}@media(max-width:640px){.co-mobile-bar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #eee;flex-shrink:0}.co-mobile-menu-btn{width:34px;height:34px;flex-shrink:0;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:15px;color:#2c3e50}.co-mobile-menu-btn:hover{border-color:#2c3e7f}.co-mobile-title{min-width:0;display:flex;flex-direction:column;line-height:1.3}.co-mobile-title strong{font-size:13px;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.co-mobile-title span{font-size:11px;color:#7f8c8d}}.back-btn{position:relative;display:inline-block;background:#fff;border:1px solid #d0ccc8;padding:8px 14px;border-radius:20px;cursor:pointer;font-size:13px;font-weight:600;color:#333;margin:20px 40px 0;transition:all .2s}.back-btn:hover{background:#f3f2ef}.empty-state{flex:1;background:#fff;border-radius:8px;padding:60px 40px;text-align:center;color:#999;font-size:16px;margin:24px}.company-header{background:#fff;margin:16px 24px 0;border-radius:10px;padding:16px 20px;display:flex;gap:16px;align-items:center;box-shadow:0 1px 4px #0000000f}.company-logo{width:48px;height:48px;object-fit:cover;border-radius:8px;border:1px solid #d0ccc8;flex-shrink:0}.company-logo-placeholder{width:48px;height:48px;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;font-weight:700;flex-shrink:0}.company-header-info{flex:1;min-width:0}.company-header-info h1{margin:0 0 4px;font-size:20px;font-weight:700;color:#000;line-height:1.2}.domain{margin:0;color:#666;font-size:13px;font-weight:500}.company-header-meta{font-size:13px;color:#666}.header-meta{display:flex;gap:30px;flex-wrap:wrap}.meta-item{display:flex;flex-direction:column}.meta-label{font-size:12px;color:#999;font-weight:600;text-transform:uppercase;margin-bottom:4px;letter-spacing:.5px}.meta-value{font-size:16px;color:#333;font-weight:600}.company-tabs{display:flex;gap:8px;padding:12px 24px 0;border-bottom:1px solid #d0ccc8;background:#f3f2ef;position:sticky;top:0;z-index:20}.tab-btn{padding:12px 20px;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:14px;font-weight:600;color:#666;transition:all .2s;white-space:nowrap}.tab-btn:hover{color:#333}.tab-btn.active{color:#667eea;border-bottom-color:#667eea}.company-content{padding:16px 0}.company-section{background:#fff;margin:16px 24px;border-radius:10px;padding:20px 24px;box-shadow:0 1px 4px #0000000f}.company-section h2{margin:0 0 16px;font-size:16px;color:#000;font-weight:700}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:16px 24px}.summary-card{background:#fff;border:1px solid #e8e6e1;border-radius:10px;padding:16px;text-align:center;box-shadow:0 1px 4px #0000000f}.summary-card-value{font-size:26px;font-weight:700;color:#667eea;line-height:1.2}.summary-card-label{font-size:11px;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.info-item label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;color:#999;margin-bottom:10px;letter-spacing:.8px}.info-item p{margin:0;font-size:16px;color:#333;line-height:1.6;font-weight:500}.team-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.team-member{display:flex;flex-direction:column;padding:20px;background:#f9f8f5;border-radius:10px;align-items:center;text-align:center;transition:all .2s;border:1px solid #e8e6e1}.team-member:hover{background:#f0ede8;box-shadow:0 2px 8px #00000014}.member-avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:28px;flex-shrink:0;margin-bottom:16px;box-shadow:0 2px 8px #0000001f}.member-info{flex:1}.member-name{margin:0 0 6px;font-size:15px;font-weight:700;color:#000;word-break:break-all}.member-role{margin:0;font-size:13px;color:#666;text-transform:capitalize;font-weight:500}.empty-message{text-align:center;color:#999;font-size:15px;padding:40px 20px;margin:0}.admin-section{background:linear-gradient(135deg,#fff8f0,#fffbf7);border:2px solid #ffc107;border-radius:12px}.admin-section h2{color:#ff8c00}.admin-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.admin-btn{padding:14px 18px;background:#fff;border:2px solid #ddd;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;color:#333;transition:all .2s}.admin-btn:hover{background:#f5f5f5;border-color:#667eea;color:#667eea}.admin-btn.danger{background:#ffebee;border-color:#ff6b6b;color:#c62828}.admin-btn.danger:hover{background:#ffcdd2;border-color:#c62828}.equipment-subsections{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.company-btn{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 16px;background:#f9f8f5;border:2px solid #e8e6e1;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;color:#333;transition:all .2s}.company-btn:hover{background:#f0ede8;border-color:#667eea;box-shadow:0 2px 8px #00000014}.subsection-back{padding:10px 16px;background:#f0ede8;border:1px solid #d0ccc8;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;color:#666;transition:all .2s;margin-bottom:1rem}.subsection-back:hover{color:#667eea;border-color:#667eea}@media(max-width:1024px){.company-header{margin-left:20px;margin-right:20px}.company-tabs{padding-left:20px;padding-right:20px}.company-section{margin-left:20px;margin-right:20px}.back-btn{left:40px}}@media(max-width:768px){.company-header{margin:12px 15px 0;padding:14px}.company-logo,.company-logo-placeholder{width:40px;height:40px;font-size:18px}.company-header-info h1{font-size:17px}.company-tabs{padding-left:15px;padding-right:15px;overflow-x:auto}.tab-btn{padding:10px 16px;font-size:13px}.company-section{margin:15px;padding:20px}.summary-cards{margin:15px;grid-template-columns:repeat(2,1fr)}.info-grid{grid-template-columns:1fr;gap:20px}.team-list,.equipment-subsections{grid-template-columns:1fr}.back-btn{left:20px}}.company-logo-section{margin-top:24px;padding-top:24px;border-top:1px solid #eee}.company-logo-section-title{margin:0 0 16px;font-size:16px;font-weight:700;color:#000}.company-logo-section-body{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.company-logo-section-controls{flex:1;min-width:220px;display:flex;flex-direction:column;gap:10px}.company-logo-helper-text{margin:0;font-size:13px;color:#666}.company-logo-actions{display:flex;gap:10px;flex-wrap:wrap}.company-logo-view-only-text{margin:0;font-size:13px;color:#999;font-style:italic}@media(max-width:768px){.company-logo-section-body{flex-direction:column}}.companies-page{padding:0}.companies-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.companies-header h1{margin:0 0 4px;font-size:22px;color:#2c3e50}.companies-subtitle{margin:0;font-size:13px;color:#7f8c8d}.companies-btn-new{flex-shrink:0;background:var(--primary-color, #E85A2B);color:#fff;border:none;padding:.6rem 1rem;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600;white-space:nowrap}.companies-btn-new:hover:not(:disabled){background:#d64a1a}.companies-btn-new:disabled{opacity:.6;cursor:default}.companies-btn-secondary{background:#f0ede8;color:#333;border:1px solid #d0ccc8;padding:.6rem 1rem;border-radius:6px;cursor:pointer;font-size:14px;font-weight:600}.companies-btn-secondary:hover:not(:disabled){background:#e8e4de}.companies-btn-secondary:disabled{opacity:.6;cursor:default}.companies-btn-back{background:#fff;border:1px solid #ddd;border-radius:4px;padding:.5rem .85rem;cursor:pointer;font-size:13px;font-weight:600;color:#2c3e50}.companies-btn-back:hover:not(:disabled){border-color:#2c3e7f;background:#f9fafb}.companies-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.companies-search-box{position:relative;flex:1;min-width:220px}.companies-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:13px;opacity:.5;pointer-events:none}.companies-search-box input{width:100%;padding:8px 12px 8px 30px;border:1px solid #dcdfe4;border-radius:6px;font-size:14px;box-sizing:border-box}.companies-filter-select{padding:8px 12px;border:1px solid #dcdfe4;border-radius:6px;font-size:14px;background:#fff}.companies-loading,.companies-empty{text-align:center;padding:3rem;color:#7f8c8d;font-size:14px}.companies-empty .companies-btn-new{margin-top:12px}.companies-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.companies-table{width:100%;min-width:900px;border-collapse:separate;border-spacing:0;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #00000014;font-size:14px}.companies-table thead th{text-align:left;padding:12px 14px;background:#f7f8fa;color:#5a6572;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #e5e7eb;white-space:nowrap}.companies-table tbody td{padding:12px 14px;border-bottom:1px solid #eef0f2;color:#2c3e50;vertical-align:middle}.companies-table tbody tr:last-child td{border-bottom:none}.companies-row:hover{background:#f9fafb}.companies-col-name{font-weight:600;min-width:160px}.companies-tag-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.companies-tag-pill{display:inline-block;background:#eaf1ff;color:#2c3e7f;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:600}.companies-status{font-weight:600;font-size:13px}.companies-status.is-active{color:#27ae60}.companies-status.is-inactive{color:#999}.companies-col-actions{white-space:nowrap}.companies-action-link{border:none;background:transparent;color:#3498db;font-size:13px;font-weight:500;cursor:pointer;padding:4px 6px}.companies-action-link:hover:not(:disabled){text-decoration:underline}.companies-action-link:disabled{color:#b5bac1;cursor:not-allowed}.company-form{max-width:820px;margin:0 auto;padding-bottom:90px}.company-form-header{margin-bottom:16px}.company-form-header .companies-btn-back{margin-bottom:8px}.company-form-header h2{margin:0;font-size:22px;color:#2c3e50}.company-form-error{background:#fdecea;color:#c0392b;border:1px solid #f6c6c1;border-radius:6px;padding:10px 14px;margin-bottom:16px;font-size:14px}.company-form-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:22px 24px;margin-bottom:20px}.company-form-section h4{margin:0 0 16px;font-size:16px;color:#2c3e7f;letter-spacing:.02em}.company-form-section-hint{margin:-8px 0 16px;font-size:13px;color:#7f8c8d}.company-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 20px}.company-form-grid-full{grid-column:1 / -1}.form-field{display:flex;flex-direction:column;gap:6px}.form-field label{font-size:12px;font-weight:600;color:#666}.form-field input,.form-field select,.form-field textarea{padding:8px 12px;border:1px solid #d0ccc8;border-radius:4px;font-size:14px;box-sizing:border-box;font-family:inherit;background:#fff}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:#2c3e7f}.form-field textarea{resize:vertical}.company-form-field-error{margin:0;font-size:11px;color:#c0392b;font-weight:600}.company-form-tags{display:flex;flex-wrap:wrap;gap:8px}.company-form-tag-pill{border:1px solid #dcdfe4;background:#fff;color:#5a6572;border-radius:16px;padding:6px 14px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.company-form-tag-pill:hover{border-color:#2c3e7f}.company-form-tag-pill.active{background:#eaf1ff;border-color:#2c3e7f;color:#2c3e7f;font-weight:600}.company-form-action-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e5e7eb;box-shadow:0 -2px 8px #0000000f;padding:14px 24px;display:flex;justify-content:flex-end;gap:12px;z-index:20}@media(max-width:640px){.companies-header{flex-direction:column}.company-form-grid{grid-template-columns:1fr}.company-form-section{padding:18px 16px}.company-form-action-bar{padding:12px 16px;flex-wrap:wrap}.company-form-action-bar button{flex:1}}.accounting-page{display:flex;flex-direction:row;height:100%;background:#f5f6fa}.acct-content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.acct-mobile-bar{display:none}.acct-content{flex:1;overflow-y:auto;padding:1.5rem 2rem}.acct-coming-soon{background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000000f;padding:3rem 2rem;text-align:center;max-width:520px;margin:2rem auto 0}.acct-coming-soon h2{margin:0 0 10px;font-size:20px;color:#2c3e50}.acct-coming-soon-badge{display:inline-block;background:#eaf1ff;color:#2c3e7f;border-radius:10px;padding:3px 12px;font-size:12px;font-weight:600;margin-bottom:14px}.acct-coming-soon p{margin:0;color:#7f8c8d;font-size:14px;line-height:1.5}@media(max-width:640px){.acct-mobile-bar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #eee;flex-shrink:0}.acct-mobile-menu-btn{width:34px;height:34px;flex-shrink:0;border:1px solid #ddd;background:#fff;border-radius:6px;cursor:pointer;font-size:15px;color:#2c3e50}.acct-mobile-menu-btn:hover{border-color:#2c3e7f}.acct-mobile-title{min-width:0;display:flex;flex-direction:column;line-height:1.3}.acct-mobile-title strong{font-size:13px;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-mobile-title span{font-size:11px;color:#7f8c8d}.acct-content{padding:1.25rem}}.mobile-report-shell{min-height:100vh;background:#f5f6fa;padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;max-width:480px;margin:0 auto}.mobile-report-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:#7f8c8d;font-size:15px}.mobile-report-error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70vh;text-align:center;gap:.6rem;padding:1rem}.mobile-report-error-icon{font-size:36px}.mobile-report-error-title{font-size:17px;font-weight:700;color:#2c3e50}.mobile-report-error-text{font-size:14px;color:#7f8c8d;max-width:320px}.mobile-report-header{background:#fff;border-radius:10px;padding:1rem;margin-bottom:1rem;box-shadow:0 1px 3px #00000014}.mobile-report-project{font-size:16px;font-weight:700;color:#2c3e50;margin-bottom:.2rem}.mobile-report-date{font-size:13px;color:#7f8c8d;margin-bottom:.5rem}.mobile-report-status-badge{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:.25rem .6rem;border-radius:999px}.mobile-report-status-badge.draft{background:#f1f2f6;color:#7f8c8d}.mobile-report-status-badge.submitted{background:#e6f7ee;color:#1e8a52}.mobile-report-banner{border-radius:8px;padding:.7rem .9rem;font-size:13px;margin-bottom:1rem;line-height:1.4}.mobile-report-banner.error{background:#fdecea;border:1px solid #f5c6cb;color:#c0392b}.mobile-report-banner.success{background:#e6f7ee;border:1px solid #b7e4c7;color:#1e8a52}.mobile-report-section{background:#fff;border-radius:10px;padding:1rem;margin-bottom:1rem;box-shadow:0 1px 3px #00000014}.mobile-report-section-title{font-size:13px;font-weight:700;color:#2c3e50;text-transform:uppercase;letter-spacing:.4px;margin-bottom:.7rem}.mobile-report-label{display:block;font-size:13px;font-weight:700;color:#2c3e50;margin-bottom:.5rem}.mobile-report-textarea{width:100%;box-sizing:border-box;border:1px solid #ddd;border-radius:8px;padding:.7rem;font-size:15px;font-family:inherit;resize:vertical;margin-top:.5rem}.mobile-report-textarea:focus{outline:none;border-color:#2c3e7f}.mobile-report-checkbox-row{display:flex;align-items:center;gap:.6rem;font-size:14px;color:#2c3e50;font-weight:600}.mobile-report-checkbox-row input{width:20px;height:20px}.mobile-report-empty{font-size:13px;color:#bdc3c7;padding:.5rem 0}.mobile-report-row{display:flex;align-items:center;gap:.5rem;padding:.6rem 0;border-bottom:1px solid #f1f2f6}.mobile-report-row-name{flex:1;min-width:0;font-size:14px;color:#2c3e50;font-weight:600;overflow-wrap:break-word}.mobile-report-hours-input{width:64px;flex-shrink:0;border:1px solid #ddd;border-radius:6px;padding:.5rem;font-size:14px;text-align:center}.mobile-report-hours-input:focus{outline:none;border-color:#2c3e7f}.mobile-report-remove-btn{flex-shrink:0;background:none;border:none;color:#e74c3c;font-size:18px;padding:.3rem .4rem;cursor:pointer}.mobile-report-add-row{display:flex;gap:.5rem;margin-top:.7rem}.mobile-report-select{flex:1;min-width:0;border:1px solid #ddd;border-radius:8px;padding:.6rem;font-size:14px;background:#fff}.mobile-report-add-btn{flex-shrink:0;background:#2c3e7f;color:#fff;border:none;border-radius:8px;padding:.6rem 1rem;font-size:13px;font-weight:700;cursor:pointer}.mobile-report-add-btn:disabled{opacity:.5;cursor:not-allowed}.mobile-report-add-btn.full-width{width:100%;padding:.7rem;margin-top:.3rem}.mobile-report-material-row{display:flex;flex-direction:column;gap:.5rem;padding:.8rem 0;border-bottom:1px solid #f1f2f6}.mobile-report-material-row-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.mobile-report-text-input{width:100%;box-sizing:border-box;border:1px solid #ddd;border-radius:8px;padding:.6rem;font-size:14px}.mobile-report-text-input:focus{outline:none;border-color:#2c3e7f}.mobile-report-remove-material-btn{align-self:flex-start;background:none;border:none;color:#c0392b;font-size:12px;font-weight:600;padding:.2rem 0;cursor:pointer}.mobile-report-actions{position:sticky;bottom:0;display:flex;gap:.6rem;padding:.8rem 0 calc(.8rem + env(safe-area-inset-bottom,0px)) 0;background:linear-gradient(to top,#f5f6fa 70%,#f5f6fa00)}.mobile-report-save-btn,.mobile-report-submit-btn{flex:1;padding:.9rem;border-radius:10px;font-size:15px;font-weight:700;border:none;cursor:pointer}.mobile-report-save-btn{background:#fff;color:#2c3e7f;border:1px solid #2c3e7f}.mobile-report-submit-btn{background:#27ae60;color:#fff}.mobile-report-save-btn:disabled,.mobile-report-submit-btn:disabled{opacity:.6;cursor:not-allowed}.legal-page{min-height:100vh;display:flex;flex-direction:column;background:#f7f7f8;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#23262f}.legal-header{background:#1a1d24;padding:1rem 1.5rem;display:flex;align-items:center}.legal-brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:#fff}.legal-brand-mark{border-radius:6px;display:block}.legal-brand-wordmark{font-size:15px;font-weight:700;letter-spacing:.06em}.legal-content{flex:1;display:flex;justify-content:center;padding:2.5rem 1.25rem}.legal-content-inner{width:100%;max-width:780px}.legal-content-inner h1{font-size:28px;font-weight:700;margin:0 0 .4rem;color:#14161b}.legal-updated{font-size:13px;color:#6b7280;margin:0 0 2rem}.legal-content-inner h2{font-size:19px;font-weight:700;margin:2rem 0 .75rem;color:#14161b}.legal-content-inner h2:first-of-type{margin-top:1.5rem}.legal-content-inner h3{font-size:15px;font-weight:700;margin:1.25rem 0 .5rem;color:#23262f}.legal-content-inner p{font-size:14.5px;line-height:1.7;color:#3a3d46;margin:0 0 1rem}.legal-content-inner ul{margin:0 0 1rem;padding-left:1.25rem}.legal-content-inner li{font-size:14.5px;line-height:1.7;color:#3a3d46;margin-bottom:.35rem}.legal-content-inner a{color:#ef8237;font-weight:600;text-decoration:none}.legal-content-inner a:hover{text-decoration:underline}.legal-content-inner strong{color:#14161b}.legal-callout{background:#fff4ea;border:1px solid #f6d3ab;border-radius:10px;padding:1rem 1.25rem;margin:0 0 1.25rem}.legal-callout p:last-child{margin-bottom:0}.legal-contact-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem 1.75rem;margin:1.5rem 0}.legal-contact-card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem}.legal-contact-card dt{font-weight:700;color:#14161b;font-size:14px}.legal-contact-card dd{margin:0;font-size:14px;color:#3a3d46}.legal-footer{background:#1a1d24;padding:1.5rem}.legal-footer-inner{max-width:780px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center}.legal-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:1.25rem}.legal-footer-links a{color:#ffffffd9;font-size:13px;text-decoration:none}.legal-footer-links a:hover{color:#ef8237;text-decoration:underline}.legal-footer-copyright{font-size:12px;color:#ffffff80}@media(min-width:600px){.legal-header{padding:1.25rem 2.5rem}.legal-content{padding:3.5rem 2.5rem}.legal-content-inner h1{font-size:32px}.legal-footer-inner{flex-direction:row;justify-content:space-between;text-align:left}}
