/* ─────────────────────────────────────────────
   淘宝运营系统 · 外壳样式
   用途：登录 / 初始化 / 板块导航 / 账号面板
   板块页（detail/ 等）各自带样式，不受这里影响。
   ───────────────────────────────────────────── */
:root{
  --paper:#F7F8F7;
  --ink:#1C1F1D;
  --ink2:#5A625C;
  --ink3:#96A09A;
  --line:#E2E6E2;
  --card:#FFFFFF;
  --brand:#9C4A21;        /* 柿橙：淘宝系统的识别色 */
  --brand-soft:#F6EDE7;
  --danger:#A33A2E;
  --ok:#3A6B45;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--paper);color:var(--ink);
  font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB",-apple-system,BlinkMacSystemFont,sans-serif;
  line-height:1.6;-webkit-font-smoothing:antialiased;
  min-height:100vh;
}
.mono{font-family:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace}
.hidden{display:none !important}

.shell{width:100%;max-width:760px;margin:0 auto;padding:clamp(20px,5vw,56px) clamp(16px,4vw,40px);
  min-height:100vh;display:flex;flex-direction:column}

/* ── 加载中 / 致命错误 ───────────────────── */
.loading,.fatal{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;
  color:var(--ink2);font-size:13.5px;padding:60px 0}
.spinner{width:26px;height:26px;margin:0 auto 14px;border:2.5px solid var(--line);
  border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.fatal{color:var(--danger);flex-direction:column;gap:12px}
.fatal .retry{border:1px solid var(--line);background:var(--card);border-radius:4px;
  padding:8px 18px;font-size:13px;cursor:pointer;color:var(--ink);font-family:inherit}

/* ── 登录 / 初始化 ────────────────────────── */
.auth-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 0}
.auth-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);
  border-radius:4px;padding:30px 26px 26px}
.auth-card .logo{width:42px;height:42px;border-radius:4px;background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;
  letter-spacing:.06em;margin-bottom:16px;font-family:ui-monospace,monospace}
.auth-card h1{font-size:19px;font-weight:700;letter-spacing:.01em}
.auth-card .intro{font-size:12.5px;color:var(--ink2);margin:7px 0 20px;line-height:1.75}
.field{display:block;margin-bottom:13px}
.field>span{display:block;font-size:11.5px;color:var(--ink2);letter-spacing:.04em;margin-bottom:5px}
.field input,.field select,.field textarea{width:100%;background:#FCFDFC;border:1px solid var(--line);
  border-radius:3px;padding:9px 11px;font-size:13.5px;font-family:inherit;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(156,74,33,.12)}
.primary-btn{background:var(--brand);color:#fff;border:0;border-radius:3px;padding:11px 20px;
  font-size:14px;font-family:inherit;cursor:pointer;letter-spacing:.02em;transition:opacity .15s}
.primary-btn:hover:not(:disabled){opacity:.9}
.primary-btn:disabled{opacity:.5;cursor:not-allowed}
.primary-btn.full{width:100%;margin-top:6px}
.ghost-btn{background:var(--card);color:var(--ink2);border:1px solid var(--line);border-radius:3px;
  padding:8px 16px;font-size:12.5px;font-family:inherit;cursor:pointer;transition:.15s}
.ghost-btn:hover{border-color:var(--brand);color:var(--brand)}
.message{font-size:12.5px;margin-top:12px;min-height:18px;line-height:1.6}
.message.error{color:var(--danger)}
.message.ok{color:var(--ok)}

/* ── 主界面：抬头 ─────────────────────────── */
header.top{border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:4px}
.brand{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.brand h1{font-size:clamp(20px,4.2vw,26px);font-weight:800;letter-spacing:.02em}
.brand .sub{font-size:12px;color:var(--ink3);letter-spacing:.14em}
.meta{margin-top:7px;font-size:12px;color:var(--ink2);display:flex;gap:14px;flex-wrap:wrap;
  align-items:center}
.meta b{font-weight:600;color:var(--ink)}
.meta .spacer{flex:1}

/* ── 板块清单 ─────────────────────────────── */
nav.modules{margin-top:26px;display:flex;flex-direction:column;gap:9px}
.module-row{display:flex;align-items:stretch;text-decoration:none;color:inherit;background:var(--card);
  border:1px solid var(--line);border-radius:3px;overflow:hidden;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.module-row .band{width:7px;flex-shrink:0;background:var(--c,var(--brand));transition:width .16s ease}
.module-row .body{flex:1;padding:15px 17px;min-width:0}
.module-row .top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.module-row .name{font-size:16px;font-weight:700}
.module-row .path{font-size:11.5px;color:var(--ink3)}
.module-row .desc{font-size:12.5px;color:var(--ink2);margin-top:3px}
.module-row .go{display:flex;align-items:center;padding-right:17px;font-size:18px;color:var(--ink3);
  transition:transform .16s ease,color .16s ease}
.module-row:hover,.module-row:focus-visible{transform:translateX(4px);border-color:var(--c,var(--brand));
  box-shadow:0 2px 14px rgba(28,31,29,.09);outline:none}
.module-row:hover .band,.module-row:focus-visible .band{width:11px}
.module-row:hover .go,.module-row:focus-visible .go{transform:translateX(3px);color:var(--c,var(--brand))}
.module-row.soon{opacity:.55;cursor:default;pointer-events:none}
.module-row.soon .go{font-size:11px;letter-spacing:.08em}

/* ── 最近项目 ─────────────────────────────── */
.section-title{margin:30px 0 10px;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink3);border-bottom:1px solid var(--line);padding-bottom:7px;
  font-family:ui-monospace,monospace}
.recent{display:flex;flex-direction:column;gap:6px}
.recent a{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;
  background:var(--card);border:1px solid var(--line);border-radius:3px;padding:9px 12px;
  transition:border-color .15s}
.recent a:hover{border-color:var(--brand)}
.recent .thumb{width:36px;height:46px;flex:0 0 36px;object-fit:cover;border-radius:2px;
  background:#EDEFED;border:1px solid var(--line)}
.recent .thumb.empty{display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--ink3)}
.recent .t{flex:1;min-width:0}
.recent .t b{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis}
.recent .t span{font-size:11.5px;color:var(--ink3)}
.recent .empty-note{font-size:12.5px;color:var(--ink3);padding:14px;text-align:center;
  border:1px dashed var(--line);border-radius:3px;background:var(--card)}

/* ── 账号面板 ─────────────────────────────── */
.account{margin-top:30px;background:var(--card);border:1px solid var(--line);border-radius:3px;
  padding:16px 18px}
.account h2{font-size:13px;font-weight:700;margin-bottom:10px}
.account dl{display:grid;grid-template-columns:auto 1fr;gap:5px 16px;font-size:12.5px;margin-bottom:14px}
.account dt{color:var(--ink3)}
.account dd{color:var(--ink)}
.account .acts{display:flex;gap:8px;flex-wrap:wrap}
.pw-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}

footer.foot{margin-top:auto;padding-top:30px;font-size:11.5px;color:var(--ink3);line-height:1.9}
footer.foot code{background:#EDEFED;padding:1px 5px;border-radius:2px;font-size:11px}
footer.foot a{color:var(--ink2)}

@media (max-width:420px){
  .module-row .body{padding:13px 14px}
  .module-row .go{padding-right:13px}
}
@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important}}
