:root{--font-sans:"Prompt", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-app:#0b0f19;--bg-sidebar:#0f172a;--bg-surface:#1e293b;--bg-surface-elevated:#243247;--bg-card:#1e293bb3;--bg-card-hover:#243247e6;--border-subtle:#ffffff14;--border-strong:#ffffff29;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--primary:#4f46e5;--primary-hover:#4338ca;--primary-light:#4f46e526;--primary-glow:#4f46e559;--accent-cyan:#06b6d4;--accent-blue:#3b82f6;--success:#10b981;--success-bg:#10b98126;--warning:#f59e0b;--warning-bg:#f59e0b26;--danger:#ef4444;--danger-bg:#ef444426;--info:#3b82f6;--info-bg:#3b82f626;--shadow-sm:0 1px 2px 0 #00000040;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -1px #0003;--shadow-lg:0 10px 15px -3px #0006, 0 4px 6px -2px #00000040;--shadow-glow:0 0 20px #4f46e540;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-app)}::-webkit-scrollbar-thumb{background:var(--bg-surface-elevated);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-layout{background-color:var(--bg-app);min-height:100vh;display:flex;position:relative}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border-subtle);z-index:40;width:270px;height:100vh;transition:width var(--transition-normal);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0}.sidebar-header{border-bottom:1px solid var(--border-subtle);align-items:center;gap:12px;padding:20px 18px;display:flex}.brand-icon{background:linear-gradient(135deg, var(--primary) 0%, #7c3aed 100%);border-radius:var(--radius-md);color:#fff;width:38px;height:38px;box-shadow:0 4px 12px var(--primary-glow);flex-shrink:0;justify-content:center;align-items:center;display:flex}.brand-title{letter-spacing:-.02em;color:#fff;font-size:1.05rem;font-weight:700;line-height:1.2}.brand-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;font-weight:400;overflow:hidden}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:16px 12px;display:flex;overflow-y:auto}.nav-section-label{text-transform:uppercase;color:var(--text-muted);letter-spacing:.05em;padding:12px 10px 6px;font-size:.7rem;font-weight:600}.nav-item{border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;text-align:left;width:100%;transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:12px;padding:10px 12px;font-size:.9rem;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{color:var(--text-primary);background:#ffffff0d}.nav-item.active{background:var(--primary-light);color:#a5b4fc;border-left:3px solid var(--primary);font-weight:600}.nav-badge{border-radius:var(--radius-full);margin-left:auto;padding:2px 7px;font-size:.72rem;font-weight:600}.sidebar-footer{border-top:1px solid var(--border-subtle);background:#0f172acc;padding:14px 16px}.main-wrapper{flex-direction:column;flex:1;min-width:0;display:flex}.top-header{border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:30;background:#0f172a99;justify-content:space-between;align-items:center;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:16px;display:flex}.page-title{color:#fff;align-items:center;gap:10px;font-size:1.25rem;font-weight:700;display:flex}.header-right{align-items:center;gap:12px;display:flex}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);font-size:.88rem;font-weight:500;font-family:var(--font-sans);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px 16px;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary) 0%, #6366f1 100%);color:#fff;box-shadow:0 2px 8px var(--primary-glow)}.btn-primary:hover{background:linear-gradient(135deg, var(--primary-hover) 0%, #4f46e5 100%);box-shadow:0 4px 12px var(--primary-glow);transform:translateY(-1px)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--bg-surface-elevated);border-color:#ffffff40}.btn-success{background:var(--success);color:#fff}.btn-success:hover{filter:brightness(1.1)}.btn-danger{background:var(--danger-bg);color:#f87171;border-color:#ef44444d}.btn-danger:hover{color:#fff;background:#ef44444d}.btn-icon{border-radius:var(--radius-md);background:var(--bg-surface);width:36px;height:36px;color:var(--text-secondary);border:1px solid var(--border-subtle);justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon:hover{background:var(--bg-surface-elevated);color:var(--text-primary)}.content-body{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:24px 28px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:transform var(--transition-fast), border-color var(--transition-fast);flex-direction:column;padding:20px;display:flex;position:relative;overflow:hidden}.stat-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.stat-card:before{content:"";background:var(--stat-accent,var(--primary));height:3px;position:absolute;top:0;left:0;right:0}.stat-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.stat-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.stat-icon{border-radius:var(--radius-md);background:var(--stat-icon-bg,#4f46e526);width:34px;height:34px;color:var(--stat-icon-color,var(--primary));justify-content:center;align-items:center;display:flex}.stat-value{color:#fff;letter-spacing:-.02em;margin-bottom:4px;font-size:1.7rem;font-weight:700}.stat-footer{color:var(--text-muted);align-items:center;gap:6px;font-size:.75rem;display:flex}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);margin-bottom:24px;padding:22px}.card-header-flex{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.card-title{color:#fff;align-items:center;gap:8px;font-size:1.05rem;font-weight:700;display:flex}.table-container{border-radius:var(--radius-md);border:1px solid var(--border-subtle);width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%;font-size:.88rem}.data-table th{background:var(--bg-surface);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:12px 14px;font-weight:600}.data-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:middle;padding:13px 14px}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:#ffffff08}.badge{border-radius:var(--radius-full);white-space:nowrap;border:1px solid #0000;align-items:center;gap:5px;padding:3px 9px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-dot{border-radius:50%;width:6px;height:6px}.form-group{margin-bottom:16px}.form-label{color:var(--text-secondary);margin-bottom:6px;font-size:.82rem;font-weight:500;display:block}.form-control,.form-select,.form-textarea{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-family:var(--font-sans);transition:all var(--transition-fast);padding:9px 13px;font-size:.88rem}.form-control:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.form-textarea{resize:vertical;min-height:80px}.form-grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-grid-3{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:#000000bf;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:640px;max-height:90vh;box-shadow:var(--shadow-lg);flex-direction:column;animation:.25s cubic-bezier(.16,1,.3,1) slideUp;display:flex;overflow:hidden}.modal-content-large{max-width:960px}.modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-title{color:#fff;font-size:1.15rem;font-weight:700}.modal-body{flex:1;padding:24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-subtle);background:#0f172a66;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.doc-viewer-wrapper{flex-direction:column;align-items:center;gap:20px;display:flex}.doc-viewer-toolbar{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:860px;padding:12px 18px;display:flex}.a4-sheet{color:#0f172a;width:210mm;min-height:297mm;font-family:var(--font-sans);box-sizing:border-box;background:#fff;border-radius:4px;padding:16mm 18mm;position:relative;box-shadow:0 10px 30px #00000073}.a4-header{border-bottom:2px solid #0f172a;justify-content:space-between;margin-bottom:16px;padding-bottom:14px;display:flex}.a4-company-info{max-width:60%}.a4-company-name-th{color:#0f172a;font-size:1.15rem;font-weight:800;line-height:1.25}.a4-company-name-en{color:#334155;margin-bottom:4px;font-size:.85rem;font-weight:600}.a4-company-sub{color:#475569;font-size:.75rem;line-height:1.4}.a4-doc-meta{text-align:right}.a4-doc-title{color:#0f172a;text-transform:uppercase;margin-bottom:2px;font-size:1.25rem;font-weight:800}.a4-doc-title-en{color:#64748b;letter-spacing:.05em;margin-bottom:6px;font-size:.82rem;font-weight:600}.a4-copy-badge{color:#475569;border:1px solid #94a3b8;border-radius:4px;margin-bottom:8px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.a4-meta-row{color:#334155;font-size:.78rem;line-height:1.5}.a4-meta-row strong{color:#0f172a}.a4-client-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;justify-content:space-between;margin-bottom:16px;padding:10px 14px;font-size:.78rem;display:flex}.a4-client-col{color:#334155;width:48%;line-height:1.45}.a4-client-title{color:#0f172a;border-bottom:1px dashed #cbd5e1;margin-bottom:4px;padding-bottom:2px;font-size:.8rem;font-weight:700}.a4-table{border-collapse:collapse;width:100%;margin-bottom:16px;font-size:.78rem}.a4-table th{color:#0f172a;background:#f1f5f9;border-top:1px solid #0f172a;border-bottom:1px solid #0f172a;padding:6px 8px;font-weight:700}.a4-table td{vertical-align:top;color:#1e293b;border-bottom:1px solid #e2e8f0;padding:8px}.a4-project-header-row td{padding:7px 8px}.a4-project-header-row.has-highlight td:nth-child(2){color:#0f172a!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#fef3c7!important;font-weight:700!important}.a4-project-header-row.no-highlight td:nth-child(2){color:#0f172a!important;background-color:#0000!important;font-weight:700!important}.a4-project-header-row:not(.no-highlight) td:nth-child(2){color:#0f172a!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#fef3c7!important;font-weight:700!important}.a4-summary-section{justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.a4-baht-text-banner{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;flex:1;margin-right:16px;padding:8px 12px;font-size:.8rem}.a4-baht-label{color:#64748b;font-size:.72rem;font-weight:600}.a4-baht-value{color:#0f172a;font-size:.85rem;font-weight:700}.a4-calculation-table{border-collapse:collapse;width:270px;font-size:.78rem}.a4-calc-row td{color:#334155;padding:4px 6px}.a4-calc-grand-total{color:#0f172a;border-top:2px solid #0f172a;border-bottom:2px double #0f172a;font-size:.92rem;font-weight:800}.a4-payment-notice{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;align-items:center;margin-bottom:24px;padding:10px 14px;font-size:.75rem;display:flex}.a4-signatures{page-break-inside:avoid;justify-content:space-between;margin-top:24px;display:flex}.a4-sig-box{text-align:center;color:#334155;width:30%;font-size:.75rem}.a4-sig-line{border-bottom:1px dotted #94a3b8;height:44px;margin-bottom:6px;position:relative}.a4-sig-img{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.mobile-bottom-nav{display:none}.mobile-hamburger-btn{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;touch-action:manipulation;width:40px;height:40px;transition:var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:none}.mobile-hamburger-btn:active{background:var(--bg-surface-elevated);transform:scale(.95)}.sidebar-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:85;background:#000000b3;animation:.2s ease-out fadeIn;position:fixed;inset:0}.sidebar-close-btn{border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition-fast);background:#ffffff0f;padding:6px;display:none}.sidebar-close-btn:active{color:#fff;background:#ffffff26}.page-title-short{display:none}.page-title-full{display:inline}.header-db-chip{border-radius:var(--radius-full);cursor:pointer;color:var(--text-primary);transition:var(--transition-fast);font-size:.75rem;font-weight:500;font-family:var(--font-sans);touch-action:manipulation;background:#1e293bb3;border:1px solid #ffffff1f;align-items:center;gap:6px;padding:6px 12px;display:flex}.header-db-chip:hover{background:var(--bg-surface-elevated)}.header-db-text-short{display:none}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.doc-viewer-scroll-container{-webkit-overflow-scrolling:touch;justify-content:center;width:100%;padding:8px 0 24px;display:flex;overflow-x:auto}.mobile-touch-hint{color:#fbbf24;border-radius:var(--radius-sm);text-align:center;background:#f59e0b1a;border:1px dashed #f59e0b4d;width:100%;max-width:860px;margin-bottom:12px;padding:8px 12px;font-size:.76rem;display:none}.toolbar-left-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar-right-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.copy-toggle-group{align-items:center;gap:4px;display:flex}.zoom-controls-group{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#0f172a99;align-items:center;gap:6px;padding:3px 6px;display:flex}.zoom-level-text{color:#cbd5e1;text-align:center;min-width:38px;font-size:.75rem;font-weight:700}.stamp-toggle-label{cursor:pointer;border:1px solid var(--border-subtle);border-radius:var(--radius-md);-webkit-user-select:none;user-select:none;color:#38bdf8;touch-action:manipulation;background:#ffffff0f;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;font-weight:500;display:inline-flex}.dashboard-middle-grid{grid-template-columns:1.6fr 1fr;gap:22px;margin-bottom:24px;display:grid}.doc-list-top-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.subtabs-scroll-container{flex-wrap:wrap;gap:8px;display:flex}.search-filter-grid{grid-template-columns:2fr 1fr;align-items:center;gap:16px;display:grid}@media (width<=1024px){.sidebar{z-index:90;height:100vh;box-shadow:none;width:280px;transition:transform .28s cubic-bezier(.16,1,.3,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0);box-shadow:0 0 35px #000c}.sidebar-close-btn{justify-content:center;align-items:center;display:inline-flex}.mobile-hamburger-btn{display:inline-flex}.top-header{height:60px;padding:0 16px}.content-body{padding:16px}.dashboard-middle-grid{grid-template-columns:1fr;gap:18px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:14px}.modal-content{max-width:90vw;margin:16px}}@media (width<=768px){body{-webkit-tap-highlight-color:transparent;padding-bottom:0}.top-header{padding-top:env(safe-area-inset-top,0px);padding-left:max(12px, env(safe-area-inset-left,12px));padding-right:max(12px, env(safe-area-inset-right,12px));height:calc(56px + env(safe-area-inset-top,0px))}.content-body{padding:12px;padding-bottom:calc(76px + env(safe-area-inset-bottom,16px))}.page-title-full{display:none}.page-title-short{font-size:1rem;font-weight:700;display:inline}.header-company-name{white-space:nowrap;text-overflow:ellipsis;max-width:130px;font-size:.72rem;overflow:hidden}.header-today-date,.header-date-separator{display:none}.header-btn-desktop{display:none!important}.header-db-text-full{display:none}.header-db-text-short{display:inline}.header-db-chip{padding:5px 8px;font-size:.72rem}.header-new-doc-btn .btn-text-desktop{display:none}.header-new-doc-btn{padding:7px 10px}.mobile-bottom-nav{-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border-subtle);z-index:80;height:60px;padding-bottom:env(safe-area-inset-bottom,0px);background:#0f172af5;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 20px #00000073}.mobile-nav-btn{color:var(--text-secondary);font-size:.68rem;font-family:var(--font-sans);cursor:pointer;border-radius:var(--radius-md);transition:var(--transition-fast);touch-action:manipulation;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:46px;padding:4px 6px;font-weight:500;display:flex}.mobile-nav-btn.active{color:#818cf8;font-weight:700}.mobile-nav-btn:active{transform:scale(.92)}.mobile-nav-badge{background:var(--warning);color:#000;border-radius:var(--radius-full);text-align:center;min-width:15px;padding:1px 5px;font-size:.62rem;font-weight:800;line-height:13px;position:absolute;top:-4px;right:-8px}.mobile-fab-container{justify-content:center;align-items:center;display:flex;position:relative;top:-14px}.mobile-fab-btn{background:linear-gradient(135deg, var(--primary) 0%, #6366f1 100%);color:#fff;width:46px;height:46px;box-shadow:0 4px 16px var(--primary-glow);cursor:pointer;touch-action:manipulation;border:2px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;transition:transform .15s;display:flex}.mobile-fab-btn:active{transform:scale(.88)}.doc-viewer-scroll-container{justify-content:flex-start;padding-left:4px;padding-right:4px}.mobile-touch-hint{display:block}.doc-viewer-toolbar{gap:8px;padding:8px 10px}.toolbar-left-group,.toolbar-right-group{justify-content:space-between;width:100%}.btn-text-desktop{display:none}.stats-grid{grid-template-columns:1fr;gap:12px}.form-grid-2,.form-grid-3{gap:12px;grid-template-columns:1fr!important}.search-filter-grid{gap:10px;grid-template-columns:1fr!important}.subtabs-scroll-container{-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:6px;width:100%;padding-bottom:6px;display:flex;overflow-x:auto}.subtabs-scroll-container .btn{flex-shrink:0;padding:6px 10px;font-size:.78rem}.doc-list-top-bar{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.create-doc-btn{width:100%}.glass-card{border-radius:var(--radius-md);margin-bottom:16px;padding:16px 14px}.data-table th,.data-table td{padding:10px;font-size:.82rem}.modal-overlay{align-items:flex-end;padding:8px}.modal-content{border-radius:16px 16px 0 0;max-width:100%;max-height:92vh}.modal-body{padding:16px}.modal-footer{padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}}@media print{html,body,#root,.app-layout,.main-wrapper,.content-body,.doc-viewer-wrapper,.doc-viewer-scroll-container{color:#000!important;width:100%!important;height:auto!important;min-height:auto!important;box-shadow:none!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.sidebar,.sidebar-backdrop,.mobile-bottom-nav,.mobile-hamburger-btn,.mobile-touch-hint,.top-header,.doc-viewer-toolbar,.quick-bar,.nav-item,.btn,.modal-overlay,.no-print{display:none!important}.a4-sheet{width:100%!important;min-height:auto!important;box-shadow:none!important;background:#fff!important;border:none!important;border-radius:0!important;margin:0!important;padding:0!important;transform:none!important}.a4-sheet,.a4-sheet *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}@page{size:A4 portrait;margin:10mm 15mm}}
