/* Workspace components use the existing Bootstrap 5 / SB Admin structure.
   Domain sections stay in site.css; shared shell, tables, forms and controls are defined here. */
:root{--sidenav-width:250px;--workspace-navy:#123c4a;--workspace-accent:#147d83;--workspace-border:#dce5eb;--workspace-muted:#607787;--workspace-bg:#f3f6f9;--bs-border-color:var(--workspace-border);--bs-border-radius:.7rem;--bs-body-bg:#f3f6f9}
body{color:#243d4b;background:var(--workspace-bg)}.ui-icon{width:1.15rem;height:1.15rem;fill:currentColor;stroke:none;flex-shrink:0;vertical-align:-.15em}.action-icon{margin-inline-end:.4rem}.btn .action-icon{width:1rem;height:1rem}.btn{font-weight:650;border-radius:.55rem;min-height:38px;line-height:1.65;transition:background-color .15s,border-color .15s}.btn-primary{--bs-btn-bg:#147d83;--bs-btn-border-color:#147d83;--bs-btn-hover-bg:#0f6267;--bs-btn-hover-border-color:#0f6267}.btn-outline-primary{--bs-btn-color:#146d76;--bs-btn-border-color:#83b6bd;--bs-btn-hover-bg:#e4f2f2;--bs-btn-hover-color:#10585f;--bs-btn-hover-border-color:#4e979f}.btn-danger{--bs-btn-bg:#b54343;--bs-btn-border-color:#b54343}.btn:focus-visible,a:focus-visible,.form-control:focus-visible,.form-select:focus-visible{outline:3px solid #67b5c5;outline-offset:2px}.btn[disabled]{cursor:wait}.dropdown-menu{border:1px solid var(--workspace-border);border-radius:.65rem;box-shadow:0 14px 40px #18374721;padding:.45rem;min-width:215px}.dropdown-item{border-radius:.4rem;padding:.65rem .8rem;line-height:1.6}.dropdown-item:hover,.dropdown-item:focus{background:#edf5f6;color:#123c4a}.dropdown-item.text-danger:hover{background:#fceeee;color:#a22d2d!important}.dropdown-divider{border-top-color:#e1e8ed}.modal-content{border:0;border-radius:.9rem;box-shadow:0 24px 70px #102d4340}.modal-header,.modal-footer{background:#f6f9fb;border-color:var(--workspace-border);padding:1rem 1.25rem}.modal-body{padding:1.25rem}.modal-footer{border-radius:0 0 .9rem .9rem;gap:.5rem}.modal-title{color:#163e50;font-weight:750}
.sb-topnav{display:grid;grid-template-columns:minmax(210px,1fr) minmax(340px,1.6fr) auto auto;grid-template-areas:"brand year user language";gap:1rem;align-items:center;min-height:82px;height:auto;padding:.8rem 1.3rem;box-shadow:0 2px 12px #153d4e06;border-bottom:1px solid var(--workspace-border)}.shell-brand{min-width:0;gap:.65rem}.brand-link{min-width:0;gap:.7rem;font-size:.87rem}.brand-name{min-width:0;overflow-wrap:anywhere;line-height:1.65}.brand-name small{font-size:.66rem;font-weight:450;display:block;color:#667e8c}.brand-mark{width:40px;height:40px;min-width:40px;background:var(--workspace-navy);border-radius:11px}.company-logo{width:42px;height:42px;object-fit:contain}.icon-button{height:38px;width:38px;min-width:38px;background:#f2f7fa;border:1px solid #e1e9ee;border-radius:9px;color:#456676}.icon-button .action-icon{margin:0;width:1.2rem;height:1.2rem}.programme-picker{margin:0;display:flex;flex-wrap:wrap;gap:.35rem .65rem;justify-content:center;align-items:center}.programme-picker>label{font-size:.78rem;font-weight:700;white-space:nowrap}.programme-picker>label .ui-icon{margin-inline-end:.3rem;color:#688894}.programme-controls{display:flex;gap:.45rem;align-items:center}.programme-controls .form-select{min-width:100px;width:135px;min-height:38px;font-weight:700;color:#234e63;background-color:#f6f9fc}.programme-controls .btn{font-size:.72rem;min-height:38px;padding:.4rem .65rem}.year-state{font-size:.66rem;font-weight:600}.account-menu{justify-self:end;max-width:220px}.account-menu>summary{display:flex;gap:.5rem;align-items:center;border:1px solid #e4ebf0;border-radius:11px;padding:.4rem .5rem;list-style:none}.account-menu>summary::-webkit-details-marker{display:none}.account-identity{display:grid;gap:.05rem;min-width:0}.account-name{font-size:.73rem;display:block!important;max-width:150px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.account-role{display:block;font-size:.61rem;color:#718493;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.account-avatar{height:32px;width:32px;min-width:32px;background:#e8f1f5;color:#24556c;font-weight:800}.account-chevron{width:.65rem;height:.65rem;color:#78909c}.account-dropdown{min-width:240px;border:1px solid var(--workspace-border);box-shadow:0 12px 30px #14334620;border-radius:.7rem;z-index:1050}
#layoutSidenav_nav{background:#fff;border-inline-end:1px solid var(--workspace-border)}.sb-sidenav-menu{padding:.8rem .75rem}.sidebar-intro{display:flex;justify-content:space-between;align-items:center;padding:.2rem .7rem}.sidebar-caption{text-transform:none;letter-spacing:0;color:#81939f;font-size:.68rem}.sb-sidenav-menu-heading{font-size:.66rem;color:#8799a4;letter-spacing:0;padding:1.1rem .8rem .45rem}.sb-sidenav .nav-link{display:flex;position:relative;align-items:center;gap:.65rem;padding:.72rem .8rem;color:#476473;border-radius:.6rem;margin:.12rem 0;font-size:.77rem;line-height:1.65;border:1px solid transparent;border-inline-start:3px solid transparent}.sb-sidenav .nav-link>.ui-icon{color:#7a94a4;width:1.1rem;height:1.1rem}.sb-sidenav .nav-link:hover{background:#f2f7fa;color:#244f61}.sb-sidenav .nav-link.active{color:#10656e;background:#e8f4f3;border-color:#daeeec;border-inline-start-color:#18868b;font-weight:750}.sb-sidenav .nav-link.active>.ui-icon{color:#147d83}.nav-active-marker{margin-inline-start:auto;width:5px;height:5px;background:#18868b;border-radius:50%}.sb-sidenav-footer{background:#f7fafc;border-top:1px solid var(--workspace-border);color:#728895;font-size:.7rem;padding:1rem 1.4rem}.sb-sidenav-footer strong{color:#3c5e6d;margin-top:.25rem}.sb-sidenav-footer small{font-weight:450}
.app-content{padding:1.3rem 1.5rem 2rem;min-width:0;max-width:1900px;width:100%;margin-inline:auto}.workspace-context{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;padding-bottom:.8rem;border-bottom:1px solid #e1e8ed;color:#7c909e}.breadcrumb{margin:0;font-size:.72rem;line-height:1.7;--bs-breadcrumb-divider:'‹';flex-wrap:wrap}.breadcrumb-item a{text-decoration:none;color:#6d8796}.breadcrumb-item.active{color:#264e60;font-weight:600}.breadcrumb .ui-icon{width:.95rem;height:.95rem}.workspace-year{background:#fff;border:1px solid #e0e8ee;white-space:nowrap;padding:.25rem .65rem;border-radius:20px;font-size:.68rem;color:#547481}.section-title{gap:1rem;flex-wrap:wrap}.section-eyebrow{font-size:.7rem;font-weight:700;color:#8298a5;margin-bottom:.2rem}h1{font-weight:780;letter-spacing:-.025em;margin-bottom:1rem;color:#203f50}h2,h3{color:#2e5062}.card,.section-card{border:1px solid var(--workspace-border);border-radius:.8rem;background:#fff;box-shadow:0 2px 7px #264c6003}.card h2.h5,.section-card h2{font-weight:750}.stat strong,.analytics-kpis strong{font-variant-numeric:tabular-nums;color:#193f51}.analytics-kpis .card{border-top:3px solid #cce3e5}.analytics-kpis .card:hover{border-top-color:#147d83}.form-label{font-size:.79rem;font-weight:650;color:#38596a;margin-bottom:.4rem}.form-control,.form-select{font-size:.83rem;min-height:41px;border-color:#d4e0e8;border-radius:.5rem;background-color:#fff;color:#264655;padding:.55rem .75rem}.form-control:focus,.form-select:focus{border-color:#7faeb9;box-shadow:0 0 0 .2rem #147d8314}input[type=number],input[type=date],input[type=password]{direction:ltr;text-align:start;font-variant-numeric:tabular-nums}input[type=checkbox]{accent-color:#147d83}.form-check-input{border-color:#aebfc9}.form-text,.text-muted{color:#718695!important}.validation-summary-errors{background:#fff3f2;border:1px solid #f0cfca;border-inline-start:4px solid #c35950;border-radius:.5rem;padding:.8rem 1rem;margin-bottom:1rem;color:#9b322d}.validation-summary-errors ul{margin-bottom:0}.field-validation-error{display:block;color:#ad3e35;font-size:.75rem;margin-top:.25rem}
.table-responsive{border-radius:.6rem;overscroll-behavior-inline:contain;scrollbar-width:thin}.table{--bs-table-border-color:#e4ebf0;--bs-table-hover-bg:#f5f9fb;font-size:.8rem;line-height:1.8;margin-bottom:0}.table thead th{background:#f3f7fa;color:#496778;font-weight:750;padding:.85rem .7rem;border-bottom:1px solid #d5e2ea;vertical-align:middle;white-space:normal}.table tbody td{padding:.8rem .7rem;border-color:#e8eef2;vertical-align:middle}.table tbody tr:nth-child(even){--bs-table-bg:#fbfdfe}.table .money{direction:ltr;text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap}.table td bdi{unicode-bidi:isolate}.table td:last-child .btn{min-width:0}.table td .dropdown-menu .dropdown-item{white-space:normal}.empty-state-cell{text-align:center!important;background:#f9fcfd!important;padding:2.5rem 1rem!important;color:#778e9c}.workspace-empty{display:flex;flex-direction:column;align-items:center;gap:.6rem}.workspace-empty .ui-icon{height:2rem;width:2rem;color:#98afbb}.alert{border-radius:.65rem;font-size:.83rem;line-height:1.9;border:1px solid transparent}.alert-success{color:#21654d;background:#edf8f1;border-color:#d1eadd}.alert-danger{color:#963b36;background:#fff2f0;border-color:#f2d1cb}.alert-warning{color:#785c20;background:#fff9e9;border-color:#f1e1b2}.alert-info{color:#2b647b;background:#eef7fb;border-color:#d5e9f2}.workspace-notice{display:flex;align-items:flex-start;gap:.65rem;padding-inline-end:3rem}.workspace-notice>.ui-icon{margin-top:.25rem}.badge{font-weight:600;letter-spacing:0}.bg-success{background-color:#2e7d61!important}.bg-secondary{background-color:#596f7e!important}.badge.bg-success,.badge.bg-secondary{color:#fff!important}.app-footer{background:#f6f9fb;border-top:1px solid var(--workspace-border);font-size:.67rem;color:#8295a0;gap:1rem;flex-wrap:wrap}
.database-state-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1.4rem}.database-state{padding:1.3rem;min-width:0}.database-state.is-active{border-top:3px solid #20857c}.database-state.is-proposed{border-top:3px solid #c49c52;background:#fffdf8}.database-state h2{display:flex;align-items:center;gap:.55rem}.database-state dl{display:grid;grid-template-columns:110px 1fr;gap:.5rem;margin:1rem 0 0;font-size:.8rem}.database-state dt{color:#7b8e98;font-weight:550}.database-state dd{margin:0;overflow-wrap:anywhere;color:#345566}.database-provider{font-size:1.05rem;font-weight:750}.database-steps{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;gap:.65rem;margin:1.25rem 0}.database-steps li{background:#f5f8fb;border:1px solid #e0e9ef;border-radius:.6rem;padding:.8rem;font-size:.75rem;display:flex;align-items:center;gap:.6rem}.database-steps .step-index{background:#dcebed;color:#256c73;display:grid;place-items:center;border-radius:50%;width:27px;height:27px;flex-shrink:0;font-weight:700}.settings-directory a.card{display:flex;align-items:flex-start;gap:.65rem;text-decoration:none;color:#426371;padding:1rem;min-height:84px}.settings-directory a.card .ui-icon{margin-top:.15rem;color:#40858d;min-width:21px}.settings-directory a.card:hover{border-color:#8ab4bc;background:#f9fdfd}.hosting-notice{border-inline-start:4px solid #92b4c1}.connection-actions{display:flex;gap:.6rem;flex-wrap:wrap}.connection-summary{font-size:.8rem}.workspace-loading .action-icon{opacity:.35}#workspace-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:2000;background:linear-gradient(90deg,#147d8300,#147d83,#147d8300);background-size:50% 100%;background-repeat:no-repeat;animation:workspace-progress 1.2s ease-in-out infinite}@keyframes workspace-progress{from{background-position:150% 0}to{background-position:-50% 0}}
@media(max-width:1199px){.sb-topnav{grid-template-columns:minmax(180px,auto) minmax(280px,1fr) auto auto;gap:.6rem;padding:.7rem 1rem}.account-name,.account-role{max-width:110px}.app-content{padding:1rem 1.1rem 2rem}.brand-name{font-size:.78rem}}
@media(max-width:991px){.sb-topnav{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"brand user language" "year year year";gap:.65rem;min-height:0}.shell-brand{grid-area:brand}.account-menu{grid-area:user}.programme-picker{grid-area:year;justify-content:start;gap:.5rem .7rem;border-top:1px solid #edf1f4;padding-top:.65rem}.programme-controls .form-select{width:120px}.programme-picker .year-state{margin-inline-start:auto}.workspace-context{align-items:flex-start}.app-content{padding:1rem}.database-steps{grid-template-columns:repeat(2,1fr)}.account-dropdown{inset-inline-end:0}}
@media(max-width:575px){.sb-topnav{padding:.6rem .75rem}.brand-name{font-size:.72rem;max-width:155px}.brand-name small{font-size:.57rem}.brand-mark,.company-logo{width:33px;height:33px;min-width:33px}.icon-button{width:32px;min-width:32px;height:34px}.shell-brand{gap:.4rem}.brand-link{gap:.4rem}.account-menu>summary{padding:.3rem;border:0}.account-avatar{width:27px;height:27px;min-width:27px}.account-name{max-width:78px;font-size:.62rem}.account-role,.account-chevron{display:none}.programme-picker>label{font-size:.7rem}.programme-controls{flex:1;justify-content:flex-end}.programme-controls .form-select{width:90px;min-width:75px;font-size:.75rem}.programme-controls .btn{font-size:.64rem}.programme-picker .year-state{margin-inline-start:0;flex-basis:100%;font-size:.6rem}.workspace-year{font-size:.58rem;padding:.2rem .5rem}.breadcrumb{font-size:.62rem}.workspace-context{gap:.55rem}.app-content{padding:.85rem .7rem 1.5rem}h1{font-size:1.35rem}.card.p-4{padding:1rem!important}.database-state-grid{grid-template-columns:1fr}.database-state{padding:1rem}.database-state dl{grid-template-columns:90px 1fr;font-size:.72rem}.database-steps li{padding:.6rem;font-size:.65rem}.modal-dialog{margin:.6rem}.modal-header,.modal-body,.modal-footer{padding:1rem}.modal-footer .btn{flex:1}.table{font-size:.74rem}.btn{font-size:.75rem}.settings-directory a.card{min-height:65px}.workspace-context+div h1{margin-top:.5rem}}
@media(prefers-reduced-motion:reduce){#workspace-progress{animation:none;background:#147d83}.btn{transition:none}}
@media screen and (max-width:991px){.table-responsive>.table{min-width:760px}.table-responsive>.table td,.table-responsive>.table th{word-break:normal}.table-responsive>.table td:nth-child(2){min-width:180px}}

/* Entry workspace: native table keyboard navigation, no virtualised hidden rows. */
.draft-scroll{max-height:68vh;overflow:auto;border:1px solid #d5dde3}.draft-grid{width:max-content;min-width:100%;margin:0}.draft-grid th{position:sticky;top:0;background:#eaf0f4;z-index:2}.draft-grid td{min-width:155px;vertical-align:top}.draft-grid td:has([data-column="Title"]),.draft-grid td:has([data-column="Description"]){min-width:280px}.draft-grid .draft-row-tools{position:sticky;inset-inline-start:0;background:#fff;z-index:1;max-width:320px;white-space:normal}.draft-grid input{min-width:120px}.draft-grid details{width:280px}.project-context{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem}.language-picker{padding:.4rem}.language-picker button{white-space:nowrap}
html[dir=ltr] .sb-sidenav{direction:ltr}html[dir=ltr] .sb-sidenav .nav-link{text-align:left}html[dir=ltr] .account-dropdown{left:auto;right:0}
html[dir=ltr] #layoutSidenav_nav{transform:translateX(-100%)}html[dir=ltr] body.sb-sidenav-toggled #layoutSidenav_nav{transform:translateX(0)}@media(min-width:992px){html[dir=ltr] #layoutSidenav_nav{transform:translateX(0)}html[dir=ltr] body.sb-sidenav-toggled #layoutSidenav_nav{transform:translateX(-100%)}}


/* Explicit header areas keep the language control in the first row in either direction. */
.sb-topnav>.shell-brand{grid-area:brand}.sb-topnav>.programme-picker{grid-area:year}.sb-topnav>.account-menu{grid-area:user}.sb-topnav>.language-picker{grid-area:language;justify-self:end;padding:0;flex-shrink:0}.sb-topnav>.language-picker .btn{white-space:nowrap}
@media(min-width:992px) and (max-width:1199px){.sb-topnav .product-logo{width:125px}.sb-topnav .company-logo{width:32px;height:32px}.sb-topnav .shell-brand{gap:.4rem}.sb-topnav .icon-button{width:32px;min-width:32px}.sb-topnav .account-name,.sb-topnav .account-role{max-width:95px}}
@media(max-width:575px){.sb-topnav{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand language" "user user" "year year"}.sb-topnav>.account-menu{justify-self:start;max-width:100%}.sb-topnav .account-name,.sb-topnav .account-role{max-width:220px}.sb-topnav .programme-picker{grid-template-columns:1fr}.sb-topnav .programme-controls{justify-content:start}.sb-topnav .year-state{margin-inline-start:0}.sb-topnav .company-logo{width:30px;height:30px}}

@media(max-width:575px){.sb-topnav .brand-link:has(.company-logo)>.product-logo{width:110px}}
