.login-page[data-v-4446eb72]{min-height:100vh;background:#c4c4c4;display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-container[data-v-4446eb72]{display:flex;width:100%;max-width:900px;min-height:540px;background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden}.login-branding[data-v-4446eb72]{flex:1;background:#1e3a4c;padding:3rem;display:flex;flex-direction:column;justify-content:space-between}@media(max-width:768px){.login-branding[data-v-4446eb72]{display:none}}.login-branding__content[data-v-4446eb72]{text-align:center}.login-branding__logo[data-v-4446eb72]{display:flex;align-items:center;justify-content:center;width:80px;height:80px;margin:0 auto 1.5rem;background:#15a8e226;border-radius:12px}.login-branding__logo svg[data-v-4446eb72]{width:44px;height:44px;color:#15a8e2}.login-branding__title[data-v-4446eb72]{color:#fff;font-size:1.75rem;margin-bottom:.5rem}.login-branding__subtitle[data-v-4446eb72]{color:#ffffffb3;font-size:1rem}.login-branding__footer[data-v-4446eb72]{text-align:center}.login-branding__footer p[data-v-4446eb72]{color:#ffffff80;font-size:.875rem;letter-spacing:.5px}.login-form-panel[data-v-4446eb72]{flex:1.2;display:flex;align-items:center;justify-content:center;padding:3rem;background:#fff}.login-form-wrapper[data-v-4446eb72]{width:100%;max-width:320px}.login-form__title[data-v-4446eb72]{font-size:1.5rem;color:#1e3a4c;margin-bottom:.25rem}.login-form__subtitle[data-v-4446eb72]{color:#4e5d6a;margin-bottom:2rem}.login-form__options[data-v-4446eb72]{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;font-size:.875rem}.login-form__link[data-v-4446eb72]{color:#0070cc}.login-form__link[data-v-4446eb72]:hover{text-decoration:underline}.checkbox[data-v-4446eb72]{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:#4e5d6a}.checkbox input[data-v-4446eb72]{width:16px;height:16px;accent-color:#0070cc}.spinner[data-v-4446eb72]{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-4446eb72 .8s linear infinite}@keyframes spin-4446eb72{to{transform:rotate(360deg)}}.app-header[data-v-7e3703cc]{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 2rem;background:#1e3a4c}.app-header__left[data-v-7e3703cc]{display:flex;align-items:center;gap:1rem}.app-header__title[data-v-7e3703cc]{color:#fff;font-weight:600;font-size:1.125rem;margin-right:1.5rem}.app-header__right[data-v-7e3703cc]{display:flex;align-items:center;gap:1.5rem}.app-logo[data-v-7e3703cc]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#15a8e226;border-radius:8px}.app-logo svg[data-v-7e3703cc]{width:20px;height:20px;color:#15a8e2}.app-nav[data-v-7e3703cc]{display:flex;align-items:center;gap:.25rem;margin-left:1.5rem;padding-left:1.5rem;border-left:1px solid rgba(255,255,255,.1)}.nav-tab[data-v-7e3703cc]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;color:#fff9;font-size:.9rem;font-weight:500;border-radius:8px;text-decoration:none;transition:all .15s ease}.nav-tab svg[data-v-7e3703cc]{width:18px;height:18px}.nav-tab[data-v-7e3703cc]:hover{color:#fff;background:#ffffff1a}.nav-tab--active[data-v-7e3703cc]{color:#fff;background:#15a8e233}.nav-tab--active svg[data-v-7e3703cc]{color:#15a8e2}.header-btn[data-v-7e3703cc]{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;border-radius:8px;cursor:pointer;transition:background .15s ease}.header-btn svg[data-v-7e3703cc]{width:22px;height:22px;color:#ffffffb3}.header-btn[data-v-7e3703cc]:hover{background:#ffffff1a}.header-btn:hover svg[data-v-7e3703cc]{color:#fff}.notification-badge[data-v-7e3703cc]{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;font-weight:600;color:#fff;background:#dc3545;border-radius:9px}.user-menu[data-v-7e3703cc]{display:flex;align-items:center;gap:1rem}.user-avatar[data-v-7e3703cc]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#a67c52;color:#fff;font-weight:600;border-radius:50%}.logout-btn[data-v-7e3703cc]{padding:.5rem 1rem;font-size:.875rem;color:#ffffffb3;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;transition:all .15s ease}.logout-btn[data-v-7e3703cc]:hover{color:#fff;border-color:#fff6}@media(max-width:768px){.app-header__title[data-v-7e3703cc]{display:none}.app-nav[data-v-7e3703cc]{margin-left:1rem;padding-left:1rem}.nav-tab[data-v-7e3703cc]{padding:.5rem}.nav-tab span[data-v-7e3703cc]{display:none}}.home-page[data-v-822971d1]{min-height:100vh;background:#c4c4c4;display:flex;flex-direction:column}.home-main[data-v-822971d1]{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:3rem}.home-content[data-v-822971d1]{text-align:center}.logo-container[data-v-822971d1]{margin-bottom:3rem;position:relative;display:flex;justify-content:center;align-items:center}.logo-glow[data-v-822971d1]{position:absolute;width:500px;height:500px;background:radial-gradient(circle,rgba(21,168,226,.12) 0%,transparent 60%);border-radius:50%;animation:pulse-glow-822971d1 4s ease-in-out infinite;pointer-events:none}@media(max-width:640px){.logo-glow[data-v-822971d1]{width:350px;height:350px}}@keyframes pulse-glow-822971d1{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.1);opacity:.8}}.company-logo[data-v-822971d1]{width:400px;height:auto;max-width:90vw;object-fit:contain;position:relative;z-index:1;animation:float-822971d1 6s ease-in-out infinite,fade-in-822971d1 1s ease-out;filter:drop-shadow(0 10px 30px rgba(0,0,0,.1))}.company-logo[data-v-822971d1]:hover{animation-play-state:paused;transform:scale(1.05);filter:drop-shadow(0 15px 40px rgba(0,0,0,.15))}.company-logo[data-v-822971d1]{transition:transform .4s ease,filter .4s ease}@media(max-width:640px){.company-logo[data-v-822971d1]{width:280px}}@keyframes float-822971d1{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes fade-in-822971d1{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.welcome-text[data-v-822971d1]{animation:slide-up-822971d1 1s ease-out .3s both}.welcome-text h1[data-v-822971d1]{font-size:1.75rem;font-weight:400;color:#4e5d6a;margin-bottom:.5rem;letter-spacing:1px}@media(max-width:640px){.welcome-text h1[data-v-822971d1]{font-size:1.25rem}}.welcome-text h2[data-v-822971d1]{font-size:4rem;font-weight:700;color:#1e3a4c;line-height:1.1}@media(max-width:640px){.welcome-text h2[data-v-822971d1]{font-size:2.5rem}}@keyframes slide-up-822971d1{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.components-page[data-v-44c4e6a1]{min-height:100vh;background:#c4c4c4}.components-main[data-v-44c4e6a1]{padding:2rem 0}.page-title-section[data-v-44c4e6a1]{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.page-title-section h1[data-v-44c4e6a1]{font-size:1.75rem;margin-bottom:.25rem}.page-title-section p[data-v-44c4e6a1]{color:#4e5d6a}.page-title-section .btn[data-v-44c4e6a1]{display:flex;align-items:center;gap:.5rem}.page-title-section .btn svg[data-v-44c4e6a1]{width:20px;height:20px}.loading-state[data-v-44c4e6a1],.error-state[data-v-44c4e6a1]{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:3rem;text-align:center;color:#4e5d6a}.spinner[data-v-44c4e6a1]{width:40px;height:40px;border:3px solid #e8eaed;border-top-color:#0070cc;border-radius:50%;margin:0 auto 1rem;animation:spin-44c4e6a1 1s linear infinite}@keyframes spin-44c4e6a1{to{transform:rotate(360deg)}}.search-bar[data-v-44c4e6a1]{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:#fff;border-radius:12px;box-shadow:0 1px 2px #0000000d;margin-bottom:1.5rem}.search-bar svg[data-v-44c4e6a1]{width:20px;height:20px;color:#818d99;flex-shrink:0}.search-bar input[data-v-44c4e6a1]{flex:1;border:none;font-size:1rem;color:#1e3a4c}.search-bar input[data-v-44c4e6a1]::placeholder{color:#818d99}.search-bar input[data-v-44c4e6a1]:focus{outline:none}.table-card[data-v-44c4e6a1]{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;margin-bottom:1.5rem}.data-table[data-v-44c4e6a1]{width:100%;border-collapse:collapse}.data-table th[data-v-44c4e6a1],.data-table td[data-v-44c4e6a1]{padding:1rem 1.5rem;text-align:left}.data-table th[data-v-44c4e6a1]{background:#e8eaed;font-weight:600;color:#4e5d6a;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.data-table td[data-v-44c4e6a1]{border-bottom:1px solid #e8eaed}.data-table tbody tr[data-v-44c4e6a1]{transition:background .15s ease}.data-table tbody tr[data-v-44c4e6a1]:hover{background:#e8eaed80}.data-table tbody tr:last-child td[data-v-44c4e6a1]{border-bottom:none}.component-id[data-v-44c4e6a1]{font-weight:600;color:#0070cc;font-family:monospace}.type-badge[data-v-44c4e6a1]{display:inline-block;padding:.25rem .5rem;font-size:.75rem;font-weight:500;background:#15a8e21a;color:#15a8e2;border-radius:4px}.status-badge[data-v-44c4e6a1]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;border-radius:4px}.status-badge svg[data-v-44c4e6a1]{width:14px;height:14px}.status-badge--active[data-v-44c4e6a1]{background:#43d1851a;color:#43d185}.status-badge--inactive[data-v-44c4e6a1]{background:#818d991a;color:#818d99}.count-cell .low-count[data-v-44c4e6a1]{color:#dc3545;font-weight:600}.actions-cell[data-v-44c4e6a1]{display:flex;gap:.25rem}.edit-btn[data-v-44c4e6a1],.delete-btn[data-v-44c4e6a1]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease}.edit-btn svg[data-v-44c4e6a1],.delete-btn svg[data-v-44c4e6a1]{width:18px;height:18px;color:#818d99}.edit-btn[data-v-44c4e6a1]:hover{background:#15a8e21a}.edit-btn:hover svg[data-v-44c4e6a1]{color:#15a8e2}.delete-btn[data-v-44c4e6a1]:hover{background:#dc35451a}.delete-btn:hover svg[data-v-44c4e6a1]{color:#dc3545}.url-link[data-v-44c4e6a1]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border-radius:4px;transition:all .15s ease}.url-link svg[data-v-44c4e6a1]{width:18px;height:18px;color:#15a8e2}.url-link[data-v-44c4e6a1]:hover{background:#15a8e21a}.url-link:hover svg[data-v-44c4e6a1]{color:#1190c4}.no-url[data-v-44c4e6a1]{color:#818d99}.empty-state[data-v-44c4e6a1]{padding:3rem;text-align:center;color:#818d99}.empty-state svg[data-v-44c4e6a1]{width:48px;height:48px;margin-bottom:1rem;opacity:.5}.summary-stats[data-v-44c4e6a1]{display:flex;gap:1.5rem}.summary-stat[data-v-44c4e6a1]{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:1.5rem 2rem;text-align:center}.summary-stat__value[data-v-44c4e6a1]{display:block;font-size:1.5rem;font-weight:700;color:#0070cc}.summary-stat__label[data-v-44c4e6a1]{font-size:.875rem;color:#4e5d6a}.modal-overlay[data-v-44c4e6a1]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-44c4e6a1]{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow:auto}.modal__header[data-v-44c4e6a1]{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid #e8eaed}.modal__header h2[data-v-44c4e6a1]{font-size:1.25rem}.modal__close[data-v-44c4e6a1]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:4px;cursor:pointer}.modal__close svg[data-v-44c4e6a1]{width:20px;height:20px;color:#4e5d6a}.modal__close[data-v-44c4e6a1]:hover{background:#e8eaed}.modal__body[data-v-44c4e6a1]{padding:2rem}.modal__footer[data-v-44c4e6a1]{display:flex;justify-content:flex-end;gap:1rem;padding-top:1.5rem;border-top:1px solid #e8eaed;margin-top:1.5rem}.form-row[data-v-44c4e6a1]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-hint[data-v-44c4e6a1]{display:block;margin-top:.25rem;font-size:.75rem;color:#818d99}.form-hint--info[data-v-44c4e6a1]{color:#0070cc;font-style:italic;padding:.5rem 1rem;background:#0070cc1a;border-radius:4px;margin-bottom:1rem}.form-input--readonly[data-v-44c4e6a1]{background:#e8eaed;color:#818d99;cursor:not-allowed}.checkbox-label[data-v-44c4e6a1]{display:flex;flex-direction:column;gap:.25rem;cursor:pointer}.checkbox-label span[data-v-44c4e6a1]{font-weight:500;color:#1e3a4c}.checkbox-input[data-v-44c4e6a1]{width:18px;height:18px;cursor:pointer;accent-color:#0070cc}.checkbox-input[data-v-44c4e6a1]:checked{accent-color:#0070cc}@media(max-width:768px){.page-title-section[data-v-44c4e6a1]{flex-direction:column;align-items:flex-start;gap:1rem}.summary-stats[data-v-44c4e6a1]{flex-direction:column}.form-row[data-v-44c4e6a1]{grid-template-columns:1fr}.data-table[data-v-44c4e6a1]{display:block;overflow-x:auto}}.feeders-page[data-v-9a1fdb69]{min-height:100vh;background:#c4c4c4}.feeders-main[data-v-9a1fdb69]{padding:2rem 0}.page-title-section[data-v-9a1fdb69]{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.page-title-section h1[data-v-9a1fdb69]{font-size:1.75rem;margin-bottom:.25rem}.page-title-section p[data-v-9a1fdb69]{color:#4e5d6a}.page-title-section .btn[data-v-9a1fdb69]{display:flex;align-items:center;gap:.5rem}.page-title-section .btn svg[data-v-9a1fdb69]{width:20px;height:20px}.loading-state[data-v-9a1fdb69],.error-state[data-v-9a1fdb69]{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:3rem;text-align:center;color:#4e5d6a}.spinner[data-v-9a1fdb69]{width:40px;height:40px;border:3px solid #e8eaed;border-top-color:#0070cc;border-radius:50%;margin:0 auto 1rem;animation:spin-9a1fdb69 1s linear infinite}@keyframes spin-9a1fdb69{to{transform:rotate(360deg)}}.search-bar[data-v-9a1fdb69]{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:#fff;border-radius:12px;box-shadow:0 1px 2px #0000000d;margin-bottom:1.5rem}.search-bar svg[data-v-9a1fdb69]{width:20px;height:20px;color:#818d99;flex-shrink:0}.search-bar input[data-v-9a1fdb69]{flex:1;border:none;font-size:1rem;color:#1e3a4c}.search-bar input[data-v-9a1fdb69]::placeholder{color:#818d99}.search-bar input[data-v-9a1fdb69]:focus{outline:none}.table-card[data-v-9a1fdb69]{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;margin-bottom:1.5rem}.data-table[data-v-9a1fdb69]{width:100%;border-collapse:collapse}.data-table th[data-v-9a1fdb69],.data-table td[data-v-9a1fdb69]{padding:1rem 1.5rem;text-align:left}.data-table th[data-v-9a1fdb69]{background:#e8eaed;font-weight:600;color:#4e5d6a;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.data-table td[data-v-9a1fdb69]{border-bottom:1px solid #e8eaed}.data-table tbody tr[data-v-9a1fdb69]{transition:background .15s ease}.data-table tbody tr[data-v-9a1fdb69]:hover{background:#e8eaed80}.data-table tbody tr:last-child td[data-v-9a1fdb69]{border-bottom:none}.feeder-id[data-v-9a1fdb69]{font-weight:600;color:#0070cc;font-family:monospace}.status-badge[data-v-9a1fdb69]{display:inline-block;padding:.25rem .5rem;font-size:.75rem;font-weight:600;border-radius:4px}.status-badge--loaded[data-v-9a1fdb69]{background:#43d1851a;color:#43d185}.status-badge--empty[data-v-9a1fdb69]{background:#818d991a;color:#818d99}.component-info[data-v-9a1fdb69]{display:flex;flex-direction:column;gap:2px}.component-name[data-v-9a1fdb69]{font-weight:500;color:#1e3a4c}.component-id-small[data-v-9a1fdb69]{font-size:.75rem;font-family:monospace;color:#4e5d6a}.no-component[data-v-9a1fdb69]{color:#818d99;font-style:italic}.actions-cell[data-v-9a1fdb69]{display:flex;gap:.25rem}.edit-btn[data-v-9a1fdb69],.delete-btn[data-v-9a1fdb69],.assign-btn[data-v-9a1fdb69],.unload-btn[data-v-9a1fdb69]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease}.edit-btn svg[data-v-9a1fdb69],.delete-btn svg[data-v-9a1fdb69],.assign-btn svg[data-v-9a1fdb69],.unload-btn svg[data-v-9a1fdb69]{width:18px;height:18px;color:#818d99}.assign-btn[data-v-9a1fdb69]:hover{background:#43d1851a}.assign-btn:hover svg[data-v-9a1fdb69]{color:#43d185}.unload-btn[data-v-9a1fdb69]:hover{background:#a67c521a}.unload-btn:hover svg[data-v-9a1fdb69]{color:#a67c52}.edit-btn[data-v-9a1fdb69]:hover{background:#15a8e21a}.edit-btn:hover svg[data-v-9a1fdb69]{color:#15a8e2}.delete-btn[data-v-9a1fdb69]:hover{background:#dc35451a}.delete-btn:hover svg[data-v-9a1fdb69]{color:#dc3545}.empty-state[data-v-9a1fdb69]{padding:3rem;text-align:center;color:#818d99}.empty-state svg[data-v-9a1fdb69]{width:48px;height:48px;margin-bottom:1rem;opacity:.5}.summary-stats[data-v-9a1fdb69]{display:flex;gap:1.5rem}.summary-stat[data-v-9a1fdb69]{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:1.5rem 2rem;text-align:center}.summary-stat__value[data-v-9a1fdb69]{display:block;font-size:1.5rem;font-weight:700;color:#0070cc}.summary-stat__label[data-v-9a1fdb69]{font-size:.875rem;color:#4e5d6a}.summary-stat--loaded .summary-stat__value[data-v-9a1fdb69]{color:#43d185}.summary-stat--empty .summary-stat__value[data-v-9a1fdb69]{color:#818d99}.modal-overlay[data-v-9a1fdb69]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-9a1fdb69]{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow:auto}.modal__header[data-v-9a1fdb69]{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid #e8eaed}.modal__header h2[data-v-9a1fdb69]{font-size:1.25rem}.modal__close[data-v-9a1fdb69]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:4px;cursor:pointer}.modal__close svg[data-v-9a1fdb69]{width:20px;height:20px;color:#4e5d6a}.modal__close[data-v-9a1fdb69]:hover{background:#e8eaed}.modal__body[data-v-9a1fdb69]{padding:2rem}.modal__footer[data-v-9a1fdb69]{display:flex;justify-content:flex-end;gap:1rem;padding-top:1.5rem;border-top:1px solid #e8eaed;margin-top:1.5rem}.form-select[data-v-9a1fdb69]{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:40px}.selected-component-preview[data-v-9a1fdb69]{margin-top:1.5rem;padding:1rem;background:#e8eaed;border-radius:8px}.selected-component-preview h4[data-v-9a1fdb69]{font-size:.875rem;color:#4e5d6a;margin-bottom:.5rem}.selected-component-preview .preview-details p[data-v-9a1fdb69]{margin:.25rem 0;font-size:.875rem}@media(max-width:768px){.page-title-section[data-v-9a1fdb69]{flex-direction:column;align-items:flex-start;gap:1rem}.summary-stats[data-v-9a1fdb69]{flex-direction:column}.data-table[data-v-9a1fdb69]{display:block;overflow-x:auto}}.projects-page[data-v-f1ac8d80]{min-height:100vh;background:#c4c4c4}.projects-main[data-v-f1ac8d80]{padding:2rem 0}.container[data-v-f1ac8d80]{max-width:1400px;margin:0 auto;padding:0 1.5rem}.page-title-section[data-v-f1ac8d80]{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.page-title-section h1[data-v-f1ac8d80]{font-size:1.75rem;margin-bottom:.25rem}.page-title-section p[data-v-f1ac8d80]{color:#4e5d6a}.search-bar[data-v-f1ac8d80]{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem 1.5rem;background:#fff;border-radius:8px;margin-bottom:1.5rem;box-shadow:0 2px 4px #0000000d}.search-bar svg[data-v-f1ac8d80]{width:20px;height:20px;color:#818d99}.search-bar input[data-v-f1ac8d80]{flex:1;border:none;outline:none;font-size:1rem}.search-bar input[data-v-f1ac8d80]::placeholder{color:#818d99}.projects-grid[data-v-f1ac8d80]{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem}.project-card[data-v-f1ac8d80]{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:1.5rem;cursor:pointer;transition:all .15s ease}.project-card[data-v-f1ac8d80]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.project-card__header[data-v-f1ac8d80]{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e8eaed}.project-card__title[data-v-f1ac8d80]{flex:1}.project-card__id[data-v-f1ac8d80]{font-size:1.125rem;font-weight:600;color:#0070cc;margin-bottom:.25rem}.project-card__name[data-v-f1ac8d80]{color:#4e5d6a;font-size:.875rem}.project-card__actions[data-v-f1ac8d80]{display:flex;gap:.25rem}.project-card__components h4[data-v-f1ac8d80]{font-size:.875rem;font-weight:600;color:#4e5d6a;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.5px}.components-list[data-v-f1ac8d80]{display:flex;flex-direction:column;gap:.5rem}.component-item[data-v-f1ac8d80]{display:flex;align-items:center;gap:1rem;padding:.5rem;background:#e8eaed;border-radius:4px}.component-item__info[data-v-f1ac8d80]{flex:1;display:flex;flex-direction:column;gap:.25rem}.component-item__id[data-v-f1ac8d80]{font-size:.875rem;font-weight:600;color:#0070cc;font-family:monospace}.component-item__name[data-v-f1ac8d80]{font-size:.75rem;color:#4e5d6a}.component-item__quantity[data-v-f1ac8d80]{font-size:.75rem;color:#0070cc;font-weight:600}.component-item__slot[data-v-f1ac8d80]{width:120px}.slot-input[data-v-f1ac8d80]{width:100%;padding:.25rem .5rem;border:1px solid #e8eaed;border-radius:4px;font-size:.875rem}.slot-input[data-v-f1ac8d80]:focus{outline:none;border-color:#0070cc}.icon-btn[data-v-f1ac8d80]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease}.icon-btn svg[data-v-f1ac8d80]{width:18px;height:18px;color:#818d99}.icon-btn[data-v-f1ac8d80]:hover{background:#15a8e21a}.icon-btn:hover svg[data-v-f1ac8d80]{color:#15a8e2}.icon-btn--danger[data-v-f1ac8d80]:hover{background:#dc35451a}.icon-btn--danger:hover svg[data-v-f1ac8d80]{color:#dc3545}.icon-btn--convert[data-v-f1ac8d80]:hover{background:#0070cc1a}.icon-btn--convert:hover svg[data-v-f1ac8d80]{color:#0070cc}.icon-btn--small[data-v-f1ac8d80]{width:24px;height:24px}.icon-btn--small svg[data-v-f1ac8d80]{width:14px;height:14px}.empty-components[data-v-f1ac8d80]{padding:1rem;text-align:center;color:#818d99;font-size:.875rem}.empty-state[data-v-f1ac8d80]{grid-column:1/-1;padding:3rem;text-align:center;color:#818d99}.empty-state svg[data-v-f1ac8d80]{width:48px;height:48px;margin-bottom:1rem;opacity:.5}.modal-overlay[data-v-f1ac8d80]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-f1ac8d80]{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow:auto}.modal__header[data-v-f1ac8d80]{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid #e8eaed}.modal__header h2[data-v-f1ac8d80]{font-size:1.25rem}.modal__close[data-v-f1ac8d80]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:4px;cursor:pointer}.modal__close svg[data-v-f1ac8d80]{width:20px;height:20px;color:#4e5d6a}.modal__close[data-v-f1ac8d80]:hover{background:#e8eaed}.modal__body[data-v-f1ac8d80]{padding:2rem}.modal__footer[data-v-f1ac8d80]{display:flex;justify-content:flex-end;gap:1rem;padding-top:1.5rem;border-top:1px solid #e8eaed;margin-top:1.5rem}.form-row[data-v-f1ac8d80]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group[data-v-f1ac8d80]{margin-bottom:1.5rem}.form-group label[data-v-f1ac8d80]{display:block;margin-bottom:.25rem;font-weight:500;color:#1e3a4c}.form-input[data-v-f1ac8d80]{width:100%;padding:1rem;border:1px solid #e8eaed;border-radius:4px;font-size:1rem}.form-input[data-v-f1ac8d80]:focus{outline:none;border-color:#0070cc}.form-input[data-v-f1ac8d80]:disabled{background:#e8eaed;color:#818d99;cursor:not-allowed}.form-hint[data-v-f1ac8d80]{display:block;margin-top:.25rem;font-size:.75rem;color:#818d99}.btn[data-v-f1ac8d80]{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:1rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn svg[data-v-f1ac8d80]{width:20px;height:20px}.btn--primary[data-v-f1ac8d80]{background:#0070cc;color:#fff}.btn--primary[data-v-f1ac8d80]:hover{background:#0060b0}.btn--outline[data-v-f1ac8d80]{background:transparent;color:#0070cc;border:1px solid #0070cc}.btn--outline[data-v-f1ac8d80]:hover{background:#0070cc1a}.loading-state[data-v-f1ac8d80],.error-state[data-v-f1ac8d80]{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1rem;padding:3rem;text-align:center}.spinner[data-v-f1ac8d80]{width:40px;height:40px;border:4px solid #e8eaed;border-top-color:#0070cc;border-radius:50%;animation:spin-f1ac8d80 1s linear infinite}@keyframes spin-f1ac8d80{to{transform:rotate(360deg)}}.project-detail-page[data-v-172b4c26]{min-height:100vh;background:linear-gradient(135deg,#c4c4c4,#d8d8d8)}.project-detail-main[data-v-172b4c26]{padding:0}.container[data-v-172b4c26]{max-width:1800px;margin:0 auto;padding:0 3rem}@media(max-width:1024px){.container[data-v-172b4c26]{padding:0 1.5rem}}.hero-section[data-v-172b4c26]{background:linear-gradient(135deg,#1e3a4c,#31556e);padding:3rem;margin-bottom:2rem;position:relative;overflow:hidden}.hero-section[data-v-172b4c26]:before{content:"";position:absolute;top:-50%;right:-10%;width:600px;height:600px;background:radial-gradient(circle,rgba(255,255,255,.08) 0%,transparent 70%);pointer-events:none}.back-btn-floating[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:.5rem 1.5rem;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:12px;color:#fff;font-weight:500;cursor:pointer;transition:all .15s ease;margin-bottom:2rem;position:relative;z-index:10}.back-btn-floating svg[data-v-172b4c26]{width:18px;height:18px}.back-btn-floating[data-v-172b4c26]:hover{background:#fff3;transform:translate(-4px)}.hero-layout[data-v-172b4c26]{display:grid;grid-template-columns:1fr 1fr;gap:3rem;position:relative;z-index:1}@media(max-width:1200px){.hero-layout[data-v-172b4c26]{grid-template-columns:1fr;gap:2rem}}.hero-left[data-v-172b4c26]{display:flex;flex-direction:column;gap:1.5rem}.project-id-badge[data-v-172b4c26]{display:inline-flex;padding:.25rem 1rem;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:12px;color:#fff;font-size:.875rem;font-weight:600;letter-spacing:.5px;width:fit-content}.project-title-editable[data-v-172b4c26]{font-size:3rem;font-weight:700;color:#fff;margin:0;padding:.5rem;border-radius:8px;transition:all .15s ease;cursor:text;min-height:1.2em}.project-title-editable[data-v-172b4c26]:hover{background:#ffffff0d}.project-title-editable[data-v-172b4c26]:focus{outline:none;background:#ffffff1a;box-shadow:0 0 0 3px #fff3}.project-title-editable[data-v-172b4c26]:empty:before{content:attr(data-placeholder);color:#ffffff80}@media(max-width:768px){.project-title-editable[data-v-172b4c26]{font-size:2rem}}.hero-stats-grid[data-v-172b4c26]{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media(max-width:768px){.hero-stats-grid[data-v-172b4c26]{grid-template-columns:1fr}}.stat-card[data-v-172b4c26]{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:12px;transition:all .15s ease}.stat-card[data-v-172b4c26]:hover{background:#ffffff26;transform:translateY(-2px);box-shadow:0 8px 24px #0003}.stat-card--accent[data-v-172b4c26]{border-color:#15a8e280}.stat-card--success[data-v-172b4c26]{border-color:#43d18580}.stat-card__icon[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#fff3;border-radius:8px;flex-shrink:0}.stat-card__icon svg[data-v-172b4c26]{width:24px;height:24px;color:#fff}.stat-card__content[data-v-172b4c26]{display:flex;flex-direction:column}.stat-card__value[data-v-172b4c26]{font-size:1.75rem;font-weight:700;color:#fff;line-height:1;margin-bottom:.25rem}.stat-card__label[data-v-172b4c26]{font-size:.75rem;color:#fffc;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.hero-right[data-v-172b4c26]{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:768px){.hero-right[data-v-172b4c26]{grid-template-columns:1fr}}.hero-pcb-card[data-v-172b4c26]{border-radius:12px;overflow:hidden;transition:all .15s ease}.hero-pcb-card[data-v-172b4c26]:has(.hero-pcb-placeholder){background:#fffffff2;box-shadow:0 8px 32px #0000004d}.hero-pcb-card[data-v-172b4c26]:has(.hero-pcb-placeholder):hover{box-shadow:0 12px 48px #0006;transform:translateY(-4px)}.hero-pcb-card__label[data-v-172b4c26]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hero-pcb-card__label span[data-v-172b4c26]{font-size:.875rem;font-weight:700;color:#1e3a4c;text-transform:uppercase;letter-spacing:.5px}.hero-pcb-card__image[data-v-172b4c26]{aspect-ratio:1;display:flex;align-items:center;justify-content:center;min-height:250px}.hero-pcb-card__image[data-v-172b4c26]:has(.hero-pcb-placeholder){background:#f8f9fa;padding:1rem}.hero-pcb-card__image img[data-v-172b4c26]{width:100%;height:100%;object-fit:cover;cursor:zoom-in;transition:transform .25s ease;border-radius:0 0 12px 12px}.hero-pcb-card__image img[data-v-172b4c26]:hover{transform:scale(1.02)}.hero-pcb-placeholder[data-v-172b4c26]{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#9ca3af;padding:2rem}.hero-pcb-placeholder svg[data-v-172b4c26]{width:48px;height:48px;opacity:.5}.hero-pcb-placeholder span[data-v-172b4c26]{font-size:.875rem;font-weight:500}.hero-upload-btn[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#0070cc;border-radius:4px;cursor:pointer;transition:all .15s ease}.hero-upload-btn svg[data-v-172b4c26]{width:20px;height:20px;color:#fff;stroke-width:1.5}.hero-upload-btn[data-v-172b4c26]:hover{background:#0065ba;opacity:.9}.content-grid[data-v-172b4c26]{display:grid;grid-template-columns:2fr 3fr;gap:2rem;margin-bottom:2rem}@media(max-width:1200px){.content-grid[data-v-172b4c26]{grid-template-columns:1fr}}.components-section[data-v-172b4c26]{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;padding:2rem;margin-bottom:2rem}.components-header[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #e8eaed}.components-header h2[data-v-172b4c26]{font-size:1.75rem;font-weight:700;color:#1e3a4c;margin:0;display:flex;align-items:center;gap:.5rem}.components-header h2[data-v-172b4c26]:before{content:"";display:block;width:4px;height:28px;background:linear-gradient(135deg,#0070cc,#15a8e2);border-radius:4px}.components-table[data-v-172b4c26]{overflow-x:auto}.data-table[data-v-172b4c26]{width:100%;border-collapse:collapse}.data-table th[data-v-172b4c26],.data-table td[data-v-172b4c26]{padding:1rem 1.5rem;text-align:left}.data-table th[data-v-172b4c26]{background:#e8eaed;font-weight:600;color:#4e5d6a;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.data-table td[data-v-172b4c26]{border-bottom:1px solid #e8eaed}.data-table tbody tr[data-v-172b4c26]{transition:background .15s ease}.data-table tbody tr[data-v-172b4c26]:hover{background:#e8eaed80}.data-table tbody tr:last-child td[data-v-172b4c26]{border-bottom:none}.component-id[data-v-172b4c26]{font-weight:600;color:#0070cc;font-family:monospace}.type-badge[data-v-172b4c26]{display:inline-block;padding:.25rem .5rem;font-size:.75rem;font-weight:500;background:#15a8e21a;color:#15a8e2;border-radius:4px}.quantity-cell .quantity-input[data-v-172b4c26]{width:80px;padding:.25rem .5rem;border:1px solid #e8eaed;border-radius:4px;font-size:1rem;font-weight:600;color:#0070cc;text-align:center;transition:all .15s ease}.quantity-cell .quantity-input[data-v-172b4c26]:focus{outline:none;border-color:#0070cc;box-shadow:0 0 0 3px #0070cc1a}.feeder-slot-cell .slot-input[data-v-172b4c26]{width:100px;padding:.25rem .5rem;border:1px solid #e8eaed;border-radius:4px;font-size:.875rem;transition:all .15s ease}.feeder-slot-cell .slot-input[data-v-172b4c26]:focus{outline:none;border-color:#0070cc;box-shadow:0 0 0 3px #0070cc1a}.feeder-slot-cell .slot-input[data-v-172b4c26]::placeholder{color:#818d99}.actions-cell[data-v-172b4c26]{width:60px}.delete-btn[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;padding:.25rem;background:transparent;border:none;border-radius:4px;color:#dc3545;cursor:pointer;transition:all .15s ease}.delete-btn svg[data-v-172b4c26]{width:18px;height:18px}.delete-btn[data-v-172b4c26]:hover{background:#dc35451a}.loaded-cell[data-v-172b4c26]{text-align:center;width:80px}.status-badge[data-v-172b4c26]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.status-badge svg[data-v-172b4c26]{width:14px;height:14px}.status-badge.status-badge--success[data-v-172b4c26]{background:#43d1851a;color:#43d185;border:1px solid rgba(67,209,133,.2)}.status-badge.status-badge--muted[data-v-172b4c26]{background:transparent;color:#4e5d6a;border:none}.empty-state-inline[data-v-172b4c26]{padding:3rem;text-align:center;color:#818d99}.empty-state-inline p[data-v-172b4c26]{font-size:1rem}.loading-state[data-v-172b4c26],.error-state[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1rem;padding:3rem;text-align:center}.spinner[data-v-172b4c26]{width:40px;height:40px;border:4px solid #e8eaed;border-top-color:#0070cc;border-radius:50%;animation:spin-172b4c26 1s linear infinite}@keyframes spin-172b4c26{to{transform:rotate(360deg)}}.btn[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:1rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn svg[data-v-172b4c26]{width:18px;height:18px}.btn[data-v-172b4c26]:disabled{opacity:.5;cursor:not-allowed}.btn--primary[data-v-172b4c26]{background:#0070cc;color:#fff}.btn--primary[data-v-172b4c26]:hover:not(:disabled){background:#0d3a5c}.btn--outline[data-v-172b4c26]{background:transparent;color:#0070cc;border:1px solid #0070cc}.btn--outline[data-v-172b4c26]:hover{background:#0070cc1a}.modal-overlay[data-v-172b4c26]{position:fixed;inset:0;background:#1e3a4ccc;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem}.modal[data-v-172b4c26]{background:#fff;border-radius:8px;max-width:500px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #1e3a4c4d}.modal-header[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid #e8eaed}.modal-header h3[data-v-172b4c26]{font-size:1.25rem;margin:0;color:#1e3a4c}.modal-header .close-btn[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;padding:.25rem;background:transparent;border:none;color:#818d99;cursor:pointer;border-radius:4px;transition:all .15s ease}.modal-header .close-btn svg[data-v-172b4c26]{width:20px;height:20px}.modal-header .close-btn[data-v-172b4c26]:hover{background:#e8eaed;color:#1e3a4c}.modal-body[data-v-172b4c26]{padding:2rem;overflow-y:auto}.modal-footer[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;justify-content:flex-end;gap:1rem;padding:1.5rem 2rem;border-top:1px solid #e8eaed}.form-group[data-v-172b4c26]{margin-bottom:1.5rem}.form-group[data-v-172b4c26]:last-child{margin-bottom:0}.form-group label[data-v-172b4c26]{display:block;margin-bottom:.25rem;font-weight:500;color:#1e3a4c;font-size:.875rem}.form-input[data-v-172b4c26],.form-select[data-v-172b4c26]{width:100%;padding:.5rem 1rem;border:1px solid #e8eaed;border-radius:4px;font-size:1rem;transition:all .15s ease}.form-input[data-v-172b4c26]:focus,.form-select[data-v-172b4c26]:focus{outline:none;border-color:#0070cc;box-shadow:0 0 0 3px #0070cc1a}.form-input[data-v-172b4c26]::placeholder,.form-select[data-v-172b4c26]::placeholder{color:#818d99}.form-select[data-v-172b4c26]{background:#fff;cursor:pointer}.details-card[data-v-172b4c26]{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;padding:2rem;margin-bottom:2rem;transition:all .15s ease}.details-card[data-v-172b4c26]:hover{box-shadow:0 8px 32px #0000001f}.details-header[data-v-172b4c26]{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #e8eaed}.details-header h2[data-v-172b4c26]{font-size:1.75rem;font-weight:700;color:#1e3a4c;margin:0;display:flex;align-items:center;gap:.5rem}.details-header h2[data-v-172b4c26]:before{content:"";display:block;width:4px;height:28px;background:linear-gradient(135deg,#0070cc,#15a8e2);border-radius:4px}.edit-grid[data-v-172b4c26]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:2rem}.form-group-inline[data-v-172b4c26]{display:flex;flex-direction:column;gap:.25rem}.form-group-inline label[data-v-172b4c26]{font-size:.75rem;color:#4e5d6a;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.form-input-inline[data-v-172b4c26]{padding:1rem;border:2px solid transparent;border-radius:8px;background:#f8f9fa;color:#1e3a4c;font-size:1rem;font-weight:500;transition:all .15s ease}.form-input-inline[data-v-172b4c26]:hover{background:#e9ecef;border-color:#e8eaed}.form-input-inline[data-v-172b4c26]:focus{outline:none;border-color:#0070cc;background:#fff;box-shadow:0 0 0 4px #0070cc1a}.form-input-inline[data-v-172b4c26]::placeholder{color:#adb5bd}.cost-display .cost-value[data-v-172b4c26]{padding:1rem;background:linear-gradient(135deg,#0070cc1a,#15a8e21a);border:2px solid #0070cc;border-radius:8px;color:#0070cc;font-size:1.5rem;font-weight:800;text-align:center;box-shadow:0 2px 8px #0070cc1a}.files-section[data-v-172b4c26]{margin-top:2rem;padding-top:2rem;border-top:2px solid #e8eaed}.files-section h3[data-v-172b4c26]{font-size:1.25rem;font-weight:700;color:#1e3a4c;margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem}.files-section h3[data-v-172b4c26]:before{content:"";display:block;width:4px;height:24px;background:linear-gradient(135deg,#0070cc,#15a8e2);border-radius:4px}.files-compact-grid[data-v-172b4c26]{display:flex;flex-direction:column;gap:1rem}.file-row[data-v-172b4c26]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:#f8f9fa;border:2px solid transparent;border-radius:8px;transition:all .15s ease}.file-row[data-v-172b4c26]:hover{border-color:#0070cc;background:#fff;box-shadow:0 2px 12px #0070cc1a;transform:translate(4px)}.file-info[data-v-172b4c26]{display:flex;align-items:center;gap:1rem;flex:1}.file-info svg[data-v-172b4c26]{width:20px;height:20px;color:#0070cc;flex-shrink:0}.file-info .file-name[data-v-172b4c26]{font-size:1rem;font-weight:500;color:#1e3a4c}.file-info .file-status[data-v-172b4c26]{font-size:.875rem;color:#10b981;font-weight:500;margin-left:.5rem}.file-actions-compact[data-v-172b4c26]{display:flex;gap:.5rem}.btn-icon[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:4px;background:#fff;border:1.5px solid #e8eaed;color:#1e3a4c;cursor:pointer;transition:all .15s ease;text-decoration:none}.btn-icon svg[data-v-172b4c26]{width:20px;height:20px;stroke-width:1.5}.btn-icon[data-v-172b4c26]:hover,.btn-icon.upload[data-v-172b4c26]{background:#0070cc;border-color:#0070cc;color:#fff}.btn-icon.upload[data-v-172b4c26]:hover{opacity:.9}.form-row[data-v-172b4c26]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.converted-files-section[data-v-172b4c26]{margin-top:1.5rem;padding-top:1.5rem;border-top:2px solid #e8eaed}.converted-files-section h4[data-v-172b4c26]{font-size:.875rem;font-weight:700;color:#1e3a4c;text-transform:uppercase;letter-spacing:.5px;margin-bottom:1rem}.converted-files-list[data-v-172b4c26]{display:flex;flex-direction:column;gap:.5rem}.converted-file-item[data-v-172b4c26]{display:flex;align-items:center;gap:1rem;padding:1rem;background:#43d1850d;border:1.5px solid rgba(67,209,133,.2);border-radius:8px}.converted-file-item svg[data-v-172b4c26]:first-child{width:20px;height:20px;color:#43d185}.converted-file-item .file-name[data-v-172b4c26]{flex:1;font-size:.875rem;font-weight:500;color:#1e3a4c}.btn-download-sm[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:.25rem 1rem;background:#43d185;color:#fff;border:none;border-radius:4px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s ease;text-decoration:none}.btn-download-sm svg[data-v-172b4c26]{width:16px;height:16px}.btn-download-sm[data-v-172b4c26]:hover{opacity:.9}.convert-section[data-v-172b4c26]{margin-top:2rem;padding-top:2rem;border-top:2px solid #e8eaed;display:flex;justify-content:center}.btn-convert[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 2rem;background:#0070cc;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s ease;box-shadow:0 2px 8px #0070cc33}.btn-convert svg[data-v-172b4c26]{width:20px;height:20px}.btn-convert[data-v-172b4c26]:hover{background:#0065ba;transform:translateY(-2px);box-shadow:0 4px 12px #0070cc4d}.btn-convert[data-v-172b4c26]:active{transform:translateY(0)}.modal-large[data-v-172b4c26]{max-width:1200px;width:90vw}.bom-viewer .table-wrapper[data-v-172b4c26]{overflow-x:auto;border-radius:8px;border:2px solid #dee2e6;max-height:55vh;overflow-y:auto;box-shadow:0 2px 8px #00000014}.bom-info-bar[data-v-172b4c26]{display:flex;align-items:center;gap:2rem;padding:1.5rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:8px;margin-bottom:1.5rem;box-shadow:0 2px 4px #0000000d}.bom-stat[data-v-172b4c26]{display:flex;align-items:center;gap:.5rem;color:#1e3a4c;font-size:.875rem}.bom-stat svg[data-v-172b4c26]{width:20px;height:20px;color:#0070cc}.bom-stat strong[data-v-172b4c26]{color:#0070cc;font-size:1.125rem}.bom-search[data-v-172b4c26]{display:flex;align-items:center;gap:.5rem;margin-left:auto;background:#fff;padding:.25rem 1rem;border-radius:8px;border:2px solid #dee2e6;transition:all .15s ease}.bom-search[data-v-172b4c26]:focus-within{border-color:#0070cc;box-shadow:0 0 0 3px #0070cc1a}.bom-search svg[data-v-172b4c26]{width:18px;height:18px;color:#4e5d6a}.bom-search .search-input[data-v-172b4c26]{border:none;outline:none;font-size:.875rem;width:250px;background:transparent}.bom-search .search-input[data-v-172b4c26]::placeholder{color:#4e5d6a}.no-results[data-v-172b4c26]{padding:2rem;text-align:center;color:#4e5d6a;font-style:italic}.bom-table[data-v-172b4c26]{width:100%;border-collapse:collapse;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#fff}.bom-table thead[data-v-172b4c26]{background:linear-gradient(180deg,#f8f9fa,#e9ecef);color:#1e3a4c;position:sticky;top:0;z-index:10;box-shadow:0 2px 4px #0000001a}.bom-table thead th[data-v-172b4c26]{padding:1rem 1.5rem;text-align:left;font-weight:700;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px;border-right:1px solid #dee2e6;border-bottom:2px solid #0070cc;white-space:nowrap}.bom-table thead th[data-v-172b4c26]:first-child{padding-left:2rem;width:50px}.bom-table thead th[data-v-172b4c26]:last-child{border-right:none;padding-right:2rem}.bom-table tbody tr[data-v-172b4c26]{border-bottom:1px solid #e9ecef;transition:background-color .15s ease}.bom-table tbody tr[data-v-172b4c26]:nth-child(2n){background:#f8f9fa}.bom-table tbody tr[data-v-172b4c26]:hover{background:#0070cc0d}.bom-table tbody tr[data-v-172b4c26]:last-child{border-bottom:2px solid #e8eaed}.bom-table tbody td[data-v-172b4c26]{padding:1rem 1.5rem;font-size:.875rem;color:#212529;border-right:1px solid #e9ecef;vertical-align:middle;line-height:1.5}.bom-table tbody td[data-v-172b4c26]:first-child{padding-left:2rem;font-weight:600;color:#4e5d6a;text-align:center;background:#f8f9fa}.bom-table tbody td[data-v-172b4c26]:last-child{border-right:none;padding-right:2rem}.bom-table tbody td[data-v-172b4c26]{word-break:break-word;max-width:300px}.btn-secondary[data-v-172b4c26]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.5rem;background:#fff;color:#1e3a4c;border:2px solid #e8eaed;border-radius:8px;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-secondary[data-v-172b4c26]:hover{background:#f5f6f7;border-color:#1e3a4c}.placement-converter[data-v-dc707df5]{min-height:100vh;background:linear-gradient(135deg,#224154,#1e3a4c);padding:2rem}.converter-header[data-v-dc707df5]{margin-bottom:2rem;color:#fff}.converter-header h1[data-v-dc707df5]{font-size:2rem;margin:1rem 0;font-weight:700}.converter-header .project-name[data-v-dc707df5]{color:#fffc;font-size:1.125rem;margin-bottom:1.5rem}.converter-header .converter-info[data-v-dc707df5]{background:#ffffff1a;border-radius:8px;padding:1rem 1.5rem;margin-top:1.5rem;border-left:4px solid #15a8e2}.converter-header .converter-info p[data-v-dc707df5]{color:#ffffffe6;font-size:.875rem;margin:.25rem 0}.converter-header .converter-info p strong[data-v-dc707df5]{color:#fff;font-weight:600}.converter-header .converter-info p.note[data-v-dc707df5]{color:#15a8e2;font-weight:500;margin-top:.5rem}.btn-back[data-v-dc707df5]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:8px;cursor:pointer;transition:all .15s ease;font-size:.875rem;margin-bottom:1rem}.btn-back svg[data-v-dc707df5]{width:18px;height:18px}.btn-back[data-v-dc707df5]:hover{background:#fff3}.converter-content[data-v-dc707df5]{max-width:1400px;margin:0 auto}.file-selection-card[data-v-dc707df5]{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 20px #0000001a;margin-bottom:2rem}.file-selection-card h3[data-v-dc707df5]{margin-bottom:.5rem;color:#1e3a4c;font-size:1.25rem}.file-selection-card .card-description[data-v-dc707df5]{color:#4e5d6a;font-size:.875rem;margin-bottom:1.5rem;line-height:1.5}.file-checkboxes[data-v-dc707df5]{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.checkbox-item[data-v-dc707df5]{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f5f6f7;border-radius:8px;cursor:pointer;transition:all .15s ease}.checkbox-item[data-v-dc707df5]:hover{background:#e8eaed}.checkbox-item input[type=checkbox][data-v-dc707df5]{width:20px;height:20px;cursor:pointer}.checkbox-item span[data-v-dc707df5]:first-of-type{font-weight:600;color:#1e3a4c}.checkbox-item .file-path[data-v-dc707df5]{margin-left:auto;font-size:.875rem;color:#4e5d6a}.button-group[data-v-dc707df5]{display:flex;gap:1rem;width:100%}.btn-preview-action[data-v-dc707df5],.btn-convert-action[data-v-dc707df5]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .15s ease;flex:1}.btn-preview-action svg[data-v-dc707df5],.btn-convert-action svg[data-v-dc707df5]{width:20px;height:20px}.btn-preview-action[data-v-dc707df5]:disabled,.btn-convert-action[data-v-dc707df5]:disabled{opacity:.5;cursor:not-allowed}.btn-preview-action[data-v-dc707df5]{background:#fff;color:#0070cc;border:2px solid #0070cc}.btn-preview-action[data-v-dc707df5]:hover:not(:disabled){background:#0070cc1a}.btn-convert-action[data-v-dc707df5]{background:#0070cc;color:#fff}.btn-convert-action[data-v-dc707df5]:hover:not(:disabled){background:#0065ba}.error-banner[data-v-dc707df5]{display:flex;align-items:flex-start;gap:1rem;padding:1.5rem;background:#dc35451a;border:2px solid #dc3545;border-radius:12px;margin-top:1.5rem;color:#dc3545}.error-banner svg[data-v-dc707df5]:first-child{width:24px;height:24px;flex-shrink:0;margin-top:2px}.error-banner div[data-v-dc707df5]{flex:1}.error-banner div strong[data-v-dc707df5]{display:block;font-size:1rem;margin-bottom:.25rem}.error-banner div p[data-v-dc707df5]{font-size:.875rem;color:#c82333;margin:0}.error-banner .close-error[data-v-dc707df5]{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:4px;cursor:pointer;flex-shrink:0}.error-banner .close-error svg[data-v-dc707df5]{width:18px;height:18px}.error-banner .close-error[data-v-dc707df5]:hover{background:#dc354533}.converted-files[data-v-dc707df5]{display:flex;flex-direction:column;gap:2rem}.view-toggle[data-v-dc707df5]{display:flex;gap:.5rem;padding:.5rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;width:fit-content;margin:0 auto 1.5rem}.toggle-btn[data-v-dc707df5]{padding:.5rem 1.5rem;background:transparent;border:none;border-radius:8px;font-size:.875rem;font-weight:600;color:#4e5d6a;cursor:pointer;transition:all .15s ease}.toggle-btn.active[data-v-dc707df5]{background:#0070cc;color:#fff}.toggle-btn[data-v-dc707df5]:not(.active):hover{background:#e8eaed}.converted-file-card[data-v-dc707df5]{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 20px #0000001a}.file-card-header[data-v-dc707df5]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e8eaed}.file-card-header>div[data-v-dc707df5]:first-child{display:flex;align-items:center;gap:1rem}.file-card-header h3[data-v-dc707df5]{color:#1e3a4c;font-size:1.25rem;margin:0}.file-type-badge[data-v-dc707df5]{padding:.25rem 1rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.file-type-badge.original[data-v-dc707df5]{background:#15a8e21a;color:#15a8e2;border:1px solid #15a8e2}.file-type-badge.converted[data-v-dc707df5]{background:#43d1851a;color:#43d185;border:1px solid #43d185}.btn-download[data-v-dc707df5]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1.5rem;background:#15a8e2;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-download svg[data-v-dc707df5]{width:18px;height:18px}.btn-download[data-v-dc707df5]:hover{background:#1190c4}.table-wrapper[data-v-dc707df5]{overflow-x:auto;border-radius:8px;border:2px solid #e8eaed;margin-bottom:1rem}.csv-table[data-v-dc707df5]{width:100%;border-collapse:collapse;min-width:600px}.csv-table thead[data-v-dc707df5]{background:#1e3a4c;color:#fff}.csv-table thead th[data-v-dc707df5]{padding:.5rem;text-align:left;font-weight:600;font-size:.875rem;white-space:nowrap}.csv-table tbody tr[data-v-dc707df5]{border-bottom:1px solid #e8eaed}.csv-table tbody tr[data-v-dc707df5]:hover{background:#f5f6f7}.csv-table tbody tr[data-v-dc707df5]:last-child{border-bottom:none}.csv-table tbody td[data-v-dc707df5]{padding:0}.csv-table .action-col[data-v-dc707df5]{width:60px;text-align:center}.header-input[data-v-dc707df5],.cell-input[data-v-dc707df5]{width:100%;padding:.5rem 1rem;border:none;background:transparent;font-family:inherit;font-size:.875rem}.header-input[data-v-dc707df5]:focus,.cell-input[data-v-dc707df5]:focus{outline:none;background:#0070cc0d}.header-input[data-v-dc707df5]{color:#fff;font-weight:600}.header-input[data-v-dc707df5]:focus{background:#ffffff1a}.btn-delete-row[data-v-dc707df5]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;color:#dc3545;cursor:pointer;transition:all .15s ease;border-radius:4px;margin:0 auto}.btn-delete-row svg[data-v-dc707df5]{width:18px;height:18px}.btn-delete-row[data-v-dc707df5]:hover{background:#dc35451a}.btn-add-row[data-v-dc707df5]{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border:2px dashed #e8eaed;color:#1e3a4c;border-radius:8px;font-weight:600;cursor:pointer;transition:all .15s ease;width:100%}.btn-add-row svg[data-v-dc707df5]{width:18px;height:18px}.btn-add-row[data-v-dc707df5]:hover{border-color:#0070cc;color:#0070cc;background:#0070cc0d}.empty-state[data-v-dc707df5]{background:#fff;border-radius:12px;padding:3rem;text-align:center;color:#4e5d6a}.empty-state svg[data-v-dc707df5]{width:64px;height:64px;margin-bottom:1.5rem;opacity:.5}.empty-state p[data-v-dc707df5]{font-size:1.125rem}.machine-page[data-v-12e3dab0]{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.container[data-v-12e3dab0]{max-width:1600px;margin:0 auto;padding:2rem}.page-header[data-v-12e3dab0]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.page-header h1[data-v-12e3dab0]{color:#1e3a4c;font-size:2rem;font-weight:700;margin:0 0 .25rem}.page-header .subtitle[data-v-12e3dab0]{color:#4e5d6a;font-size:1rem;margin:0}.page-header .btn[data-v-12e3dab0]{display:flex;align-items:center;gap:.5rem}.page-header .btn svg[data-v-12e3dab0]{width:18px;height:18px}.stats-grid[data-v-12e3dab0]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card[data-v-12e3dab0]{background:#fff;border-radius:12px;padding:1.5rem;display:flex;align-items:center;gap:1rem;box-shadow:0 2px 8px #0000001a;transition:transform .15s ease,box-shadow .15s ease}.stat-card[data-v-12e3dab0]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.stat-card .stat-icon[data-v-12e3dab0]{width:48px;height:48px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#0070cc1a}.stat-card .stat-icon svg[data-v-12e3dab0]{width:24px;height:24px;color:#0070cc}.stat-card .stat-content[data-v-12e3dab0]{flex:1}.stat-card .stat-value[data-v-12e3dab0]{font-size:1.75rem;font-weight:700;color:#1e3a4c;line-height:1;margin-bottom:.25rem}.stat-card .stat-label[data-v-12e3dab0]{font-size:.875rem;color:#4e5d6a;font-weight:500}.stat-card.stat-card--success .stat-icon[data-v-12e3dab0]{background:#43d1851a}.stat-card.stat-card--success .stat-icon svg[data-v-12e3dab0]{color:#43d185}.stat-card.stat-card--warning .stat-icon[data-v-12e3dab0]{background:#a67c521a}.stat-card.stat-card--warning .stat-icon svg[data-v-12e3dab0]{color:#a67c52}.stat-card.stat-card--accent .stat-icon[data-v-12e3dab0]{background:#15a8e21a}.stat-card.stat-card--accent .stat-icon svg[data-v-12e3dab0]{color:#15a8e2}.controls-bar[data-v-12e3dab0]{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}.filter-group[data-v-12e3dab0]{display:flex;gap:.5rem;background:#fff;padding:.25rem;border-radius:8px;box-shadow:0 2px 4px #0000000d}.filter-btn[data-v-12e3dab0]{padding:.5rem 1.5rem;border:none;background:transparent;color:#4e5d6a;font-size:.875rem;font-weight:500;border-radius:4px;cursor:pointer;transition:all .15s ease}.filter-btn[data-v-12e3dab0]:hover{background:#0070cc0d;color:#0070cc}.filter-btn.active[data-v-12e3dab0]{background:#0070cc;color:#fff}.search-box[data-v-12e3dab0]{display:flex;align-items:center;gap:.5rem;background:#fff;padding:.5rem 1rem;border-radius:8px;border:2px solid transparent;box-shadow:0 2px 4px #0000000d;transition:all .15s ease;min-width:300px}.search-box[data-v-12e3dab0]:focus-within{border-color:#0070cc;box-shadow:0 0 0 3px #0070cc1a}.search-box svg[data-v-12e3dab0]{width:18px;height:18px;color:#4e5d6a}.search-box .search-input[data-v-12e3dab0]{flex:1;border:none;outline:none;font-size:.875rem;background:transparent}.search-box .search-input[data-v-12e3dab0]::placeholder{color:#4e5d6a}.machine-layout[data-v-12e3dab0]{display:flex;flex-direction:column;gap:2rem;padding:1.5rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.machine-row[data-v-12e3dab0]{position:relative}.machine-row.machine-row--back[data-v-12e3dab0]{border:3px solid #2a4d63;padding:1.5rem;border-radius:12px;background:linear-gradient(135deg,#f8f9fa,#e9ecef)}.machine-row.machine-row--front[data-v-12e3dab0]{border:3px solid #0070cc;padding:1.5rem;border-radius:12px;background:linear-gradient(135deg,#fff,#f8f9fa)}.row-label[data-v-12e3dab0]{position:absolute;top:-12px;left:1.5rem;background:#fff;padding:.25rem 1rem;border-radius:8px;font-weight:700;font-size:.875rem;color:#1e3a4c;box-shadow:0 2px 4px #0000001a}.row-content[data-v-12e3dab0]{display:flex;gap:1.5rem;align-items:flex-start}.ports-row[data-v-12e3dab0]{display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:.5rem;flex:1}.port-slot[data-v-12e3dab0]{position:relative;aspect-ratio:1;background:#fff;border:2px solid #dee2e6;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;padding:.25rem}.port-slot[data-v-12e3dab0]:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026;border-color:#0070cc}.port-slot.loaded[data-v-12e3dab0]{border-color:#43d185;border-width:3px;background:linear-gradient(135deg,#43d1850d,#43d1851a)}.port-number[data-v-12e3dab0]{font-size:.7rem;font-weight:700;color:#1e3a4c;margin-bottom:2px}.port-indicator[data-v-12e3dab0]{display:flex;align-items:center;justify-content:center;width:20px;height:20px}.port-indicator svg[data-v-12e3dab0]{width:100%;height:100%}.port-indicator.loaded-indicator[data-v-12e3dab0]{color:#43d185}.port-indicator.empty-indicator[data-v-12e3dab0]{color:#4e5d6a;opacity:.3}.quick-unload[data-v-12e3dab0]{position:absolute;top:2px;right:2px;background:#dc3545e6;color:#fff;border:none;border-radius:50%;width:16px;height:16px;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease}.port-slot:hover .quick-unload[data-v-12e3dab0]{opacity:1}.quick-unload[data-v-12e3dab0]:hover{background:#dc3545;transform:scale(1.1)}.ic-tray-area[data-v-12e3dab0]{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#a67c521a,#a67c5233);border:3px dashed #a67c52;border-radius:12px;padding:1.5rem;min-width:200px;min-height:150px}.ic-tray-icon svg[data-v-12e3dab0]{width:64px;height:64px;color:#a67c52;margin-bottom:.5rem}.ic-tray-label[data-v-12e3dab0]{font-size:1rem;font-weight:700;color:#1e3a4c;text-align:center}.ports-grid[data-v-12e3dab0]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.port-card[data-v-12e3dab0]{background:#fff;border-radius:8px;padding:1rem;border:2px solid #e9ecef;transition:all .15s ease}.port-card[data-v-12e3dab0]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.port-card.loaded[data-v-12e3dab0]{border-color:#43d185;background:linear-gradient(135deg,#fff,#43d18505)}.port-header[data-v-12e3dab0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:2px solid #f0f0f0}.port-number-large[data-v-12e3dab0]{font-weight:700;color:#1e3a4c;font-size:.875rem}.unload-btn[data-v-12e3dab0]{background:#dc35451a;border:none;padding:.25rem;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.unload-btn svg[data-v-12e3dab0]{width:14px;height:14px;color:#dc3545}.unload-btn[data-v-12e3dab0]:hover{background:#dc3545}.unload-btn:hover svg[data-v-12e3dab0]{color:#fff}.port-content[data-v-12e3dab0]{display:flex;flex-direction:column;gap:.25rem}.info-row[data-v-12e3dab0]{display:flex;justify-content:space-between;font-size:.75rem;gap:.25rem}.info-row .label[data-v-12e3dab0]{color:#4e5d6a;font-weight:500}.info-row .value[data-v-12e3dab0]{color:#1e3a4c;font-weight:600;text-align:right;word-break:break-word}.port-empty[data-v-12e3dab0]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 0;color:#4e5d6a}.port-empty svg[data-v-12e3dab0]{width:32px;height:32px;margin-bottom:.25rem;opacity:.3}.port-empty span[data-v-12e3dab0]{font-size:.75rem;font-weight:500}.loading-state[data-v-12e3dab0],.error-state[data-v-12e3dab0],.empty-state[data-v-12e3dab0]{text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.spinner[data-v-12e3dab0]{border:3px solid rgba(0,112,204,.1);border-top-color:#0070cc;border-radius:50%;width:40px;height:40px;animation:spin-12e3dab0 .8s linear infinite;margin:0 auto 1rem}@keyframes spin-12e3dab0{to{transform:rotate(360deg)}}.students-page[data-v-24eca871]{min-height:100vh;background:#c4c4c4;display:flex;flex-direction:column}.page-main[data-v-24eca871]{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%}.page-header[data-v-24eca871]{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.page-header__left[data-v-24eca871]{display:flex;align-items:baseline;gap:1rem}.page-header__right[data-v-24eca871]{display:flex;align-items:center;gap:1rem}.page-title[data-v-24eca871]{font-size:1.75rem;font-weight:700;color:#1e3a4c;margin:0}.page-subtitle[data-v-24eca871]{font-size:.9rem;color:#818d99}.search-box[data-v-24eca871]{position:relative;display:flex;align-items:center}.search-box svg[data-v-24eca871]{position:absolute;left:.5rem;width:18px;height:18px;color:#818d99;pointer-events:none}.search-input[data-v-24eca871]{padding:.5rem 1rem .5rem 2.25rem;border:1px solid #e8eaed;border-radius:8px;font-size:.9rem;background:#fff;color:#1e3a4c;width:240px;transition:border-color .15s ease}.search-input[data-v-24eca871]:focus{outline:none;border-color:#15a8e2}.btn[data-v-24eca871]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.5rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;border:none;transition:all .15s ease}.btn svg[data-v-24eca871]{width:18px;height:18px}.btn--primary[data-v-24eca871]{background:#15a8e2;color:#fff}.btn--primary[data-v-24eca871]:hover{background:#1190c4}.btn--primary[data-v-24eca871]:disabled{opacity:.6;cursor:not-allowed}.btn--ghost[data-v-24eca871]{background:transparent;color:#4e5d6a;border:1px solid #e8eaed}.btn--ghost[data-v-24eca871]:hover{background:#e8eaed}.btn--export[data-v-24eca871]{background:transparent;color:#1e3a4c;border:1px solid rgba(30,58,76,.3)}.btn--export[data-v-24eca871]:hover:not(:disabled){background:#1e3a4c0f;border-color:#1e3a4c}.btn--export[data-v-24eca871]:disabled{opacity:.45;cursor:not-allowed}.btn-spinner[data-v-24eca871]{display:inline-block;width:15px;height:15px;border:2px solid rgba(30,58,76,.25);border-top-color:#1e3a4c;border-radius:50%;animation:spin-24eca871 .7s linear infinite;flex-shrink:0}.state-message[data-v-24eca871]{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:5rem;color:#818d99;font-size:1rem}.state-message svg[data-v-24eca871]{width:48px;height:48px;opacity:.4}.state-message--error[data-v-24eca871]{color:#dc3545}.state-message--error svg[data-v-24eca871]{opacity:1}.spinner[data-v-24eca871]{width:36px;height:36px;border:3px solid #e8eaed;border-top-color:#15a8e2;border-radius:50%;animation:spin-24eca871 .7s linear infinite}@keyframes spin-24eca871{to{transform:rotate(360deg)}}.students-grid[data-v-24eca871]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.student-card[data-v-24eca871]{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 1px 2px #0000000d;border:2px solid transparent;cursor:pointer;display:flex;align-items:center;gap:1rem;transition:all .25s ease}.student-card[data-v-24eca871]:hover{box-shadow:0 4px 6px #0000001a;transform:translateY(-2px);border-color:#15a8e2}.student-card--active[data-v-24eca871]{border-color:#43d185;background:linear-gradient(135deg,#fff,#43d1850a)}.student-card__avatar[data-v-24eca871]{display:flex;align-items:center;justify-content:center;width:52px;height:52px;min-width:52px;background:#1e3a4c;color:#fff;font-size:1.1rem;font-weight:700;border-radius:50%;text-transform:uppercase}.student-card--active .student-card__avatar[data-v-24eca871]{background:#43d185}.student-card__info[data-v-24eca871]{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.student-card__name[data-v-24eca871]{font-weight:600;font-size:1rem;color:#1e3a4c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-card__number[data-v-24eca871]{font-size:.8rem;color:#818d99;font-family:monospace}.student-card__email[data-v-24eca871]{font-size:.8rem;color:#818d99;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-card__status[data-v-24eca871]{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.student-card__since[data-v-24eca871]{font-size:.75rem;color:#43d185}.badge[data-v-24eca871]{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:600}.badge__dot[data-v-24eca871]{width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse-dot-24eca871 1.5s ease-in-out infinite}.badge--in[data-v-24eca871]{background:#43d1851f;color:#2cb56c}.badge--out[data-v-24eca871]{background:#e8eaed;color:#818d99}@keyframes pulse-dot-24eca871{0%,to{opacity:1}50%{opacity:.4}}.modal-overlay[data-v-24eca871]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal[data-v-24eca871]{background:#fff;border-radius:16px;width:100%;max-width:500px;box-shadow:0 20px 40px #0003}.modal__header[data-v-24eca871]{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid #e8eaed}.modal__header h2[data-v-24eca871]{font-size:1.25rem;font-weight:700;color:#1e3a4c;margin:0}.modal__close[data-v-24eca871]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:8px;cursor:pointer;color:#818d99;transition:all .15s ease}.modal__close svg[data-v-24eca871]{width:18px;height:18px}.modal__close[data-v-24eca871]:hover{background:#e8eaed;color:#1e3a4c}.modal__body[data-v-24eca871]{padding:2rem;display:flex;flex-direction:column;gap:1rem}.modal__footer[data-v-24eca871]{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-top:1px solid #e8eaed}.form-row[data-v-24eca871]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group[data-v-24eca871]{display:flex;flex-direction:column;gap:.25rem}.form-group label[data-v-24eca871]{font-size:.85rem;font-weight:600;color:#4e5d6a}.form-input[data-v-24eca871]{padding:.5rem 1rem;border:1px solid #e8eaed;border-radius:8px;font-size:.9rem;color:#1e3a4c;background:#fff;transition:border-color .15s ease}.form-input[data-v-24eca871]:focus{outline:none;border-color:#15a8e2}.form-error[data-v-24eca871]{background:#dc354514;border:1px solid rgba(220,53,69,.3);color:#dc3545;padding:.5rem 1rem;border-radius:8px;font-size:.875rem}.detail-page[data-v-7afa8140]{min-height:100vh;background:#c4c4c4;display:flex;flex-direction:column}.page-main[data-v-7afa8140]{flex:1;padding:2rem;max-width:1100px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:1.5rem}.back-btn[data-v-7afa8140]{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:none;color:#818d99;font-size:.9rem;cursor:pointer;padding:0;transition:color .15s ease}.back-btn svg[data-v-7afa8140]{width:18px;height:18px}.back-btn[data-v-7afa8140]:hover{color:#1e3a4c}.state-message[data-v-7afa8140]{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:5rem;color:#818d99}.state-message svg[data-v-7afa8140]{width:48px;height:48px;opacity:.4}.state-message--error[data-v-7afa8140]{color:#dc3545}.state-message--error svg[data-v-7afa8140]{opacity:1}.spinner[data-v-7afa8140]{width:36px;height:36px;border:3px solid #e8eaed;border-top-color:#15a8e2;border-radius:50%;animation:spin-7afa8140 .7s linear infinite}@keyframes spin-7afa8140{to{transform:rotate(360deg)}}.profile-card[data-v-7afa8140]{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 6px #0000001a;display:flex;align-items:center;gap:2rem;border:2px solid transparent;transition:border-color .25s ease;flex-wrap:wrap}.profile-card--active[data-v-7afa8140]{border-color:#43d185}.profile-card__avatar[data-v-7afa8140]{display:flex;align-items:center;justify-content:center;width:72px;height:72px;min-width:72px;border-radius:50%;background:#1e3a4c;color:#fff;font-size:1.5rem;font-weight:700;text-transform:uppercase;transition:background .25s ease}.profile-card__avatar--active[data-v-7afa8140]{background:#43d185}.profile-card__info[data-v-7afa8140]{flex:1;min-width:200px}.profile-card__name[data-v-7afa8140]{font-size:1.5rem;font-weight:700;color:#1e3a4c;margin:0 0 .5rem}.profile-card__meta[data-v-7afa8140]{display:flex;flex-wrap:wrap;gap:1rem}.profile-card__action[data-v-7afa8140]{display:flex;flex-direction:column;align-items:flex-end;gap:1rem;min-width:200px}.meta-item[data-v-7afa8140]{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:#818d99}.meta-item svg[data-v-7afa8140]{width:16px;height:16px}.checkin-status[data-v-7afa8140]{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.checkin-info[data-v-7afa8140]{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.checkin-label[data-v-7afa8140]{font-size:.75rem;color:#818d99;text-transform:uppercase;letter-spacing:.5px}.checkin-time[data-v-7afa8140]{font-size:1.25rem;font-weight:700;color:#43d185}.checkin-elapsed[data-v-7afa8140]{font-size:.8rem;color:#818d99}.action-error[data-v-7afa8140]{font-size:.8rem;color:#dc3545;text-align:right}.btn[data-v-7afa8140]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 2rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;border:none;transition:all .15s ease}.btn svg[data-v-7afa8140]{width:18px;height:18px}.btn[data-v-7afa8140]:disabled{opacity:.6;cursor:not-allowed}.btn--checkin[data-v-7afa8140]{background:#43d185;color:#fff}.btn--checkin[data-v-7afa8140]:hover:not(:disabled){background:#2ebd71}.btn--checkout[data-v-7afa8140]{background:#dc3545;color:#fff}.btn--checkout[data-v-7afa8140]:hover:not(:disabled){background:#c62232}.stats-row[data-v-7afa8140]{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}@media(max-width:768px){.stats-row[data-v-7afa8140]{grid-template-columns:repeat(2,1fr)}}.stat-card[data-v-7afa8140]{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 1px 2px #0000000d;display:flex;flex-direction:column;gap:.25rem;text-align:center}.stat-card__label[data-v-7afa8140]{font-size:.8rem;color:#818d99;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.stat-card__value[data-v-7afa8140]{font-size:1.75rem;font-weight:700;color:#1e3a4c}.tabs-section[data-v-7afa8140]{background:#fff;border-radius:16px;box-shadow:0 1px 2px #0000000d;overflow:hidden}.tabs[data-v-7afa8140]{display:flex;border-bottom:1px solid #e8eaed;padding:0 1.5rem;gap:0}.tab[data-v-7afa8140]{padding:1rem 1.5rem;background:transparent;border:none;border-bottom:2px solid transparent;font-size:.9rem;font-weight:500;color:#818d99;cursor:pointer;transition:all .15s ease;margin-bottom:-1px}.tab[data-v-7afa8140]:hover{color:#1e3a4c}.tab--active[data-v-7afa8140]{color:#15a8e2;border-bottom-color:#15a8e2}.tab-content[data-v-7afa8140]{padding:1.5rem}.empty-tab[data-v-7afa8140]{text-align:center;color:#818d99;padding:3rem;font-size:.9rem}.data-table[data-v-7afa8140]{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th[data-v-7afa8140]{text-align:left;padding:.5rem 1rem;font-size:.8rem;font-weight:600;color:#818d99;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e8eaed}.data-table td[data-v-7afa8140]{padding:.5rem 1rem;color:#1e3a4c;border-bottom:1px solid rgba(232,234,237,.6);vertical-align:middle}.data-table tr:last-child td[data-v-7afa8140]{border-bottom:none}.data-table tr:hover td[data-v-7afa8140]{background:#15a8e208}.data-table .row--active td[data-v-7afa8140]{background:#43d1850a}.time-cell[data-v-7afa8140]{font-weight:600;color:#1e3a4c;font-variant-numeric:tabular-nums}.badge[data-v-7afa8140]{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:600}.badge__dot[data-v-7afa8140]{width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse-dot-7afa8140 1.5s ease-in-out infinite}.badge--in[data-v-7afa8140]{background:#43d1851f;color:#2cb56c}.badge--out[data-v-7afa8140]{background:#e8eaed;color:#818d99}.badge--done[data-v-7afa8140]{background:#15a8e21a;color:#1190c4}@keyframes pulse-dot-7afa8140{0%,to{opacity:1}50%{opacity:.4}}
