@import"https://fonts.googleapis.com/css2?family=Noto+Sans+Lao:wght@300;400;500;600;700;800&family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--font-main: "Outfit", "Noto Sans Lao", system-ui, sans-serif;--bg-main: #0a0e1a;--bg-surface: #111827;--bg-surface-elevated: #1f2937;--bg-surface-glass: rgba(17, 24, 39, .75);--primary: #2563eb;--primary-light: #60a5fa;--primary-gradient: linear-gradient(135deg, #1d4ed8 0%, #3b82f6 100%);--secondary: #059669;--secondary-light: #34d399;--secondary-gradient: linear-gradient(135deg, #047857 0%, #10b981 100%);--danger: #e11d48;--danger-light: #f43f5e;--danger-gradient: linear-gradient(135deg, #be123c 0%, #fb7185 100%);--warning: #d97706;--warning-light: #fbbf24;--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-muted: #64748b;--border-light: rgba(255, 255, 255, .08);--border-focus: rgba(37, 99, 235, .5);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 12px rgba(0, 0, 0, .25);--shadow-lg: 0 10px 30px rgba(0, 0, 0, .4);--shadow-glass: 0 8px 32px 0 rgba(0, 0, 0, .37);--transition-fast: .15s ease;--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--border-radius-sm: 8px;--border-radius-md: 12px;--border-radius-lg: 20px;--border-radius-full: 9999px;--sidebar-width: 280px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-primary);font-family:var(--font-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{background:var(--bg-surface-elevated);border-radius:var(--border-radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-container{display:flex;min-height:100vh;position:relative}.main-content{flex:1;padding:24px;display:flex;flex-direction:column;gap:20px;max-width:1600px;margin:0 auto;width:100%}.auth-wrapper{display:flex;justify-content:center;align-items:center;min-height:100vh;background:radial-gradient(circle at 10% 20%,rgba(37,99,235,.08) 0%,transparent 40%),radial-gradient(circle at 90% 80%,rgba(5,150,105,.08) 0%,transparent 40%),var(--bg-main);padding:20px}.auth-card{width:100%;max-width:480px;background:var(--bg-surface-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-light);border-radius:var(--border-radius-lg);padding:36px;box-shadow:var(--shadow-glass);display:flex;flex-direction:column;gap:24px;animation:fadeIn .4s ease}.card-glass{background:var(--bg-surface-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-light);border-radius:var(--border-radius-md);padding:20px;box-shadow:var(--shadow-md);transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.card-glass:hover{border-color:#ffffff26;box-shadow:var(--shadow-lg)}.card-glass.selected{border-color:var(--primary);background:#2563eb0d}.sidebar{width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border-light);padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:20px}@media (max-width: 1024px){.sidebar{display:none}}h1{font-size:1.8rem;font-weight:800;background:linear-gradient(120deg,var(--text-primary),var(--text-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent}h2{font-size:1.4rem;font-weight:700}h3{font-size:1.1rem;font-weight:600}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary-light)}.text-secondary-accent{color:var(--secondary-light)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-main);font-size:.9rem;font-weight:600;padding:10px 18px;border-radius:var(--border-radius-sm);border:1px solid transparent;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn-primary{background:var(--primary-gradient);color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2563eb59;background:linear-gradient(135deg,#2563eb,#60a5fa)}.btn-secondary{background:var(--secondary-gradient);color:#fff}.btn-secondary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #05966959}.btn-danger{background:var(--danger-gradient);color:#fff}.btn-danger:hover{transform:translateY(-1px);box-shadow:0 4px 12px #e11d4859}.btn-outline{background:transparent;border:1px solid var(--border-light);color:var(--text-primary)}.btn-outline:hover{background:var(--border-light);border-color:var(--text-secondary)}.btn-text{background:transparent;color:var(--text-secondary);padding:6px 12px}.btn-text:hover{color:var(--text-primary);background:#ffffff0d}.btn:active{transform:translateY(1px)}.btn-sm{padding:6px 12px;font-size:.8rem;border-radius:6px}.form-group{display:flex;flex-direction:column;gap:8px;width:100%}.form-group label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.input-control{background:var(--bg-surface-elevated);border:1px solid var(--border-light);border-radius:var(--border-radius-sm);color:var(--text-primary);font-family:var(--font-main);font-size:.95rem;padding:10px 14px;transition:all var(--transition-fast);width:100%}.input-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--border-focus)}.input-control::placeholder{color:var(--text-muted)}select.input-control{cursor:pointer}.segment-container{display:flex;background:var(--bg-surface-elevated);padding:4px;border-radius:var(--border-radius-md);width:100%}.segment-item{flex:1;text-align:center;padding:10px 6px;font-size:.85rem;font-weight:700;color:var(--text-secondary);border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-normal);-webkit-user-select:none;user-select:none}.segment-item.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.segment-item.active.investor{background:var(--secondary)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;width:100%}.stat-card{display:flex;flex-direction:column;justify-content:space-between;gap:16px;min-height:120px}.stat-card-header{display:flex;justify-content:space-between;align-items:center}.stat-card-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--border-radius-full)}.stat-card-icon.primary{background:#2563eb26;color:var(--primary-light)}.stat-card-icon.secondary{background:#05966926;color:var(--secondary-light)}.stat-card-icon.danger{background:#e11d4826;color:var(--danger-light)}.stat-value{font-size:1.5rem;font-weight:800;letter-spacing:-.5px}.progress-bar-container{width:100%;background:#ffffff1a;height:6px;border-radius:var(--border-radius-full);overflow:hidden;position:relative}.progress-bar-fill{height:100%;border-radius:var(--border-radius-full);transition:width .5s ease-out}.progress-bar-fill.primary{background:var(--primary)}.progress-bar-fill.secondary{background:var(--secondary)}.projects-section-header{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;max-height:320px;overflow-y:auto;padding:4px}@media (max-width: 768px){.projects-grid{grid-template-columns:1fr}}.project-card{cursor:pointer;display:flex;flex-direction:column;gap:12px}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start}.project-badge{font-size:.75rem;font-weight:700;padding:3px 8px;border-radius:4px;text-transform:uppercase}.project-badge.company{background:#2563eb26;color:var(--primary-light)}.project-badge.investor{background:#05966926;color:var(--secondary-light)}.project-status{font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:6px;display:inline-flex;align-items:center;gap:4px}.project-status.PENDING_APPROVAL{background:#d977061f;border:1px solid rgba(217,119,6,.25);color:var(--warning-light)}.project-status.APPROVED{background:#2563eb1f;border:1px solid rgba(37,99,235,.25);color:var(--primary-light)}.project-status.IN_PROGRESS{background:#a855f71f;border:1px solid rgba(168,85,247,.25);color:#c084fc}.project-status.COMPLETED{background:#0596691f;border:1px solid rgba(5,150,105,.25);color:var(--secondary-light)}.project-status.DELIVERED{background:#0d94881f;border:1px solid rgba(13,148,136,.25);color:#2dd4bf}.project-detail-panel{display:flex;flex-direction:column;border-radius:var(--border-radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-lg);overflow:hidden;border:1px solid var(--border-light)}.project-detail-header{padding:20px 24px;background:#ffffff05;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center}.tab-headers{display:flex;background:#0003;border-bottom:1px solid var(--border-light);overflow-x:auto}.tab-header-item{padding:14px 24px;font-size:.9rem;font-weight:700;color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;transition:all var(--transition-fast);white-space:nowrap}.tab-header-item:hover{color:var(--text-primary);background:#ffffff05}.tab-header-item.active{color:var(--primary-light);border-bottom-color:var(--primary);background:#2563eb0d}.tab-content-container{padding:24px;min-height:320px;max-height:480px;overflow-y:auto}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .25s ease}.modal-box{background:var(--bg-surface-elevated);border:1px solid var(--border-light);border-radius:var(--border-radius-lg);width:100%;max-width:580px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1);max-height:90vh}.modal-header{padding:20px 24px;border-bottom:1px solid var(--border-light);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:24px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 520px){.grid-2{grid-template-columns:1fr}}.list-container{display:flex;flex-direction:column;gap:12px}.list-item-card{background:#ffffff05;border:1px solid var(--border-light);border-radius:var(--border-radius-sm);padding:14px 18px;display:flex;justify-content:space-between;align-items:center;transition:all var(--transition-fast)}.list-item-card:hover{background:#ffffff0a}.list-item-left{display:flex;align-items:center;gap:14px}.list-item-icon-wrapper{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--border-radius-full)}.list-item-right{display:flex;align-items:center;gap:12px}.priority-badge{font-size:.7rem;font-weight:800;padding:2px 6px;border-radius:4px}.priority-badge.HIGH{background:#e11d4826;color:var(--danger-light)}.priority-badge.MEDIUM{background:#2563eb26;color:var(--primary-light)}.priority-badge.LOW{background:#94a3b826;color:var(--text-secondary)}.status-dot{width:8px;height:8px;border-radius:var(--border-radius-full);display:inline-block;margin-right:6px}.status-dot.AVAILABLE{background:var(--secondary-light)}.status-dot.IN_USE{background:var(--primary-light)}.status-dot.DAMAGED{background:var(--danger-light)}.status-dot.OUT_OF_STOCK{background:var(--warning-light)}.ai-analyst-widget{background:linear-gradient(135deg,#1d4ed81a,#10b9810d);border:1px solid rgba(59,130,246,.2);border-radius:var(--border-radius-md);padding:20px;display:flex;gap:16px;align-items:flex-start;position:relative;overflow:hidden}.ai-analyst-widget:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(59,130,246,.05) 0%,transparent 60%);pointer-events:none;animation:rotateGlow 20s linear infinite}.ai-icon-container{background:#2563eb33;border:1px solid rgba(37,99,235,.4);width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--primary-light)}.ai-content{display:flex;flex-direction:column;gap:8px;position:relative;z-index:1}.topbar{display:flex;justify-content:space-between;align-items:center;background:var(--bg-surface-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light);padding:16px 24px;border-radius:0 0 var(--border-radius-md) var(--border-radius-md)}.user-profile-badge{display:flex;align-items:center;gap:8px;background:#ffffff0a;border:1px solid var(--border-light);padding:6px 12px;border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-fast)}.user-profile-badge:hover{background:#ffffff14}.user-avatar{background:var(--primary-gradient);color:#fff;width:28px;height:28px;border-radius:var(--border-radius-full);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes rotateGlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toast-msg{position:fixed;bottom:24px;right:24px;background:var(--bg-surface-elevated);border-left:4px solid var(--primary);border-radius:4px;padding:14px 20px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:12px;z-index:1100;animation:slideUp .3s cubic-bezier(.18,.89,.32,1.28)}.toast-msg.error{border-left-color:var(--danger)}.toast-msg.success{border-left-color:var(--secondary)}.toast-msg.info{border-left-color:var(--warning)}.quick-signins-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.quick-signin-btn{background:#ffffff05;border:1px dashed var(--border-light);border-radius:var(--border-radius-sm);padding:8px 4px;font-size:.75rem;font-weight:700;color:var(--text-secondary);cursor:pointer;text-align:center;transition:all var(--transition-fast)}.quick-signin-btn:hover{background:#ffffff0d;border-color:var(--text-muted);color:var(--text-primary)}.boq-table{width:100%;border-collapse:collapse}.boq-table th{padding:12px 10px;font-weight:700;color:var(--text-secondary);border-bottom:2px solid var(--border-light)}.boq-table td{padding:12px 10px;border-bottom:1px solid var(--border-light);vertical-align:middle}.boq-table tr:hover td{background:#ffffff04}.printable-proposal{display:none}@media print{@page{size:A4;margin:0!important}html,body{background:#fff!important;color:#1e293b!important;font-family:Outfit,Noto Sans Lao,system-ui,sans-serif!important;margin:0!important;padding:0!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.topbar,.toast-msg,.modal-overlay,.ai-analyst-widget,.tab-headers,.tab-content-container,.project-detail-header,.projects-section-header,.projects-grid,.dashboard-grid,.segment-container,.quick-signins-grid,.quick-signin-btn,.btn,.user-profile-badge,.ai-icon-container,.list-container{display:none!important}#root,.app-container,.main-content,.project-detail-panel{display:block!important;background:#fff!important;color:#1e293b!important;border:none!important;box-shadow:none!important;padding:0!important;margin:0!important;width:100%!important;max-width:100%!important}.printable-proposal{display:block!important;width:100%!important;max-width:100%!important;background:#fff!important;color:#1e293b!important;padding:20mm!important;box-sizing:border-box!important}.printable-proposal h1,.printable-proposal h2,.printable-proposal h3,.printable-proposal h4{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;-webkit-text-fill-color:currentColor!important;text-fill-color:currentColor!important}.printable-proposal,.printable-proposal *{font-family:Outfit,Noto Sans Lao,system-ui,sans-serif!important}.printable-proposal .print-header{border-bottom:3px solid #2563eb!important;padding-bottom:20px!important;margin-bottom:25px!important}.printable-proposal .company-title{color:#1e3a8a!important;-webkit-text-fill-color:#1e3a8a!important;text-fill-color:#1e3a8a!important;background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;font-size:1.8rem!important;font-weight:800!important}.printable-proposal .doc-title{color:#2563eb!important;-webkit-text-fill-color:#2563eb!important;text-fill-color:#2563eb!important;font-size:1.5rem!important;font-weight:800!important}.printable-proposal .section-title{font-size:1.05rem!important;font-weight:700!important;color:#1e3a8a!important;background:#f1f5f9!important;padding:8px 12px!important;border-left:4px solid #2563eb!important;border-radius:0 4px 4px 0!important;margin-top:25px!important;margin-bottom:15px!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.printable-proposal .info-table{width:100%!important;border-collapse:collapse!important;margin-bottom:20px!important}.printable-proposal .info-table td{border:none!important;padding:6px 12px!important;font-size:.88rem!important;background:transparent!important}.printable-proposal .info-label{font-weight:700!important;color:#475569!important;width:165px!important}.printable-proposal .print-boq-table{width:100%!important;border-collapse:collapse!important;margin-bottom:25px!important;font-size:.76rem!important}.printable-proposal .print-boq-table th{background:#f1f5f9!important;color:#1e3a8a!important;font-weight:700!important;text-transform:uppercase!important;padding:8px 10px!important;border:1px solid #cbd5e1!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.printable-proposal .print-boq-table td{padding:8px 10px!important;border:1px solid #cbd5e1!important;color:#334155!important;background:transparent!important}.printable-proposal .print-boq-table tbody tr:nth-child(2n) td{background:#f8fafc!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.printable-proposal .summary-box{background:#f8fafc!important;border:1px solid #cbd5e1!important;border-left:5px solid #059669!important;border-radius:4px!important;padding:16px!important;width:350px!important;margin-left:auto!important;margin-top:15px!important;box-shadow:0 1px 3px #0000000d!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.printable-proposal .summary-box table{width:100%!important;border-collapse:collapse!important}.printable-proposal .summary-box td{border:none!important;padding:6px 0!important;font-size:.9rem!important;background:transparent!important}.printable-proposal .summary-box tr.grand-total{border-top:2px solid #cbd5e1!important;font-weight:800!important;font-size:1rem!important;color:#1e3a8a!important}.printable-proposal .print-footer{margin-top:60px!important;border-top:1px dashed #cbd5e1!important;padding-top:30px!important}}.settings-layout{display:flex;flex:1;overflow:hidden;height:calc(100vh - 72px)}.settings-sidebar{width:280px;background:var(--bg-surface);border-right:1px solid var(--border-light);display:flex;flex-direction:column;gap:8px;padding:24px 16px}.settings-sidebar-btn{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:transparent;border:1px solid transparent;color:var(--text-secondary);border-radius:var(--border-radius-sm);font-weight:600;font-size:.9rem;text-align:left;cursor:pointer;transition:all var(--transition-fast)}.settings-sidebar-btn:hover{background:#ffffff0a;color:var(--text-primary)}.settings-sidebar-btn.active{background:var(--primary-gradient);color:#fff;box-shadow:var(--shadow-sm)}.settings-main-panel{flex:1;padding:32px 48px;overflow-y:auto;background:var(--bg-main)}.settings-section-card{background:var(--bg-surface-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-light);border-radius:var(--border-radius-md);padding:24px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow-md);transition:border-color var(--transition-fast);margin-bottom:24px}.settings-section-card:hover{border-color:#ffffff1f}select option,.input-control option{background-color:#111827!important;color:#f3f4f6!important}.app-layout{display:flex;min-height:100vh;background:var(--bg-main);color:var(--text-primary);width:100%}.app-sidebar{width:260px;background:var(--bg-surface);border-right:1px solid var(--border-light);display:flex;flex-direction:column;justify-content:space-between;padding:24px 16px;position:fixed;top:0;bottom:0;left:0;z-index:100}.app-sidebar-logo{display:flex;align-items:center;gap:12px;margin-bottom:32px;padding:0 8px}.app-sidebar-menu{display:flex;flex-direction:column;gap:8px;flex:1}.app-sidebar-item{display:flex;align-items:center;gap:12px;padding:12px 16px;color:var(--text-secondary);background:transparent;border:1px solid transparent;border-radius:var(--border-radius-sm);font-weight:600;font-size:.9rem;text-align:left;cursor:pointer;width:100%;transition:all var(--transition-fast)}.app-sidebar-item:hover{background:#ffffff0a;color:var(--text-primary)}.app-sidebar-item.active{background:var(--primary-gradient);color:#fff;box-shadow:var(--shadow-sm)}.app-sidebar-footer{border-top:1px solid var(--border-light);padding-top:16px;display:flex;flex-direction:column;gap:12px}.main-content-wrapper{margin-left:260px;flex:1;display:flex;flex-direction:column;min-height:100vh}.mobile-bottom-nav{display:none}.btn-delete-outline{background:#e11d4805!important;border:1px solid rgba(225,29,72,.2)!important;color:var(--danger-light)!important;transition:all var(--transition-fast)!important}.btn-delete-outline:hover{background:#e11d481a!important;border-color:#e11d4866!important;box-shadow:0 0 10px #e11d4826}.timeline-status{padding:4px 8px;border-radius:4px;font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;gap:4px}.timeline-status.on-track{background:#05966926;color:var(--secondary-light)}.timeline-status.delayed{background:#e11d4826;color:var(--danger-light)}.timeline-status.ahead{background:#2563eb26;color:var(--primary-light)}@media (max-width: 768px){.app-sidebar{display:none}.main-content-wrapper{margin-left:0;padding-bottom:72px}.mobile-bottom-nav{display:flex;justify-content:space-around;align-items:center;position:fixed;bottom:0;left:0;right:0;height:64px;background:var(--bg-surface);border-top:1px solid var(--border-light);z-index:100;box-shadow:0 -4px 12px #0000004d}.mobile-bottom-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:transparent;border:none;color:var(--text-secondary);font-size:.65rem;font-weight:500;cursor:pointer;flex:1;height:100%}.mobile-bottom-item.active{color:var(--primary-light)}}.app-sidebar,.app-sidebar *,.mobile-bottom-nav,.mobile-bottom-nav *{font-family:var(--font-main)!important}
