*,*:before,*:after{box-sizing:border-box}html{overflow-x:hidden}body{margin:0;font-family:Inter,Noto Sans TC,system-ui,-apple-system,sans-serif;background:#f1f5f9;color:#0f172a;overflow-x:hidden;-webkit-text-size-adjust:100%}#root{min-height:100vh;overflow-x:hidden}button,input,select,textarea{font:inherit;max-width:100%}code{font-family:ui-monospace,monospace;font-size:.9em}.app-main{padding:20px;max-width:100%}.page-container{max-width:1280px;margin:0 auto;padding:0 8px 32px;width:100%}.app-toolbar{background:var(--toolbar-bg, #1e293b)}.app-toolbar__inner{display:flex;flex-wrap:wrap;align-items:center;gap:16px;width:100%;min-width:0}.app-toolbar__inner .header-brand{order:1}.app-toolbar__inner .user-bar{order:3;flex-shrink:0}.app-toolbar__inner .app-toolbar__nav{order:2;flex:1 1 12rem;min-width:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.app-toolbar--login .app-toolbar__inner .user-bar{order:2;margin-left:auto}.app-toolbar--login .app-toolbar__inner .header-brand{order:1}.user-bar__email{display:block}.layout-grid-2,.layout-grid-3,.layout-grid-4,.layout-grid-5,.layout-split,.layout-fields-2{max-width:100%}@media (min-width: 768px){.quote-invoice-preview-span{grid-column:2 / -1}}.quote-layout>*{min-width:0}.quote-invoice-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;max-width:100%}.quote-pdf-source{position:fixed;left:-12000px;top:0;width:1100px;z-index:-1;pointer-events:none;overflow:visible;background:#fff}.quote-layout{max-width:min(1680px,100%);margin:0 auto;display:grid;gap:18px;align-items:start;padding:20px;width:100%;box-sizing:border-box}.quote-view-edit,.quote-view-preview{grid-template-columns:240px minmax(0,1fr)}.quote-editor-panel{min-width:0;width:100%}.quote-list-panel{position:relative;z-index:2}.quote-list-item__body{cursor:pointer}.quote-list-item__delete{position:relative;z-index:3;margin-top:8;display:inline-block;background:#fff;border:1px solid #fecaca;color:#b91c1c;border-radius:4;padding:4px 10px;font-size:11;font-weight:600;cursor:pointer;touch-action:manipulation}.quote-editor-items-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;margin:0 -4px;padding:4px}.quote-editor-items-table{width:100%;min-width:1100px;border-collapse:collapse;font-size:13px}.quote-editor-items-table td{padding:10px 8px;vertical-align:middle}.quote-editor-col-name{min-width:150px;width:16%}.quote-editor-col-spec{min-width:200px;width:23%}.quote-editor-col-images{min-width:220px;width:20%}.quote-item-images{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;justify-content:center!important;align-items:center!important;gap:8px;width:100%;max-width:100%}.quote-item-image-frame{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;box-sizing:border-box}.quote-item-images img,.quote-item-image-frame img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center}.quote-editor-col-images .quote-item-image-frame img{border-radius:6px;border:1px solid #e2e8f0;background:#f8fafc}.quote-item-images-cell{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.quote-item-image-wrap{position:relative;flex-shrink:0}.quote-item-images--wrap{flex-wrap:wrap!important}.quote-editor-col-pack{min-width:120px;width:14%}.quote-editor-col-num{min-width:88px;width:7%}.quote-editor-col-price{min-width:88px;width:8%}.quote-editor-col-amount{min-width:120px;width:11%;font-weight:600;color:#8b1538;white-space:nowrap;text-align:center}.quote-editor-col-actions{min-width:56px;width:4%;text-align:center}@media (min-width: 1200px){.quote-view-edit{grid-template-columns:260px minmax(0,1fr)}.quote-editor-items-table{min-width:100%}}.quote-table-wrap{width:100%;margin-left:auto;margin-right:auto}.print-area .quote-items-table th,.print-area .quote-items-table td,.quote-editor-panel .quote-items-table th,.quote-editor-panel .quote-items-table td{text-align:center!important;vertical-align:middle!important}.print-area .quote-col-line-amount,.quote-editor-panel .quote-col-line-amount,.quote-editor-col-amount{white-space:nowrap!important;word-break:keep-all}.quote-header-logo-slot{min-height:108px}.quote-header-logo-slot img{margin:0 auto}@media (max-width: 767px){.quote-layout input,.quote-layout select,.quote-layout textarea{font-size:16px}.print-area{max-width:100%!important;padding-left:12px!important;padding-right:12px!important}.app-main{padding:12px}.page-container{padding:0 4px 20px}.app-toolbar{padding:10px 12px!important}.app-toolbar__inner .user-bar{order:2;margin-left:auto;flex-shrink:0;min-width:0}.app-toolbar__inner .app-toolbar__nav{order:3;flex:1 1 100%;width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:2px;scrollbar-width:none}.app-toolbar__inner .app-toolbar__nav::-webkit-scrollbar{display:none}.app-toolbar__inner .app-toolbar__nav>button,.app-toolbar__inner .app-toolbar__nav>div{flex-shrink:0}.app-toolbar--login .user-bar__email{display:block!important}.user-bar__email{display:none}.user-bar__name{font-size:11px!important;max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-brand img{height:28px!important;max-width:150px!important}.header-brand__subtitle{font-size:10px!important;line-height:1.3}.layout-grid-2,.layout-grid-3,.layout-grid-5,.layout-split{grid-template-columns:1fr!important}.layout-grid-4{grid-template-columns:repeat(2,1fr)!important}.layout-grid-4 .grid-span-2{grid-column:span 2!important}.layout-fields-2{grid-template-columns:1fr!important}.layout-split .sticky-side{position:static!important;top:auto!important}.quote-layout{grid-template-columns:1fr!important;padding:12px!important}.toolbar-actions{flex-direction:column!important;align-items:stretch!important}.toolbar-actions .search-grow{width:100%!important;margin-left:0!important}.order-card-header{flex-direction:column!important;align-items:stretch!important}.order-card-actions{align-items:stretch!important;width:100%}.order-card-actions select{width:100%!important}.order-progress-step{min-width:56px!important;flex:1 1 56px!important;font-size:9px!important;padding:5px 2px!important}}@media (max-width: 480px){.layout-grid-4{grid-template-columns:1fr!important}.layout-grid-4 .grid-span-2{grid-column:span 1!important}}@media (min-width: 768px) and (max-width: 1023px){.quote-view-edit,.quote-view-preview{grid-template-columns:220px minmax(0,1fr)!important}}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;max-width:100%}.table-scroll table{min-width:520px}.login-shell{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:400px}@media (max-width: 767px){.login-shell{padding:16px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));align-items:center}.login-card{padding:28px 20px!important;border-radius:12px!important}.login-card img{max-width:180px!important}}.app-overlay{padding:16px}.app-modal{width:100%;max-width:640px}@media (max-width: 767px){.app-overlay{padding:8px!important;align-items:flex-end!important}.app-modal{max-height:92dvh!important;border-radius:12px 12px 0 0!important;padding:18px 16px!important}.modal-grid-2{grid-template-columns:1fr!important}}@keyframes home-marquee-scroll{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}@media (min-width: 768px){.home-marquee-bar{margin-left:-8px;margin-right:-8px;width:calc(100% + 16px);max-width:none}}@media (max-width: 767px){.home-marquee-bar{border-radius:8px}.home-marquee-track{-webkit-animation:home-marquee-scroll 45s linear infinite;animation:home-marquee-scroll 45s linear infinite}}@media (prefers-reduced-motion: reduce){.home-marquee-track{animation:none!important;-webkit-animation:none!important;white-space:normal!important;display:block!important;padding:0 12px}}@media (max-width: 767px){.calendar-month-grid{gap:2px!important}.calendar-month-grid button{min-height:46px!important;padding:3px 2px 4px!important}.calendar-country-chips{flex-wrap:nowrap!important;overflow-x:auto!important;max-height:none!important;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}}
