
/* ===== css/base.css ===== */
/* ---------- tokens ---------- */
:root{
  --bg:#F5F7FC;
  --bg-elevated:#FFFFFF;
  --surface:#FFFFFF;
  --surface-2:#EDF1F9;
  --surface-3:#E2E8F4;
  --border:#E1E6F0;
  --border-strong:#C8D0E2;
  --text:#0F1629;
  --text-muted:#566079;
  --text-faint:#8892A8;
  --accent:#3B82F6;
  --accent-strong:#2563EB;
  --accent-ink:#1D4ED8;
  --accent-soft:#E6EFFE;
  --accent-2:#8B5CF6;
  --accent-2-soft:#EEE9FE;
  --accent-2-ink:#6D3FD9;
  --shadow-sm: 0 1px 2px rgba(15,22,41,.06);
  --shadow-md: 0 8px 24px rgba(15,22,41,.10);
  --shadow-lg: 0 18px 48px rgba(15,22,41,.16);
  --radius-s:8px;
  --radius-m:14px;
  --radius-l:20px;
  --font-display:'Plus Jakarta Sans','Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,sans-serif;
  --font-body:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR',sans-serif;
  --font-mono:'Plus Jakarta Sans','Pretendard Variable',Pretendard,-apple-system,sans-serif;  /* 라벨·숫자용(코드 아님) */
  --font-code:'JetBrains Mono','D2Coding',ui-monospace,'SFMono-Regular',Menlo,monospace;

  --brand-1:#3B82F6; --brand-2:#8B5CF6; --brand-3:#22D3EE;
  --brand-grad:linear-gradient(135deg, #3B82F6 0%, #8B5CF6 62%, #22D3EE 130%);
  --font-brand:'Plus Jakarta Sans','Pretendard Variable',-apple-system,BlinkMacSystemFont,sans-serif;
  --mark-56:url(data:image/png;base64,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);
  --mark-128:url(data:image/png;base64,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);
  --syn-bg:#181A21;
  --syn-panel:#1F222B;
  --syn-line:#2A2D38;
  --syn-text:#E6E2D6;
  --syn-comment:#767C8C;
  --syn-keyword:#FF9166;
  --syn-string:#9BD1B0;
  --syn-func:#7FB3E0;
  --syn-number:#E3C578;
  --syn-punct:#8C8A7E;
  --syn-tag:#E39BC4;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0A0F1F;
    --bg-elevated:#111731;
    --surface:#111731;
    --surface-2:#18203F;
    --surface-3:#222B50;
    --border:#232C4D;
    --border-strong:#33406B;
    --text:#EEF2FF;
    --text-muted:#A8B2D1;
    --text-faint:#7782A6;
    --accent:#60A5FA;
    --accent-strong:#7DB5FF;
    --accent-ink:#A9CCFF;
    --accent-soft:rgba(96,165,250,.16);
    --accent-2:#A78BFA;
    --accent-2-soft:rgba(167,139,250,.16);
    --accent-2-ink:#C9B8FF;
    --shadow-sm: 0 1px 2px rgba(2,4,12,.3);
    --shadow-md: 0 8px 24px rgba(2,4,12,.34);
    --shadow-lg: 0 18px 48px rgba(2,4,12,.5);
  }
}
:root[data-theme="dark"]{
  --bg:#0A0F1F;
  --bg-elevated:#111731;
  --surface:#111731;
  --surface-2:#18203F;
  --surface-3:#222B50;
  --border:#232C4D;
  --border-strong:#33406B;
  --text:#EEF2FF;
  --text-muted:#A8B2D1;
  --text-faint:#7782A6;
  --accent:#60A5FA;
  --accent-strong:#7DB5FF;
  --accent-ink:#A9CCFF;
  --accent-soft:rgba(96,165,250,.16);
  --accent-2:#A78BFA;
  --accent-2-soft:rgba(167,139,250,.16);
  --accent-2-ink:#C9B8FF;
  --shadow-sm: 0 1px 2px rgba(2,4,12,.3);
  --shadow-md: 0 8px 24px rgba(2,4,12,.34);
  --shadow-lg: 0 18px 48px rgba(2,4,12,.5);
}

::view-transition-old(root), ::view-transition-new(root){ animation-duration:.45s; animation-timing-function:ease; }
.theme-fading, .theme-fading *{ transition:background-color .35s ease, color .35s ease, border-color .35s ease, box-shadow .35s ease !important; }
@media (prefers-reduced-motion: reduce){
  ::view-transition-old(root), ::view-transition-new(root){ animation:none; }
  .theme-fading, .theme-fading *{ transition:none !important; }
  .app.home-landing-mode .home-pad::before{ animation:none; }
  .home-hero.home-intro .home-hero-left > *{ animation:none; }
}
*{box-sizing:border-box;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:14.5px;
  line-height:1.55;
  letter-spacing:-.011em;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5{letter-spacing:-.025em;}
button, input, textarea, select{font-family:inherit; color:inherit;}
::selection{background:var(--accent-soft); color:var(--accent-strong);}
::-webkit-scrollbar{width:9px; height:9px;}
::-webkit-scrollbar-thumb{background:var(--border-strong); border-radius:8px;}
::-webkit-scrollbar-track{background:transparent;}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:4px;}
h1,h2,h3,h4{margin:0; text-wrap:balance; font-weight:600;}
p{margin:0;}
a{color:inherit;}

/* ---------- app shell ---------- */
:root{--ui-zoom:1;}
.scale-options{display:flex; gap:6px; flex-wrap:wrap;}
.scale-opt{flex:1 1 auto; min-width:58px; padding:9px 8px; border:1px solid var(--border); background:var(--surface); border-radius:10px; font-size:12px; color:var(--text-muted); cursor:pointer; text-align:center;}
.scale-opt:hover{border-color:var(--border-strong); color:var(--text);}
.scale-opt.active{border-color:var(--accent); background:var(--accent-soft); color:var(--accent-ink); font-weight:600;}
.app{min-height:calc(100vh / var(--ui-zoom) - 16px);   /* body 기본 여백(위아래 8px씩) 만큼 제외 */ display:flex; flex-direction:column;}

.topbar{
  height:58px; flex:0 0 auto;
  display:flex; align-items:center; gap:22px;
  padding:0 20px;
  border-bottom:1px solid var(--border);
  background:var(--bg-elevated);
  position:relative; z-index:30;
}
.wordmark{
  display:flex; align-items:center; gap:9px; flex:0 0 auto; cursor:pointer; border:none; background:none; padding:0; color:var(--text);
}
.wm-text{font-family:var(--font-brand); font-weight:800; font-size:18px; letter-spacing:-.04em; color:var(--text);}
.bm{display:inline-block; background:var(--mark-56) center / contain no-repeat;}
.wm-mark{width:26px; height:28px; transition:transform .3s cubic-bezier(.2,.9,.3,1.3);}
.wordmark:hover .wm-mark{transform:rotate(-10deg) scale(1.1);}

.tabnav{
  display:flex; gap:2px; background:var(--surface-2); padding:3px;
  border-radius:999px; margin:0 auto; flex:0 0 auto;
}
.tabnav button{
  border:none; background:none; padding:7px 15px; border-radius:999px;
  font-size:13.5px; font-weight:500; color:var(--text-muted); cursor:pointer;
  display:flex; align-items:center; gap:6px; white-space:nowrap;
  transition:background .15s ease, color .15s ease;
}
.tabnav button svg{width:15px; height:15px; flex:0 0 auto;}
.tabnav button:hover{color:var(--text);}
.tabnav button.active{background:var(--bg-elevated); color:var(--text); box-shadow:var(--shadow-sm);}

.topbar-right{display:flex; align-items:center; gap:10px; flex:0 0 auto;}
.icon-btn{
  width:34px; height:34px; border-radius:10px; border:1px solid var(--border);
  background:var(--surface); display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:var(--text-muted);
}
.icon-btn:hover{color:var(--text); border-color:var(--border-strong);}
.icon-btn svg{width:16px; height:16px;}
.avatar{
  width:34px; height:34px; border-radius:10px; background:linear-gradient(150deg,var(--accent),var(--accent-2));
  display:flex; align-items:center; justify-content:center; color:#fff; font-weight:600; font-size:13px;
  cursor:pointer; border:none;
}

.view{display:none;}
.view.active{display:flex; flex-direction:column; flex:1 1 auto; min-height:0;}
.view[data-view="workspace"].active{
  height:calc(100vh / var(--ui-zoom) - 58px - 16px);
  max-height:calc(100vh / var(--ui-zoom) - 58px - 16px);
  overflow:hidden;
}

/* ---------- shared bits ---------- */
.page-pad{padding:32px 32px 64px; max-width:1180px; margin:0 auto; width:100%;}
[hidden]{display:none !important;}
.section-head{display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:18px;}
.section-head h2{font-family:var(--font-display); font-size:22px; font-weight:600;}
.section-head .sub{color:var(--text-faint); font-size:12.5px; font-family:var(--font-mono);}
.view-eyebrow{
  display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:10.5px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--accent-ink); font-weight:600;
  background:var(--accent-soft); border-radius:999px; padding:4px 10px; width:fit-content; margin-bottom:8px;
}
.eyebrow{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  color:var(--text-faint); font-weight:500;
}
.btn{
  display:inline-flex; align-items:center; gap:7px; border-radius:10px; border:1px solid var(--border-strong);
  background:var(--surface); color:var(--text); font-size:13px; font-weight:500; padding:9px 15px; cursor:pointer;
}
.btn:hover{border-color:var(--text-faint);}
.btn.primary{background:var(--accent); border-color:var(--accent); color:#fff;}
.btn.primary:hover{background:var(--accent-strong); border-color:var(--accent-strong);}
.btn.ghost{border-color:transparent; background:transparent;}
.btn.ghost:hover{background:var(--surface-2);}
.btn svg{width:14px; height:14px;}
.chip{
  display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:500;
  padding:4px 9px; border-radius:999px; background:var(--surface-2); color:var(--text-muted);
  font-family:var(--font-mono);
}
.chip.accent{background:var(--accent-soft); color:var(--accent-ink);}
.chip.accent2{background:var(--accent-2-soft); color:var(--accent-2-ink);}
.card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-m);
  box-shadow:var(--shadow-md);
}
.avatar-stack{display:flex;}
.avatar-stack .mini{
  width:24px; height:24px; border-radius:50%; border:2px solid var(--bg-elevated);
  display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:600; color:#fff;
  margin-left:-7px; flex:0 0 auto;
}
.avatar-stack .mini:first-child{margin-left:0;}


/* ===== css/home.css ===== */
/* ================= HOME ================= */
.home-pad{padding-top:36px; position:relative;}
.home-hero{display:grid; grid-template-columns:1fr 1.2fr; gap:44px; align-items:center;}
.home-hero-left{display:flex; flex-direction:column; align-items:center; text-align:center; gap:20px; padding-top:6px;}

.home-pad{overflow:hidden;}
.app.home-landing-mode .home-hero-right{display:none;}
.app.home-landing-mode .home-hero{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-height:calc(100vh / var(--ui-zoom) - 58px - 16px - 70px);
  position:relative; z-index:1;
}
.app.home-landing-mode .home-hero-left{max-width:min(860px, calc(92vw / var(--ui-zoom))); width:100%; gap:36px;}
.app.home-landing-mode .hh-sub{max-width:600px; font-size:clamp(15px, calc(1.2vw / var(--ui-zoom)), 18px);}
.app.home-landing-mode .prompt-box{
  border-radius:var(--radius-l); padding:24px 24px 18px; box-shadow:var(--shadow-lg); gap:16px;
}
.app.home-landing-mode .prompt-box textarea{font-size:17px; min-height:30px;}
.app.home-landing-mode .hh-quicklinks{gap:12px; margin-top:4px;}
.app.home-landing-mode .hh-qlink{padding:11px 20px; font-size:13.5px;}
.app.home-landing-mode .send-btn{width:38px; height:38px;}
.app.home-landing-mode .send-btn svg{width:17px; height:17px;}
.app.home-landing-mode .pill-btn{padding:7px 14px; font-size:12.5px;}
.app.home-landing-mode .prompt-actions .left{gap:10px;}
.app.home-landing-mode .home-pad::before{
  content:''; position:absolute; top:-80px; left:50%; transform:translateX(-50%);
  width:min(860px, calc(92vw / var(--ui-zoom))); height:min(860px, calc(92vw / var(--ui-zoom))); border-radius:50%;
  background:radial-gradient(circle, var(--accent-soft) 0%, transparent 68%);
  filter:blur(36px); opacity:.75; pointer-events:none; z-index:0;
  animation:homeGlow 9s ease-in-out infinite;
}
@keyframes homeGlow{ 0%,100%{transform:translateX(-50%) scale(1); opacity:.75;} 50%{transform:translateX(-50%) scale(1.08); opacity:.55;} }

.home-hero-left > *{opacity:1;}
.home-hero.home-intro .home-hero-left > *{animation:homeFadeUp .65s cubic-bezier(.16,.84,.44,1) both;}
.home-hero.home-intro .home-hero-left > *:nth-child(1){animation-delay:.02s;}
.home-hero.home-intro .home-hero-left > *:nth-child(2){animation-delay:.10s;}
.home-hero.home-intro .home-hero-left > *:nth-child(3){animation-delay:.18s;}
.home-hero.home-intro .home-hero-left > *:nth-child(4){animation-delay:.26s;}
.home-hero.home-intro .home-hero-left > *:nth-child(5){animation-delay:.34s;}
.home-hero.home-intro .home-hero-left > *:nth-child(n+6){animation-delay:.42s;}
.home-hero.home-intro .home-hero-left > .hh-features{animation:none;}   /* 카드는 개별 지연으로 */
.home-hero.home-intro .home-hero-left > .dure-stage{animation-duration:.9s;}
@keyframes homeFadeUp{ from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:translateY(0);} }

/* ---- DureSync 브랜드 히어로: 두레(둥글게 모여 함께) ---- */
.dure-stage{--S:300px; position:relative; width:var(--S); height:var(--S); margin:0 auto -8px; flex:0 0 auto;}
.app:not(.home-landing-mode) .dure-stage{--S:176px;}
.dure-ring{position:absolute; inset:0; isolation:isolate;}
.dure-ring::before{content:''; position:absolute; inset:12%; border-radius:50%; border:1.5px dashed var(--border-strong); opacity:.85; z-index:0; pointer-events:none;}
.dure-ring::after{ /* 둘레를 따라 도는 '싱크 신호' */
  content:''; position:absolute; inset:12%; border-radius:50%;
  background:conic-gradient(from 0deg, transparent 0 52%, #3B82F6 74%, #8B5CF6 90%, #22D3EE 100%);
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
          mask:radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
  animation:dureSpin 5.5s linear infinite; opacity:.9; z-index:1; pointer-events:none;   /* 도는 신호는 아이콘 '뒤'로 */
}
.dure-orbit{position:absolute; inset:0; animation:dureSpin 52s linear infinite; z-index:2;}
.dn{
  --ns:calc(var(--S) * .15); --R:calc(var(--S) * .38);
  position:absolute; left:50%; top:50%; width:var(--ns); height:var(--ns); margin:calc(var(--ns) / -2) 0 0 calc(var(--ns) / -2);
  transform:rotate(var(--a)) translateY(calc(var(--R) * -1)) rotate(calc(var(--a) * -1));
}
.dn span{
  width:100%; height:100%; border-radius:50%; background:var(--c, var(--accent)); color:#fff; font-weight:700; font-size:calc(var(--S) * .055);
  display:flex; align-items:center; justify-content:center; box-shadow:0 6px 16px rgba(15,22,41,.18), 0 0 0 3px var(--bg);
  animation:dureSpin 52s linear infinite reverse;   /* 궤도가 돌아도 글자는 똑바로 */
}
.dn-ai span{background:linear-gradient(135deg, var(--accent), var(--accent-2)); font-size:calc(var(--S) * .048);}
.dn-plus span{background:var(--surface); color:var(--text-muted); box-shadow:0 0 0 1.5px var(--border-strong) inset, 0 0 0 3px var(--bg); font-size:calc(var(--S) * .08); font-weight:500;}
.dure-core{
  position:absolute; inset:33%; border-radius:50%; background:var(--surface); display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-md), 0 0 0 1px var(--border); animation:dureBreath 4.2s ease-in-out infinite;
  z-index:3; border:none; padding:0; cursor:pointer; font:inherit; color:inherit;
  transition:box-shadow .22s ease;
}
.dure-core:hover, .dure-core:focus-visible{box-shadow:0 0 0 6px rgba(59,130,246,.18), 0 10px 28px rgba(59,130,246,.28), 0 0 0 1px var(--accent); outline:none;}
.dure-core::after{ /* 눌러서 팀원을 초대할 수 있다는 작은 + 표시 */
  content:'+'; position:absolute; right:calc(var(--S) * .012); bottom:calc(var(--S) * .02); width:calc(var(--S) * .085); height:calc(var(--S) * .085); min-width:20px; min-height:20px;
  border-radius:50%; background:var(--brand-grad); color:#fff; font-weight:800; font-size:calc(var(--S) * .06); line-height:1;
  display:flex; align-items:center; justify-content:center; box-shadow:0 4px 10px rgba(59,130,246,.4), 0 0 0 2px var(--surface);
  transition:transform .2s ease;
}
.dure-core:hover::after{transform:scale(1.18) rotate(90deg);}
.dure-core-tip{
  position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(-4px); white-space:nowrap;
  font-size:12px; font-weight:700; color:#fff; background:var(--brand-grad); padding:6px 12px; border-radius:999px;
  box-shadow:0 8px 18px rgba(59,130,246,.35); opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease;
}
.dure-core:hover .dure-core-tip, .dure-core:focus-visible .dure-core-tip{opacity:1; transform:translateX(-50%) translateY(0);}
.dn-plus{cursor:pointer;}
.dn-plus span{transition:box-shadow .2s ease, color .2s ease;}
.dn-plus:hover span{color:var(--accent); box-shadow:0 0 0 1.5px var(--accent) inset, 0 0 0 3px var(--bg), 0 6px 14px rgba(59,130,246,.3);}
.dure-core-mark{width:62%; height:62%; background-image:var(--mark-128); animation:markFloat 6s ease-in-out infinite;}
.dure-core b{font-family:var(--font-mono); font-weight:700; font-size:calc(var(--S) * .082); letter-spacing:-.03em; color:var(--text);}
.dure-core em{font-style:normal; color:var(--accent);}
.dure-chip{
  position:absolute; white-space:nowrap; font-size:11.5px; font-weight:600; color:var(--text-muted); background:var(--surface);
  border:1px solid var(--border); border-radius:999px; padding:6px 11px; box-shadow:var(--shadow-sm); animation:dureFloat 6s ease-in-out infinite;
}
.dure-chip.c1{top:6%; left:-34%; animation-delay:0s;}
.dure-chip.c2{top:44%; right:-40%; animation-delay:-2s;}
.dure-chip.c3{bottom:6%; left:-30%; animation-delay:-4s;}
.app:not(.home-landing-mode) .dure-chip{display:none;}
@keyframes dureSpin{to{transform:rotate(360deg);}}
@keyframes dureBreath{0%,100%{transform:scale(1);} 50%{transform:scale(1.045);}}
@keyframes dureFloat{0%,100%{transform:translateY(0);} 50%{transform:translateY(-8px);}}

.hh-brand{
  font-family:var(--font-brand); font-weight:800; line-height:1.02; letter-spacing:-.05em; color:var(--text);
  font-size:clamp(44px, calc(7vw / var(--ui-zoom)), 84px); display:flex; justify-content:center; align-items:baseline;
}
.app:not(.home-landing-mode) .hh-brand{font-size:clamp(36px, calc(4.6vw / var(--ui-zoom)), 62px);}
.hh-brand .lt{display:inline-block;}
.hh-brand .sy{color:var(--text);}
.hh-tagline{font-size:12px; letter-spacing:.34em; text-transform:uppercase; color:var(--text-faint); margin:-6px auto 0; font-weight:500;}
.hh-tagline i{font-style:normal; color:var(--accent); margin:0 .2em;}
.hh-brand .slash{color:var(--accent); font-family:var(--font-mono); font-weight:600; margin-left:.04em;}
.home-hero.home-intro .hh-brand .lt{animation:ltIn .8s cubic-bezier(.2,.9,.3,1.25) both; animation-delay:calc(var(--i) * 60ms + 160ms);}
.home-hero.home-intro .hh-brand .slash{animation:ltIn .8s cubic-bezier(.2,.9,.3,1.25) both, slashGlow 3.2s ease-in-out 1.6s infinite; animation-delay:calc(var(--i) * 60ms + 160ms), 1.6s;}
@keyframes ltIn{from{opacity:0; transform:translateY(.55em) rotate(-8deg) scale(.9);} to{opacity:1; transform:none;}}
@keyframes slashGlow{0%,100%{text-shadow:0 0 0 transparent;} 50%{text-shadow:0 0 .5em rgba(59,130,246,.55);}}
.hh-tag{font-size:clamp(17px, calc(1.7vw / var(--ui-zoom)), 24px); font-weight:600; color:var(--text); letter-spacing:-.01em; margin:-2px auto 0;}
.hh-tag b{color:var(--accent);}
.hh-tag-en{font-size:13.5px; color:var(--text-faint); margin:-8px auto 0; max-width:520px;}
.hh-rotor{display:flex; align-items:baseline; justify-content:center; gap:8px; font-size:15px; color:var(--text-muted); margin:0 auto;}
.rot{position:relative; display:inline-block; height:1.6em; width:6.4em; overflow:hidden; text-align:left;}
.rot i{position:absolute; left:0; top:0; font-style:normal; font-weight:700; color:var(--accent-ink); opacity:0; transform:translateY(100%); animation:rotWord 12.5s infinite;}
.rot i:nth-child(1){animation-delay:0s;} .rot i:nth-child(2){animation-delay:2.5s;} .rot i:nth-child(3){animation-delay:5s;}
.rot i:nth-child(4){animation-delay:7.5s;} .rot i:nth-child(5){animation-delay:10s;}
@keyframes rotWord{0%{opacity:0; transform:translateY(100%);} 4%,17%{opacity:1; transform:translateY(0);} 21%,100%{opacity:0; transform:translateY(-100%);}}

.hh-features{display:none; width:100%; grid-template-columns:repeat(4, minmax(0,1fr)); gap:12px; margin-top:6px;}
.app.home-landing-mode .hh-features{display:grid;}
.hh-feat{
  display:flex; flex-direction:column; align-items:flex-start; gap:6px; text-align:left; cursor:pointer; padding:14px 14px 15px;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-m); color:var(--text); font-family:inherit;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.hh-feat:hover{transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:var(--accent);}
.hh-feat .fi{font-size:22px; transition:transform .25s ease;}
.hh-feat:hover .fi{transform:scale(1.18) rotate(-6deg);}
.hh-feat b{font-size:13.5px;}
.hh-feat small{font-size:11.5px; color:var(--text-muted); line-height:1.5;}
.home-hero.home-intro .hh-feat{animation:homeFadeUp .7s cubic-bezier(.16,.84,.44,1) both; animation-delay:calc(var(--i) * 90ms + 700ms);}
@media (max-width:900px){ .hh-features{grid-template-columns:repeat(2, minmax(0,1fr));} .dure-chip{display:none;} }
@media (max-width:560px){ .dure-stage{--S:230px !important;} .hh-features{grid-template-columns:1fr 1fr; gap:8px;} }
.app.chat-docked .dure-stage{--S:200px;}
.app.chat-docked .dure-chip{display:none;}
.app.chat-docked .hh-features{grid-template-columns:repeat(2, minmax(0,1fr));}
@media (prefers-reduced-motion: reduce){
  .dure-orbit, .dn span, .dure-ring::after, .dure-core, .dure-chip, .rot i, .hh-feat, .hh-brand .lt{animation:none !important;}
  .rot i:first-child{opacity:1; transform:none;}
}
.hh-eyebrow{
  display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:11px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--accent-ink); font-weight:600;
  background:var(--accent-soft); border-radius:999px; padding:5px 11px; width:fit-content;
}
.hh-title{font-family:var(--font-body); font-weight:700; font-size:clamp(32px, calc(4.4vw / var(--ui-zoom)), 58px); line-height:1.16; letter-spacing:-.02em; color:var(--text); text-wrap:balance;}
.hh-title .accent-line{display:block; color:var(--accent);}
.hh-sub{color:var(--text-muted); font-size:clamp(14.5px, calc(1.1vw / var(--ui-zoom)), 17px); max-width:540px; margin:0 auto;}

.prompt-box{
  background:var(--surface); border:1px solid var(--border-strong); border-radius:var(--radius-m);
  padding:16px 16px 12px; display:flex; flex-direction:column; gap:10px;
}
.prompt-box textarea{
  border:none; resize:none; background:none; font-size:15px; min-height:26px; width:100%; outline:none;
  font-family:var(--font-body); color:var(--text);
}
.prompt-box textarea::placeholder{color:var(--text-faint);}
.prompt-actions{display:flex; align-items:center; justify-content:space-between;}
.prompt-actions .left{display:flex; gap:8px;}
.pill-btn{
  border:1px solid var(--border); background:var(--surface-2); border-radius:999px; padding:6px 12px;
  font-size:12px; color:var(--text-muted); display:flex; align-items:center; gap:5px; cursor:pointer;
}
.pill-btn:hover{color:var(--text); border-color:var(--border-strong);}
.send-btn{
  width:32px; height:32px; border-radius:50%; background:var(--brand-grad); border:none; color:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer; flex:0 0 auto;
}
.send-btn:hover{filter:brightness(1.08); transform:translateY(-1px);}
.send-btn svg{width:15px; height:15px;}

.hh-quicklinks{display:flex; gap:8px; flex-wrap:wrap; justify-content:center;}
.hh-qlink{
  display:inline-flex; align-items:center; gap:5px; border:1px solid var(--border); background:var(--surface);
  border-radius:999px; padding:8px 14px; font-size:12.5px; color:var(--text-muted); cursor:pointer; font-weight:500;
}
.hh-qlink:hover{border-color:var(--border-strong); color:var(--text); background:var(--surface-2);}

.home-hero-right{display:flex; flex-direction:column; gap:14px;}
.home-section{width:100%; display:flex; flex-direction:column; gap:14px;}
.home-section .head{display:flex; align-items:center; justify-content:space-between;}
.home-section .head h3{font-size:12.5px; font-weight:600; color:var(--text-muted); text-transform:uppercase; letter-spacing:.08em; font-family:var(--font-mono);}
.home-section .head a{font-size:12px; color:var(--accent-ink); font-weight:500; cursor:pointer;}

.proj-row{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px;}
.proj-empty{grid-column:1/-1; color:var(--text-faint); font-size:12.5px; text-align:center; padding:26px 12px;}
.proj-card{padding:16px; display:flex; flex-direction:column; gap:12px; cursor:pointer; min-width:0;}
.proj-card .meta{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.proj-card:hover{border-color:var(--border-strong);}
.proj-card .top{display:flex; align-items:flex-start; justify-content:space-between;}
.proj-card .stackicon{width:32px; height:32px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:11px; font-weight:600; color:#fff;}
.proj-card h4{font-size:14px; font-weight:600;}
.proj-card .meta{font-size:11.5px; color:var(--text-faint); font-family:var(--font-mono);}
.proj-card .bottom{display:flex; align-items:center; justify-content:space-between;}

.sched-item{display:flex; align-items:center; gap:10px; font-size:12.5px; padding:6px 0; border-top:1px solid var(--border);}
.sched-item:first-of-type{border-top:none;}
.sched-item .dot{width:6px; height:6px; border-radius:50%; flex:0 0 auto;}
.sched-item .t{font-family:var(--font-mono); font-size:11px; color:var(--text-faint); flex:0 0 44px;}
.feedback-mini{display:flex; gap:10px; align-items:flex-start; font-size:12.5px;}
.feedback-mini .q{color:var(--text-muted);  font-family:var(--font-display);}

.widget-picker-wrap{position:relative;}
.widget-picker{
  position:absolute; top:40px; right:0; width:280px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-m); box-shadow:var(--shadow-lg); z-index:60; display:none; flex-direction:column; padding:8px; gap:2px;
}
.widget-picker.open{display:flex;}
.wp-head{font-size:11px; color:var(--text-faint); padding:8px 8px 6px;}
.wp-item{display:flex; align-items:center; gap:9px; padding:7px 8px; border-radius:9px;}
.wp-item:hover{background:var(--surface-2);}
.wp-ic{width:28px; height:28px; border-radius:8px; background:var(--surface-2); display:flex; align-items:center; justify-content:center; font-size:14px; flex:0 0 auto;}
.wp-info{display:flex; flex-direction:column; flex:1; min-width:0;}
.wp-info b{font-size:12.5px;}
.wp-info span{font-size:10.5px; color:var(--text-faint);}
.wp-toggle{border:1px solid var(--border-strong); background:var(--surface); font-size:11px; padding:5px 10px; border-radius:999px; cursor:pointer; flex:0 0 auto; color:var(--text-muted);}
.wp-toggle.added{background:var(--text); color:var(--bg-elevated); border-color:var(--text);}

.widget-dyn-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; width:100%;}
.dyn-widget{position:relative; padding:16px; display:flex; flex-direction:column; gap:10px;}
.dyn-widget.wide{grid-column:span 2;}
.dyn-close{
  position:absolute; top:10px; right:10px; width:22px; height:22px; border-radius:50%; border:none;
  background:var(--surface-2); color:var(--text-faint); cursor:pointer; display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .15s;
}
.dyn-widget:hover .dyn-close{opacity:1;}
.dyn-close:hover{background:var(--surface-3); color:var(--text);}
.dyn-close svg{width:11px; height:11px;}

.widget-dyn-grid.bento{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));}
.widget-dyn-grid.bento .dyn-widget{border-radius:var(--radius-l); box-shadow:var(--shadow-md); border-color:var(--border-strong);}
.widget-dyn-grid.bento .dyn-widget.wide{
  background:linear-gradient(155deg, var(--accent-soft), var(--surface) 65%);
  border-color:var(--accent-soft);
}
.widget-dyn-grid.bento .dyn-widget.wide h4{color:var(--accent-ink);}
.dyn-widget-head{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.proj-nav{display:flex; align-items:center; gap:6px; margin-right:20px;}
.proj-nav-btn{
  width:24px; height:24px; border-radius:50%; border:1px solid var(--border-strong); background:var(--surface);
  color:var(--text-muted); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:15px; line-height:1; padding:0;
}
.proj-nav-btn:hover:not(:disabled){background:var(--surface-2); color:var(--text);}
.proj-nav-btn:disabled{opacity:.35; cursor:default;}
.proj-page-label{font-family:var(--font-mono); font-size:10.5px; color:var(--text-faint);}
.meta-file{font-size:11px; color:var(--text-faint); font-family:var(--font-mono); margin-top:3px;}


/* 궤도 위 팀원 · 비어 있는 자리 · 말풍선 */
.dn span{position:relative;}
.dn span[data-pst]::after{content:''; position:absolute; right:-1px; bottom:-1px; width:30%; height:30%; border-radius:50%; border:2px solid var(--bg); background:#94A3B8;}
.dn span[data-pst="online"]::after{background:#22C55E;} .dn span[data-pst="away"]::after{background:#F59E0B;} .dn span[data-pst="dnd"]::after{background:#EF4444;}
.dn-plus{cursor:pointer;} .dn-plus span{border:1.5px dashed var(--border-strong); box-shadow:0 0 0 3px var(--bg); transition:transform .2s, color .2s, border-color .2s;}
.dn-plus:hover span, .dn-plus:focus-visible span{color:var(--accent-ink); border-color:var(--accent); transform:scale(1.1);} .dn-plus:focus-visible{outline:none;}
.dn-plus.ghost{opacity:.45;} .dn-plus.ghost:hover{opacity:1;}
.dure-chip[hidden]{display:none;} .dure-chip.click{cursor:pointer; transition:border-color .15s, color .15s;} .dure-chip.click:hover{border-color:var(--accent); color:var(--text);}

/* ===== css/workspace.css ===== */
/* ================= WORKSPACE ================= */
.ws-projectbar{
  height:46px; flex:0 0 auto; display:flex; align-items:center; gap:10px; padding:0 18px;
  border-bottom:1px solid var(--border); background:var(--bg-elevated); font-size:13px;
}
.crumb{color:var(--text-faint); font-family:var(--font-mono); font-size:12px;}
.crumb b{color:var(--text); font-weight:600;}
.ws-projectbar .members{margin-left:auto; display:flex; align-items:center; gap:10px;}

.ws-shell{flex:1 1 auto; display:flex; min-height:0; height:calc(100% - 46px); overflow:hidden; position:relative;}
.ws-empty-state{
  position:absolute; inset:0; z-index:50;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; gap:10px; padding:40px; background:var(--bg-elevated);
  border:none !important;
}
.ws-empty-state[hidden]{ display:none !important; }
.ws-shell.is-empty .ws-resizer-v, .ws-shell.is-empty .ws-resizer-h{ display:none !important; }
.ws-shell.is-empty .filetree{ border-right:none !important; }
.ws-empty-icon{font-size:34px;}
.ws-empty-state h3{font-family:var(--font-display); font-size:19px; font-weight:600;}
.ws-empty-state p{color:var(--text-muted); font-size:13px; max-width:380px; line-height:1.55;}
.ws-empty-actions{display:flex; gap:8px; margin-top:8px;}
.filetree{
  width:230px; min-width:160px; max-width:550px; flex:0 0 auto; border-right:1px solid var(--border); background:var(--surface-2);
  display:flex; flex-direction:column; overflow:hidden; user-select:none;
}
.filetree.collapsed{
  width:0 !important; min-width:0 !important; padding:0 !important; border-right:none !important; overflow:hidden !important;
}
.filetree-head{
  display:flex; align-items:center; justify-content:space-between; padding:10px 10px 6px; border-bottom:1px solid var(--border); flex:0 0 auto;
}
.filetree-head .lbl{font-family:var(--font-mono); font-size:11px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.05em; font-weight:600;}
.filetree-content{flex:1 1 auto; overflow-y:auto; padding:8px 8px 16px;}
.ftree-node{display:flex; align-items:center; gap:7px; padding:5px 8px; border-radius:7px; font-size:12.5px; cursor:pointer; color:var(--text-muted);}
.ftree-node:hover{background:var(--surface-3);}
.ftree-node.file.active{background:var(--accent-soft); color:var(--accent-ink); font-weight:500;}
.ftree-node svg{width:13px; height:13px; flex:0 0 auto;}
.ftree-node.folder{color:var(--text); font-weight:500;}
.ftree-children{margin-left:14px; border-left:1px dashed var(--border-strong); padding-left:4px;}
.ftree-node .fname{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.ftree-node .fdot{width:7px; height:7px; border-radius:50%; flex:0 0 auto;}
.ftree-node .fmod{width:6px; height:6px; border-radius:50%; background:var(--accent); flex:0 0 auto;}
.ftree-node .fact{display:none; gap:2px; margin-left:auto; flex:0 0 auto;}
.ftree-node:hover .fact{display:flex;}
.ftree-node:hover .fmod{display:none;}
.ftree-node .fact button{border:none; background:none; color:var(--text-faint); cursor:pointer; padding:2px 3px; border-radius:5px; display:flex;}
.ftree-node .fact button:hover{background:var(--surface-3); color:var(--text);}
.ftree-node .fact button.del:hover{color:var(--accent);}
.ftree-node.confirm{background:var(--accent-soft); color:var(--accent-ink); cursor:default;}
.ftree-node.confirm .cbtn{border:none; border-radius:6px; padding:2px 8px; font-size:11px; font-weight:600; cursor:pointer;}
.ftree-node.confirm .cbtn.yes{background:var(--accent); color:#fff;}
.ftree-node.confirm .cbtn.no{background:transparent; color:var(--text-muted);}
.ftree-node .chev{transition:transform .12s; color:var(--text-faint);}
.ftree-node.folder.closed .chev{transform:rotate(-90deg);}
.ftree-node.folder .fcnt{margin-left:auto; font-size:10px; color:var(--text-faint); font-family:var(--font-mono);}
.ft-rename{flex:1; min-width:0; border:1px solid var(--accent); border-radius:6px; background:var(--surface); color:var(--text); font-size:12px; padding:2px 6px; outline:none; font-family:var(--font-code);}
.pm-list{display:flex; flex-direction:column; gap:6px; max-height:calc(46vh / var(--ui-zoom)); overflow-y:auto; padding:2px;}
.pm-row{display:flex; align-items:center; gap:11px; padding:10px 12px; background:var(--surface-2); border-radius:10px; font-size:13px; cursor:pointer; border:1px solid transparent; transition:border-color .12s, background .12s;}
.pm-row:hover{border-color:var(--border-strong);}
.pm-row.sel{background:var(--accent-soft); border-color:var(--accent);}
.pm-row.locked{opacity:.55; cursor:not-allowed;}
.pm-check{width:18px; height:18px; border-radius:6px; border:1.5px solid var(--border-strong); background:var(--surface); flex:0 0 auto; display:flex; align-items:center; justify-content:center; color:#fff; transition:all .12s;}
.pm-row.sel .pm-check, .pm-all.sel .pm-check{background:var(--accent); border-color:var(--accent);}
.pm-check svg{width:12px; height:12px; opacity:0;}
.pm-row.sel .pm-check svg, .pm-all.sel .pm-check svg{opacity:1;}
.pm-row .pm-name{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:500;}
.pm-row .pm-meta{font-size:11px; color:var(--text-faint); font-family:var(--font-mono); flex:0 0 auto;}
.pm-all{display:flex; align-items:center; gap:11px; padding:4px 12px; font-size:12px; color:var(--text-muted); cursor:pointer; user-select:none;}
.pm-foot{display:flex; align-items:center; gap:10px; justify-content:space-between; min-height:40px;}
.pm-foot .pm-count{font-size:12px; color:var(--text-muted);}
.pm-trash{display:inline-flex; align-items:center; gap:7px; border:none; border-radius:10px; padding:9px 15px; font-size:13px; font-weight:600; cursor:pointer; background:var(--accent); color:#fff;}
.pm-trash:disabled{background:var(--surface-3); color:var(--text-faint); cursor:not-allowed;}
.pm-confirm{display:flex; flex-direction:column; gap:8px; width:100%; background:var(--accent-soft); color:var(--accent-ink); border-radius:12px; padding:12px 14px; font-size:12.5px; line-height:1.5;}
.pm-confirm .row{display:flex; gap:8px; justify-content:flex-end;}
.pm-confirm .cbtn{border:none; border-radius:9px; padding:7px 14px; font-size:12.5px; font-weight:600; cursor:pointer;}
.pm-confirm .cbtn.yes{background:var(--accent); color:#fff;}
.pm-confirm .cbtn.no{background:transparent; color:var(--text-muted);}
.ft-search{padding:8px 10px 2px; flex:0 0 auto;}
.ft-search input, .ft-newrow input{
  width:100%; border:1px solid var(--border); background:var(--surface); border-radius:8px; padding:6px 9px; font-size:12px; outline:none; color:var(--text); font-family:var(--font-body);
}
.ft-search input:focus, .ft-newrow input:focus{border-color:var(--accent);}
.ft-newrow{padding:6px 10px 2px; flex:0 0 auto;}
.ft-newrow input{border-color:var(--accent); font-family:var(--font-mono);}
.ft-empty{padding:22px 12px; font-size:12px; color:var(--text-muted); text-align:center; line-height:1.6;}
.etab .etab-mod{width:8px; height:8px; border-radius:50%; background:var(--accent); flex:0 0 auto; margin-left:4px;}
.etab .etab-mod + .etab-close{display:none;}
.etab:hover .etab-mod{display:none;}
.etab:hover .etab-mod + .etab-close{display:inline-flex;}
.ws-conflict{
  flex:0 0 auto; display:flex; align-items:center; gap:10px; padding:8px 14px; background:var(--accent-soft); color:var(--accent-ink);
  font-size:12px; border-bottom:1px solid var(--border);
}
.ws-conflict[hidden]{display:none !important;}
.ws-conflict .btn{padding:4px 10px; font-size:11.5px; border-radius:8px;}
.ws-conflict span{flex:1;}
.sb-save{display:inline-flex; align-items:center; gap:5px;}
.sb-save.dirty{color:#fff; font-weight:700; background:rgba(0,0,0,.22); padding:0 7px; border-radius:6px;}
.ws-empty-actions .btn{padding:10px 16px;}
.ws-presence{display:inline-flex; align-items:center; gap:8px;}

.ws-resizer-v{
  width:6px; flex:0 0 6px; cursor:col-resize; background:var(--border); transition:background .15s; z-index:25; position:relative; touch-action:none; user-select:none;
}
.ws-resizer-v:hover, .ws-resizer-v.dragging{background:var(--accent); cursor:col-resize;}
.ws-resizer-h{
  height:6px; flex:0 0 6px; cursor:row-resize; background:var(--border); transition:background .15s; z-index:25; position:relative; border-top:1px solid var(--border); touch-action:none; user-select:none;
}
.ws-resizer-h:hover, .ws-resizer-h.dragging{background:var(--accent); cursor:row-resize;}


.side-tabs{position:fixed; top:50%; right:0; transform:translateY(-50%); z-index:65; display:flex; flex-direction:column; gap:6px; align-items:flex-end;}
.chat-toggle-tab{
  position:static;
  background:var(--accent); color:#fff; border:none; padding:12px 8px; border-radius:10px 0 0 10px;
  cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:6px; box-shadow:var(--shadow-md);
  font-size:11px; font-weight:600;
}
.chat-toggle-tab svg{width:16px; height:16px;}
.call-toggle-tab{
  background:var(--accent-2); color:#fff; border:none; padding:10px 8px; border-radius:10px 0 0 10px; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; gap:6px; box-shadow:var(--shadow-md); position:relative;
}
.call-toggle-tab svg{width:16px; height:16px;}
.call-toggle-tab .badge{background:#fff; color:var(--accent-2-ink); border-radius:50%; width:16px; height:16px; font-size:9.5px; font-weight:700; display:flex; align-items:center; justify-content:center;}
.call-toggle-tab.live{animation:callPulse 1.8s ease-in-out infinite;}
@keyframes callPulse{0%,100%{box-shadow:var(--shadow-md);}50%{box-shadow:0 0 0 4px rgba(139,92,246,.28), var(--shadow-md);}}
.call-panel{
  position:fixed; right:56px; top:50%; width:300px; z-index:80; transform:translate(14px,-50%); opacity:0; pointer-events:none;
  background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--radius-l); box-shadow:var(--shadow-lg);
  padding:14px; display:flex; flex-direction:column; gap:10px; transition:opacity .2s ease, transform .2s ease, right .26s ease;
}
.call-panel.open{opacity:1; pointer-events:auto; transform:translate(0,-50%);}
body.chat-open .call-panel{right:calc(min(var(--chat-w), 88vw) + 12px);}
@media (max-width:520px){ .call-panel{left:8px; right:8px !important; width:auto;} }
.call-head{display:flex; align-items:center; justify-content:space-between; gap:8px;}
.call-title{display:flex; flex-direction:column; gap:2px; min-width:0;}
.call-title b{font-size:14px;}
.call-title span{font-size:11.5px; color:var(--text-faint); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.call-status{font-size:12px; color:var(--text-muted); line-height:1.5;}
.call-panel{max-height:min(82vh, 680px); overflow-y:auto;}
.call-rooms{display:flex; flex-direction:column; gap:8px;}
.call-room{border:1px solid var(--border); border-radius:14px; background:var(--surface); overflow:hidden;}
.call-room.joined{border-color:var(--accent-2); box-shadow:0 0 0 1px var(--accent-2) inset;}
.call-room-head{display:flex; align-items:center; gap:8px; padding:8px 10px;}
.call-room-head .rn{flex:1; min-width:0; font-size:13px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.call-room-head .tag{font-size:10px; padding:1px 6px; border-radius:999px; background:var(--accent-2-soft); color:var(--accent-2-ink); font-weight:600; white-space:nowrap;}
.call-room-head .cnt{font-size:11px; color:var(--text-faint); white-space:nowrap;}
.call-room-btn{font:inherit; font-size:12px; padding:3px 10px; border-radius:999px; border:1px solid var(--accent-2); background:var(--surface); color:var(--accent-2-ink); cursor:pointer; white-space:nowrap;}
.call-room-btn:hover{background:var(--accent-2); color:#fff;}
.call-room-btn:disabled{opacity:.5; cursor:default;}
.call-room-del{border:none; background:none; cursor:pointer; color:var(--text-faint); font-size:13px; padding:2px 4px;}
.call-room-del:hover{color:#D64545;}
.call-room-people{display:flex; flex-direction:column; gap:4px; padding:0 8px 8px;}
.call-room-people:empty{display:none;}
.call-create-btn{width:100%; font:inherit; font-size:12.5px; padding:7px; border:1px dashed var(--border-strong); border-radius:12px; background:none; color:var(--text-muted); cursor:pointer;}
.call-create-btn:hover{border-color:var(--accent-2); color:var(--accent-2-ink);}
.call-create-form{display:flex; gap:6px;}
.call-create-form input{flex:1; min-width:0; padding:7px 10px; border:1px solid var(--border-strong); border-radius:10px; font:inherit; font-size:13px; background:var(--surface); color:var(--text);}
.call-create-form[hidden], .call-create[hidden]{display:none;}
.call-note{font-size:11px; color:var(--text-faint); line-height:1.5;}
.call-p{display:flex; align-items:center; gap:10px; padding:5px 8px; border-radius:10px; background:var(--surface-2);}
.call-p .av{width:30px; height:30px; border-radius:50%; color:#fff; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; flex:0 0 auto; transition:box-shadow .12s ease;}
.call-p.speaking .av{box-shadow:0 0 0 3px #3FB950;}
.call-p .nm{flex:1; min-width:0; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.call-p .st{font-size:11px; color:var(--text-faint); white-space:nowrap;}
.call-p.waiting{opacity:.7;}
.call-ctrl{display:flex; gap:8px;}
.call-ctrl .btn{flex:1; justify-content:center;}
.call-btn-join{background:var(--accent-2); color:#fff; border:none;}
.call-btn-leave{background:#D64545; color:#fff; border:none;}
.call-btn-mute.off{background:var(--surface-3);}
.call-foot{font-size:11px; color:var(--text-faint); line-height:1.6;}
.call-q.good{color:#2E9E5B;} .call-q.mid{color:#B08B2E;} .call-q.bad{color:#D64545;}
.chat-toggle-tab .badge{background:#fff; color:var(--accent-strong); border-radius:50%; width:16px; height:16px; font-size:9.5px; display:flex; align-items:center; justify-content:center;}

:root{--chat-w:360px;}
/* 채팅을 열면 화면을 덮지 않고, 본문이 왼쪽으로 줄어들어 옆에 나란히 붙는다 (넓은 화면) */
.app.chat-docked .view{margin-right:var(--chat-w); transition:margin-right .26s ease;}
.app.chat-docked .hh-brand{font-size:clamp(34px, calc(4.2vw / var(--ui-zoom)), 52px);}
.app.chat-docked .hh-title{font-size:clamp(26px, calc(3.4vw / var(--ui-zoom)), 44px);}
.app.chat-docked .home-hero{gap:22px;}
.app .view{transition:margin-right .26s ease;}
.app.chat-docked ~ .chat-toggle-tab, body.chat-docked .chat-toggle-tab{right:var(--chat-w);}
.chat-panel{
  position:fixed; top:66px; right:0; bottom:0; width:var(--chat-w); max-width:100vw; z-index:75;
  border-left:1px solid var(--border); background:var(--bg-elevated); box-shadow:var(--shadow-lg);
  transform:translateX(100%); transition:transform .26s ease;
}
.chat-panel.open{transform:translateX(0);}
.chat-inner{width:100%; height:100%; display:flex; flex-direction:column;}
.chat-head{display:flex; align-items:center; gap:10px; padding:13px 14px; border-bottom:1px solid var(--border); flex:0 0 auto;}
.chat-head .gavatar{width:36px; height:36px; border-radius:50%; background:linear-gradient(150deg,var(--accent),#ffb199); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:13px; flex:0 0 auto;}
.chat-head .info h4{font-size:13px; font-weight:600;}
.chat-head .info span{font-size:11px; color:var(--text-faint);}
.chat-head .x{margin-left:0;}
.chat-head .info{flex:1; min-width:0; display:flex; flex-direction:column;}
.chat-proj-sel{border:none; background:transparent; font-weight:600; font-size:13px; color:var(--text); max-width:100%; cursor:pointer; padding:0; font-family:inherit; text-overflow:ellipsis;}
.chat-proj-sel:focus{outline:none;}
.chat-empty{margin:auto; text-align:center; color:var(--text-faint); font-size:12.5px; line-height:1.7; padding:20px;}
.sys-bubble .row{display:flex; gap:8px; align-items:center;}
.sys-bubble button.ghost{background:transparent; color:var(--text-faint); padding:5px 4px;}
.sys-bubble button:disabled{background:var(--text-faint); cursor:default;}
.sys-bubble .who{font-size:10.5px; color:var(--text-faint);}

.ai-guide{flex:0 0 auto; margin:10px 12px 0; border:1px solid var(--border); background:var(--accent-2-soft); color:var(--accent-2-ink); border-radius:12px; overflow:hidden;}
.ai-guide-head{display:flex; align-items:center; gap:7px; width:100%; border:none; background:none; color:inherit; padding:9px 12px; font-size:12px; font-weight:700; cursor:pointer; text-align:left;}
.ai-guide-head .chev{margin-left:auto; transition:transform .15s;}
.ai-guide.collapsed .ai-guide-head .chev{transform:rotate(-90deg);}
.ai-guide-body{padding:0 12px 11px; font-size:11.8px; line-height:1.6; color:var(--text); max-height:230px; overflow-y:auto;}
.ai-guide.collapsed .ai-guide-body{display:none;}
.ai-guide-body h5{font-size:10.5px; font-family:var(--font-mono); letter-spacing:.04em; text-transform:uppercase; color:var(--accent-2-ink); margin:9px 0 4px;}
.ai-guide-body ul{margin:0; padding-left:15px; display:flex; flex-direction:column; gap:3px;}
.ai-guide-body code{font-family:var(--font-code); font-size:11px; background:var(--surface); padding:1px 5px; border-radius:5px;}
.ai-chip-row{display:flex; flex-wrap:wrap; gap:5px; margin-top:4px;}
.ai-chip{border:1px solid var(--border-strong); background:var(--surface); color:var(--text); border-radius:999px; padding:3px 9px; font-size:11px; cursor:pointer;}
.ai-chip:hover{border-color:var(--accent); color:var(--accent-ink);}
.ai-act{display:flex; align-items:center; gap:8px; margin-top:4px; font-size:12px; color:var(--text-muted);}
.ai-act-lbl{flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.ai-act-btn{font:inherit; font-size:12px; padding:3px 10px; border-radius:999px; border:1px solid var(--border); background:var(--surface); color:var(--text); cursor:pointer;}
.ai-act-btn:hover{border-color:var(--accent);}
.ai-act-btn.danger{background:var(--accent); border-color:var(--accent); color:#fff;}
.ai-act-btn:disabled{opacity:.5; cursor:default;}
.ai-act-state{font-size:12px; color:var(--text-faint);}
.ai-confirm{margin-top:6px; padding:8px 10px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2);}
.ai-confirm-t{font-size:12.5px; font-weight:600; margin-bottom:6px; word-break:break-word;}
.ai-confirm-r{display:flex; gap:6px;}
.ai-guide-link{border:none; background:none; color:var(--accent-ink); text-decoration:underline; cursor:pointer; padding:0; font-size:11.5px;}
.chat-scroll{flex:1 1 auto; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:12px;}
.msg-row{display:flex; gap:8px; align-items:flex-end;}
.msg-row.me{flex-direction:row-reverse;}
.msg-row .mavatar.ai-av{background:var(--surface) var(--mark-56) center / 62% no-repeat; box-shadow:0 0 0 1px var(--border);}
.msg-row .mavatar{width:24px; height:24px; border-radius:50%; flex:0 0 auto; display:flex; align-items:center; justify-content:center; color:#fff; font-size:9.5px; font-weight:700;}
.msg-col{display:flex; flex-direction:column; gap:3px; max-width:75%;}
.msg-row.me .msg-col{align-items:flex-end;}
.msg-name{font-size:10.5px; color:var(--text-faint); padding:0 4px;}
.bubble{padding:8px 12px; border-radius:16px; font-size:12.8px; line-height:1.5; background:var(--surface-2); color:var(--text);}
.msg-row.me .bubble{background:var(--accent); color:#fff; border-bottom-right-radius:4px;}
.msg-row:not(.me) .bubble{border-bottom-left-radius:4px;}
.msg-time{font-size:9.5px; color:var(--text-faint); padding:0 4px;}
.sys-bubble{
  align-self:center; max-width:92%; background:var(--accent-2-soft); color:var(--accent-2-ink);
  border-radius:12px; padding:9px 12px; font-size:12px; display:flex; flex-direction:column; gap:7px;
}
.sys-bubble .lbl{display:flex; align-items:center; gap:5px; font-weight:600; font-family:var(--font-mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.03em;}
.sys-bubble button{align-self:flex-start; background:var(--accent-2); color:#fff; border:none; padding:5px 11px; border-radius:999px; font-size:11px; font-weight:600; cursor:pointer;}
.typing-dots{display:flex; gap:3px; padding:9px 12px; background:var(--surface-2); border-radius:16px; border-bottom-left-radius:4px; width:fit-content;}
.typing-dots span{width:5px; height:5px; border-radius:50%; background:var(--text-faint); animation:blink 1.2s infinite ease-in-out;}
.typing-dots span:nth-child(2){animation-delay:.15s;}
.typing-dots span:nth-child(3){animation-delay:.3s;}
@keyframes blink{0%,80%,100%{opacity:.25;} 40%{opacity:1;}}

.chat-input{display:flex; align-items:center; gap:8px; padding:12px; border-top:1px solid var(--border); flex:0 0 auto;}
.chat-input input{flex:1 1 auto; border:1px solid var(--border); background:var(--surface-2); border-radius:999px; padding:9px 14px; font-size:12.8px; outline:none;}
.chat-input input:focus{border-color:var(--border-strong);}
.chat-input button{width:34px; height:34px; border-radius:50%; background:var(--accent); border:none; color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; flex:0 0 auto;}
.chat-input button svg{width:15px; height:15px;}


/* ===== css/notes.css ===== */
/* ================= NOTES ================= */
.mode-switch{display:flex; background:var(--surface-2); border-radius:10px; padding:3px; gap:2px;}
.mode-switch button{border:none; background:none; padding:8px 16px; border-radius:8px; font-size:12.5px; font-weight:500; color:var(--text-muted); cursor:pointer;}
.mode-switch button.active{background:var(--bg-elevated); color:var(--text); box-shadow:var(--shadow-sm);}

.summary-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:8px;}
.stat-mini{background:var(--surface-2); border-radius:10px; padding:10px; display:flex; flex-direction:column; gap:2px;}
.stat-mini b{font-size:19px; font-family:var(--font-mono); font-variant-numeric:tabular-nums;}
.stat-mini span{font-size:10.5px; color:var(--text-faint);}
.sum-block h5{font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--text-faint); font-family:var(--font-mono); margin-bottom:8px; font-weight:600;}
.sum-list{display:flex; flex-direction:column; gap:7px;}
.sum-list .item{display:flex; align-items:flex-start; gap:7px; font-size:12.5px;}
.sum-list .item svg{width:13px; height:13px; margin-top:2px; flex:0 0 auto;}

.note-compose2{padding:20px; display:flex; flex-direction:column; gap:14px;}
.attendee-picker{display:flex; gap:8px; flex-wrap:wrap;}
.note-toolbar{display:flex; align-items:center; gap:6px; margin-bottom:8px; flex-wrap:wrap;}
.note-toolbar button{border:1px solid var(--border); background:var(--surface); padding:6px 11px; border-radius:8px; font-size:11.5px; color:var(--text-muted); cursor:pointer;}
.note-toolbar button:hover{background:var(--surface-2); color:var(--text);}
.note-toolbar-hint{font-size:10.5px; color:var(--text-faint); margin-left:4px;}
.note-editor-wrap{position:relative;}
.note-editor{
  min-height:240px; border:1px solid var(--border); border-radius:var(--radius-m); background:var(--surface);
  padding:18px 20px; font-size:14px; line-height:1.7; outline:none; color:var(--text);
}
.note-editor:focus{border-color:var(--border-strong);}
.note-editor:empty:before{content:attr(data-placeholder); color:var(--text-faint);}
.note-editor h3{font-family:var(--font-display); font-size:17px; font-weight:600; margin:14px 0 6px;}
.note-editor ul{margin:6px 0 6px 20px; padding:0;}
.note-editor hr{border:none; border-top:1px solid var(--border); margin:14px 0;}
.slash-menu{
  position:absolute; top:8px; left:8px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-m); box-shadow:var(--shadow-lg); padding:6px; display:none; flex-direction:column; gap:2px;
  z-index:10; min-width:170px;
}
.slash-menu.open{display:flex;}
.slash-menu button{border:none; background:none; text-align:left; padding:8px 10px; border-radius:8px; font-size:12.5px; cursor:pointer; color:var(--text);}
.slash-menu button:hover{background:var(--surface-2);}
.note-footer{display:flex; justify-content:flex-end; gap:8px;}

.mdoc-table{padding:0; overflow-x:auto;}
.mdoc-chk-cell{display:none; align-items:center; justify-content:center;}
.mdoc-table.selecting .mdoc-chk-cell{display:flex;}
.mdoc-table.selecting .mdoc-table-head, .mdoc-table.selecting .mdoc-row{grid-template-columns:26px 96px 1fr 190px 130px;}
.mdoc-row.sel{background:var(--accent-soft);}
.mdoc-table.selecting .mdoc-row{cursor:pointer;}
.mdoc-chk-cell .pm-check{cursor:pointer;}
.mdoc-row.sel .pm-check, .mdoc-table-head .pm-check.on{background:var(--accent); border-color:var(--accent);}
.mdoc-row.sel .pm-check svg, .mdoc-table-head .pm-check.on svg{opacity:1;}
.note-selbar{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px; min-height:42px;}
.note-selbar .cnt{font-size:12.5px; color:var(--text-muted);}
.note-selbar .acts{display:flex; gap:8px; align-items:center;}
.note-selbar .pm-confirm{margin:0;}
#mdocDeleteBtn.ask{color:#fff; background:var(--accent); border-color:var(--accent);}
.mdoc-table-head, .mdoc-row{display:grid; grid-template-columns:96px 1fr 190px 130px; gap:12px; align-items:center; padding:12px 16px; min-width:600px;}
.mdoc-table-head{font-size:10.5px; color:var(--text-faint); font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--border);}
.mdoc-row{border-bottom:1px solid var(--border); font-size:12.8px;}
.mdoc-row:last-child{border-bottom:none;}
.mdr-date{font-family:var(--font-mono); color:var(--text-muted); font-size:12px;}
.mdr-title{border:none; background:none; text-align:left; font-weight:500; color:var(--text); cursor:pointer; padding:0; font-size:12.8px;}
.mdr-title:hover{color:var(--accent-ink); text-decoration:underline;}
.mdr-attendees{display:flex; gap:4px; flex-wrap:wrap;}
.mdr-status-btn{border:none; border-radius:999px; padding:5px 11px; font-size:11px; font-weight:600; cursor:pointer; white-space:nowrap;}

.status-popover{
  position:fixed; z-index:85; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-m);
  box-shadow:var(--shadow-lg); padding:8px; display:none; flex-direction:column; gap:2px; min-width:200px;
}
.status-popover.open{display:flex;}
.sp-head{font-size:10.5px; color:var(--text-faint); padding:4px 8px 6px; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.04em;}
.sp-item{display:flex; align-items:center; gap:8px; border:none; background:none; padding:8px; border-radius:8px; font-size:12.5px; cursor:pointer; color:var(--text); width:100%; text-align:left;}
.sp-item:hover{background:var(--surface-2);}
.sp-dot{width:8px; height:8px; border-radius:50%; flex:0 0 auto;}
.sp-new{display:flex; gap:6px; padding:6px 4px 2px; border-top:1px solid var(--border); margin-top:4px;}
.sp-new input{flex:1; border:1px solid var(--border); background:var(--surface-2); border-radius:8px; padding:6px 9px; font-size:12px; outline:none;}
.sp-new button{border:none; background:var(--accent); color:#fff; border-radius:8px; padding:6px 10px; font-size:11.5px; font-weight:600; cursor:pointer;}

.compose-modal{max-width:640px; max-height:calc(85vh / var(--ui-zoom)); overflow-y:auto;}

.mdoc-drawer{
  position:fixed; top:58px; right:0; bottom:0; width:440px; z-index:78;
  background:var(--bg-elevated); border-left:1px solid var(--border); box-shadow:var(--shadow-lg);
  transform:translateX(100%); transition:transform .32s cubic-bezier(.2,.8,.2,1);
  display:flex; flex-direction:column;
}
.mdoc-drawer.open{transform:translateX(0);}
.mdoc-drawer-head{display:flex; align-items:center; justify-content:space-between; padding:13px 16px; border-bottom:1px solid var(--border); flex:0 0 auto;}
.mdoc-drawer-body{flex:1 1 auto; overflow-y:auto; padding:26px 26px 50px;}
.mdoc-title-lg{font-family:var(--font-display); font-size:22px; font-weight:600; line-height:1.35; margin-bottom:18px; text-wrap:balance;}
.mdoc-props{display:flex; flex-direction:column; gap:2px; margin-bottom:14px;}
.mdoc-prop{display:flex; align-items:center; gap:10px; padding:6px 2px; font-size:12.5px;}
.mp-label{flex:0 0 78px; color:var(--text-faint); display:flex; align-items:center; gap:6px;}
.mp-val{flex:1; display:flex; gap:6px; flex-wrap:wrap; align-items:center;}
.mdoc-divider{border:none; border-top:1px solid var(--border); margin:6px 0 20px;}
.mdoc-block{margin-bottom:24px;}
.mdoc-block h4{font-size:13.5px; font-weight:600; margin-bottom:10px; display:flex; align-items:center; gap:6px;}
.mdoc-block h4 .count{color:var(--text-faint); font-weight:400; font-size:12px;}
.mdoc-block ul, .mdoc-block ol{margin:0; padding-left:20px; display:flex; flex-direction:column; gap:7px; font-size:13px; line-height:1.55; color:var(--text);}
.mdoc-block ul.mdoc-checklist{list-style:none; padding-left:0;}
.mdoc-checklist li{display:flex; align-items:flex-start; gap:8px;}
.mdoc-checklist li::before{content:'☐'; color:var(--accent); flex:0 0 auto;}
.mdoc-empty{color:var(--text-faint); font-size:12.5px;}

/* ---- 회의록 수정 화면 ---- */
.mdoc-drawer.editing .mdoc-drawer-head .btn{display:none;}
.mdoc-drawer.editing .mdoc-drawer-body{padding-bottom:0;}
.mdoc-edit-title{
  width:100%; border:none; border-bottom:1.5px solid transparent; background:transparent; outline:none;
  font-family:var(--font-display); font-size:22px; font-weight:600; line-height:1.35; color:var(--text);
  padding:2px 0 6px; margin-bottom:14px; transition:border-color .15s;
}
.mdoc-edit-title:hover{border-bottom-color:var(--border);}
.mdoc-edit-title:focus{border-bottom-color:var(--accent);}
.mdoc-edit-title::placeholder{color:var(--text-faint);}
.mdoc-select{
  appearance:none; -webkit-appearance:none; border:1px solid var(--border); background-color:var(--surface-2); color:var(--text);
  border-radius:999px; padding:5px 30px 5px 12px; font-size:12.5px; font-family:var(--font-body); font-weight:500; cursor:pointer; outline:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238C8578' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center; max-width:100%;
}
.mdoc-select:hover{border-color:var(--border-strong);}
.mdoc-select:focus{border-color:var(--accent);}
.mdoc-edit-note{
  display:flex; gap:9px; align-items:flex-start; background:var(--accent-2-soft); color:var(--accent-2-ink);
  border-radius:12px; padding:11px 13px; font-size:12px; line-height:1.55; margin-bottom:18px;
}
.mdoc-edit-note b{font-weight:600;}
.mdoc-edit-sec{
  --sec:var(--text-faint); background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--sec);
  border-radius:12px; padding:12px 14px 12px; margin-bottom:12px; transition:border-color .15s, box-shadow .15s;
}
.mdoc-edit-sec:focus-within{border-color:var(--sec); box-shadow:0 0 0 3px color-mix(in srgb, var(--sec) 16%, transparent);}
.mdoc-edit-sec.sec-other{--sec:#06B6D4;}
.mdoc-edit-sec.sec-decision{--sec:var(--accent-2);}
.mdoc-edit-sec.sec-action{--sec:var(--accent);}
.mdoc-edit-sec .sec-head{display:flex; align-items:center; gap:8px; margin-bottom:8px;}
.mdoc-edit-sec .sec-title{font-size:13px; font-weight:600; display:flex; align-items:center; gap:6px;}
.mdoc-edit-sec .sec-hint{font-size:11px; color:var(--text-faint);}
.mdoc-edit-sec .sec-count{margin-left:auto; font-family:var(--font-mono); font-size:10.5px; color:var(--sec); background:color-mix(in srgb, var(--sec) 12%, transparent); padding:2px 8px; border-radius:999px;}
.mdoc-edit-sec textarea{
  display:block; width:100%; min-height:60px; border:none; outline:none; background:transparent; resize:none; overflow:hidden;
  font-family:var(--font-body); font-size:13px; line-height:1.7; color:var(--text); padding:0;
}
.mdoc-edit-sec textarea::placeholder{color:var(--text-faint);}
.mdoc-edit-footer{
  position:sticky; bottom:0; margin:8px -26px 0; padding:14px 26px 16px; display:flex; justify-content:flex-end; gap:8px;
  background:linear-gradient(to top, var(--bg-elevated) 70%, transparent); border-top:1px solid var(--border);
}

.form-row{display:flex; flex-direction:column; gap:6px;}
.form-row label{font-size:11.5px; font-weight:600; color:var(--text-muted); font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.03em;}
.form-row input, .form-row textarea, .form-row select{
  border:1px solid var(--border); background:var(--surface-2); border-radius:10px; padding:10px 12px;
  font-size:13px; outline:none; font-family:var(--font-body); resize:vertical;
}
.form-row input:focus, .form-row textarea:focus, .form-row select:focus{border-color:var(--border-strong);}
.form-grid2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}


/* ===== css/calendar.css ===== */
/* ================= CALENDAR ================= */
.cal-layout{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:18px; align-items:start;}
.cal-card{padding:18px;}
.cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
.cal-head h3{font-family:var(--font-display); font-size:19px; font-weight:600;}
.cal-nav{display:flex; gap:6px;}
.cal-grid{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px;}
.cal-dow{font-size:10.5px; color:var(--text-faint); text-align:left; padding:2px 4px 6px; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:.04em;}
.cal-cell{
  min-height:88px; border:1px solid var(--border); border-radius:10px; padding:6px; display:flex; flex-direction:column; gap:4px;
  background:var(--surface);
}
.cal-cell.empty{background:transparent; border-color:transparent;}
.cal-cell.today{border-color:var(--accent); box-shadow:0 0 0 1px var(--accent);}
.cal-daynum{font-size:11.5px; font-weight:600; font-family:var(--font-mono); color:var(--text-muted);}
.cal-cell.today .cal-daynum{color:var(--accent-ink);}
.cal-evt{
  font-size:9.8px; padding:2.5px 6px; border-radius:6px; line-height:1.3; display:flex; align-items:center; gap:3px;
  background:var(--surface-2); color:var(--text-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.cal-evt.ai{background:var(--accent-2-soft); color:var(--accent-2-ink); font-weight:500;}
.cal-evt.manual{background:var(--accent-soft); color:var(--accent-ink); font-weight:500;}
.cal-evt.shared{background:var(--surface-3); color:var(--text); font-weight:500;}
.cal-evt.private{background:var(--surface); border:1px dashed var(--border-strong); color:var(--text-muted);}
.cal-evt svg{width:9px; height:9px; flex:0 0 auto;}
.cal-evt .mdot{width:6px; height:6px; border-radius:50%; flex:0 0 auto;}
.cal-evt{cursor:pointer;}
.cal-more-btn{
  font-size:9.8px; padding:2.5px 6px; border-radius:6px; background:var(--surface-3); color:var(--text-muted);
  border:none; cursor:pointer; font-family:var(--font-mono); font-weight:600; align-self:flex-start;
}
.cal-more-btn:hover{background:var(--border-strong); color:var(--text);}

.day-detail-list{display:flex; flex-direction:column; gap:8px; max-height:320px; overflow-y:auto;}
.day-detail-item{display:flex; align-items:center; gap:9px; padding:9px 11px; background:var(--surface-2); border-radius:10px; font-size:12.8px;}
.day-detail-item .ddi-dot{width:7px; height:7px; border-radius:50%; flex:0 0 auto;}
.day-detail-item .ddi-title{flex:1;}
.day-detail-item .ddi-del{border:none; background:none; color:var(--text-faint); cursor:pointer; padding:2px; flex:0 0 auto; display:flex;}
.day-detail-item .ddi-del:hover{color:var(--accent);}

.cal-legend{display:flex; align-items:center; gap:8px; margin-bottom:12px; flex-wrap:wrap;}
.cal-legend-label{font-size:11px; color:var(--text-faint); font-family:var(--font-mono);}
.member-chip{display:flex; align-items:center; gap:5px; border:1px solid var(--border); background:var(--surface); padding:5px 10px; border-radius:999px; font-size:11.5px; color:var(--text-muted); cursor:pointer;}
.member-chip .dot{width:7px; height:7px; border-radius:50%;}
.member-chip.active{background:var(--surface-2); color:var(--text); border-color:var(--border-strong);}
.member-chip:not(.active){opacity:.45;}

.cal-head{position:relative;}
.cal-month-btn{display:inline-flex; align-items:center; gap:6px; border:none; background:none; font-family:var(--font-display); font-size:19px; font-weight:600; color:var(--text); cursor:pointer; padding:4px 10px; margin-left:-10px; border-radius:8px;}
.cal-month-btn:hover, .cal-month-btn.open{background:var(--surface-2);}
.cal-month-btn svg{color:var(--text-faint);}
.calpick{
  position:absolute; top:calc(100% - 4px); left:-4px; width:256px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-m); box-shadow:var(--shadow-lg); z-index:70; display:none; flex-direction:column; gap:10px; padding:12px;
}
.calpick.open{display:flex;}
.calpick-year{display:flex; align-items:center; justify-content:space-between; font-weight:600; font-size:13.5px;}
.calpick-year button{border:1px solid var(--border); background:var(--surface); color:var(--text-muted); width:26px; height:26px; border-radius:8px; cursor:pointer; display:flex; align-items:center; justify-content:center;}
.calpick-year button:hover{background:var(--surface-2); color:var(--text);}
.calpick-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:6px;}
.calpick-grid button{padding:10px 0; border:1px solid var(--border); background:var(--surface); color:var(--text-muted); border-radius:8px; font-size:12.5px; cursor:pointer;}
.calpick-grid button:hover{border-color:var(--border-strong); color:var(--text);}
.calpick-grid button.cur{border-color:var(--accent); background:var(--accent-soft); color:var(--accent-ink); font-weight:600;}
.calpick-today{border:none; background:none; color:var(--accent-ink); font-size:12px; font-weight:600; cursor:pointer; align-self:flex-start; padding:2px 0;}
.mdr-proj{display:inline-flex; align-items:center; gap:5px; font-size:10px; font-family:var(--font-mono); color:var(--text-muted); background:var(--surface-3); border-radius:6px; padding:2px 7px; margin-right:7px; vertical-align:1px; font-weight:500;}
.mdr-proj i{width:7px; height:7px; border-radius:2px; display:inline-block;}
.cal-toolbar{display:flex; align-items:center; gap:8px;}
.calsel-wrap{position:relative;}
.calsel-btn{display:flex; align-items:center; gap:8px; min-width:210px; padding:8px 12px; border:1px solid var(--border-strong); background:var(--surface); color:var(--text); border-radius:10px; font-size:13px; font-weight:600; cursor:pointer;}
.calsel-btn:hover{background:var(--surface-2);}
.calsel-btn .pdot, .calsel-item .pdot, .cal-set-row .pdot{width:10px; height:10px; border-radius:3px; flex:0 0 auto;}
.calsel-btn .chev{margin-left:auto; color:var(--text-faint); display:flex;}
.calsel-menu{
  position:absolute; top:calc(100% + 6px); left:0; min-width:100%; width:280px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-m); box-shadow:var(--shadow-lg); z-index:60; display:none; flex-direction:column; padding:6px; gap:2px;
}
.calsel-menu.open{display:flex;}
.calsel-item{display:flex; align-items:center; gap:9px; width:100%; border:none; background:none; color:var(--text); padding:9px 10px; border-radius:8px; font-size:12.8px; cursor:pointer; text-align:left;}
.calsel-item:hover{background:var(--surface-2);}
.calsel-item.active{background:var(--accent-soft); color:var(--accent-ink); font-weight:600;}
.calsel-item .cnt{margin-left:auto; font-size:10.5px; color:var(--text-faint); font-family:var(--font-mono);}
.calsel-sep{height:1px; background:var(--border); margin:4px 2px;}
.calsel-item.settings{color:var(--text-muted);}
.cal-set-row{display:flex; align-items:center; gap:10px; padding:10px 12px; background:var(--surface-2); border-radius:10px; font-size:12.8px;}
.cal-set-row .pdot{width:16px; height:16px; border-radius:5px; cursor:pointer; border:none; padding:0;}
.cal-set-row .nm{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:500;}
.cal-set-row .hint{font-size:10.5px; color:var(--text-faint); font-family:var(--font-mono);}
.cal-set-row .pdel{border:none; background:none; color:var(--text-faint); cursor:pointer; padding:3px; border-radius:6px; display:flex;}
.cal-set-row .pdel:hover{color:var(--accent); background:var(--surface-3);}
.cal-set-row.confirming{background:var(--accent-soft); color:var(--accent-ink); flex-wrap:wrap;}
.cal-set-row .cwarn{flex-basis:100%; font-size:11px; line-height:1.5; color:var(--accent-ink);}
.cal-set-row .cbtn{border:none; border-radius:8px; padding:4px 11px; font-size:11.5px; font-weight:600; cursor:pointer;}
.cal-set-row .cbtn.yes{background:var(--accent); color:#fff;}
.cal-set-row .cbtn.no{background:transparent; color:var(--text-muted);}
.cal-set-empty{font-size:12.5px; color:var(--text-faint); padding:8px 2px;}
.day-detail-item .ddi-proj{font-size:10px; color:var(--text-faint); font-family:var(--font-mono); flex:0 0 auto; max-width:110px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.detect-item .when{font-size:11.8px; font-weight:600; color:var(--accent-2-ink);}
.detect-item .proj-line{font-size:10.5px; color:var(--text-faint);}
.detect-actions{display:flex; align-items:center; gap:10px;}
.detect-dismiss{border:none; background:none; color:var(--text-faint); font-size:11px; cursor:pointer; padding:0;}
.detect-dismiss:hover{color:var(--accent);}
.detect-engine{font-size:10.8px; color:var(--text-faint); line-height:1.5; margin-top:-4px;}
.detect-busy{font-size:12px; color:var(--text-muted); padding:6px 2px; display:flex; align-items:center; gap:8px;}
.detect-busy::before{content:''; width:12px; height:12px; border-radius:50%; border:2px solid var(--border-strong); border-top-color:var(--accent); animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.cal-evt.cont{opacity:.82;}
.detect-empty{font-size:12px; color:var(--text-faint); padding:6px 2px;}

.ai-detect-card{padding:16px; display:flex; flex-direction:column; gap:12px;}
.ai-detect-card h4{font-size:13px; display:flex; align-items:center; gap:6px;}
.detect-item{display:flex; flex-direction:column; gap:7px; padding:11px; background:var(--surface-2); border-radius:10px; font-size:12px;}
.detect-item .src{font-size:10.5px; color:var(--text-faint); display:flex; align-items:center; gap:5px;}
.detect-item button{
  align-self:flex-start; background:var(--accent-2); color:#fff; border:none; padding:5px 11px; border-radius:999px;
  font-size:11px; font-weight:600; cursor:pointer; display:flex; align-items:center; gap:4px;
}
.detect-item.added{opacity:.5;}
.detect-item.added button{background:var(--text-faint);}


/* ===== css/community.css ===== */
/* ================= COMMUNITY ================= */
/* ---- 커뮤니티 ---- */
.cm-layout{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:28px; align-items:start;}
.cm-main{min-width:0;}
.cm-tabs{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px;}
.cm-tabs button, .cm-chip{border:1px solid var(--border); background:var(--surface); padding:7px 14px; border-radius:999px; font-size:12.5px; color:var(--text-muted); cursor:pointer; font-family:inherit; transition:all .15s ease;}
.cm-tabs button:hover, .cm-chip:hover{border-color:var(--border-strong); color:var(--text);}
.cm-tabs button.active{background:var(--text); color:var(--bg-elevated); border-color:var(--text);}
.cm-chip.on{background:var(--accent-soft); color:var(--accent-ink); border-color:var(--accent);}
.cm-toolbar{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:12px;}
.cm-toolbar input[type=search], .cm-toolbar select{padding:7px 12px; border:1px solid var(--border); border-radius:999px; background:var(--surface); color:var(--text); font:inherit; font-size:12.5px; outline:none;}
.cm-toolbar input[type=search]{flex:1; min-width:150px; max-width:260px;} .cm-toolbar input:focus, .cm-toolbar select:focus{border-color:var(--accent);}
.cm-active{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; font-size:12px; color:var(--text-muted);}
.cm-feed{display:flex; flex-direction:column; gap:12px;}
.cm-card{padding:16px 18px 14px; display:flex; flex-direction:column; gap:9px; cursor:pointer; position:relative; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; animation:homeFadeUp .4s cubic-bezier(.16,.84,.44,1) both; animation-delay:calc(var(--i, 0) * 30ms); border-left:3px solid var(--cc, var(--border-strong));}
.cm-card:hover{transform:translateY(-2px); box-shadow:var(--shadow-md);}
.cm-card.pinned{background:linear-gradient(135deg, var(--accent-soft), var(--surface) 55%);}
.cm-meta{display:flex; align-items:center; gap:6px; flex-wrap:wrap;}
.cm-cat{font-size:11px; font-weight:700; padding:3px 9px; border-radius:999px; color:#fff; background:var(--cc, #64748B);}
.cm-st{font-size:11px; font-weight:600; padding:3px 9px; border-radius:999px; background:var(--surface-2); color:var(--text-muted);}
.cm-st.open{background:rgba(46,158,91,.14); color:#2E9E5B;} .cm-st.solved{background:rgba(59,130,246,.14); color:var(--accent-ink);} .cm-st.closed{background:var(--surface-3); color:var(--text-faint);} .cm-st.urgent{background:rgba(239,68,68,.14); color:#D64545;}
.cm-title{font-size:15.5px; font-weight:700; line-height:1.4; letter-spacing:-.01em;}
.cm-title .cm-cc{color:var(--accent); font-size:13px; margin-left:4px; font-weight:700;}
.cm-prev{font-size:13px; line-height:1.55; color:var(--text-muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
.cm-roles{display:flex; gap:6px; flex-wrap:wrap; align-items:center;}
.cm-role{font-size:11.5px; padding:3px 10px; border-radius:999px; border:1px solid var(--accent-2); color:var(--accent-2-ink); background:var(--accent-2-soft);}
.cm-slots{font-size:12px; color:var(--text-muted);} .cm-slots b{color:var(--text);}
.cm-proj{font-size:11.5px; color:var(--text-muted); background:var(--surface-2); padding:3px 10px; border-radius:999px;}
.cm-tags{display:flex; gap:6px; flex-wrap:wrap;} .cm-tag{font-size:11.5px; color:var(--accent-ink); cursor:pointer;} .cm-tag:hover{text-decoration:underline;}
.cm-foot{display:flex; align-items:center; gap:10px; font-size:12px; color:var(--text-faint); margin-top:2px;}
.cm-av{width:22px; height:22px; border-radius:50%; color:#fff; font-size:10px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;}
.cm-foot .who{display:flex; align-items:center; gap:7px; min-width:0;} .cm-foot .who b{color:var(--text-muted); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.cm-counts{margin-left:auto; display:flex; gap:12px;} .cm-counts span{display:flex; align-items:center; gap:4px;} .cm-counts .on{color:var(--accent);}
.cm-more{align-self:center; margin:14px auto 0; display:block;}
.cm-empty{padding:40px 20px; text-align:center; color:var(--text-faint); border:1px dashed var(--border-strong); border-radius:var(--radius-m); line-height:1.9;}
.cm-side{display:flex; flex-direction:column; gap:14px; position:sticky; top:76px;}
.cm-box{padding:14px 16px; display:flex; flex-direction:column; gap:10px;} .cm-box h5{font-size:12.5px; font-weight:700; color:var(--text);}
.cm-tagcloud{display:flex; gap:6px; flex-wrap:wrap;} .cm-tagcloud button{border:1px solid var(--border); background:var(--surface-2); color:var(--text-muted); border-radius:999px; font-size:11.5px; padding:4px 10px; cursor:pointer; font-family:inherit;} .cm-tagcloud button:hover{border-color:var(--accent); color:var(--accent-ink);}
.cm-mini{display:flex; flex-direction:column; gap:3px; padding:8px 0; border-top:1px solid var(--border); cursor:pointer;} .cm-mini:first-of-type{border-top:none; padding-top:0;}
.cm-mini b{font-size:12.5px; line-height:1.4; font-weight:600;} .cm-mini:hover b{color:var(--accent-ink);} .cm-mini span{font-size:11px; color:var(--text-faint);}
.cm-rules{font-size:11.5px; line-height:1.7; color:var(--text-muted); padding-left:16px; margin:0;}
.cm-side-empty{font-size:12px; color:var(--text-faint);}
@media (max-width:960px){ .cm-layout{grid-template-columns:1fr;} .cm-side{position:static;} }
.cm-sheet{width:min(780px, calc(94vw / var(--ui-zoom))); max-height:calc(90vh / var(--ui-zoom)); overflow-y:auto; background:var(--bg-elevated); border-radius:var(--radius-l); box-shadow:var(--shadow-lg); padding:22px 24px 24px; display:flex; flex-direction:column; gap:14px; position:relative;}
.cm-sheet-head{display:flex; align-items:center; justify-content:space-between;} .cm-sheet-head h3{font-size:16px;}
.cm-d-title{font-size:21px; font-weight:800; line-height:1.35; letter-spacing:-.02em;}
.cm-d-author{display:flex; align-items:center; gap:10px; font-size:12.5px; color:var(--text-faint);} .cm-d-author b{color:var(--text); font-size:13.5px;}
.cm-body{font-size:14px; line-height:1.75; word-break:break-word;} .cm-body p{margin:0 0 6px;} .cm-body ul{margin:4px 0 8px 20px; padding:0;} .cm-body h5{font-size:14.5px; margin:10px 0 4px;}
.cm-body blockquote{margin:6px 0; padding:6px 12px; border-left:3px solid var(--border-strong); color:var(--text-muted); background:var(--surface-2); border-radius:0 8px 8px 0;}
.cm-body pre{background:#0F1629; color:#E6EAF5; padding:12px 14px; border-radius:10px; overflow-x:auto; font-size:12.5px; line-height:1.55; margin:8px 0;} .cm-body pre code{font-family:var(--font-code); background:none; padding:0;}
.cm-body code{font-family:var(--font-code); font-size:.9em; background:var(--surface-3); padding:1px 6px; border-radius:5px;} .cm-body a{color:var(--accent-ink); text-decoration:underline; word-break:break-all;}
.cm-evtcard{display:flex; gap:12px; align-items:center; padding:10px; border:1px solid var(--border); border-radius:14px; background:var(--surface); cursor:pointer;} .cm-evtcard:hover{border-color:var(--accent);}
.cm-evtcard img{width:54px; height:68px; object-fit:cover; border-radius:8px; flex:0 0 auto; background:var(--surface-2);} .cm-evtcard b{font-size:13px; display:block; line-height:1.4;} .cm-evtcard span{font-size:11.5px; color:var(--text-faint);}
.cm-actions{display:flex; gap:8px; flex-wrap:wrap; padding:10px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border);}
.cm-act{border:1px solid var(--border); background:var(--surface); color:var(--text-muted); padding:7px 14px; border-radius:999px; font-size:12.5px; cursor:pointer; font-family:inherit; display:inline-flex; align-items:center; gap:6px; transition:all .15s ease;} .cm-act:hover{border-color:var(--accent); color:var(--accent-ink);} .cm-act.on{background:var(--accent-soft); color:var(--accent-ink); border-color:var(--accent);} .cm-act.danger:hover{border-color:#D64545; color:#D64545;} .cm-act.right{margin-left:auto;}
.cm-recruit-panel{border:1px solid var(--accent-2); background:var(--accent-2-soft); border-radius:14px; padding:14px 16px; display:flex; flex-direction:column; gap:10px;} .cm-recruit-panel h5{font-size:13px;}
.cm-apply-form{display:flex; flex-direction:column; gap:8px;} .cm-apply-form textarea{width:100%; padding:9px 12px; border:1px solid var(--border-strong); border-radius:10px; font:inherit; font-size:13px; background:var(--surface); color:var(--text); resize:vertical; min-height:70px;}
.cm-app{display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border:1px solid var(--border); background:var(--surface); border-radius:12px;} .cm-app .tx{flex:1; min-width:0; font-size:12.5px; line-height:1.5;} .cm-app .tx b{font-size:13px;} .cm-app .btns{display:flex; gap:6px; flex:0 0 auto;} .cm-app .btns .btn{font-size:11.5px; padding:5px 10px;}
.cm-ctitle{font-size:14px; font-weight:700; margin-top:4px;}
.cm-comment{display:flex; gap:10px; padding:10px 0; border-top:1px solid var(--border);} .cm-comment:first-child{border-top:none;} .cm-comment.reply{margin-left:34px; padding:8px 0 8px 12px; border-left:2px solid var(--border);}
.cm-comment .cb{flex:1; min-width:0;} .cm-comment .ch{display:flex; gap:8px; align-items:center; font-size:12px; color:var(--text-faint); flex-wrap:wrap;} .cm-comment .ch b{color:var(--text); font-size:13px;}
.cm-comment .ct{font-size:13.5px; line-height:1.65; margin:3px 0 4px; word-break:break-word;} .cm-comment .ct p:last-child{margin-bottom:0;} .cm-comment .ca{display:flex; gap:12px; font-size:11.5px; color:var(--text-faint);} .cm-comment .ca button{border:none; background:none; color:inherit; cursor:pointer; font:inherit; padding:0;} .cm-comment .ca button:hover{color:var(--accent-ink);} .cm-comment .ca .on{color:var(--accent);}
.cm-badge{font-size:10.5px; font-weight:700; padding:2px 7px; border-radius:999px;} .cm-badge.author{background:var(--accent-soft); color:var(--accent-ink);} .cm-badge.accepted{background:rgba(46,158,91,.16); color:#2E9E5B;}
.cm-comment.is-accepted{background:rgba(46,158,91,.06); border-radius:10px; padding-left:10px; padding-right:10px;}
.cm-composer{display:flex; flex-direction:column; gap:8px; margin-top:6px;} .cm-composer textarea{width:100%; padding:10px 12px; border:1px solid var(--border-strong); border-radius:12px; font:inherit; font-size:13.5px; background:var(--surface); color:var(--text); resize:vertical; min-height:68px;} .cm-composer .row{display:flex; justify-content:flex-end; gap:8px; align-items:center; font-size:11.5px; color:var(--text-faint);}
.cm-ed-cats{display:grid; grid-template-columns:repeat(5, 1fr); gap:8px;} .cm-ed-cat{border:1.5px solid var(--border); background:var(--surface); border-radius:12px; padding:10px 6px; cursor:pointer; text-align:center; font:inherit; font-size:12px; color:var(--text-muted); transition:all .15s ease;} .cm-ed-cat .ic{display:block; font-size:20px; margin-bottom:3px;} .cm-ed-cat.on{border-color:var(--accent); background:var(--accent-soft); color:var(--accent-ink); font-weight:700;}
.cm-ed-hint{font-size:12px; color:var(--text-muted); background:var(--surface-2); border-radius:10px; padding:8px 12px; line-height:1.55;}
.cm-field{display:flex; flex-direction:column; gap:5px;} .cm-field label{font-size:12.5px; font-weight:700;} .cm-field label small, .cm-field small{font-weight:400; color:var(--text-faint);}
.cm-field input[type=text], .cm-field input[type=number], .cm-field input[type=date], .cm-field select, .cm-field textarea{padding:9px 12px; border:1px solid var(--border-strong); border-radius:10px; font:inherit; font-size:13.5px; background:var(--surface); color:var(--text); outline:none; width:100%;} .cm-field input:focus, .cm-field select:focus, .cm-field textarea:focus{border-color:var(--accent);}
.cm-row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;} .cm-recruit-box{border:1px solid var(--accent-2); border-radius:14px; padding:14px; display:flex; flex-direction:column; gap:12px; background:var(--accent-2-soft);}
.cm-body-head{display:flex; justify-content:space-between; align-items:center;} .cm-link{border:none; background:none; color:var(--accent-ink); cursor:pointer; font:inherit; font-size:12px; text-decoration:underline;}
.cm-preview{border:1px dashed var(--border-strong); border-radius:10px; padding:12px 14px; min-height:120px;}
.cm-chipinput{display:flex; gap:6px; flex-wrap:wrap; padding:6px 8px; border:1px solid var(--border-strong); border-radius:10px; background:var(--surface);} .cm-chipinput input{border:none !important; flex:1; min-width:120px; padding:4px 4px !important; outline:none; background:none !important;} .cm-chipinput .c{background:var(--accent-soft); color:var(--accent-ink); font-size:12px; padding:3px 6px 3px 10px; border-radius:999px; display:inline-flex; align-items:center; gap:4px;} .cm-chipinput .c button{border:none; background:none; color:inherit; cursor:pointer; font-size:14px; line-height:1; padding:0 2px;}
.cm-suggest{display:flex; gap:6px; flex-wrap:wrap;} .cm-suggest button{border:1px dashed var(--border-strong); background:none; color:var(--text-muted); border-radius:999px; font-size:11.5px; padding:3px 10px; cursor:pointer; font-family:inherit;} .cm-suggest button:hover{border-color:var(--accent); color:var(--accent-ink);}
.cm-ed-foot{display:flex; gap:8px; align-items:center; justify-content:flex-end;} .cm-ed-note{margin-right:auto; font-size:12px; color:#D64545;}
@media (max-width:620px){ .cm-ed-cats{grid-template-columns:repeat(3,1fr);} .cm-row2{grid-template-columns:1fr;} .cm-sheet{padding:16px;} }
@media (prefers-reduced-motion: reduce){ .cm-card{animation:none;} }
.comm-tabs{display:flex; gap:8px; margin-bottom:16px;}
.comm-tabs button{border:1px solid var(--border); background:var(--surface); padding:7px 14px; border-radius:999px; font-size:12.5px; color:var(--text-muted); cursor:pointer;}
.comm-tabs button.active{background:var(--text); color:var(--bg-elevated); border-color:var(--text);}
.comm-feed{display:flex; flex-direction:column; gap:12px; max-width:660px;}
.post-card{padding:16px; display:flex; flex-direction:column; gap:10px;}
.post-head{display:flex; align-items:center; gap:10px;}
.post-head .pavatar{width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:12.5px; flex:0 0 auto;}
.post-head .who b{font-size:13px; display:block;}
.post-head .who span{font-size:11px; color:var(--text-faint);}
.post-head .time{margin-left:auto; font-size:11px; color:var(--text-faint); font-family:var(--font-mono);}
.post-body{font-size:13.2px; line-height:1.55;}
.post-foot{display:flex; align-items:center; gap:14px; color:var(--text-faint); font-size:12px;}
.post-foot .fx{display:flex; align-items:center; gap:5px; cursor:pointer;}
.post-foot .fx:hover{color:var(--accent-ink);}
.post-foot svg{width:14px; height:14px;}


/* ===== css/mypage.css ===== */
/* ================= MYPAGE ================= */
.mypage-head{display:flex; align-items:center; gap:16px; margin-bottom:24px;}
.mypage-head .big-avatar{width:64px; height:64px; border-radius:18px; background:linear-gradient(150deg,var(--accent),var(--accent-2)); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:22px;}
.mypage-head h2{font-family:var(--font-display); font-size:22px;}
.mypage-head .role{font-size:12.5px; color:var(--text-faint); margin-top:2px;}

.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:20px;}
.stat-tile{padding:16px; display:flex; flex-direction:column; gap:8px;}
.stat-tile .top{display:flex; align-items:center; justify-content:space-between;}
.stat-tile .ic{width:26px; height:26px; border-radius:8px; display:flex; align-items:center; justify-content:center;}
.stat-tile .ic svg{width:13px; height:13px;}
.stat-tile b{font-family:var(--font-mono); font-size:24px; font-variant-numeric:tabular-nums;}
.stat-tile .lbl{font-size:11.5px; color:var(--text-faint);}
.stat-tile .delta{font-size:10.5px; font-weight:600; font-family:var(--font-mono);}
.stat-tile .delta.up{color:var(--accent-2-ink);}

.mypage-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.chart-card{padding:18px;}
.chart-card h4{font-size:13px; margin-bottom:14px;}
.bars{display:flex; align-items:flex-end; gap:10px; height:130px;}
.bar-col{flex:1; display:flex; flex-direction:column; align-items:center; gap:6px; justify-content:flex-end; height:100%;}
.bar-col .bar{width:100%; border-radius:6px 6px 3px 3px; background:var(--accent-soft);}
.bar-col.peak .bar{background:var(--accent);}
.bar-col .dlbl{font-size:10px; color:var(--text-faint); font-family:var(--font-mono);}

.feedback-list{display:flex; flex-direction:column; gap:10px;}
.fb-card{padding:14px; display:flex; flex-direction:column; gap:8px;}
.fb-top{display:flex; align-items:center; gap:8px;}
.fb-top .favatar{width:26px; height:26px; border-radius:50%; background:var(--accent-2); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:700; font-size:10.5px; flex:0 0 auto;}
.fb-top b{font-size:12.5px;}
.fb-top .date{margin-left:auto; font-size:10.5px; color:var(--text-faint); font-family:var(--font-mono);}
.fb-quote{font-family:var(--font-body); font-size:13.5px; color:var(--text); line-height:1.5;}

.mp-empty{padding:22px 24px; display:flex; flex-direction:column; gap:6px;} .mp-empty b{font-size:15px; letter-spacing:-.02em;} .mp-empty p{margin:0; font-size:13px; color:var(--text-muted); line-height:1.6;}

/* ===== css/admin.css ===== */
/* ================= ADMIN ================= */
.workload-list{display:flex; flex-direction:column; gap:10px;}
.workload-row{display:flex; align-items:center; gap:10px;}
.wl-who{display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:500; flex:0 0 62px;}
.wl-who .mini{margin-left:0;}
.wl-bar-wrap{flex:1; height:8px; border-radius:999px; background:var(--surface-2); overflow:hidden;}
.wl-bar{height:100%; border-radius:999px;}
.wl-pct{font-family:var(--font-mono); font-size:11.5px; color:var(--text-muted); flex:0 0 34px; text-align:right;}

.admin-member-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px;}
.admin-member-card{padding:16px; display:flex; flex-direction:column; align-items:flex-start; gap:8px; cursor:pointer;}
.admin-member-card:hover{border-color:var(--border-strong);}
.amc-info b{font-size:13.5px; display:block;}
.amc-info span{font-size:11px; color:var(--text-faint);}
.amc-stats{display:flex; gap:10px; font-size:11px; color:var(--text-muted); font-family:var(--font-mono);}
.admin-member-card .btn{align-self:flex-end; margin-top:2px;}


/* ---- 팀원 화면 ---- */
.tm-projects{display:flex; gap:8px; overflow-x:auto; padding-bottom:4px; margin-bottom:14px; scrollbar-width:none;} .tm-projects::-webkit-scrollbar{display:none;}
.tm-proj{display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border-radius:12px; border:1px solid var(--border); background:var(--surface); color:var(--text-muted); font:inherit; font-size:13px; cursor:pointer; white-space:nowrap; transition:all .15s;}
.tm-proj:hover{border-color:var(--border-strong); color:var(--text);} .tm-proj.on{background:var(--accent-soft); border-color:var(--accent); color:var(--text);}
.tm-proj .pd{width:8px; height:8px; border-radius:50%;} .tm-proj b{font-weight:700; letter-spacing:-.02em;} .tm-proj small{color:var(--text-faint); font-size:11.5px;}
.tm-summary{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; margin-bottom:14px;}
.tm-stat{--c:var(--accent); background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:14px 16px; display:flex; flex-direction:column; gap:2px; position:relative; overflow:hidden;}
.tm-stat::before{content:''; position:absolute; left:0; top:14px; bottom:14px; width:3px; border-radius:0 3px 3px 0; background:var(--c);}
.tm-stat b{font-family:var(--font-brand); font-size:26px; font-weight:800; letter-spacing:-.04em; font-variant-numeric:tabular-nums;} .tm-stat span{font-size:12.5px; color:var(--text-muted);}
.tm-filters{display:inline-flex; gap:4px; padding:4px; background:var(--surface-2); border:1px solid var(--border); border-radius:13px; margin-bottom:16px; max-width:100%; overflow-x:auto; scrollbar-width:none;} .tm-filters[hidden]{display:none;}
.tm-filters button{border:none; background:none; color:var(--text-muted); font:inherit; font-size:12.5px; font-weight:600; padding:7px 13px; border-radius:10px; cursor:pointer; white-space:nowrap; transition:all .15s;}
.tm-filters button.on{background:var(--surface); color:var(--text); box-shadow:0 1px 3px rgba(0,0,0,.25), 0 0 0 1px var(--border-strong);}
.tm-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(290px, 1fr)); gap:12px;}
.tm-card{background:var(--surface); border:1px solid var(--border); border-radius:18px; padding:16px; display:flex; flex-direction:column; gap:12px; transition:border-color .15s, transform .2s, box-shadow .2s;}
.tm-card:hover{border-color:var(--border-strong); transform:translateY(-2px); box-shadow:0 14px 30px -18px rgba(0,0,0,.5);} .tm-card.off .tm-av{opacity:.6;}
.tm-top{display:flex; align-items:center; gap:12px;}
.tm-av{position:relative; width:44px; height:44px; border-radius:14px; color:#fff; font-weight:800; font-size:17px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; font-family:var(--font-brand);}
.tm-av::after{content:''; position:absolute; right:-3px; bottom:-3px; width:13px; height:13px; border-radius:50%; border:2.5px solid var(--surface); box-sizing:border-box; background:#94A3B8;}
.tm-av[data-pst="online"]::after{background:#22C55E;} .tm-av[data-pst="away"]::after{background:#F59E0B;} .tm-av[data-pst="dnd"]::after{background:#EF4444;}
.tm-who{flex:1; min-width:0; display:flex; flex-direction:column; gap:2px;} .tm-name{display:flex; align-items:center; gap:6px;} .tm-name b{font-size:14.5px; letter-spacing:-.02em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.tm-mail{font-size:12px; color:var(--text-faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.tm-role{font-size:11.5px; font-weight:700; padding:4px 9px; border-radius:8px; background:var(--surface-2); color:var(--text-muted); flex:0 0 auto;} .tm-role.lead{background:rgba(245,158,11,.14); color:#D97706;}
.tm-state{display:flex; align-items:center; gap:8px; font-size:12.5px;} .tm-dot{width:8px; height:8px; border-radius:50%; background:#94A3B8;}
.tm-dot[data-pst="online"]{background:#22C55E; box-shadow:0 0 8px rgba(34,197,94,.6);} .tm-dot[data-pst="away"]{background:#F59E0B;} .tm-dot[data-pst="dnd"]{background:#EF4444;}
.tm-st{font-weight:600; color:var(--text-muted);} .tm-st[data-pst="online"]{color:#22C55E;} .tm-st[data-pst="away"]{color:#F59E0B;} .tm-st[data-pst="dnd"]{color:#EF4444;}
.tm-act{display:flex; gap:8px; align-items:center; padding-top:12px; border-top:1px solid var(--border);}
.tm-sel{padding:6px 10px; font:inherit; font-size:12.5px; border-radius:9px; background:var(--surface-2); color:var(--text); border:1px solid var(--border-strong);}
.tm-kick{margin-left:auto; color:#EF4444; font-size:12.5px;} .tm-kick:hover{background:rgba(239,68,68,.1);}
.tm-empty{grid-column:1/-1; display:flex; flex-direction:column; align-items:center; gap:8px; padding:56px 20px; text-align:center; border:1px dashed var(--border-strong); border-radius:20px;}
.tm-empty-ic{width:60px; height:60px; border-radius:20px; display:flex; align-items:center; justify-content:center; background:var(--accent-soft); color:var(--accent-ink); margin-bottom:4px;} .tm-empty b{font-size:15px;} .tm-empty span{font-size:13px; color:var(--text-faint);} .tm-empty .btn{margin-top:8px;}
.tm-invite[hidden]{display:none;}
@media (max-width:640px){ .tm-summary{grid-template-columns:repeat(3,1fr); gap:8px;} .tm-stat{padding:12px;} .tm-stat b{font-size:22px;} }

/* ===== css/auth.css ===== */
/* ================= AUTH ================= */
.app.auth-mode .topbar{display:none;}
.auth-wrap{
  min-height:calc(100vh / var(--ui-zoom) - 16px); width:100%; display:flex; align-items:center; justify-content:center; padding:24px;
  background-image:radial-gradient(var(--border) 1px, transparent 1px);
  background-size:22px 22px;
}
.auth-card{width:100%; max-width:380px; padding:34px 30px; display:flex; flex-direction:column; align-items:center; gap:16px; box-shadow:var(--shadow-lg); text-align:center;}
.auth-mark{width:62px; height:68px; background-image:var(--mark-128); animation:markIn .9s cubic-bezier(.2,.9,.3,1.25) both, markFloat 5.5s ease-in-out 1s infinite;}
.auth-wordmark{font-family:var(--font-brand); font-weight:800; font-size:30px; letter-spacing:-.045em; margin-top:-4px; animation:homeFadeUp .7s cubic-bezier(.16,.84,.44,1) .15s both;}
.auth-tagline{font-size:10.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--text-faint); margin-top:-10px; animation:homeFadeUp .7s cubic-bezier(.16,.84,.44,1) .25s both;}
.auth-card{position:relative; overflow:hidden;}
.auth-card::before{content:''; position:absolute; left:0; right:0; top:0; height:4px; background:var(--brand-grad);}
.auth-card::after{content:''; position:absolute; left:50%; top:-60px; width:320px; height:240px; transform:translateX(-50%); background:radial-gradient(closest-side, rgba(59,130,246,.16), rgba(139,92,246,.08) 60%, transparent 100%); pointer-events:none;}
.auth-card > *{position:relative; z-index:1;}
@keyframes markIn{from{opacity:0; transform:translateY(14px) scale(.8) rotate(-10deg);} to{opacity:1; transform:none;}}
@keyframes markFloat{0%,100%{transform:translateY(0);} 50%{transform:translateY(-5px);}}
@media (prefers-reduced-motion: reduce){ .auth-mark, .auth-wordmark, .auth-tagline{animation:none;} }

.auth-tag{font-size:12.5px; color:var(--text-faint); margin-top:-10px;}
.auth-modeswitch{width:100%;}
.auth-modeswitch button{flex:1;}
.auth-desc{font-size:12px; color:var(--text-muted); line-height:1.5;}
.invite-card{width:100%; padding:14px; border:1px solid var(--border); border-radius:var(--radius-m); background:var(--accent-soft); display:flex; flex-direction:column; gap:8px; text-align:left;}
.invite-card[hidden]{display:none;}
.auth-buttons[hidden], .auth-terms[hidden], .auth-skip[hidden], .invite-card-or[hidden], .auth-remote-note[hidden]{display:none;}
.auth-remote-note{font-size:12.5px; color:var(--text-muted); line-height:1.7; text-align:center; padding:10px 12px; border:1px dashed var(--border-strong); border-radius:var(--radius-m);}
.invite-card-t{font-weight:700; font-size:14px; line-height:1.5;}
.invite-card-s{font-size:12.5px; color:var(--text-muted); line-height:1.5;}
.invite-card input{width:100%; padding:9px 11px; border:1px solid var(--border-strong); border-radius:8px; font:inherit; font-size:14px; background:var(--surface); color:var(--text);}
.invite-card .btn{width:100%; justify-content:center;}
.invite-card-or{font-size:11.5px; color:var(--text-faint); text-align:center; margin-top:2px;}
.auth-buttons{width:100%; display:flex; flex-direction:column; gap:10px; margin-top:4px;}
.oauth-btn{
  width:100%; display:flex; align-items:center; justify-content:center; gap:9px; padding:11px;
  border-radius:10px; font-size:13.5px; font-weight:600; cursor:pointer; border:1px solid var(--border-strong);
}
.oauth-btn svg{width:17px; height:17px; flex:0 0 auto;}
.oauth-btn.google{background:var(--surface); color:var(--text);}
.oauth-btn.google:hover{background:var(--surface-2);}
.oauth-btn.naver{background:#03C75A; border-color:#03C75A; color:#fff;}
.oauth-btn.naver:hover{background:#02b350;}
.auth-terms{font-size:10.5px; color:var(--text-faint); line-height:1.5;}
.auth-terms a{color:var(--text-muted); text-decoration:underline; cursor:pointer;}
.auth-skip{border:none; background:none; color:var(--text-faint); font-size:12px; cursor:pointer; margin-top:2px;}
.auth-skip:hover{color:var(--text-muted);}

.auth-devnote{margin:0; font-size:12px; font-weight:600; color:var(--accent-ink); background:var(--accent-soft); border-radius:10px; padding:8px 12px; text-align:center;} .auth-devnote[hidden]{display:none;}

/* ===== css/notifications.css ===== */
/* ================= NOTIFICATIONS / TOAST ================= */
.notif-wrap{position:relative;}
.notif-count{
  position:absolute; top:-4px; right:-4px; background:linear-gradient(135deg,#EF4444,#F43F5E); color:#fff; font-size:9.5px; font-weight:800;
  min-width:16px; height:16px; padding:0 4px; border-radius:999px; display:flex; align-items:center; justify-content:center;
  font-family:var(--font-brand); border:2px solid var(--bg-elevated); font-variant-numeric:tabular-nums; animation:ntBadge .35s cubic-bezier(.2,1.4,.3,1);
}
@keyframes ntBadge{from{transform:scale(.4);} to{transform:scale(1);}}
.notif-panel{
  position:absolute; top:48px; right:-6px; width:392px; max-width:calc(100vw - 24px); z-index:60; display:none; flex-direction:column; overflow:hidden;
  background:color-mix(in srgb, var(--bg-elevated) 94%, transparent); backdrop-filter:blur(22px) saturate(1.3); -webkit-backdrop-filter:blur(22px) saturate(1.3);
  border:1px solid var(--border-strong); border-radius:22px; box-shadow:0 30px 70px -22px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.03) inset;
  transform-origin:calc(100% - 28px) -8px;
}
.notif-panel.open{display:flex; animation:ntIn .26s cubic-bezier(.2,.9,.3,1) both;}
@keyframes ntIn{from{opacity:0; transform:translateY(-8px) scale(.96);} to{opacity:1; transform:none;}}
.nt-head{display:flex; align-items:center; justify-content:space-between; padding:18px 20px 8px;}
.nt-title{display:flex; align-items:center; gap:10px;}
.nt-title b{font-family:var(--font-brand); font-size:20px; font-weight:800; letter-spacing:-.04em;}
.nt-pill{font-size:11px; font-weight:700; color:var(--accent-ink); background:var(--accent-soft); padding:3px 9px; border-radius:999px; letter-spacing:-.01em;}
.nt-readall{border:none; background:none; color:var(--accent-ink); font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; padding:5px 8px; margin-right:-8px; border-radius:8px; transition:background .15s, opacity .15s;}
.nt-readall:hover:not(:disabled){background:var(--accent-soft);} .nt-readall:disabled{opacity:.35; cursor:default;}
.nt-tabs{display:flex; gap:4px; margin:6px 20px 8px; padding:3px; background:var(--surface-2); border:1px solid var(--border); border-radius:11px; align-self:flex-start;}
.nt-tabs button{border:none; background:none; color:var(--text-muted); font:inherit; font-size:12.5px; font-weight:600; padding:5px 14px; border-radius:8px; cursor:pointer; transition:all .15s;}
.nt-tabs button.on{background:var(--surface); color:var(--text); box-shadow:0 1px 3px rgba(0,0,0,.25), 0 0 0 1px var(--border-strong);}
.notif-list{max-height:min(440px, calc(70vh / var(--ui-zoom))); overflow-y:auto; display:flex; flex-direction:column; padding:2px 10px 12px; scrollbar-width:thin;}
.nt-group{font-size:11.5px; font-weight:700; color:var(--text-faint); padding:12px 10px 6px; letter-spacing:-.01em; position:sticky; top:0; z-index:1; background:linear-gradient(var(--bg-elevated) 60%, transparent);}
.notif-item{display:flex; align-items:flex-start; gap:12px; padding:11px 12px; border-radius:14px; position:relative; cursor:pointer; transition:background .15s; outline:none;}
.notif-item:hover, .notif-item:focus-visible{background:var(--surface-2);}
.notif-item:focus-visible{box-shadow:0 0 0 2px var(--accent);}
.notif-item .nic{width:38px; height:38px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; color:var(--nc, var(--accent)); background:color-mix(in srgb, var(--nc, var(--accent)) 16%, transparent); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--nc, var(--accent)) 28%, transparent);}
.notif-item .notif-body{flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; padding-right:14px;}
.nt-row1{display:flex; align-items:baseline; gap:8px; justify-content:space-between;}
.notif-item .ntext{font-size:13.5px; font-weight:600; letter-spacing:-.02em; line-height:1.4; color:var(--text-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.notif-item .ntime{font-size:11.5px; color:var(--text-faint); white-space:nowrap; flex:0 0 auto; font-variant-numeric:tabular-nums;}
.notif-item .nmsg{font-size:12.5px; line-height:1.5; color:var(--text-faint); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; letter-spacing:-.012em;}
.notif-item.unread{background:color-mix(in srgb, var(--accent) 7%, transparent);}
.notif-item.unread:hover{background:color-mix(in srgb, var(--accent) 12%, transparent);}
.notif-item.unread .ntext{color:var(--text); font-weight:700;} .notif-item.unread .nmsg{color:var(--text-muted);}
.nt-dot{position:absolute; right:14px; bottom:14px; width:8px; height:8px; border-radius:50%; background:var(--accent); display:none; box-shadow:0 0 0 3px var(--accent-soft);}
.notif-item.unread .nt-dot{display:block;}
.notif-del{position:absolute; top:8px; right:8px; border:none; background:var(--surface-3); color:var(--text-muted); cursor:pointer; width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .15s, background .15s, color .15s;}
.notif-item:hover .notif-del, .notif-item:focus-within .notif-del{opacity:1;} .notif-del:hover{background:#EF4444; color:#fff;}
.notif-item:hover .ntime{opacity:0;}
.nt-empty{display:flex; flex-direction:column; align-items:center; gap:6px; padding:44px 24px 40px; text-align:center;}
.nt-empty-ic{width:60px; height:60px; border-radius:20px; display:flex; align-items:center; justify-content:center; color:var(--accent-ink); background:var(--accent-soft); margin-bottom:8px;}
.nt-empty b{font-size:14.5px; letter-spacing:-.02em;} .nt-empty span{font-size:12.5px; color:var(--text-faint); line-height:1.55;}

.toast-stack{position:fixed; top:74px; right:20px; z-index:95; display:flex; flex-direction:column; gap:10px; align-items:flex-end; pointer-events:none;}
.toast{
  pointer-events:auto; position:relative; overflow:hidden; width:340px; max-width:calc(100vw - 32px);
  background:color-mix(in srgb, var(--bg-elevated) 92%, transparent); backdrop-filter:blur(18px) saturate(1.3); -webkit-backdrop-filter:blur(18px) saturate(1.3);
  border:1px solid var(--border-strong); box-shadow:0 22px 50px -18px rgba(0,0,0,.6);
  border-radius:18px; padding:13px 14px 15px 13px; display:flex; gap:12px; align-items:center;
  animation:toastIn .42s cubic-bezier(.2,1.1,.3,1) both; transition:opacity .28s ease, transform .28s ease;
}
.toast.click{cursor:pointer;} .toast.click:hover{border-color:var(--tc);}
.toast.out{opacity:0; transform:translateX(24px) scale(.97);}
.toast.bump{animation:toastBump .35s ease;}
.toast .nic{width:36px; height:36px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; color:var(--tc); background:color-mix(in srgb, var(--tc) 17%, transparent); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--tc) 30%, transparent);}
.toast .toast-body{flex:1; min-width:0;}
.toast .tt{font-size:13.5px; font-weight:700; letter-spacing:-.02em; line-height:1.4;}
.toast .td{font-size:12.5px; color:var(--text-muted); margin-top:2px; line-height:1.5; letter-spacing:-.012em; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;}
.toast-close{border:none; background:none; color:var(--text-faint); cursor:pointer; width:22px; height:22px; border-radius:50%; flex:0 0 auto; display:flex; align-items:center; justify-content:center; align-self:flex-start; margin:-3px -4px 0 0; opacity:.6; transition:all .15s;}
.toast-close:hover{opacity:1; background:var(--surface-3); color:var(--text);}
.toast .tbar{position:absolute; left:0; bottom:0; height:3px; width:100%; background:var(--tc); opacity:.85; transform-origin:left; animation:toastBar 5s linear forwards;}
@keyframes toastIn{from{opacity:0; transform:translateX(30px) scale(.94);} to{opacity:1; transform:none;}}
@keyframes toastBar{from{transform:scaleX(1);} to{transform:scaleX(0);}}
@keyframes toastBump{0%,100%{transform:none;} 40%{transform:scale(1.03);}}
@media (max-width:640px){ .toast-stack{left:16px; right:16px; top:68px; align-items:stretch;} .toast{width:auto;} .notif-panel{position:fixed; top:64px; right:12px; left:12px; width:auto;} }
@media (prefers-reduced-motion: reduce){ .toast, .notif-panel.open, .notif-count{animation:none;} .toast .tbar{animation-duration:1ms;} }


/* ===== css/components.css ===== */
/* ================= AVATAR MENU ================= */
.avatar-wrap{position:relative;}
.avatar-menu{
  position:absolute; top:44px; right:0; width:180px; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--radius-m); box-shadow:var(--shadow-lg); z-index:60; display:none; flex-direction:column; padding:6px;
}
.avatar-menu.open{display:flex;}
.avatar-menu button{
  border:none; background:none; text-align:left; padding:9px 10px; border-radius:8px; font-size:12.5px; cursor:pointer;
  color:var(--text); display:flex; align-items:center; gap:8px;
}
.avatar-menu button:hover{background:var(--surface-2);}
.avatar-menu button svg{width:14px; height:14px; color:var(--text-faint);}
.avatar-menu hr{border:none; border-top:1px solid var(--border); margin:5px 2px;}

/* ================= SHARE MODAL ================= */
.modal-backdrop{position:fixed; inset:0; background:rgba(20,17,12,.45); z-index:70; display:none; align-items:center; justify-content:center;}
.modal-backdrop.open{display:flex;}
.ws-invite-btn{display:inline-flex; align-items:center; gap:6px; padding:6px 12px; font-size:13px; white-space:nowrap;}
.ws-invite-btn[hidden]{display:none;}
.share-modal{width:100%; max-width:420px; margin:0 20px; background:var(--surface); border-radius:var(--radius-l); box-shadow:var(--shadow-lg); padding:22px; display:flex; flex-direction:column; gap:16px;}
.share-modal .mh{display:flex; align-items:center; justify-content:space-between;}
.share-modal .mh h3{font-size:15px;}
.share-link-row{display:flex; gap:8px;}
.share-link-row input{flex:1; min-width:0; border:1px solid var(--border); background:var(--surface-2); border-radius:10px; padding:9px 12px; font-size:12px; font-family:var(--font-mono); outline:none; color:var(--text-muted);}
.share-toggle{display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:12.5px; padding:10px 12px; background:var(--surface-2); border-radius:10px;}
.theme-options{display:flex; gap:8px;}
.theme-opt{
  flex:1; display:flex; flex-direction:column; align-items:center; gap:6px; padding:14px 8px;
  border:1px solid var(--border); background:var(--surface); border-radius:10px; font-size:12px; color:var(--text-muted); cursor:pointer;
}
.theme-opt svg{width:18px; height:18px;}
.theme-opt:hover{border-color:var(--border-strong); color:var(--text);}
.theme-opt.active{border-color:var(--accent); background:var(--accent-soft); color:var(--accent-ink);}
.avatar-color-picker{display:flex; gap:9px;}
.avatar-swatch{width:32px; height:32px; border-radius:9px; border:2px solid transparent; cursor:pointer; padding:0; outline-offset:2px;}
.avatar-swatch.active{border-color:var(--text);}
.switch{width:34px; height:20px; border-radius:999px; background:var(--border-strong); position:relative; cursor:pointer; flex:0 0 auto; transition:background .15s;}
.switch::after{content:''; position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:#fff; transition:left .15s;}
.switch.on{background:var(--accent-2);}
.switch.on::after{left:16px;}
.share-members{display:flex; flex-direction:column; gap:9px;}
.share-member{display:flex; align-items:center; gap:9px; font-size:12.5px;}
.share-member .mini{margin-left:0;}
.share-member .role{margin-left:auto; font-size:11px; color:var(--text-faint);}


/* ===== css/events.css ===== */
/* ================= EVENTS ================= */
.crawl-bar{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 15px; background:var(--surface-2); border-radius:12px; margin-bottom:10px; font-size:12.5px; color:var(--text-muted); flex-wrap:wrap;}
.cb-main{display:flex; align-items:center; gap:9px; min-width:0;}
.cb-dot{width:9px; height:9px; border-radius:50%; background:var(--text-faint); flex:0 0 auto; box-shadow:0 0 0 3px rgba(136,146,168,.18);}
.cb-dot.ok{background:#2E9E5B; box-shadow:0 0 0 3px rgba(46,158,91,.2);}
.cb-dot.warn{background:#F59E0B; box-shadow:0 0 0 3px rgba(245,158,11,.22);}
.cb-dot.err{background:#D64545; box-shadow:0 0 0 3px rgba(214,69,69,.2);}
.cb-dot.run{background:var(--accent); animation:cbPulse 1.1s ease-in-out infinite;}
@keyframes cbPulse{0%,100%{box-shadow:0 0 0 3px rgba(59,130,246,.25);} 50%{box-shadow:0 0 0 8px rgba(59,130,246,0);}}
.crawl-sources{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px;}
.src-chip{font-size:11.5px; padding:4px 10px; border-radius:999px; border:1px solid var(--border); background:var(--surface); color:var(--text-muted); cursor:default;}
.src-chip.ok b{color:#2E9E5B;} .src-chip.err{border-color:rgba(214,69,69,.4); color:#D64545; background:rgba(214,69,69,.06);}
.evt-toolbar{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:16px;}
.evt-toolbar .evt-filters{margin-bottom:0;}
.evt-tools{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
.evt-tools input[type=search], .evt-tools select{padding:7px 12px; border:1px solid var(--border); border-radius:999px; background:var(--surface); color:var(--text); font:inherit; font-size:12.5px; outline:none;}
.evt-tools input[type=search]{width:190px;} .evt-tools input[type=search]:focus, .evt-tools select:focus{border-color:var(--accent);}
.evt-toggle{font-size:12px; color:var(--text-muted); display:flex; align-items:center; gap:5px; cursor:pointer; white-space:nowrap;}
.new-badge{font-family:var(--font-mono); font-size:10px; font-weight:800; letter-spacing:.04em; padding:2px 7px; border-radius:999px; background:var(--brand-grad); color:#fff;}
.evt-card{transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; animation:homeFadeUp .45s cubic-bezier(.16,.84,.44,1) both; animation-delay:calc(var(--i, 0) * 30ms);}
.evt-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--border-strong);}
.evt-card.closed{opacity:.6;}
.evt-card h4 a{color:inherit; text-decoration:none;} .evt-card h4 a:hover{color:var(--accent-ink); text-decoration:underline;}
.evt-when{font-size:11.5px; color:var(--text-muted);} .evt-when b{color:var(--text);}
.evt-desc{font-size:12px; line-height:1.5; color:var(--text-muted);}
.evt-empty{grid-column:1/-1; padding:34px 20px; text-align:center; color:var(--text-faint); border:1px dashed var(--border-strong); border-radius:var(--radius-m); line-height:1.8;}
.evt-skel{height:340px; border-radius:var(--radius-m); background:linear-gradient(100deg, var(--surface-2) 30%, var(--surface-3) 50%, var(--surface-2) 70%); background-size:200% 100%; animation:skel 1.3s ease-in-out infinite;}
@keyframes skel{from{background-position:200% 0;} to{background-position:-200% 0;}}
.crawl-custom{margin-top:22px; border:1px solid var(--border); border-radius:var(--radius-m); background:var(--surface); padding:12px 16px;}
.crawl-custom summary{cursor:pointer; font-size:13px; font-weight:600; color:var(--text-muted);}
.crawl-custom p{font-size:12px; color:var(--text-faint); margin:8px 0;}
.cc-row{display:flex; gap:8px; flex-wrap:wrap;} .cc-row input{flex:1; min-width:220px; padding:8px 12px; border:1px solid var(--border); border-radius:10px; background:var(--surface); color:var(--text); font:inherit; font-size:13px;}
.cc-row select{padding:8px 10px; border:1px solid var(--border); border-radius:10px; background:var(--surface); color:var(--text); font:inherit; font-size:13px;}
/* ---- 포스터 카드 ---- */
.pcard{display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--border); border-radius:18px; overflow:hidden; cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; animation:homeFadeUp .5s cubic-bezier(.16,.84,.44,1) both; animation-delay:calc(var(--i, 0) * 35ms);}
.pcard:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:var(--border-strong);}
.pcard.closed{opacity:.62;}
.poster{position:relative; aspect-ratio:4 / 5; overflow:hidden; background:linear-gradient(135deg, var(--g1), var(--g2)); isolation:isolate;}
.poster img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; opacity:0; transition:transform .5s ease, opacity .45s ease;}
.poster.has-img img{opacity:1;}
.pcard:hover .poster img{transform:scale(1.04);}
.poster.wide::before{content:''; position:absolute; inset:-20px; background:var(--bgimg) center / cover; filter:blur(20px) saturate(1.3) brightness(.8); z-index:0;}
.poster.wide img{object-fit:contain;}
.poster-fb{position:absolute; inset:0; z-index:0; padding:18px 16px 16px; display:flex; flex-direction:column; justify-content:space-between; color:#fff;}
.poster-fb::before{content:''; position:absolute; right:-40px; top:-40px; width:170px; height:170px; border-radius:50%; background:rgba(255,255,255,.14);}
.poster-fb::after{content:''; position:absolute; left:-30px; bottom:34px; width:120px; height:120px; border-radius:50%; background:rgba(255,255,255,.09);}
.poster-fb .pf-ic{font-size:34px; line-height:1; position:relative; z-index:1; margin-top:30px; filter:drop-shadow(0 4px 10px rgba(0,0,0,.2));}
.poster-fb .pf-title{position:relative; z-index:1; font-family:var(--font-brand); font-weight:800; font-size:19px; line-height:1.3; letter-spacing:-.03em; display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; text-shadow:0 2px 10px rgba(0,0,0,.18);}
.poster-fb .pf-host{position:relative; z-index:1; font-size:11.5px; opacity:.9; margin-top:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.poster-fb{transition:opacity .45s ease .1s;}
.poster.has-img .poster-fb{opacity:0; pointer-events:none;}
.pc-top{position:absolute; left:10px; top:10px; z-index:3; display:flex; gap:6px; align-items:center; flex-wrap:wrap; max-width:calc(100% - 56px);}
.pc-dday{font-family:var(--font-mono); font-weight:700; font-size:11.5px; padding:4px 10px; border-radius:999px; background:rgba(255,255,255,.94); color:#1f2937; box-shadow:0 2px 8px rgba(0,0,0,.14);}
.pc-dday.urgent{background:#EF4444; color:#fff;} .pc-dday.soon{background:#F59E0B; color:#fff;} .pc-dday.rolling{background:rgba(255,255,255,.94); color:#6D3FD9;} .pc-dday.closed{background:rgba(30,41,59,.82); color:#fff;}
.pcard .new-badge{box-shadow:0 2px 8px rgba(59,130,246,.4);}
.pcard .bookmark-btn{position:absolute; right:10px; top:10px; z-index:3; margin:0; width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.92); color:#475569; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 8px rgba(0,0,0,.14); transition:transform .2s ease;}
.pcard .bookmark-btn:hover{transform:scale(1.12);} .pcard .bookmark-btn.on{color:#3B82F6;} .pcard .bookmark-btn.on svg{fill:#3B82F6;}
.pc-body{display:flex; flex-direction:column; gap:7px; padding:14px 15px 13px; flex:1;}
.pc-cat{align-self:flex-start; font-size:11px; font-weight:600; padding:3px 9px; border-radius:999px; background:var(--surface-2); color:var(--text-muted);}
.pc-body h4{font-size:14.5px; font-weight:700; line-height:1.4; letter-spacing:-.01em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.8em;}
.pc-body h4 a{color:inherit; text-decoration:none;} .pcard:hover .pc-body h4 a{color:var(--accent-ink);}
.pc-host{font-size:12px; color:var(--text-faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.pc-when{font-size:12px; color:var(--text-muted);} .pc-when b{color:var(--text);}
.pc-actions{display:flex; gap:6px; margin-top:auto; padding-top:8px; flex-wrap:wrap;}
.pc-actions .btn{flex:1; justify-content:center; font-size:11.5px; padding:6px 8px; white-space:nowrap;}
.pc-src{font-size:10.5px; color:var(--text-faint); font-family:var(--font-mono); margin-top:4px;}
@media (max-width:520px){ .evt-grid{grid-template-columns:1fr 1fr;} .poster-fb .pf-title{font-size:15px;} }
@media (prefers-reduced-motion: reduce){ .evt-card, .pcard, .evt-skel, .cb-dot.run{animation:none;} .pcard:hover .poster img{transform:none;} }
.crawl-bar b{color:var(--text);}
.crawl-bar .refresh-btn.spinning svg{animation:spinOnce .7s linear;}
@keyframes spinOnce{from{transform:rotate(0deg);} to{transform:rotate(360deg);}}
.evt-filters{display:flex; gap:8px; margin-bottom:18px; flex-wrap:wrap;}
.evt-filters button{border:1px solid var(--border); background:var(--surface); padding:7px 14px; border-radius:999px; font-size:12.5px; color:var(--text-muted); cursor:pointer;}
.evt-filters button.active{background:var(--text); color:var(--bg-elevated); border-color:var(--text);}
.evt-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(236px, 1fr)); gap:20px;}
.evt-card{padding:16px; display:flex; flex-direction:column; gap:10px;}
.evt-card .etop{display:flex; align-items:center; gap:7px; flex-wrap:wrap;}
.dday{font-family:var(--font-mono); font-weight:700; font-size:11px; padding:3px 9px; border-radius:999px; letter-spacing:.01em;}
.dday.urgent{background:var(--accent); color:#fff;}
.dday.soon{background:var(--accent-soft); color:var(--accent-ink);}
.dday.normal{background:var(--surface-2); color:var(--text-muted);}
.dday.rolling{background:var(--accent-2-soft); color:var(--accent-2-ink);}
.bookmark-btn{margin-left:auto; background:none; border:none; cursor:pointer; color:var(--text-faint); padding:2px;}
.bookmark-btn svg{width:16px; height:16px;}
.bookmark-btn.on{color:var(--accent);}
.bookmark-btn.on svg{fill:var(--accent);}
.evt-card h4{font-size:14.5px; font-weight:600; line-height:1.35;}
.evt-meta{font-size:11.5px; color:var(--text-faint);}
.evt-prize{font-size:12px; color:var(--text-muted);}
.evt-tags{display:flex; gap:6px; flex-wrap:wrap;}
.evt-foot{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:2px; padding-top:10px; border-top:1px solid var(--border); flex-wrap:wrap;}
.evt-foot .src{font-size:10.5px; color:var(--text-faint); font-family:var(--font-mono);}
.evt-foot .actions button{font-size:11px; padding:6px 10px;}

@media (max-width:880px){
  .home-hero{grid-template-columns:1fr;}
  .hh-title{font-size:32px;}
  .proj-row{grid-template-columns:1fr;}
  .cal-layout, .mypage-grid, .admin-member-grid{grid-template-columns:1fr;}
  .evt-grid{grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .tabnav{display:none;}
  .chat-panel{width:min(var(--chat-w), 88vw);}
  .dyn-widget.wide{grid-column:span 1;}
}


/* ===== css/editor.css ===== */
/* ================= VS CODE WORKSPACE THEME ================= */
:root {
  --vscode-bg: #FFFFFF;
  --vscode-head-bg: #F3F3F3;
  --vscode-border: #E5E5E5;
  --vscode-tab-bg: #ECECEC;
  --vscode-tab-text: #616161;
  --vscode-tab-active-bg: #FFFFFF;
  --vscode-tab-active-text: #222222;
  --vscode-sidebar-bg: #F8F8F8;
  --vscode-sidebar-border: #E5E5E5;
  --vscode-statusbar-bg: #007ACC;
  --vscode-statusbar-text: #FFFFFF;
  --vscode-term-bg: #181818;
  --vscode-term-head: #252526;
  --vscode-term-text: #D4D4D4;
  --vscode-action-color: #555555;
  --vscode-action-hover: #111111;
  --vscode-action-hover-bg: rgba(0,0,0,0.06);
}

:root[data-theme="dark"] {
  --vscode-bg: #1E1E1E;
  --vscode-head-bg: #252526;
  --vscode-border: #2D2D2D;
  --vscode-tab-bg: #2D2D2D;
  --vscode-tab-text: #969696;
  --vscode-tab-active-bg: #1E1E1E;
  --vscode-tab-active-text: #FFFFFF;
  --vscode-sidebar-bg: #252526;
  --vscode-sidebar-border: #2D2D2D;
  --vscode-statusbar-bg: #007ACC;
  --vscode-statusbar-text: #FFFFFF;
  --vscode-term-bg: #141414;
  --vscode-term-head: #252526;
  --vscode-term-text: #E6E6E6;
  --vscode-action-color: #CCCCCC;
  --vscode-action-hover: #FFFFFF;
  --vscode-action-hover-bg: rgba(255,255,255,0.1);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --vscode-bg: #1E1E1E;
    --vscode-head-bg: #252526;
    --vscode-border: #2D2D2D;
    --vscode-tab-bg: #2D2D2D;
    --vscode-tab-text: #969696;
    --vscode-tab-active-bg: #1E1E1E;
    --vscode-tab-active-text: #FFFFFF;
    --vscode-sidebar-bg: #252526;
    --vscode-sidebar-border: #2D2D2D;
    --vscode-statusbar-bg: #007ACC;
    --vscode-statusbar-text: #FFFFFF;
    --vscode-term-bg: #141414;
    --vscode-term-head: #252526;
    --vscode-term-text: #E6E6E6;
    --vscode-action-color: #CCCCCC;
    --vscode-action-hover: #FFFFFF;
    --vscode-action-hover-bg: rgba(255,255,255,0.1);
  }
}

/* ---- Editor Column & Head Bar ---- */
.editor-col{
  flex:1 1 auto; display:flex; flex-direction:column; min-width:0; min-height:0; height:100%;
  background:var(--vscode-bg); position:relative; overflow:hidden;
}
.editor-col[hidden], .filetree[hidden]{ display:none !important; }
.editor-head-bar{
  display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid var(--vscode-border); background:var(--vscode-head-bg);
  flex:0 0 38px; height:38px; user-select:none;
}
.editor-head-bar .editor-tabs{
  border-bottom:none; display:flex; align-items:stretch; overflow-x:auto; flex:1 1 auto; height:100%;
}
.editor-head-bar .editor-tabs::-webkit-scrollbar{height:3px;}
.editor-head-bar .editor-tabs::-webkit-scrollbar-thumb{background:rgba(128,128,128,0.3);}

/* ---- Tab Buttons ---- */
.etab{
  display:inline-flex; align-items:center; gap:7px; padding:0 14px; height:100%; font-size:12px; font-family:var(--font-mono);
  color:var(--vscode-tab-text); background:var(--vscode-tab-bg); border-right:1px solid var(--vscode-border);
  cursor:pointer; white-space:nowrap; user-select:none; transition:background .15s, color .15s;
}
.etab:hover{color:var(--vscode-tab-active-text);}
.etab.active{
  color:var(--vscode-tab-active-text); background:var(--vscode-tab-active-bg);
  border-top:2px solid var(--accent); font-weight:600;
}
.etab .dot{width:7px; height:7px; border-radius:50%; flex:0 0 auto;}
.etab-title{max-width:140px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.etab-close{
  display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; border-radius:3px;
  font-size:13px; color:inherit; opacity:0.4; transition:all .15s; margin-left:4px;
}
.etab-close:hover{opacity:1; background:rgba(255,255,255,0.25); color:#FF6B6B;}

/* ---- Editor Actions ---- */
.editor-actions{display:flex; align-items:center; gap:8px; padding-right:12px; flex:0 0 auto;}
.editor-actions .btn.ghost{
  color:var(--vscode-action-color); border:1px solid transparent; background:transparent;
  padding:5px 9px; font-size:12px; border-radius:6px; cursor:pointer;
}
.editor-actions .btn.ghost:hover{
  color:var(--vscode-action-hover); background:var(--vscode-action-hover-bg);
}
.ws-run-btn{
  display:inline-flex; align-items:center; gap:6px; background:var(--accent); color:#fff;
  border:none; border-radius:6px; padding:6px 14px; font-size:12px; font-weight:600;
  cursor:pointer; transition:background .15s, transform .1s; box-shadow:0 1px 3px rgba(0,0,0,0.2);
}
.ws-run-btn:hover{background:var(--accent-hover, #D4421E);}
.ws-run-btn:active{transform:scale(0.97);}
.ws-run-btn:disabled{opacity:0.6; cursor:not-allowed;}
.ws-run-btn svg{width:13px; height:13px;}

/* ---- Monaco Editor Container ---- */
.editor-body{
  flex:1 1 auto; background:var(--vscode-bg); display:flex; position:relative;
  min-height:0; overflow:hidden; width:100%; height:100%;
}
.monaco-container{
  width:100%; height:100%; flex:1 1 auto; min-height:0; overflow:hidden; position:relative;
}
.editor-no-files{
  flex:1 1 auto; display:flex; flex-direction:column; align-items:center; justify-content:center;
  color:var(--text-faint); gap:12px; font-family:var(--font-mono); font-size:13px;
  background:var(--vscode-bg); width:100%; height:100%;
}
.editor-no-files p{margin:0; color:var(--text-muted);}

/* ---- Status Bar ---- */
.editor-statusbar{
  height:24px; background:var(--vscode-statusbar-bg); color:var(--vscode-statusbar-text);
  display:flex; align-items:center; justify-content:space-between; padding:0 12px;
  font-size:11px; font-family:var(--font-mono); flex:0 0 24px; user-select:none;
}
.editor-statusbar .sb-left, .editor-statusbar .sb-right{display:flex; align-items:center; gap:12px;}
.editor-statusbar .sb-badge{
  background:rgba(255,255,255,0.22); padding:2px 7px; border-radius:4px;
  color:#FFFFFF; font-weight:600;
}

/* ---- Terminal Panel ---- */
.ws-terminal{
  display:flex; flex-direction:column; background:var(--vscode-term-bg);
  height:230px; min-height:60px; flex:0 0 auto; overflow:hidden;
}
.ws-terminal.collapsed{display:none !important;}
.ws-terminal.maximized{height:calc(100% - 40px) !important;}
.ws-term-header{
  display:flex; align-items:center; justify-content:space-between; background:var(--vscode-term-head);
  border-bottom:1px solid rgba(255,255,255,0.08); padding:0 12px; height:34px; flex:0 0 34px; user-select:none;
}
.ws-term-tabs{display:flex; gap:2px;}
.ws-term-tab{
  background:none; border:none; padding:7px 12px; font-size:12px; font-family:var(--font-mono);
  color:#999; cursor:pointer; border-bottom:2px solid transparent; transition:all .15s;
}
.ws-term-tab:hover{color:#EEE;}
.ws-term-tab.active{color:#FFF; border-bottom-color:var(--accent); font-weight:600;}
.ws-term-meta{display:flex; align-items:center; gap:8px; font-size:11.5px; font-family:var(--font-mono);}
.term-status-chip{padding:2px 7px; border-radius:4px; font-weight:600; font-size:11px;}
.term-status-chip.success{background:#2E7D4F22; color:#49C978;}
.term-status-chip.error{background:#D9534F22; color:#FF6B6B;}
.term-status-chip.running{background:#3B82F622; color:#93C5FD;}

.ws-term-body{
  flex:1 1 auto; overflow:auto; padding:12px 16px; font-family:'JetBrains Mono', 'D2Coding', 'Cascadia Code', Consolas, monospace;
  font-size:12.5px; line-height:1.65; background:var(--vscode-term-bg); color:var(--vscode-term-text); user-select:text;
}
.ws-term-body pre{margin:0; white-space:pre-wrap; word-break:break-all; font-family:inherit;}
.ws-term-body .term-err{color:#FF6B6B;}
.ws-term-body .term-dim{color:#888888;}
.ws-term-stdin{
  width:100%; height:100%; background:transparent; border:none; outline:none; resize:none;
  color:var(--vscode-term-text); font-family:'JetBrains Mono', 'D2Coding', monospace; font-size:12.5px;
}

.auth-form-box{display:flex; flex-direction:column; gap:10px; margin:14px 0 10px 0;}
.auth-input-field{display:flex; flex-direction:column; gap:4px; text-align:left;}
.auth-input-field label{font-size:11.5px; font-weight:600; color:var(--text-faint);}
.auth-input-field input{padding:9px 12px; border:1px solid var(--border); border-radius:7px; background:var(--bg); color:var(--text); font-size:13px; outline:none;}
.auth-input-field input:focus{border-color:var(--accent);}
.auth-submit-btn{background:var(--accent); color:#fff; border:none; padding:10px; border-radius:7px; font-size:13.5px; font-weight:600; cursor:pointer; margin-top:4px;}
.auth-submit-btn:hover{background:#D4421E;}
.auth-divider{display:flex; align-items:center; gap:10px; font-size:11px; color:var(--text-faint); margin:10px 0;}
.auth-divider::before, .auth-divider::after{content:''; flex:1; height:1px; background:var(--border);}

.sub-item{display:flex; align-items:center; justify-content:space-between; padding:8px 10px; border-radius:6px; cursor:pointer; border:1px solid #333; margin-bottom:6px; background:#1C1F26;}
.sub-item:hover{background:#262A34;}
.sub-item .sub-left{display:flex; align-items:center; gap:8px;}
.sub-item .sub-time{font-size:10.5px; color:#888;}


/* ===== css/polish.css ===== */
/* ================= 타이포·디테일 다듬기 (Pretendard + Plus Jakarta Sans) ================= */
.section-head{align-items:flex-end; margin-bottom:22px; flex-wrap:wrap;}
.section-head h2{font-family:var(--font-brand); font-size:clamp(26px, 3.2vw, 34px); font-weight:800; letter-spacing:-.04em; line-height:1.15; margin:6px 0 6px;}
.section-head .sub{font-family:var(--font-body); font-size:13.5px; color:var(--text-muted); letter-spacing:-.01em; display:block;}
.view-eyebrow, .eyebrow{font-family:var(--font-brand); font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-ink);}
.view-eyebrow::before{content:''; width:7px; height:7px; border-radius:50%; background:var(--brand-grad); display:inline-block; margin-right:7px; vertical-align:1px;}
.btn.primary{font-weight:700; letter-spacing:-.01em;}
[data-view="community"] .section-head > .btn.primary{background:var(--brand-grad); border:none; color:#fff; padding:10px 18px; border-radius:12px; box-shadow:0 8px 20px -8px rgba(99,102,241,.55); transition:transform .15s ease, box-shadow .15s ease;}
[data-view="community"] .section-head > .btn.primary:hover{transform:translateY(-1px); box-shadow:0 12px 26px -8px rgba(99,102,241,.65);}

/* 탭: 알약 → 얇은 세그먼트 */
.cm-tabs{gap:6px; padding:4px; background:var(--surface-2); border:1px solid var(--border); border-radius:14px; display:inline-flex; max-width:100%; overflow-x:auto; scrollbar-width:none; margin-bottom:16px;}
.cm-tabs::-webkit-scrollbar{display:none;}
.cm-tabs button{border:none; background:transparent; padding:8px 14px; border-radius:10px; font-size:13px; font-weight:600; color:var(--text-muted); white-space:nowrap; letter-spacing:-.015em;}
.cm-tabs button:hover{background:var(--surface); color:var(--text);}
.cm-tabs button.active{background:var(--surface); color:var(--text); box-shadow:0 1px 2px rgba(0,0,0,.18), 0 0 0 1px var(--border-strong); }
.cm-toolbar{margin-bottom:16px; gap:8px;}
.cm-toolbar input[type=search], .cm-toolbar select{height:38px; padding:0 14px; border-radius:12px; font-size:13px; background:var(--surface); transition:border-color .15s, box-shadow .15s;}
.cm-toolbar input[type=search]{padding-left:36px; background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 12px center;}
.cm-toolbar input:focus, .cm-toolbar select:focus{box-shadow:0 0 0 3px var(--accent-soft);}
.cm-chip{height:38px; padding:0 14px; border-radius:12px; font-size:12.5px; font-weight:600;}

/* 카드 */
.cm-feed{gap:14px;}
.cm-card{padding:18px 20px 14px; border-radius:18px; border-left-width:1px; gap:10px; position:relative; overflow:hidden; border:1px solid var(--border);}
.cm-card::before{content:''; position:absolute; left:0; top:16px; bottom:16px; width:3px; border-radius:0 3px 3px 0; background:var(--cc, var(--border-strong)); opacity:.9;}
.cm-card:hover{border-color:var(--border-strong); box-shadow:0 14px 34px -16px rgba(0,0,0,.45); transform:translateY(-2px);}
.cm-card.pinned{background:linear-gradient(135deg, var(--accent-soft), var(--surface) 60%);}
.cm-cat{font-size:11.5px; font-weight:700; padding:4px 10px; border-radius:8px; color:var(--cc, #64748B); background:color-mix(in srgb, var(--cc, #64748B) 16%, transparent); letter-spacing:-.01em;}
.cm-st{font-size:11.5px; border-radius:8px; padding:4px 9px; letter-spacing:-.01em;}
.cm-title{font-size:16.5px; font-weight:700; letter-spacing:-.025em; line-height:1.45;}
.cm-prev{font-size:13.5px; line-height:1.65; color:var(--text-muted); letter-spacing:-.012em;}
.cm-role{border-radius:8px; font-weight:600; font-size:11.5px; padding:3px 10px;}
.cm-proj{border-radius:8px; font-size:11.5px;}
.cm-tags{gap:4px 10px;} .cm-tag{font-size:12px; font-weight:500; color:var(--text-faint); letter-spacing:-.01em;} .cm-tag:hover{color:var(--accent-ink);}
.cm-foot{padding-top:10px; margin-top:2px; border-top:1px solid var(--border); font-size:12.5px;}
.cm-av{width:24px; height:24px; font-size:11px; font-family:var(--font-brand);}
.cm-counts{gap:14px; font-variant-numeric:tabular-nums; font-family:var(--font-brand); font-weight:600; font-size:12px;}
.cm-badge, .cm-st, .new-badge{font-family:var(--font-body);}
.cm-card .new-badge{font-family:var(--font-brand); font-size:9.5px; font-weight:800; letter-spacing:.06em; padding:3px 7px; border-radius:6px;}

/* 사이드 */
.cm-box{padding:16px 18px; border-radius:18px; gap:12px;}
.cm-box h5, .cm-recruit-panel h5{margin:0;}
.cm-box .cm-all{width:100%; justify-content:center; border-radius:10px; font-size:12.5px; font-weight:600; margin-top:2px;}
.cm-box h5{font-size:13.5px; font-weight:800; letter-spacing:-.02em;}
.cm-tagcloud button{border-radius:8px; font-size:12px; font-weight:500; padding:5px 10px; background:var(--surface-2);}
.cm-mini b{font-size:13px; font-weight:600; letter-spacing:-.015em;}
.cm-rules{font-size:12px; line-height:1.8;}

/* 상세 시트 */
.cm-sheet{border-radius:24px; padding:26px 28px 28px; border:1px solid var(--border);}
.cm-d-title{font-size:24px; font-weight:800; letter-spacing:-.035em; line-height:1.38; text-wrap:balance;}
.cm-d-author b{font-size:14px; font-weight:700;}
.cm-body{font-size:15px; line-height:1.85; letter-spacing:-.012em;}
.cm-body h5{font-size:15.5px; font-weight:700;}
.cm-body pre{border-radius:12px; font-size:12.5px;}
.cm-actions{padding:12px 0;}
.cm-act{border-radius:10px; font-weight:600; padding:8px 14px; font-size:12.5px; letter-spacing:-.01em;}
.cm-recruit-panel{border-radius:16px; padding:16px 18px;}
.cm-recruit-panel h5{font-size:14px; font-weight:800;}
.cm-ctitle{font-size:15px; font-weight:800; letter-spacing:-.02em;}
.cm-comment{padding:14px 0;} .cm-comment .ch b{font-weight:700;} .cm-comment .ct{font-size:14px; line-height:1.7;}
.cm-comment .ca{font-weight:500;} .cm-comment.is-accepted{border-radius:14px;}
.cm-composer textarea, .cm-apply-form textarea, .cm-field input, .cm-field select, .cm-field textarea{border-radius:12px; transition:border-color .15s, box-shadow .15s;}
.cm-composer textarea:focus, .cm-apply-form textarea:focus, .cm-field input:focus, .cm-field select:focus, .cm-field textarea:focus{box-shadow:0 0 0 3px var(--accent-soft); outline:none;}
.cm-field label{font-weight:700; letter-spacing:-.015em;}
.cm-ed-cat{border-radius:14px; font-weight:600; letter-spacing:-.015em;}
.cm-badge{border-radius:6px; font-size:10.5px;}
@media (max-width:640px){
  .cm-sheet{padding:20px 18px 22px; border-radius:20px;} .cm-d-title{font-size:21px;}
  .cm-tabs{display:flex; width:100%;} .cm-toolbar input[type=search]{max-width:none; flex:1 1 100%;}
  .section-head h2{font-size:26px;}
}

.prompt-box textarea{font-size:15.5px; letter-spacing:-.015em;}
.prompt-actions .left{flex-wrap:wrap;}
.pill-btn{font-weight:600; letter-spacing:-.01em; transition:background .15s, border-color .15s, color .15s;}
.pill-btn svg{opacity:.85;}
.pill-btn.on{background:var(--accent-soft); color:var(--accent-ink); border-color:var(--accent);}
.join-row{display:flex; gap:8px; padding-top:10px; margin-top:10px; border-top:1px solid var(--border);}
.join-row[hidden]{display:none;}
.join-row input{flex:1; min-width:0; height:38px; padding:0 12px; border:1px solid var(--border-strong); border-radius:10px; background:var(--surface); color:var(--text); font:inherit; font-size:13px; outline:none;}
.join-row input:focus{border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft);}
.join-row .btn{height:38px; padding:0 18px; border-radius:10px;}


/* ===== css/shell.css ===== */
/* ---- 상단 메뉴바: 스크롤을 내려도 화면 위에 붙어 있고, 내리면 살짝 유리처럼 바뀐다 ---- */
.topbar{
  position:sticky; top:0; z-index:40;
  transition:background .25s ease, box-shadow .25s ease, border-color .25s ease, backdrop-filter .25s ease;
}
.topbar.scrolled{
  background:color-mix(in srgb, var(--bg-elevated) 82%, transparent);
  -webkit-backdrop-filter:blur(16px) saturate(1.4); backdrop-filter:blur(16px) saturate(1.4);
  border-bottom-color:var(--border-strong);
  box-shadow:0 10px 30px -18px rgba(0,0,0,.55);
}
/* 메뉴바가 붙어 있는 동안 화면 안의 고정 영역(캘린더·워크스페이스 상단 바 등)이 가려지지 않게 */
.view .ws-projectbar{position:relative;}

/* ---- 채팅방: 팀원 접속 상태 ---- */
.chat-pstrip{display:flex; align-items:center; gap:4px; margin-top:6px; flex-wrap:wrap;}
.chat-pstrip[hidden]{display:none;}
.chat-pav{position:relative; width:22px; height:22px; border-radius:50%; color:#fff; font-size:10px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; transition:opacity .2s;}
.chat-pav[data-pst="offline"]{opacity:.5;}
.chat-pav::after, .msg-row .mavatar[data-pst]::after{content:''; position:absolute; right:-2px; bottom:-2px; width:9px; height:9px; border-radius:50%; border:2px solid var(--bg-elevated); box-sizing:border-box; background:#94A3B8;}
.chat-pav[data-pst="online"]::after, .msg-row .mavatar[data-pst="online"]::after{background:#22C55E;}
.chat-pav[data-pst="away"]::after, .msg-row .mavatar[data-pst="away"]::after{background:#F59E0B;}
.chat-pav[data-pst="dnd"]::after, .msg-row .mavatar[data-pst="dnd"]::after{background:#EF4444;}
.msg-row .mavatar{position:relative;}
.chat-pmore{font-size:11px; color:var(--text-faint); padding:0 4px;}
#chatMembers{transition:color .2s;}

/* ---- 이벤트 카드 200장: 보이는 것만 그리고, 나타나는 애니메이션 지연은 앞쪽 몇 장까지만 ---- */
.pcard{animation-delay:calc(min(var(--i, 0), 10) * 35ms); content-visibility:auto; contain-intrinsic-size:auto 430px;}

/* ---- 채팅: 입력 중 표시 · 새 메시지로 이동 ---- */
.typing-row{animation:none;}
.typing-row .msg-name{font-size:11px; color:var(--text-faint);}
.typing-row .typing-dots{padding:10px 13px; gap:4px;}
.typing-row .typing-dots span{width:6px; height:6px; animation:typingBounce 1.1s infinite ease-in-out;}
.typing-row .typing-dots span:nth-child(2){animation-delay:.15s;} .typing-row .typing-dots span:nth-child(3){animation-delay:.3s;}
@keyframes typingBounce{0%,60%,100%{transform:translateY(0); opacity:.45;} 30%{transform:translateY(-4px); opacity:1;}}
@keyframes typingIn{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;}}
.chat-jump{position:absolute; left:50%; bottom:76px; transform:translateX(-50%); z-index:5; border:none; padding:7px 14px; border-radius:999px; background:var(--accent); color:#fff; font:inherit; font-size:12px; font-weight:700; cursor:pointer; box-shadow:0 8px 22px -8px rgba(59,130,246,.7); animation:typingIn .2s ease both;}
.chat-jump[hidden]{display:none;}
@media (prefers-reduced-motion:reduce){ .typing-row .typing-dots span{animation:none; opacity:.8;} }

/* ---- 화면 안 확인 창 ---- */
.cf-box{max-width:360px; text-align:center; align-items:center; gap:10px; animation:wgIn .22s cubic-bezier(.2,.9,.3,1) both;}
.cf-ic{font-size:30px;} .cf-box h3{margin:0; font-size:17px; letter-spacing:-.03em;} .cf-box p{margin:0; font-size:13px; color:var(--text-muted); line-height:1.6;}
.cf-row{display:flex; gap:8px; width:100%; margin-top:8px;} .cf-row .btn{flex:1; justify-content:center;}
.cf-ok.danger{background:#EF4444; border-color:#EF4444; color:#fff;} .cf-ok.danger:hover{filter:brightness(1.08);}

/* ===== css/widgets.css ===== */
/* ================= 위젯 갤러리 (애플 스타일) ================= */
.wg-head-actions{display:flex; gap:8px; align-items:center;}
.wg-head-actions .btn{border-radius:999px; font-weight:600;}
.wg-head-actions .btn.active{background:var(--accent); color:#fff; border-color:var(--accent);}
.wg-add-btn svg{width:13px; height:13px;}
#wgModal{background:rgba(6,10,24,.55); backdrop-filter:blur(14px) saturate(1.2); -webkit-backdrop-filter:blur(14px) saturate(1.2); z-index:80;}
.wg-sheet{width:min(920px, calc(94vw / var(--ui-zoom))); height:min(600px, calc(86vh / var(--ui-zoom))); display:grid; grid-template-columns:236px 1fr; border-radius:26px; overflow:hidden; background:var(--bg-elevated); border:1px solid var(--border-strong); box-shadow:0 40px 100px -20px rgba(0,0,0,.65); animation:wgIn .32s cubic-bezier(.2,.9,.3,1) both;}
@keyframes wgIn{from{opacity:0; transform:translateY(14px) scale(.97);} to{opacity:1; transform:none;}}
.wg-side{background:var(--surface-2); border-right:1px solid var(--border); padding:22px 14px 14px; display:flex; flex-direction:column; gap:12px; min-height:0;}
.wg-side-title{font-family:var(--font-brand); font-weight:800; font-size:22px; letter-spacing:-.04em; padding:0 8px;}
.wg-search input{width:100%; height:34px; border:none; border-radius:10px; padding:0 12px 0 32px; background:var(--surface-3) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 10px center; color:var(--text); font:inherit; font-size:13px; outline:none;}
.wg-search input:focus{box-shadow:0 0 0 3px var(--accent-soft);}
.wg-list{display:flex; flex-direction:column; gap:2px; overflow-y:auto; min-height:0;}
.wg-li{display:flex; align-items:center; gap:10px; padding:8px 8px; border:none; background:none; border-radius:12px; cursor:pointer; text-align:left; color:var(--text); font:inherit; transition:background .15s;}
.wg-li:hover{background:var(--surface-3);}
.wg-lic{width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:17px; background:color-mix(in srgb, var(--wc) 22%, var(--surface)); box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--wc) 35%, transparent); flex:0 0 auto;}
.wg-ltx{display:flex; flex-direction:column; flex:1; min-width:0;} .wg-ltx b{font-size:13.5px; font-weight:600; letter-spacing:-.02em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;} .wg-ltx small{font-size:11.5px; color:var(--text-faint);}
.wg-lck{color:#34C759; font-weight:800; font-size:14px; width:16px; text-align:center;}
.wg-main{display:flex; flex-direction:column; min-width:0; min-height:0;}
.wg-main-head{display:flex; justify-content:space-between; align-items:flex-end; padding:24px 28px 14px;}
.wg-main-head h3{font-family:var(--font-brand); font-size:24px; font-weight:800; letter-spacing:-.04em; margin:0;} .wg-main-head p{margin:4px 0 0; font-size:12.5px; color:var(--text-muted);}
.wg-done{border:none; background:var(--accent); color:#fff; font:inherit; font-weight:700; font-size:13.5px; padding:8px 20px; border-radius:999px; cursor:pointer; transition:transform .12s, filter .15s;} .wg-done:hover{filter:brightness(1.08);} .wg-done:active{transform:scale(.96);}
.wg-grid{flex:1; overflow-y:auto; padding:6px 28px 28px; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:26px 22px; align-content:start;}
.wg-card{display:flex; flex-direction:column; gap:10px; border-radius:22px; scroll-margin:12px;} .wg-card.wide{grid-column:span 2;}
.wg-card.flash .wg-prev{animation:wgFlash 1s ease;} @keyframes wgFlash{0%,100%{box-shadow:0 0 0 0 transparent;} 30%{box-shadow:0 0 0 4px var(--accent);}}
.wg-prev{position:relative; border-radius:22px; padding:22px 18px 18px; min-height:150px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--wc) 26%, var(--surface)) 0%, var(--surface-2) 70%); border:1px solid var(--border); transition:transform .25s cubic-bezier(.2,.9,.3,1), box-shadow .25s;}
.wg-card:hover .wg-prev{transform:translateY(-3px) scale(1.012); box-shadow:0 22px 40px -22px rgba(0,0,0,.6);}
.wgp{width:100%; max-width:300px; background:var(--bg-elevated); border-radius:16px; padding:13px 14px; box-shadow:0 10px 26px -12px rgba(0,0,0,.5); border:1px solid var(--border); display:flex; flex-direction:column; gap:9px; pointer-events:none;}
.wg-card.wide .wgp{max-width:420px;}
.wgp-title{font-size:12px; font-weight:700; letter-spacing:-.02em;}
.wgp-row{display:flex; align-items:center; gap:8px;} .wgp-t{font-size:10.5px; font-weight:700; color:var(--text-faint); width:34px; font-family:var(--font-brand);} .wgp-row i{width:6px; height:6px; border-radius:50%; flex:0 0 auto;}
.wgp-l{display:block; height:7px; border-radius:4px; background:var(--surface-3);} .wgp-l.s{height:5px; margin-top:5px;}
.wgp-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:8px;} .wgp-card{background:var(--surface-2); border-radius:10px; padding:9px; display:flex; flex-direction:column; gap:5px;} .wgp-card b{width:22px; height:22px; border-radius:7px; color:#fff; font-size:9px; display:flex; align-items:center; justify-content:center; font-family:var(--font-brand);}
.wgp-quote{display:flex; gap:9px; align-items:flex-start;} .wgp-quote i{width:22px; height:22px; border-radius:50%; background:var(--accent-2); flex:0 0 auto;} .wgp-quote div{flex:1; display:flex; flex-direction:column; gap:6px; padding-top:3px;}
.wg-badge{position:absolute; top:12px; left:12px; width:30px; height:30px; border-radius:50%; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.92); color:#1D4ED8; box-shadow:0 2px 8px rgba(0,0,0,.3); transition:transform .15s, background .2s;}
.wg-badge:hover{transform:scale(1.12);} .wg-badge:active{transform:scale(.92);}
.wg-badge.on{background:#34C759; color:#fff;}
.wg-cap{display:flex; flex-direction:column; gap:2px; padding:0 4px;} .wg-cap b{font-size:14px; font-weight:700; letter-spacing:-.02em;} .wg-cap small{font-size:12px; color:var(--text-muted); line-height:1.45;}
.wg-empty{grid-column:1/-1; text-align:center; color:var(--text-faint); padding:60px 0;}
@media (max-width:760px){ .wg-sheet{grid-template-columns:1fr; height:min(680px, calc(90vh / var(--ui-zoom)));} .wg-side{border-right:none; border-bottom:1px solid var(--border); padding:16px 14px 10px;} .wg-list{flex-direction:row; overflow-x:auto;} .wg-ltx small,.wg-lck{display:none;} .wg-li{flex:0 0 auto;} .wg-grid{grid-template-columns:1fr; padding:6px 16px 20px;} .wg-card.wide{grid-column:auto;} .wg-main-head{padding:16px 18px 10px;} }

/* 홈 편집 모드 */
.dyn-widget.pop{animation:wgPop .45s cubic-bezier(.2,1.2,.3,1) both;} @keyframes wgPop{from{opacity:0; transform:scale(.86);} to{opacity:1; transform:none;}}
.widget-dyn-grid.editing .dyn-widget{animation:wgJiggle .28s ease-in-out infinite alternate; cursor:grab; user-select:none;}
.widget-dyn-grid.editing .dyn-widget:nth-child(2n){animation-delay:-.14s; animation-direction:alternate-reverse;}
.widget-dyn-grid.editing .dyn-widget.dragging{opacity:.45; animation:none; cursor:grabbing;}
@keyframes wgJiggle{from{transform:rotate(-.55deg);} to{transform:rotate(.55deg);}}
.widget-dyn-grid.editing .dyn-widget *{pointer-events:none;} .widget-dyn-grid.editing .dyn-widget .dyn-close{pointer-events:auto;}
.widget-dyn-grid.editing .dyn-close{opacity:1; top:-9px; left:-9px; right:auto; width:26px; height:26px; background:#EF4444; color:#fff; box-shadow:0 3px 10px rgba(239,68,68,.5); z-index:2;}
.widget-dyn-grid.editing .dyn-close svg{display:none;} .widget-dyn-grid.editing .dyn-close::before{content:''; width:11px; height:2.6px; border-radius:2px; background:#fff;}
@media (prefers-reduced-motion:reduce){ .widget-dyn-grid.editing .dyn-widget{animation:none;} }

/* 실제 데이터 위젯 */
.wl-body{display:flex; flex-direction:column; gap:2px;}
.wl-row{display:flex; align-items:center; gap:9px; padding:7px 6px; margin:0 -6px; border-radius:9px; font-size:12.5px; transition:background .15s;} .wl-row.click{cursor:pointer;} .wl-row.click:hover{background:var(--surface-2);}
.wl-t{font-family:var(--font-brand); font-weight:700; font-size:11px; color:var(--text-faint); flex:0 0 42px; font-variant-numeric:tabular-nums;}
.wl-dot{width:7px; height:7px; border-radius:50%; flex:0 0 auto; background:var(--accent);}
.wl-x{flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-weight:500; letter-spacing:-.015em;}
.wl-empty{font-size:12.5px; color:var(--text-faint); padding:6px 0 4px;} .wl-more{font-size:11.5px; color:var(--text-faint); padding:2px 0;}
.wl-link{align-self:flex-start; border:none; background:none; color:var(--accent-ink); font:inherit; font-size:12px; font-weight:600; cursor:pointer; padding:6px 0 0;} .wl-link:hover{text-decoration:underline;}


/* ===== css/presence.css ===== */
/* ================= 내 상태 (온라인 · 자리비움 · 방해금지) ================= */
.pst-wrap{position:relative;}
.pst-btn{display:inline-flex; align-items:center; gap:7px; height:34px; padding:0 11px 0 10px; border-radius:999px; border:1px solid var(--border-strong); background:var(--surface-2); color:var(--text); font:inherit; font-size:12.5px; font-weight:600; letter-spacing:-.015em; cursor:pointer; transition:background .15s, border-color .15s;}
.pst-btn:hover{background:var(--surface-3);}
.pst-btn .pst-chev{opacity:.55; transition:transform .2s;} .pst-btn[aria-expanded="true"] .pst-chev{transform:rotate(180deg);}
.pst-btn.bad{color:#EF4444; border-color:rgba(239,68,68,.4); background:rgba(239,68,68,.1);}
.pst-ic{display:inline-flex; width:12px; height:12px; align-items:center; justify-content:center; flex:0 0 auto;}
.pst-btn[data-s="online"] .pst-ic svg{filter:drop-shadow(0 0 4px rgba(34,197,94,.7));}
.pst-menu{position:absolute; top:44px; right:0; width:318px; z-index:62; display:none; flex-direction:column; gap:2px; padding:8px; border-radius:20px; background:color-mix(in srgb, var(--bg-elevated) 94%, transparent); backdrop-filter:blur(22px) saturate(1.3); -webkit-backdrop-filter:blur(22px) saturate(1.3); border:1px solid var(--border-strong); box-shadow:0 30px 70px -22px rgba(0,0,0,.6); transform-origin:calc(100% - 40px) -8px;}
.pst-menu.open{display:flex; animation:ntIn .24s cubic-bezier(.2,.9,.3,1) both;}
.pst-head{font-family:var(--font-brand); font-weight:800; font-size:15px; letter-spacing:-.03em; padding:8px 10px 6px;}
.pst-opt{display:flex; align-items:center; gap:12px; padding:10px; border:none; background:none; border-radius:13px; cursor:pointer; text-align:left; color:var(--text); font:inherit; transition:background .15s;}
.pst-opt:hover{background:var(--surface-2);} .pst-opt.on{background:var(--accent-soft);}
.pst-opt .pst-ic{width:34px; height:34px; border-radius:11px; background:var(--surface-2);} .pst-opt.on .pst-ic{background:var(--surface);}
.pst-tx{display:flex; flex-direction:column; gap:2px; flex:1; min-width:0;} .pst-tx b{font-size:13.5px; font-weight:700; letter-spacing:-.02em;} .pst-tx small{font-size:11.8px; color:var(--text-faint); line-height:1.45; letter-spacing:-.01em;}
.pst-ck{width:18px; text-align:center; font-weight:800; color:var(--accent-ink); opacity:0;} .pst-opt.on .pst-ck{opacity:1;}
.pst-note{font-size:11.8px; color:var(--text-faint); padding:8px 12px 4px; line-height:1.5;} .pst-note b{color:var(--text-muted);}
.pst-srv{display:flex; align-items:center; gap:8px; margin:6px 4px 2px; padding:9px 10px; border-top:1px solid var(--border); font-size:12px; color:var(--text-muted);}
.pst-sdot{width:7px; height:7px; border-radius:50%; background:#22C55E; box-shadow:0 0 6px rgba(34,197,94,.6);} .pst-srv.bad .pst-sdot{background:#EF4444; box-shadow:0 0 6px rgba(239,68,68,.6);} .pst-srv.bad{color:#EF4444;}
.pst-srv button{margin-left:auto; border:none; background:none; color:var(--accent-ink); font:inherit; font-size:12px; font-weight:600; cursor:pointer; padding:2px 4px; border-radius:6px;} .pst-srv button:hover{text-decoration:underline;}
/* 아바타 위 상태 점 */
.avatar{position:relative;}
.avatar::after, .avatar-stack .mini[data-pst]::after{content:''; position:absolute; right:-3px; bottom:-3px; width:11px; height:11px; border-radius:50%; border:2px solid var(--bg-elevated); background:#94A3B8; box-sizing:border-box;}
.avatar[data-pst="online"]::after, .avatar-stack .mini[data-pst="online"]::after{background:#22C55E;}
.avatar[data-pst="away"]::after, .avatar-stack .mini[data-pst="away"]::after{background:#F59E0B;}
.avatar[data-pst="dnd"]::after, .avatar-stack .mini[data-pst="dnd"]::after{background:#EF4444;}
.avatar[data-pst="offline"]::after, .avatar-stack .mini[data-pst="offline"]::after{background:#94A3B8;}
.avatar-stack .mini{position:relative;} .avatar-stack .mini::after{right:-2px; bottom:-2px; width:9px; height:9px; border-width:1.5px;}
.nt-dnd{margin:0 20px 6px; padding:8px 12px; border-radius:11px; font-size:12px; font-weight:600; color:#EF4444; background:rgba(239,68,68,.1); border:1px solid rgba(239,68,68,.25);}
.nt-dnd[hidden]{display:none;}
@media (max-width:640px){ .pst-btn #pstLabel{display:none;} .pst-btn{padding:0 9px;} .pst-menu{position:fixed; top:64px; left:12px; right:12px; width:auto;} }


/* ===== css/guest.css ===== */
/* 게스트(로그인 전) 화면 */
.top-login{display:none; height:34px; padding:0 16px; border:none; border-radius:999px; background:var(--brand-grad); color:#fff; font:inherit; font-size:13px; font-weight:700; letter-spacing:-.01em; cursor:pointer; box-shadow:0 8px 20px -10px rgba(99,102,241,.7); transition:transform .15s, filter .15s;}
.top-login:hover{transform:translateY(-1px); filter:brightness(1.08);}
.app.guest-mode .top-login{display:inline-flex; align-items:center;}
.app.guest-mode .avatar-wrap, .app.guest-mode .pst-wrap{display:none;}
.guest-banner{display:none; align-items:center; gap:12px; width:100%; max-width:520px; margin:0 auto 14px; padding:10px 12px 10px 14px; border-radius:16px; background:linear-gradient(135deg, var(--accent-soft), var(--accent-2-soft)); border:1px solid var(--border-strong); text-align:left;}
.app.guest-mode .guest-banner{display:flex;}
.gb-ic{font-size:20px;} .gb-tx{display:flex; flex-direction:column; flex:1; min-width:0;} .gb-tx b{font-size:13.5px; letter-spacing:-.02em;} .gb-tx small{font-size:12px; color:var(--text-muted);}
.guest-banner button{border:none; background:var(--text); color:var(--bg-elevated); font:inherit; font-size:12.5px; font-weight:700; padding:7px 14px; border-radius:999px; cursor:pointer; flex:0 0 auto;}
