/* Aureda Technology 设计令牌（Design Tokens）——依据《品牌视觉识别系统 V1.0.0》
 * 换皮肤：只改这里的变量即可；或新增 [data-theme="xxx"] 覆盖变量。 */
@font-face{font-family:"Manrope";font-weight:400;font-display:swap;src:url(fonts/manrope-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Manrope";font-weight:500;font-display:swap;src:url(fonts/manrope-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Manrope";font-weight:600;font-display:swap;src:url(fonts/manrope-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Manrope";font-weight:700;font-display:swap;src:url(fonts/manrope-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Manrope";font-weight:800;font-display:swap;src:url(fonts/manrope-latin-800-normal.woff2) format("woff2")}
:root{
  /* 主色 Primary */
  --au-black:#0A0A0A;            /* Aureda 黑 */
  --au-blue-start:#032DE3;       /* Aureda 科技蓝 渐变起点 */
  --au-blue-end:#01BBF4;         /* Aureda 科技蓝 渐变终点 */
  --au-blue-gradient:linear-gradient(90deg,var(--au-blue-start),var(--au-blue-end));
  /* 辅助色 Secondary */
  --au-white:#FFFFFF;            /* 纯白 */
  --au-ui-gray:#F4F4F7;          /* 界面灰 */
  --au-mid-gray:#6B6B7A;         /* 中性灰 */
  --au-blue-tint:#EEF2FF;        /* 蓝底 */
  /* 语义映射（组件只引用这些） */
  --color-bg:var(--au-ui-gray);
  --color-surface:var(--au-white);
  --color-surface-strong:var(--au-black);
  --color-text:var(--au-black);
  --color-text-muted:var(--au-mid-gray);
  --color-text-inverse:var(--au-white);
  --color-accent:var(--au-blue-start);
  --color-accent-soft:var(--au-blue-tint);
  --color-border:#E2E2EA;
  /* 状态色：todo/doing 用品牌色，done/blocked 为功能色（品牌手册未定义，仅用于状态提示） */
  --status-todo:var(--au-mid-gray);
  --status-doing:var(--au-blue-start);
  --status-done:#12A150;
  --status-blocked:#E5484D;
  /* 字体 Typography：Manrope（西文）+ 系统中文字体 */
  --font-family:"Manrope","PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;
  --fw-extrabold:800; /* 主标题 */
  --fw-bold:700;      /* 章节标题 */
  --fw-semibold:600;  /* 卡片标题、按钮 */
  --fw-medium:500;    /* 强调 */
  --fw-regular:400;   /* 正文 */
  --fs-h1:28px; --fs-h2:22px; --fs-h3:18px; --fs-body:15px; --fs-caption:12px;
  --lh-body:1.6;
  /* 形状 */
  --radius-sm:8px; --radius-md:12px; --radius-lg:16px;
  --shadow-card:0 1px 2px rgba(10,10,10,.04),0 4px 16px rgba(10,10,10,.04);
  /* 标志：屏幕最小宽 120px，净空 = 字母高度 1/4（图片已内含净空） */
  --logo-width:132px;
}


/* —— 组件（在令牌之上扩展，不改品牌色） —— */
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:1px 8px;font-size:var(--fs-caption);font-weight:var(--fw-semibold);line-height:1.5;vertical-align:middle;letter-spacing:.02em}
.badge-todo{background:#EEEFF3;color:var(--au-mid-gray)}
.badge-doing{background:var(--color-accent-soft);color:var(--color-accent)}
.badge-done{background:#E3F6EA;color:var(--status-done)}
.badge-blocked{background:#FDECEC;color:var(--status-blocked)}
.badge-overdue{background:var(--status-blocked);color:var(--color-text-inverse)}

.field{margin-bottom:14px}
.field label{display:block;font-size:13px;font-weight:var(--fw-semibold);margin-bottom:6px}
.hint{color:var(--color-text-muted);font-size:13px;margin:0 0 16px}

/* 未登录落地页 */
body.is-guest{min-height:100dvh;display:flex;flex-direction:column}
body.is-guest .app-header,body.is-guest>#siteFoot{display:none}
body.is-guest main{flex:1;max-width:none;margin:0;padding:0;display:flex;flex-direction:column}
.landing{flex:1;display:grid;grid-template-columns:minmax(280px,1.05fr) minmax(300px,.95fr);min-height:100dvh}
.landing-intro{background:var(--color-surface-strong);color:var(--color-text-inverse);padding:56px 48px 48px;display:flex;flex-direction:column;justify-content:center;position:relative}
.landing-intro::after{content:"";position:absolute;right:0;top:0;bottom:0;width:3px;background:var(--au-blue-gradient)}
.landing-intro img{width:168px;min-width:120px;height:auto;display:block;margin-bottom:32px}
.landing-kicker{margin:0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#C9C9D3;font-weight:var(--fw-semibold)}
.landing-intro h2{margin:10px 0 16px;font-size:36px;font-weight:var(--fw-extrabold);letter-spacing:.01em;line-height:1.2}
.landing-lead{margin:0 0 28px;font-size:16px;line-height:1.7;color:#C9C9D3;max-width:26em}
.landing-points{list-style:none;margin:0;padding:0;max-width:28em}
.landing-points li{position:relative;padding:8px 0 8px 20px;color:var(--color-text-inverse);font-size:15px;line-height:1.55}
.landing-points li::before{content:"";position:absolute;left:0;top:15px;width:8px;height:8px;border-radius:50%;background:var(--au-blue-gradient)}
.landing-panel{display:flex;flex-direction:column;justify-content:center;padding:48px 40px 32px;background:var(--color-bg)}
.login-card{max-width:400px;width:100%;margin:0 auto;padding:28px}
.login-card h3{margin:0 0 4px;font-size:22px}
.login-card .btn-login{width:100%;padding:12px;margin-top:6px}
.landing-copy{text-align:center;color:var(--color-text-muted);font-size:var(--fs-caption);margin:24px 0 0}
.landing-copy a{color:inherit;text-decoration:none;font-weight:var(--fw-medium)}
.landing-copy a:hover{color:var(--color-accent)}
.landing-copy a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}

/* 筛选 / 需要关注 / 空状态 */
.tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tools input[type=search]{flex:1 1 200px;min-width:0}
.chips{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;flex:1 1 auto;padding-bottom:1px}
.chips button{flex:0 0 auto;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);padding:7px 12px;font-weight:var(--fw-medium)}
.chips button.on{background:var(--color-surface-strong);color:var(--color-text-inverse);border-color:var(--color-surface-strong)}
.chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:var(--fw-medium);color:var(--color-text);white-space:nowrap;flex:0 0 auto;cursor:pointer;user-select:none}
.chk input{width:auto;margin:0;accent-color:var(--status-blocked)}
.attn-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px}
.attn-head h3{margin:0}
.attn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.attn-col{background:var(--color-bg);border-radius:var(--radius-sm);padding:10px}
.attn-label{font-size:12px;font-weight:var(--fw-semibold);margin-bottom:6px;color:var(--color-text-muted)}
.attn-label.warn{color:var(--status-blocked)}
.attn-item{display:block;width:100%;text-align:left;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);padding:8px 10px;margin:0 0 6px;font-weight:var(--fw-medium);cursor:pointer;border-radius:var(--radius-sm);font-size:13px;line-height:1.4}
.attn-item:last-child{margin-bottom:0}
.attn-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}
.attn-list .attn-item{margin:0}
.attn-item-title{font-weight:var(--fw-semibold);margin-right:6px}
.attn-item .muted{font-weight:var(--fw-regular)}
.attn-recent{margin-top:12px;border-top:1px solid var(--color-border);padding-top:10px}
.attn-recent h4{margin:0 0 6px}
.attn-log{padding:5px 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.empty{text-align:center;padding:28px 18px}
.empty h3{margin:0 0 8px}
.empty p{margin:0 0 14px;color:var(--color-text-muted)}

/* 任务卡强调逾期 / 受阻 */
.task-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px}
.task-head b{font-weight:var(--fw-semibold);flex:1;min-width:0}
.task .badges{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;flex:0 0 auto}
.task.blocked{background:color-mix(in srgb,var(--status-blocked) 7%,var(--color-surface))}
.task.overdue{box-shadow:inset 3px 0 0 var(--status-blocked),var(--shadow-card)}
.stats .is-warn b{color:#FF8A8D}
.stats div{cursor:pointer}
.stats div.on{outline:2px solid rgba(255,255,255,.35);outline-offset:-2px}

/* 详情与弹层 */
.banner-overdue{background:#FDECEC;color:var(--status-blocked);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px;font-weight:var(--fw-semibold);margin:10px 0}
.d-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.d-head h3{margin:6px 0 0;font-size:20px;line-height:1.35}
.meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px 12px;margin:12px 0;font-size:13px}
.meta div{background:var(--color-bg);border-radius:var(--radius-sm);padding:8px 10px}
.meta b{display:block;color:var(--color-text-muted);font-weight:var(--fw-medium);font-size:11px;margin-bottom:2px}
.actions{margin:12px 0}
.overlay{position:fixed;inset:0;background:rgba(10,10,10,.45);display:flex;align-items:flex-end;justify-content:center;z-index:10}
.overlay .sheet{width:100%;max-width:720px;max-height:90vh;overflow:auto;margin:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.help-role{border-top:1px solid var(--color-border);padding:12px 0}
.help-role:first-of-type{border-top:none;padding-top:0}
.help-role h4{margin:0 0 4px}
.help-role p{margin:0;color:var(--color-text-muted);font-size:14px}

@media(min-width:720px){
  .overlay{align-items:center;padding:24px}
  .overlay .sheet{border-radius:var(--radius-lg)}
}
@media(max-width:800px){
  .attn-head{flex-direction:column;align-items:flex-start;gap:2px}
  .landing{grid-template-columns:1fr;min-height:0}
  .landing-intro{padding:28px 22px 24px;justify-content:flex-start}
  .landing-intro::after{left:0;right:0;top:auto;bottom:0;width:auto;height:3px}
  .landing-intro img{width:140px;margin-bottom:16px}
  .landing-intro h2{font-size:26px;margin:6px 0 10px}
  .landing-lead{margin-bottom:16px;font-size:15px}
  .landing-points li{padding:5px 0 5px 20px}
  .landing-panel{padding:20px 16px 28px;flex:1}
  .login-card{padding:20px}
  .attn-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .attn-head .muted{display:none}
  input,select,textarea,button{font-size:16px}
  button,.chips button,.attn-item{min-height:44px}
}
