:root { --brand:#0b786c; --brand-dark:#07574f; --soft:#e6f3f0; --ink:#172622; --muted:#667b76; --line:#dce8e5; --bg:#f3f7f6; --white:#fff; --warning:#b56a16; --danger:#a74838; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--bg); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
.hidden { display:none!important; }
.login-view { min-height:100vh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at top left,#dff2ee,transparent 40%),linear-gradient(135deg,#f5faf8,#e9f3f1); }
.login-card { width:min(420px,100%); padding:34px; border:1px solid var(--line); border-radius:24px; background:#fff; box-shadow:0 24px 70px rgba(9,74,66,.14); }
.login-logo { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 14px; border-radius:18px; color:#fff; background:linear-gradient(135deg,var(--brand-dark),var(--brand)); font-size:30px; font-weight:800; }
.login-card h1 { margin:0; text-align:center; font-size:27px; }
.login-card>p { margin:8px 0 26px; color:var(--muted); text-align:center; font-size:13px; }
.login-card label { display:grid; gap:7px; margin-top:15px; color:#40534f; font-size:13px; font-weight:700; }
.login-card .wide { width:100%; margin-top:20px; }
.login-divider { display:flex; align-items:center; gap:12px; margin:18px 0 0; color:var(--muted); font-size:12px; }
.login-divider::before,.login-divider::after { content:""; flex:1; height:1px; background:var(--line); }
.login-divider span { padding:0 4px; }
.login-card .guest-login { margin-top:14px; }
.login-error { min-height:20px; margin-top:12px; color:var(--danger); text-align:center; font-size:12px; }
.login-tip { margin-top:12px; color:var(--muted); font-size:11px; line-height:1.65; text-align:center; }
.app { min-height:100vh; display:grid; grid-template-columns:236px minmax(0,1fr); }
aside { position:relative; padding:24px 16px 190px; color:#fff; background:linear-gradient(160deg,var(--brand-dark),var(--brand)); }
.brand { display:flex; align-items:center; gap:11px; margin-bottom:28px; }
.logo { width:42px; height:42px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.25); border-radius:14px; background:rgba(255,255,255,.12); font-size:22px; font-weight:800; }
.brand strong { display:block; font-size:18px; }
.brand span { font-size:10px; color:rgba(255,255,255,.7); }
nav { display:grid; gap:7px; }
.nav { padding:12px 14px; border:0; border-radius:12px; color:rgba(255,255,255,.76); background:transparent; text-align:left; }
.nav.active,.nav:hover { color:#fff; background:rgba(255,255,255,.15); }
.aside-user { position:absolute; left:16px; right:16px; bottom:112px; padding:12px; border:1px solid rgba(255,255,255,.15); border-radius:13px; background:rgba(0,0,0,.08); }
.aside-user strong,.aside-user span { display:block; }
.aside-user strong { font-size:13px; }
.aside-user span { margin-top:3px; color:rgba(255,255,255,.72); font-size:10px; }
.aside-foot { position:absolute; left:16px; right:16px; bottom:20px; padding:11px 12px; border:1px solid rgba(255,255,255,.12); border-radius:13px; color:rgba(255,255,255,.72); background:rgba(0,0,0,.07); font-size:10px; line-height:1.6; }
main { min-width:0; padding:28px; }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:20px; }
.topbar h1 { margin:0; font-size:25px; }
.topbar p { margin:5px 0 0; color:var(--muted); font-size:12px; }
.top-actions { display:flex; align-items:center; gap:9px; }
.status { padding:7px 11px; border-radius:999px; color:#227453; background:#eaf7f0; font-size:11px; }
.page { display:none; }
.page.active { display:block; }
.grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.card { min-width:0; padding:18px; border:1px solid var(--line); border-radius:17px; background:var(--white); box-shadow:0 5px 18px rgba(30,70,62,.045); }
.card h2 { margin:0 0 12px; font-size:17px; }
.metric { font-size:30px; font-weight:800; color:var(--brand); }
.label { margin-top:4px; color:var(--muted); font-size:11px; }
.hero { padding:26px; margin-bottom:16px; color:#fff; border-radius:21px; background:linear-gradient(135deg,var(--brand-dark),var(--brand)); }
.hero h2 { margin:0 0 7px; font-size:23px; }
.hero p { margin:0; color:rgba(255,255,255,.78); font-size:12px; }
.search { display:flex; gap:8px; margin-top:18px; }
.field { width:100%; min-width:0; padding:12px 13px; border:1px solid var(--line); border-radius:11px; outline:0; background:#fff; }
.field:focus { border-color:#70aaa2; box-shadow:0 0 0 3px rgba(11,120,108,.08); }
textarea.field { min-height:112px; resize:vertical; line-height:1.65; }
.primary { padding:11px 17px; border:0; border-radius:11px; color:#fff; background:var(--brand); font-weight:700; white-space:nowrap; }
.primary:hover { background:var(--brand-dark); }
.secondary { padding:9px 12px; border:1px solid var(--line); border-radius:10px; color:#29443e; background:#fff; }
.danger { color:var(--danger); }
.toolbar { display:flex; gap:9px; margin-bottom:10px; }
.toolbar .field { max-width:620px; }
.toolbar .compact { max-width:180px; }
.toolbar .article-source { max-width:210px; }
.page-hint { margin:0 2px 14px; }
.list { display:grid; gap:11px; }
.item { padding:17px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.item.clickable { cursor:pointer; transition:border-color .18s,box-shadow .18s,transform .18s; }
.item.clickable:hover { border-color:#9fcac3; box-shadow:0 9px 24px rgba(11,120,108,.09); transform:translateY(-1px); }
.item-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.code { color:var(--brand); font-size:11px; font-weight:800; }
.tag { display:inline-flex; padding:4px 8px; border-radius:999px; color:var(--brand); background:var(--soft); font-size:10px; }
.item h3 { margin:7px 0; font-size:16px; line-height:1.5; }
.item p { margin:0; color:var(--muted); font-size:12px; line-height:1.72; }
.prices { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin-top:12px; }
.price { padding:9px; border-radius:10px; background:#f4f8f7; text-align:center; }
.price strong { display:block; color:var(--brand-dark); }
.price span { color:var(--muted); font-size:9px; }
.chat { display:grid; gap:12px; min-height:300px; align-content:start; }
.bubble { max-width:86%; padding:14px 16px; border-radius:16px; font-size:14px; line-height:1.8; }
.bubble.system { background:#fff; border:1px solid var(--line); }
.bubble.user { justify-self:end; color:#fff; background:var(--brand); }
.answer-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
.source { margin-top:10px; padding:12px; border:1px solid var(--line); border-radius:12px; background:#f8fbfa; cursor:pointer; }
.source strong { display:block; margin-bottom:4px; font-size:13px; }
.source small { color:var(--muted); font-size:10px; }
.feedbacks { display:flex; gap:7px; margin-top:10px; }
.form { display:grid; gap:10px; }
.form-card { width:100%; }
.ticket-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ticket-question { grid-column:1/-1; min-height:220px; }
.ticket-submit { grid-column:2; justify-self:end; min-width:180px; }
.muted { color:var(--muted); font-size:12px; line-height:1.65; }
.row { display:flex; align-items:center; gap:9px; }
.permission-card { margin-top:16px; }
.permission-list { display:flex; flex-wrap:wrap; gap:8px; }
.permission-chip { padding:7px 10px; border-radius:999px; color:#0b675e; background:var(--soft); font-size:11px; }
.review-head,.user-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:13px; }
.review-head h2,.user-toolbar h2 { margin:0; }
.review-head p { margin:5px 0 0; color:var(--muted); font-size:12px; }
.import-panel { margin-bottom:13px; }
.ticket-card h3 { margin:7px 0 10px; font-size:16px; }
.ticket-meta { display:flex; flex-wrap:wrap; gap:6px 14px; margin-bottom:11px; color:var(--muted); font-size:11px; }
.ticket-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:9px; }
.reply-editor { margin-top:14px; padding:14px; border:1px solid #c9dff2; border-radius:13px; background:#f6fbff; }
.reply-editor-head,.reply-record-head { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:9px; }
.reply-editor-head .muted { margin-left:auto; }
.reply-editor textarea { min-height:130px; }
.reply-list { margin-top:14px; }
.reply-list h4 { margin:0 0 9px; color:#274b6b; }
.reply-record { margin-top:9px; padding:13px; border:1px solid #dce6ee; border-radius:12px; background:#fff; }
.reply-record p,.final-reply p { margin:8px 0; color:#334c61; font-size:13px; line-height:1.75; }
.reply-record.adopted { border-color:#9dd6c4; background:#f3fbf8; }
.reply-record.rejected { border-color:#e7d4cf; background:#fff9f7; }
.reply-reject { color:#9b493d; border-color:#e4bcb5; }
.reply-unpublish { color:#855d16; border-color:#dcc58e; background:#fffaf0; }
.reply-empty { margin-top:13px; padding:11px 13px; border-radius:10px; background:#f5f7f9; }
.final-reply { margin-top:13px; padding:14px; border:1px solid #9dd6c4; border-radius:12px; background:#f3fbf8; }
.main-ticket-actions { padding-top:4px; }
.admin-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; margin-bottom:18px; }
.user-create { display:grid; gap:10px; }
.role-help p { margin:9px 0; color:#526862; font-size:12px; line-height:1.6; }
.user-card { display:grid; grid-template-columns:minmax(160px,1.3fr) minmax(150px,1fr) auto; gap:12px; align-items:center; }
.user-identity strong,.user-identity span { display:block; }
.user-identity span { margin-top:4px; color:var(--muted); font-size:11px; }
.user-controls { display:grid; grid-template-columns:160px minmax(180px,1fr); gap:8px; }
.user-active { display:flex; align-items:center; gap:6px; color:#40534f; font-size:12px; }
.modal-backdrop { position:fixed; inset:0; z-index:20; display:none; align-items:center; justify-content:center; padding:24px; background:rgba(8,32,28,.52); }
.modal-backdrop.show { display:flex; }
.modal { width:min(880px,100%); max-height:min(88vh,900px); overflow:auto; padding:28px; border-radius:21px; background:#fff; box-shadow:0 28px 80px rgba(0,0,0,.24); }
.modal-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; }
.modal-head h2 { margin:0; font-size:25px; line-height:1.45; }
.modal-head p { margin:7px 0 0; color:var(--muted); font-size:13px; }
.modal-close { flex:0 0 auto; width:38px; height:38px; border:1px solid var(--line); border-radius:11px; background:#fff; font-size:22px; }
.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.detail-row { min-width:0; padding:14px 15px; border-radius:12px; background:#f4f8f7; }
.detail-row.wide { grid-column:1/-1; }
.detail-row span { display:block; margin-bottom:6px; color:var(--muted); font-size:12px; }
.detail-row strong { display:block; overflow-wrap:anywhere; font-size:15px; line-height:1.72; font-weight:600; }
.detail-section { margin-top:15px; padding:17px; border:1px solid var(--line); border-radius:14px; }
.detail-section h3 { margin:0 0 9px; color:var(--brand-dark); font-size:16px; }
.detail-section p { margin:0; overflow-wrap:anywhere; white-space:normal; font-size:15px; line-height:1.9; }
body.modal-open { overflow:hidden; }
.toast { position:fixed; left:50%; bottom:28px; z-index:30; transform:translate(-50%,20px); opacity:0; pointer-events:none; padding:10px 15px; border-radius:999px; color:#fff; background:rgba(12,33,29,.9); font-size:12px; transition:.18s; }
.toast.show { transform:translate(-50%,0); opacity:1; }
@media(max-width:820px){
  .app{grid-template-columns:1fr}.app aside{position:sticky;top:0;z-index:5;padding:12px}.brand{margin-bottom:10px}nav{grid-template-columns:repeat(4,1fr)}.nav{text-align:center;padding:8px 3px;font-size:10px}.aside-user,.aside-foot{display:none}main{padding:15px}.grid,.admin-grid{grid-template-columns:1fr}.topbar{align-items:flex-start}.topbar h1{font-size:21px}.top-actions{flex-wrap:wrap;justify-content:flex-end}.bubble{max-width:96%}.toolbar,.review-head,.user-toolbar{align-items:stretch;flex-direction:column}.toolbar .field{max-width:none}.detail-grid{grid-template-columns:1fr}.modal-backdrop{padding:10px}.modal{padding:19px;max-height:92vh}.modal-head h2{font-size:21px}.user-card{grid-template-columns:1fr}.user-controls{grid-template-columns:1fr}.row{align-items:stretch;flex-direction:column}.subtabs{flex-direction:column}
}

.subtabs { display:flex; gap:8px; margin-bottom:14px; }
.subtab { padding:10px 14px; border:1px solid var(--line); border-radius:11px; color:#526862; background:#fff; font-weight:700; }
.subtab.active { color:#fff; border-color:#a74838; background:#a74838; }
.compliance-toolbar { flex-wrap:wrap; }
.compliance-toolbar>input { flex:1 1 300px; }
.compliance-toolbar .compact { max-width:210px; }
.qa-dual-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr); gap:18px; align-items:start; }
.qa-dual-layout.policy-only { grid-template-columns:1fr; }
.qa-shared-search { display:flex; gap:10px; margin-bottom:16px; padding:14px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.qa-shared-search .field { flex:1; }
.qa-panel { min-width:0; min-height:620px; padding:20px; border-radius:19px; background:#fff; box-shadow:0 5px 18px rgba(16,68,60,.05); }
.policy-qa-panel { border:1px solid #cfe4df; }
.risk-qa-panel { border:1px solid #efcfc7; background:#fffaf8; }
.qa-panel-head { margin-bottom:16px; }
.qa-panel-head h2 { margin:5px 0 6px; font-size:20px; }
.qa-panel-head p { margin:0; color:var(--muted); font-size:12px; line-height:1.65; }
.qa-kicker { font-size:11px; font-weight:800; color:var(--brand); }
.risk-qa-panel .qa-kicker,.risk-qa-panel .qa-panel-head h2 { color:#8f3f31; }
.wide { width:100%; }
.risk-answer { margin-top:14px; padding:14px; border-radius:12px; background:#f8f5f3; font-size:13px; line-height:1.8; }
.risk-answer strong { color:#873f31; }
.risk-source { margin-top:10px; padding:11px; border:1px solid #eaded9; border-radius:11px; background:#fff; cursor:pointer; }
.risk-source strong { display:block; margin-bottom:4px; color:#7c3d31; font-size:12px; }
.risk-source span { color:var(--muted); font-size:10px; }
.risk-notice { margin-top:12px; color:#946052; font-size:10px; line-height:1.6; }
.compliance-item .tag { color:#9a4333; background:#fff0eb; }

@media(max-width:1100px){.qa-dual-layout{grid-template-columns:1fr}.qa-panel{min-height:0}}
@media(max-width:820px){.subtabs{flex-direction:column}.grid{grid-template-columns:1fr}.ticket-form{grid-template-columns:1fr}.ticket-question,.ticket-submit{grid-column:1}.ticket-submit{justify-self:stretch}.qa-shared-search{align-items:stretch;flex-direction:column}}

/* V0.5.0 technology visual system */
:root {
  --brand: #1769e0;
  --brand-dark: #10233f;
  --soft: #eaf3ff;
  --ink: #14243b;
  --muted: #65758b;
  --line: #d9e3ef;
  --bg: #f4f7fb;
  --white: #fff;
  --warning: #b56a16;
  --danger: #a74838;
  --cyan: #25c6da;
  --shadow: 0 10px 30px rgba(16,35,63,.07);
}
html { min-width: 320px; }
body { color: var(--ink); background: var(--bg); }
body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .42; background-image: linear-gradient(rgba(23,105,224,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(23,105,224,.035) 1px, transparent 1px); background-size: 32px 32px; }
.login-view { position: relative; overflow: hidden; background: radial-gradient(circle at 15% 10%, rgba(37,198,218,.22), transparent 28%), radial-gradient(circle at 85% 90%, rgba(23,105,224,.32), transparent 34%), linear-gradient(135deg,#08172f,#123f78 55%,#0b1f3a); }
.login-view::before,.login-view::after { content: ""; position: absolute; border: 1px solid rgba(98,217,235,.18); border-radius: 50%; pointer-events: none; }
.login-view::before { width: 620px; height: 620px; top: -310px; right: -180px; }
.login-view::after { width: 420px; height: 420px; bottom: -240px; left: -170px; }
.login-card { position: relative; z-index: 1; border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.96); box-shadow: 0 28px 90px rgba(0,0,0,.3); }
.login-logo { border-color: rgba(37,198,218,.55); background: linear-gradient(135deg,var(--brand-dark),var(--brand)); box-shadow: 0 0 0 7px rgba(23,105,224,.08), 0 8px 22px rgba(23,105,224,.25); }
.login-card h1 { letter-spacing: .04em; }
.app { grid-template-columns: 248px minmax(0,1fr); }
aside { background: linear-gradient(160deg,#0b1f3a,#10233f 58%,#123e75); box-shadow: 8px 0 28px rgba(16,35,63,.12); }
aside::after { content: ""; position: absolute; right: 0; top: 0; bottom: 0; width: 1px; background: linear-gradient(transparent,var(--cyan),transparent); opacity: .7; }
.brand strong { letter-spacing: .05em; }
.logo { border-color: rgba(120,224,239,.42); background: linear-gradient(145deg,rgba(37,198,218,.32),rgba(23,105,224,.48)); box-shadow: 0 0 18px rgba(37,198,218,.12); }
.nav { position: relative; padding-left: 40px; border: 1px solid transparent; transition: .18s ease; }
.nav::before { content: "◆"; position: absolute; left: 16px; color: rgba(141,222,235,.58); font-size: 8px; }
.nav[data-page="home"]::before { content: "⌂"; font-size: 14px; }
.nav[data-page="catalog"]::before { content: "▦"; font-size: 13px; }
.nav[data-page="articles"]::before { content: "▤"; font-size: 13px; }
.nav[data-page="compliance"]::before { content: "△"; font-size: 13px; }
.nav[data-page="qa"]::before { content: "✦"; font-size: 13px; }
.nav[data-page="ticket"]::before { content: "✉"; font-size: 13px; }
.nav[data-page="review"]::before { content: "◎"; font-size: 13px; }
.nav[data-page="users"]::before { content: "♙"; font-size: 13px; }
.nav.active,.nav:hover { border-color: rgba(103,213,231,.25); background: linear-gradient(90deg,rgba(23,105,224,.55),rgba(37,198,218,.13)); box-shadow: inset 3px 0 0 var(--cyan), 0 7px 18px rgba(0,0,0,.12); }
.aside-user,.aside-foot { border-color: rgba(120,224,239,.18); background: rgba(3,14,31,.27); }
main { max-width: 1600px; width: 100%; padding: 29px clamp(18px,3vw,42px); }
.topbar h1 { letter-spacing: .02em; }
.status { position: relative; padding-left: 24px; color: #08708d; background: #e8f9fc; font-weight: 700; }
.status::before { content: ""; position: absolute; left: 10px; top: 50%; width: 7px; height: 7px; transform: translateY(-50%); border-radius: 50%; background: #17b8a4; box-shadow: 0 0 0 4px rgba(23,184,164,.14); }
.page { animation: page-in .22s ease both; }
@keyframes page-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.card { border-color: var(--line); background: rgba(255,255,255,.94); box-shadow: var(--shadow); }
.card::before { content: ""; position: absolute; left: 18px; right: 18px; top: -1px; height: 2px; border-radius: 2px; background: linear-gradient(90deg,var(--brand),var(--cyan)); opacity: .75; }
.metric { color: var(--brand); font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.hero { position: relative; overflow: hidden; border: 1px solid rgba(91,215,234,.28); background: radial-gradient(circle at 88% 15%,rgba(37,198,218,.3),transparent 26%), linear-gradient(135deg,#10233f,#1769e0 72%,#164b94); box-shadow: 0 16px 35px rgba(17,77,158,.18); }
.hero::after { content: "DATA / POLICY WORKBENCH"; position: absolute; right: 23px; bottom: 19px; color: rgba(255,255,255,.28); font-size: 9px; letter-spacing: .16em; }
.hero h2 { letter-spacing: .03em; }
.field:focus { border-color: #5ba9f5; box-shadow: 0 0 0 3px rgba(23,105,224,.12); }
.primary { background: linear-gradient(135deg,#1769e0,#238bdc); box-shadow: 0 6px 14px rgba(23,105,224,.18); transition: .18s ease; }
.primary:hover { transform: translateY(-1px); background: linear-gradient(135deg,#1258c2,#1c7fc9); box-shadow: 0 9px 18px rgba(23,105,224,.24); }
.secondary { border-color: #cbd8e8; color: #29466b; }
.secondary:hover { border-color: #7fb3e9; color: var(--brand); background: #f4f9ff; }
.item { background: rgba(255,255,255,.95); box-shadow: 0 4px 18px rgba(16,35,63,.035); }
.item.clickable:hover { border-color: #8bbdf1; box-shadow: 0 10px 25px rgba(23,105,224,.1); }
.code { color: var(--brand); }
.tag,.permission-chip { color: #1260b7; background: var(--soft); }
.price,.detail-row { background: #f2f7fd; }
.bubble.system { border-color: #cfe1f1; background: #f6fbff; }
.bubble.user { background: linear-gradient(135deg,#1769e0,#238bdc); }
.source { border-color: #cfe1f1; background: #fff; }
.subtab.active { border-color: var(--brand); background: var(--brand); box-shadow: 0 6px 14px rgba(23,105,224,.16); }
.qa-shared-search { border-color: #cbdced; box-shadow: var(--shadow); }
.policy-qa-panel { border-color: #c4dff3; background: linear-gradient(180deg,#fff,#f8fcff); }
.modal-backdrop { background: rgba(7,24,49,.68); backdrop-filter: blur(4px); }
.modal { border-color: #cfe0f1; box-shadow: 0 28px 80px rgba(0,20,50,.28); }
.toast { background: rgba(9,28,56,.93); }
@media(max-width:820px) {
  .app aside::after { top: auto; left: 0; right: 0; bottom: 0; width: auto; height: 1px; }
  nav { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: thin; }
  .nav { flex: 0 0 auto; padding: 8px 11px 8px 29px; font-size: 10px; }
  .nav::before { left: 10px; }
  .hero::after { display: none; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; } }
.card { position: relative; }

/* V0.5.1 mobile layout hotfix: keep this block last for cascade priority. */
@media (max-width: 820px) {
  html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
  .app { display: block; width: 100%; min-width: 0; }
  .app aside { position: sticky; top: 0; z-index: 10; width: 100%; min-height: 0; padding: 12px; box-shadow: 0 8px 24px rgba(9,28,56,.16); }
  .brand { margin-bottom: 10px; }
  .brand span { white-space: nowrap; }
  nav { width: 100%; max-width: 100%; display: flex; grid-template-columns: none; gap: 7px; overflow-x: auto; overflow-y: hidden; padding: 0 0 3px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  nav::-webkit-scrollbar { display: none; }
  .nav { flex: 0 0 auto; width: auto; min-width: max-content; padding: 9px 12px 9px 30px; text-align: left; white-space: nowrap; }
  main { width: 100%; max-width: none; min-width: 0; padding: 15px; }
  .topbar { width: 100%; align-items: center; flex-wrap: wrap; gap: 10px; }
  .topbar > div:first-child { flex: 1 1 190px; min-width: 0; }
  .topbar h1 { line-height: 1.25; }
  .topbar p { overflow-wrap: anywhere; }
  .top-actions { flex: 0 0 auto; }
  .hero { width: 100%; padding: 21px 18px; }
  .hero h2 { font-size: 21px; line-height: 1.35; }
  .hero p { line-height: 1.7; }
  .search { align-items: stretch; flex-direction: column; }
  .search .primary { width: 100%; }
  .grid, .admin-grid, .qa-dual-layout { width: 100%; grid-template-columns: minmax(0,1fr); }
  .card, .item, .qa-panel, .toolbar, .qa-shared-search { width: 100%; max-width: 100%; min-width: 0; }
  .prices { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .feedbacks, .ticket-actions { flex-wrap: wrap; }
}
@media (max-width: 480px) {
  .login-view { padding: 14px; }
  .login-card { padding: 28px 20px; }
  .topbar { align-items: flex-start; }
  .top-actions { width: 100%; justify-content: space-between; }
  .status { max-width: calc(100% - 100px); }
  .hero { border-radius: 17px; }
  .card, .item, .qa-panel { border-radius: 14px; }
  .prices { gap: 5px; }
  .price { padding: 8px 4px; }
}

/* V0.5.2 unified navigation line icons. */
.nav { display: flex; align-items: center; gap: 11px; padding-left: 14px; }
.nav::before { content: none !important; display: none !important; }
.nav-icon { flex: 0 0 18px; width: 18px; height: 18px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; color: rgba(127,222,237,.78); transition: color .18s ease, transform .18s ease; }
.nav.active .nav-icon,.nav:hover .nav-icon { color: #67e1ef; transform: scale(1.04); }
@media (max-width:820px) {
  .nav { padding: 9px 12px; gap: 8px; }
  .nav-icon { flex-basis: 16px; width: 16px; height: 16px; }
}

/* V0.5.3 ICP filing footer. */
.site-filing { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px; margin: 34px 0 2px; padding: 16px 12px 4px; border-top: 1px solid rgba(151,171,195,.28); color: var(--muted); text-align: center; font-size: 12px; }
.site-filing a { color: inherit; text-decoration: none; transition: color .18s ease; }
.site-filing a:hover { color: var(--brand); }
.public-security-filing { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.public-security-filing img { display: block; flex: 0 0 auto; width: 18px; height: 20px; object-fit: contain; }
.login-filing { position: absolute; left: 16px; right: 16px; bottom: 18px; z-index: 1; margin: 0; padding: 0; border: 0; color: rgba(255,255,255,.7); }
.login-filing a:hover { color: #fff; }
@media (max-width:480px) {
  .login-view { padding-bottom: 88px; }
  .login-filing { bottom: 14px; }
  .site-filing { margin-top: 25px; gap: 8px 12px; }
}

/* V0.6.0 public registration and personal ticket center. */
.login-card .register-open { margin-top: 10px; }
.register-modal { width: min(680px,100%); }
.register-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.register-grid label,.profile-confirm-grid label { display: grid; gap: 7px; color: #40536d; font-size: 12px; font-weight: 700; }
.register-grid .wide-field { grid-column: 1/-1; }
.register-error { margin-top: 13px; }
.register-modal .primary.wide { margin-top: 2px; }
.register-notice { margin: 12px 0 0; text-align: center; }
.guest-ticket-notice { max-width: 760px; margin: 40px auto; padding: 28px; text-align: center; }
.guest-ticket-notice h2 { margin-top: 7px; }
.guest-ticket-notice .primary { margin-top: 12px; }
.ticket-layout { display: grid; grid-template-columns: minmax(360px,.88fr) minmax(0,1.12fr); gap: 18px; align-items: start; }
.profile-confirm-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 18px 0 14px; padding: 14px; border: 1px solid #d6e4f2; border-radius: 14px; background: #f6faff; }
.my-ticket-panel { min-width: 0; }
.my-ticket-panel .user-toolbar { min-height: 48px; }
.my-ticket-panel .user-toolbar p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.my-ticket-card { border-left: 3px solid #68b7ec; }
.my-ticket-answer { margin-top: 13px; padding: 14px; border: 1px solid #c9e5dc; border-radius: 12px; background: #f3fbf8; }
.my-ticket-answer strong { display: block; margin-bottom: 7px; color: #15755e; font-size: 12px; }
.my-ticket-answer p { color: #314b48; font-size: 13px; line-height: 1.8; }
.my-ticket-pending { margin-top: 13px; padding: 11px 13px; border-radius: 10px; color: #6b7890; background: #f3f6fa; font-size: 11px; }
@media(max-width:1180px) {
  .ticket-layout { grid-template-columns: 1fr; }
}
@media(max-width:820px) {
  .register-grid,.profile-confirm-grid { grid-template-columns: 1fr; }
  .register-grid .wide-field { grid-column: auto; }
  .guest-ticket-notice { margin: 20px auto; padding: 22px 18px; }
}

/* V0.6.1 RBAC visibility fix: author styles must never override the hidden attribute. */
.nav[hidden], [data-permission][hidden], [data-manual][hidden], #importPanel[hidden] { display: none !important; }

/* V0.7.0 review filters and audited soft delete. */
.review-filter-panel { margin-bottom: 13px; }
.review-filter-grid { display: grid; grid-template-columns: minmax(260px,1.7fr) minmax(140px,.7fr) minmax(150px,.8fr) auto auto; gap: 9px; align-items: center; }
.review-filter-summary { margin-top: 10px; }
.ticket-delete { margin-left: auto; border-color: #e2b8b1; color: #a74838; background: #fff8f6; }
.ticket-delete:hover { border-color: #cf7e70; color: #873428; background: #fff0ec; }
@media(max-width:1000px) {
  .review-filter-grid { grid-template-columns: minmax(0,1fr) minmax(140px,.7fr) minmax(150px,.8fr); }
  .review-filter-grid .primary,.review-filter-grid .secondary { width: 100%; }
}
@media(max-width:820px) {
  .review-filter-grid { grid-template-columns: 1fr; }
  .ticket-delete { margin-left: 0; }
}

/* V0.8.0 analytics, smart suggestions, dashboard charts and collapsible sidebar. */
.brand { position: relative; }
.sidebar-toggle { margin-left:auto; width:30px; height:30px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.2); border-radius:9px; color:#d8f8ff; background:rgba(255,255,255,.08); font-size:22px; line-height:1; }
.sidebar-toggle:hover { background:rgba(255,255,255,.16); }
.app.sidebar-collapsed { grid-template-columns:76px minmax(0,1fr); }
.app.sidebar-collapsed aside { padding-left:10px; padding-right:10px; }
.app.sidebar-collapsed .brand { justify-content:center; }
.app.sidebar-collapsed .brand-copy,.app.sidebar-collapsed .nav span,.app.sidebar-collapsed .aside-user,.app.sidebar-collapsed .aside-foot { display:none; }
.app.sidebar-collapsed .sidebar-toggle { position:absolute; right:-4px; top:47px; z-index:2; }
.app.sidebar-collapsed .nav { justify-content:center; padding:12px; }
.app.sidebar-collapsed .nav-icon { flex-basis:20px; width:20px; height:20px; }
.metric-card { position:relative; border:1px solid var(--line); text-align:left; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.metric-card:hover { transform:translateY(-2px); border-color:#62b8df; box-shadow:0 12px 28px rgba(20,92,150,.12); }
.metric-card>span { display:block; margin-top:10px; color:#6f8299; font-size:10px; }
.dashboard-chart { margin-top:15px; }
.chart-head,.analytics-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.chart-head h2,.analytics-toolbar h2 { margin:0; }
.chart-head p,.analytics-toolbar p { margin:5px 0 0; }
.bar-chart { display:grid; gap:11px; margin-top:18px; }
.bar-row { display:grid; grid-template-columns:minmax(90px,160px) minmax(100px,1fr) 54px; align-items:center; gap:10px; font-size:12px; }
.bar-row>span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#4e647c; }
.bar-row>div { height:10px; overflow:hidden; border-radius:999px; background:#e9f1f8; }
.bar-row i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#1f78d1,#31c4d8); }
.bar-row strong { color:#143b68; text-align:right; }
.chart-empty { padding:30px 0; text-align:center; }
.suggest-wrap { position:relative; flex:1; min-width:0; }
.suggestions { position:absolute; z-index:20; top:calc(100% + 5px); left:0; right:0; overflow:hidden; border:1px solid #c7d9e9; border-radius:12px; background:#fff; box-shadow:0 14px 36px rgba(18,55,92,.16); }
.suggestions button { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; border:0; border-bottom:1px solid #edf2f6; background:#fff; text-align:left; }
.suggestions button:last-child { border-bottom:0; }
.suggestions button:hover { background:#f0f8ff; }
.suggestions strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#213d5b; font-size:12px; }
.suggestions span { flex:0 0 auto; color:#6e8197; font-size:10px; }
.analytics-summary { grid-template-columns:repeat(6,minmax(0,1fr)); margin:15px 0; }
.analytics-layout { display:grid; grid-template-columns:1.25fr .75fr; gap:15px; }
@media(max-width:1180px) { .analytics-summary { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:900px) { .analytics-layout { grid-template-columns:1fr; } }
@media(max-width:820px) {
  .sidebar-toggle { display:none; }
  .app.sidebar-collapsed { grid-template-columns:1fr; }
  .app.sidebar-collapsed .brand-copy,.app.sidebar-collapsed .nav span { display:block; }
  .app.sidebar-collapsed .aside-user,.app.sidebar-collapsed .aside-foot { display:none; }
  .app.sidebar-collapsed .nav { justify-content:flex-start; padding:9px 12px; }
  .analytics-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .analytics-toolbar,.chart-head { align-items:flex-start; flex-wrap:wrap; }
  .bar-row { grid-template-columns:85px minmax(80px,1fr) 42px; gap:7px; }
}

/* V0.9.0 national 2023 technical specification catalog. */
.catalog-english { margin: -3px 0 9px; color: #6d8197; font-size: 11px; }
.catalog-tech-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.catalog-tech-meta span { padding: 7px 9px; border: 1px solid #d7e5f1; border-radius: 9px; color: #49667f; background: #f5f9fc; font-size: 10px; }

/* V0.12.0 user filters, pagination and create modal. */
.user-toolbar-actions { display:flex; align-items:center; gap:9px; }
.user-filter-panel { display:grid; grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(130px,.7fr)) auto auto; gap:9px; align-items:center; margin-bottom:13px; }
.user-pagination { display:flex; align-items:center; justify-content:center; gap:13px; margin:15px 0; color:var(--muted); font-size:12px; }
.user-role-help { margin-top:16px; }
.user-create-modal { width:min(650px,100%); }
.user-create-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; margin-bottom:18px; }
.user-create-grid label { display:grid; gap:7px; color:#526862; font-size:12px; font-weight:700; }
@media(max-width:1050px) { .user-filter-panel { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:820px) { .user-toolbar-actions { width:100%; } .user-toolbar-actions button { flex:1; } .user-filter-panel,.user-create-grid { grid-template-columns:1fr; } }

/* V0.13.0 weekly QA trending questions. */
.qa-trending-card { margin-bottom:18px; padding:18px 20px; overflow:hidden; }
.qa-trending-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:14px; }
.qa-trending-head h2 { margin:4px 0 5px; font-size:18px; }
.qa-trending-head p { margin:0; color:var(--muted); font-size:12px; line-height:1.65; }
.qa-trending-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 12px; }
.qa-trending-item { display:grid; grid-template-columns:30px minmax(0,1fr) auto; align-items:center; gap:10px; min-width:0; padding:11px 12px; border:1px solid #d5e4f2; border-radius:12px; background:linear-gradient(135deg,#fff,#f5faff); color:var(--text); text-align:left; cursor:pointer; transition:.18s ease; }
.qa-trending-item:hover { transform:translateY(-1px); border-color:#79b8ee; box-shadow:0 7px 18px rgba(23,105,224,.1); }
.qa-trending-rank { display:grid; place-items:center; width:26px; height:26px; border-radius:8px; background:#e7f3ff; color:var(--brand); font-size:12px; font-weight:800; }
.qa-trending-item:nth-child(-n+3) .qa-trending-rank { background:linear-gradient(135deg,#1769e0,#22a8d8); color:#fff; }
.qa-trending-question { min-width:0; overflow:hidden; color:#18304d; font-size:13px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }
.qa-trending-count { color:#617a94; font-size:11px; white-space:nowrap; }
.qa-trending-empty { grid-column:1/-1; padding:8px 2px; }
@media(max-width:820px) { .qa-trending-head { align-items:stretch; flex-direction:column; } .qa-trending-head .secondary { width:100%; } .qa-trending-list { grid-template-columns:1fr; } }


/* V0.19.0 interactive-service security preparation. */
.site-filing { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 14px; }
.filing-link,.inline-link { padding:0; border:0; color:inherit; background:none; font:inherit; text-decoration:underline; cursor:pointer; }
.inline-link { color:var(--primary); }
.consent-check { display:flex; align-items:flex-start; gap:9px; margin:12px 0; color:var(--muted); font-size:12px; line-height:1.65; }
.consent-check input { margin-top:4px; }
.legal-modal { max-width:760px; }
.legal-content { max-height:65vh; overflow:auto; padding:4px 2px; color:#435363; font-size:13px; line-height:1.9; }
.security-report-modal { max-width:620px; display:grid; gap:14px; }
.security-report-description { min-height:150px; resize:vertical; }
.security-intro { margin-bottom:16px; background:linear-gradient(135deg,#f4f9ff,#eefaf8); }
.security-intro h2 { margin:5px 0 7px; }
.security-intro p { margin:0; color:var(--muted); line-height:1.7; }
.security-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
.security-report-item,.security-audit-item { display:grid; gap:9px; }
.security-report-item p,.security-audit-item p { margin:0; white-space:pre-wrap; }
.security-meta { color:var(--muted); font-size:11px; }
.security-report-item .secondary { justify-self:start; }
.security-audit-filter { display:grid; grid-template-columns:minmax(220px,1.7fr) repeat(3,minmax(130px,1fr)) auto auto; gap:9px; margin-bottom:12px; padding:12px; }
.security-audit-filter > * { min-width:0; width:100%; }
.security-outcome.success { color:#087866; }
.security-outcome.failure { color:#b42318; }
@media(max-width:1100px) { .security-audit-filter { grid-template-columns:repeat(3,minmax(0,1fr)); } .security-audit-filter #securityAuditQuery { grid-column:1/-1; } }
@media(max-width:720px) { .security-audit-filter { grid-template-columns:1fr 1fr; } .security-audit-filter #securityAuditQuery { grid-column:1/-1; } }
@media(max-width:520px) { .security-audit-filter { grid-template-columns:1fr; } .security-audit-filter #securityAuditQuery { grid-column:auto; } }

/* V0.14.0 ticket clarification and resubmission workflow. */
.ticket-return { color:#875f16; border-color:#dec78e; background:#fffaf0; }
.my-ticket-return { display:grid; gap:10px; margin-top:13px; padding:14px; border:1px solid #e4c77f; border-radius:12px; background:#fffaf0; }
.my-ticket-return strong { color:#825d14; font-size:13px; }
.my-ticket-return p { margin:0; color:#5f5238; font-size:12px; line-height:1.75; }
.my-ticket-return textarea { min-height:120px; resize:vertical; }
.my-ticket-return .primary { justify-self:end; }
.clarification-history { margin-top:14px; }
.clarification-history h4 { margin:0 0 9px; color:#6a552c; font-size:12px; }
.clarification-record { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:9px; padding:12px; border:1px solid #e7dcc4; border-radius:11px; background:#fffcf5; }
.clarification-reason,.clarification-response { min-width:0; }
.clarification-reason strong,.clarification-response strong { color:#76591e; font-size:11px; }
.clarification-response strong { color:#216c59; }
.clarification-reason p,.clarification-response p { margin:6px 0; color:#435363; font-size:12px; line-height:1.7; }
.clarification-reason span,.clarification-response span { color:#87929d; font-size:10px; }
.clarification-response { padding-left:10px; border-left:1px solid #e7dcc4; }
.clarification-awaiting { padding:10px 12px; border-radius:9px; color:#87621d; background:#fff3cf; font-size:11px; }
.review-awaiting { margin:12px 0; }
@media(max-width:820px) { .clarification-record { grid-template-columns:1fr; } .clarification-response { padding:10px 0 0; border-top:1px solid #e7dcc4; border-left:0; } .my-ticket-return .primary { width:100%; justify-self:stretch; } }


/* V0.15.0 QA input suggestions. */
.qa-shared-search .suggest-wrap { flex:1; }
.qa-shared-search .suggestions { top:calc(100% + 7px); }
.qa-shared-search .suggestions button { min-height:44px; }
.ticket-question-wrap { grid-column:1 / -1; }
.ticket-question-wrap .ticket-question { width:100%; min-height:130px; }
.ticket-question-wrap .suggestions { top:calc(100% + 7px); max-height:320px; overflow:auto; }
.ticket-question-wrap .suggestions button { min-height:52px; }
.ticket-suggestion-hint { grid-column:1 / -1; margin:-3px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }
@media(max-width:820px) { .qa-shared-search .suggest-wrap { width:100%; } }


/* V0.16.0 public project mapping tables. */
.mapping-intro { margin-bottom:14px; padding:18px 20px; background:linear-gradient(135deg,#f7fbff,#eef8fb); }
.mapping-intro h2 { margin:4px 0 7px; font-size:19px; }
.mapping-intro p { margin:0; color:var(--muted); font-size:12px; line-height:1.7; }
.mapping-toolbar { grid-template-columns:minmax(280px,1.5fr) minmax(260px,1fr) auto; }
.mapping-source-note { margin-top:10px; color:#70879d; font-size:10px; line-height:1.5; }
.mapping-item { border-left:3px solid #35a9ca; }
.mapping-item .tag { background:#e7f7fb; color:#17758d; }
@media(max-width:1100px) { .mapping-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:820px) { .mapping-toolbar { grid-template-columns:1fr; } .mapping-toolbar .field,.mapping-toolbar .primary { width:100%; } }


/* V0.20.5 LeapStack company branding. */
.company-logo-link { display:flex; align-items:center; justify-content:center; text-decoration:none; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.company-logo-link:hover { transform:translateY(-1px); }
.company-logo-link:focus-visible { outline:3px solid rgba(37,198,218,.35); outline-offset:3px; }
.company-logo-link img { display:block; width:100%; height:auto; object-fit:contain; }
.login-company-logo { width:min(220px,72vw); min-height:64px; margin:0 auto 15px; padding:11px 17px; border:1px solid #d7e5f1; border-radius:17px; background:linear-gradient(145deg,#fff,#f4f9ff); box-shadow:0 10px 24px rgba(16,67,117,.09); }
.login-company-logo:hover { border-color:#7cb7ea; box-shadow:0 13px 28px rgba(16,67,117,.14); }
.sidebar-company-logo { flex:0 0 80px; width:80px; min-height:38px; padding:6px 7px; border:1px solid rgba(255,255,255,.45); border-radius:10px; background:rgba(255,255,255,.94); box-shadow:0 7px 18px rgba(2,18,37,.16); }
.sidebar-company-logo:hover { background:#fff; box-shadow:0 9px 22px rgba(2,18,37,.24); }
.brand-copy { min-width:0; }
.brand-copy strong,.brand-copy span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.app.sidebar-collapsed .sidebar-company-logo { flex-basis:48px; width:48px; min-height:34px; padding:7px 5px; }
@media(max-width:820px) {
  .brand { gap:9px; }
  .sidebar-company-logo { flex-basis:76px; width:76px; min-height:34px; padding:5px 6px; }
  .brand-copy strong { font-size:16px; }
  .login-company-logo { width:min(200px,70vw); min-height:58px; padding:10px 15px; }
}


/* V0.20.6 registered website naming and header branding. */
.topbar-company-logo { flex:0 0 94px; width:94px; min-height:34px; padding:6px 8px; border:1px solid #c8dceb; border-radius:10px; background:#fff; box-shadow:0 5px 14px rgba(16,67,117,.11); }
.topbar-company-logo:hover { border-color:#7cb7ea; box-shadow:0 7px 18px rgba(16,67,117,.18); }
.top-actions { align-items:center; }
@media(max-width:820px) {
  .topbar-company-logo { flex-basis:82px; width:82px; min-height:32px; padding:5px 7px; }
  .top-actions { gap:7px; }
}


/* V0.20.7 logo without a visible container border. */
.login-company-logo,.topbar-company-logo { border-color:transparent; box-shadow:none; background:transparent; }
.login-company-logo:hover,.topbar-company-logo:hover { border-color:transparent; box-shadow:none; background:transparent; }


/* V0.20.8 manual expert-opinion visibility. */
.manual-opinion-notice { margin-top:10px; padding:10px 12px; border-left:3px solid #e5a532; border-radius:9px; color:#765616; background:#fff8e8; font-size:11px; line-height:1.65; }
.detail-opinion-notice { margin:15px 0 0; font-size:12px; }
.manual-visibility-tag { margin-left:8px; color:#1769e0; background:#eaf3ff; }
.manual-visibility { border-color:#8dbce7; color:#175f9e; background:#f4f9ff; }


/* V0.20.9 bulk manual-reply visibility control. */
.manual-visibility-bulk { display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.manual-visibility-bulk>div { margin-right:auto; display:grid; gap:3px; }
.manual-visibility-bulk strong { color:#183f69; font-size:12px; }
.manual-visibility-bulk span { color:#71859b; font-size:10px; }
.manual-visibility-bulk select { min-width:220px; }
@media(max-width:820px) { .manual-visibility-bulk { align-items:stretch; flex-direction:column; } .manual-visibility-bulk select,.manual-visibility-bulk button { width:100%; } }

/* V0.21.0 content feedback and reviewer statistics. */
.content-feedback-panel { margin-top:16px; padding:14px; border:1px solid #cfe0ed; border-radius:12px; background:#f8fbfe; }
.content-feedback-head,.content-feedback-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.content-feedback-head>div:first-child { display:grid; gap:4px; }
.content-feedback-head strong { color:#173e68; font-size:13px; }
.content-feedback-head span,.content-feedback-foot span,.guest-feedback p { color:#71859a; font-size:10px; }
.content-feedback-actions { display:flex; flex-wrap:wrap; gap:8px; }
.content-rating.active { border-color:#1688cc; color:#0e69a7; background:#e8f5ff; }
.content-feedback-comment { min-height:86px; margin:12px 0 10px; resize:vertical; }
.guest-feedback { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.guest-feedback p { margin:3px 0 0; }
.analytics-feedback-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; margin-top:15px; }
.analytics-table-wrap { overflow:auto; margin-top:14px; }
.analytics-table { width:100%; min-width:620px; border-collapse:collapse; font-size:10px; }
.analytics-table th,.analytics-table td { padding:9px 8px; border-bottom:1px solid #e1ebf3; text-align:left; white-space:nowrap; }
.analytics-table th { color:#526c86; background:#f5f9fc; }
.analytics-table td:first-child { max-width:280px; overflow:hidden; text-overflow:ellipsis; }
.feedback-summary-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:12px; }
.feedback-summary-grid>div { padding:10px; border-radius:10px; text-align:center; background:#f4f8fc; }
.feedback-summary-grid strong,.feedback-summary-grid span { display:block; }
.feedback-summary-grid strong { color:#1769aa; font-size:18px; }
.feedback-summary-grid span { margin-top:3px; color:#71859a; font-size:9px; }
.feedback-detail-button { padding:6px 10px; white-space:nowrap; }
.feedback-comment-list { display:grid; gap:12px; }
.feedback-comment-item { padding:14px; border:1px solid #dce7f0; border-radius:12px; background:#f8fbfd; }
.feedback-comment-item p { margin:10px 0 0; color:#29443e; line-height:1.75; }
.feedback-comment-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#6e8295; font-size:12px; }
.feedback-comment-meta span { color:#1769aa; font-weight:700; }
.feedback-comment-note { margin-top:14px; }
@media(max-width:1000px) { .analytics-feedback-grid { grid-template-columns:1fr; } }
@media(max-width:720px) { .content-feedback-head,.content-feedback-foot,.guest-feedback { align-items:stretch; flex-direction:column; } .content-feedback-actions { display:grid; grid-template-columns:1fr 1fr; } .feedback-summary-grid { grid-template-columns:repeat(2,1fr); } }


/* V0.21.3 login footer and bulk visibility layout. */
.login-view { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; min-height:100vh; min-height:100svh; overflow-x:hidden; overflow-y:auto; padding:24px 24px calc(20px + env(safe-area-inset-bottom)); }
.login-card { flex:0 0 auto; margin-top:auto; }
.login-filing { position:static; left:auto; right:auto; bottom:auto; flex:0 0 auto; width:100%; max-width:1180px; margin:18px auto auto; padding:0; }
.manual-visibility-bulk { display:grid; grid-template-columns:minmax(260px,1fr) minmax(180px,260px) auto; align-items:center; gap:10px; }
.manual-visibility-bulk>div { min-width:0; margin-right:0; }
.manual-visibility-bulk select { width:100%; min-width:0; max-width:none; }
.manual-visibility-bulk button { min-width:120px; width:auto; white-space:nowrap; }
@media(max-width:1050px) {
  .manual-visibility-bulk { grid-template-columns:minmax(0,1fr) auto; }
  .manual-visibility-bulk>div { grid-column:1/-1; }
  .manual-visibility-bulk button { width:auto; }
}
@media(max-width:640px) {
  .manual-visibility-bulk { grid-template-columns:1fr; }
  .manual-visibility-bulk>div { grid-column:auto; }
  .manual-visibility-bulk button { width:100%; }
}
@media(max-width:480px) {
  .login-view { padding:14px 14px calc(16px + env(safe-area-inset-bottom)); }
  .login-filing { margin-top:16px; }
}

.nav-subitem { padding-left: 32px; font-size: 0.94em; }

.review-pagination .field { width:auto; max-width:140px; margin:0; }
.review-pagination button:disabled { cursor:not-allowed; opacity:.45; }

/* V0.23.0 local AI agent preliminary-review workflow. */
.ai-review { margin: 14px 0; padding: 14px; border: 1px solid #d4e2ef; border-radius: 12px; background: #f7fbff; display: grid; gap: 9px; }
.ai-review.completed { border-color: #b8d9cf; background: #f3fbf8; }
.ai-review.pending { border-color: #eed79e; background: #fffaf0; }
.ai-review.failed { border-color: #e6c2bc; background: #fff7f5; }
.ai-review-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.ai-review p { margin: 0; line-height: 1.75; }
.ai-risk { padding: 10px 12px; border-left: 3px solid #d99832; background: #fff9ec; }
.ai-sources ul { margin: 7px 0 0; padding-left: 20px; }
.ai-review .secondary { justify-self: start; }

.ai-history { padding: 10px 12px; border: 1px solid #cbdced; border-radius: 10px; background: #fff; }
.ai-history ul { margin: 7px 0 0; padding-left: 20px; }
.ai-history li { margin: 7px 0; line-height: 1.65; }

/* V0.23.3 review workspace cards and expert comparison. */
.review-summary-card { display: grid; gap: 10px; }
.review-summary-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; color: var(--muted); font-size: 12px; }
.ai-status-tag { background: #eef5ff; color: #2b70c9; }
.review-expand-button { justify-self: start; }
.review-ticket-details[hidden] { display: none; }
.review-ticket-details { padding-top: 8px; border-top: 1px solid #e4edf5; }
.reply-collapsed { margin: 9px 0; border: 1px dashed #c7d8e8; border-radius: 10px; background: #fbfdff; }
.reply-collapsed summary { padding: 11px 13px; cursor: pointer; color: #52708e; font-size: 12px; }
.reply-collapsed .reply-record { margin: 0; border: 0; border-top: 1px solid #e6eef5; border-radius: 0; }
.reviewer-comparison-panel { margin-top: 18px; }
.reviewer-comparison-toolbar { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 9px; margin: 12px 0; }
.comparison-card { margin-top: 12px; }
.comparison-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.comparison-grid > div { padding: 12px; border: 1px solid #d9e6f0; border-radius: 10px; background: #fbfdff; }
.comparison-grid strong { display: block; margin-bottom: 7px; color: #335777; }
.comparison-grid p { margin: 0; line-height: 1.75; }
.comparison-note { margin-top: 10px; }
@media(max-width:820px) { .comparison-grid,.reviewer-comparison-toolbar { grid-template-columns: 1fr; } }

/* V0.23.4 reviewer comparison moved into a dedicated modal. */
.review-head-actions { display: flex; align-items: center; gap: 9px; }
.reviewer-comparison-modal { width: min(1100px,100%); max-height: min(88vh,900px); overflow: auto; }
.reviewer-comparison-list { max-height: 58vh; overflow: auto; padding-right: 4px; }
@media(max-width:640px) { .review-head-actions { width:100%; } .review-head-actions button { flex:1; } }

/* V0.23.7 professional-member ticket priority. */
.member-priority-card { border-color: #d7b568; box-shadow: 0 8px 24px rgba(173,126,29,.10); }
.member-priority-tag { background: #fff3cf; color: #8a5a00; border: 1px solid #e6c76f; }
.manual-request-priority-card { border-color:#6aa7d8; box-shadow:0 8px 24px rgba(42,112,168,.10); }
.manual-request-priority-tag { color:#17629a; background:#e5f3ff; border:1px solid #9fc9ea; }
.manual-request-button { margin-top:12px; }
.manual-requested-notice { margin-top:12px; padding:10px 12px; border-radius:10px; color:#17629a; background:#eaf5ff; }

/* V0.24.0 collapsible catalog navigation and integrated CHS-DRG 3.0. */
aside { height:100vh; position:sticky; top:0; overflow:hidden; }
nav { max-height:calc(100vh - 250px); overflow-y:auto; padding-right:4px; scrollbar-width:thin; }
.nav-group-toggle { width:100%; }
.nav-group-toggle .nav-chevron { margin-left:auto; font-size:16px; transition:transform .18s ease; }
.nav-group-toggle[aria-expanded="false"] .nav-chevron { transform:rotate(-90deg); }
.nav-children { display:grid; gap:5px; margin:0 0 4px; }
.nav-children[hidden] { display:none; }
.nav-children .nav-subitem { width:100%; padding-left:34px; color:rgba(225,241,255,.86); }
.nav-children .nav-subitem .nav-icon { width:16px; height:16px; opacity:.82; }
.app.sidebar-collapsed .nav-children { display:none; }
.app.sidebar-collapsed .nav-group-toggle .nav-chevron { display:none; }

.drg3-intro { margin-bottom:16px; }
.drg3-intro h2,.drg3-section-head h2 { margin:4px 0 7px; }
.drg3-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); gap:16px; align-items:start; }
.drg3-form,.drg3-result,.drg3-search-card { display:grid; gap:16px; }
.drg3-result { position:sticky; top:18px; min-height:250px; }
.drg3-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.drg3-code-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.drg3-code-grid label,.drg3-demographic-grid label { display:grid; gap:7px; font-weight:700; }
.drg3-wide { grid-column:1/-1; }
.drg3-code-name { min-height:20px; color:#53708c; font-size:12px; font-weight:400; line-height:1.6; }
.drg3-demographic-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.drg3-path { display:flex; align-items:stretch; gap:8px; margin:5px 0 2px; }
.drg3-path-node { flex:1; min-width:0; padding:12px; border:1px solid #c8ddeb; border-radius:11px; background:#f6fbff; }
.drg3-path-node strong,.drg3-path-node span { display:block; }
.drg3-path-node strong { margin-bottom:5px; color:#1769e0; }
.drg3-path-node span { color:#526b83; font-size:12px; line-height:1.5; }
.drg3-path-arrow { align-self:center; color:#6b91b4; font-weight:800; }
.drg3-result-details { line-height:1.7; }
.drg3-result-details ol,.drg3-result-details ul { padding-left:22px; }
.drg3-search-card { margin-top:16px; }
.drg3-search-toolbar { grid-template-columns:170px minmax(240px,1fr) auto; }
.drg3-search-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.drg3-search-item { width:100%; margin:0; padding:14px; text-align:left; cursor:default; }
.drg3-search-item[data-drg3-adrg] { cursor:pointer; }
.drg3-search-item strong,.drg3-search-item span { display:block; }
.drg3-search-item span { margin-top:6px; color:var(--muted); font-size:12px; line-height:1.5; }

@media(max-width:1050px) {
  .drg3-layout { grid-template-columns:1fr; }
  .drg3-result { position:static; }
  .drg3-demographic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:820px) {
  aside { height:auto; position:sticky; overflow:visible; }
  nav { max-height:none; overflow-x:auto; overflow-y:hidden; padding-right:0; }
  .nav-group-toggle { display:none; }
  .nav-children,.nav-children[hidden] { display:flex; flex:0 0 auto; gap:7px; margin:0; }
  .nav-children .nav-subitem { width:auto; padding-left:12px; }
  .drg3-code-grid,.drg3-search-results { grid-template-columns:1fr; }
  .drg3-wide { grid-column:auto; }
  .drg3-search-toolbar { grid-template-columns:1fr; }
}
@media(max-width:560px) {
  .drg3-demographic-grid { grid-template-columns:1fr; }
  .drg3-path { flex-direction:column; }
  .drg3-path-arrow { transform:rotate(90deg); }
}

.tag.success { color:#087866; background:#e7f7f1; }
.tag.warning { color:#98620f; background:#fff4d8; }
.tag.danger { color:#a74838; background:#fff0ed; }


/* V0.24.1 AI preliminary-review evaluation loop. */
.ai-evaluation { display:grid; gap:9px; margin-top:5px; padding:12px; border:1px solid #cadbea; border-radius:11px; background:#fff; }
.ai-evaluation-current { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.ai-evaluation-actions { display:flex; flex-wrap:wrap; gap:8px; }
.ai-evaluation .tag.adopted { color:#087866; background:#e7f7f1; }
.ai-evaluation .tag.rejected { color:#a74838; background:#fff0ed; }
.ai-evaluation .tag.irrelevant { color:#73508e; background:#f3ebfa; }
@media(max-width:560px) { .ai-evaluation-actions { display:grid; grid-template-columns:1fr; } }

/* V0.24.3 retains the full fuzzy-search DRG case pickers. */
.drg3-picker-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.drg3-picker-field { min-width:0; }
.drg3-picker-field>label { display:block; margin-bottom:7px; font-weight:700; }
.drg3-picker { position:relative; }
.drg3-picker-suggestions { position:absolute; z-index:25; top:calc(100% + 5px); left:0; right:0; max-height:280px; overflow:auto; border:1px solid #bfd1e2; border-radius:11px; background:#fff; box-shadow:0 14px 34px rgba(16,35,63,.18); }
.drg3-picker-option { width:100%; display:grid; grid-template-columns:minmax(110px,auto) minmax(0,1fr); gap:10px; padding:11px 12px; border:0; border-bottom:1px solid #e7eef5; color:var(--ink); background:#fff; text-align:left; }
.drg3-picker-option:last-child { border-bottom:0; }
.drg3-picker-option:hover,.drg3-picker-option:focus,.drg3-picker-option.first:focus { background:#edf6ff; outline:0; }
.drg3-picker-option code { color:#1769e0; font-weight:800; }
.drg3-picker-option span,.drg3-picker-option small { display:block; min-width:0; }
.drg3-picker-option small { margin-top:3px; color:#a15e16; font-size:11px; }
.drg3-picker-message { padding:13px; color:var(--muted); font-size:12px; }
.drg3-selected-list { display:grid; gap:7px; margin-top:8px; }
.drg3-selected-empty { padding:10px 11px; border:1px dashed #c9d6e2; border-radius:9px; color:var(--muted); background:#fafcff; font-size:12px; }
.drg3-selected-item { display:grid; grid-template-columns:minmax(105px,auto) minmax(0,1fr) auto; align-items:start; gap:10px; padding:10px 11px; border:1px solid #c8def1; border-radius:10px; background:#f6fbff; }
.drg3-selected-item code { color:#1769e0; font-weight:800; }
.drg3-selected-item span { min-width:0; overflow-wrap:anywhere; line-height:1.55; }
.drg3-selected-item small { display:block; margin-top:3px; color:#a15e16; }
.drg3-selected-actions { display:flex; align-items:center; gap:5px; }
.drg3-selected-actions .secondary { padding:5px 8px; font-size:11px; }
.drg3-remove { width:28px; height:28px; border:0; border-radius:8px; color:#75879a; background:transparent; font-size:20px; line-height:1; }
.drg3-remove:hover { color:#a74838; background:#fff0ed; }
@media(max-width:900px) { .drg3-picker-grid { grid-template-columns:1fr; } }
@media(max-width:480px) { .drg3-selected-item { grid-template-columns:1fr; } .drg3-selected-actions { justify-content:flex-end; } }

/* V0.24.6 policy article pagination and neutral AI evaluation. */
.article-pagination .field { width:auto; max-width:140px; margin:0; }
.article-pagination button:disabled,.ai-evaluation-actions button:disabled { cursor:not-allowed; opacity:.45; }
.ai-evaluation-current .tag.neutral { color:#5d4a00; background:#fff7ce; border-color:#ead777; }
@media(max-width:640px) { .article-pagination { flex-wrap:wrap; } .article-pagination .field { width:100%; max-width:none; } }

/* V0.26.0 ticket quota and submission guidance. */
.reviewer-priority-card { border-color:#a778d4; box-shadow:0 10px 26px rgba(117,69,163,.13); }
.reviewer-priority-tag { color:#6b2fa0; background:#f1e7fb; }
.ticket-quota{margin:14px 0;padding:12px 14px;border:1px solid #b8d2ef;border-radius:12px;color:#17416f;background:#eef6ff;font-weight:700}.ticket-quota.quota-empty{border-color:#efb8ad;color:#9a4938;background:#fff0ec}.ticket-submit-notice{margin:10px 0;padding:10px 12px;border-left:4px solid #d97706;border-radius:8px;background:#fff7ed;color:#9a3412;font-size:13px;line-height:1.7}
.profile-center-card{max-width:880px}.profile-center-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.profile-center-item{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid #dce8f2;border-radius:12px;background:#f7fbff;color:#5c718a}.profile-center-item strong{font-size:22px;color:#17395f}.profile-center-item.points{border-color:#e8c979;background:#fffaf0}.profile-center-item.points strong{color:#a06008}@media(max-width:720px){.profile-center-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.contact-page-card { max-width: 760px; }
.contact-page-body { margin-top: 24px; }
.contact-page-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.contact-qr-panel { text-align: center; padding: 12px; }
.contact-qr-panel img { display: block; width: min(280px, 70vw); max-height: 360px; object-fit: contain; margin: 16px auto; border-radius: 12px; border: 1px solid var(--line); }
.contact-modal { max-width: 560px; }
.contact-settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 18px 0; }
.contact-settings-grid label:last-of-type { grid-column: 1 / -1; }
.contact-admin-card { margin-bottom: 18px; }
@media (max-width: 720px) { .contact-settings-grid { grid-template-columns: 1fr; } .contact-settings-grid label:last-of-type { grid-column: auto; } }
.contact-qr-preview { display: block; width: 160px; max-height: 220px; object-fit: contain; margin-top: 12px; border: 1px solid var(--line); border-radius: 10px; }
.contact-qr-preview { display:block; width:160px; max-height:220px; object-fit:contain; margin-top:12px; border:1px solid var(--line); border-radius:10px; }
