:root{color:#1c2726;background:#f4f1e8;font-family:Microsoft YaHei,PingFang SC,Noto Sans CJK SC,sans-serif;font-size:15px;line-height:1.5;text-rendering:geometricPrecision}*{box-sizing:border-box}body{margin:0;min-width:1120px;background:linear-gradient(90deg,rgba(32,93,89,.05) 1px,transparent 1px),linear-gradient(180deg,rgba(32,93,89,.05) 1px,transparent 1px),#f4f1e8;background-size:24px 24px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.55}.shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:24px 18px;background:#182322;color:#eef6f2;border-right:1px solid rgba(255,255,255,.08)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.24);background:#c9ff6a;color:#13201d;font-weight:800}.brand-title{font-weight:800;letter-spacing:0}.brand-subtitle{color:#8fa19e;font-size:12px}.nav{display:grid;gap:8px;margin-top:34px}.nav-button{width:100%;padding:11px 12px;border:1px solid transparent;background:transparent;color:#c9d7d2;text-align:left}.nav-button.active,.nav-button:hover{border-color:#c9ff6a59;background:#c9ff6a1f;color:#fff}.admin-card{position:absolute;left:18px;right:18px;bottom:24px;padding:14px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f}.admin-name{margin-top:5px;font-weight:700}.role-pill,.badge{display:inline-flex;align-items:center;width:fit-content;min-height:24px;margin-top:8px;padding:2px 8px;border:1px solid #89a65f;background:#eefcd7;color:#263c16;font-size:12px}.expiry{margin:10px 0 14px;color:#aebcb8;font-size:12px}.main{padding:28px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.page-header h1{margin:0;font-size:28px;letter-spacing:0}.page-header p,.panel-heading p{margin:4px 0 0;color:#6c7875}.grid{display:grid;gap:16px}.two-columns{grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr)}.panel{padding:18px;border:1px solid #d8d1bf;background:#fffdf7eb;box-shadow:0 18px 40px #3d352314}.panel+.panel,.grid+.panel{margin-top:16px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.panel-heading h2{margin:0;font-size:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}label{display:grid;gap:6px;color:#45514f;font-size:13px}input,select,textarea{width:100%;border:1px solid #c8c0ad;border-radius:0;background:#fffefa;color:#1c2726;outline:none}input,select{height:38px;padding:0 10px}textarea{resize:vertical;padding:9px 10px}input:focus,select:focus,textarea:focus{border-color:#21736f;box-shadow:0 0 0 3px #21736f1f}.primary-button,.secondary-button,.ghost-button,.text-button{min-height:36px;border:1px solid transparent;border-radius:0;padding:0 13px}.primary-button{margin-top:16px;background:#205d59;color:#fff}.secondary-button{background:#fffefa;border-color:#bfb6a2;color:#263230}.ghost-button{background:transparent;border-color:#ffffff2e;color:#eef6f2}.text-button{min-height:28px;padding:0 4px;background:transparent;color:#206b67}.danger{color:#9c3328}.full{width:100%}.batch-list{display:grid;gap:8px;max-height:382px;overflow:auto}.batch-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 12px;border:1px solid #ddd5c3;background:#fffefa;color:#253331;text-align:left}.batch-row.selected{border-color:#205d59;background:#eff8f4}.batch-row small{display:block;margin-top:3px;color:#6c7875}.batch-count{font-variant-numeric:tabular-nums;color:#205d59}.table-panel{overflow:hidden}.table-wrap{overflow:auto}table{width:100%;min-width:920px;border-collapse:collapse;background:#fffefa}th,td{padding:10px 12px;border-bottom:1px solid #e6dfcf;text-align:left;vertical-align:middle}th{color:#5a6663;font-size:12px;font-weight:700}code{color:#143d3a;font-family:Cascadia Mono,SFMono-Regular,Consolas,monospace;font-size:13px}.status{display:inline-flex;min-height:24px;align-items:center;padding:2px 8px;border:1px solid #d7ceb9;background:#f7f1e4;color:#4b5148;font-size:12px;white-space:nowrap}.status.unused,.status.open{border-color:#c7a64d;background:#fff6d6;color:#624812}.status.redeemed,.status.resolved{border-color:#79a87b;background:#edf8ea;color:#26572a}.status.void,.status.rejected{border-color:#d6968c;background:#fff0ee;color:#86372e}.status.processing{border-color:#7da0b3;background:#eef7fb;color:#285266}.status.active{border-color:#79a87b;background:#edf8ea;color:#26572a}.status.expired{border-color:#d6968c;background:#fff0ee;color:#86372e}.actions{display:flex;gap:8px}.generated{margin-top:16px;border:1px solid #d8d1bf;background:#fbf8ee}.generated-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #d8d1bf}.generated pre{max-height:160px;margin:0;padding:12px;overflow:auto;font-family:Cascadia Mono,SFMono-Regular,Consolas,monospace;font-size:13px}.filters{display:grid;grid-template-columns:180px 180px minmax(220px,1fr) auto;align-items:end;gap:12px}.filters .primary-button{margin:0}.question-filters{grid-template-columns:150px 170px 130px minmax(220px,1fr) 92px auto}.status-metrics{grid-template-columns:repeat(9,minmax(104px,1fr))}.question-table{min-width:1180px}.question-table th,.question-table td{padding:9px 10px}.question-table td:nth-child(3){max-width:220px;white-space:normal}.flag-list,.row-actions{display:flex;flex-wrap:wrap;gap:6px}.flag{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border:1px solid #d4b664;background:#fff8de;color:#654e11;font-size:12px;white-space:nowrap}.row-actions{min-width:112px}.status.enabled{border-color:#79a87b;background:#edf8ea;color:#26572a}.status.disabled{border-color:#d6968c;background:#fff0ee;color:#86372e}.feedback-list{display:grid;gap:12px}.feedback-card{padding:14px;border:1px solid #ded7c6;background:#fffefa}.feedback-main,.feedback-actions{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.feedback-title{display:flex;gap:8px;align-items:center;font-weight:800}.feedback-meta{margin-top:4px;color:#6c7875;font-size:12px}.answer-pair{display:flex;gap:8px;color:#3f4d49;font-size:12px}.answer-pair span{border:1px solid #d8d1bf;padding:3px 7px}.feedback-message{margin:12px 0;color:#24312f}.feedback-actions{align-items:end}.lookup-panel{margin-bottom:16px}.lookup-form{display:grid;grid-template-columns:180px minmax(360px,1fr) auto;align-items:end;gap:12px}.lookup-form .primary-button{margin:0}.lookup-query input{font-family:Cascadia Mono,SFMono-Regular,Consolas,monospace;letter-spacing:0}.lookup-summary .panel-heading{align-items:center}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px}.metric-card{min-height:76px;padding:12px;border:1px solid #ded7c6;background:#fffefa}.metric-card span{display:block;color:#6c7875;font-size:12px}.metric-card strong{display:block;margin-top:7px;color:#1c2726;font-size:18px;font-variant-numeric:tabular-nums}.lookup-sections{align-items:start}.compact-list{display:grid;gap:8px}.compact-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #ded7c6;background:#fffefa}.compact-row strong,.compact-row small{display:block}.compact-row small{margin-top:4px;color:#6c7875;font-size:12px}.feedback-compact p{margin:8px 0 0;color:#24312f}.note-field{flex:1}.notice{margin-bottom:14px;padding:10px 12px;border:1px solid}.notice.info{border-color:#7da0b3;background:#eef7fb;color:#285266}.notice.success{border-color:#79a87b;background:#edf8ea;color:#26572a}.notice.error{border-color:#d6968c;background:#fff0ee;color:#86372e}.empty{display:grid;place-items:center;min-height:130px;border:1px dashed #d4cbb9;color:#6c7875}.coming-soon{display:grid;justify-items:start;gap:10px}.coming-soon h2,.coming-soon p,.coming-soon ul{margin:0}.placeholder-icon{display:grid;place-items:center;width:48px;height:48px;background:#205d59;color:#c9ff6a;font-weight:900}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px}.login-panel{width:min(440px,100%);padding:28px;border:1px solid #d8d1bf;background:#fffdf7f5;box-shadow:0 24px 70px #3d352324}.login-brand{margin-bottom:24px}.login-form{display:grid;gap:14px}.login-form .primary-button{width:100%}.login-footnote,.muted{color:#8fa19e;font-size:12px}
