/* 0.31: shared, tenant-coloured workspace. No external font requests. */
:root{--nav-width:292px;--radius:12px}
body{font-family:"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.6;background:#f4f6f5}
.app-topbar{gap:16px;min-height:80px}.app-content{max-width:1600px;padding:32px 36px 64px}
.app-content h1{font-size:clamp(26px,2.5vw,34px);font-weight:650;letter-spacing:-.025em;line-height:1.2}
.app-content h2{font-size:20px;line-height:1.35}.app-content h3{font-size:17px}
.ops-header{margin:0 0 26px;flex-wrap:wrap;gap:18px}.ops-header small{font-size:12px;letter-spacing:.07em}.ops-header p{font-size:16px;line-height:1.6;max-width:800px}
.app-sidebar{padding:24px 16px}.nav-brand{font-size:15px;padding-bottom:24px}.nav-brand small{font-size:12px}
.menu-link,.nav-group-links .menu-link{font-size:16px;min-height:48px;padding:12px;line-height:1.4;border-radius:8px}
.nav-group summary{font-size:16px;min-height:52px;padding:12px;font-weight:600}.nav-group-links{padding-left:22px;border-left:1px solid #ffffff30;margin-left:21px}.nav-group-links .menu-link{margin:3px 0}
.menu-link.active{box-shadow:inset 4px 0 0 var(--accent)}.nav-group{padding-top:10px;margin-top:12px}.nav-account{margin-top:30px}
.menu-toggle{width:auto;gap:10px;padding:0 14px;font-weight:600;font-size:15px;min-height:46px}.ui-icon{width:22px;height:22px}
.btn{font-size:15px;min-height:46px;padding:11px 18px;border-radius:8px;line-height:1.4}.btn:disabled{opacity:.55;cursor:not-allowed}
.form-control,.form-select,.ops-form input:not([type=checkbox]),.ops-form select,.ops-form textarea{font-size:16px;min-height:48px;border-radius:8px;padding:11px 13px;line-height:1.4}
label{font-size:15px;font-weight:550}label input,label select,label textarea{margin-top:6px;font-weight:400}.ops-form{gap:18px}.ops-form textarea{min-height:96px}
.ops-card{border-radius:12px;padding:26px;box-shadow:0 2px 4px #20382f03}.ops-list{border:1px solid var(--line);padding:16px;gap:6px;background:#fff}.ops-list strong{font-size:16px}.ops-list span{font-size:15px}.ops-list.selected{border-color:var(--brand);box-shadow:inset 4px 0 0 var(--brand);background:#f4f8f5}
.ops-tabs button{font-size:15px;min-height:46px}.ops-message:not(:empty){font-size:16px;padding:16px 20px;border-radius:8px}.help-text{font-size:14px;line-height:1.6;color:#52645b}
table{font-size:15px}th{font-size:13px;letter-spacing:.02em}td,th{padding:16px!important}.status-pill,.ops-badge{font-size:13px;font-weight:600;padding:5px 10px;border-radius:6px}.ux-warning{color:#8a5300}
.ui-dialog{border-radius:14px}.dialog-header h2{font-size:22px}.dialog-body{padding:28px}.dialog-footer{gap:12px}.permission-option,.subscription-group{border-radius:8px;padding:16px}.permission-option input{width:20px;height:20px}.form-section legend{font-size:18px}.check-label{display:flex;align-items:center;gap:10px}
.ux-back{display:inline-block;margin-bottom:18px;font-size:15px;font-weight:600;text-decoration:none}
.ux-toolbar{display:flex;flex-wrap:wrap;gap:14px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;margin:0 0 18px}.ux-toolbar label{display:block;flex:0 1 180px}.ux-toolbar .ux-search{flex:1 1 280px}.ux-search input{width:100%}.ux-toolbar .btn{flex-shrink:0}
.ux-list-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:18px 0 12px;font-size:14px;color:var(--muted)}.ux-list-meta strong{color:var(--ink)}
.ux-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.ux-table{width:100%;margin:0;min-width:700px}.ux-table thead{background:#f5f7f6}.ux-table th{white-space:nowrap}.ux-table tbody tr:last-child td{border-bottom:0}.ux-table tbody tr:hover{background:#f8faf9}.ux-table td{max-width:390px;overflow-wrap:anywhere}.ux-table small{display:block;color:var(--muted);font-size:14px;margin-top:5px;max-width:350px}.ux-table .ux-warning{color:#8a5300}.ux-primary-link{font-size:17px;font-weight:650;text-decoration:none}.ux-primary-link:hover{text-decoration:underline}.ux-nowrap{white-space:nowrap;font-variant-numeric:tabular-nums}.ux-row-actions{display:flex;flex-wrap:wrap;gap:8px}.ux-row-actions .btn{white-space:nowrap}
.ux-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0;font-size:14px;color:var(--muted)}.ux-empty{padding:48px 24px;text-align:center;border:1px dashed #bccbc2;border-radius:12px;background:#fff}.ux-empty>.ui-icon{width:36px;height:36px;color:var(--muted);margin-bottom:16px}.ux-empty h2{margin-bottom:12px}.ux-empty p{color:var(--muted)}
.customer-editor{max-width:1040px}.customer-editor .form-section{border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:24px}.editor-actions{display:flex;justify-content:flex-end;gap:12px;position:sticky;bottom:0;background:#fff;padding:16px 0;margin-bottom:-10px}
.ux-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 24px}.ux-kpis .ops-card{padding:22px}.ux-kpis span,.ux-kpis small{display:block;font-size:14px;color:var(--muted)}.ux-kpis strong{display:block;font-size:clamp(22px,2vw,30px);font-weight:650;letter-spacing:-.02em;margin:10px 0;font-variant-numeric:tabular-nums}
.ux-guidance{display:flex;gap:16px;align-items:center;padding:20px;border:1px solid #e8d5aa;background:#fffaf0;border-radius:12px;margin-bottom:24px}.ux-guidance p{margin:4px 0 0}.ux-guidance .btn{margin-left:auto;flex-shrink:0}
.ux-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:22px}.ux-tabs button{display:flex;align-items:center;gap:10px;padding:16px 20px;background:transparent;border:0;border-bottom:3px solid transparent;font-size:17px;font-weight:600;color:var(--muted)}.ux-tabs button.selected{border-bottom-color:var(--brand);color:var(--brand);background:#fff;border-radius:8px 8px 0 0}.ux-inline-detail{margin-top:12px;font-size:14px}.ux-inline-detail summary{min-height:36px;padding:6px 0;color:var(--brand)}.ux-inline-detail p{margin:8px 0;padding:8px;background:#f5f7f6;border-radius:6px}
@media(max-width:1200px){.ux-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.app-content{padding:26px 24px 48px}}
@media(max-width:960px){.app-sidebar{width:min(320px,88vw)}.app-content{padding:24px 16px 40px}.ops-header .btn{width:auto}.ux-toolbar{padding:16px}.ux-guidance{flex-wrap:wrap}.ux-guidance .btn{margin-left:0}.app-topbar{padding:0 14px;gap:10px}.menu-toggle span{display:none}.menu-toggle{padding:0 12px}.ops-card{padding:20px}}
@media(max-width:560px){.ux-toolbar label{flex:1 1 140px}.ux-toolbar .ux-search{flex-basis:100%}.ux-kpis{gap:10px}.ux-kpis .ops-card{padding:16px}.ux-tabs button{font-size:15px;padding:14px 10px}.ux-pagination{flex-wrap:wrap}.ux-pagination span{order:3;flex-basis:100%;text-align:center}.ux-table{min-width:640px}.topbar-brand small{display:none}.language-picker select{max-width:100px}}
@media print{.ux-toolbar,.ux-pagination,.editor-actions{display:none}.ux-table-wrap{overflow:visible}.ux-table{min-width:0}}
@media(max-width:600px){.ux-customers{min-width:0}.ux-customers thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.ux-customers tbody,.ux-customers tr,.ux-customers td{display:block;width:100%;max-width:none}.ux-customers tr{padding:16px;border-bottom:1px solid var(--line)}.ux-customers td{padding:5px 0!important;border:0}.ux-customers tr:last-child{border-bottom:0}.ux-customers .ux-row-actions{margin-top:10px}.ux-customers .ux-row-actions .btn{flex:1}.ux-customers small{max-width:none}}

/* Accessible feedback remains visible even when the action is below the fold. */
.operation-feedback{position:sticky;top:8px;z-index:100;display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:16px 20px;margin:16px 0;border:2px solid;border-radius:12px;box-shadow:0 4px 16px #0002;background:white}
.feedback-error{border-color:#b42318;color:#8f1c13;background:#fff3f1}.feedback-success{border-color:#167347;color:#125c38;background:#f0fff6}
.operation-feedback span{flex:1;min-width:200px}.operation-feedback:focus{outline:3px solid var(--accent)}
input.invalid,select.invalid,textarea.invalid,[aria-invalid=true]{border:2px solid #b42318!important;background:#fff8f7}.validation-message{color:#b42318;font-weight:600;margin-top:6px}
.workflow-steps,.workflow-actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0;align-items:center}.workflow-steps button{padding:16px 24px;border:1px solid #cdd5d0;border-radius:10px;background:#fff;font-size:18px}.workflow-steps button.active{background:var(--brand);color:#fff}.workflow-actions{justify-content:space-between}
.ops-form label small{display:block;font-weight:400}.signature-pad{touch-action:none;max-width:100%}
