:root{
  --leaf:#1e7a57;--green-1:#41604f;--green-2:#139866;
  --mint:#eaf5ef;--mint-2:#f3fdf7;--mint-3:#fafffc;
  --paper:#f2f2f2;--surface:#ffffff;
  --ink:#2d3130;--ink-2:#2d3130b2;--ink-3:#2d3130b2;--line:#2d313014;
  --red:#d13f40;--blue:#3867d5;--blue-soft:#3867d526;
  --leaf-ink:#41604f;--danger:#d13f40;
  --serif:"Songti SC","STSong","Noto Serif SC","Source Han Serif SC",serif;
  --hall-font:"PingFang SC","Hiragino Sans GB",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
html{
  min-height:100%;
  background:
    radial-gradient(ellipse 64% 48% at 8% -6%, #1e7a5726, transparent 52%),
    radial-gradient(ellipse 48% 40% at 96% 108%, #1e7a5714, transparent 50%),
    linear-gradient(180deg,var(--mint-2) 0%,var(--mint) 100%);
}
body{
  margin:0;
  color:var(--ink);
  font-family:var(--hall-font);
  background:transparent;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    linear-gradient(90deg,transparent 10.8%,#1e7a5714 10.9%,transparent 11.05%,transparent 27.4%,#41604f14 27.5%,transparent 27.65%,transparent 72.35%,#41604f14 72.5%,transparent 72.65%,transparent 88.95%,#1e7a5714 89.1%,transparent 89.2%),
    linear-gradient(180deg,transparent 9.8%,#1e7a5714 10%,transparent 10.2%,transparent 89.8%,#1e7a5714 90%,transparent 90.2%);
}
.hall-mark{
  position:fixed;width:240px;height:240px;opacity:.22;pointer-events:none;z-index:0;
  background:url(/tangan-logo.svg) center/contain no-repeat;
}
.hall-mark-bl{left:4px;bottom:0}
.hall-mark-tr{right:4px;top:0;transform:rotate(180deg)}
.hall-login{
  position:relative;z-index:1;min-height:100dvh;display:flex;align-items:center;justify-content:center;
  padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));
}
.hall-login-card{
  width:min(400px,100%);background:#fff;border-radius:16px;padding:28px;
  box-shadow:0 18px 50px #2d313026;position:relative;z-index:1;
}
.hall-login-card .mark{width:36px;height:36px;border-radius:10px;display:block}
.hall-login-card .wordmark{width:110px;height:30px;display:block;margin:8px 0 10px}
.hall-login-card h1{
  font-family:var(--serif);font-size:22px;font-weight:600;color:var(--leaf-ink);margin:0 0 8px;
}
.hall-login-card p{font-size:13px;color:var(--ink-2);line-height:1.65;margin:0 0 8px}
.hall-remember{
  display:flex;align-items:center;gap:8px;margin:14px 0 0;font-size:13px;color:var(--ink-2);cursor:pointer;user-select:none;
}
.hall-remember input{width:15px;height:15px;accent-color:var(--leaf);flex-shrink:0}
.hall-brand{display:flex;align-items:center;gap:10px;color:var(--leaf);line-height:1}
.hall-brand .mark{width:26px;height:26px;border-radius:8px;flex-shrink:0}
.hall-brand .wordmark{width:96px;height:26px;display:block;flex-shrink:0}
.hall-brand .board-name{font-size:15px;font-weight:500;color:var(--ink-2)}
.hall-nav{display:flex;gap:2px;background:var(--paper);border-radius:999px;padding:3px;flex-wrap:wrap;align-items:center}
.hall-nav a,.hall-nav .logout{
  color:var(--ink-3);text-decoration:none;font-size:12px;font-weight:500;
  padding:6px 13px;border-radius:999px;background:none;border:0;cursor:pointer;font-family:inherit;line-height:1.2;
  min-height:32px;display:inline-flex;align-items:center;
}
.hall-nav a:hover,.hall-nav .logout:hover{color:var(--leaf-ink)}
.hall-nav a.current{background:var(--leaf);color:#fff;font-weight:600}
.hall-env{font-size:12px;font-weight:500;padding:4px 10px;border-radius:999px;background:var(--mint);color:var(--green-2)}
.hall-env.qa{background:var(--blue-soft);color:var(--blue)}
.hall-sidebar{
  background:linear-gradient(180deg,var(--mint-3) 0%,var(--mint-2) 100%);
  color:var(--ink);
  box-shadow:inset -1px 0 0 var(--line);
}
.hall-sidebar .logo,.hall-sidebar h1{
  font-family:var(--serif);color:var(--leaf-ink);font-weight:600;letter-spacing:0;
}
.hall-sidebar .sub,.hall-sidebar .env{color:var(--ink-3)}
.hall-frame{
  position:relative;z-index:1;
  background:
    radial-gradient(90% 70% at 8% -10%, rgba(255,255,255,.95), transparent 52%),
    radial-gradient(70% 50% at 100% 112%, #1e7a5714, transparent 50%),
    linear-gradient(180deg,var(--mint-3) 0%,var(--mint-2) 100%);
  box-shadow:0 24px 56px #2d313026,0 0 0 1px rgba(255,255,255,.7),inset 0 1px 0 rgba(255,255,255,.9);
  border-radius:22px;
}
