:root{--jt-navy:#152a4e;--jt-navy-deep:#0f1f3a;--jt-gold:#cf9a34;--jt-gold-light:#e6c079;--jt-ink:#1a2233;--jt-muted:#6b7690;--jt-line:#e2e6ee;--jt-paper:#f4f5f8;--jt-surface:#fff;--jt-success:#2f8f5b;--jt-warning:#cf9a34;--jt-danger:#c0492f;--jt-info:#356b9a;--jt-success-fg:#256f48;--jt-success-bg:#e8f4ed;--jt-success-border:#b9ddc8;--jt-warning-fg:#7d5a18;--jt-warning-bg:#fbf3df;--jt-warning-border:#e7cc8d;--jt-danger-fg:#9d3827;--jt-danger-bg:#fbecea;--jt-danger-border:#e8b9b1;--jt-info-fg:#28577f;--jt-info-bg:#eaf1f8;--jt-info-border:#bdd0e3;--jt-font-sans:"Libre Franklin", system-ui, -apple-system, sans-serif;--jt-font-display:"Spectral", Georgia, serif;--jt-text-xs:12px;--jt-text-sm:14px;--jt-text-base:16px;--jt-text-lg:19px;--jt-text-xl:24px;--jt-text-2xl:32px;--jt-text-3xl:44px;--jt-radius-sm:8px;--jt-radius-md:12px;--jt-radius-lg:16px;--jt-radius-pill:999px;--jt-space-1:4px;--jt-space-2:8px;--jt-space-3:12px;--jt-space-4:16px;--jt-space-5:24px;--jt-space-6:32px;--jt-space-7:48px;--jt-shadow-sm:0 1px 2px #0f1f3a0f;--jt-shadow-md:0 1px 2px #0f1f3a0a, 0 10px 30px #0f1f3a0f;--jt-focus-ring:0 0 0 3px #cf9a346b, 0 0 0 1px var(--jt-navy-deep);--font:var(--jt-font-sans);--font-display:var(--jt-font-display);--sidebar-bg:var(--jt-navy-deep);--sidebar-border:#ffffff0f;--sidebar-w:232px;--accent:var(--jt-navy);--accent-dim:#152a4e1a;--accent-glow:#152a4e4d;--primary:var(--jt-navy);--primary-light:var(--accent-dim);--success:var(--jt-success);--warning:var(--jt-warning);--danger:var(--jt-danger);--info:var(--jt-info);--muted:var(--jt-muted);--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg:var(--jt-paper);--surface:var(--jt-surface);--border:var(--jt-line);--text:var(--jt-ink);--text-muted:var(--jt-muted);--text-head:var(--jt-navy-deep);--green-bg:var(--jt-success-bg);--green-text:var(--jt-success-fg);--red-bg:var(--jt-danger-bg);--red-text:var(--jt-danger-fg);--blue-bg:var(--jt-info-bg);--blue-text:var(--jt-info-fg);--amber-bg:var(--jt-warning-bg);--amber-text:var(--jt-warning-fg);--purple-bg:#ede9fe;--purple-text:#5b21b6;--shadow-sm:var(--jt-shadow-sm);--shadow-md:var(--jt-shadow-md);--shadow-lg:0 8px 24px #0f1f3a1a, 0 3px 8px #0f1f3a0f;--radius:var(--jt-radius-sm);--radius-lg:var(--jt-radius-md)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}#root{min-height:100vh;display:flex}.auth-card{border:1px solid var(--border);border-radius:var(--jt-radius-lg);background:var(--surface);width:min(420px,100vw - 2rem);box-shadow:var(--jt-shadow-md);padding:2rem}.auth-brand{justify-content:center;margin-bottom:1.25rem;display:flex}.auth-eyebrow{color:var(--amber-text);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:800}.auth-card h1{color:var(--text-head);font-family:var(--font-display);margin:.25rem 0 .5rem;font-size:1.8rem}.auth-intro{color:var(--text-muted);margin-bottom:1.35rem;line-height:1.55}.auth-form{flex-direction:column;gap:1rem;display:flex}.auth-field-help{color:var(--text-muted);margin-top:.35rem;font-size:.75rem;line-height:1.4;display:block}.auth-submit{justify-content:center;width:100%}.auth-footer-link{text-align:center;margin-top:1.25rem;font-size:.875rem}.user-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.user-delete-confirmation{gap:1rem;display:grid}.user-delete-confirmation p{color:var(--text-muted);font-size:.85rem}.user-organisation-summary{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.5rem;display:flex}.user-organisation-summary__empty{color:var(--text-muted)}.user-organisation-manager{gap:1.25rem;display:grid}.user-organisation-manager__intro{color:var(--text-muted);margin:0;font-size:.9rem}.user-organisation-manager__list{gap:.6rem;display:grid}.user-organisation-membership{border:1px solid var(--border);border-radius:var(--jt-radius-md);grid-template-columns:minmax(10rem,1fr) minmax(9rem,.7fr) auto auto;align-items:center;gap:.65rem;padding:.75rem;display:grid}.user-organisation-membership__identity{gap:.15rem;min-width:0;display:grid}.user-organisation-membership__identity strong{overflow-wrap:anywhere}.user-organisation-membership__identity span{color:var(--text-muted);font-size:.78rem}.user-organisation-membership__active{white-space:nowrap;align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.user-organisation-manager__add{border-top:1px solid var(--border);padding-top:1rem}.user-organisation-manager__add h3{margin:0 0 .75rem;font-size:1rem}.user-organisation-manager__form{grid-template-columns:minmax(12rem,1fr) minmax(10rem,.7fr) auto;align-items:end;gap:.75rem;display:grid}@media (width<=767px){.user-organisation-membership,.user-organisation-manager__form{grid-template-columns:1fr;align-items:stretch}.user-organisation-membership__active{min-height:2.5rem}}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-head);font-weight:600;line-height:1.2}h1{font-size:1.5rem;font-weight:700}h2{font-size:1.125rem}h3{font-size:.9375rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font)}input,select,textarea{font-family:var(--font);font-size:.875rem}:where(a,button,input,select,textarea,summary,[tabindex]:not([tabindex="-1"])):focus-visible{box-shadow:var(--jt-focus-ring);outline:none}:where(button,input,select,textarea){max-width:100%}:where(p,td,th,label){overflow-wrap:anywhere}.app-shell{width:100%;min-height:100vh;display:flex}.app-sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);z-index:100;border-right:1px solid var(--sidebar-border);flex-direction:column;transition:transform .28s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar-brand{align-items:center;gap:.6rem;padding:1.25rem 1.1rem 1rem;display:flex}.sidebar-org-switch{border-bottom:1px solid var(--sidebar-border);padding:0 .85rem .85rem}.sidebar-org-label{letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;margin:0 0 .35rem;padding:0 .25rem;font-size:.6875rem;font-weight:700;display:block}.sidebar-org-select{border-radius:var(--jt-radius-sm);color:#dbeafe;cursor:pointer;text-overflow:ellipsis;background-color:#0f172a94;border:1px solid #94a3b82e;outline:none;width:100%;min-width:0;height:36px;padding:0 2rem 0 .7rem;font-size:.8125rem;font-weight:600;line-height:1.2}.sidebar-org-select:hover{background-color:#0ea5e91a;border-color:#7dd3fc57}.sidebar-org-select:focus{border-color:#7dd3fcb3;box-shadow:0 0 0 3px #0ea5e929}.sidebar-org-select option{color:var(--gray-900);background:var(--surface)}.sidebar-nav{flex-direction:column;flex:1;gap:.125rem;padding:.75rem .65rem;display:flex;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:3px}.sidebar-nav::-webkit-scrollbar-track{background:0 0}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.nav-section-label{letter-spacing:.08em;text-transform:uppercase;color:#8290a5;-webkit-user-select:none;user-select:none;padding:.875rem .6rem .3rem;font-size:.6875rem;font-weight:700}.nav-item{border-radius:var(--jt-radius-sm);color:#a8b3c5;cursor:pointer;white-space:nowrap;text-align:left;background:0 0;border:none;align-items:center;gap:.6rem;width:100%;padding:.5rem .7rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s,box-shadow .15s;display:flex;position:relative}.nav-item:hover{color:#cbd5e1;background:#ffffff0e;text-decoration:none}.nav-item.active{color:#fff;box-shadow:inset 3px 0 0 var(--jt-gold);background:#ffffff12}.nav-item.active .nav-item-icon{color:var(--jt-gold-light)}.nav-item-icon{opacity:.8;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;display:flex}.advanced-nav{border-top:1px solid #ffffff0f;margin-top:.45rem;padding-top:.45rem}.advanced-nav-toggle{border-radius:var(--radius);color:#95a3b7;cursor:pointer;letter-spacing:.015em;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:.48rem .7rem;font-size:.75rem;font-weight:700;transition:background .15s,color .15s;display:flex}.advanced-nav-toggle:hover{color:#d4dbe5;background:#ffffff0e}.advanced-nav-toggle:focus-visible{outline:2px solid var(--jt-gold-light);outline-offset:1px}.advanced-nav-toggle.has-active-route{color:#fff}.advanced-nav-chevron{flex-shrink:0;transition:transform .18s}.advanced-nav-toggle[aria-expanded=true] .advanced-nav-chevron{transform:rotate(180deg)}.advanced-nav-items{margin-top:.15rem;padding-left:.45rem;position:relative}.advanced-nav-items:before{content:"";background:#ffffff1a;width:1px;position:absolute;top:.3rem;bottom:.3rem;left:.35rem}.nav-item--advanced{padding-left:.85rem;font-size:.8rem}.nav-item--advanced.active{box-shadow:none}@media (prefers-reduced-motion:reduce){.advanced-nav-chevron{transition:none}}.sidebar-footer{border-top:1px solid var(--sidebar-border);align-items:center;gap:.6rem;padding:.875rem 1rem;display:flex}.sidebar-portal-switch{border-radius:var(--jt-radius-sm);color:var(--jt-gold-light);border:1px solid #e6c07959;align-items:center;gap:.6rem;margin:.25rem .75rem .65rem;padding:.6rem .75rem;font-size:.8rem;font-weight:700;text-decoration:none;display:flex}.sidebar-portal-switch:hover{color:#fff;background:#e6c07914;text-decoration:none}.sidebar-avatar{background:linear-gradient(135deg, var(--jt-navy), var(--jt-gold));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8125rem;font-weight:700;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{color:var(--border);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:600;overflow:hidden}.sidebar-user-role{color:#8795aa;white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.sidebar-logout-btn{border-radius:var(--jt-radius-sm);color:#8b99ad;cursor:pointer;background:0 0;border:1px solid #ffffff12;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;transition:background .15s,color .15s;display:flex}.sidebar-logout-btn:hover{color:#94a3b8;background:#ffffff0f}.app-main{margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex}.app-topbar{background:var(--sidebar-bg);border-bottom:1px solid var(--sidebar-border);z-index:90;flex-shrink:0;align-items:center;gap:.75rem;height:54px;padding:0 1rem;display:none;position:sticky;top:0}.topbar-hamburger{color:#94a3b8;cursor:pointer;border-radius:var(--jt-radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;display:flex}.topbar-hamburger:hover{background:#ffffff0f}.topbar-brand{color:#f1f5f9;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:700;display:flex}.notification-center{position:relative}.notification-trigger{border-radius:var(--radius);color:inherit;cursor:pointer;background:0 0;border:0;padding:.3rem .45rem;line-height:1;display:flex;position:relative}.notification-trigger:hover,.notification-trigger:focus-visible{background:#ffffff14}.notification-trigger:focus-visible,.topbar-language:focus-visible{outline:2px solid var(--jt-gold-light);outline-offset:2px}.competition-export-menu-item:hover:not(:disabled),.competition-export-menu-item:focus-visible{background:var(--bg);outline:none}.competition-export-menu-item:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.notification-count{border-radius:var(--jt-radius-pill);background:var(--danger);color:#fff;justify-content:center;align-items:center;min-width:15px;height:15px;padding:0 3px;font-size:.6rem;font-weight:800;line-height:1;display:flex;position:absolute;top:-3px;right:-3px}.notification-popover{z-index:200;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:min(340px,100vw - 2rem);max-height:min(420px,100vh - 76px);box-shadow:var(--shadow-lg);color:var(--text);position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}.notification-header{z-index:1;border-bottom:1px solid var(--border);background:#fffffff5;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .9rem;display:flex;position:sticky;top:0}.notification-title{color:var(--text-head);font-size:.825rem;font-weight:700}.notification-unread-label{color:var(--text-muted);margin-left:.35rem;font-weight:400}.notification-mark-all{color:var(--primary);cursor:pointer;background:0 0;border:0;flex-shrink:0;font-size:.725rem;font-weight:700}.notification-mark-all:hover{text-decoration:underline}.notification-empty{color:var(--text-muted);text-align:center;padding:1.25rem .9rem;font-size:.825rem}.notification-item{border-bottom:1px solid var(--border);padding:.75rem .9rem}.notification-item.is-unread{background:var(--primary-light);cursor:pointer}.notification-item.is-unread:hover{background:#152a4e24}.notification-item-title{font-size:.8rem;line-height:1.4}.notification-item.is-unread .notification-item-title{font-weight:700}.notification-item-body{color:var(--text-muted);margin-top:.15rem;font-size:.75rem;line-height:1.4}.notification-item-date{color:var(--gray-400);margin-top:.2rem;font-size:.675rem}.topbar-language{border-radius:var(--radius);color:#e2e8f0;cursor:pointer;background:#ffffff14;border:1px solid #fff3;max-width:120px;padding:.25rem .5rem;font-family:inherit;font-size:.75rem}.topbar-language option{color:var(--text);background:var(--surface)}.topbar-actions{align-items:center;gap:.25rem;margin-left:auto;display:flex}.sidebar-overlay{z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;display:none;position:fixed;inset:0}.app-content{flex:1;min-width:0;padding:2rem 2rem 3rem;overflow-x:clip}.app-content>[style*="padding: 2rem"][style*=max-width]{width:100%;padding:0!important}.direct-role-button{position:relative}.direct-role-button:hover:not(:disabled){border-color:var(--jt-info-fg)!important;background:var(--surface)!important}.direct-role-button:disabled,.direct-role-button[aria-disabled=true]{opacity:.5;cursor:not-allowed!important}.direct-role-button:after{content:attr(data-tooltip);z-index:30;border-radius:var(--jt-radius-sm);background:var(--jt-navy-deep);color:#fff;width:max-content;max-width:min(18rem,100vw - 2rem);box-shadow:var(--shadow-md);font-size:var(--jt-text-xs);letter-spacing:normal;opacity:0;pointer-events:none;text-align:center;padding:.4rem .55rem;font-weight:600;line-height:1.35;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%,.2rem)}.direct-role-button:hover:after,.direct-role-button:focus-visible:after{opacity:1;transform:translate(-50%)}.notification-onboarding-intro{color:var(--text);font-size:var(--jt-text-sm);line-height:1.6}.notification-onboarding-list{gap:var(--jt-space-3);margin:var(--jt-space-5) 0;list-style:none;display:grid}.notification-onboarding-list li{align-items:flex-start;gap:var(--jt-space-3);color:var(--text);font-size:var(--jt-text-sm);display:flex}.notification-onboarding-list svg{color:var(--jt-warning-fg);flex:none;margin-top:.1rem}.notification-onboarding-note{margin-bottom:var(--jt-space-4);color:var(--text-muted);font-size:var(--jt-text-xs);line-height:1.55}.organisation-error-banner{border:1px solid var(--red-bg);border-radius:var(--radius);color:var(--red-text);background:#fff7f7;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem;display:flex}.organisation-error-banner button{border-radius:var(--jt-radius-sm);color:var(--red-text);cursor:pointer;background:#fff;border:1px solid #fecaca;padding:.35rem .7rem;font-weight:600}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;display:flex}.page-title{color:var(--text-head);letter-spacing:-.02em;font-size:1.375rem;font-weight:700}.filters-bar{flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:1rem;display:flex}.section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--gray-400);border-bottom:1px solid var(--border);margin-bottom:.75rem;padding-bottom:.5rem;font-size:.8125rem;font-weight:700}.back-link{color:var(--text-muted);align-items:center;gap:.35rem;margin-bottom:.75rem;font-size:.8125rem;font-weight:500;text-decoration:none;transition:color .15s;display:inline-flex}.back-link:hover{color:var(--text);text-decoration:none}.msg-error{color:#dc2626;margin-bottom:.5rem;font-size:.875rem}@media (width<=768px){.app-sidebar{box-shadow:none;transform:translate(-100%)}.app-sidebar.is-open{transform:translate(0);box-shadow:8px 0 32px #0006}.sidebar-overlay.is-open{display:block}.app-main{margin-left:0}.app-topbar{display:flex}.app-content{padding:1.25rem 1rem 2rem}.page-header{margin-bottom:1.25rem}}.offline-banner{z-index:2000;text-align:center;color:#7a4a00;background:#ffe6b3;border-bottom:1px solid #e0b96a;padding:.4rem 1rem;font-size:.85rem;font-weight:600;position:fixed;top:0;left:0;right:0}:root{--jt-navy:#152a4e;--jt-navy-deep:#0f1f3a;--jt-gold:#cf9a34;--jt-gold-light:#e6c079;--jt-ink:#1a2233;--jt-muted:#6b7690;--jt-line:#e2e6ee;--jt-paper:#f4f5f8;--jt-surface:#fff;--jt-success:#2f8f5b;--jt-warning:#cf9a34;--jt-danger:#c0492f;--jt-info:#356b9a;--jt-success-fg:#256f48;--jt-success-bg:#e8f4ed;--jt-success-border:#b9ddc8;--jt-warning-fg:#7d5a18;--jt-warning-bg:#fbf3df;--jt-warning-border:#e7cc8d;--jt-danger-fg:#9d3827;--jt-danger-bg:#fbecea;--jt-danger-border:#e8b9b1;--jt-info-fg:#28577f;--jt-info-bg:#eaf1f8;--jt-info-border:#bdd0e3;--jt-font-sans:"Libre Franklin", system-ui, -apple-system, sans-serif;--jt-font-display:"Spectral", Georgia, serif;--jt-text-xs:12px;--jt-text-sm:14px;--jt-text-base:16px;--jt-text-lg:19px;--jt-text-xl:24px;--jt-text-2xl:32px;--jt-text-3xl:44px;--jt-radius-sm:8px;--jt-radius-md:12px;--jt-radius-lg:16px;--jt-radius-pill:999px;--jt-space-1:4px;--jt-space-2:8px;--jt-space-3:12px;--jt-space-4:16px;--jt-space-5:24px;--jt-space-6:32px;--jt-space-7:48px;--jt-shadow-sm:0 1px 2px #0f1f3a0f;--jt-shadow-md:0 1px 2px #0f1f3a0a, 0 10px 30px #0f1f3a0f;--jt-focus-ring:0 0 0 3px #cf9a346b, 0 0 0 1px var(--jt-navy-deep);--font:var(--jt-font-sans);--font-display:var(--jt-font-display);--sidebar-bg:var(--jt-navy-deep);--sidebar-border:#ffffff0f;--sidebar-w:232px;--accent:var(--jt-navy);--accent-dim:#152a4e1a;--accent-glow:#152a4e4d;--primary:var(--jt-navy);--primary-light:var(--accent-dim);--success:var(--jt-success);--warning:var(--jt-warning);--danger:var(--jt-danger);--info:var(--jt-info);--muted:var(--jt-muted);--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--bg:var(--jt-paper);--surface:var(--jt-surface);--border:var(--jt-line);--text:var(--jt-ink);--text-muted:var(--jt-muted);--text-head:var(--jt-navy-deep);--green-bg:var(--jt-success-bg);--green-text:var(--jt-success-fg);--red-bg:var(--jt-danger-bg);--red-text:var(--jt-danger-fg);--blue-bg:var(--jt-info-bg);--blue-text:var(--jt-info-fg);--amber-bg:var(--jt-warning-bg);--amber-text:var(--jt-warning-fg);--purple-bg:#ede9fe;--purple-text:#5b21b6;--shadow-sm:var(--jt-shadow-sm);--shadow-md:var(--jt-shadow-md);--shadow-lg:0 8px 24px #0f1f3a1a, 0 3px 8px #0f1f3a0f;--radius:var(--jt-radius-sm);--radius-lg:var(--jt-radius-md)}.ds-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;animation:.6s linear infinite ds-spin;display:inline-block}.ds-spinner-sm{border-width:2px;width:14px;height:14px}.ds-spinner-md{border-width:2px;width:20px;height:20px}.ds-spinner-lg{border-width:3px;width:32px;height:32px}@keyframes ds-spin{to{transform:rotate(360deg)}}.btn{border-radius:var(--jt-radius-sm);font-family:var(--font);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn:hover{text-decoration:none}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 4px #152a4e4d}.btn-primary:hover{background:var(--jt-navy-deep);box-shadow:0 2px 8px #152a4e66}.btn-secondary{background:var(--surface);color:var(--gray-700);border:1px solid var(--border)}.btn-secondary:hover{background:var(--gray-50);border-color:var(--gray-300)}.btn-danger{color:var(--jt-danger);background:0 0;border:1px solid #dfa79a}.btn-danger:hover{background:var(--red-bg);border-color:var(--jt-danger)}.btn-ghost{color:var(--accent);background:0 0;border:1px solid #0000}.btn-ghost:hover{background:var(--accent-dim);border-color:#152a4e33}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sm{padding:.3rem .7rem;font-size:.8125rem}.badge{white-space:nowrap;border-radius:99px;align-items:center;padding:.175rem .55rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-green{background:var(--green-bg);color:var(--green-text)}.badge-red{background:var(--red-bg);color:var(--red-text)}.badge-blue{background:var(--blue-bg);color:var(--blue-text)}.badge-amber{background:var(--amber-bg);color:var(--amber-text)}.badge-purple{background:var(--purple-bg);color:var(--purple-text)}.badge-gray{background:var(--gray-100);color:var(--gray-500)}.badge-success{background:var(--jt-success-bg);color:var(--jt-success-fg)}.badge-warning{background:var(--jt-warning-bg);color:var(--jt-warning-fg)}.badge-danger{background:var(--jt-danger-bg);color:var(--jt-danger-fg)}.badge-info{background:var(--jt-info-bg);color:var(--jt-info-fg)}.badge-neutral{background:var(--gray-100);color:var(--gray-500)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-body{padding:1.25rem 1.5rem}.form-control{border:1px solid var(--border);border-radius:var(--jt-radius-sm);width:100%;font-family:var(--font);color:var(--text);background:var(--surface);outline:none;padding:.475rem .75rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.form-control:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.form-control::placeholder{color:var(--gray-300)}select.form-control{cursor:pointer}.form-control.is-invalid{border-color:#dfa79a}.form-control.is-invalid:focus{border-color:var(--jt-danger);box-shadow:0 0 0 3px #c0492f24}.ds-field{flex-direction:column;gap:.3rem;display:flex}.ds-field-label{color:var(--text);font-size:.875rem;font-weight:500}.ds-field-required{color:var(--red-text);margin-left:.15rem}.ds-field-error{color:var(--jt-danger);font-size:.8125rem}.table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--gray-400);background:var(--gray-50);border-bottom:1px solid var(--border);white-space:nowrap;padding:.6rem 1rem;font-size:.75rem;font-weight:700}.table th:first-child{border-radius:var(--radius) 0 0 0}.table th:last-child{border-radius:0 var(--radius) 0 0}.table td{border-bottom:1px solid var(--gray-100);vertical-align:middle;padding:.7rem 1rem;font-size:.875rem}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--gray-50)}.table .row-muted td{opacity:.5}.pagination{justify-content:center;align-items:center;gap:.5rem;margin-top:1.25rem;display:flex}.pagination-info{color:var(--text-muted);padding:0 .25rem;font-size:.875rem}.ds-modal-overlay{z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.ds-modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-height:85vh;display:flex;overflow:hidden}.ds-modal-sm{max-width:400px}.ds-modal-md{max-width:560px}.ds-modal-lg{max-width:760px}.ds-modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.5rem;display:flex}.ds-modal-title{color:var(--text-head);font-size:1.125rem;font-weight:600}.ds-modal-close{color:var(--gray-400);cursor:pointer;border-radius:var(--jt-radius-sm);background:0 0;border:none;flex-shrink:0;padding:.15rem .4rem;font-size:1.5rem;line-height:1}.ds-modal-close:hover{background:var(--gray-100);color:var(--text)}.ds-modal-body{flex:1;padding:1.25rem 1.5rem;overflow-y:auto}.ds-modal-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:.65rem;padding:1rem 1.5rem;display:flex}.ds-alert{border-radius:var(--radius);border:1px solid #0000;align-items:flex-start;gap:.6rem;padding:.75rem 1rem;font-size:.875rem;line-height:1.45;display:flex}.ds-alert-success{border-color:var(--jt-success-border);background:var(--jt-success-bg);color:var(--jt-success-fg)}.ds-alert-error{border-color:var(--jt-danger-border);background:var(--jt-danger-bg);color:var(--jt-danger-fg)}.ds-alert-warning{border-color:var(--jt-warning-border);background:var(--jt-warning-bg);color:var(--jt-warning-fg)}.ds-alert-info{border-color:var(--jt-info-border);background:var(--jt-info-bg);color:var(--jt-info-fg)}.ds-alert-page{min-height:13rem;padding:var(--jt-space-6);text-align:center;justify-content:center;align-items:center}.ds-alert-actions{gap:var(--jt-space-2);margin-top:var(--jt-space-3);flex-wrap:wrap;display:flex}.ds-alert-page .ds-alert-actions{justify-content:center}.ds-alert-title{margin-bottom:.15rem;font-weight:700}.ds-alert-body{overflow-wrap:anywhere;flex:1;min-width:0}.ds-empty-state{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1rem;font-size:.9rem;display:flex}.ds-empty-state-icon{color:var(--gray-300);margin-bottom:.25rem}.ds-empty-state-page{justify-content:center;min-height:16rem}.ds-empty-state-title{color:var(--text-head);font-size:var(--jt-text-lg)}.ds-empty-state p{overflow-wrap:anywhere;max-width:42rem}.radio-group-list{flex-direction:column;gap:.5rem;display:flex}.radio-group-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;display:grid}.radio-option{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;align-items:center;gap:.5rem;padding:.6rem .8rem;transition:border-color .15s,background .15s;display:flex}.radio-group-grid .radio-option{text-align:center;flex-direction:column;justify-content:center}.radio-option:hover{border-color:var(--accent)}.radio-option-selected{border-color:var(--accent);background:var(--accent-dim)}.radio-option-disabled{cursor:not-allowed;opacity:.6}.radio-option input[type=radio]{accent-color:var(--accent)}.radio-option-label{color:var(--text);font-size:.9rem;font-weight:500}.radio-option-description{color:var(--text-muted);font-size:.75rem}.toggle-btn-group{flex-wrap:wrap;gap:.5rem;display:inline-flex}.toggle-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;padding:.5rem 1rem;font-size:.9rem;font-weight:600;transition:border-color .15s,background .15s,color .15s}.toggle-btn:hover:not(:disabled){border-color:var(--accent)}.toggle-btn-selected{border-color:var(--accent);background:var(--accent);color:#fff}.toggle-btn:disabled{cursor:not-allowed;opacity:.6}.ds-page{width:100%;min-width:0;margin-inline:auto}.ds-page--narrow{max-width:720px}.ds-page--default{max-width:1040px}.ds-page--wide{max-width:1280px}.ds-page--full{max-width:none}.ds-page-header,.ds-section-header{justify-content:space-between;align-items:flex-start;gap:var(--jt-space-5);min-width:0;display:flex}.ds-page-header{margin-bottom:var(--jt-space-6)}.ds-section-header{margin-bottom:var(--jt-space-4);padding-bottom:var(--jt-space-3);border-bottom:1px solid var(--border)}.ds-page-header__copy,.ds-section-header__copy{min-width:0}.ds-page-header__eyebrow{margin-bottom:var(--jt-space-1);color:var(--jt-warning-fg);font-size:var(--jt-text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.ds-page-header__title{color:var(--text-head);font:700 var(--jt-text-xl)/1.15 var(--font-display);letter-spacing:-.02em;overflow-wrap:anywhere}.ds-page-header__description{max-width:70ch;margin-top:var(--jt-space-2);color:var(--text-muted);font-size:var(--jt-text-sm)}.ds-section-header__title{color:var(--text-head);font:600 var(--jt-text-lg)/1.25 var(--font-display)}.ds-section-header__description{max-width:70ch;margin-top:var(--jt-space-1);color:var(--text-muted);font-size:var(--jt-text-sm)}.ds-page-header__actions,.ds-section-header__actions{justify-content:flex-end;align-items:center;gap:var(--jt-space-2);flex-wrap:wrap;flex:none;display:flex}.ds-form-grid{gap:var(--jt-space-4);min-width:0;display:grid}.ds-form-grid--1{grid-template-columns:minmax(0,1fr)}.ds-form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-form-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.ds-form-grid>*{min-width:0}.ds-action-row{align-items:center;gap:var(--jt-space-2);margin-top:var(--jt-space-5);flex-wrap:wrap;display:flex}.ds-action-row--start{justify-content:flex-start}.ds-action-row--end{justify-content:flex-end}.ds-action-row--between{justify-content:space-between}.ds-definition-list{gap:0;display:grid}.ds-definition-list--2{column-gap:var(--jt-space-6);grid-template-columns:repeat(2,minmax(0,1fr))}.ds-definition-list--3{column-gap:var(--jt-space-6);grid-template-columns:repeat(3,minmax(0,1fr))}.ds-definition-list__item{gap:var(--jt-space-4);padding-block:var(--jt-space-3);border-bottom:1px solid var(--border);grid-template-columns:minmax(7rem,.7fr) minmax(0,1.3fr);display:grid}.ds-definition-list dt{color:var(--text-muted);font-size:var(--jt-text-sm);font-weight:600}.ds-definition-list dd{min-width:0;color:var(--text);font-size:var(--jt-text-sm);overflow-wrap:anywhere}@media (width<=767px){.ds-page-header,.ds-section-header{gap:var(--jt-space-3);flex-direction:column}.ds-page-header{margin-bottom:var(--jt-space-5)}.ds-page-header__actions,.ds-section-header__actions{justify-content:flex-start;width:100%}.ds-form-grid--2,.ds-form-grid--3,.ds-definition-list--2,.ds-definition-list--3{grid-template-columns:minmax(0,1fr)}.ds-action-row--stack{flex-direction:column;align-items:stretch}.ds-action-row--stack>*{justify-content:center;width:100%}.ds-definition-list__item{gap:var(--jt-space-1);grid-template-columns:minmax(0,1fr)}}.ds-status-panel{gap:var(--jt-space-3);min-width:0;padding:var(--jt-space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);display:flex}.ds-status-panel--page{min-height:13rem;padding:var(--jt-space-6);text-align:center;justify-content:center;align-items:center}.ds-status-panel--page .ds-status-panel__content{max-width:38rem}.ds-status-panel--success{border-color:var(--jt-success-border);background:var(--jt-success-bg);color:var(--jt-success-fg)}.ds-status-panel--warning{border-color:var(--jt-warning-border);background:var(--jt-warning-bg);color:var(--jt-warning-fg)}.ds-status-panel--danger{border-color:var(--jt-danger-border);background:var(--jt-danger-bg);color:var(--jt-danger-fg)}.ds-status-panel--info{border-color:var(--jt-info-border);background:var(--jt-info-bg);color:var(--jt-info-fg)}.ds-status-panel__icon{flex:none;margin-top:.1rem;display:flex}.ds-status-panel__title{margin-bottom:var(--jt-space-1);font-weight:700}.ds-status-panel__message{font-size:var(--jt-text-sm);overflow-wrap:anywhere}.ds-status-panel__actions{gap:var(--jt-space-2);margin-top:var(--jt-space-3);flex-wrap:wrap;display:flex}.ds-status-panel--page .ds-status-panel__actions{justify-content:center}.jp-shell{min-height:100vh;font-family:var(--jt-font-sans);display:flex}.jp-sidebar{background:var(--jt-navy);color:#fff;flex-direction:column;flex-shrink:0;width:220px;padding:1.5rem 0;transition:transform .25s;display:flex}.jp-topbar{z-index:100;background:var(--jt-navy);flex-shrink:0;align-items:center;gap:.75rem;height:52px;padding:0 1rem;display:none;position:sticky;top:0}.jp-topbar-title{color:#fff;flex:1;font-size:1rem;font-weight:700}.jp-hamburger{color:#fff;cursor:pointer;border-radius:var(--jt-radius-sm);background:0 0;border:none;padding:.25rem .4rem;font-size:1.4rem;line-height:1}.jp-hamburger:hover{background:#ffffff1a}.jp-overlay{z-index:200;background:#0006;display:none;position:fixed;inset:0}.jp-overlay.is-open{display:block}.jp-main{background:var(--jt-paper);flex-direction:column;flex:1;min-width:0;display:flex;overflow:auto}.jp-page{flex:1;padding:2rem}.jp-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=768px){.jp-shell{flex-direction:column;min-width:0}.jp-topbar{box-sizing:border-box;width:100%;display:flex}.jp-sidebar{z-index:300;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.jp-sidebar.is-open{transform:translate(0);box-shadow:8px 0 32px #0006}.jp-main{margin-left:0}.jp-page{padding:1rem}}@media (prefers-reduced-motion:reduce){.jp-sidebar{transition:none}}
