:root{
  --bg:#fffdf8; --bg2:#fffbf2;
  --card:rgba(255,253,246,0.90); --cb:rgba(206,164,78,0.16);
  --gold:#927a48; --gold2:#b29a67; --gold3:#d3bf8e; --goldp:#f4ebcf;
  --text:#332815; --t2:#7f7158; --t3:#aa9a7b; --t4:#c9bca4;
  --red:#9b665c; --green:#5f7f69; --blue:#607f92;
  --serif:'Noto Serif SC','Songti SC','STSong',serif;
  --body:'Noto Serif SC','Noto Sans SC','Songti SC','PingFang SC','Microsoft YaHei',serif;
  --r:14px; --rs:8px;
  --shadow:0 2px 16px rgba(160,120,40,.05),0 1px 3px rgba(160,120,40,.04);
  --glass-surface:rgba(255,255,255,.34);
  --glass-surface-strong:rgba(255,255,255,.46);
  --glass-surface-soft:rgba(255,255,255,.18);
  --glass-line:rgba(255,255,255,.62);
  --glass-line-soft:rgba(255,255,255,.38);
  --glass-shadow:0 18px 58px rgba(72,58,41,.08),inset 0 1px 0 rgba(255,255,255,.72);
  --bd-grad-soft:linear-gradient(120deg,rgba(206,164,78,.30) 0%,rgba(206,164,78,.09) 50%,rgba(206,164,78,.26) 100%);
  --bd-grad-strong:linear-gradient(120deg,rgba(220,176,88,.44) 0%,rgba(220,176,88,.13) 50%,rgba(220,176,88,.38) 100%);
  --bd-grad-green:linear-gradient(120deg,rgba(95,127,105,.34) 0%,rgba(95,127,105,.1) 50%,rgba(95,127,105,.28) 100%);
  --bd-grad-red:linear-gradient(120deg,rgba(155,102,92,.34) 0%,rgba(155,102,92,.1) 50%,rgba(155,102,92,.28) 100%);
  --tag-bd-grad:linear-gradient(120deg,rgba(206,164,78,.30) 0%,rgba(206,164,78,.18) 28%,rgba(232,190,64,.56) 62%,rgba(245,203,82,.72) 100%);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%;font-family:var(--body);font-size:16px;color:var(--text);background:#fffefc}
#root{min-height:100vh;position:relative}

/* ── silk background layers ──────────────────────────── */
.silk-bg{
  position:fixed;inset:0;z-index:0;
  background:linear-gradient(-45deg,#fff8e8,#fdeeca,#fbe2c0,#f5dce8,#eee0f8,#d8ecf8,#fff8e8);
  background-size:400% 400%;
  animation:silk-flow 22s ease infinite;
}
@keyframes silk-flow{
  0%  {background-position:0% 50%}
  50% {background-position:100% 50%}
  100%{background-position:0% 50%}
}


/* subtle paper texture overlay */
#root::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");
  opacity:.22;
}

/* page */
.page{position:relative;z-index:1;max-width:none;width:min(2320px,calc(100vw - 36px));margin:0 auto;padding:30px 16px 112px;filter:saturate(1.5) contrast(1) brightness(0.96)}

/* card — gradient iridescent border via ::before, no hard line */
.gc{
  background:var(--card);
  border:none;
  border-radius:var(--r);
  position:relative;
  isolation:isolate;
  box-shadow:
    0 4px 24px rgba(160,120,40,.06),
    0 1px 4px rgba(160,120,40,.04);
}
/* the animated gradient border — 1 px ring, colours shift like silk */
.gc::before{
  content:'';
  position:absolute;
  inset:-1px;
  border-radius:calc(var(--r) + 1px);
  background:linear-gradient(
    135deg,
    rgba(248,218,105,.75)  0%,
    rgba(208,188,252,.6)  22%,
    rgba(248,175,155,.65) 44%,
    rgba(168,215,238,.55) 62%,
    rgba(255,232,155,.7)  80%,
    rgba(248,218,105,.75)100%
  );
  background-size:220% 220%;
  opacity:.38;
  transition:opacity .28s ease, filter .28s ease;
  z-index:-1;
}
.gc:hover::before{opacity:.5;filter:saturate(1.04)}

/* ── section heading ─────────────────────────────────── */
.sh{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.sh-text{font-family:var(--serif);font-size:15px;color:var(--gold);letter-spacing:.05em;font-style:italic}
.sh-line{flex:1;height:1px;background:linear-gradient(90deg,rgba(190,148,55,.24),transparent)}
.sh-sub{font-size:11px;color:var(--t3);font-style:normal;font-family:var(--body)}

/* ── header ──────────────────────────────────────────── */
.hdr{display:flex;flex-direction:column;align-items:center;margin-bottom:28px;gap:22px}
.hdr-left{position:relative}
.hdr-left-main{display:flex;align-items:flex-start;gap:12px}
.hdr-seal{width:104px;height:104px;flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative}
.seal-stars{position:absolute;inset:-18px;pointer-events:none;overflow:visible}
.seal-star{
  position:absolute;
  left:0;
  top:0;
  width:var(--sz,11px);
  height:var(--sz,11px);
  transform:translate(calc(var(--x,0px) - 50%),calc(var(--y,0px) - 50%));
  opacity:0;
  animation:seal-star-pop var(--dur,.9s) cubic-bezier(.2,.82,.25,1) forwards;
  filter:drop-shadow(0 0 8px rgba(255,220,120,.56));
}
.seal-star::before{
  content:attr(data-char);
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:hsl(var(--h,44) 95% 78%);
  font-size:calc(var(--sz,11px) + 1px);
  line-height:1;
  text-shadow:
    0 0 6px rgba(255,245,200,.86),
    0 0 14px rgba(255,214,110,.6);
}
@keyframes seal-star-pop{
  0%{
    opacity:0;
    transform:
      translate(calc(var(--x,0px) - 50%),calc(var(--y,0px) - 50%))
      scale(.35)
      rotate(0deg);
  }
  20%{opacity:.95}
  100%{
    opacity:0;
    transform:
      translate(calc(var(--x,0px) - 50% + var(--dx,0px)),calc(var(--y,0px) - 50% - var(--dy,10px)))
      scale(1.3)
      rotate(var(--rot,25deg));
  }
}
.hdr-left h1{
  font-family:var(--serif);font-size:50px;font-weight:600;letter-spacing:.03em;line-height:1;position:relative;
  color:var(--gold);
  background:linear-gradient(110deg,#9a6e08 0%,#c8960c 28%,#b07840 50%,#9a6e08 72%,#c4a030 100%);
  background-size:220% auto;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  animation:title-sheen 8s linear infinite;
}
@keyframes title-sheen{0%{background-position:0% 50%}100%{background-position:220% 50%}}
.hdr-left h1::after{content:'';position:absolute;bottom:-4px;left:0;width:70%;height:2px;background:linear-gradient(90deg,#c8960c,#e8c840,transparent)}
.hdr-left .srv{
  font-size:11px;color:var(--t3);margin-top:10px;letter-spacing:.04em;
  background:rgba(190,148,55,.09);border:1px solid rgba(190,148,55,.18);border-radius:20px;
  padding:3px 10px 3px 8px;width:fit-content;
}
.hdr-stats{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;width:100%}
.stat-card{padding:14px 32px;min-width:160px;position:relative;overflow:hidden;display:flex;align-items:center;gap:10px}
.stat-card::before{content:'';position:absolute;top:-30px;right:-30px;width:120px;height:120px;background:radial-gradient(circle,rgba(220,180,60,.22) 0%,transparent 70%)}
.stat-card::after{content:'';position:absolute;bottom:-40px;left:-30px;width:120px;height:120px;background:radial-gradient(circle,rgba(220,180,60,.12) 0%,transparent 70%)}
.stat-card .lbl{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.16em;white-space:nowrap}
.stat-card .val{font-family:var(--serif);font-size:32px;font-weight:700;color:var(--gold);line-height:1;letter-spacing:.01em;text-shadow:0 0 18px rgba(232,200,64,.45),0 0 36px rgba(200,150,12,.22)}
.stat-card .unit{font-size:10px;color:var(--t2);margin-left:4px;font-weight:400;letter-spacing:.04em}
.gc.stat-card{background:transparent;box-shadow:none}
.gc.stat-card::before{opacity:0}

/* ── month chart ─────────────────────────────────────── */
.month-wrap{padding:18px 20px;margin-bottom:18px}
/* 竖柱图（最近1个月） */
.col-chart{display:flex;align-items:flex-end;gap:3px;height:90px;margin-top:52px;overflow:visible}
.col-item{display:flex;flex-direction:column;align-items:center;flex:1;min-width:0}
.col-bar{
  width:100%;min-height:3px;border-radius:3px 3px 0 0;
  background:#fffbe8;
  box-shadow:0 -2px 6px rgba(146,122,72,.1);
  position:relative;overflow:visible;
  transition:height .9s cubic-bezier(.4,0,.2,1);
}
/* 课程色条 —— 柱顶 3px */
.col-cap{
  position:absolute;top:0;left:0;right:0;height:3px;
  border-radius:3px 3px 0 0;overflow:hidden;
}
/* 每门课分钟数标注，浮在柱顶上方，竖向叠放 */
.col-breakdown{
  position:absolute;bottom:calc(100% + 5px);left:50%;
  transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:2px;
  pointer-events:none;
}
.col-breakdown-item{
  font-size:6.5px;font-weight:600;line-height:1;white-space:nowrap;
}
/* 0学习天：虚线小格 */
.col-bar.col-empty{
  background:#fffbe8;
  border:1px dashed rgba(146,122,72,.22);
  box-shadow:none;min-height:5px;
}
.col-bar.col-empty::after{display:none}
/* 图例 */
.col-legend{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:10px}
.col-legend-dot{width:7px;height:7px;border-radius:2px;flex-shrink:0;opacity:.78}
.col-legend-item{display:flex;align-items:center;gap:4px;font-size:9px;color:var(--t3)}
.col-lbl{font-size:9px;color:var(--t2);margin-top:6px;white-space:nowrap;max-width:28px;overflow:hidden;text-overflow:ellipsis;text-align:center}
.col-lbl.col-lbl-empty{color:var(--t4)}
/* 横条图（其他图表保留） */
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.bar-lbl{font-size:12px;color:var(--t2);min-width:42px;text-align:right}
.bar-track{flex:1;height:8px;background:rgba(160,120,40,.07);border-radius:6px;overflow:hidden;position:relative}
.bar-fill{height:100%;border-radius:6px;position:relative;transition:width .9s cubic-bezier(.4,0,.2,1)}
.bar-fill::after{content:'';position:absolute;top:0;right:0;bottom:0;width:20px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5));animation:shimmer 2.5s infinite}
@keyframes shimmer{0%{opacity:0;transform:translateX(-10px)}50%{opacity:1}100%{opacity:0;transform:translateX(5px)}}
.bar-val{font-size:12px;color:var(--t3);min-width:38px}
.chart-note{font-size:11px;color:var(--t4);margin-top:8px;padding-top:8px;border-top:1px solid rgba(160,120,40,.07)}

/* ── mid grid ────────────────────────────────────────── */
.mid-grid{display:grid;grid-template-columns:360px 1fr;gap:18px;margin-bottom:18px;align-items:start}

/* form */
.form-wrap{padding:18px}
.fg{margin-bottom:12px}
.fl{display:block;font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.09em;margin-bottom:5px}
.fi,.fsel{width:100%;padding:9px 12px;border:1px solid transparent;border-radius:var(--rs);color:var(--text);font-family:var(--body);font-size:14px;transition:background .15s; -webkit-appearance:none;appearance:none;
  background:
    linear-gradient(rgba(255,250,232,.86),rgba(255,250,232,.86)) padding-box,
    var(--bd-grad-soft) border-box}
.fi[type="datetime-local"]{-webkit-appearance:auto;appearance:auto;padding-right:8px}
.fi[type="datetime-local"]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.9;filter:saturate(.7)}
.fi:focus,.fsel:focus{outline:none;
  background:
    linear-gradient(rgba(255,252,238,.96),rgba(255,252,238,.96)) padding-box,
    var(--bd-grad-strong) border-box}
.fsel option{background:#fffae8}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mode-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--t3);margin-bottom:10px}
.mode-dot{width:5px;height:5px;border-radius:50%;background:var(--gold3)}
.mode-dot.edit{background:#c46040}
.btn-create{width:100%;padding:12px;background:linear-gradient(100deg,var(--gold),var(--gold2),var(--gold3));border:none;border-radius:var(--r);color:#fff8e8;font-family:var(--body);font-size:14px;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s;letter-spacing:.04em;text-shadow:0 1px 2px rgba(100,60,0,.18)}
.btn-create:hover{opacity:.92}
.btn-create:active{transform:scale(.98)}
.btn-create:disabled{opacity:.5;cursor:default}
.btn-cancel-edit{width:100%;padding:9px;border:1px solid transparent;border-radius:var(--r);color:var(--t2);font-family:var(--body);font-size:13px;cursor:pointer;margin-top:6px;
  background:
    linear-gradient(rgba(255,252,238,.52),rgba(255,252,238,.52)) padding-box,
    var(--bd-grad-soft) border-box}

/* table */
.tbl-wrap{padding:18px}
.tbl-desc{font-size:11px;color:var(--t3);margin-bottom:12px}
.tbl-shell{display:block}
.tbl-scroll{
  overflow:auto;
  min-height:320px;
  scrollbar-width:thin;
  scrollbar-color:rgba(190,148,55,.45) rgba(160,120,40,.08);
}
.tbl-scroll::-webkit-scrollbar{width:10px;height:10px}
.tbl-scroll::-webkit-scrollbar-track{background:rgba(160,120,40,.08);border-radius:999px}
.tbl-scroll::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(190,148,55,.68),rgba(212,188,136,.72));border-radius:999px;border:2px solid rgba(255,250,232,.85)}
table{width:100%;border-collapse:collapse;font-size:13px}
thead th{padding:9px 10px;text-align:left;font-size:11px;font-weight:600;color:var(--t3);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid transparent;white-space:nowrap;background:rgba(243,226,172,.1);border-image:var(--bd-grad-soft) 1}
tbody tr{border-bottom:1px solid transparent;transition:background .12s;border-image:linear-gradient(90deg,rgba(206,164,78,.22),rgba(206,164,78,.06),rgba(206,164,78,.18)) 1}
tbody tr:hover{background:rgba(240,220,160,.08)}
tbody td{padding:11px 10px;vertical-align:middle}
.type-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:6px;font-size:12px;font-weight:600;white-space:nowrap;border:1px solid transparent;border-image:var(--tag-bd-grad) 1}
.task-title{font-size:15px;font-weight:600;color:var(--text);line-height:1.35;max-width:300px}
.task-time{font-size:12px;color:var(--t2);white-space:nowrap}
.task-dur{font-size:11px;color:var(--t3)}
.cd-active{font-size:13px;font-weight:600;color:var(--green);white-space:nowrap}
.cd-upcoming{font-size:13px;color:var(--gold2);white-space:nowrap}
.cd-done{font-size:12px;color:var(--t3)}
.cd-over{font-size:12px;color:var(--red)}
.cal-b{font-size:10px;padding:2px 6px;border-radius:4px;white-space:nowrap;display:block;margin-bottom:2px}
.cal-ok{background:rgba(95,127,105,.08);color:var(--green)}
.cal-fail{background:rgba(155,102,92,.07);color:var(--red)}
.cal-none{color:var(--t4);font-size:10px}
.act-btns{display:flex;gap:5px;white-space:nowrap}
.btn-t{padding:5px 11px;border-radius:6px;border:1px solid transparent;font-size:12px;font-family:var(--body);cursor:pointer;transition:background .12s}
.btn-done-t{border-image:var(--bd-grad-green) 1;color:var(--green);background:linear-gradient(rgba(255,253,244,.46),rgba(255,253,244,.46)) padding-box}
.btn-done-t:hover{background:rgba(95,127,105,.06)}
.btn-edit-t{border-image:var(--bd-grad-soft) 1;color:var(--gold2);background:linear-gradient(rgba(255,253,244,.46),rgba(255,253,244,.46)) padding-box}
.btn-edit-t:hover{background:rgba(178,154,103,.06)}
.btn-del-t{border-image:var(--bd-grad-red) 1;color:var(--red);background:linear-gradient(rgba(255,253,244,.46),rgba(255,253,244,.46)) padding-box}
.btn-del-t:hover{background:rgba(155,102,92,.06)}
.empty-row td{text-align:center;padding:36px;color:var(--t3);font-size:13px;font-style:italic}
@keyframes cfl{0%{box-shadow:0 0 0 0 rgba(58,110,72,.5)}70%{box-shadow:0 0 0 12px rgba(58,110,72,0)}100%{box-shadow:0 0 0 0 rgba(58,110,72,0)}}
.flash-row{animation:cfl .55s ease-out}

/* tags */
.tags-wrap{padding:16px 18px;margin-top:14px}
.tags-note{font-size:11px;color:var(--t3);margin-bottom:10px;font-style:italic}
.tags-list{display:flex;flex-wrap:wrap;gap:7px}
.tag-chip{padding:6px 14px;border-radius:20px;font-size:13px;cursor:pointer;border:1px solid transparent;border-image:var(--tag-bd-grad) 1;transition:opacity .12s,transform .1s;white-space:nowrap;font-weight:500}
.tag-chip:hover{opacity:.8}
.tag-chip:active{transform:scale(.96)}
.form-tags{margin-top:8px}
.form-tags-note{font-size:11px;color:var(--t3);font-style:italic}
.form-tags-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.form-tag{
  padding:5px 10px;
  border-radius:16px;
  border:1px solid transparent;
  border-image:var(--tag-bd-grad) 1;
  background:rgba(190,148,55,.09);
  color:var(--gold2);
  font-size:12px;
  cursor:pointer;
}
.form-tag:hover{background:rgba(190,148,55,.13)}

/* bottom grid */
.bot-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.type-chart-wrap{padding:18px}
.weekly-wrap{padding:18px}
.day-block{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid transparent;border-image:linear-gradient(90deg,rgba(206,164,78,.22),rgba(206,164,78,.06),rgba(206,164,78,.18)) 1}
.day-block:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.day-hdr{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px}
.day-name{font-family:var(--serif);font-size:13px;color:var(--gold);font-style:italic}
.day-date{font-size:12px;color:var(--t4)}
.day-task{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:6px;margin-bottom:4px;flex-wrap:wrap;border:1px solid transparent;
  background:
    linear-gradient(rgba(244,229,184,.14),rgba(244,229,184,.14)) padding-box,
    var(--bd-grad-soft) border-box}
.day-task:last-child{margin-bottom:0}
.day-time{font-size:12px;color:var(--t2);white-space:nowrap;min-width:102px}
.day-st{font-size:11px;padding:2px 8px;border-radius:10px;border:1px solid transparent;white-space:nowrap;border-image:var(--tag-bd-grad) 1}
.day-st.done{color:var(--green);border-image:var(--bd-grad-green) 1;background:rgba(95,127,105,.05)}
.day-st.active{color:var(--gold2);background:rgba(178,154,103,.05)}
.day-st.upcoming{color:var(--t2)}
.day-course{font-size:11px;padding:2px 8px;border-radius:5px;background:rgba(190,148,55,.11);color:var(--gold2);border:1px solid transparent;border-image:var(--tag-bd-grad) 1}
.day-ttl{font-size:13px;color:var(--text);flex:1}
.day-empty{font-size:12px;color:var(--t4);padding:4px 0;font-style:italic}

/* float widget */
.float-widget{position:fixed;bottom:20px;right:20px;z-index:50;width:min(360px,calc(100vw - 24px));filter:saturate(1.5) contrast(1) brightness(0.96)}
.float-inner{
  padding:0;
  border:1px solid transparent;
  background:
    linear-gradient(rgba(255,251,232,.97),rgba(255,251,232,.97)) padding-box,
    var(--bd-grad-soft) border-box;
  border-radius:var(--r);box-shadow:0 4px 24px rgba(160,120,40,.12);overflow:hidden;
}
.float-top{padding:18px 18px 14px;position:relative}
.float-top::before{content:'';position:absolute;top:-30px;right:-20px;width:80px;height:80px;background:radial-gradient(circle,rgba(240,200,80,.14) 0%,transparent 70%);pointer-events:none}
.float-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.float-title-txt{font-family:var(--serif);font-size:15px;color:var(--gold);font-style:italic;display:flex;align-items:center;gap:8px}
.float-min{background:none;border:none;color:var(--t3);cursor:pointer;font-size:18px;padding:0;line-height:1}
.float-row{display:flex;gap:14px;margin-bottom:12px}
.float-col .lbl{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px}
.float-col .val{font-size:18px;font-weight:600;color:var(--text);font-family:var(--serif)}
.float-col .val.cd{color:var(--green)}
.float-divider{height:1px;background:linear-gradient(90deg,rgba(190,148,55,.18),rgba(190,148,55,.07),transparent);margin-bottom:12px}
.float-info .info-lbl{font-size:10px;color:var(--t4);text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px}
.float-info .info-val{font-size:14px;color:var(--text);margin-bottom:10px;line-height:1.45}
.float-mini{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer}
.float-mini .lbl{font-size:12px;color:var(--t2);font-style:italic;font-family:var(--serif)}
.float-mini .cd{font-size:14px;font-weight:600;color:var(--green)}

/* cursor starlight */
.cursor-stars{
  position:fixed;
  inset:0;
  z-index:95;
  pointer-events:none;
  overflow:hidden;
}
.cursor-star{
  position:fixed;
  left:0;
  top:0;
  width:var(--sz,14px);
  height:var(--sz,14px);
  transform:translate(calc(var(--x,0px) - 50%),calc(var(--y,0px) - 50%));
  opacity:0;
  animation:star-pop var(--dur,1.05s) cubic-bezier(.16,.84,.28,1) forwards;
  filter:drop-shadow(0 0 12px rgba(255,226,150,.72));
}
.cursor-star::before{
  content:attr(data-char);
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:hsl(var(--h,46) 96% 80%);
  font-size:calc(var(--sz,14px) + 2px);
  line-height:1;
  text-shadow:
    0 0 8px rgba(255,242,198,.88),
    0 0 18px rgba(255,214,112,.68),
    0 0 28px rgba(255,199,90,.42);
}
.cursor-star::after{
  content:'';
  position:absolute;
  left:50%;
  top:50%;
  width:calc(var(--sz,14px) * .8);
  height:calc(var(--sz,14px) * .8);
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,248,210,.78) 0%,rgba(255,220,130,.28) 42%,rgba(255,220,130,0) 72%);
  filter:blur(.8px);
}
@keyframes star-pop{
  0%{
    opacity:0;
    transform:
      translate(calc(var(--x,0px) - 50%),calc(var(--y,0px) - 50%))
      scale(.28)
      rotate(0deg);
  }
  18%{
    opacity:.98;
  }
  100%{
    opacity:0;
    transform:
      translate(calc(var(--x,0px) - 50% + var(--dx,0px)),calc(var(--y,0px) - 50% - var(--dy,12px)))
      scale(1.42)
      rotate(var(--rot,35deg));
  }
}

/* candle flame animation */
@keyframes flame{0%,100%{transform:scaleX(1) scaleY(1)}50%{transform:scaleX(.97) scaleY(1.03)}}
.flame-anim{transform-origin:50% 100%;animation:flame 3.2s ease-in-out infinite}

/* confirm */
.covl{position:fixed;inset:0;background:rgba(30,20,5,.35);backdrop-filter:blur(6px);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}
.cbox{border:1px solid transparent;border-radius:var(--r);padding:26px 22px;width:100%;max-width:280px;text-align:center;box-shadow:0 8px 40px rgba(120,80,20,.2);
  background:
    linear-gradient(var(--card),var(--card)) padding-box,
    var(--bd-grad-soft) border-box}
.c-ttl{font-family:var(--serif);font-size:16px;color:var(--gold);margin-bottom:8px;font-style:italic}
.c-body{font-size:13px;color:var(--t2);margin-bottom:20px;line-height:1.5}
.c-btns{display:flex;gap:10px}
.c-yes{flex:1;padding:10px;border-radius:var(--rs);background:rgba(160,56,40,.1);border:1px solid transparent;border-image:var(--bd-grad-red) 1;color:var(--red);font-family:var(--body);font-size:13px;cursor:pointer}
.c-no{flex:1;padding:10px;border-radius:var(--rs);background:rgba(190,148,55,.08);border:1px solid transparent;border-image:var(--bd-grad-soft) 1;color:var(--t2);font-family:var(--body);font-size:13px;cursor:pointer}

/* toast */
.toast{position:fixed;top:18px;left:50%;transform:translateX(-50%);border:1px solid transparent;border-image:var(--bd-grad-soft) 1;border-radius:22px;padding:9px 22px;font-size:13px;color:var(--text);z-index:200;box-shadow:0 4px 20px rgba(120,80,20,.2);white-space:nowrap;animation:tin .25s cubic-bezier(.4,0,.2,1);
  background:rgba(255,251,232,.97)}
.toast.s{border-image:var(--bd-grad-green) 1;color:var(--green)}
.toast.e{border-image:var(--bd-grad-red) 1;color:var(--red)}
@keyframes tin{from{opacity:0;transform:translateX(-50%) translateY(-10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* loading */
.spin-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:18px;position:relative;z-index:1}
.ring{width:44px;height:44px;border:3px solid transparent;border-radius:50%;animation:rot .8s linear infinite;border-image:var(--bd-grad-strong) 1}
@keyframes rot{to{transform:rotate(360deg)}}
.spin-lbl{font-family:var(--serif);font-size:14px;color:var(--gold);letter-spacing:.06em;font-style:italic}

/* local account */
.auth-shell{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:32px 18px;overflow:hidden}
.auth-shell::before,.auth-shell::after{content:'';position:absolute;border-radius:50%;pointer-events:none;filter:blur(4px)}
.auth-shell::before{width:min(56vw,680px);aspect-ratio:1;left:-18vw;top:-28vw;background:radial-gradient(circle,rgba(255,238,156,.44),rgba(255,246,205,.13) 54%,transparent 72%);animation:auth-glow 12s ease-in-out infinite alternate}
.auth-shell::after{width:min(45vw,520px);aspect-ratio:1;right:-12vw;bottom:-20vw;background:radial-gradient(circle,rgba(255,247,200,.38),rgba(248,224,151,.1) 56%,transparent 72%);animation:auth-glow 15s ease-in-out -5s infinite alternate-reverse}
.auth-ledger{position:relative;z-index:2;width:min(470px,100%);padding:38px 42px 34px;border:1px solid rgba(255,246,207,.72);border-radius:24px;text-align:center;box-shadow:0 26px 72px rgba(126,91,28,.1),inset 0 1px 0 rgba(255,255,255,.72);animation:ledger-in .7s cubic-bezier(.2,.82,.25,1) both;background:linear-gradient(145deg,rgba(255,246,205,.62),rgba(255,252,227,.43));-webkit-backdrop-filter:blur(28px) saturate(1.12);backdrop-filter:blur(28px) saturate(1.12)}
.auth-ledger::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(125deg,rgba(255,255,255,.34),transparent 36%,rgba(232,190,74,.06));pointer-events:none}
.auth-ledger::after{content:'';position:absolute;inset:12px;border:1px solid rgba(180,142,57,.1);border-radius:17px;pointer-events:none}
@keyframes ledger-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
.auth-mark{position:relative;height:86px;display:flex;align-items:center;justify-content:center;margin-bottom:4px}.auth-mark::before{content:'';position:absolute;width:92px;height:92px;border-radius:50%;background:radial-gradient(circle,rgba(255,248,218,.62),rgba(236,199,105,.09) 58%,transparent 72%);box-shadow:inset 0 0 0 1px rgba(184,144,55,.08)}
.auth-mark .hdr-seal{transform:scale(.8)}
.auth-kicker{font-size:10px;letter-spacing:.28em;color:var(--gold2);margin-bottom:11px}
.auth-ledger h1{font-family:var(--serif);font-size:30px;font-weight:600;color:var(--text);letter-spacing:.03em;margin-bottom:10px}
.auth-intro{max-width:360px;margin:0 auto 24px;color:var(--t2);font-size:13px;line-height:1.8}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid rgba(181,143,56,.09);border-radius:12px;background:rgba(255,242,184,.24);margin-bottom:20px}
.auth-tabs button{border:0;border-radius:9px;padding:9px;background:transparent;color:var(--t2);font:500 13px var(--body);cursor:pointer;transition:.2s ease}
.auth-tabs button:hover{color:#6f5723;background:rgba(255,252,229,.26)}
.auth-tabs button.active{background:rgba(255,254,238,.62);color:#73591f;box-shadow:0 3px 13px rgba(130,88,20,.07),inset 0 1px 0 rgba(255,255,255,.58)}
.auth-form{display:grid;gap:13px;text-align:left}
.auth-form label{display:grid;gap:6px;color:var(--t2);font-size:11px;letter-spacing:.05em}
.auth-form input{width:100%;padding:11px 13px;border:1px solid rgba(160,126,51,.15);border-radius:10px;color:var(--text);font:14px var(--body);outline:0;background:rgba(255,254,237,.46);box-shadow:inset 0 1px 0 rgba(255,255,255,.5);transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.auth-form input:focus{border-color:rgba(166,126,35,.38);background:rgba(255,255,244,.64);box-shadow:0 0 0 4px rgba(224,183,76,.1),inset 0 1px 0 rgba(255,255,255,.64)}
.auth-error{font-size:12px;color:var(--red);line-height:1.5}
.auth-submit{margin-top:4px;padding:12px 16px;border:1px solid rgba(132,100,34,.24);border-radius:11px;background:linear-gradient(105deg,rgba(151,120,55,.94),rgba(190,153,73,.9),rgba(213,181,107,.88));color:#fffdf4;font:700 14px var(--body);letter-spacing:.05em;cursor:pointer;box-shadow:0 9px 22px rgba(137,100,28,.14),inset 0 1px 0 rgba(255,255,255,.26);transition:transform .15s ease,filter .15s ease,box-shadow .15s ease}
.auth-submit:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 12px 26px rgba(137,100,28,.17),inset 0 1px 0 rgba(255,255,255,.3)}
.auth-submit:focus-visible,.auth-tabs button:focus-visible,.account-actions button:focus-visible{outline:2px solid var(--gold2);outline-offset:2px}
.auth-submit:disabled{opacity:.6;cursor:wait;transform:none}
.auth-privacy{display:flex;gap:10px;text-align:left;margin-top:22px;padding:13px 14px;border:1px solid rgba(178,138,48,.09);border-radius:11px;background:rgba(255,245,201,.2);color:var(--gold2)}
.auth-privacy div{display:grid;gap:3px}.auth-privacy strong{font-size:12px;color:var(--text)}.auth-privacy small{font-size:10px;line-height:1.6;color:var(--t3)}
.auth-known{font-size:10px;color:var(--t4);margin-top:12px}
@keyframes auth-glow{from{transform:translate3d(0,0,0) scale(.96)}to{transform:translate3d(3vw,2vw,0) scale(1.05)}}

.account-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px;padding:10px 13px 10px 16px;border:1px solid rgba(190,148,55,.15);border-radius:12px;background:rgba(255,253,246,.62);backdrop-filter:blur(10px)}
.account-bar>div:first-child{display:flex;align-items:center;gap:8px;min-width:0}.account-bar strong{font-size:13px;color:var(--text)}.account-bar small{font-size:10px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.account-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(95,127,105,.1)}
.account-actions{display:flex;gap:5px;flex-shrink:0}.account-actions button{padding:6px 9px;border:1px solid rgba(190,148,55,.18);border-radius:7px;background:rgba(255,252,240,.62);color:var(--t2);font:11px var(--body);cursor:pointer}.account-actions button:hover{color:var(--gold);background:rgba(190,148,55,.08)}

@media(max-width:900px){
  .mid-grid{grid-template-columns:1fr}
  .bot-grid{grid-template-columns:1fr}
  .tbl-scroll{min-height:unset;height:auto !important;max-height:none !important}
}
@media(max-width:600px){
  .auth-ledger{padding:28px 22px 25px}.auth-ledger h1{font-size:25px}
  .account-bar{align-items:flex-start;flex-direction:column}.account-actions{width:100%}.account-actions button{flex:1}
  .page{padding:12px 10px 80px;width:calc(100vw - 18px)}
  .task-title{max-width:160px}
  .stat-card{padding:11px 16px;min-width:0;flex:1 1 calc(50% - 12px)}
  .stat-card .val{font-size:22px}
  .hdr-stats{gap:12px}
}

/* ── four-section local-first shell ─────────────────── */
.berich-shell{position:relative;z-index:2;min-height:100vh;padding:24px 24px 120px}
.shell-masthead{width:min(1480px,100%);margin:0 auto 18px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.shell-brand{display:flex;align-items:center;gap:13px}.shell-brand-mark{display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(146,122,72,.42);border-radius:50%;font:600 20px var(--serif);color:var(--gold);background:rgba(255,253,246,.74);box-shadow:inset 0 0 0 5px rgba(190,148,55,.06)}
.shell-brand p{font-size:9px;letter-spacing:.24em;color:var(--gold2);margin-bottom:4px}.shell-brand strong{font:500 15px var(--serif);letter-spacing:.06em}
.shell-account{display:grid;grid-template-columns:8px auto;align-items:center;column-gap:8px;font-size:12px;color:var(--text)}.shell-account>span{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(95,127,105,.1)}.shell-account small{grid-column:2;color:var(--t3);font-size:9px}
.primary-nav{position:sticky;top:12px;z-index:50;width:min(1040px,100%);margin:0 auto 30px;padding:5px;display:grid;grid-template-columns:repeat(4,1fr);gap:5px;border:1px solid rgba(190,148,55,.18);border-radius:18px;background:rgba(255,252,241,.82);backdrop-filter:blur(18px);box-shadow:0 10px 36px rgba(116,83,26,.08)}
.primary-nav button{min-width:0;display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 14px;border:0;border-radius:13px;background:transparent;color:var(--t2);font-family:var(--body);cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}
.primary-nav button:hover{background:rgba(190,148,55,.07);color:var(--text);transform:translateY(-1px)}.primary-nav button.active{color:#604915;background:linear-gradient(135deg,rgba(255,253,246,.96),rgba(244,235,207,.9));box-shadow:0 4px 14px rgba(126,91,28,.1)}
.nav-glyph{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(146,122,72,.25);border-radius:50%;font:600 12px var(--serif)}.primary-nav button.active .nav-glyph{background:#927a48;color:#fffaf0;border-color:#927a48}
.primary-nav button>span:last-child{display:grid;text-align:left;line-height:1.1}.primary-nav strong{font:600 13px var(--serif)}.primary-nav small{margin-top:4px;font-size:9px;color:var(--t3)}
.section-stage{width:min(1480px,100%);margin:0 auto;animation:section-reveal .38s cubic-bezier(.2,.78,.25,1) both}@keyframes section-reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.eyebrow{font-size:9px;letter-spacing:.24em;color:var(--gold2);text-transform:uppercase}.section-intro{max-width:740px;margin:12px 0 30px}.section-intro.compact{margin-bottom:10px}.section-intro h1{font:600 clamp(28px,4vw,46px)/1.25 var(--serif);letter-spacing:.04em;margin:8px 0 10px}.section-intro>p:last-child{color:var(--t2);font-size:13px;line-height:1.8}
.gold-btn,.secondary-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:10px 16px;font:600 12px var(--body);cursor:pointer;transition:transform .16s ease,filter .16s ease,background .16s ease}.gold-btn{border:1px solid #9b8048;background:linear-gradient(110deg,#8e733c,#b89956,#d1b571);color:#fffaf0;box-shadow:0 8px 18px rgba(146,122,72,.16)}.gold-btn:hover{transform:translateY(-1px);filter:brightness(1.04)}.secondary-btn{border:1px solid rgba(146,122,72,.28);background:rgba(255,253,246,.7);color:var(--gold)}.secondary-btn:hover{background:rgba(244,235,207,.78)}.gold-btn.wide{width:100%;margin-top:5px}.gold-btn:disabled,.secondary-btn:disabled{opacity:.55;cursor:wait;transform:none}
.gold-btn:focus-visible,.secondary-btn:focus-visible,.primary-nav button:focus-visible,.spring-submit:focus-visible,.spring-file-row button:focus-visible,.spring-file-row label:focus-within,.confirm-plan:focus-visible,.confirmed-row button:focus-visible,.calendar-setup-cta:focus-visible,.danger-text:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ── today: body check-in → advice → completion ─────── */
.today-page{padding:14px 0 28px}.today-hero{min-height:235px;display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:center;gap:50px;padding:34px clamp(24px,5vw,72px);border-top:1px solid rgba(146,122,72,.18);border-bottom:1px solid rgba(146,122,72,.18);background:linear-gradient(92deg,rgba(255,253,245,.24),rgba(255,248,225,.7),rgba(255,253,245,.2))}
.today-hero h1{font:600 clamp(40px,6vw,72px)/1.12 var(--serif);letter-spacing:.05em;margin:12px 0 16px}.today-hero>div:first-child>p:last-child{max-width:570px;color:var(--t2);font-size:14px;line-height:1.9}
.today-orbit{justify-self:center;position:relative;width:190px;height:190px;display:grid;place-items:center;border:1px solid rgba(146,122,72,.25);border-radius:50%;box-shadow:inset 0 0 0 20px rgba(255,253,246,.3),0 18px 60px rgba(164,122,42,.12)}.today-orbit::before{content:'';position:absolute;inset:22px;border:1px dashed rgba(146,122,72,.22);border-radius:50%;animation:slow-turn 28s linear infinite}@keyframes slow-turn{to{transform:rotate(360deg)}}.today-orbit i{font:500 25px var(--serif);font-style:normal;color:var(--gold)}.today-orbit span{position:absolute;padding:6px 12px;background:#fffaf0;border:1px solid rgba(146,122,72,.2);border-radius:20px;font:500 12px var(--serif)}.today-orbit span:first-child{top:16px;left:10px}.today-orbit span:last-child{right:7px;bottom:22px}
.today-layout{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:26px;margin-top:28px}.checkin-panel,.advice-column{padding:28px;border:1px solid rgba(146,122,72,.18);border-radius:18px;background:rgba(255,253,246,.76);box-shadow:0 16px 50px rgba(126,91,28,.07);backdrop-filter:blur(12px)}
.panel-heading{display:flex;align-items:flex-start;gap:13px;margin-bottom:23px}.panel-heading>span{padding-top:4px;color:var(--gold2);font:500 10px var(--serif);letter-spacing:.12em}.panel-heading h2{font:600 22px var(--serif);letter-spacing:.05em}.panel-heading p{color:var(--t3);font-size:11px;margin-top:5px}
.checkin-panel fieldset{border:0;margin:0 0 17px}.checkin-panel legend{font-size:11px;color:var(--t2);margin-bottom:8px}.score-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.score-row button{min-width:0;padding:9px 4px 7px;border:1px solid rgba(146,122,72,.14);border-radius:9px;background:rgba(255,255,255,.42);color:var(--t3);font-family:var(--body);cursor:pointer;transition:.16s ease}.score-row button b{display:block;font:600 14px var(--serif)}.score-row button small{display:block;margin-top:3px;font-size:8px;white-space:nowrap}.score-row button:hover{border-color:rgba(146,122,72,.35);color:var(--gold)}.score-row button.selected{border-color:rgba(146,122,72,.46);background:linear-gradient(135deg,rgba(244,235,207,.92),rgba(255,251,236,.85));color:#72591f;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.field-label{display:grid;gap:7px;margin:14px 0;font-size:11px;color:var(--t2)}.field-label select,.field-label textarea,.plan-edits input{width:100%;border:1px solid rgba(146,122,72,.22);border-radius:9px;background:rgba(255,253,246,.78);color:var(--text);font:13px var(--body);padding:10px 11px;outline:0}.field-label textarea{resize:vertical}.field-label select:focus,.field-label textarea:focus,.plan-edits input:focus{border-color:var(--gold2);box-shadow:0 0 0 3px rgba(146,122,72,.08)}
.consent-line{display:flex;align-items:flex-start;gap:9px;padding:12px;margin:14px 0;border-left:2px solid rgba(146,122,72,.4);background:rgba(244,235,207,.38);font-size:10px;color:var(--t2);line-height:1.65}.consent-line input{margin-top:3px;accent-color:var(--gold)}.inline-status{margin-top:11px;color:var(--t2);font-size:11px;line-height:1.6}
.advice-column{display:flex;flex-direction:column;gap:14px}.advice-column>.panel-heading{margin-bottom:3px}.empty-advice{display:grid;place-items:center;min-height:250px;text-align:center;border:1px dashed rgba(146,122,72,.24);border-radius:14px;color:var(--t3);background:radial-gradient(circle,rgba(244,235,207,.38),transparent 65%)}.empty-advice b{font:500 22px var(--serif);color:var(--gold2)}.empty-advice p{font-size:11px;margin-top:-80px}
.advice-card{position:relative;padding:22px 22px 19px;border:1px solid rgba(146,122,72,.2);border-radius:15px;background:rgba(255,254,249,.74);overflow:hidden}.advice-card::after{content:'';position:absolute;right:-35px;top:-35px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(185,153,82,.12),transparent 70%)}.advice-card.learning::after{background:radial-gradient(circle,rgba(96,127,146,.13),transparent 70%)}.advice-kind{display:flex;align-items:center;gap:8px;color:var(--t2);font-size:10px;letter-spacing:.08em}.advice-kind span{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(146,122,72,.3);border-radius:50%;font:600 13px var(--serif);color:var(--gold)}.advice-card h3{font:600 19px var(--serif);margin:12px 0 7px}.advice-card>p{color:var(--t2);font-size:12px;line-height:1.7}
.plan-edits{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:17px 0 13px}.plan-edits label{position:relative;display:grid;gap:6px;color:var(--t3);font-size:9px}.plan-edits small{position:absolute;right:10px;bottom:11px;font-size:9px;color:var(--t3)}.plan-edits input[type=number]{padding-right:38px}.plan-edits input:disabled{opacity:.65;background:rgba(238,231,214,.5)}
.confirm-plan,.confirmed-row button{border:0;border-radius:9px;padding:10px 13px;background:#927a48;color:#fffaf0;font:600 11px var(--body);cursor:pointer}.confirm-plan:disabled,.confirmed-row button:disabled{opacity:.55;cursor:wait}.confirmed-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.confirmed-row button{background:rgba(95,127,105,.12);border:1px solid rgba(95,127,105,.25);color:var(--green)}.plan-state{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:var(--t2)}.plan-state::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--gold2)}.plan-state.succeeded::before,.plan-state.done::before{background:var(--green)}.plan-state.ambiguous::before{background:#b27e32}.calendar-setup-cta{border:0;background:transparent;color:var(--gold);font:11px var(--body);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px;cursor:pointer;align-self:flex-start}
.recent-balance{display:grid;grid-template-columns:220px 1fr;gap:28px;align-items:start;margin-top:30px;padding:26px 0;border-top:1px solid rgba(146,122,72,.2);border-bottom:1px solid rgba(146,122,72,.2)}.recent-balance h2{font:600 23px var(--serif);margin-top:7px}.recent-balance ul{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;list-style:none}.recent-balance li{min-height:110px;padding:14px;border-left:1px solid rgba(146,122,72,.22)}.recent-balance li span{font:600 17px var(--serif);color:var(--gold)}.recent-balance li p{font-size:11px;line-height:1.5;margin:9px 0}.recent-balance li small,.muted-copy{font-size:9px;color:var(--t3)}.medical-boundary{text-align:center;margin:20px 0 0;color:var(--t3);font-size:9px;letter-spacing:.04em}

/* ── spring wind ─────────────────────────────────────── */
.spring-page{width:min(900px,100%);margin:0 auto;padding:12px 0 36px}.spring-hero{min-height:190px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:24px 8px 30px;border-bottom:1px solid rgba(146,122,72,.2)}.spring-hero h1{font:500 clamp(45px,8vw,76px)/1 var(--serif);letter-spacing:.24em;margin:13px 0 15px}.spring-hero>div:first-child>p:last-child{font:400 14px var(--serif);color:var(--t2);letter-spacing:.08em}.jieqi-seal{flex:0 0 130px;aspect-ratio:1;display:grid;place-items:center;align-content:center;border:1px solid rgba(146,122,72,.3);border-radius:50%;background:rgba(255,253,246,.58);box-shadow:inset 0 0 0 8px rgba(190,148,55,.06);text-align:center}.jieqi-seal span,.jieqi-seal small{font-size:8px;letter-spacing:.14em;color:var(--t3)}.jieqi-seal strong{font:600 24px var(--serif);color:var(--gold);margin:5px 0}
.spring-input-card,.spring-report-card{margin:26px auto 0;padding:clamp(24px,5vw,46px);border:1px solid rgba(146,122,72,.2);border-radius:18px;background:rgba(255,253,246,.77);box-shadow:0 18px 55px rgba(126,91,28,.08);backdrop-filter:blur(14px)}.spring-input-card{display:grid;gap:24px}.spring-field{display:grid;gap:9px}.spring-label{display:flex;align-items:center;gap:10px}.spring-label>span{display:grid;place-items:center;width:25px;height:25px;border:1px solid rgba(146,122,72,.25);border-radius:50%;font:500 9px var(--serif);color:var(--gold)}.spring-label label{font:600 12px var(--serif);letter-spacing:.18em}.spring-label small{font:400 9px var(--body);color:var(--t3);letter-spacing:.04em}.spring-field>textarea,.spring-field>input{width:100%;padding:12px 14px;border:1px solid rgba(146,122,72,.22);border-radius:9px;background:rgba(255,254,249,.68);color:var(--text);font:13px/1.7 var(--body);outline:0}.spring-field>textarea{resize:vertical}.spring-field>textarea:focus,.spring-field>input:focus{border-color:var(--gold2);box-shadow:0 0 0 3px rgba(146,122,72,.08)}
.spring-material-drop{display:grid;place-items:center;min-height:128px;padding:22px;border:1px dashed rgba(146,122,72,.4);border-radius:13px;background:linear-gradient(145deg,rgba(255,254,249,.64),rgba(244,235,207,.32));text-align:center;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}.spring-material-drop:hover{border-color:rgba(146,122,72,.68);background:rgba(244,235,207,.48);transform:translateY(-1px)}.spring-material-drop:focus-within{outline:2px solid var(--gold);outline-offset:3px}.spring-material-drop input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.spring-material-drop span{font-size:9px;letter-spacing:.14em;color:var(--t3)}.spring-material-drop strong{margin:7px 0 6px;font:600 17px var(--serif);letter-spacing:.05em;color:var(--gold)}.spring-material-drop small{font-size:9px;color:var(--t3)}.spring-file-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.spring-file-row label,.spring-file-row button{position:relative;border:0;background:transparent;color:var(--gold);font:10px var(--body);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px;cursor:pointer}.spring-file-row>small{margin-left:auto;color:var(--t3);font-size:9px}.spring-file-row label input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.spring-local-vision{display:flex;align-items:center;gap:8px;margin:-9px 0 0;color:var(--t2);font-size:9px;line-height:1.6}.spring-local-vision span{padding:3px 7px;border:1px solid rgba(95,127,105,.25);border-radius:20px;background:rgba(95,127,105,.08);color:var(--green)}.spring-material-error{margin-top:-11px}.spring-profile-state{font-size:9px;color:var(--t3);line-height:1.6}.spring-profile-state.saved::before{content:'✓';margin-right:6px;color:var(--green)}.spring-profile-state.saving::before{content:'·';display:inline-block;margin-right:6px;color:var(--gold);animation:spring-save-pulse .8s ease-in-out infinite alternate}.spring-profile-state.error{color:var(--red)}@keyframes spring-save-pulse{to{opacity:.25}}.spring-drop-overlay{position:fixed;inset:14px;z-index:110;display:grid;place-items:center;border:1px solid rgba(146,122,72,.48);border-radius:24px;background:rgba(255,248,220,.88);box-shadow:inset 0 0 0 8px rgba(255,253,246,.55),0 22px 80px rgba(91,62,10,.18);backdrop-filter:blur(20px);pointer-events:none}.spring-drop-overlay>div{width:min(470px,calc(100% - 40px));padding:50px 30px;border:1px dashed rgba(146,122,72,.55);border-radius:18px;text-align:center;background:rgba(255,253,246,.58);animation:section-reveal .25s ease both}.spring-drop-overlay span,.spring-drop-overlay small{display:block;color:var(--t3);font-size:10px;letter-spacing:.12em}.spring-drop-overlay strong{display:block;margin:13px 0 11px;color:var(--gold);font:600 clamp(24px,4vw,38px) var(--serif);letter-spacing:.08em}.spring-consent{margin:0}.recognition-state{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid rgba(146,122,72,.16);border-radius:9px;background:rgba(244,235,207,.34);font-size:10px;color:var(--t2)}.recognition-state img{width:52px;height:52px;object-fit:cover;border-radius:6px}.spring-submit{width:100%;padding:14px;border:1px solid #927a48;border-radius:10px;background:linear-gradient(110deg,#8e733c,#b89956,#d1b571);color:#fffaf0;font:600 14px var(--serif);letter-spacing:.34em;text-indent:.34em;cursor:pointer;box-shadow:0 10px 24px rgba(146,122,72,.16)}
.spring-loading{min-height:360px;display:grid;place-items:center;align-content:center;text-align:center}.spring-loading>div{display:flex;gap:7px;margin-bottom:20px}.spring-loading span{width:7px;height:7px;border-radius:50%;background:var(--gold2);animation:spring-dot 1.2s ease-in-out infinite}.spring-loading span:nth-child(2){animation-delay:.15s}.spring-loading span:nth-child(3){animation-delay:.3s}@keyframes spring-dot{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-7px)}}.spring-loading h2{font:500 20px var(--serif);letter-spacing:.08em}.spring-loading p{font-size:10px;color:var(--t3);margin-top:8px}
.report-meta{display:flex;justify-content:space-between;padding-bottom:14px;margin-bottom:20px;border-bottom:1px solid rgba(146,122,72,.16);font-size:9px;color:var(--t3);letter-spacing:.08em}.safe-markdown{font-size:13px;line-height:1.95;color:#4c402a}.safe-markdown h2{font:600 23px var(--serif);letter-spacing:.08em;color:var(--text);margin:28px 0 11px}.safe-markdown h2:first-child{margin-top:0}.safe-markdown h3{font:600 16px var(--serif);letter-spacing:.06em;color:#5d4b25;margin:23px 0 8px}.safe-markdown h4{font:600 14px var(--serif);margin:18px 0 7px}.safe-markdown p{margin:0 0 13px}.safe-markdown ul{margin:0 0 15px;padding-left:20px}.safe-markdown blockquote{margin:17px 0;padding:11px 16px;border-left:2px solid rgba(146,122,72,.48);background:rgba(244,235,207,.3);color:var(--t2);font-style:italic}.safe-markdown hr{height:1px;border:0;margin:25px 0;background:linear-gradient(90deg,transparent,rgba(146,122,72,.3),transparent)}.safe-markdown a{color:var(--gold);text-decoration-thickness:1px;text-underline-offset:3px}.spring-report-card footer{display:flex;align-items:center;justify-content:space-between;margin-top:25px;padding-top:16px;border-top:1px solid rgba(146,122,72,.16);font-size:9px;color:var(--t3)}.spring-report-card footer button{border:0;background:transparent;color:var(--gold);font:600 11px var(--body);cursor:pointer}.spring-disclaimer{text-align:center;margin:24px 0 0;color:var(--t3);font-size:9px;line-height:2;letter-spacing:.12em}
.spring-process{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:2px 0 25px;padding:11px;border:1px solid var(--glass-line-soft);border-radius:12px;background:rgba(255,255,255,.14)}.spring-process-step{display:flex;align-items:center;gap:9px;min-width:0;padding:3px 8px}.spring-process-step+ .spring-process-step{border-left:1px solid var(--glass-line-soft)}.spring-process-step>b{display:grid;place-items:center;flex:0 0 27px;width:27px;height:27px;border:1px solid var(--glass-line);border-radius:50%;color:var(--gold);font:500 9px var(--serif)}.spring-process-step>span{display:grid;gap:3px;min-width:0}.spring-process-step strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font:600 10px var(--serif)}.spring-process-step small{color:var(--t3);font-size:8px}

/* one mixed BaZi input surface */
.bazi-material-input{position:relative;display:grid;gap:0;border:1px solid rgba(146,122,72,.27);border-radius:15px;background:linear-gradient(145deg,rgba(255,249,218,.62),rgba(255,253,246,.78));box-shadow:inset 0 1px 0 rgba(255,255,255,.75);overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease}.bazi-material-input:focus-within{border-color:rgba(146,122,72,.7);box-shadow:0 0 0 4px rgba(190,148,55,.09),inset 0 1px 0 rgba(255,255,255,.8)}.bazi-material-input.mode-importing,.bazi-material-input.mode-recognizing{border-color:rgba(146,122,72,.62);background:linear-gradient(145deg,rgba(255,244,190,.7),rgba(255,253,246,.82))}.bazi-material-input.mode-error{border-color:rgba(170,80,55,.45)}.bazi-material-input textarea{width:100%;min-height:134px;padding:18px 18px 12px;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--text);font:14px/1.85 var(--body);resize:vertical;outline:0}.bazi-input-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 14px;border-top:1px solid rgba(146,122,72,.13);background:rgba(255,252,236,.42)}.bazi-input-tools>span{min-width:0;color:var(--t3);font-size:9px;line-height:1.5}.bazi-input-tools>div{display:flex;gap:8px;flex:0 0 auto}.bazi-input-tools button{padding:7px 10px;border:1px solid rgba(146,122,72,.24);border-radius:20px;background:rgba(255,253,246,.76);color:var(--gold);font:600 9px var(--body);cursor:pointer}.bazi-input-tools button:hover{background:rgba(244,235,207,.75)}.bazi-input-tools button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.bazi-input-privacy{padding:0 14px 11px;color:var(--t3);font-size:8px;background:rgba(255,252,236,.42)}.bazi-input-preview{position:absolute;right:16px;top:16px;width:58px;height:58px;object-fit:cover;border:1px solid rgba(146,122,72,.25);border-radius:9px;box-shadow:0 6px 16px rgba(80,55,10,.12)}
.spring-label-text{font:600 12px var(--serif);letter-spacing:.18em}.city-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.city-pair>label{position:relative;display:grid;align-content:start;gap:7px;padding:14px;border:1px solid rgba(146,122,72,.17);border-radius:12px;background:rgba(255,254,249,.5);font-size:10px;color:var(--t2)}.city-pair>label>span{font:600 12px var(--serif);color:var(--text)}.city-pair>label>span small{margin-left:6px;color:var(--t3);font:400 8px var(--body)}.city-pair input{width:100%;padding:11px 12px;border:1px solid rgba(146,122,72,.22);border-radius:8px;background:rgba(255,253,246,.8);color:var(--text);font:12px var(--body);outline:0}.city-pair input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(146,122,72,.08)}.city-pair>label>small{font-size:8px;color:var(--t3)}.location-confirmed{color:var(--green)!important}.city-candidates{display:grid;gap:6px;padding-top:5px}.city-candidates>small{font-size:8px;color:var(--red)}.city-candidates button{padding:8px 9px;border:1px solid rgba(146,122,72,.22);border-radius:8px;background:rgba(244,235,207,.46);color:var(--text);font:10px var(--body);text-align:left;cursor:pointer}.city-candidates button:hover{border-color:var(--gold)}
.spring-permissions{display:grid;grid-template-columns:150px 1fr;gap:13px 20px;padding:18px;border:1px solid rgba(146,122,72,.16);border-radius:13px;background:rgba(255,252,236,.42)}.spring-permissions h3{font:600 16px var(--serif);margin-top:5px}.spring-permissions>p{grid-column:1/-1;color:var(--t3);font-size:9px;line-height:1.7}.context-toggles{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.context-toggles label{display:flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid rgba(146,122,72,.16);border-radius:20px;background:rgba(255,253,246,.72);color:var(--t2);font-size:9px;cursor:pointer}.context-toggles input{accent-color:var(--gold)}.saved-consent-note{padding-left:12px;border-left:2px solid rgba(95,127,105,.36);color:var(--green);font-size:9px}
.recognized-profile{display:grid;gap:14px;padding:18px;border:1px solid var(--glass-line-soft);border-radius:14px;background:var(--glass-surface-soft);box-shadow:inset 0 1px 0 rgba(255,255,255,.5);transition:border-color .2s ease,background .2s ease}.recognized-profile.needs-review{border-color:rgba(192,145,52,.28);background:linear-gradient(145deg,rgba(255,255,255,.25),rgba(255,239,176,.14))}.recognized-profile.confirmed{border-color:rgba(95,127,105,.22)}.recognized-profile>header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.recognized-profile h3{margin-top:4px;font:600 17px var(--serif);letter-spacing:.04em}.recognized-profile>header>span{flex:0 0 auto;padding:5px 8px;border:1px solid var(--glass-line-soft);border-radius:20px;background:rgba(255,255,255,.22);color:#8b6429;font-size:8px}.recognized-profile.confirmed>header>span{color:var(--green)}.recognized-profile>p{color:var(--t3);font-size:9px;line-height:1.65}.recognized-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.recognized-profile-grid>label{display:grid;gap:6px}.recognized-profile-grid>label>span:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--t2);font:600 10px var(--serif)}.recognized-profile-grid small{font:400 7px var(--body);color:var(--t3)}.recognized-profile-grid .confidence-high{color:var(--green)}.recognized-profile-grid .confidence-low{color:var(--red)}.recognized-profile-control{display:flex;min-width:0;border:1px solid var(--glass-line);border-radius:9px;background:rgba(255,255,255,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.6);overflow:hidden}.recognized-profile-control:focus-within{border-color:rgba(255,255,255,.86);box-shadow:0 0 0 4px rgba(255,255,255,.2)}.recognized-profile-control input{min-width:0;width:100%;padding:10px 11px;border:0;background:transparent;color:var(--text);font:11px var(--body);outline:0}.recognized-profile-control button{width:34px;border:0;border-left:1px solid var(--glass-line-soft);background:rgba(255,255,255,.12);color:var(--t3);font:18px/1 var(--serif);cursor:pointer}.recognized-profile>footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.recognized-profile>footer button{padding:8px 11px;border-radius:20px;font:600 9px var(--body);cursor:pointer}.profile-clear{border:0;background:transparent;color:var(--t3)}.profile-confirm{border:1px solid var(--glass-line);background:rgba(255,255,255,.32);color:var(--gold);box-shadow:inset 0 1px 0 rgba(255,255,255,.58)}.recognized-profile.confirmed .profile-confirm{color:var(--green)}.recognized-profile button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.saved-profile-summary{display:grid;gap:15px;padding:19px;border:1px solid var(--glass-line);border-radius:14px;background:linear-gradient(145deg,rgba(255,255,255,.32),rgba(255,246,207,.13));box-shadow:inset 0 1px 0 rgba(255,255,255,.62);backdrop-filter:blur(18px)}.saved-profile-summary>header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.saved-profile-summary h3{margin-top:5px;font:600 18px var(--serif);letter-spacing:.04em}.saved-profile-summary>header button,.profile-finish{padding:8px 11px;border:1px solid var(--glass-line);border-radius:20px;background:rgba(255,255,255,.25);box-shadow:inset 0 1px 0 rgba(255,255,255,.55);color:var(--gold);font:600 9px var(--body);cursor:pointer}.saved-profile-summary>header button:focus-visible,.profile-finish:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.saved-profile-summary dl{display:grid;grid-template-columns:2fr 1fr 1fr;gap:9px}.saved-profile-summary dl>div{display:grid;gap:5px;min-width:0;padding:11px;border-top:1px solid var(--glass-line-soft);background:rgba(255,255,255,.08)}.saved-profile-summary dt,.saved-profile-details small{color:var(--t3);font-size:8px}.saved-profile-summary dd{overflow-wrap:anywhere;color:var(--text);font:600 11px/1.55 var(--serif)}.saved-profile-details{display:flex;flex-wrap:wrap;gap:7px}.saved-profile-details>span{display:grid;gap:3px;padding:7px 9px;border:1px solid var(--glass-line-soft);border-radius:9px;background:rgba(255,255,255,.16);color:var(--t2);font-size:9px}.saved-profile-summary>p{color:var(--t3);font-size:9px;line-height:1.6}.profile-finish{justify-self:start;margin-top:3px;color:var(--green)}

/* structured trustworthy report */
.trusted-report{display:grid;gap:28px}.trusted-report-heading h2{font:600 30px var(--serif);margin:7px 0}.trusted-report-heading>p:last-child{color:var(--t2);font-size:11px;line-height:1.7}.report-state{padding:4px 8px;border-radius:20px;background:rgba(95,127,105,.1);color:var(--green)}.report-state.partial,.report-state.awaiting_confirmation{background:rgba(178,126,50,.1);color:#8b6429}.report-layer{display:grid;gap:15px;padding-top:25px;border-top:1px solid rgba(146,122,72,.16)}.report-layer-title{display:flex;align-items:flex-start;gap:12px}.report-layer-title>span{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(146,122,72,.25);border-radius:50%;color:var(--gold);font:500 9px var(--serif)}.report-layer-title h3{font:600 20px var(--serif);letter-spacing:.04em}.report-layer-title p{margin-top:4px;color:var(--t3);font-size:9px;line-height:1.6}.fact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.fact-card{min-width:0;padding:13px;border:1px solid rgba(146,122,72,.14);border-radius:11px;background:rgba(255,254,249,.5)}.fact-card>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.fact-card strong{font:600 11px var(--serif)}.fact-card>div span{padding:3px 6px;border-radius:10px;background:rgba(95,127,105,.09);color:var(--green);font-size:7px}.fact-card.stale>div span,.fact-card.partial>div span{background:rgba(178,126,50,.1);color:#8b6429}.fact-card.missing{opacity:.72}.fact-card.missing>div span{background:rgba(150,90,65,.08);color:var(--red)}.fact-card p{margin:9px 0 7px;color:var(--t2);font-size:10px;line-height:1.55;overflow-wrap:anywhere}.fact-card small{display:block;color:var(--t3);font-size:7px;line-height:1.45}.culture-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.culture-grid article{padding:17px;border:1px solid rgba(146,122,72,.16);border-radius:12px;background:linear-gradient(145deg,rgba(255,249,218,.38),rgba(255,254,249,.6))}.culture-grid h4{display:flex;align-items:center;justify-content:space-between;font:600 15px var(--serif);margin-bottom:9px}.culture-grid h4 span{padding:3px 6px;border:1px solid rgba(146,122,72,.2);border-radius:12px;color:var(--gold);font:400 7px var(--body)}.culture-grid .safe-markdown{font-size:11px;line-height:1.75}.culture-grid .safe-markdown p{margin-bottom:8px}.culture-grid>article>small{color:var(--t3);font-size:8px;line-height:1.55}.layer-missing{padding:16px;border:1px dashed rgba(146,122,72,.24);border-radius:11px;color:var(--t3);font-size:10px}.action-list{display:grid;gap:10px}.action-list>article{display:grid;grid-template-columns:42px 1fr;gap:13px;padding:16px;border:1px solid rgba(146,122,72,.17);border-radius:12px;background:rgba(255,254,249,.56)}.action-number{font:500 21px var(--serif);color:rgba(146,122,72,.5)}.action-kind{font-size:8px;letter-spacing:.1em;color:var(--gold);text-transform:uppercase}.action-list h4{font:600 16px var(--serif);margin:5px 0 7px}.action-list article p{color:var(--t2);font-size:11px;line-height:1.65}.action-list details{margin-top:10px}.action-list summary{color:var(--gold);font-size:9px;cursor:pointer}.action-list dl{display:grid;grid-template-columns:65px 1fr;gap:6px 10px;margin-top:10px;padding:11px;border-left:2px solid rgba(146,122,72,.24);background:rgba(244,235,207,.25);font-size:9px;line-height:1.55}.action-list dt{color:var(--t3)}.action-list dd{color:var(--t2)}.report-disclaimer{padding:12px 14px;border-left:2px solid rgba(146,122,72,.3);background:rgba(244,235,207,.25);color:var(--t2);font-size:9px;line-height:1.7}
.consent-purpose-list{display:grid;gap:8px;margin-top:16px}.consent-purpose-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid rgba(146,122,72,.14);border-radius:9px;background:rgba(255,255,255,.34)}.consent-purpose-list>div>div{display:grid;gap:4px;min-width:0}.consent-purpose-list strong{font:600 11px var(--serif)}.consent-purpose-list small{overflow-wrap:anywhere;color:var(--t3);font-size:8px;line-height:1.45}.consent-purpose-list .danger-text{margin:0;flex:0 0 auto}

/* ── translucent surface refresh ────────────────────── */
.gc,
.checkin-panel,
.advice-column,
.settings-panel,
.spring-input-card,
.spring-report-card{
  border-color:var(--glass-line);
  background:linear-gradient(145deg,var(--glass-surface-strong),rgba(255,250,231,.22));
  box-shadow:var(--glass-shadow);
  -webkit-backdrop-filter:blur(24px) saturate(1.08);
  backdrop-filter:blur(24px) saturate(1.08);
}
.float-inner{
  border-color:var(--glass-line);
  background:linear-gradient(145deg,rgba(255,255,255,.5),rgba(255,248,218,.26));
  box-shadow:0 18px 54px rgba(72,58,41,.1),inset 0 1px 0 rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(22px) saturate(1.06);
  backdrop-filter:blur(22px) saturate(1.06);
}
.shell-brand-mark,
.jieqi-seal{
  border-color:var(--glass-line);
  background:var(--glass-surface);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 10px 30px rgba(72,58,41,.06);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.primary-nav{
  border-color:var(--glass-line);
  background:rgba(255,255,255,.34);
  box-shadow:0 16px 50px rgba(72,58,41,.08),inset 0 1px 0 rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(24px) saturate(1.08);
  backdrop-filter:blur(24px) saturate(1.08);
}
.primary-nav button:hover{background:rgba(255,255,255,.24)}
.primary-nav button.active{
  color:#604915;
  background:linear-gradient(135deg,rgba(255,255,255,.48),rgba(255,241,190,.24));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 8px 24px rgba(72,58,41,.07);
}
.nav-glyph,
.spring-label>span,
.report-layer-title>span{border-color:var(--glass-line)}
.secondary-btn,
.bazi-input-tools button,
.context-toggles label,
.city-candidates button{
  border-color:var(--glass-line);
  background:rgba(255,255,255,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.58);
}
.secondary-btn:hover,
.bazi-input-tools button:hover,
.city-candidates button:hover{background:rgba(255,255,255,.46)}
.bazi-material-input{
  border-color:var(--glass-line);
  background:linear-gradient(145deg,rgba(255,255,255,.34),rgba(255,246,204,.18));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.78),0 14px 34px rgba(72,58,41,.05);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
}
.bazi-material-input:focus-within{
  border-color:rgba(255,255,255,.82);
  box-shadow:0 0 0 4px rgba(255,255,255,.2),0 16px 42px rgba(72,58,41,.07),inset 0 1px 0 rgba(255,255,255,.82);
}
.bazi-material-input.mode-importing,
.bazi-material-input.mode-recognizing{border-color:rgba(255,255,255,.8);background:linear-gradient(145deg,rgba(255,255,255,.42),rgba(255,239,174,.22))}
.bazi-input-tools{border-top-color:var(--glass-line-soft);background:rgba(255,255,255,.12)}
.bazi-input-privacy{background:rgba(255,255,255,.12)}
.city-pair>label,
.recognized-profile,
.spring-permissions,
.fact-card,
.culture-grid article,
.action-list>article,
.advice-card{
  border-color:var(--glass-line-soft);
  background:var(--glass-surface-soft);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.48);
}
.culture-grid article{background:linear-gradient(145deg,rgba(255,255,255,.25),rgba(255,246,205,.12))}
.city-pair input,
.spring-field>textarea,
.spring-field>input,
.field-label select,
.field-label textarea,
.plan-edits input,
.completion-dialog input,
.completion-dialog textarea{
  border-color:var(--glass-line);
  background:rgba(255,255,255,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.62);
}
.spring-field>textarea:focus,
.spring-field>input:focus,
.city-pair input:focus,
.field-label select:focus,
.field-label textarea:focus,
.plan-edits input:focus{
  border-color:rgba(255,255,255,.86);
  box-shadow:0 0 0 4px rgba(255,255,255,.2),inset 0 1px 0 rgba(255,255,255,.72);
}
.spring-consent,
.report-disclaimer{
  border:1px solid var(--glass-line-soft);
  border-left-color:var(--glass-line);
  border-radius:12px;
  background:rgba(255,255,255,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.42);
}
.report-meta,
.report-layer,
.spring-report-card footer{border-color:var(--glass-line-soft)}
.action-list dl,
.safe-markdown blockquote{
  border-left-color:var(--glass-line);
  background:rgba(255,255,255,.14);
}
.spring-submit{
  border-color:rgba(255,255,255,.42);
  background:linear-gradient(110deg,rgba(111,84,34,.82),rgba(164,126,48,.74),rgba(194,153,66,.66));
  box-shadow:0 14px 34px rgba(85,62,22,.13),inset 0 1px 0 rgba(255,255,255,.28);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}

/* ── knowledge and local settings ───────────────────── */
.knowledge-page>.section-intro{padding:0 8px}.knowledge-ledger.page{width:100%;padding:6px 0 42px;filter:none}.knowledge-ledger .hdr{margin-top:0}
.me-page{padding:12px 0 30px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-panel{min-height:300px;padding:26px;border:1px solid rgba(146,122,72,.18);border-radius:16px;background:rgba(255,253,246,.74);box-shadow:0 14px 44px rgba(126,91,28,.06)}.panel-number{font:500 9px var(--serif);color:var(--gold2);letter-spacing:.16em}.settings-panel h2{font:600 20px var(--serif);margin:10px 0 16px}.identity-name{display:flex;align-items:center;gap:13px;margin:19px 0}.identity-name>span{display:grid;place-items:center;width:50px;height:50px;border:1px solid rgba(146,122,72,.3);border-radius:50%;background:rgba(244,235,207,.45);font:600 19px var(--serif);color:var(--gold)}.identity-name div{display:grid;gap:4px}.identity-name strong{font:600 15px var(--serif)}.identity-name small{font-size:9px;color:var(--t3)}.plain-warning,.settings-panel>p:not(.panel-number){font-size:11px;line-height:1.75;color:var(--t2)}.button-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:19px}.calendar-panel>.secondary-btn{margin:17px 0}.calendar-choices{display:grid;gap:7px;max-height:170px;overflow:auto;margin:2px 0 14px;padding-right:5px}.calendar-choices label{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid rgba(146,122,72,.13);border-radius:8px;font-size:11px;color:var(--t2);cursor:pointer}.calendar-choices input{accent-color:var(--gold)}.privacy-detail{display:block;color:var(--t3);font-size:9px;line-height:1.7}.projection-list{display:grid;gap:8px;margin:0 0 15px}.projection-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid rgba(146,122,72,.14);border-radius:9px;background:rgba(255,255,255,.35)}.projection-row>div{display:grid;gap:4px;min-width:0}.projection-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 11px var(--serif)}.projection-row small{font-size:9px;color:var(--t3)}.projection-row button{flex:0 0 auto;padding:8px 10px}.privacy-panel ul{display:grid;gap:10px;padding-left:17px;color:var(--t2);font-size:11px;line-height:1.65}.danger-text{margin-top:24px;border:0;background:transparent;color:var(--red);font:500 11px var(--body);cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}

.settings-panel{
  border-color:var(--glass-line);
  background:linear-gradient(145deg,var(--glass-surface-strong),rgba(248,247,255,.22));
  box-shadow:var(--glass-shadow);
  -webkit-backdrop-filter:blur(24px) saturate(1.08);
  backdrop-filter:blur(24px) saturate(1.08);
}
.identity-name>span,
.calendar-choices label,
.projection-row{
  border-color:var(--glass-line-soft);
  background:var(--glass-surface-soft);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.48);
}

/* ── actual-completion dialog ───────────────────────── */
.dialog-backdrop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px;background:rgba(48,34,10,.34);backdrop-filter:blur(9px)}.completion-dialog{width:min(470px,100%);padding:30px;border:1px solid rgba(146,122,72,.32);border-radius:18px;background:#fffaf0;box-shadow:0 28px 90px rgba(67,45,8,.24)}.completion-dialog h2{font:600 25px var(--serif);margin:8px 0}.dialog-lead{color:var(--t2);font-size:11px;line-height:1.7;margin-bottom:20px}.completion-dialog form{display:grid;gap:15px}.completion-dialog form>label{display:grid;gap:7px;color:var(--t2);font-size:11px}.completion-dialog input,.completion-dialog textarea{width:100%;padding:11px 12px;border:1px solid rgba(146,122,72,.24);border-radius:9px;background:rgba(255,253,246,.8);color:var(--text);font:13px var(--body);outline:0}.completion-dialog input:focus,.completion-dialog textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(146,122,72,.09)}.duration-input{position:relative}.duration-input small{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:9px;color:var(--t3)}.duration-input input{padding-right:50px}.form-error{color:var(--red);font-size:11px;line-height:1.6}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:5px}

.completion-dialog{
  border-color:var(--glass-line);
  background:linear-gradient(145deg,rgba(255,255,255,.62),rgba(255,249,226,.36));
  box-shadow:0 28px 90px rgba(42,35,28,.16),inset 0 1px 0 rgba(255,255,255,.78);
  -webkit-backdrop-filter:blur(28px) saturate(1.08);
  backdrop-filter:blur(28px) saturate(1.08);
}
.completion-dialog input,
.completion-dialog textarea{
  border-color:var(--glass-line);
  background:rgba(255,255,255,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.62);
}

@media(max-width:980px){
  .today-layout{grid-template-columns:1fr}.recent-balance{grid-template-columns:1fr}.recent-balance ul{grid-template-columns:repeat(2,1fr)}
  .settings-grid{grid-template-columns:1fr 1fr}.settings-panel{min-height:0}
}
@media(max-width:700px){
  .berich-shell{padding:15px 12px 100px}.shell-masthead{margin-bottom:14px}.shell-brand-mark{width:38px;height:38px;font-size:17px}.shell-brand strong{font-size:12px}.shell-account small{display:none}
  .primary-nav{position:fixed;top:auto;bottom:10px;left:10px;right:10px;width:auto;margin:0;grid-template-columns:repeat(4,1fr);border-radius:16px;z-index:90}.primary-nav button{display:grid;gap:3px;padding:7px 3px}.primary-nav button>span:last-child{text-align:center}.primary-nav small{display:none}.nav-glyph{width:25px;height:25px;margin:auto}
  .today-hero{min-height:0;grid-template-columns:1fr;padding:30px 18px}.today-hero h1{font-size:43px}.today-orbit{display:none}.today-layout{gap:14px;margin-top:16px}.checkin-panel,.advice-column{padding:20px 16px;border-radius:15px}.score-row{gap:3px}.score-row button{padding:8px 1px}.score-row button small{font-size:7px}.plan-edits{grid-template-columns:1fr 1fr}
  .recent-balance ul{grid-template-columns:1fr 1fr}.recent-balance li{min-height:90px}.spring-page{padding-top:0}.spring-hero{padding:15px 5px 24px}.spring-hero h1{font-size:46px}.jieqi-seal{flex-basis:100px}.spring-input-card,.spring-report-card{padding:23px 17px;margin-top:16px}.city-pair,.fact-grid,.culture-grid,.recognized-profile-grid,.saved-profile-summary dl{grid-template-columns:1fr}.bazi-input-tools{align-items:flex-start;flex-direction:column}.bazi-input-tools>div{width:100%}.bazi-input-tools button{flex:1}.spring-permissions{grid-template-columns:1fr}.context-toggles{justify-content:flex-start}.action-list>article{grid-template-columns:31px 1fr}.action-list dl{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.privacy-panel{grid-column:auto}.settings-panel{min-height:0;padding:22px 18px}.section-intro h1{font-size:31px}
  .knowledge-ledger.page{padding-bottom:75px}.float-widget{bottom:90px;right:12px}.dialog-actions{display:grid;grid-template-columns:1fr 1fr}.dialog-actions button{width:100%}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
