:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#19243b;background:#f4f6fa;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer;border:1px solid #dfe4ed;border-radius:9px;background:white;padding:10px 16px;color:inherit}button:hover{background:#edf2ff}a{color:inherit}aside{position:fixed;inset:0 auto 0 0;width:228px;background:#13213b;color:#dce5f7;padding:36px 22px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;font-size:22px;font-weight:650}.brand b{display:grid;place-items:center;background:#5577ff;border-radius:12px;width:42px;height:44px;color:white}.brand small{display:block;font-size:14px;font-weight:400;color:#aabbd7;margin-top:4px}.side-label{font-size:14px;color:#91a5c8;margin:58px 12px 16px}.side{display:block;text-align:left;text-decoration:none;border:0;background:none;color:#c9d6ed;font-size:14.5px;margin:1px 0;padding:9px 10px;border-radius:9px}.side.active{background:#2a3d61;color:white}.side:hover{background:#243856}.side-bottom{margin-top:auto;font-size:13px;color:#a7b8d5;line-height:2}.side-bottom small{display:block;letter-spacing:2px}main{margin-left:228px;padding:0 44px;max-width:1800px}header{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dfe5ee;color:#68748b;font-size:14px}.badge{border:1px solid #b9c9ed;color:#3457ad;padding:6px 12px;border-radius:20px;background:#ecf2ff}.intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:40px 0 22px}.eyebrow{font-size:12px;letter-spacing:2px;color:#4765b8;font-weight:700}h1{font-size:30px;letter-spacing:-.5px;margin:10px 0 12px;line-height:1.45}p{color:#6c7890;margin:0;line-height:1.7}.primary{background:#3059da;color:white;border-color:#3059da;white-space:nowrap}.primary:hover{background:#2348bd}.notice{font-size:14px;color:#65728b;line-height:1.6;margin-bottom:25px;border-left:3px solid #a9bde8;padding-left:12px}#modules{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:30px}.module{position:relative;min-width:0}.module-button{padding:20px;text-align:left;width:100%;height:138px;box-shadow:0 3px 10px #20356005;border-radius:12px}.module-button[aria-pressed=true]{border-color:#4167df;background:#edf2ff}.module-top{display:flex;justify-content:space-between;align-items:center;color:#7890b2;font-size:13px}.module-icon{background:#eaf0ff;color:#3a61c8;width:32px;height:32px;display:grid;place-items:center;border-radius:8px;font-size:18px}.module-button strong{display:block;margin:15px 0 5px;font-size:19px}.module-button small{color:#66768e;font-size:14px}.flyout{display:none;position:absolute;top:calc(100% - 1px);left:0;min-width:230px;max-width:330px;width:100%;z-index:5;background:white;padding:10px;border:1px solid #dbe3f0;border-radius:10px;box-shadow:0 16px 40px #13213b25}.module:hover .flyout,.module:focus-within .flyout{display:block}.flyout a,.flyout span{display:block;padding:10px;text-decoration:none;font-size:14px;border-radius:6px;overflow-wrap:anywhere}.flyout a:hover{background:#edf2ff}.flyout span{color:#7b8698}.directory{background:white;border:1px solid #e0e6ef;border-radius:14px;min-height:300px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px;border-bottom:1px solid #e6eaf1}.toolbar h2{display:inline;font-size:19px;margin-right:12px}#count{font-size:14px;color:#7d899a}.filters{display:flex;align-items:center;gap:20px}.search{display:flex;align-items:center;border:1px solid #dce3ed;border-radius:8px;padding:0 10px;color:#7487a4}.search input{border:0;width:190px;padding:10px 6px;background:transparent}.hidden-toggle{font-size:14px;white-space:nowrap;color:#68778e}.row{display:grid;grid-template-columns:minmax(180px,1fr) 95px minmax(140px,1fr) 145px;align-items:center;gap:20px;padding:18px 24px;border-bottom:1px solid #edf0f5}.row:last-child{border-bottom:0}.row:hover{background:#fafbfe}.row-title{font-size:16px;font-weight:550;overflow-wrap:anywhere}.tag{font-size:13px;color:#4661a2;background:#edf2fb;border-radius:5px;padding:5px 9px;width:max-content}.link{color:#4161a8;font-size:14px;text-decoration:none;overflow-wrap:anywhere}.muted{font-size:14px;color:#8690a0}.actions{display:flex;gap:7px;justify-content:flex-end}.actions button{font-size:14px;padding:7px 10px;border:0;color:#5c6d88;background:transparent}.actions button:hover{background:#eaf0fb}.empty{text-align:center;padding:65px 20px;color:#718099}.hidden-row{opacity:.65}footer{display:flex;justify-content:space-between;font-size:13px;color:#8390a5;margin:22px 0 35px;gap:20px}dialog{border:0;border-radius:16px;padding:28px;width:min(480px,calc(100% - 32px));box-shadow:0 24px 100px #15234030;max-height:90vh}dialog::backdrop{background:#15253f66}dialog h2{margin:0;font-size:22px}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.close{border:0;font-size:25px;padding:0 8px}form>label{display:block;margin:16px 0;font-size:14px;font-weight:550}form input:not([type=checkbox]),form select{display:block;width:100%;border:1px solid #ced7e5;border-radius:8px;margin-top:8px;padding:11px;font-size:16px}form small{display:block;color:#79859a;margin-top:6px;font-weight:400;font-size:13px}.check{display:flex;align-items:center}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#192c4b;color:white;padding:12px 22px;border-radius:9px;display:none;z-index:20;font-size:14px}@media(max-width:1100px){aside{width:180px;padding:30px 16px}main{margin-left:180px;padding:0 24px}.module-button{padding:14px}.row{grid-template-columns:minmax(150px,1fr) 70px 145px}.row>.link,.row>.muted{display:none}.toolbar{align-items:flex-start;flex-direction:column}.intro{align-items:flex-start}h1{font-size:26px}}@media(max-width:760px){aside{position:static;width:auto;padding:18px 20px}.brand small,.side-label,.side,.side-bottom{display:none}.brand b{width:30px;height:32px;font-size:22px}.brand{font-size:19px}main{margin:0;padding:0 18px}header{height:58px}.intro{margin:25px 0;flex-direction:column;gap:18px}h1{font-size:25px}#modules{grid-template-columns:repeat(2,1fr);gap:10px}.module:last-child{grid-column:span 2}.module-button{height:116px}.flyout{min-width:0;width:max(100%,200px);max-width:calc(100vw - 40px)}.module:nth-child(even) .flyout{left:auto;right:0}.row{grid-template-columns:1fr auto;gap:10px;padding:17px}.tag{grid-column:1;grid-row:auto}.actions{grid-column:2;grid-row:1 / span 2}.toolbar{padding:20px 17px}.filters{flex-wrap:wrap;gap:12px}.search input{width:175px}footer{flex-direction:column}.toolbar h2{font-size:18px}}

/* 登录框：密码显示切换（小眼睛）—— 弹性格局：输入框与按钮并排，物理上不会重叠 */
.pw-wrap{display:flex!important;align-items:center;background:#fff;border:1px solid #ced7e5;border-radius:8px;margin-top:8px;height:44px;box-sizing:border-box;padding:0 8px 0 0}
.pw-wrap input{border:none!important;background:transparent!important;margin:0!important;box-shadow:none!important;height:100%;padding:11px!important;flex:1;min-width:0}
.pw-wrap input:focus{outline:none}
.pw-eye{flex:0 0 auto!important;width:auto!important;min-width:0!important;margin:0!important;border:none!important;background:transparent!important;font-size:13px;line-height:1;padding:6px!important;color:#94a0b3;cursor:pointer;border-radius:6px;opacity:.9}
.pw-eye:hover{opacity:1;color:#264cde;background:#f0f4fb!important}

/* ── 全站排版统一（2026-09-23）────────────────────────────────────────
   背景：同样性质的"说明小字"，全站混用了 hint / muted / note / tip / hr-mini 五种类名，
   而且**互相没有定义**——内嵌页只定义了 hint、主应用只定义了 muted，
   结果同一个语义在不同页面变成不同样式（甚至退化成正常正文的字号与颜色）。
   这里统一到一套：12.5px、行高 1.7、浅灰。改小字观感请只改这一处。
   内嵌页由 theme-bridge.js 注入同一套规则，两边务必保持一致。 */
.hint,.muted,.note,.tip{font-size:12.5px;line-height:1.7;color:#8690a0}
