body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.navbar{background-color:#d7dee6;box-shadow:10px 0 10px #0000001a;box-sizing:border-box;display:flex;flex-direction:column;height:100vh;justify-content:space-between;left:0;padding:20px;position:fixed;top:0;transition:width .2s ease}.navbar-top{align-items:center;display:flex;gap:8px}.navbar .nav-menu{display:flex;flex-direction:column;gap:20px;list-style-type:none;margin:0;padding:20px 10px}.navbar .nav-menu li{display:block}.navbar .nav-menu li a{align-items:center;color:#567da7;display:flex;font-size:25px;font-weight:700;gap:8px;text-align:left;text-decoration:none;transition:color .3s ease}.navbar .nav-menu li a:hover{color:#1abc9c}.nav-icon,.nav-label{display:inline-block}.navbar .logout-section{margin-top:auto;padding:0 10px 30px;text-align:left}.logout-btn{align-items:center;background:none;border:none;color:#567da7;cursor:pointer;display:inline-flex;font-size:25px;font-weight:700;gap:8px;padding:0;text-decoration:none;transition:color .3s ease}.logout-btn:hover{color:#e74c3c}.navbar .logo-container{align-items:center;display:flex;justify-content:center;margin-bottom:20px}.navbar .logo{max-height:50px;max-width:100%;object-fit:contain}@media (max-width:768px){.navbar{background-color:#d7dee6;box-shadow:10px 0 10px #0000001a;box-sizing:border-box;display:flex;flex-direction:column;height:100vh;justify-content:space-between;left:0;overflow:hidden;padding:0;position:fixed;top:0;transition:width .2s ease;width:0;z-index:2000}.navbar.open{padding:10px 0;width:50px}.navbar.hidden{border:none;box-shadow:none;padding:0;width:0}.navbar.hidden .logo-container,.navbar.hidden .logout-section,.navbar.hidden .nav-menu,.navbar.open .nav-label{display:none}.navbar.open .nav-menu{align-items:center;gap:12px;margin-top:40px;padding:10px 0}.navbar.open .nav-menu li a{font-size:18px;justify-content:center}.navbar.open .logo-container{justify-content:center;margin-top:80px}.navbar.open .logo{margin:10px;max-width:150px;transform:rotate(90deg)}.navbar.open .logout-section{display:flex;justify-content:center;padding-bottom:16px}.layout .content{margin-left:0;padding:2px}}.layout{background:#e8edf3;display:flex;height:100vh}.layout .content{box-sizing:border-box;flex:1 1;margin-left:200px;overflow:auto;padding:20px}.navbar{width:200px}.global-hamburger{background:none;border:none;cursor:pointer;display:none;left:8px;padding:4px;position:fixed;top:8px;z-index:9000}.global-hamburger span{background-color:#333;display:block;height:2px;margin:3px 0;width:20px}@media (max-width:768px){.navbar{height:100vh;left:0;overflow:visible;position:fixed;top:0;width:0;z-index:1000}.navbar.open{width:50px}.layout .content{margin-left:0;padding:2px}.navbar.open+.content{margin-left:50px;padding:2px}.global-hamburger{align-items:center;display:inline-flex;flex-direction:column;justify-content:center;position:fixed}}.loading-overlay{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#0f172a59;inset:0;justify-content:center;position:fixed;z-index:5000}.loading-box,.loading-overlay{align-items:center;display:flex}.loading-box{background:#fff;border-radius:14px;box-shadow:0 18px 45px #0f172a59,0 0 0 1px #94a3b840;gap:12px;max-width:320px;min-width:240px;padding:18px 22px}.loading-spinner{animation:loading-spin .7s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#2563eb;height:28px;width:28px}.loading-text{color:#111827;font-size:14px;font-weight:500;white-space:nowrap}@keyframes loading-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.login-page{align-items:center;background-color:#20232a;display:flex;height:100vh;justify-content:center}.login-page .logo{padding-bottom:15px;transform:scale(1.2);transform-origin:center}.login-page .container{background:#f7fafd;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:400px;padding:30px;text-align:center;width:100%}.login-page .form-group{margin-bottom:15px;text-align:left}.login-page .form-group label{color:#555;display:block;font-size:14px;margin-bottom:5px}.login-page .form-group input{border:1px solid #20232a;border-radius:4px;box-sizing:border-box;font-size:14px;padding:10px;width:100%}.login-page .form-group input:focus{border-color:#007bff;box-shadow:0 0 5px #007bff80;outline:none}.login-page .button{background-color:#2c6db4;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:10px;text-align:center;transition:background-color .3s;width:100%}.login-page .button:hover{background-color:#0056b3}.login-page .button:disabled{cursor:not-allowed;filter:grayscale(.2);opacity:.5;pointer-events:none}.login-page .error-message{color:red;font-size:14px;margin-top:10px;text-align:center}.login-page .additional-links{font-size:14px;margin-top:15px;text-align:center}.login-page .additional-links a{color:#007bff;text-decoration:none}.login-page .additional-links a:hover{text-decoration:underline}.dashboard-page{background:#0000;box-sizing:border-box;display:flex;height:100%;margin:0 auto;overflow:hidden}.scroll-y-custom{-webkit-overflow-scrolling:touch;background:#0000;flex:1 1 auto;margin:8px 0 0;min-height:0;overflow-x:hidden;overflow-y:auto!important;overscroll-behavior:contain;padding-bottom:50px;scrollbar-color:#80808073 #0000;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.scroll-y-custom::-webkit-scrollbar{width:12px}.scroll-y-custom::-webkit-scrollbar-thumb{background:#80808073;border-radius:8px}.scroll-y-custom::-webkit-scrollbar-track{background:#0000}.dash-wrap{display:flex;flex-direction:column;gap:14px;margin:0 auto;max-width:1440px;overflow:hidden;padding:16px 20px 28px;width:100%}.dash-header{align-items:center;display:flex;gap:16px;justify-content:center}.dash-title{color:#2d3748;font-size:2rem;font-weight:700;margin:25px}.dash-btn{background:#222;border:none;border-radius:12px;box-shadow:0 2px 10px #0000001f;color:#fff;cursor:pointer;padding:8px 14px}.dash-btn:disabled{cursor:default;opacity:.6}.dash-main{grid-gap:14px;display:grid;gap:14px;gap:30px;grid-auto-rows:minmax(260px,auto);grid-template-columns:1fr 1fr;height:calc(100vh - 140px);overflow:auto}.card{background:#fff;border-radius:16px;box-shadow:0 4px 18px #00000014;display:flex;flex-direction:column;height:380px}.card.bottom{height:calc(100vh - 630px)}.card.span-2{grid-column:span 2}.card-head{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:14px 16px 8px}.card-title{font-size:16px;font-weight:700;margin:0}.card-body{overflow:auto;padding:14px 16px 18px}.center{display:flex;justify-content:center}.center,.hstack-2{align-items:center}.hstack-2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;justify-items:center}.inline-controls{align-items:center;display:flex;gap:8px}.inline-controls .small,.small-input{font-size:12px}.small-input{border:1px solid #606060;border-radius:8px;padding:6px 8px;width:72px}.table-wrap{overflow:auto;width:100%}.table{border-collapse:collapse;width:100%}.table td,.table th{border-bottom:1px solid #f0f0f0;padding:8px 10px;vertical-align:middle}.table thead th{background:#fafafa;position:-webkit-sticky;position:sticky;text-align:left;top:0;z-index:1}.ellipsis{max-width:220px;overflow:hidden;text-overflow:ellipsis}.ellipsis,.nowrap{white-space:nowrap}.muted{color:#888}.badge{background:#eee;border-radius:10px;display:inline-block;font-size:11px;font-weight:700;padding:2px 8px}.badge.ok{background:#e6f6ea;color:#167c2f}.badge.warn{background:#fff3e0;color:#a15b00}.good{color:#167c2f}.danger,.good{font-weight:700}.danger{color:#b00020}.mini-svg{height:240px;width:100%}.bar-in{fill:#2f80ed}.bar-out{fill:#eb5757}.tick{fill:#333;font-size:11px}.legend{fill:#444;font-size:12px}@media (max-width:768px){.dash-wrap{gap:10px;padding:8px 8px 16px}.dash-title{font-size:1.5rem;margin:12px 0 8px}.dash-main{grid-template-columns:1fr;height:auto}.card{min-height:220px}.card,.card.bottom{height:auto}.card-head{padding:10px 12px 6px}.card-body{padding:10px 12px 12px}.card.span-2{grid-column:span 1}.table td,.table th{font-size:7px}.card-title{font-size:12px;font-weight:700}.inline-controls .small{font-size:8px}.small-input{width:30px}.hstack-2{gap:8px;grid-template-columns:1fr;justify-items:center}.hstack-2 canvas,.hstack-2 svg{height:auto;max-width:260px}.mini-svg{height:180px}.table{font-size:12px}.table td,.table th{padding:6px}}.cam-fullscreen{align-items:center;background:#000;display:flex;height:100vh;inset:0;justify-content:center;overflow:hidden;position:fixed;width:100vw;z-index:9999}.cam-video{object-fit:cover}.cam-canvas,.cam-video{height:100vh;width:100vw}.cam-canvas{left:0;pointer-events:none;position:absolute;top:0}.cam-top-ui{align-items:center;display:flex;left:16px;position:absolute;right:16px;top:16px}.cam-close-btn{background:#0009;border:none;border-radius:4px;color:#fff;font-size:14px;margin-left:auto;padding:8px 12px}.cam-msg{bottom:55px;color:#fff;font-size:12px;left:16px;position:absolute;right:16px;text-align:center}.cam-error{bottom:80px;color:#f66}.cam-msg.cam-select-wrap{bottom:10px;z-index:9000}.cam-select{font-size:14px;min-width:160px;padding:6px 10px}.inventory-page{background:#0000;box-sizing:border-box;display:flex;flex-direction:column;height:100%;margin:0 auto;overflow:hidden;position:relative}.inventory-page .inventory-header{flex:0 0 auto;padding:16px 0 10px}.inventory-page .inventory-header h1{color:#2d3748;font-size:2rem;font-weight:700;margin-bottom:25px;text-align:center}.inventory-page .search-container,.inventory-page .search-row{align-items:center;display:flex;gap:16px;justify-content:center;margin:0 auto 20px;width:90%}.inventory-page .search-input{border:1px solid #ccc;border-radius:12px;box-shadow:0 2px 6px #0000000d;font-size:1rem;outline:none;padding:10px 15px;width:60%}.inventory-page .search-input:focus{border-color:#5ea8ff;box-shadow:0 0 0 3px #2563eb40}.inventory-page .delete-btn{background:#e63946;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.8rem;padding:4px 8px;transition:filter .2s,transform .1s}.inventory-page.delete-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.inventory-page .delete-btn{margin-left:6px}.inventory-page .blue-btn{background:#5ea8ff;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:700;padding:10px 16px}.inventory-page .blue-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.inventory-page .trans-btn{background:#5ea8ff;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:700;padding:10px 16px}.inventory-page .trans-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.inventory-page .icon-text-btn{align-items:center;display:inline-flex;font-size:14px;gap:6px;justify-content:center;padding:8px 14px}.inventory-page .btn-icon{font-size:16px}.inventory-page .btn-text{white-space:nowrap}.inventory-page .favorite-star{color:#000;cursor:pointer;display:inline-block;font-size:20px;line-height:20px}.inventory-page .favorite-star.on{color:gold}.inventory-page .sort-btn{background:#0000;border:none;cursor:pointer;font-size:14px;margin-left:5px;vertical-align:middle}.inventory-page .inventory-table-wrap{-webkit-overflow-scrolling:touch;background:#0000;flex:1 1 auto;margin:8px 0 0;min-height:0;overflow-x:hidden;overflow-y:auto!important;overscroll-behavior:contain;padding-bottom:10px;scrollbar-color:#80808073 #0000;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.inventory-table-wrap::-webkit-scrollbar{width:12px}.inventory-table-wrap::-webkit-scrollbar-thumb{background:#80808073;border-radius:8px}.inventory-table-wrap::-webkit-scrollbar-track{background:#0000}.inventory-table{background:#fff;border-collapse:initial;border-radius:12px;border-spacing:0;box-shadow:0 4px 20px #00000014;margin:0 auto;overflow:hidden;width:90%}.inventory-table thead{background:#374151;color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:1}.inventory-table td,.inventory-table th{border-bottom:1px solid #ccc;font-size:16px;padding:15px 20px;text-align:center}.inventory-table th{font-weight:700;position:relative}.inventory-page mark{background:#7db7ff;border-radius:2px;color:#111;padding:0 1px}.inventory-table th button{background:none;border:none;color:#fff;cursor:pointer;font-size:.8rem;margin-left:5px;transition:color .2s}.inventory-table th button:hover{color:#e0cecb}.inventory-table tbody tr{border-bottom:1px solid #ced9ee;transition:background .2s ease-in-out}.inventory-table tbody tr:hover{background:#e8f4ff}.inventory-table td.cell{max-width:120px;overflow-wrap:break-word;white-space:normal;word-break:break-all}.inventory-page .low-stock{color:#e63946;font-weight:700}.inventory-page .high-stock{color:#2a9d8f;font-weight:700}.inventory-page .stock-display,.inventory-page .stock-edit{align-items:center;display:flex;gap:10px;justify-content:center}.inventory-table td:first-child{color:gold;font-size:20px}.desc-popup{background:#e8f2ff;border:1px solid #111;border-radius:10px;box-shadow:0 8px 24px #00000026;left:0;left:var(--dx,0);max-width:92vw;padding:10px;position:fixed;top:0;top:var(--dy,0);width:320px;z-index:100}.inventory-page .modal-backdrop{align-items:center;background:#11182773;display:flex;inset:0;justify-content:center;position:fixed;z-index:200}.inventory-page .modal-card{background:#fff;border:1px solid #374151;border-radius:12px;box-shadow:0 20px 50px #0003;max-width:94vw;padding:12px 14px;width:520px}.inventory-page .modal-header{align-items:center;display:flex;margin-bottom:8px}.inventory-page .modal-header strong{flex:1 1;font-size:16px;font-weight:700}.inventory-page .modal-close{background:#0000;border:none;cursor:pointer;font-size:20px;line-height:1}.inventory-page .modal-body{grid-gap:10px;display:grid;gap:10px;margin-top:6px;max-height:60vh;overflow-y:auto}.inventory-page .modal-row{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:110px 1fr}.inventory-page .modal-label{color:#6b7280;font-size:13px}.inventory-page .modal-value{font-size:14px;width:80%}.inventory-page .modal-input{border:1px solid #d1d5db;border-radius:8px;font-size:14px;height:32px;outline:none;padding:0 10px;width:100%}.inventory-page .modal-input:focus{border-color:#5ea8ff;box-shadow:0 1px 3px #2563eb26}.inventory-page .modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.inventory-page .modal-table th,td{border-bottom:1px solid #ccc;font-size:14px}.inventory-page .modal-table th{background:#374151;color:#fff}.inventory-page .autocomplete .field__control{background:#fff;border:1px solid #cfd8e3;border-radius:8px;box-sizing:border-box;font-size:14px;height:32px;outline:none;padding:4px 8px;width:100%}@media (max-width:768px){.inventory-page .inventory-header{padding:10px}.inventory-page .inventory-header h1{font-size:1.4rem;margin-bottom:14px}.inventory-page .search-container,.inventory-page .search-row{flex-direction:row;gap:8px;margin:0 auto 12px;width:100%}.inventory-page .search-input{font-size:10px;padding:8px 12px;width:80%}.inventory-page .delete-btn{font-size:10px;margin-left:0;padding:1px}.inventory-page .trans-btn{background:#e5edf7;font-size:10px;padding:8px 12px}.inventory-page .icon-text-btn .btn-text{display:none}.inventory-page .icon-text-btn{padding:0}.inventory-page .btn-icon{font-size:20px}.inventory-page .inventory-table-wrap{margin:4px auto 0;scrollbar-gutter:stable both-edges;width:100%}.inventory-table{border-collapse:collapse;margin:0 auto;table-layout:fixed;width:calc(100% - 12px)}.inventory-page .favorite-star{font-size:10px}.inventory-page .sort-btn{font-size:8px;margin-left:0}.inventory-table td:first-child{font-size:10px;padding:0}.inventory-table td,.inventory-table th{border-right:1px solid #ccc;font-size:10px;line-height:1.1;padding:2px 6px}.inventory-table td div,.inventory-table td span{line-height:1.1;margin:0;padding:0}.inventory-page .modal-card{font-size:12px;padding:10px 12px;width:90%}.inventory-page .modal-body{max-height:65vh}.inventory-page .modal-row{grid-template-columns:90px 1fr}.inventory-page .autocomplete .field__control,.inventory-page .modal-label{font-size:12px}.inventory-page .modal-value{font-size:12px;width:90%}.inventory-page .modal-table th,td{border-right:1px solid #ccc;font-size:10px}}.autocomplete{position:relative}.autocomplete>input.field__control{box-sizing:border-box;width:100%}.autocomplete-menu{background:#fff;border:1px solid #111827;border-radius:12px;box-shadow:0 18px 45px #0003;box-sizing:border-box;left:0;max-height:260px;overflow:auto;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:9000}.autocomplete-item{background:#0000;border:0;cursor:pointer;padding:10px 12px;text-align:left;width:100%}.autocomplete-item:hover{background:#f3f4f6}.autocomplete .field__control:disabled{background:#f3f4f6;border-color:#d1d5db;color:#6b7280;cursor:not-allowed}.stockin-page{background:#0000;box-sizing:border-box;display:flex;flex-direction:column;height:100%;margin:0 auto;overflow:hidden;position:relative}.stockin-page .stockin-header{flex:0 0 auto;padding:16px 0 10px}.stockin-page .stockin-header h1{color:#2d3748;font-size:2rem;font-weight:700;margin-bottom:25px;text-align:center}.stockin-page .search-row{align-items:center;display:flex;gap:16px;justify-content:center;margin:0 auto 20px;width:90%}.stockin-page .stockin-search{border:1px solid #ccc;border-radius:12px;box-shadow:0 2px 6px #0000000d;font-size:1rem;height:auto;outline:none;padding:10px 15px;width:60%}.stockin-page .stockin-search:focus{border-color:#5ea8ff;box-shadow:0 0 0 3px #2563eb40}.stockin-page .blue-btn{background:#5ea8ff;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:700;height:auto;padding:10px 16px}.stockin-page .blue-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.stockin-page .trans-btn{background:#5ea8ff;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:700;padding:10px 16px}.stockin-page .trans-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.stockin-page .icon-text-btn{align-items:center;display:inline-flex;font-size:14px;gap:6px;justify-content:center;padding:8px 14px}.stockin-page .btn-icon{font-size:16px}.stockin-page .btn-text{white-space:nowrap}.stockin-page .table-wrap{-webkit-overflow-scrolling:touch;background:#0000;flex:1 1 auto;margin:8px 0 0;min-height:0;overflow-x:hidden;overflow-y:scroll;overscroll-behavior:contain;padding-bottom:10px;scrollbar-color:#80808073 #0000;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.stockin-page .table-wrap::-webkit-scrollbar{width:12px}.stockin-page .table-wrap::-webkit-scrollbar-thumb{background:#80808073;border-radius:8px}.stockin-page .table-wrap::-webkit-scrollbar-track{background:#0000}.stockin-page .inventory-table{background:#fff;border-collapse:initial;border-radius:12px;border-spacing:0;box-shadow:0 4px 12px #0000000f;margin:0 auto;overflow:hidden;width:90%}.stockin-page .inventory-table thead th{background:#374151;color:#fff;font-size:16px;font-weight:700;position:-webkit-sticky;position:sticky;top:0;z-index:1}.stockin-page .inventory-table td,.stockin-page .inventory-table th{border-bottom:1px solid #ccc;color:#2d3748;font-size:16px;overflow:visible;overflow-wrap:break-word;padding:15px 20px;text-align:center;text-overflow:clip;white-space:normal;word-break:break-all}.stockin-page .inventory-table tr.row-selected{background:#eef6ff}.stockin-page mark{background:#7db7ff;border-radius:2px;color:#111;padding:0 1px}.stockin-page .form-dock{left:50%;max-width:980px;opacity:0;position:fixed;top:50%;transform:translate(-50%,-50%) scale(.98);transition:transform .18s ease,opacity .18s ease,visibility 0s linear .18s;visibility:hidden;width:100%;z-index:100}.stockin-page .form-dock.open{opacity:1;transform:translate(-50%,-50%) scale(1);transition:transform .18s ease,opacity .18s ease;visibility:visible}.stockin-page .form-inner{background:#f9fcff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 12px 30px #0000001f;padding:14px 16px}.stockin-page .sel-title-row{align-items:center;display:flex;gap:8px;margin-bottom:10px;width:100%}.stockin-page .sel-title-row .sel-title{flex:1 1;min-width:0}.stockin-page .sel-title{font-weight:700;margin-bottom:10px}.stockin-page .form-grid{grid-gap:10px 12px;align-items:center;display:grid;gap:10px 12px;grid-template-columns:120px 1fr}.stockin-page .form-grid input,.stockin-page .form-grid select{background:#fff;border:1px solid #cbd5e0;border-radius:10px;font-size:15px;height:42px;outline:none;padding:0 12px}.stockin-page .form-grid input:focus,.stockin-page .form-grid select:focus{border-color:#4e73df;box-shadow:0 0 0 3px #2563eb33}.stockin-page .qty-label{color:#111827;font-weight:900}.stockin-page .qty-input{border:2px solid #4e73df;box-shadow:0 0 0 4px #2563eb26;font-size:22px;font-weight:800;height:54px}.stockin-page .form-actions{display:flex;gap:10px;justify-content:flex-end;margin-bottom:15px;margin-top:15px}.stockin-page .toast{background:#111827;border-radius:10px;bottom:240px;box-shadow:0 8px 24px #0003;color:#fff;font-size:14px;padding:10px 14px;position:absolute;right:5%}.stockin-page .inline-add-row{align-items:center;-webkit-backdrop-filter:saturate(120%) blur(2px);backdrop-filter:saturate(120%) blur(2px);background:#0f172a73;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:200}.inline-add-row .add-card{background:#fff;border:1px solid #e8edf2;border-radius:14px;box-shadow:0 18px 48px #0f172a40;box-sizing:border-box;margin:0;max-height:min(80vh,760px);max-width:980px;overflow:auto;padding:16px 16px 0;position:relative;width:100%}.inline-add-row .add-card__head{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;gap:12px;margin-bottom:14px;padding-bottom:12px}.inline-add-row .add-card__title{color:#2b3440;flex:1 1;font-size:1.06rem;font-weight:800;min-width:0}.inline-add-row .add-grid{grid-gap:14px 18px;align-items:start;display:grid;gap:14px 18px;grid-template-columns:1fr 1fr}.inline-add-row .field--full{grid-column:1/-1;margin-top:8px}.inline-add-row .field{grid-gap:8px;display:grid;gap:8px}.inline-add-row .field__label{color:#6b7280;font-size:12px;font-weight:800;padding-left:2px}.inline-add-row .field__control{background:#fff;border:1px solid #cfd8e3;border-radius:10px;box-sizing:border-box;font-size:15px;height:44px;line-height:44px;outline:none;padding:0 12px}.inline-add-row .field__stack{display:flex;flex-direction:column;gap:8px}.inline-add-row .field__control:focus{border-color:#4e73df;box-shadow:0 0 0 4px #4e73df1f}.inline-add-row .field__control--area{line-height:1.45;min-height:110px;padding:10px 12px;resize:vertical}.inline-add-row .lookup-badge{align-items:center;background:#f9fafb;border:1px solid #d1d5db;border-radius:10px;color:#374151;display:flex;font-weight:600;height:44px;justify-content:center;padding:0 12px;white-space:nowrap;width:80px}.inline-add-row .highlight{border-color:#4e73df;border-width:2px;font-weight:800}.inline-add-row .add-card select.field__control{-webkit-appearance:none;appearance:none;background-position:calc(100% - 16px) 50%;background-repeat:no-repeat;padding-right:36px}.inline-add-row .table-wrap,.inventory-table-wrap{overflow:visible!important}.stockin-page .modal-backdrop{align-items:center;-webkit-backdrop-filter:saturate(120%) blur(2px);backdrop-filter:saturate(120%) blur(2px);background:#0f172a6b;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.stockin-page .modal-card{background:#fff;border:1px solid #e6ebf2;border-radius:14px;box-shadow:0 18px 48px #0f172a40;max-width:560px;overflow:hidden;position:relative;width:100%}.stockin-page .modal-header{align-items:center;border-bottom:1px solid #eef2f7;color:#111827;display:flex;font-weight:800;gap:10px;padding:14px 16px}.stockin-page .modal-close{background:#0000;border:none;cursor:pointer;font-size:20px;line-height:1;margin-left:auto}.stockin-page .modal-body{max-height:min(70vh,560px);overflow:auto;padding:14px 16px 6px}.stockin-page .modal-footer{border-top:1px solid #eef2f7;display:flex;gap:10px;justify-content:flex-end;padding:12px 16px 14px}.stockin-page .modal-row{grid-gap:10px 14px;align-items:center;display:grid;gap:10px 14px;grid-template-columns:120px 1fr;margin-bottom:12px}.stockin-page .modal-label{color:#6b7280;font-size:12px;font-weight:800}.stockin-page .modal-value{min-width:0}.stockin-page .modal-input{background:#fff;border:1px solid #cfd8e3;border-radius:10px;box-sizing:border-box;font-size:15px;height:42px;outline:none;padding:0 12px;width:100%}.stockin-page .modal-input:focus{border-color:#4e73df;box-shadow:0 0 0 4px #4e73df1f}.stockin-page textarea.modal-input{line-height:1.45;min-height:90px;padding:10px 12px;resize:vertical}.stockin-page .inventory-table.excel-table{margin:0 auto;table-layout:fixed;width:90%}.stockin-page .inventory-table.excel-table tbody td,.stockin-page .inventory-table.excel-table thead th{font-size:13px;overflow:hidden;overflow-wrap:normal;padding:10px 8px;text-align:center;text-overflow:ellipsis;white-space:nowrap;word-break:normal}.stockin-page .inventory-table.excel-table .excel-input{background:#fff;border:1px solid #cfd8e3;border-radius:8px;box-sizing:border-box;font-size:13px;height:30px;outline:none;padding:4px 8px;width:100%}.stockin-page .inventory-table.excel-table .excel-input:focus{border-color:#4e73df;box-shadow:0 0 0 3px #4e73df1f}.stockin-page .inventory-table.excel-table input[type=number].excel-input{text-align:right}.stockin-page .inventory-table.excel-table td.cell-error{background:#ffe6e6}.stockin-page .inventory-table.excel-table td.cell-error .excel-input{background:#fff1f2;border-color:#ef4444}.stockin-page .inventory-table.excel-table tr.excel-existing-row td{background:#f5f9ff}.stockin-page .inventory-table.excel-table tr.excel-existing-row .excel-input:disabled{background:#f3f4f6;border-color:#d1d5db;color:#6b7280;cursor:not-allowed}.stockin-page .inventory-table.excel-table tr.excel-row-success td{background:#e6ffe6}.stockin-page .inventory-table.excel-table tr.excel-row-warn td{background:#fff9e6}.stockin-page .inventory-table.excel-table tr.excel-row-fail td{background:#ffe6e6}.stockin-page .inventory-table.excel-table{min-width:1200px}.stockin-page .table-wrap{overflow-x:auto}.excel-table .autocomplete .field__control{background:#fff;border:1px solid #cfd8e3;border-radius:8px;box-sizing:border-box;font-size:13px;height:30px;outline:none;padding:4px 8px;width:100%}@media (max-width:768px){.stockin-page{height:auto;min-height:100vh;overflow:visible;padding:6px 0}.stockin-page .stockin-header{padding:10px}.stockin-page .stockin-header h1{font-size:1.4rem;margin-bottom:14px}.stockin-page .search-row{flex-direction:row;gap:8px;margin:0 auto 12px;padding:0;width:100%}.stockin-page .stockin-search{font-size:10px;padding:8px 12px;width:80%}.stockin-page .trans-btn{background:#e5edf7;font-size:10px;padding:8px 12px}.stockin-page .icon-text-btn .btn-text{display:none}.stockin-page .icon-text-btn{padding:0}.stockin-page .btn-icon{font-size:20px}.stockin-page .table-wrap{margin:4px 0 0;padding-bottom:80px}.stockin-page .inventory-table{box-shadow:0 2px 8px #0000000f;margin:0 auto;width:calc(100% - 8px)}.stockin-page .inventory-table thead th{font-size:11px}.stockin-page .inventory-table td,.stockin-page .inventory-table th{font-size:11px;line-height:1.2;padding:4px 6px}.stockin-page .form-dock{max-width:520px;width:96%}.stockin-page .form-inner{padding:10px}.stockin-page .form-grid{gap:8px 6px;grid-template-columns:1fr}.stockin-page .form-grid input,.stockin-page .form-grid select{font-size:13px;height:38px}.stockin-page .qty-input{font-size:18px;height:46px}.stockin-page .form-actions{margin-bottom:8px;margin-top:10px}.stockin-page .inline-add-row{padding:10px 6px}.inline-add-row .add-card{margin:12px auto 0;padding:12px 12px 0;width:100%}.inline-add-row .add-grid{gap:8px 0;grid-template-columns:1fr}.inline-add-row .field__label{font-size:11px}.inline-add-row .field__control{font-size:13px;height:38px;line-height:38px}.inline-add-row .field__control--area{font-size:13px;line-height:38px;min-height:90px}.inline-add-row .lookup-badge{font-size:13px;height:38px;width:80px}.inline-add-row .add-card__title{font-size:.95rem}.stockin-page .blue-btn{font-size:13px;height:auto;padding:8px 12px}.stockin-page .modal-backdrop{overflow-y:auto;padding:10px 6px}.stockin-page .modal-card{margin-top:40px;max-width:100%}.stockin-page .modal-body{max-height:none}.stockin-page .modal-row{gap:6px 0;grid-template-columns:1fr}.stockin-page .modal-input{font-size:13px;height:38px}.stockin-page textarea.modal-input{min-height:80px}.stockin-page .modal-footer{padding:10px 10px 12px}}.checkout-page{background:#0000;box-sizing:border-box;display:flex;flex-direction:column;height:100%;margin:0 auto;overflow:hidden;position:relative}.checkout-page h1{color:#2d3748;font-size:2rem;font-weight:700;margin-bottom:25px;text-align:center}.checkout-btn-container{display:flex;justify-content:center;margin:20px 0}.checkout-btn{background:#5ea8ff;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:700;padding:10px 16px}.checkout-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.checkout-btn:disabled{cursor:not-allowed;opacity:.6}.actions{display:flex;gap:10px;justify-content:center;margin:20px 0}.delete-selected-btn{background:#e53e3e;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:700;padding:10px 16px}.delete-selected-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.checkout-page .blue-btn{background:#5ea8ff;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:700;padding:10px 16px}.log-header .blue-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.checkout-page .trans-btn{background:#5ea8ff;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:700;padding:10px 16px}.checkout-page .trans-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.checkout-page .icon-text-btn{align-items:center;display:inline-flex;font-size:14px;gap:6px;justify-content:center;padding:8px 14px}.checkout-page .btn-icon{font-size:16px}.checkout-page .btn-text{white-space:nowrap}.log-section{margin:20px auto;width:80%}.log-header{align-items:center;display:flex;gap:8px}.log-header span{align-items:center;display:inline-flex;gap:15px}.log-list{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex:1 1;max-height:180px;overflow-y:auto;padding:8px}.log-line{border-bottom:1px dashed #edf2f7;font-size:14px;padding:3px 8px}.log-line:last-child{border-bottom:none}.log-success{color:#2a9d8f}.log-error{color:#e63946}.log-info{color:#4e73df}.checkout-table{background:#fff;border-collapse:initial;border-radius:12px;border-spacing:0;box-shadow:0 4px 20px #00000014;margin:20px auto;overflow:hidden;width:90%}.checkout-table thead{background:#374151;color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:1}.checkout-table td,.checkout-table th{border-bottom:1px solid #ced9ee;font-size:16px;padding:15px 20px;text-align:center}.checkout-table td:first-child,.checkout-table th:first-child{text-align:center;width:36px}.checkout-table th{font-weight:700;position:relative}.checkout-table tbody tr{transition:background .2s ease-in-out}.checkout-table tbody tr:hover{background:#e8f4ff}.stock-edit{align-items:center;display:flex;gap:8px;justify-content:center}.edit-input{border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;outline:none;padding:6px 8px;text-align:center;transition:border .2s,box-shadow .2s;width:70px}.edit-input:focus{border-color:#5ea8ff;box-shadow:0 0 0 3px #2563eb26}.save-btn{background:#1cc88a;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;padding:6px 12px;transition:filter .2s,transform .1s}.save-btn:hover{filter:brightness(.95);transform:translateY(-1px)}@media (max-width:768px){.checkout-page{padding:8px 0}.checkout-page h1{font-size:1.4rem;margin-bottom:14px}.checkout-btn-container{align-items:stretch;flex-direction:column;gap:8px;margin:10px 0;padding:0 4px;width:100%}.actions{align-items:center;flex-direction:row;gap:8px;margin:10px auto 20px;width:90%}.actions .checkout-btn,.actions .delete-selected-btn{font-size:10px;padding:10px 8px}.checkout-page .trans-btn{background:#e5edf7;font-size:10px;padding:8px 12px}.checkout-page .icon-text-btn .btn-text{display:none}.checkout-page .icon-text-btn{padding:0}.checkout-page .btn-icon{font-size:20px}.log-section{margin:10px auto;width:90%}.log-list{max-height:80px}.log-line{font-size:10px;padding:0}.checkout-table{border-collapse:collapse;margin:10px auto;table-layout:fixed;width:calc(100% - 12px)}.checkout-table td:first-child,.checkout-table th:first-child{width:26px}.checkout-table td,.checkout-table th{border-right:1px solid #ccc;font-size:10px;line-height:1.1;padding:2px 6px}.checkout-table td div,.checkout-table td span{line-height:1.1;margin:0;padding:0}.stock-edit{flex-direction:column;gap:4px}.edit-input{font-size:10px}.edit-input,.save-btn{padding:4px 6px;width:100%}.save-btn{font-size:9px}}.printns-page{background:#0000;box-sizing:border-box;color:#111827;font-family:inherit;margin:0 auto;max-width:1200px;padding:20px;position:relative}.printns-title{font-size:28px;font-weight:800;line-height:1.2;margin:8px 0 16px;text-align:center}.printns-notice{background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;color:#7c2d12;margin-bottom:12px;padding:12px 14px}.printns-tabs{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 12px}.printns-btn-right{margin-left:auto}.printns-btn-tab{background:#fff;border:1px solid #d1d5db;border-radius:12px;color:#111827;cursor:pointer;display:inline-block;font-size:13px;line-height:20px;padding:9px 14px;text-decoration:none;transition:background .15s ease,border-color .15s ease,transform .02s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none}.printns-btn-tab:hover{background:#f9fafb;border-color:#cbd5e1}.printns-btn-tab:active{transform:translateY(1px)}.printns-btn-tab.is-active{background:#111827;border-color:#111827;box-shadow:0 6px 18px #00000014;color:#fff}.printns-card{-webkit-overflow-scrolling:touch;background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 10px 30px #0f172a0f;flex:1 1 auto;margin:10px 0 0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:16px;scrollbar-color:#94a3b8a6 #0000;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.printns-search{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.printns-grid{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:130px 1fr}.printns-label{color:#64748b;font-size:13px}.printns-input,.printns-input-number{background:#fff;border:1px solid #d1d5db;border-radius:12px;box-sizing:border-box;color:#111827;outline:none;padding:10px 12px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;width:100%}.printns-input-number{padding:9px 10px;width:140px}.printns-input-number:focus,.printns-input:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa40}.printns-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.printns-btn-primary{background:#111827;border:1px solid #111827;border-radius:12px;color:#fff;cursor:pointer;padding:10px 14px;transition:background .15s ease,border-color .15s ease,transform .02s ease,opacity .15s ease,box-shadow .15s ease}.printns-btn-primary:hover{background:#0b1220;box-shadow:0 10px 22px #1118272e}.printns-btn-primary:active{transform:translateY(1px)}.printns-btn-primary.is-busy{background:#9ca3af;border-color:#9ca3af;box-shadow:none;cursor:not-allowed;opacity:.9}.printns-btn-ghost{background:#fff;border:1px solid #d1d5db;border-radius:12px;color:#111827;cursor:pointer;padding:10px 14px;transition:background .15s ease,border-color .15s ease,transform .02s ease}.printns-btn-ghost:hover{background:#f9fafb;border-color:#cbd5e1}.printns-btn-ghost:active{transform:translateY(1px)}.printns-btn-outline{background:#fff;border:1px solid #111827;border-radius:12px;color:#111827;cursor:pointer;padding:9px 12px;transition:background .15s ease,border-color .15s ease,transform .02s ease}.printns-btn-outline:hover{background:#f9fafb}.printns-btn-outline:active{transform:translateY(1px)}.printns-table{background:#fff;border:1px solid #e5e7eb;border-collapse:initial;border-radius:16px;border-spacing:0;overflow:hidden;table-layout:fixed;width:100%}.printns-table td,.printns-table th{border-bottom:1px solid #e5e7eb;padding:10px 12px;vertical-align:middle;word-break:break-all}.printns-table thead th{background:#374151;border-bottom:1px solid #2b3441;color:#fff;font-weight:700}.printns-table tbody tr:hover{background:#eef6ff}.printns-table tbody tr:nth-child(odd){background:#f9fafb}.printns-table tbody tr:nth-child(2n){background:#fff}.printns-empty{color:#6b7280;padding:22px!important;text-align:center}.printns-preview-wrap{align-items:center;display:flex;justify-content:center;padding:6px 0 2px}.printns-preview{background:#fff;border:2px solid #e5e7eb;border-radius:14px;box-shadow:0 10px 24px #0f172a1a;max-width:100%}.printns-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.printns-loading{color:#64748b;padding:12px}.printns-error{background:#fef2f2;border:1px solid #fecaca;border-radius:14px;color:#991b1b;margin-top:10px;padding:12px 14px}.printns-quick{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:16px;padding:14px}.printns-quick-title{color:#111827;font-weight:700;margin-bottom:10px}.printns-quick-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.printns-quick-name{color:#64748b;font-size:13px}.printns-btn-ghost:focus-visible,.printns-btn-outline:focus-visible,.printns-btn-primary:focus-visible,.printns-btn-tab:focus-visible,.printns-input-number:focus-visible,.printns-input:focus-visible{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa47;outline:none}.printns-card::-webkit-scrollbar,.printns-page::-webkit-scrollbar{height:10px;width:10px}.printns-card::-webkit-scrollbar-track,.printns-page::-webkit-scrollbar-track{background:#0000}.printns-card::-webkit-scrollbar-thumb,.printns-page::-webkit-scrollbar-thumb{background:#94a3b8a6;border-radius:999px}.printns-file{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.printns-file-input{display:none}.printns-file-name{color:#475569;font-size:13px;max-width:360px;opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.printns-excel-nav{border-top:1px solid #e5e7eb;margin-top:12px;padding-top:12px}.printns-excel-nav-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.printns-excel-nav-mid{flex:1 1;min-width:0}@media (max-width:768px){.printns-page{max-width:100%;padding:10px}.printns-title{font-size:22px}.printns-grid{grid-template-columns:1fr}.printns-input-number{width:100%}.printns-btn-tab,.printns-tabs{font-size:12px}.printns-btn-right{margin-left:0}.printns-actions{flex-wrap:wrap}.printns-table thead th{font-size:12px}.printns-card{padding:12px}}.pe-container{--pe-bg:#f5f6fa;--pe-panel:#fff;--pe-text:#0f172a;--pe-muted:#64748b;--pe-accent:#3b82f6;--pe-accent-2:#16a34a;--pe-danger:#ef4444;--pe-border:#e5e7eb;--pe-input-bg:#fff;--pe-radius:14px;--pe-shadow:0 10px 24px #0f172a14;--pe-focus:0 0 0 3px #3b82f62e;background:#0000;box-sizing:border-box;color:var(--pe-text);display:flex;flex-direction:column;height:100%;margin:0 auto;overflow:hidden;overflow-y:auto;position:relative;width:50%;z-index:0}.pe-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.pe-header h1{font-size:26px;font-weight:700;letter-spacing:.2px;margin:0}.pe-panel{background:var(--pe-panel);border:1px solid var(--pe-border);border-radius:var(--pe-radius);box-shadow:var(--pe-shadow);padding:20px}.pe-actions{display:flex;flex-wrap:wrap;gap:10px}.pe-btn{background:#fff;border:1px;border-radius:10px;color:#0f172a;cursor:pointer;font-weight:700;padding:10px 16px;white-space:nowrap}.pe-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.pe-btn:active{transform:translateY(0)}.pe-btn.primary{background:#4e73df;border-color:var(--pe-accent);color:#fff}.pe-btn.danger{background:var(--pe-danger);border-color:var(--pe-danger);color:#fff}.pe-row{grid-gap:12px 14px;display:grid;gap:12px 14px;grid-template-columns:180px 1fr;margin-bottom:14px}.pe-label{color:var(--pe-muted);display:block;font-size:13px;padding-top:10px}.pe-input-wrap{align-items:center;display:flex;gap:8px}.pe-input,.pe-select{background:var(--pe-input-bg);border:1px solid var(--pe-border);border-radius:12px;color:var(--pe-text);height:44px;line-height:44px;outline:none;padding:0 14px;width:100%}.pe-select{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,#0000 50%,var(--pe-muted) 50%),linear-gradient(135deg,var(--pe-muted) 50%,#0000 50%),linear-gradient(to right,#0000,#0000);background-position:calc(100% - 18px) 18px,calc(100% - 12px) 18px,0 0;background-repeat:no-repeat;background-size:6px 6px,6px 6px,100% 100%}.pe-input:focus,.pe-select:focus{border-color:var(--pe-accent);box-shadow:var(--pe-focus)}.pe-input[type=number]::-webkit-inner-spin-button,.pe-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pe-input[type=number]{-moz-appearance:textfield}.pe-grid{grid-gap:12px 18px;display:grid;gap:12px 18px;grid-template-columns:repeat(2,minmax(320px,1fr))}.pe-field{display:flex;flex-direction:column}.pe-field .pe-label{padding-bottom:6px;padding-top:0}.pe-toggle{align-items:center;display:flex;gap:10px;padding-top:8px}.pe-toggle input{accent-color:var(--pe-accent);height:18px;width:18px}.pe-toggle label{color:var(--pe-muted);-webkit-user-select:none;user-select:none}.pe-status{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.pe-info{color:var(--pe-muted)}.pe-success{color:var(--pe-accent-2)}.pe-error{color:var(--pe-danger)}.pe-footer{color:var(--pe-muted);font-size:12px;margin-top:10px;text-align:right}.pe-panel .pe-input,.pe-panel .pe-select{box-sizing:border-box}.printns-head-row{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:8px}.printns-status{align-items:center;display:flex;font-size:12px;gap:6px}.printns-status-dot{background-color:#ccc;border-radius:999px;height:10px;width:10px}.printns-status-dot.is-ok{background-color:#2ecc71}.printns-status-dot.is-fail{background-color:#e74c3c}.printns-status-dot.is-unknown{background-color:#f1c40f}.printns-status-text{color:#666}@media (max-width:768px){.pe-container{padding:5px;width:80%}.pe-header h1{font-size:20px}.pe-btn{font-size:10px}.pe-grid,.pe-row{grid-template-columns:1fr}}.as-root{background:#f4f6f9;font-family:Noto Sans KR,Arial,sans-serif;min-height:100vh;padding:30px}.as-wrap{grid-gap:24px;display:grid;gap:24px;margin:0 auto;max-width:1100px}.as-title{color:#2d3748;font-size:2rem;font-weight:700;margin-bottom:4px;text-align:left}.as-sub{color:#4a5568;font-size:.95rem}.as-header{display:flex;flex-direction:column;gap:14px}@media (min-width:640px){.as-header{align-items:flex-end;flex-direction:row;justify-content:space-between}}.as-label{color:#2d3748;font-size:.9rem;font-weight:600}.as-base{align-items:center;display:flex;gap:10px}.as-controls{grid-gap:16px;display:grid;gap:16px}@media (min-width:640px){.as-controls{grid-template-columns:1fr 1fr}}.as-grid2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.as-field{display:flex;flex-direction:column;gap:8px}.as-input{background:#fff;border:1px solid #cbd5e0;border-radius:8px;font-size:.95rem;outline:none;padding:10px 12px;transition:border .15s,box-shadow .15s,background .15s}.as-input:focus{background:#fff;border-color:#4e73df;box-shadow:0 0 0 3px #4e73df2e}.as-main{grid-gap:24px;display:grid;gap:24px}.as-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 20px #0000000f;overflow:hidden}.as-section-head{align-items:center;background:#374151;color:#fff;display:flex;justify-content:space-between;padding:2px 18px}.as-section-title{font-size:1.05rem;font-weight:700}.as-badge{background:#ffffff2e;border:1px solid #ffffff59;border-radius:999px;font-size:.8rem;padding:3px 8px}.as-cards{grid-gap:12px;display:grid;gap:12px;padding:14px}@media (min-width:640px){.as-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.as-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}.as-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;display:flex;flex-direction:column;gap:10px;padding:14px;transition:background .2s ease-in-out,box-shadow .2s ease-in-out}.as-card:hover{background:#f8fafc;box-shadow:0 6px 22px #00000012}.as-card-head{align-items:center;display:flex;justify-content:space-between}.as-card-title{font-size:1rem}.as-card-title,.as-chip{color:#2d3748;font-weight:700}.as-chip{background:#edf2f7;border:none;border-radius:999px;font-size:.75rem;padding:4px 8px}.as-code{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#1a202c;font-size:.9rem;padding:10px 12px;word-break:break-all}.as-warn{color:#b7791f;font-size:.9rem;font-weight:600}.as-actions{display:flex;gap:10px;justify-content:center;margin-top:6px}.as-btn{background:#1cc88a;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:700;padding:10px 16px;transition:background .2s,transform .1s,box-shadow .15s}.as-btn:hover{background:#17a673;transform:scale(1.03)}.as-btn:disabled{cursor:not-allowed;opacity:.55}.as-foot{color:#4a5568;font-size:.9rem;margin:10px 0 6px;text-align:center;width:100%}@media (prefers-reduced-motion:reduce){.as-btn,.as-card,.as-input{transition:none}}.logs-page{background-color:initial;box-sizing:border-box;color:#2d3748;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;padding:16px}.logs-page .header{align-items:center;display:flex;flex-direction:column;gap:8px;justify-content:center;margin-bottom:16px;padding:0 8px;position:relative}.logs-page .header-left{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.logs-page .title{align-items:baseline;color:#2d3748;display:flex;font-size:2rem;font-weight:600;gap:4px;margin-bottom:25px}.logs-page .title-sub{color:#2d3748;font-size:20px;font-weight:400}.logs-page .header-right{align-items:center;display:flex;font-size:14px;gap:8px}.logs-page .filter-select{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;color:#111827;cursor:pointer;font-size:13px;height:32px;padding:2px 8px}.logs-page .blue-btn{background:#5ea8ff;border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:700;padding:8px}.logs-page .blue-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.logs-page .filter-select:focus{border-color:#5ea8ff;box-shadow:0 0 0 1px #5ea8ff66;outline:none}.logs-page .body{box-shadow:0 1px 2px #0f172a14;margin:0 auto;max-width:90%}.logs-page .status{color:#4b5563;font-size:14px;padding:24px 8px;text-align:center}.logs-page .status-error{color:#b91c1c}.logs-page .table-wrap{border-radius:12px;overflow:hidden;overflow-x:auto}.logs-page .table{background-color:#f9fafb;border-collapse:collapse;border-radius:12px;border-spacing:0;margin:0 auto;width:100%}.logs-page .table td{border-bottom:1px solid #e5e7eb;font-size:13px;padding:6px 8px;text-align:center;vertical-align:middle;white-space:nowrap}.logs-page .table th{background:#374151;border-left:4px solid #374151;color:#fff;font-weight:600;text-align:center}.logs-page .date-sub,.logs-page .time-sub{display:inline-block;font-size:13px;margin-right:4px;white-space:nowrap}.logs-page .table tbody tr:hover{background-color:#e8edf3}.logs-page .table tbody{border-left:4px solid #f9fafb}.logs-page .table tbody tr.row-in{background-color:#4ccb8e26;border-left:4px solid #4ccb8e}.logs-page .table tbody tr.row-out{background-color:#ff6b6b26;border-left:4px solid #ff6b6b}.logs-page .table tbody tr.row-audit{background-color:#5ea8ff26;border-left:4px solid #5ea8ff}.logs-page .table tbody tr.row-state{background-color:#facc151f;border-left:4px solid #facc15}.logs-page .table tbody tr.row-location{background-color:#a855f71f;border-left:4px solid #a855f7}.logs-page .table tbody tr.row-audit:hover,.logs-page .table tbody tr.row-in:hover,.logs-page .table tbody tr.row-location:hover,.logs-page .table tbody tr.row-out:hover,.logs-page .table tbody tr.row-state:hover{filter:brightness(.97)}@media (max-width:768px){.logs-page{padding:8px}.logs-page .header-right{font-size:10px}.logs-page .body{max-width:100%}.logs-page .title{font-size:14px}.logs-page .title-sub{font-size:10px}.logs-page .table td,.logs-page .table th{font-size:10px;padding:4px 6px}.logs-page .date-sub,.logs-page .time-sub{display:block;font-size:10px}}.project-detail-page,.project-page{box-sizing:border-box;margin:0 auto;max-width:1200px;padding:16px}.project-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px}.project-header h1{font-size:22px;font-weight:700;margin:0}.project-header-right{align-items:center;display:flex;gap:8px}.project-search-input{border:1px solid #d1d5db;border-radius:8px;font-size:14px;min-width:240px;outline:none;padding:6px 10px}.project-search-input:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb40}.project-empty,.project-error,.project-loading{font-size:14px;margin-top:12px}.project-error{color:#b91c1c}.project-empty{color:#6b7280;text-align:center}.project-table{background:#fff;border-collapse:collapse;border-radius:12px;box-shadow:0 1px 3px #0f172a14;overflow:hidden;table-layout:fixed;width:100%}.project-table td,.project-table th{border-bottom:1px solid #e5e7eb;font-size:13px;padding:8px 10px;text-align:left;word-break:break-all}.project-table thead th{background:#374151;color:#fff;font-weight:600}.project-table tbody tr:nth-child(odd){background:#f9fafb}.project-table tbody tr:nth-child(2n){background:#fff}.project-row{cursor:pointer;transition:background-color .12s ease}.project-row:hover{background:#e5f0ff}.project-detail-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px}.project-detail-header h1{font-size:22px;font-weight:700;margin:0 0 4px}.project-detail-sub{color:#6b7280;display:flex;flex-wrap:wrap;font-size:12px;gap:8px}.project-detail-sub span:before{color:#d1d5db;content:"•";margin:0 4px}.project-detail-sub span:first-child:before{content:"";margin:0}.project-detail-stats{display:flex;gap:12px}.project-detail-stats>div{background:#f3f4f6;border-radius:10px;min-width:90px;padding:6px 10px;text-align:right}.project-detail-stats .label{color:#6b7280;font-size:11px;margin-bottom:2px}.project-detail-stats .value{font-size:15px;font-weight:600}.project-tabs{border-bottom:1px solid #e5e7eb;display:flex;gap:8px;margin-bottom:16px}.project-tabs button{background:#0000;border:none;border-radius:8px 8px 0 0;color:#6b7280;cursor:pointer;font-size:13px;padding:8px 12px}.project-tabs button.active{background:#fff;border:1px solid #e5e7eb;border-bottom-color:#fff;color:#111827;font-weight:600}.project-info{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0f172a14;font-size:14px;padding:12px 14px}.project-info h2{font-size:16px;font-weight:600;margin:0 0 8px}.project-files{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0f172a14;font-size:14px;padding:12px 14px}.project-files h2{font-size:16px;font-weight:600;margin:0 0 8px}.project-file-list{display:flex;flex-direction:column;gap:10px}.project-file-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:8px 10px}.project-file-header{align-items:center;display:flex;font-size:13px;gap:8px;margin-bottom:8px}.project-file-header span{font-weight:600}.project-file-header a{color:#2563eb;font-size:12px;text-decoration:none}.project-file-header a:hover{text-decoration:underline}.project-file-header button{background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:12px;margin-left:auto;padding:4px 8px}.project-file-header button:hover{background:#f3f4f6}.project-file-preview{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.project-file-iframe{border:none;height:420px;width:100%}.project-file-image{display:block;max-height:420px;max-width:100%;object-fit:contain}.project-file-text-loading{color:#6b7280;font-size:13px;margin-top:10px}.project-file-text-preview{background:#111827;border-radius:8px;color:#e5e7eb;font-size:12px;margin-top:8px;max-height:360px;overflow:auto;padding:10px;white-space:pre-wrap}.project-bom{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0f172a14;font-size:13px;padding:12px 14px}.project-bom-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:8px}.project-bom-header h2{font-size:16px;font-weight:600;margin:0}.project-bom-upload{align-items:center;display:flex;gap:8px}.project-bom-upload input[type=file]{font-size:12px}.project-bom-upload button{background:#2563eb;border:1px solid #2563eb;border-radius:8px;color:#fff;cursor:pointer;font-size:12px;padding:6px 10px}.project-bom-upload button:disabled{cursor:default;opacity:.5}.project-bom-table{border-collapse:collapse;margin-top:8px;table-layout:fixed;width:100%}.project-bom-table td,.project-bom-table th{border-bottom:1px solid #e5e7eb;font-size:12px;padding:6px 8px;text-align:left;word-break:break-all}.project-bom-table thead th{background:#f3f4f6;font-weight:600}.project-bom-preview{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;margin-top:16px;padding:10px}.project-bom-preview h3{font-size:14px;font-weight:600;margin:0 0 4px}.project-bom-preview p{color:#6b7280;font-size:12px;margin:0 0 8px}.project-bom-preview-table{border-collapse:collapse;margin-top:4px;table-layout:fixed;width:100%}.project-bom-preview-table td,.project-bom-preview-table th{border-bottom:1px solid #e5e7eb;font-size:12px;padding:6px 8px;vertical-align:top}.project-bom-preview-table thead th{background:#e5e7eb;font-weight:600}.project-bom-preview-table select{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:12px;max-width:260px;padding:4px 6px;width:100%}.project-bom-preview-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}.project-bom-preview-actions button{border:1px solid #d1d5db;border-radius:8px;cursor:pointer;font-size:12px;padding:6px 10px}.project-bom-preview-actions button:last-child{background:#2563eb;border-color:#2563eb;color:#fff}.project-images{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0f172a14;font-size:14px;padding:12px 14px}.project-images h2{font-size:16px;font-weight:600;margin:0 0 8px}.project-image-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-top:6px}.project-image-item{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:6px;text-align:center}.project-image-item img{background:#111827;border-radius:8px;max-height:180px;max-width:100%;object-fit:contain}.project-image-item .caption{color:#4b5563;font-size:12px;margin-top:4px}@media (max-width:768px){.project-header{align-items:flex-start;flex-direction:column}.project-header-right{width:100%}.project-search-input{min-width:0;width:100%}.project-detail-header{align-items:flex-start;flex-direction:column}.project-detail-stats{flex-wrap:wrap;justify-content:flex-start;width:100%}.project-detail-stats>div{flex:1 1 120px}.project-file-iframe,.project-file-image{max-height:320px}.project-bom-upload{align-items:flex-start;flex-direction:column}.project-bom-preview-table,.project-bom-table{font-size:11px}}.board-page{grid-gap:16px;box-sizing:border-box;display:grid;gap:16px;grid-template-columns:1.1fr 1.6fr;height:100%;padding:8px}.board-left{display:flex;flex-direction:column;height:100%}.board-card,.board-left,.board-right{min-height:0}.board-card{background:#fff;border-radius:14px;box-shadow:0 8px 18px #0f172a1f;overflow:hidden}.board-header{align-items:center;background:linear-gradient(135deg,#374151,#1f2937);color:#f9fafb;display:flex;gap:12px;justify-content:space-between;padding:10px 12px}.board-header h2{font-size:18px;font-weight:700;margin:0}.board-search{align-items:center;display:flex;gap:6px}.board-search input{background:#111827b3;border:1px solid #d1d5db80;border-radius:999px;color:#e5e7eb;font-size:13px;min-width:220px;outline:none;padding:6px 9px}.board-search input::placeholder{color:#9ca3af}.board-search input:focus{border-color:#5ea8ff;box-shadow:0 0 0 1px #3b82f699}.board-search button{background:#3b82f6;border:none;border-radius:999px;color:#f9fafb;cursor:pointer;font-size:13px;font-weight:600;padding:6px 12px;white-space:nowrap}.board-list-card{display:flex;flex-direction:column;max-height:none;min-height:0}.board-table-wrap{background:#fff;flex:1 1;min-height:0;overflow:auto}.board-table{border-collapse:collapse;table-layout:fixed}.board-table thead{background:#374151;color:#f9fafb;position:-webkit-sticky;position:sticky;top:0;z-index:2}.board-table td,.board-table th{border-bottom:1px solid #e5e7eb;font-size:12px;overflow:hidden;padding:8px;text-align:left;text-overflow:ellipsis;white-space:nowrap;word-break:break-word}.board-table tbody tr:nth-child(odd){background:#f9fafb}.board-table tbody tr:hover{background:#e5edff}.board-table tbody tr.selected{background:#dbeafe}.board-comment-count{color:#2563eb;font-size:11px;font-weight:700;margin-left:4px}.board-compose-card{display:flex;flex-direction:column;margin-top:10px;min-height:0}.board-compose-summary{background:linear-gradient(135deg,#374151,#1f2937);color:#f9fafb;cursor:pointer;font-size:13px;font-weight:800;list-style:none;padding:10px 12px}.board-compose-summary::-webkit-details-marker{display:none}.board-compose-body{padding:10px 12px 12px}.form-row{flex-direction:column;gap:4px}.form-row,.form-row-inline{display:flex;margin-bottom:10px}.form-row-inline{align-items:center;gap:10px}.form-row label{color:#4b5563;font-size:12px;font-weight:700}.form-row input,.form-row textarea{border:1px solid #d1d5db;border-radius:10px;font-size:13px;outline:none;padding:8px 10px}.form-row textarea{min-height:90px;resize:vertical}.form-row input:focus,.form-row textarea:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb40}.form-actions{background:#fff;border-top:1px solid #eef2f7;bottom:0;display:flex;gap:8px;justify-content:flex-end;margin-top:10px;padding-top:10px;position:-webkit-sticky;position:sticky}.form-actions button{background:#5ea8ff;border:none;border-radius:999px;color:#f9fafb;cursor:pointer;font-size:12px;font-weight:700;padding:7px 14px;transition:filter .12s ease,transform .05s ease}.form-actions button:hover{filter:brightness(.95);transform:translateY(-1px)}.form-actions button:active{transform:scale(.97)}.board-left.compose-closed .board-list-card{flex:1 1 auto;min-height:0}.board-left.compose-closed .board-compose-card{flex:0 0 auto}.board-left.compose-open .board-list-card{flex:0 0 38%;min-height:220px}.board-left.compose-open .board-compose-card{flex:1 1 auto;min-height:0}.board-compose-body{flex:1 1;min-height:0;overflow:auto}.board-right{display:flex;flex-direction:column;padding:12px 14px}.board-loading{color:#6b7280;font-size:13px;padding:10px 0}.board-error{background:#fee2e2;border:1px solid #fecaca;border-radius:10px;color:#b91c1c;font-size:13px;margin:8px 10px 0;padding:8px 10px}.board-empty{color:#9ca3af;font-size:13px;padding:12px 6px}.board-detail{display:flex;flex-direction:column;height:100%;min-height:0}.board-detail-top{border-bottom:1px solid #eef2f7;padding-bottom:8px}.board-detail-header{align-items:center;display:flex;gap:8px}.board-detail-header h3{color:#111827;font-size:16px;font-weight:800;margin:0}.badge-notice{background:linear-gradient(135deg,#f97316,#ea580c);border-radius:999px;color:#fff;font-size:11px;font-weight:800;padding:2px 8px}.btn-delete-post{background:#fee2e2;border:1px solid #fecaca;border-radius:999px;color:#b91c1c;cursor:pointer;font-size:12px;margin-left:auto;padding:5px 10px;transition:background-color .12s ease,transform .05s ease}.btn-delete-post:hover{background:#fecaca}.btn-delete-post:active{transform:scale(.97)}.board-detail-meta,.board-detail-project{color:#6b7280;display:flex;flex-wrap:wrap;font-size:12px;gap:8px;margin-top:6px}.board-detail-content{background:#f9fafb;color:#111827;font-size:13px;margin-top:10px;max-height:42%;overflow:auto;padding:10px;white-space:pre-wrap}.board-detail-content,.board-detail-image{border:1px solid #e5e7eb;border-radius:10px}.board-detail-image{display:block;height:auto;max-height:30vh;max-width:100%;object-fit:contain}.board-comments{display:flex;flex:1 1;flex-direction:column;gap:8px;margin-top:10px;min-height:0}.board-comments h4{font-size:14px;font-weight:800;margin:0}.board-comment-list{display:flex;flex:1 1;flex-direction:column;gap:8px;min-height:0;overflow:auto;padding-right:4px}.board-comment-item{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:12px;padding:8px 10px}.board-comment-meta{align-items:center;color:#4b5563;display:flex;font-size:12px;gap:8px;margin-bottom:6px}.board-comment-meta .author{font-weight:800}.board-comment-meta .time{color:#9ca3af;font-size:11px}.btn-delete-comment{background:none;border:none;color:#ef4444;cursor:pointer;font-size:11px;margin-left:auto;padding:2px 4px}.board-comment-content{color:#111827;font-size:13px;white-space:pre-wrap}.board-comment-compose{background:#fff;border-top:1px solid #eef2f7;bottom:0;display:flex;flex-direction:column;gap:8px;padding-top:8px;position:-webkit-sticky;position:sticky}.board-comment-compose textarea{border:1px solid #d1d5db;border-radius:12px;font-size:13px;min-height:80px;outline:none;padding:8px 10px;resize:vertical;width:100%}.board-comment-compose textarea:focus{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb40}.btn-comment-submit{align-self:flex-end;background:#3b82f6;border:none;border-radius:999px;color:#f9fafb;cursor:pointer;font-size:12px;font-weight:800;padding:8px 14px}@media (max-width:768px){.board-page{grid-template-columns:1fr;height:auto}.board-table-wrap{max-height:55vh}.board-right{padding:10px 12px}}
/*# sourceMappingURL=main.ff24b151.css.map*/