:root {
  --ink: #172033; --muted: #667085; --line: #e6e9ef; --bg: #f5f7fb; --panel: #fff;
  --primary: #2357d8; --primary-strong: #1947ba; --primary-soft: #edf3ff;
  --success: #087a55; --success-soft: #eaf8f2; --warning: #a35c00; --warning-soft: #fff4df;
  --danger: #b42318; --danger-soft: #fff0ee; --sidebar: #101828; --sidebar-muted: #98a2b3;
  --shadow: 0 10px 30px rgba(16,24,40,.06); --radius: 14px;
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body { margin:0; min-height:100vh; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--ink); background:var(--bg); font-size:14px; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button { cursor:pointer; }
.app-shell { min-height:100vh; display:flex; }
.sidebar { position:fixed; inset:0 auto 0 0; width:260px; background:var(--sidebar); color:#fff; display:flex; flex-direction:column; z-index:30; }
.brand { min-height:76px; display:flex; align-items:center; gap:12px; padding:16px 20px; border-bottom:1px solid rgba(255,255,255,.08); }
.brand-mark { width:38px; height:38px; border-radius:11px; display:grid; place-items:center; background:#fff; color:var(--primary); font-weight:800; font-size:19px; box-shadow:0 4px 14px rgba(0,0,0,.12); }
.brand-mark-lg { width:50px; height:50px; font-size:24px; }
.brand strong, .hero-brand strong { display:block; font-size:15px; letter-spacing:.02em; }
.brand span, .hero-brand span { display:block; color:var(--sidebar-muted); font-size:12px; margin-top:2px; }
.nav { padding:14px 12px; overflow:auto; flex:1; }
.nav-section + .nav-section { margin-top:16px; }
.nav-title { color:#667085; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; padding:7px 10px; }
.nav-item { display:flex; gap:11px; align-items:center; padding:10px 11px; border-radius:9px; color:#cfd4dc; margin:2px 0; transition:.15s ease; }
.nav-item:hover { background:rgba(255,255,255,.06); color:#fff; }
.nav-item.active { background:#1d2939; color:#fff; box-shadow:inset 3px 0 0 #7aa2ff; }
.nav-icon { width:23px; height:23px; display:grid; place-items:center; color:#9fb7ef; font-weight:700; }
.sidebar-footer { border-top:1px solid rgba(255,255,255,.08); padding:16px 20px 18px; color:var(--sidebar-muted); display:grid; gap:7px; }
.runtime-badge { color:#d0d5dd; font-size:12px; display:flex; align-items:center; gap:8px; }
.dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#98a2b3; }
.dot.online { background:#32d583; box-shadow:0 0 0 3px rgba(50,213,131,.14); }
.dot.mock { background:#fdb022; }
.main-shell { margin-left:260px; width:calc(100% - 260px); min-height:100vh; display:flex; flex-direction:column; }
.topbar { min-height:76px; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; padding:0 28px; position:sticky; top:0; z-index:20; }
.topbar-title span { display:block; font-weight:750; }
.topbar-title small { color:var(--muted); }
.topbar-actions { display:flex; align-items:center; gap:13px; }
.icon-button { border:0; background:transparent; width:38px; height:38px; border-radius:9px; position:relative; color:#475467; }
.icon-button:hover { background:#f2f4f7; }
.notification-dot { position:absolute; top:7px; right:7px; width:6px; height:6px; border-radius:50%; background:#f04438; }
.user-chip { display:flex; align-items:center; gap:9px; border-left:1px solid var(--line); padding-left:13px; }
.avatar { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:var(--primary-soft); color:var(--primary); font-weight:800; flex:none; }
.avatar-small { width:34px; height:34px; font-size:12px; }
.avatar-xl { width:78px; height:78px; font-size:28px; }
.user-meta strong { display:block; font-size:12px; }
.user-meta span { color:var(--muted); font-size:11px; text-transform:capitalize; }
.content { padding:30px; flex:1; max-width:1600px; width:100%; margin:0 auto; }
.app-footer { display:flex; justify-content:space-between; padding:16px 30px 22px; color:#98a2b3; font-size:11px; }
.page-header { display:flex; justify-content:space-between; gap:20px; align-items:flex-end; margin-bottom:22px; }
.page-header h1 { margin:4px 0 5px; font-size:27px; line-height:1.2; letter-spacing:-.02em; }
.page-header p, .panel-header p { margin:0; color:var(--muted); max-width:760px; }
.eyebrow { font-size:10px; font-weight:800; color:var(--primary); letter-spacing:.13em; }
.page-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.page-actions.centered { justify-content:center; }
.btn { border:1px solid transparent; border-radius:9px; min-height:38px; padding:8px 14px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; gap:7px; transition:.15s ease; }
.btn-primary { color:#fff; background:var(--primary); border-color:var(--primary); }
.btn-primary:hover { background:var(--primary-strong); }
.btn-secondary { background:#fff; border-color:#d0d5dd; color:#344054; }
.btn-secondary:hover, .btn-ghost:hover { background:#f9fafb; }
.btn-ghost { background:transparent; border-color:transparent; color:#475467; }
.btn-sm { min-height:32px; padding:5px 10px; font-size:12px; }
.btn-lg { min-height:46px; }
.full { width:100%; }
.status-chip { display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border:1px solid var(--line); background:#fff; border-radius:999px; color:#475467; font-size:12px; }
.metric-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:16px; margin-bottom:18px; }
.metric-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:18px; box-shadow:var(--shadow); position:relative; overflow:hidden; }
.metric-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:#98a2b3; }
.metric-card.primary::before { background:var(--primary); }.metric-card.success::before{background:var(--success)}.metric-card.warning::before{background:#f79009}
.metric-label { color:var(--muted); font-weight:650; font-size:12px; }
.metric-value { font-size:29px; font-weight:800; margin:7px 0 3px; letter-spacing:-.03em; }
.metric-delta { color:#667085; font-size:11px; }
.dashboard-grid { display:grid; grid-template-columns:repeat(12, 1fr); gap:18px; }
.span-12{grid-column:span 12}.span-7{grid-column:span 7}.span-5{grid-column:span 5}
.panel { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; }
.panel-header { padding:18px 20px; display:flex; justify-content:space-between; gap:14px; align-items:center; border-bottom:1px solid var(--line); }
.panel-header h2 { margin:0 0 3px; font-size:15px; }.panel-header p{font-size:12px}
.text-link { color:var(--primary); font-weight:700; font-size:12px; }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; }
th { background:#f8fafc; color:#667085; font-size:10px; text-transform:uppercase; letter-spacing:.07em; text-align:left; padding:11px 14px; border-bottom:1px solid var(--line); white-space:nowrap; }
td { padding:13px 14px; border-bottom:1px solid #eef1f5; color:#344054; white-space:nowrap; }
tbody tr:hover { background:#fbfcfe; }
tbody tr:last-child td { border-bottom:0; }
.align-right{text-align:right}
.progress-native { width:90px; height:7px; border:0; border-radius:999px; overflow:hidden; background:#edf0f4; } .progress-native::-webkit-progress-bar{background:#edf0f4;border-radius:999px}.progress-native::-webkit-progress-value{background:var(--primary);border-radius:999px}.progress-native::-moz-progress-bar{background:var(--primary);border-radius:999px}
.approval-list { padding:4px 18px; }.approval-item { display:flex; align-items:center; gap:11px; padding:13px 0; border-bottom:1px solid #eef1f5; }.approval-item:last-child{border-bottom:0}
.approval-icon { width:34px;height:34px;border-radius:9px;background:#f2f4f7;display:grid;place-items:center;font-weight:800;color:#475467}.approval-copy{display:grid;flex:1}.approval-copy strong{font-size:12px}.approval-copy span{font-size:12px;color:#475467}.approval-copy small{color:#98a2b3;font-size:10px}
.badge { display:inline-flex; align-items:center; justify-content:center; border-radius:999px; padding:4px 8px; font-size:10px; font-weight:800; border:1px solid transparent; }
.badge.success { color:var(--success); background:var(--success-soft); border-color:#c9efdf; }.badge.warning{color:var(--warning);background:var(--warning-soft);border-color:#fbdca8}.badge.neutral{color:#475467;background:#f2f4f7;border-color:#eaecf0}
.shortcut-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; padding:18px; }.shortcut{border:1px solid var(--line);border-radius:11px;padding:15px;display:grid;gap:4px}.shortcut:hover{border-color:#b8c9f2;background:#fbfdff}.shortcut>span{color:var(--primary);font-weight:800;font-size:18px}.shortcut strong{font-size:12px}.shortcut small{color:var(--muted)}
.toolbar { padding:12px 14px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:12px; align-items:center; }.toolbar-meta{display:flex;align-items:center;gap:8px}
.searchbox { display:flex; align-items:center; gap:8px; width:min(420px,100%); background:#f8fafc; border:1px solid #e4e7ec; border-radius:9px; padding:0 10px; min-height:38px; }.searchbox input{border:0;outline:0;background:transparent;width:100%;color:var(--ink)}.search-form{padding-right:4px}
.pagination { display:flex;justify-content:space-between;align-items:center;padding:12px 14px;color:var(--muted);font-size:11px;border-top:1px solid var(--line)}.pagination button{border:1px solid var(--line);background:#fff;border-radius:7px;width:30px;height:30px;margin-left:4px}.pagination button.current{border-color:#adc4f6;color:var(--primary);background:var(--primary-soft)}
.row-action { border:0; background:transparent; color:#667085; font-weight:800; width:31px;height:31px;border-radius:7px}.row-action:hover{background:#f2f4f7}.row-link{display:inline-grid;place-items:center}
.person-cell{display:flex;align-items:center;gap:9px}.person-cell>div:last-child{display:grid}.person-cell a:hover{color:var(--primary)}.person-cell span{font-size:10px;color:#98a2b3;margin-top:2px}
.modal { border:0; padding:0; background:transparent; width:min(580px,calc(100vw - 28px)); max-width:none; }.modal::backdrop{background:rgba(16,24,40,.48);backdrop-filter:blur(2px)}.modal-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 24px 70px rgba(16,24,40,.25)}.modal-sm{max-width:430px}.modal-lg{max-width:760px}.modal-header{display:flex;justify-content:space-between;gap:20px;padding:20px;border-bottom:1px solid var(--line)}.modal-header h3{margin:0 0 4px;font-size:17px}.modal-header p{margin:0;color:var(--muted);font-size:12px}.modal-close{border:0;background:#f2f4f7;width:30px;height:30px;border-radius:8px;color:#667085;font-size:20px;line-height:1}.modal-body{padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line);background:#fbfcfd}
.form-stack{display:grid;gap:15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:grid;gap:6px}.field>span{font-size:11px;font-weight:750;color:#475467}.field input,.field select{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:9px 10px;min-height:40px;outline:0;background:#fff;color:var(--ink)}.field input:focus,.field select:focus{border-color:#7aa2ff;box-shadow:0 0 0 3px rgba(35,87,216,.1)}
.form-row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.checkbox{display:flex;align-items:center;gap:7px;font-size:11px}.muted{color:var(--muted);font-size:11px}
.callout{border:1px solid #dbe5fb;background:#f7faff;border-radius:10px;padding:13px 14px}.callout strong{font-size:12px;color:#234aa5}.callout p{margin:4px 0 0;color:#52627d;font-size:12px;line-height:1.55}
.action-list{display:grid;gap:8px}.action-list-item{border:1px solid var(--line);background:#fff;border-radius:9px;padding:11px 12px;text-align:left;display:flex;justify-content:space-between}.action-list-item:hover{background:#f9fafb}.action-list-item.danger{color:var(--danger)}
.breadcrumb{display:flex;gap:7px;color:var(--muted);font-size:11px}.breadcrumb a{color:var(--primary);font-weight:700}
.profile-grid{display:grid;grid-template-columns:300px 1fr;gap:18px}.profile-card{padding:20px;height:max-content}.profile-head{display:grid;place-items:center;text-align:center;gap:10px;padding:5px 0 20px}.profile-head h2{margin:0;font-size:18px}.profile-head p{margin:3px 0;color:var(--muted)}.kv-list{border-top:1px solid var(--line)}.kv-list>div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #eef1f5}.kv-list span{color:var(--muted);font-size:11px}.kv-list strong{font-size:11px;text-align:right}.profile-main{overflow:hidden}.tabs{display:flex;gap:3px;overflow:auto;padding:0 14px;border-bottom:1px solid var(--line)}.tabs button{border:0;background:transparent;padding:14px 9px;color:#667085;font-size:11px;font-weight:700;white-space:nowrap;border-bottom:2px solid transparent}.tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.detail-section{padding-bottom:8px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:20px}.detail-grid div{display:grid;gap:5px}.detail-grid span{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.detail-grid strong{font-size:12px}.profile-main>.callout{margin:0 20px 20px}
.empty-state{display:grid;place-items:center;gap:5px;padding:32px;color:var(--muted)}.empty-state strong{color:#344054}
.error-page{text-align:center;max-width:540px;margin:10vh auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:40px;box-shadow:var(--shadow)}.error-code{font-size:72px;line-height:1;font-weight:900;color:#d0d5dd}.error-page h1{margin:12px 0 7px}.error-page p{color:var(--muted);margin:0 0 20px}
.login-body{background:#fff}.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(380px,1.05fr) minmax(420px,.95fr)}.login-hero{background:linear-gradient(145deg,#101828,#1d2939 55%,#17376e);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-hero::after{content:"";position:absolute;width:440px;height:440px;border-radius:50%;border:1px solid rgba(255,255,255,.08);right:-170px;top:15%;box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.018)}.hero-brand{display:flex;align-items:center;gap:13px;z-index:1}.hero-copy{max-width:610px;z-index:1}.hero-copy .eyebrow{color:#9bb8ff}.hero-copy h1{font-size:44px;line-height:1.08;letter-spacing:-.04em;margin:12px 0 16px}.hero-copy p{font-size:15px;line-height:1.7;color:#d0d5dd}.hero-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.hero-pills span{border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.05);border-radius:999px;padding:7px 10px;font-size:10px;color:#eaecf0}.login-hero>small{z-index:1;color:#98a2b3}.login-panel{display:grid;place-items:center;padding:36px;background:#f8fafc}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:0 18px 50px rgba(16,24,40,.08)}.login-heading h2{font-size:27px;margin:6px 0}.login-heading p{color:var(--muted);margin:0 0 24px}.alert{padding:11px 12px;border-radius:9px;margin-bottom:16px;font-size:12px}.alert-danger{background:var(--danger-soft);border:1px solid #fecdca;color:var(--danger)}.dev-hint{display:grid;gap:3px;margin-top:20px;border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:10px}.dev-hint strong{color:#475467}.dev-hint code{background:#f2f4f7;padding:1px 3px;border-radius:3px}
.mobile-only{display:none}.sidebar-overlay{display:none}
@media (max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.span-7,.span-5{grid-column:span 12}.profile-grid{grid-template-columns:1fr}.profile-card{display:grid;grid-template-columns:240px 1fr;gap:20px}.profile-head{border-right:1px solid var(--line);padding-right:20px}.kv-list{border-top:0}.login-layout{grid-template-columns:1fr}.login-hero{display:none}}
@media (max-width:820px){.mobile-only{display:grid}.sidebar{transform:translateX(-100%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}.sidebar-overlay.show{display:block;position:fixed;inset:0;background:rgba(16,24,40,.4);z-index:25}.main-shell{margin-left:0;width:100%}.topbar{padding:0 16px}.user-meta,.logout-form{display:none}.content{padding:20px 16px}.app-footer{padding:15px 16px}.page-header{align-items:flex-start;flex-direction:column}.metric-grid{grid-template-columns:1fr 1fr}.shortcut-grid{grid-template-columns:1fr 1fr}.form-grid,.detail-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.metric-grid,.shortcut-grid,.form-grid,.detail-grid{grid-template-columns:1fr}.topbar-title{display:none}.profile-card{grid-template-columns:1fr}.profile-head{border-right:0;border-bottom:1px solid var(--line);padding-right:0}.toolbar{align-items:stretch;flex-direction:column}.searchbox{width:100%}.app-footer{display:grid;gap:4px}.login-panel{padding:18px}.login-card{padding:24px}}

/* MJMA07 v0.3 full administration navigation */
.sidebar{width:286px}.main-shell{margin-left:286px;width:calc(100% - 286px)}
.nav-tree{overflow:auto;padding:10px 10px 18px;scrollbar-width:thin;scrollbar-color:#344054 transparent;overscroll-behavior:contain;scroll-behavior:auto;scrollbar-gutter:stable}
.nav-group{margin:2px 0;border-radius:10px}.nav-group summary{list-style:none}.nav-group summary::-webkit-details-marker{display:none}
.nav-group-summary{display:grid;grid-template-columns:24px 1fr 18px;align-items:center;gap:9px;padding:10px 10px;color:#d0d5dd;font-size:11px;font-weight:700;cursor:pointer;border-radius:9px;user-select:none}
.nav-group-summary:hover{background:rgba(255,255,255,.05);color:#fff}.nav-group[open]>.nav-group-summary{color:#fff;background:rgba(255,255,255,.035)}
.nav-group-icon{width:22px;text-align:center;color:#9fb7ef}.nav-chevron{color:#667085;transition:.15s transform}.nav-group[open] .nav-chevron{transform:rotate(180deg)}
.nav-group-items{display:grid;gap:1px;padding:3px 0 6px 32px}.nav-tree .nav-item{font-size:10.5px;padding:7px 9px;margin:0;gap:9px;min-height:30px;scroll-margin-block:18px}
.nav-dot{width:5px;height:5px;border-radius:999px;background:#475467;flex:0 0 auto}.nav-item.active .nav-dot{background:#7aa2ff;box-shadow:0 0 0 3px rgba(122,162,255,.12)}
.nav-tree .nav-item.active{box-shadow:none;border-left:2px solid #7aa2ff;padding-left:7px}.sidebar-footer{flex:0 0 auto}
.breadcrumb{display:flex;gap:7px;align-items:center;color:#98a2b3;font-size:10px;margin-bottom:5px}.breadcrumb strong{color:#667085}
.submodule-strip{display:flex;gap:8px;overflow:auto;padding:1px 0 13px;margin-top:-8px;scrollbar-width:thin}.submodule-card{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:150px;max-width:220px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px;font-size:10px;font-weight:700;color:#475467;box-shadow:0 1px 2px rgba(16,24,40,.02)}.submodule-card:hover{border-color:#b2ccff;color:var(--primary)}.submodule-card b{font-size:14px;color:#98a2b3}.submodule-more{display:grid;place-items:center;min-width:120px;color:#98a2b3;font-size:10px}
.integration-banner{display:flex;align-items:center;gap:12px;border-radius:11px;padding:12px 14px;margin-bottom:14px;border:1px solid var(--line);background:#fff}.integration-symbol{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.integration-copy{min-width:0;flex:1}.integration-copy strong{font-size:11px}.integration-copy p{margin:3px 0 0;color:#667085;font-size:10px}.integration-copy small{display:block;margin-top:4px;color:#b54708}.integration-copy code,.operation-row code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f2f4f7;border-radius:4px;padding:2px 5px;color:#344054}.integration-ok{border-color:#abefc6;background:#f6fef9}.integration-ok .integration-symbol{background:#dcfae6;color:#067647}.integration-warn{border-color:#fedf89;background:#fffcf5}.integration-warn .integration-symbol{background:#fef0c7;color:#b54708}
.empty-state{display:grid;place-items:center;padding:34px 20px;text-align:center}.empty-state strong{font-size:12px}.empty-state p{max-width:520px;margin:5px 0 0;color:#98a2b3;font-size:10px}.empty-icon{width:38px;height:38px;border-radius:10px;background:#f2f4f7;color:#98a2b3;display:grid;place-items:center;margin-bottom:10px}.empty-row:hover{background:transparent}
.panel-heading{padding:17px 18px;border-bottom:1px solid var(--line)}.panel-heading h2{font-size:15px;margin:3px 0}.panel-heading p{font-size:10px;color:#667085;margin:0}.contract-panel{margin-top:16px}.operation-list{display:grid}.operation-row{display:grid;grid-template-columns:62px minmax(220px,.8fr) 1fr;gap:12px;align-items:center;padding:10px 16px;border-bottom:1px solid #f2f4f7;font-size:10px;color:#667085}.operation-row:last-child{border-bottom:0}.http-method{font-size:9px;font-weight:900;letter-spacing:.04em;border-radius:5px;padding:4px 6px;text-align:center;background:#f2f4f7;color:#475467}.method-get{background:#eff8ff;color:#175cd3}.method-post{background:#ecfdf3;color:#027a48}.method-patch,.method-put{background:#fffaeb;color:#b54708}.method-delete{background:#fef3f2;color:#b42318}.modal-ops{border:1px solid var(--line);border-radius:9px;margin-top:12px;overflow:hidden}.empty-mini{padding:12px;border:1px dashed #d0d5dd;border-radius:9px;color:#98a2b3;font-size:10px;margin-top:12px}
@media (max-width:820px){.sidebar{width:286px}.main-shell{margin-left:0;width:100%}.operation-row{grid-template-columns:58px 1fr}.operation-row>span:last-child{grid-column:2}}

/* MJMA07 v0.4 — MJMA04.01 CRUD/action layer */
.btn-danger{background:#d92d20;border-color:#d92d20;color:#fff}.btn-danger:hover{background:#b42318;border-color:#b42318}.btn:disabled{opacity:.48;cursor:not-allowed}
.alert-success{background:#ecfdf3;border:1px solid #abefc6;color:#067647}.alert p{margin:3px 0 0}.alert strong{display:block}.alert small{display:block;margin-top:5px;opacity:.8}
.integration-capabilities{display:flex;gap:4px;align-items:center}.capability{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;background:#f2f4f7;color:#98a2b3;font-size:9px;font-weight:900;border:1px solid #eaecf0}.capability.on{background:#ecfdf3;color:#027a48;border-color:#abefc6}.capability.on.danger{background:#fef3f2;color:#b42318;border-color:#fecdca}
.row-menu{position:relative;display:inline-block}.row-menu>summary{list-style:none;display:grid;place-items:center}.row-menu>summary::-webkit-details-marker{display:none}.row-menu-popover{position:absolute;right:0;top:34px;z-index:12;min-width:170px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(16,24,40,.12);padding:5px;display:grid;text-align:left}.row-menu-popover a{padding:8px 10px;border-radius:7px;font-size:10px;color:#475467;font-weight:650}.row-menu-popover a:hover{background:#f9fafb;color:var(--primary)}.danger-text{color:#b42318!important}.muted{color:#98a2b3}.pager{display:inline-grid;place-items:center;border:1px solid var(--line);background:#fff;border-radius:7px;width:30px;height:30px;margin-left:4px;color:#475467}.pager:hover{background:#f9fafb}
.compact-panel{margin-top:16px}.action-chip-row{display:flex;flex-wrap:wrap;gap:8px;padding:14px 16px}.action-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:#fff;font-size:10px;font-weight:700;color:#475467}.action-chip:hover{border-color:#b2ccff;color:var(--primary)}.action-chip.danger{border-color:#fecdca;color:#b42318}.op-kind{justify-self:end;text-transform:uppercase;font-size:8px;font-weight:800;color:#98a2b3;letter-spacing:.06em}.operation-row{grid-template-columns:62px minmax(220px,.8fr) 1fr 80px}
.form-grid-dynamic{padding:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field-label{display:block}.required-mark{color:#d92d20;margin-left:3px}.field-help{display:block;color:#98a2b3;font-size:9px;line-height:1.4;margin-top:5px}.field-error input,.field-error select,.field-error textarea,[aria-invalid="true"]{border-color:#f04438!important;box-shadow:0 0 0 3px rgba(240,68,56,.08)}.field-error-text{display:block;color:#b42318;font-size:9px;margin-top:4px}.field-error-summary{padding:10px 12px;margin-top:12px;background:#fef3f2;border:1px solid #fecdca;color:#b42318;border-radius:8px;font-size:10px}.checkbox-control{display:flex;align-items:center;gap:8px;min-height:40px;border:1px solid #d0d5dd;border-radius:8px;padding:0 11px;background:#fff}.checkbox-control input{width:auto}.code-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5}.field textarea{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:10px 11px;resize:vertical;background:#fff;color:var(--ink);font:inherit}.field textarea:focus{outline:0;border-color:#84adff;box-shadow:0 0 0 3px rgba(21,94,239,.08)}
.crud-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}.form-panel{overflow:visible}.form-heading{border-bottom:1px solid var(--line)}.crud-form{padding:18px}.form-actions-sticky{display:flex;justify-content:flex-end;gap:9px;margin:20px -18px -18px;padding:14px 18px;border-top:1px solid var(--line);background:#fff;position:sticky;bottom:0;border-radius:0 0 var(--radius) var(--radius)}.contract-aside{padding:18px;display:grid;gap:12px}.contract-aside h3{margin:0;font-size:14px}.mini-dl{display:grid;margin:0}.mini-dl>div{display:grid;gap:3px;padding:9px 0;border-bottom:1px solid #eef1f5}.mini-dl dt{font-size:9px;text-transform:uppercase;color:#98a2b3;letter-spacing:.05em}.mini-dl dd{margin:0;color:#475467;font-size:10px;word-break:break-word}.mini-dl code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.callout.compact{margin:0;padding:11px}.callout.compact p{font-size:9px}.action-confirm{margin:0;padding:16px}.action-confirm p{margin:4px 0 0}.large-empty{min-height:330px;margin-top:10px}.large-empty .btn{margin-top:10px}
.detail-card{overflow:hidden}.detail-grid-wide{grid-template-columns:repeat(2,minmax(0,1fr));padding:20px}.detail-pair{padding:12px;border:1px solid #eef1f5;border-radius:9px;background:#fbfcfe;min-width:0}.detail-pair-wide{grid-column:1/-1}.detail-pair pre{margin:6px 0 0;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:#475467}.action-list-links .action-list-item{text-decoration:none}.danger-callout{background:#fef3f2;border:1px solid #fecdca;border-radius:10px;padding:13px;color:#912018}.danger-callout p{margin:4px 0 0;color:#b42318;font-size:10px}
@media (max-width:1000px){.crud-layout{grid-template-columns:1fr}.contract-aside{order:-1}.form-grid-dynamic,.detail-grid-wide{grid-template-columns:1fr}.operation-row{grid-template-columns:58px 1fr}.operation-row>span:nth-child(3),.operation-row>.op-kind{grid-column:2;justify-self:start}}

/* v0.4.2 — explicit MJMA04.01 settings configuration UI */
.alert-success{background:#ecfdf3;border:1px solid #abefc6;color:#067647}.settings-alert{margin-bottom:16px}.warning-chip{background:#fffaeb;border-color:#fedf89;color:#b54708}.settings-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}.settings-index{position:sticky;top:94px;padding:8px;max-height:calc(100vh - 120px);overflow:auto}.settings-index-title{padding:10px 11px 8px;color:#98a2b3;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.settings-index-item{display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:center;padding:9px 10px;border-radius:9px;color:#475467;font-size:11px}.settings-index-item:hover{background:#f8fafc}.settings-index-item.active{background:var(--primary-soft);color:var(--primary);font-weight:750}.settings-index-number{font:700 9px ui-monospace,SFMono-Regular,Menlo,monospace;color:#98a2b3}.settings-index-item.active .settings-index-number{color:var(--primary)}.settings-main,.settings-form{display:grid;gap:16px}.settings-card{overflow:visible}.settings-card-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.settings-card-head h2{margin:0 0 4px;font-size:15px}.settings-card-head p{margin:0;color:var(--muted);font-size:11px;max-width:720px}.settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;padding:20px}.setting-field.span-2{grid-column:1/-1}.setting-toggle{min-height:66px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fff}.setting-toggle-copy{display:grid;gap:3px}.setting-toggle-copy strong{font-size:12px}.setting-toggle-copy small{font-size:10px;color:var(--muted)}.switch{position:relative;display:inline-flex;flex:none}.switch input{position:absolute;opacity:0;pointer-events:none}.switch-track{width:42px;height:24px;border-radius:999px;background:#d0d5dd;position:relative;transition:.18s}.switch-track::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;box-shadow:0 1px 3px rgba(16,24,40,.2);transition:.18s}.switch input:checked + .switch-track{background:var(--primary)}.switch input:checked + .switch-track::after{transform:translateX(18px)}.switch input:focus-visible + .switch-track{outline:3px solid rgba(35,87,216,.15)}.setting-multiselect{border:0;padding:0;margin:0}.setting-multiselect legend{font-size:11px;font-weight:700;margin-bottom:8px}.weekday-grid{display:flex;gap:8px;flex-wrap:wrap}.weekday-grid label{position:relative}.weekday-grid input{position:absolute;opacity:0}.weekday-grid span{display:block;border:1px solid #d0d5dd;border-radius:8px;padding:8px 11px;background:#fff;font-size:10px;color:#475467}.weekday-grid input:checked + span{background:var(--primary-soft);border-color:#84adff;color:var(--primary);font-weight:750}.secret-present{color:#087a55}.settings-savebar{position:sticky;bottom:12px;z-index:8;padding:14px 16px;display:flex;justify-content:space-between;gap:20px;align-items:center;box-shadow:0 14px 40px rgba(16,24,40,.14)}.settings-savebar>div:first-child{display:grid;gap:3px}.settings-savebar strong{font-size:12px}.settings-savebar span{font-size:9px;color:var(--muted)}.settings-runtime-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:20px}.runtime-card{border:1px solid var(--line);border-radius:10px;padding:14px;display:grid;gap:5px}.runtime-card span{font-size:10px;color:var(--muted)}.runtime-card strong{font-size:14px}.runtime-card small{font-size:9px;color:#98a2b3;overflow-wrap:anywhere}
@media(max-width:1050px){.settings-layout{grid-template-columns:1fr}.settings-index{position:static;display:flex;overflow:auto;max-height:none;padding:8px}.settings-index-title{display:none}.settings-index-item{min-width:190px}.settings-fields{grid-template-columns:1fr}.setting-field.span-2{grid-column:auto}}
@media(max-width:650px){.settings-runtime-grid{grid-template-columns:1fr}.settings-savebar{position:static;align-items:stretch;flex-direction:column}.settings-savebar .page-actions{display:grid;grid-template-columns:1fr 1fr}}
.brand-image-wrap{padding-top:10px;padding-bottom:10px}.brand-logo-sidebar{display:block;width:100%;max-width:218px;height:52px;object-fit:contain;object-position:left center}.hero-brand-image-wrap{display:block}.brand-logo-login{display:block;width:min(340px,100%);height:auto;max-height:64px;object-fit:contain;object-position:left center}

/* v0.4.4 — searchable dependent geography comboboxes */
.geo-field{position:relative}.geo-combobox{display:block;position:relative}.geo-combobox>input{padding-right:34px}.geo-chevron{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:#667085;font-size:14px}.geo-options{position:absolute;z-index:80;top:calc(100% + 5px);left:0;right:0;max-height:260px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 36px rgba(16,24,40,.14);padding:5px}.geo-options[hidden]{display:none}.geo-option{display:block;width:100%;padding:9px 10px;border:0;background:transparent;border-radius:7px;text-align:left;font:inherit;color:#101828;cursor:pointer}.geo-option:hover,.geo-option.active{background:#f2f4f7}.geo-option strong{display:block;font-size:12px;font-weight:650}.geo-option small{display:block;margin-top:2px;color:#667085;font-size:10px}.geo-option-empty{padding:11px 10px;color:#667085;font-size:11px}.geo-status{min-height:14px}.geo-status[data-state="loading"]{color:#475467}.geo-status[data-state="error"]{color:#b42318}.geo-status[data-state="ready"]{color:#027a48}
