:root{--color-light:#ffffff;--color-background-card:#ffffff;--color-gray-100:#f1f1f1;--color-gray-200:#e4e4e4;--color-gray-300:#d1d1d1;--color-gray-400:#b5b5b5;--color-gray-500:#9a9a9a;--color-gray-600:#7e7e7e;--color-gray-700:#626262;--color-gray-800:#464646;--color-gray-850:#3a3a3a;--color-gray-900:#2a2a2a;--color-gray-950:#1a1a1a;--color-text:#111822;--color-primary-dark:#111822;--color-red:#ff4d4f}body.grey{--color-light:#e6eaf0;--color-background-card:#445166;--color-gray-100:#434c5b;--color-gray-200:#3a4453;--color-gray-300:#313a42;--color-gray-400:#283139;--color-gray-500:#202830;--color-gray-600:#182028;--color-gray-700:#101820;--color-gray-800:#081018;--color-gray-850:#060e16;--color-gray-900:#040c14;--color-gray-950:#02060a;--color-text:#cbd3de;--color-primary-dark:#303949}body.dark{--color-light:#e6eaf0;--color-background-card:#34425b;--color-gray-100:#303c50;--color-gray-200:#2a3644;--color-gray-300:#24303e;--color-gray-400:#1e2937;--color-gray-500:#18222a;--color-gray-600:#121a22;--color-gray-700:#0c141a;--color-gray-800:#060e16;--color-gray-850:#040a12;--color-gray-900:#02060a;--color-gray-950:#010305;--color-text:#cbd3de;--color-primary-dark:#232c3c}body.black{--color-light:#e6eaf0;--color-background-card:#232e42;--color-gray-100:#1d2638;--color-gray-200:#18222a;--color-gray-300:#141a22;--color-gray-400:#10141a;--color-gray-500:#0c1016;--color-gray-600:#080c12;--color-gray-700:#04080e;--color-gray-800:#020406;--color-gray-850:#010203;--color-gray-900:#010102;--color-gray-950:#000101;--color-text:#cbd3de;--color-primary-dark:#111822}.vue-modal{position:fixed;top:0;left:0;width:100%;height:100%;color:var(--color-text);background-color:rgba(0,0,0,0.5);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:1031;padding:20px 0;overflow-y:auto;overflow-x:hidden}.vue-modal.open{opacity:1;visibility:visible}.vue-modal.open .vue-modal--content{transform:scale(1);opacity:1}.vue-modal--content{background:var(--color-background-card);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,0.3);max-width:540px;width:100%;padding:32px;transform:scale(.9);opacity:0;transition:transform .3s ease,opacity .3s ease;position:relative;max-height:calc(100vh - 100px);overflow-y:auto;overflow-x:hidden}.vue-modal--content--loading{position:absolute;border-radius:16px;color:var(--color-text);background-color:color-mix(in srgb, var(--color-background-card) 80%, transparent);top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;z-index:9999}.vue-modal--content::-webkit-scrollbar{width:8px}.vue-modal--content::-webkit-scrollbar-track{background:transparent;border-radius:4px}.vue-modal--content::-webkit-scrollbar-thumb{background:#dcdcdc;border-radius:4px;padding:20px 0}.vue-modal--content::-webkit-scrollbar-thumb:hover{background:#c7c7c7}.vue-modal--content--header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.vue-modal--content--header--title{font-size:24px;color:var(--color-text);margin:0;padding-right:40px}.vue-modal--content--header--close{position:absolute;top:24px;right:24px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:background-color .2s ease;cursor:pointer;text-decoration:none;flex-shrink:0;color:var(--color-text)}.vue-modal--content--header--close:hover{background-color:color-mix(in srgb, var(--color-text) 30%, transparent)}.vue-modal--content--header--close:hover::before,.vue-modal--content--header--close:hover::after{background-color:var(--color-text)}.vue-modal--content--header--close:active{background-color:#e5e5e5}.vue-modal--content--header--close::before,.vue-modal--content--header--close::after{content:"";position:absolute;width:16px;height:2px;background-color:var(--color-text);transition:background-color .2s ease,transform .2s ease}.vue-modal--content--header--close::before{transform:rotate(45deg)}.vue-modal--content--header--close::after{transform:rotate(-45deg)}.vue-modal--content--header--close i{display:none}.vue-modal--body{margin-top:28px;font-size:15px;line-height:1.6;color:var(--color-text);margin-bottom:28px}.vue-modal--body label,.vue-modal--body .help-block{color:color-mix(in srgb, var(--color-text) 60%, transparent);font-size:.75rem}.vue-modal--body .note{border:1px dashed color-mix(in srgb, var(--color-text) 30%, transparent);border-radius:8px;padding:12px;margin-top:12px}.vue-modal--body .note code{overflow:auto}.vue-modal--actions{display:flex;gap:12px;justify-content:space-between}.vue-modal--actions>div{display:flex;gap:12px}.vue-modal--actions>div:last-child{flex:1;justify-content:end}.vue-modal--actions a,.vue-modal--actions button{padding:8px 24px;border-radius:8px;font-size:15px;font-weight:500;text-decoration:none;border:none;cursor:pointer;transition:all .2s ease;font-family:inherit;display:inline-block;text-align:center;background-color:var(--color-background-card);color:var(--color-text);border:1px solid var(--color-gray-300)}.vue-modal--actions a:hover,.vue-modal--actions button:hover{background-color:color-mix(in srgb, var(--color-background-card) 80%, transparent);border-color:color-mix(in srgb, var(--color-gray-300) 80%, transparent)}.vue-modal--actions a:active,.vue-modal--actions button:active{background-color:color-mix(in srgb, var(--color-gray-200) 80%, transparent)}.vue-modal--actions a.primary,.vue-modal--actions button.primary{background-color:var(--color-primary-dark);color:var(--color-light);border:1px solid var(--color-primary-dark)}.vue-modal--actions a.primary:hover,.vue-modal--actions button.primary:hover{background-color:color-mix(in srgb, var(--color-primary-dark) 80%, transparent);border-color:color-mix(in srgb, var(--color-primary-dark) 80%, transparent)}.vue-modal--actions a.primary:active,.vue-modal--actions button.primary:active{background-color:#000;border-color:#000}.vue-modal--actions a.danger,.vue-modal--actions button.danger{background-color:var(--color-red);color:#ffffff;border:1px solid var(--color-red)}.vue-modal--actions a.danger:hover,.vue-modal--actions button.danger:hover{background-color:color-mix(in srgb, var(--color-red) 80%, transparent)}.vue-modal--actions a.danger:active,.vue-modal--actions button.danger:active{background-color:#000;border-color:#000}@media (max-width:600px){.vue-modal--content{padding:24px;margin:16px}.vue-modal--content--header--title{font-size:20px}.vue-modal--body{font-size:14px}.vue-modal--actions{flex-direction:column-reverse}.vue-modal--actions a,.vue-modal--actions button{width:100%}}.app-integration{padding-top:2rem}.app-integration>.no-integration{margin-top:2rem;display:flex;flex-direction:column;align-items:center}.app-integration>.no-integration>.icon{background:#222222;color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center}.app-integration>.no-integration>.icon i{font-size:2rem}.app-integration>.no-integration>h2{margin-top:1rem;font-size:1.5rem}.app-integration>.content{display:grid;grid-template-columns:repeat(auto-fill, minmax(200px, auto));margin-top:2rem;gap:1rem}.app-integration>.content>.card-app{background-color:var(--color-background-card);padding:1rem;height:calc(200px + 20);border-radius:1rem;display:flex;flex-direction:column}.app-integration>.content>.card-app>.header{display:flex;align-items:center;justify-content:space-between}.app-integration>.content>.card-app>.header>.app-logo{background:#f1f1f1;padding:5px;border-radius:.5rem;display:flex;align-items:center;justify-content:center;overflow:hidden}.app-integration>.content>.card-app>.header>.app-logo>img{width:35px}.app-integration>.content>.card-app>.header>.app-status{display:flex;align-items:center;justify-content:center;height:28px;width:28px;background:var(--color-primary-dark);color:#c8d0d9;border-radius:4px}.app-integration>.content>.card-app>.header>.app-status.active{background:#6ebab1;color:#fff;pointer-events:none}.app-integration>.content>.card-app>.header>.app-status a{padding:5px;display:block}.app-integration>.content>.card-app>.app-content{margin-top:1rem;display:flex;flex-direction:column;justify-content:space-between;height:100%}.app-integration>.content>.card-app>.app-content>.app-content--info{flex:1}.app-integration>.content>.card-app>.app-content h3.app-type{font-size:.85rem;font-weight:bold;padding:0;margin:0;color:#6ebab1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:calc(200px - 40)}.app-integration>.content>.card-app>.app-content h2.app-name{font-size:1rem;padding:0;margin:.2rem 0 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:calc(200px - 40)}.app-integration>.content>.card-app>.app-content p.app-description{opacity:.7;font-size:.75rem;line-height:1rem;padding:0;margin:.5rem 0 0 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.app-integration>.content>.card-app>.app-content>.app-buttons{margin-top:1rem;display:flex;align-items:center;gap:.5rem}.app-integration>.content>.card-app>.app-content>.app-buttons>a{margin:0;background:var(--color-gray-100);padding:4px 8px;font-size:small;color:var(--color-text)}.app-integration>.content>.card-app>.app-content>.app-buttons>a:hover{background:color-mix(in srgb, var(--color-gray-100) 95%, transparent)}.app-integration>.header{display:flex;align-items:center;justify-content:space-between}.app-integration>.header .header-title{font-size:1.2rem}.app-integration>.header .header-tabs>ul{list-style:none;padding:0;margin:0;display:flex;align-items:center;gap:1rem}.app-integration>.header .header-tabs>ul>li{background:var(--color-background-card);border-radius:4px;transition:all 300ms;position:relative}.app-integration>.header .header-tabs>ul>li>a{padding:.5rem 1.2rem;display:block}.app-integration>.header .header-tabs>ul>li:hover{background:color-mix(in srgb, var(--color-background-card) 80%, transparent)}.app-integration>.header .header-tabs>ul>li.active{overflow:hidden}.app-integration>.header .header-tabs>ul>li.active::after{content:"";position:absolute;background:#80b4f2;height:2px;width:100%;left:0;bottom:0;border-bottom-left-radius:4px;border-bottom-right-radius:4px;animation-duration:.5s;animation-name:anime-active}@keyframes anime-active{0%{left:-120%}100%{opacity:1;left:0}}.import-body{display:flex;flex-direction:column;gap:20px}.import-body .upload-status .upload-dropzone{border:2px dashed #cfd8dc;border-radius:8px;padding:25px;text-align:center;cursor:pointer;position:relative;transition:.2s}.import-body .upload-status .upload-dropzone i{font-size:2rem;color:#90a4ae;margin-bottom:10px}.import-body .upload-status .upload-dropzone strong{display:block}.import-body .upload-status .upload-dropzone span{font-size:.8rem;color:#6c757d}.import-body .upload-status .upload-dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}.import-body .upload-status .upload-dropzone:hover{background:#f8f9fa;border-color:#007bff}.import-body .upload-status .uploaded-file{display:flex;justify-content:space-between;align-items:center;background:#f8f9fa;border-radius:8px;padding:15px}.import-body .upload-status .uploaded-file .file-info{display:flex;align-items:center;gap:10px}.import-body .upload-status .uploaded-file .file-info i{font-size:1.5rem;color:#28a745}.import-body .upload-status .uploaded-file .file-info small{font-size:.75rem;color:#6c757d}.import-body .upload-status .upload-progress{margin-top:10px}.import-body .upload-status .upload-progress .progress{height:6px}.import-body .upload-status .upload-progress small{font-size:.75rem;color:#6c757d}.import-body .mapping-section{background:#fff;border-radius:8px}.import-body .mapping-section .mapping-row{display:grid;grid-template-columns:1fr 20px 1fr;gap:15px;padding:3px;padding-left:10px;border-radius:5px;background:#f8f9fa;margin-bottom:5px}.import-body .mapping-section .mapping-row:hover{background:#e9ecef}.import-body .mapping-section .mapping-row .select2-selection{background:transparent !important}.import-body .mapping-section .mapping-row.selected{background:#8efdb7}.import-body .mapping-section .mapping-row.selected .select2-selection{font-weight:bold}.import-body .mapping-section .mapping-row .required-badge{font-size:.65rem;background:#dc3545;color:#fff;padding:2px 6px;border-radius:4px;margin-top:4px;display:inline-block}