:root{--bg-main: #f3f6fb;--bg-soft: #ffffff;--bg-panel: #f8fbff;--text-main: #1a263a;--text-sub: #5e6f88;--line: #dbe4f2;--line-strong: #c9d8ed;--primary: #2a7be4;--primary-strong: #1f67c8;--danger: #d64545;--warn: #e58a11;--shadow: 0 14px 38px rgba(23, 44, 77, .08);font-family:PingFang SC,Source Han Sans SC,Noto Sans SC,sans-serif;color:var(--text-main);background:var(--bg-main)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:radial-gradient(900px 500px at 10% 0%,rgba(42,123,228,.12),transparent 70%),radial-gradient(700px 420px at 100% 0%,rgba(32,181,130,.08),transparent 68%),var(--bg-main)}#app{width:100%}.layout{min-height:100vh;padding:18px}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.header h1{margin:0;font-size:24px;letter-spacing:.6px}.message{background:linear-gradient(135deg,#ecf4ff,#f3f9ff);border:1px solid #cfdff6;border-radius:12px;padding:11px 13px;margin-bottom:12px;color:#1f4d95;box-shadow:0 6px 16px #3668b41f}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card{border:1px solid var(--line);border-radius:14px;background:var(--bg-soft);box-shadow:var(--shadow);padding:14px;margin-bottom:12px}.card h2,.card h3{margin-top:0}.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.section-head h3,.section-head h4{margin:0}.login{max-width:440px;margin:78px auto 0;padding:18px 18px 10px;border-radius:16px;border:1px solid var(--line-strong);background:#fffffff0;box-shadow:0 18px 42px #1e457a21;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.app-shell{display:grid;grid-template-columns:238px minmax(0,1fr);gap:16px;min-height:calc(100vh - 36px)}.sidebar{position:sticky;top:14px;align-self:start;background:#fffffff5;border:1px solid var(--line);border-radius:16px;padding:12px;box-shadow:var(--shadow)}.logo{font-size:16px;font-weight:700;margin-bottom:14px;color:#154f95;letter-spacing:.4px}.menu{display:grid;gap:8px}.menu button{width:100%;text-align:left;background:#f5f9ff;color:#223554}.menu button.active{background:linear-gradient(135deg,var(--primary) 0%,#5a9bef 100%);color:#fff;box-shadow:0 8px 18px #2772d647}.main{min-width:0}.btn-logout{background:var(--danger)}.stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.stats>div{background:#f5f9ff;border:1px solid #d4e0f2;border-radius:10px;padding:8px 10px;color:#294265}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.toolbar input,.toolbar select{flex:1 1 180px;margin-bottom:0}.field-label{flex:1 1 210px;display:flex;align-items:center;gap:6px}.field-label>span{color:#2f4466;font-size:13px;white-space:nowrap}.field-label>input,.field-label>select{margin-bottom:0}.voided-tip{color:var(--danger);font-size:13px;line-height:36px}.topic-help{border:1px solid #d6e3f7;background:linear-gradient(180deg,#f8fbff,#f3f8ff);border-radius:12px;padding:10px 12px;margin-bottom:10px;color:#2f4466;font-size:13px;line-height:1.65}.topic-help strong{color:#1b4f93}input,select{width:100%;height:38px;border:1px solid var(--line-strong);border-radius:10px;margin-bottom:8px;padding:0 11px;background:#fff;color:#1b2e4a;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}input:focus,select:focus{border-color:#6da9ef;box-shadow:0 0 0 3px #2a7be424;background:#fcfeff}button{border:0;border-radius:10px;background:linear-gradient(135deg,var(--primary) 0%,#4f94ec 100%);color:#fff;height:36px;padding:0 12px;cursor:pointer;font-weight:600;transition:transform .08s ease,filter .15s ease,box-shadow .15s ease}button:hover:not(:disabled){filter:brightness(1.03);box-shadow:0 7px 16px #2f6ff338}button:active:not(:disabled){transform:translateY(1px) scale(.985)}button:disabled{opacity:.58;cursor:not-allowed;box-shadow:none}button.danger{background:linear-gradient(135deg,var(--danger) 0%,#eb6666 100%)}button.warn{background:linear-gradient(135deg,var(--warn) 0%,#f0a942 100%)}button.subtle{background:linear-gradient(135deg,#6f8ab7,#7f9ac9)}table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--line);border-radius:12px}th,td{border-bottom:1px solid #e5ecf7;padding:9px 8px;text-align:left;font-size:13px;vertical-align:middle}th{background:#f4f8ff;color:#2d4161;font-weight:700}tr:last-child td{border-bottom:0}tbody tr:hover{background:#f8fbff}.avatar-thumb{width:40px;height:40px;border-radius:8px;object-fit:cover;border:1px solid #d6e2f7}.select-col{width:38px;text-align:center}.action-cell{min-width:180px;display:flex;gap:6px;flex-wrap:wrap}.topic-action{flex-wrap:nowrap;align-items:center}.topic-action input[type=datetime-local]{width:230px;min-width:230px;height:34px;margin-bottom:0}.search-result{margin:10px 0 14px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}.search-result h4{margin:0 0 8px}.member-picker{margin-top:14px;border:1px solid #dbe5f6;border-radius:12px;padding:10px;background:#f8fbff}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#1322396b;display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-card{width:min(1100px,100%);max-height:calc(100vh - 40px);background:#fff;border:1px solid #d7e2f3;border-radius:16px;box-shadow:0 18px 46px #0f25473d;padding:12px;overflow:hidden}.modal-body{overflow:auto;max-height:calc(100vh - 140px)}.enterprise-modal{width:min(500px,100%);max-height:calc(100vh - 80px);padding:10px 12px}.enterprise-modal .modal-body{max-height:calc(100vh - 180px)}.enterprise-modal .toolbar{justify-content:flex-start;gap:10px}.enterprise-modal label{display:inline-flex;align-items:center;gap:6px}.enterprise-modal .enterprise-mode-row{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:20px}.enterprise-modal .enterprise-mode-row label{white-space:nowrap}.enterprise-modal .enterprise-actions{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;width:100%}.pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px}.pager label{display:inline-flex;align-items:center;gap:6px;color:#3f5578;font-size:13px}.pager label select{width:78px;height:30px;margin-bottom:0}.pager span{color:#3f5578;font-size:13px}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;padding:10px}.menu{grid-template-columns:repeat(3,minmax(0,1fr))}.menu button{text-align:center;padding:0 6px}.action-cell{min-width:140px}.topic-action{flex-wrap:wrap}.pager{justify-content:center;flex-wrap:wrap}}
