/* Shared ORAS visual system. Existing Bootstrap components and integration IDs remain in use. */
:root{--oras-blue:#1748b6;--oras-blue-dark:#113582;--oras-ink:#172b4d;--oras-muted:#52627a;--oras-line:#dce4ef;--oras-surface:#fff;--oras-bg:#f3f6fb;--oras-navy:#112640;--oras-radius:12px;--oras-sidebar:248px;--oras-header:72px;--bs-primary:#1748b6;--bs-body-color:#172b4d;--bs-border-color:#dce4ef}
*{box-sizing:border-box}html{scroll-padding-top:90px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--oras-bg);color:var(--oras-ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif!important;font-size:14px;line-height:1.6}body,button,input,select,textarea{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif!important}h1,h2,h3,h4,h5,h6,.card-title{color:var(--oras-ink);line-height:1.3;letter-spacing:-.015em}a{color:var(--oras-blue);text-underline-offset:3px}a:hover{color:var(--oras-blue-dark)}img{max-width:100%;height:auto}button,a,input,select,textarea{touch-action:manipulation}:focus-visible{outline:3px solid #337be1!important;outline-offset:3px;box-shadow:0 0 0 2px #fff!important}.text-muted,.text-default{color:var(--oras-muted)!important}.fs-10,.fs-11,.fs-12{font-size:.8125rem!important}.text-break{overflow-wrap:anywhere}
.oras-skip{position:fixed;z-index:20000;top:8px;left:12px;background:#fff;border:2px solid var(--oras-blue);padding:10px 16px;transform:translateY(-180%);border-radius:8px}.oras-skip:focus{transform:none}.oras-live{position:fixed;bottom:20px;inset-inline-end:20px;z-index:12000;max-width:min(360px,calc(100vw - 32px));padding:14px 20px;background:var(--oras-ink);color:#fff;border-radius:10px;box-shadow:0 8px 24px #11264026}.oras-live:empty{display:none}
html body:not(.landing-body) .app-sidebar{width:var(--oras-sidebar)!important;background:var(--oras-navy)!important;border-inline-end:1px solid #203a58;box-shadow:none;inset-block-start:0;height:100dvh}body:not(.landing-body) .app-sidebar .main-sidebar-header{height:var(--oras-header);background:var(--oras-navy)!important;border-bottom:1px solid #ffffff12}.main-sidebar-header img{object-fit:contain;max-height:52px}body:not(.landing-body) .app-sidebar .main-sidebar{padding:14px 12px 24px;height:calc(100dvh - var(--oras-header));overflow-y:auto;overscroll-behavior:contain}body:not(.landing-body) .app-sidebar .main-menu{padding:0}body:not(.landing-body) .app-sidebar .side-menu__item{min-height:44px;padding:10px 12px;margin:3px 0;border-radius:8px;color:#d5e2f2!important;font-weight:500;line-height:1.4}body:not(.landing-body) .app-sidebar .side-menu__item:hover,body:not(.landing-body) .app-sidebar .side-menu__item.active{background:#244363!important;color:#fff!important}body:not(.landing-body) .app-sidebar .side-menu__item.active{box-shadow:inset 3px 0 #71d5c2}body:not(.landing-body) .app-sidebar .side-menu__label{font-size:.875rem!important;color:inherit!important}body:not(.landing-body) .app-sidebar .side-menu__icon{font-size:19px;color:inherit!important}body:not(.landing-body) .app-sidebar .slide__category{padding:20px 12px 7px}body:not(.landing-body) .app-sidebar .category-name{font-size:10px!important;letter-spacing:.13em;color:#91aecf!important;font-weight:700}body:not(.landing-body) .app-sidebar .slide-menu{background:transparent!important;padding-inline-start:14px}body:not(.landing-body) .app-sidebar .slide-menu a{font-size:13px}body:not(.landing-body) .app-sidebar .slide-menu .side-menu__item{min-height:40px}body:not(.landing-body) .app-sidebar .side-menu__angle{color:#a9c2dd}
html body:not(.landing-body) .app-header{height:var(--oras-header);inset-inline-start:var(--oras-sidebar);inset-inline-end:0;background:#fff!important;border-bottom:1px solid var(--oras-line);box-shadow:0 2px 8px #172b4d04;z-index:1001}body:not(.landing-body) .app-header .main-header-container{min-height:var(--oras-header);padding:0 24px}body:not(.landing-body) .app-header .header-content-right,body:not(.landing-body) .app-header .header-content-left{min-width:0;gap:4px}body:not(.landing-body) .app-header .header-link{color:var(--oras-muted)!important;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:9px}.header-link-icon{color:var(--oras-muted)!important}body:not(.landing-body) .app-header .header-link:hover{background:#f1f5fb}.header-profile-user{width:36px;height:36px;object-fit:cover}body:not(.landing-body) .app-header .dropdown-menu{max-width:calc(100vw - 24px);border:1px solid var(--oras-line);border-radius:12px;box-shadow:0 12px 34px #172b4d1c}body:not(.landing-body) .app-header .dropdown-item{white-space:normal;overflow-wrap:anywhere}body:not(.landing-body) .app-header p,body:not(.landing-body) .app-header h6{margin-bottom:0}
html .main-content.app-content{margin-inline-start:var(--oras-sidebar)!important;margin-top:var(--oras-header)!important;padding:24px!important;min-width:0;min-height:calc(100dvh - var(--oras-header))!important}.app-content>.container-fluid{padding:0;max-width:1600px;margin-inline:auto}.row>[class*=col]{min-width:0}.page-header-breadcrumb{margin:0 0 24px!important;padding:0!important;gap:12px;flex-wrap:wrap}.page-header-breadcrumb h4,.page-header-breadcrumb h5{font-size:clamp(1.2rem,2vw,1.55rem);font-weight:700!important;margin-bottom:0}.breadcrumb{font-size:12px;flex-wrap:wrap;gap:2px}.card.custom-card,.card{border:1px solid var(--oras-line);border-radius:var(--oras-radius);box-shadow:0 3px 10px #172b4d04;margin-bottom:24px;overflow:visible}.card.custom-card .card-header,.card-header{background:#fff;border-bottom:1px solid var(--oras-line);padding:17px 20px;gap:10px;flex-wrap:wrap;border-radius:var(--oras-radius) var(--oras-radius) 0 0}.card.custom-card .card-title,.card-title{font-size:15px!important;font-weight:650!important;margin:0}.card-body{padding:20px}.card-footer{padding:15px 20px;background:#fcfdff;border-top:1px solid var(--oras-line)}.card-body .card:last-child{margin-bottom:0}.app-content .shadow-lg,.app-content .shadow-sm{box-shadow:0 3px 12px #172b4d08!important}.bg-primary{background-color:var(--oras-blue)!important}.bg-primary h1,.bg-primary h2,.bg-primary h3,.bg-primary h4,.bg-primary h5,.bg-primary h6,.bg-primary .card-title{color:#fff!important}.bg-primary-transparent{background:#eaf0fd!important;color:#173e99!important}
.btn{min-height:42px;padding:9px 16px;font-size:13px;font-weight:600;line-height:1.45;border-radius:8px;white-space:normal;box-shadow:none!important}.btn-sm{min-height:36px;padding:6px 11px;font-size:12px}.btn-primary{background:var(--oras-blue);border-color:var(--oras-blue);color:#fff}.btn-primary:hover,.btn-primary:focus{background:var(--oras-blue-dark);border-color:var(--oras-blue-dark);color:#fff}.btn-outline-primary{color:var(--oras-blue);border-color:#aac0ed}.btn-light,.btn-outline-secondary{background:#fff;color:var(--oras-ink);border-color:#ccd7e6}.btn-outline-secondary:hover,.btn-light:hover{background:#f0f4fa;color:var(--oras-ink)}.btn:disabled,[aria-busy=true]{opacity:.65;cursor:wait}.btn-group{flex-wrap:wrap;gap:4px}.badge{font-size:11px;font-weight:600;line-height:1.5;border-radius:5px;padding:4px 8px;white-space:normal}.badge.bg-warning{color:#483100}.alert{border-radius:9px;font-size:13px;overflow-wrap:anywhere}.alert-danger{background:#fff0ef;border:1px solid #efc4c0;color:#842c25}.alert-success{background:#e9f7f0;border-color:#b8dfca;color:#1b5b40}.alert-info{background:#edf4ff;border-color:#bfd5f5;color:#234d86}.form-label,label.form-check-label{font-size:13px;font-weight:550;line-height:1.45;color:var(--oras-ink);margin-bottom:7px}.form-control,.form-select{min-height:44px;border:1px solid #cbd6e5;border-radius:8px;color:var(--oras-ink);font-size:14px;padding:10px 12px;background-color:#fff;max-width:100%}.form-control:focus,.form-select:focus{border-color:#4d80d7;box-shadow:0 0 0 3px #1748b61c}.form-control:disabled,.form-control[readonly],.form-select:disabled{background:#f1f4f9;color:#52627a;opacity:1}textarea.form-control{min-height:110px;resize:vertical}.form-check{min-height:30px;padding-top:3px}.form-check-input{width:18px;height:18px;margin-top:2px;cursor:pointer}.form-text,.invalid-feedback{font-size:12px}.input-group{flex-wrap:nowrap}.input-group>.form-control{min-width:0}.select2-container{max-width:100%!important}.select2-container .select2-selection{min-height:44px;border-color:#cbd6e5!important;border-radius:8px!important}.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:42px;padding-left:12px}.select2-container--default .select2-selection--single .select2-selection__arrow{height:42px}.select2-dropdown{border-color:var(--oras-line)!important}.nav-tabs{gap:4px;flex-wrap:wrap;border-color:var(--oras-line)}.nav-tabs .nav-link{padding:10px 14px;border-radius:8px 8px 0 0;min-height:44px;white-space:normal;font-size:13px}.nav-tabs .nav-link.active{color:var(--oras-blue);font-weight:650;border-color:var(--oras-line) var(--oras-line) #fff}
.table{--bs-table-color:var(--oras-ink);font-size:13px;line-height:1.5;margin-bottom:0;width:100%}.table thead th{background:#f2f5fa!important;color:#455872!important;font-size:11px!important;font-weight:700!important;letter-spacing:.035em;vertical-align:middle;border-color:var(--oras-line);padding:12px 14px;text-transform:none}.table tbody td{padding:12px 14px;vertical-align:middle;border-color:#e8edf5;overflow-wrap:anywhere}.table tbody tr:hover{background:#f7faff}.table-responsive,.oras-table-scroll{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:9px;overscroll-behavior-x:contain}.table-responsive>.table,.oras-table-scroll>.table{min-width:560px}.table-responsive:focus-visible{outline-offset:-3px}.table-responsive .table-borderless{min-width:0}.dataTables_wrapper{width:100%;min-width:0}.dataTables_wrapper .row{row-gap:12px}.dataTables_length label,.dataTables_filter label{font-size:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dataTables_filter input{min-height:38px;max-width:100%;border-radius:7px}.dataTables_wrapper .dt-buttons{display:flex;flex-wrap:wrap;gap:4px}.pagination{flex-wrap:wrap;gap:3px}.page-link{min-height:36px;min-width:36px;display:flex;align-items:center;justify-content:center;border-radius:6px!important;color:var(--oras-blue)}.dataTables_info{font-size:12px;color:var(--oras-muted)}
.modal-dialog{max-width:min(var(--bs-modal-width,800px),calc(100vw - 24px));margin:12px auto}.modal-content{border:0;border-radius:14px;box-shadow:0 20px 80px #10223f40;overflow:hidden}.modal-header{background:var(--oras-blue)!important;color:#fff;padding:18px 20px;gap:12px}.modal-title,.modal-header h5,.modal-header h6{font-size:17px!important;color:#fff!important}.modal-header .btn-close{filter:brightness(0) invert(1);min-width:32px;min-height:32px;margin:0}.modal-body{padding:20px;max-height:calc(100dvh - 170px);overflow:auto;overscroll-behavior:contain}.modal-footer{padding:14px 20px;gap:8px}.modal-footer .btn{margin:0}.swal2-popup{max-width:calc(100vw - 24px);font-family:inherit!important;border-radius:14px!important}.swal2-html-container{font-size:14px!important;overflow-wrap:anywhere}.footer{padding:18px 24px;margin-inline-start:var(--oras-sidebar);background:transparent!important;border-top:1px solid var(--oras-line);font-size:12px;color:var(--oras-muted)}#loader{pointer-events:none}html.oras-ready #loader{display:none!important}html.oras-ready #main-content{visibility:visible!important}.oras-nav-backdrop{display:none}
.oras-auth-page{background:linear-gradient(165deg,#e9f0fc 0%,#f4f7fb 44%,#edf4f5 100%);min-height:100dvh}.oras-auth-shell{width:min(100%,480px);margin:0 auto;padding:clamp(24px,5vh,60px) 20px}.oras-auth-brand{display:flex;justify-content:center;margin-bottom:24px}.oras-auth-brand img{object-fit:contain;height:75px;max-width:80%}.oras-auth-card{background:#fff;border:1px solid #dce5f1;border-radius:16px;padding:clamp(22px,5vw,36px);box-shadow:0 12px 45px #1d3c6d0c}.oras-auth-card h1{font-size:27px;font-weight:720;margin:8px 0 10px}.oras-auth-intro{color:var(--oras-muted);font-size:14px;margin-bottom:25px}.oras-eyebrow{font-size:10px;font-weight:700;letter-spacing:.13em;color:var(--oras-blue)}.oras-auth-card .btn{min-height:46px;font-size:14px}.oras-auth-card .form-control{font-size:16px}.oras-auth-help{font-size:12px;color:var(--oras-muted);margin:24px 0 0;line-height:1.7}.oras-auth-footer{text-align:center;font-size:11px;color:var(--oras-muted);margin-top:24px;line-height:1.9}.oras-divider{display:flex;align-items:center;gap:12px;color:#6a7990;font-size:12px;margin:22px 0}.oras-divider:before,.oras-divider:after{content:"";height:1px;background:var(--oras-line);flex:1}.oras-notice{max-width:600px;margin:12vh auto;padding:32px;background:#fff;border:1px solid var(--oras-line);border-radius:12px}.oras-notice h1{font-size:24px}.oras-primary-link{display:inline-block;padding:10px 16px;border-radius:8px;background:var(--oras-blue);color:#fff;text-decoration:none}
@media(min-width:992px){html.oras-nav-collapsed body:not(.landing-body) .app-sidebar{transform:translateX(-100%)!important}html.oras-nav-collapsed body:not(.landing-body) .app-header{inset-inline-start:0!important}html.oras-nav-collapsed .main-content.app-content,html.oras-nav-collapsed .footer{margin-inline-start:0!important}body:not(.landing-body) .app-header .horizontal-logo{display:none!important}}
@media(max-width:991.98px){html body:not(.landing-body) .app-sidebar{transform:translateX(-100%)!important;z-index:1060;visibility:hidden}html.oras-nav-open body:not(.landing-body) .app-sidebar{transform:translateX(0)!important;visibility:visible}html body:not(.landing-body) .app-header{inset-inline-start:0!important}body:not(.landing-body) .app-header .main-header-container{padding:0 12px}body:not(.landing-body) .app-header .horizontal-logo{display:none!important}html .main-content.app-content{margin-inline-start:0!important;padding:20px!important}.footer{margin-inline-start:0!important}.oras-nav-backdrop{position:fixed;inset:0;z-index:1059;background:#10203970;border:0;width:100%;height:100dvh}html.oras-nav-open .oras-nav-backdrop{display:block}html.oras-nav-open{overflow:hidden}}
@media(max-width:575.98px){html .main-content.app-content{padding:16px 12px!important}.card.custom-card,.card{margin-bottom:16px;border-radius:10px}.card-body{padding:16px!important}.card-header{padding:15px 16px!important}.page-header-breadcrumb{margin-bottom:18px!important}.page-header-breadcrumb .breadcrumb{margin-top:4px}body:not(.landing-body) .app-header .header-element{margin-inline:0!important}body:not(.landing-body) .app-header .header-link{padding:6px}body:not(.landing-body) .app-header .header-content-right>.header-element{padding-inline:0}body:not(.landing-body) .app-header .header-content-right .header-link p,body:not(.landing-body) .app-header .header-content-right .header-link span.text-muted{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{min-height:44px}.btn-sm{min-height:40px}.modal-dialog{max-width:calc(100vw - 16px);margin:8px auto}.modal-body{padding:16px;max-height:calc(100dvh - 150px)}.modal-footer .btn{flex:1 1 auto}.row{--bs-gutter-x:1rem}.dataTables_filter,.dataTables_length{text-align:start!important}.dataTables_filter label{justify-content:flex-start}.dataTables_filter input{width:min(180px,100%)}.dataTables_wrapper .row{margin-inline:0}.oras-auth-shell{padding:26px 14px}.oras-auth-card h1{font-size:25px}.oras-notice{margin:10vh 12px;padding:24px}.footer{padding:16px 12px}.authentication .p-5{padding:24px!important}.container{max-width:100%}.landing-body .navbar-brand img{max-width:180px}.landing-body .navbar-nav{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{body:not(.landing-body) .app-header,body:not(.landing-body) .app-sidebar,.footer,.btn,.oras-skip,.oras-nav-backdrop{display:none!important}.main-content.app-content{margin:0!important;padding:0!important}.table-responsive{overflow:visible}.card{box-shadow:none!important}}

html body:not(.landing-body) .app-header{width:auto!important}.footer{width:auto!important}

/* The Velvet breadcrumb is inside app-content; reset its old banner offsets. */
html .app-content .page-header-breadcrumb{top:auto!important;min-height:0!important;background:transparent!important;border:0!important;color:var(--oras-ink);padding:0!important;margin:0 0 24px!important;position:relative;inset-inline-start:auto!important;inset-inline-end:auto!important;width:auto!important}
html .app-content .page-header-breadcrumb h4,html .app-content .page-header-breadcrumb h5{color:var(--oras-ink)!important}
html .app-content .page-header-breadcrumb .breadcrumb-item,html .app-content .page-header-breadcrumb .breadcrumb-item a,html .app-content .page-header-breadcrumb .text-white,html .app-content .page-header-breadcrumb .text-white-50{color:var(--oras-muted)!important}
html .app-content .page-header-breadcrumb .breadcrumb-item+.breadcrumb-item:before{color:var(--oras-muted)!important}
html .app-header .main-header-container{width:100%;max-width:none!important;margin:0!important}
html .app-header .oras-profile-image{width:36px;height:36px;object-fit:cover;display:block}
/* Public landing navigation must not reserve authenticated sidebar space. */
html .landing-body .app-header{inset-inline-start:0!important;inset-inline-end:0!important}
html .landing-body .app-header .horizontal-logo{display:block!important}
@media(max-width:575.98px){html .app-content .page-header-breadcrumb{align-items:flex-start!important;margin-bottom:18px!important}.app-sidebar .side-menu__label{white-space:normal;overflow-wrap:anywhere}.app-content .progress{min-width:110px}}
