:root{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#164e50;background:#f0fdfa;font-size:16px;line-height:1.6;--accent:#0d9488;--border:#c7ebe6;--muted:#637989}
*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}h1,h2,p{margin-top:0}h1{font-size:27px;line-height:1.3;margin-bottom:10px}h2{font-size:20px;margin-bottom:14px}.brand{font-size:21px;font-weight:700}.muted,small{color:var(--muted)}small{font-size:13px}.note{color:var(--muted);font-size:14px;margin:20px 0 0}button,input,select{font:inherit}button{min-height:42px;border:1px solid var(--border);border-radius:7px;padding:8px 16px;background:#fff;color:#164e50;cursor:pointer;font-size:15px;font-weight:600}button:hover{background:#e7f9f5}button:disabled{opacity:.55;cursor:wait}.primary{background:var(--accent);color:white;border-color:var(--accent)}.primary:hover{background:#0f766e}.danger{color:#b42332;border-color:#f4c6c8}.full{width:100%}input,select{width:100%;min-width:0;min-height:44px;border:1px solid var(--border);border-radius:6px;padding:9px 12px;background:#fff;color:#193b44}input:focus,select:focus,button:focus-visible{outline:3px solid #99e7d8;outline-offset:2px}label{display:grid;gap:6px;font-size:14px;font-weight:600}form{display:grid;gap:18px}.login{width:min(460px,calc(100% - 32px));margin:10vh auto;background:white;padding:36px;border:1px solid var(--border);border-radius:12px}.login .brand{color:var(--accent);margin-bottom:28px}.login .muted{font-size:14px;margin-bottom:24px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 32px;background:#fff;border-bottom:1px solid var(--border);flex-wrap:wrap}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.end{justify-content:flex-end}.content{max-width:1280px;padding:32px;margin:auto}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:20px}.heading p{margin:0;font-size:14px}.panel{background:#fff;border:1px solid var(--border);border-radius:10px;padding:22px;margin-bottom:24px}.toolbar{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-bottom:20px}.search{max-width:360px;flex:1;min-width:180px}.toolbar #count{margin:auto 0 8px;font-size:14px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left}th{font-size:14px;background:#f2fcf9}td,th{padding:16px 12px;border-bottom:1px solid #eaf4f2}td{font-size:14px}td .muted{font-size:13px}td button{padding:6px 12px;min-height:36px}.status{color:#087567}.status.disabled{color:#b42332}.audit .heading{margin-bottom:10px}.audit .heading h2{margin:0}.audit-row{display:flex;gap:20px;padding:10px 0;border-bottom:1px solid #edf5f3;font-size:14px}.audit-row time{min-width:165px;color:var(--muted)}dialog{width:min(510px,calc(100% - 28px));max-height:90vh;overflow:auto;padding:28px;border:1px solid var(--border);border-radius:12px;color:inherit}dialog::backdrop{background:#143d4266}dialog h2{margin:0}dialog p{margin:0;font-size:14px}.error{color:#b42332;min-height:0}#message{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:12px 20px;background:#183c45;color:#fff;border-radius:8px;z-index:20;box-shadow:0 4px 20px #0002}#message.error{background:#9f2434}@media(max-width:720px){header{padding:18px}.content{padding:20px 14px}.panel{padding:14px}.login{padding:26px}.audit-row{flex-direction:column;gap:2px}td,th{padding:12px 8px}table{min-width:610px}.heading{gap:12px}header .brand{font-size:19px}h1{font-size:24px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s}}
:root body[data-embedded="true"] .admin-sidebar,:root body[data-embedded="true"] .admin-main>header,:root body[data-embedded="true"] #localTestNotice{display:none}
:root body[data-embedded="true"] .admin-shell{display:block;min-height:0}
:root body[data-embedded="true"] .admin-main{padding:0}
/* Shared apricot palette: applies to the management shell and embedded modules. */
:root{color:#30343b;background:#faf9f7;font-size:14px;--accent:#f8d7b1;--border:#e7e5e2;--muted:#747b85;--accent-ink:#665344;--accent-soft:#fff3e6}
button{color:#3d4148;border-radius:5px;min-height:36px;padding:6px 14px;font-size:14px;font-weight:500}
button:hover{background:#fff5e9;border-color:#e8cfb2}
.primary,.primary:hover{color:#493c30;background:var(--accent);border-color:var(--accent)}
.primary:hover{background:#f3cca1}
button:disabled{cursor:not-allowed}
input,select,textarea{color:#30343b;min-height:36px;padding:7px 10px;border-radius:5px}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid #dfb68a;outline-offset:2px}
label{font-weight:500}h1{font-size:24px}h2{font-size:18px}h3{font-size:16px}
.panel{border-radius:6px;padding:20px;margin-bottom:20px}
th{background:#f7f7f6;color:#626974;font-weight:500}td,th{border-bottom:1px solid #eeedeb;padding:12px}
td button{min-height:30px;font-size:13px}
.status{color:#665344}.status.disabled,.danger{color:#b42332}
dialog{border-radius:8px;padding:26px;border-color:#e7e5e2;box-shadow:0 12px 42px #22222226}
dialog::backdrop{background:#252a302b}
.login .brand{color:#665344}
#message{background:#343a43;box-shadow:0 4px 16px #0001}
/* Compact embedded workspaces: the outer shell already supplies the page title. */
:root body[data-embedded="true"] .admin-main>.content{max-width:none;padding:0;margin:0;width:100%}
body[data-embedded="true"] #accountSection>.heading{display:none}
body[data-embedded="true"] .content>.note{display:none}
#refreshBtn,#softwareRefresh,#releaseRefresh,#aiRefresh{display:none}
#accountSection .toolbar{align-items:center;gap:16px;margin-bottom:18px}
#accountSection .toolbar .search{max-width:360px;margin:0}
#accountSection .toolbar #createBtn{margin-left:auto;flex-shrink:0}
#accountSection #count{font-size:13px}
#accountSection td button{border-color:#e4c7a8;color:var(--accent-ink);margin-right:6px}
#accountSection .status{display:inline-block;padding:2px 9px;border-radius:4px;background:var(--accent-soft);font-size:12px}
#accountSection .status.disabled{background:#f3f3f2;color:var(--muted)}
#accountSection .audit summary{cursor:pointer;font-weight:600}.audit details[open] summary{margin-bottom:14px}
body[data-embedded="true"] #softwareSection>.heading,body[data-embedded="true"] #catalogTitle{display:none}
@media(max-width:650px){#accountSection .toolbar{flex-wrap:wrap}#accountSection .toolbar .search{flex-basis:100%;max-width:none}}

.module-boot{position:fixed;inset:0;background:#fbfaf8;display:flex;align-items:center;justify-content:center;color:#8a8f98;font-size:15px;z-index:50}
