/* 정율 콜라보 디자인 토큰 - jungyoul 학생 보드에서 카피한 기준값 */
/* 학생 보드 변경 시 수동 동기화 필요 */

:root {
  --bg-base: #0d1117;
  --bg-primary: #161b22;
  --bg-secondary: #1c2333;
  --bg-tertiary: #242d3d;
  --bg-elevated: #2d3548;
  --bg-overlay: rgba(0, 0, 0, 0.6);

  --text-primary: #f0f6fc;
  --text-secondary: #8b949e;
  --text-muted: #484f58;
  --text-link: #58a6ff;

  --border-default: rgba(255, 255, 255, 0.08);

  --accent-primary: #7c6aef;
  --accent-like: #ff6b6b;
  --accent-success: #2dd4a8;
  --accent-warning: #fbbf24;
  --accent-gold: #f59e0b;
  --accent-cyan: #06b6d4;
  --accent-gradient: linear-gradient(135deg, #7c6aef, #06b6d4);
  --red: #ef4444;
  --green: #2dd4a8;
  --gold: #fbbf24;

  --tag-korean: #ef6351;
  --tag-math: #7c6aef;
  --tag-english: #00d2d3;
  --tag-science: #2dd4a8;
  --tag-etc: #8b949e;

  --glass-bg: rgba(22, 27, 34, 0.8);
  --glass-border: rgba(255, 255, 255, 0.08);
  --glass-blur: blur(20px) saturate(180%);
  --focus-ring: 0 0 0 3px rgba(124, 106, 239, 0.5);

  --header-height: 56px;

  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-8: 32px;
  --sp-10: 40px;

  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-full: 9999px;

  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
  --shadow-lg: 0 8px 30px rgba(0, 0, 0, 0.5);

  --transition-fast: 0.15s ease;
  --transition-normal: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);

  --font-display: 'Outfit', 'Pretendard', -apple-system, sans-serif;
  --font-body: 'Pretendard', -apple-system, sans-serif;
  --font-mono: 'SF Mono', 'Fira Code', monospace;
}

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-body);
  background: var(--bg-base);
  color: var(--text-primary);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  cursor: pointer;
  font-family: inherit;
  background: none;
  border: none;
  color: inherit;
}

input,
textarea,
select {
  font-family: inherit;
}

::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.2);
}
::selection {
  background: rgba(124, 106, 239, 0.3);
  color: #fff;
}


.app{min-height:100dvh;display:flex;flex-direction:column}

/* === Header === */
.nav{position:sticky;top:0;z-index:200;height:var(--header-height);display:flex;align-items:center;padding:0 var(--sp-6);background:var(--bg-primary);border-bottom:1px solid var(--border-default);backdrop-filter:blur(20px) saturate(180%)}
.nav__brand{display:flex;align-items:center;gap:var(--sp-2);text-decoration:none}
.nav__logo{font-family:var(--font-display);font-size:22px;font-weight:900;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-0.5px}
.nav__sub{font-size:13px;color:var(--text-secondary);font-weight:600;margin-left:6px}
.nav__right{display:flex;align-items:center;gap:var(--sp-2);margin-left:auto}
.nav__btn{padding:8px 18px;font-size:13px;font-weight:700;color:#fff;background:var(--accent-gradient);border:none;border-radius:var(--radius-md);transition:all .2s var(--spring);box-shadow:var(--shadow-sm);text-decoration:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.nav__btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.nav__btn--disabled{opacity:.5;cursor:not-allowed}
.nav__btn--disabled:hover{transform:none;box-shadow:var(--shadow-sm)}
.nav__user-btn{padding:7px 12px;font-size:13px;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:all .2s var(--transition-fast)}
.nav__user-btn:hover{color:var(--text-primary);border-color:rgba(255,255,255,.15)}
.nav__icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all .2s var(--transition-fast)}
.nav__icon-btn:hover{color:var(--text-primary);border-color:rgba(255,255,255,.15);background:var(--bg-secondary)}
.role-badge{font-size:10px;font-weight:800;padding:2px 6px;border-radius:var(--radius-sm);background:rgba(245,158,11,.16);color:var(--accent-warning);letter-spacing:.4px}

/* === Main === */
.main{flex:1;padding:var(--sp-4) var(--sp-6) var(--sp-10);max-width:1400px;margin:0 auto;width:100%}
.main--narrow{max-width:760px}
/* 상세 페이지는 좀 더 넓게 + 좌우 padding 축소 */
.main--detail{max-width:1700px;padding:var(--sp-4) var(--sp-4) var(--sp-10)}

/* === Detail page 2-column layout — 좌:우 = 1 : 1 (50:50) === */
.detail-grid{display:grid;grid-template-columns:minmax(320px,1fr) 1px minmax(320px,1fr);gap:0;align-items:stretch}
.detail-main{min-width:0;padding-right:var(--sp-4)}
.detail-side{position:sticky;top:calc(56px + var(--sp-3));max-height:calc(100vh - 80px);overflow-y:auto;display:flex;flex-direction:column;gap:0;scrollbar-gutter:stable;padding-left:var(--sp-4)}
.detail-side > .answers-section{margin-top:0}
.detail-side > .answer-form{margin-top:0}

/* 가운데 세로 디바이더 — 드래그로 좌우 비율 조정 */
.detail-divider{position:relative;width:1px;background:var(--border-default);cursor:col-resize;user-select:none;transition:background .15s}
.detail-divider::before{content:'';position:absolute;inset:0 -8px;cursor:col-resize}
.detail-divider:hover,.detail-divider.is-dragging{background:var(--accent-primary)}
.detail-divider__handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:48px;border-radius:3px;background:var(--border-default);opacity:0;transition:opacity .15s,background .15s;pointer-events:none}
.detail-divider:hover .detail-divider__handle,.detail-divider.is-dragging .detail-divider__handle{opacity:1;background:var(--accent-primary)}

@media (max-width:1100px){
  .detail-grid{grid-template-columns:1fr}
  .detail-main{padding-right:0}
  .detail-divider{display:none}
  .detail-side{position:static;max-height:none;overflow:visible;padding-left:0}
}

/* === Login required === */
.login-required{text-align:center;padding:80px 20px;color:var(--text-muted)}
.login-required .empty-state__icon{font-size:48px;margin-bottom:16px;opacity:.4}

/* === Login placeholder page === */
.login-wrap{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:40px 20px}
.login-card{max-width:480px;width:100%;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:36px;text-align:center}
.login-card__title{font-family:var(--font-display);font-size:20px;font-weight:800;color:var(--text-primary);margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:10px}
.login-card__title i{color:var(--accent-primary)}
.login-card__desc{font-size:13.5px;color:var(--text-secondary);line-height:1.7;margin-bottom:20px}
.login-card__desc code{font-family:var(--font-mono);background:var(--bg-secondary);padding:2px 6px;border-radius:var(--radius-sm);font-size:12px}
.login-card__form{display:flex;gap:8px;margin-bottom:14px}
.login-card__form .form-input{flex:1}
.login-card__hint{font-size:11.5px;color:var(--text-muted);line-height:1.6;padding-top:14px;border-top:1px solid var(--border-default)}

/* === Form === */
.form-header{display:flex;align-items:center;gap:16px;margin-bottom:var(--sp-5)}
.form-back{font-size:13px;color:var(--text-secondary);display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--radius-md);transition:all .15s}
.form-back:hover{color:var(--text-primary);background:var(--bg-secondary)}
.form-title{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--text-primary)}
.form-card{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:28px;display:flex;flex-direction:column;gap:22px}
.form-field{display:flex;flex-direction:column;gap:8px}
.form-label{font-size:13px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:4px}
.form-req{color:var(--red);font-size:12px}
.form-input{padding:11px 14px;font-size:14px;color:var(--text-primary);background:var(--bg-base);border:1px solid var(--border-default);border-radius:var(--radius-md);outline:none;transition:border-color .15s,box-shadow .15s;font-family:inherit}
.form-input:focus{border-color:var(--accent-primary);box-shadow:var(--focus-ring)}
.form-input::placeholder{color:var(--text-muted)}
.form-textarea{resize:vertical;min-height:200px;line-height:1.7}
.form-hint{font-size:11.5px;color:var(--text-muted)}
.chip-group{display:flex;flex-wrap:wrap;gap:8px}
.chip--lg{padding:8px 16px;font-size:13px}
.chip--sm{padding:4px 10px;font-size:11.5px}
.answer-form__author-mode{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:8px;border-top:1px dashed var(--border-default)}
.answer-form__author-mode .form-hint{margin-right:4px}
.chip--lg.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);box-shadow:0 0 0 4px rgba(124,106,239,.12)}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px;border-top:1px solid var(--border-default);padding-top:18px}
.btn-primary{padding:10px 22px;font-size:14px;font-weight:700;color:#fff;background:var(--accent-gradient);border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;gap:8px;box-shadow:var(--shadow-sm);transition:all .2s var(--spring)}
.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-primary:disabled{opacity:.6;cursor:not-allowed}
.btn-secondary{padding:10px 22px;font-size:14px;font-weight:600;color:var(--text-secondary);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:all .15s}
.btn-secondary:hover{color:var(--text-primary);border-color:rgba(255,255,255,.15);background:var(--bg-secondary)}

/* === Detail page: question card === */
.q-card{position:relative;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:28px;margin-top:var(--sp-3);margin-bottom:var(--sp-6)}
.q-card.is-accepted{box-shadow:inset 3px 0 0 var(--accent-warning)}
.q-card.is-l3{border-color:rgba(239,68,68,.32);box-shadow:inset 4px 0 0 var(--red), 0 0 0 1px rgba(239,68,68,.1)}
.q-card__promotion{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;font-size:12px;color:var(--text-secondary);background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);padding:8px 12px;margin-top:10px;margin-bottom:6px}
.q-card__promotion i.fa-star{color:var(--red);font-size:11px}
.q-card__promotion strong{color:var(--red);font-weight:800;letter-spacing:.3px}
.q-card__promotion .dot{color:var(--text-muted)}
.q-card__promotion-reason{font-style:italic;color:var(--text-primary)}

.lvl-promote-btn,.lvl-demote-btn{padding:5px 12px;font-size:11.5px;font-weight:700;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .15s;letter-spacing:.3px}
.lvl-promote-btn{color:var(--red);background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.32)}
.lvl-promote-btn:hover{background:rgba(239,68,68,.2);color:#ff7b7b;transform:translateY(-1px)}
.lvl-demote-btn{color:var(--text-secondary);background:transparent;border:1px solid var(--border-default)}
.lvl-demote-btn:hover{color:var(--text-primary);border-color:rgba(255,255,255,.18);background:var(--bg-secondary)}
.q-card__meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.q-card__title{font-family:var(--font-display);font-size:24px;font-weight:800;color:var(--text-primary);line-height:1.35;margin-bottom:10px;word-break:break-word}
.q-card__author{font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.q-card__author .dot{color:var(--text-muted)}
.q-card__content{font-size:15px;line-height:1.8;color:var(--text-primary);margin-top:18px;word-break:break-word;white-space:pre-wrap}

/* === KT report card === */
.kt-report{display:inline-flex;align-items:center;gap:10px;padding:12px 16px;margin-top:16px;background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.25);border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);font-size:13.5px;transition:all .15s;max-width:100%}
.kt-report:hover{background:rgba(245,158,11,.14);border-color:rgba(245,158,11,.4);transform:translateY(-1px)}
.kt-report > i:first-child{font-size:20px;color:var(--accent-warning);flex-shrink:0}
.kt-report__name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:340px}
.kt-report__size{font-size:11.5px;color:var(--text-muted);margin-left:4px;flex-shrink:0}
.kt-report__dl{margin-left:8px;color:var(--accent-warning);font-size:14px;flex-shrink:0}

/* === Image gallery === */
.img-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;margin-top:18px}
.img-gallery__item{display:block;aspect-ratio:1;overflow:hidden;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-tertiary);transition:transform .15s,border-color .15s;padding:0;cursor:zoom-in}
.img-gallery__item:hover{transform:scale(1.02);border-color:var(--accent-primary)}
.img-gallery__item img{width:100%;height:100%;object-fit:cover;display:block}

/* === Answer single image (legacy) === */
.ans-image{margin-top:14px;display:flex}
.ans-image__btn{padding:0;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-base);cursor:zoom-in;display:block;max-width:100%;overflow:hidden;transition:border-color .15s,transform .15s}
.ans-image__btn:hover{border-color:var(--accent-primary);transform:translateY(-1px)}
.ans-image__btn img{display:block;max-width:100%;max-height:480px;object-fit:contain}

/* === Answer image gallery (large preview when single, grid when multiple) === */
.img-gallery--ans{margin-top:14px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.img-gallery--ans .img-gallery__item{aspect-ratio:auto;max-height:320px}
.img-gallery--ans .img-gallery__item img{height:auto;max-height:320px;object-fit:contain;background:var(--bg-base)}

/* === File cards (answer & question attachments) === */
.ans-files{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.file-card{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-base);border:1px solid var(--border-default);border-radius:var(--radius-md);text-decoration:none;color:var(--text-primary);font-size:13px;transition:all .15s}
.file-card:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);transform:translateY(-1px)}
.file-card__icon{font-size:24px;flex-shrink:0;width:30px;text-align:center}
.file-card__body{flex:1;min-width:0}
.file-card__name{font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-card__meta{font-size:11.5px;color:var(--text-muted);margin-top:2px}
.file-card__dl{font-size:14px;color:var(--text-muted);flex-shrink:0;margin-left:6px}
.file-card:hover .file-card__dl{color:var(--accent-primary)}
.fc--pdf{color:#ef4444}
.fc--doc{color:#2563eb}
.fc--xls{color:#16a34a}
.fc--ppt{color:#ea580c}
.fc--hwp{color:#7c3aed}
.fc--zip{color:#fbbf24}
.fc--txt{color:#64748b}
.fc--default{color:var(--text-secondary)}

/* === Answer compose: attachment area === */
.ans-attach{display:flex;flex-direction:column;gap:10px;padding:10px;background:var(--bg-base);border:1px dashed var(--border-default);border-radius:var(--radius-md)}
.ans-attach__btn{padding:10px 14px;font-size:13px;font-weight:600;color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;gap:8px;text-align:left;transition:background .15s}
.ans-attach__btn:hover{background:var(--bg-secondary);color:var(--text-primary)}
.ans-attach__btn i{color:var(--accent-primary);font-size:14px}
.ans-attach__list{display:flex;flex-wrap:wrap;gap:8px}
.ans-attach__list:empty{display:none}
.att-item{position:relative;border-radius:var(--radius-md);overflow:hidden;transition:transform .15s}
.att-item--image{width:96px;height:96px;border:1px solid var(--border-default);background:var(--bg-tertiary)}
.att-item--image img{width:100%;height:100%;object-fit:cover;display:block}
.att-item--file{display:flex;align-items:center;gap:10px;padding:8px 12px;padding-right:32px;background:var(--bg-secondary);border:1px solid var(--border-default);min-width:200px;max-width:340px}
.att-file-icon{font-size:20px;flex-shrink:0;width:24px;text-align:center}
.att-file-body{flex:1;min-width:0}
.att-file-name{font-size:12.5px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.att-file-meta{font-size:10.5px;color:var(--text-muted);margin-top:1px}
.att-overlay{position:absolute;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px}
.att-overlay--error{background:rgba(239,68,68,.55)}
.att-remove{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;border:none;cursor:pointer;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s}
.att-item--file .att-remove{top:50%;transform:translateY(-50%);right:6px;background:transparent;color:var(--text-muted);width:24px;height:24px}
.att-remove:hover{background:rgba(239,68,68,.95);color:#fff}
.att-item--file .att-remove:hover{background:rgba(239,68,68,.95)}
.att-item.status-error{outline:1px solid var(--red)}

/* === KT 보고서 섹션 (협업 완료 후 산출물) === */
.kt-section{margin-top:var(--sp-5);padding:18px;background:rgba(245,158,11,.05);border:1px solid rgba(245,158,11,.25);border-radius:var(--radius-lg)}
.kt-section__head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.kt-section__head h2{font-family:var(--font-display);font-size:18px;font-weight:800;color:var(--text-primary);display:flex;align-items:center;gap:10px}
.kt-section__head h2 i{color:var(--accent-warning)}
.kt-report--big{display:flex;align-items:center;gap:14px;padding:16px 18px;background:#fff;color:#111;border:1px solid rgba(245,158,11,.4);border-radius:var(--radius-md);text-decoration:none;font-size:14px;transition:all .15s}
.kt-report--big:hover{border-color:var(--accent-warning);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.kt-report--big > i:first-child{font-size:28px;color:var(--accent-warning);flex-shrink:0}
.kt-report--big .kt-report__name{flex:1;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111}
.kt-report--big .kt-report__size{font-size:12px;color:#666;flex-shrink:0}
.kt-report--big .kt-report__dl{font-size:16px;color:var(--accent-warning);flex-shrink:0}
.kt-empty{padding:24px;background:var(--bg-base);border:1px dashed rgba(245,158,11,.3);border-radius:var(--radius-md);color:var(--text-secondary);font-size:13px;display:flex;align-items:center;gap:12px}
.kt-empty i{font-size:24px;color:var(--accent-warning);flex-shrink:0}
.kt-empty--locked{border-color:var(--border-default)}
.kt-empty--locked i{color:var(--text-muted)}
.kt-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;justify-content:flex-end}

.kt-pending{margin-top:12px;padding:12px;background:rgba(124,106,239,.06);border:1px solid rgba(124,106,239,.32);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:10px}
.kt-pending__card{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-base);border:1px solid var(--border-default);border-radius:var(--radius-md)}
.kt-pending__icon{font-size:24px;flex-shrink:0;width:30px;text-align:center;color:var(--accent-primary)}
.kt-pending__body{flex:1;min-width:0}
.kt-pending__name{font-size:13px;font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kt-pending__meta{font-size:11.5px;color:var(--accent-primary);margin-top:2px;font-weight:600}
.kt-pending__change{width:32px;height:32px;border-radius:var(--radius-sm);background:transparent;border:1px solid var(--border-default);color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;transition:all .15s}
.kt-pending__change:hover{color:var(--accent-primary);border-color:rgba(124,106,239,.4);background:rgba(124,106,239,.08)}
.kt-pending__actions{display:flex;justify-content:flex-end;gap:8px}

/* === 협업 완료 상태 === */
.proposals-section.is-completed{background:rgba(245,158,11,.04);border-color:rgba(245,158,11,.25)}
.proposals-section.is-completed .proposals-locked{background:rgba(245,158,11,.18);color:var(--accent-warning)}
.proposals-section.is-completed > *:not(.proposals-section__head){opacity:.55;pointer-events:none;filter:grayscale(.2)}

/* === 협업 제안 섹션 (상세) === */
.proposals-section{margin-top:var(--sp-6);padding:18px;background:rgba(124,106,239,.04);border:1px solid rgba(124,106,239,.18);border-radius:var(--radius-lg)}
.proposals-section__head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.proposals-section__head h2{font-family:var(--font-display);font-size:18px;font-weight:800;color:var(--text-primary);display:flex;align-items:center;gap:10px}
.proposals-section__head h2 i{color:var(--accent-primary)}
.proposals-locked{font-size:12px;font-weight:700;color:var(--accent-warning);background:rgba(245,158,11,.12);padding:4px 10px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:5px}

.proposal-form{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:14px;display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.proposal-form__label{font-size:13px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.proposal-form__label i{color:var(--accent-primary)}
.proposal-form__footer{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}

.proposals-list{display:flex;flex-direction:column;gap:10px}
.proposal-card{display:flex;align-items:flex-start;gap:12px;padding:14px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:all .15s}
.proposal-card.is-selected{border-color:rgba(245,158,11,.5);background:linear-gradient(180deg,rgba(245,158,11,.06),transparent 60%);box-shadow:inset 3px 0 0 var(--accent-warning)}
.proposal-card.is-mine{border-color:rgba(124,106,239,.4)}
.prop-checkbox{margin-top:4px;width:18px;height:18px;cursor:pointer;accent-color:var(--accent-warning);flex-shrink:0}
.proposal-card__body{flex:1;min-width:0}
.proposal-card__head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--text-secondary);margin-bottom:6px}
.proposal-card__author{font-weight:700;color:var(--text-primary);display:inline-flex;align-items:center;gap:5px}
.proposal-card__author i{color:var(--text-muted);font-size:11px}
.proposal-card__date{color:var(--text-muted);font-size:11.5px}
.proposal-card__content{font-size:13.5px;line-height:1.7;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}
.badge-mine{font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:var(--radius-sm);background:rgba(124,106,239,.15);color:#a89bff;letter-spacing:.4px}

.proposals-section__footer{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-default);flex-wrap:wrap}

.empty-state--inline{padding:24px 16px;background:transparent;border:1px dashed var(--border-default);border-radius:var(--radius-md)}

/* === L3 신규 협업제안 추가 스타일 === */
.proposals-active{font-size:12px;font-weight:700;color:#3aa873;background:rgba(58,168,115,.14);padding:4px 10px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:5px}
.badge-phase{font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:var(--radius-sm);letter-spacing:.4px}
.badge-phase--l2{background:rgba(148,163,184,.15);color:#94a3b8}
.badge-phase--l3{background:rgba(124,106,239,.18);color:#a89bff}
.badge-rejected{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:var(--radius-sm);background:rgba(239,68,68,.12);color:#ef4444;display:inline-flex;align-items:center;gap:4px}
.proposal-card.is-rejected{opacity:.65}
.proposal-card__actions{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border-default);flex-wrap:wrap}
/* 자기 제안 카드의 [수정][삭제] — head 오른쪽 끝 */
.proposal-card__mine-actions{margin-left:auto;display:inline-flex;gap:4px}
.proposal-card__edit-btn,.proposal-card__del-btn{padding:3px 9px;font-size:11px;font-weight:700;background:transparent;border:1px solid var(--border-default);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .15s}
.proposal-card__edit-btn:hover{color:var(--accent-primary);border-color:rgba(124,106,239,.4);background:rgba(124,106,239,.08)}
.proposal-card__del-btn:hover{color:var(--red);border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.08)}
.proposal-form[hidden]{display:none !important}
.proposal-card__actions .btn-sm{padding:5px 12px;font-size:12px}
.l2-history{margin-bottom:14px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:10px 14px}
.l2-history>summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--text-secondary);display:flex;align-items:center;gap:8px;list-style:none;outline:none}
.l2-history>summary::-webkit-details-marker{display:none}
.l2-history>summary::before{content:'\f105';font-family:'Font Awesome 6 Free';font-weight:900;color:var(--text-muted);transition:transform .15s;width:10px;text-align:center}
.l2-history[open]>summary::before{transform:rotate(90deg)}
.l2-history>summary i{color:var(--accent-primary)}
.l2-history .proposals-list--readonly{margin-top:12px}
.l2-history .proposals-list--readonly .proposal-card{background:rgba(148,163,184,.04)}
.l2-history-section{margin-top:var(--sp-6);padding:14px 18px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-lg);opacity:.92}
.l2-history-section__head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.l2-history-section__head h2{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--text-secondary);display:flex;align-items:center;gap:8px;margin:0}
.l2-history-section__head h2 i{color:var(--text-muted)}
.l2-history-section .l2-history{margin-bottom:0}
.proposals-section__head .badge-phase{font-size:12px;padding:3px 10px;letter-spacing:.6px}
.proposals-section__head .proposals-active{box-shadow:0 0 0 1px rgba(58,168,115,.3) inset;animation:pulseSubtle 2.4s ease-in-out infinite}
@keyframes pulseSubtle{0%,100%{box-shadow:0 0 0 1px rgba(58,168,115,.3) inset}50%{box-shadow:0 0 0 1px rgba(58,168,115,.55) inset,0 0 0 4px rgba(58,168,115,.08)}}

/* === Drawing modal === */
.draw-modal{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;padding:20px;animation:lbFadeIn .2s ease-out}
.draw-modal[hidden]{display:none}
.draw-modal__inner{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);max-width:1100px;width:100%;max-height:96vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.6)}
.draw-modal__head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-default)}
.draw-modal__head h3{font-family:var(--font-display);font-size:16px;font-weight:800;color:var(--text-primary);display:flex;align-items:center;gap:8px}
.draw-modal__head h3 i{color:var(--accent-primary)}
.draw-modal__close{width:36px;height:36px;border-radius:var(--radius-sm);background:transparent;border:1px solid var(--border-default);color:var(--text-secondary);cursor:pointer;font-size:14px;display:inline-flex;align-items:center;justify-content:center;transition:all .15s}
.draw-modal__close:hover{color:var(--text-primary);background:var(--bg-secondary)}
.draw-bg-strip{display:flex;gap:6px;padding:10px 16px;border-bottom:1px solid var(--border-default);background:var(--bg-secondary);overflow-x:auto;align-items:center;scrollbar-width:thin}
.draw-bg-strip:empty{display:none}
.draw-bg-item{position:relative;width:64px;height:64px;flex-shrink:0;padding:0;background:var(--bg-base);border:2px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-muted);font-size:10px;font-weight:600;overflow:hidden;transition:all .15s}
.draw-bg-item:hover{border-color:rgba(255,255,255,.2);color:var(--text-primary)}
.draw-bg-item.active{border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(124,106,239,.3);color:var(--accent-primary)}
.draw-bg-item img{width:100%;height:100%;object-fit:cover;display:block}
.draw-bg-item--none i{font-size:18px}
.draw-bg-item--upload{cursor:pointer}
.draw-bg-item--upload i{font-size:20px;color:var(--accent-primary)}
.draw-bg-item--upload:hover{border-color:var(--accent-primary);background:rgba(124,106,239,.06)}

.draw-toolbar{display:flex;flex-wrap:wrap;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border-default);background:var(--bg-base);align-items:center}
.draw-tool-group{display:flex;align-items:center;gap:6px;padding:0 8px;border-right:1px solid var(--border-default)}
.draw-tool-group:last-child{border-right:none}
.draw-tool-group--right{margin-left:auto}
.draw-tool-btn{padding:8px 12px;font-size:12.5px;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s}
.draw-tool-btn:hover{color:var(--text-primary);border-color:rgba(255,255,255,.15)}
.draw-tool-btn.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}
.draw-tool-btn--danger:hover{color:var(--red);border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.08)}
.draw-label{display:inline}
@media (max-width:600px){.draw-label{display:none}}
.draw-color{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .15s,border-color .15s}
.draw-color:hover{transform:scale(1.1)}
.draw-color.active{border-color:#fff;box-shadow:0 0 0 2px var(--accent-primary)}
.draw-color-picker{width:32px;height:32px;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:transparent;cursor:pointer;padding:2px}
.draw-width{width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s}
.draw-width:hover{border-color:rgba(255,255,255,.15)}
.draw-width.active{background:var(--accent-primary);border-color:var(--accent-primary)}
.draw-width span{display:block;border-radius:50%;background:var(--text-primary)}
.draw-width.active span{background:#fff}
.draw-canvas-wrap{flex:1;overflow:auto;padding:16px;background:#1a1f2b;display:flex;align-items:center;justify-content:center}
#drawCanvas{background:#fff;border-radius:var(--radius-sm);box-shadow:0 4px 20px rgba(0,0,0,.3);max-width:100%;height:auto;cursor:crosshair;touch-action:none}
.draw-modal__footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 16px;border-top:1px solid var(--border-default);background:var(--bg-primary)}

/* === Answer attach row === */
.ans-attach__row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* === Drawing slot (answer compose) === */
.ans-drawing-slot{margin-top:10px;padding:14px;background:var(--bg-base);border:1px dashed rgba(245,158,11,.25);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:10px}
.ans-drawing-slot[hidden]{display:none !important}
.ans-drawing-slot__head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ans-drawing-slot__title{font-size:13px;font-weight:700;color:var(--accent-warning);display:inline-flex;align-items:center;gap:6px}
.ans-drawing-slot__add{padding:14px 20px;font-size:13px;font-weight:600;color:var(--accent-warning);background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .15s;align-self:flex-start}
.ans-drawing-slot__add:hover{background:rgba(245,158,11,.18);transform:translateY(-1px)}
.ans-drawing-slot__preview{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.ans-drawing-slot__preview img{max-width:100%;max-height:280px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:#fff;display:block}
.ans-drawing-slot__btns{display:flex;gap:8px;flex-wrap:wrap}
.ans-drawing-slot__btn{padding:6px 12px;font-size:12px;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .15s}
.ans-drawing-slot__btn:hover{color:var(--text-primary);border-color:rgba(255,255,255,.15)}
.ans-drawing-slot__btn--del:hover{color:var(--red);border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.08)}

/* === Answer card: drawing display === */
.ans-drawing{margin-top:14px;padding:12px;background:rgba(245,158,11,.05);border:1px solid rgba(245,158,11,.2);border-radius:var(--radius-md)}
.ans-drawing__label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--accent-warning);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
.ans-drawing__btn{padding:0;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:#fff;cursor:zoom-in;display:block;max-width:100%;overflow:hidden;transition:border-color .15s,transform .15s}
.ans-drawing__btn:hover{border-color:var(--accent-warning);transform:translateY(-1px)}
.ans-drawing__btn img{display:block;max-width:100%;max-height:520px;object-fit:contain}

/* === Lightbox === */
.lightbox{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.94);display:flex;align-items:center;justify-content:center;padding:60px;animation:lbFadeIn .2s ease-out}
.lightbox[hidden]{display:none}
.lightbox__img{max-width:100%;max-height:100%;object-fit:contain;display:block;user-select:none;border-radius:var(--radius-sm);box-shadow:0 12px 60px rgba(0,0,0,.5)}
.lightbox__close{position:fixed;top:20px;right:24px;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.18);cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);transition:all .15s;z-index:1}
.lightbox__close:hover{background:rgba(255,255,255,.18);transform:scale(1.05)}
.lightbox__nav{position:fixed;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.15);cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(8px);transition:all .15s;z-index:1}
.lightbox__prev{left:24px}
.lightbox__next{right:24px}
.lightbox__nav:hover:not(:disabled){background:rgba(255,255,255,.18);transform:translateY(-50%) scale(1.05)}
.lightbox__nav:disabled{opacity:.25;cursor:not-allowed}
.lightbox__info{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);font-size:13px;font-weight:600;color:rgba(255,255,255,.92);background:rgba(0,0,0,.5);padding:7px 16px;border-radius:var(--radius-full);backdrop-filter:blur(8px);z-index:1}
@keyframes lbFadeIn{from{opacity:0}to{opacity:1}}
@media (max-width:600px){
  .lightbox{padding:30px 12px}
  .lightbox__close{top:12px;right:12px;width:40px;height:40px}
  .lightbox__nav{width:42px;height:42px}
  .lightbox__prev{left:8px}
  .lightbox__next{right:8px}
}

/* === Answers section: inline 헤더 + 카드 박스 (작성 폼과 분리) === */
.answers-section{margin-top:var(--sp-6)}
.answers-section__header{display:flex;align-items:center;margin-bottom:14px}
.answers-section__header h2{font-family:var(--font-display);font-size:18px;font-weight:800;color:var(--text-primary);display:flex;align-items:center;gap:10px}
.answers-section__header h2 i{color:var(--accent-primary)}
.ans-count{font-size:14px;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);padding:2px 10px;border-radius:var(--radius-full);min-width:28px;text-align:center}
.answers-list{display:flex;flex-direction:column;gap:0;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}
.answers-list:empty{display:none}
.answers-list .empty-state{padding:48px 20px}
/* 답변이 있을 때만 list와 폼을 하나의 박스처럼 연결 */
.detail-side > .answers-section .answers-list:not(:empty){border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none}
.detail-side > .answers-section:has(.answers-list:not(:empty)) + .answer-form{margin-top:0;border-top:none;border-top-left-radius:0;border-top-right-radius:0}

/* === Answer card (박스 안의 라인 구분 항목) === */
.ans-card{position:relative;background:transparent;border:none;border-radius:0;padding:22px;border-bottom:1px solid var(--border-default)}
.ans-card:last-child{border-bottom:none}
.ans-card.is-accepted{box-shadow:inset 6px 0 0 var(--accent-warning),0 1px 0 rgba(245,158,11,.18);background:linear-gradient(180deg,rgba(245,158,11,.12) 0%,rgba(245,158,11,.04) 60%,transparent 100%);padding-top:14px}
.ans-accepted-banner{display:flex;align-items:center;gap:10px;margin:-22px -22px 14px;padding:11px 22px;background:linear-gradient(90deg,rgba(245,158,11,.20),rgba(245,158,11,.06));border-bottom:1px solid rgba(245,158,11,.32);font-family:var(--font-display);font-size:13.5px;font-weight:800;color:var(--accent-warning);letter-spacing:-.2px}
.ans-accepted-banner i{font-size:15px;color:var(--accent-warning);text-shadow:0 0 8px rgba(245,158,11,.5)}
.ans-accepted-banner .ans-accepted-banner__kp{margin-left:auto;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:var(--radius-full);background:rgba(245,158,11,.18);color:#ffd87a;letter-spacing:.3px}

/* 채택 후기 박스 (답변 카드 안) */
.ans-feedback{margin-top:12px;padding:12px 14px;border-radius:var(--radius-md);background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.22);display:flex;flex-direction:column;gap:8px}
.ans-feedback__head{font-size:12px;font-weight:800;color:var(--accent-warning);display:inline-flex;align-items:center;gap:6px}
.ans-feedback__head i{font-size:11px}
.ans-feedback__tags{display:flex;flex-wrap:wrap;gap:6px}
.ans-feedback__tag{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:700;color:var(--text-primary);background:var(--bg-primary);border:1px solid rgba(245,158,11,.28);border-radius:var(--radius-full)}
.ans-feedback__emoji{font-size:13px}
.ans-feedback__comment{font-size:13px;line-height:1.6;color:var(--text-secondary);padding:8px 12px;background:var(--bg-primary);border-radius:var(--radius-sm);border-left:3px solid rgba(245,158,11,.36);white-space:pre-wrap}

/* 채택 모달 */
.accept-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.accept-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(2px)}
.accept-modal__dialog{position:relative;width:100%;max-width:460px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:0 18px 60px rgba(0,0,0,.45);overflow:hidden;animation:slideUp .2s ease}
.accept-modal__head{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border-default);background:rgba(245,158,11,.06)}
.accept-modal__head h3{margin:0;font-family:var(--font-display);font-size:16px;font-weight:800;color:var(--text-primary);display:inline-flex;align-items:center;gap:9px}
.accept-modal__head h3 i{color:var(--accent-warning)}
.accept-modal__close{margin-left:auto;background:transparent;border:none;color:var(--text-muted);width:28px;height:28px;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:14px;transition:all .15s}
.accept-modal__close:hover{background:var(--bg-tertiary);color:var(--text-primary)}
.accept-modal__body{padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.accept-modal__hint{font-size:12.5px;color:var(--text-secondary)}
.accept-modal__tags{display:flex;flex-direction:column;gap:6px}
.accept-tag{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:600;color:var(--text-primary);text-align:left;transition:all .15s}
.accept-tag:hover{border-color:rgba(245,158,11,.32);background:rgba(245,158,11,.04)}
.accept-tag.is-on{border-color:rgba(245,158,11,.5);background:rgba(245,158,11,.12);color:#ffd87a}
.accept-tag__emoji{font-size:16px}
.accept-modal__comment-label{font-size:11.5px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}
.accept-modal__comment{width:100%;min-height:70px;padding:10px 12px;font-family:var(--font-body);font-size:13px;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);resize:vertical;line-height:1.5}
.accept-modal__comment:focus{outline:none;border-color:var(--accent-primary)}
.accept-modal__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--border-default);background:var(--bg-secondary)}
.ans-card.is-mine{background:rgba(124,106,239,.04)}
.ans-card__head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;font-size:13px}
.ans-card__author{font-weight:700;color:var(--text-primary);display:inline-flex;align-items:center;gap:6px}
.ans-card__author i{color:var(--text-muted);font-size:11px}
.ans-card__date{color:var(--text-muted);font-size:12px}
.ans-card__content{font-size:14px;line-height:1.75;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}
.ans-card__actions{margin-left:auto;display:flex;align-items:center;gap:6px}
.ans-accept-btn{padding:6px 14px;font-size:12px;font-weight:700;color:var(--accent-warning);background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.32);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .15s}
.ans-accept-btn:hover{background:rgba(245,158,11,.22);color:#ffd87a}
.ans-accept-btn--undo{color:var(--text-secondary);background:transparent;border-color:var(--border-default)}
.ans-accept-btn--undo:hover{background:var(--bg-tertiary);color:var(--red);border-color:rgba(239,68,68,.3)}
.ans-edit-btn,.ans-del-btn{width:30px;height:30px;font-size:13px;color:var(--text-muted);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s;text-decoration:none}
.ans-edit-btn:hover{color:var(--accent-primary);border-color:rgba(124,106,239,.4);background:rgba(124,106,239,.08)}
.ans-del-btn:hover{color:var(--red);border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.08)}

.q-card__actions{margin-left:auto;display:flex;gap:6px;align-items:center}
.q-card__edit,.q-card__del{width:34px;height:34px;font-size:14px;color:var(--text-muted);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s;text-decoration:none}
.q-card__edit:hover{color:var(--accent-primary);border-color:rgba(124,106,239,.4);background:rgba(124,106,239,.08)}
.q-card__del:hover{color:var(--red);border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.08)}

/* === Answer inline edit === */
.ans-card.is-editing{outline:1px solid var(--accent-primary);outline-offset:-1px}
.ans-edit-form{margin-top:10px;display:flex;flex-direction:column;gap:10px}
.ans-edit-form textarea{min-height:140px;line-height:1.7}
.ans-edit-form__footer{display:flex;justify-content:flex-end;gap:8px}

/* === Comments mode (L2/L3): 분리 구조 동일, padding만 컴팩트 === */
.answers-section--comments .ans-card{padding:14px 20px}
.answers-section--comments .ans-card__content{font-size:13.5px;line-height:1.65}
.answers-section--comments .empty-state{padding:32px 20px}
.answers-section--comments + .answer-form{padding:16px 20px}

/* === Replies (대댓글) === */
.replies-section{margin-top:10px;padding:8px 0 0;border-top:1px dashed var(--border-default)}
.replies-list{display:flex;flex-direction:column;gap:0;margin-bottom:6px;padding-left:20px;border-left:2px solid rgba(124,106,239,.18)}
.reply-card{padding:8px 12px;background:transparent;position:relative}
.reply-card.is-mine{background:rgba(124,106,239,.04)}
.reply-card__head{display:flex;align-items:center;gap:8px;margin-bottom:3px;font-size:11.5px;color:var(--text-muted)}
.reply-card__author{font-weight:700;color:var(--text-primary);display:inline-flex;align-items:center;gap:4px;font-size:12px}
.reply-card__author i{font-size:10px;color:var(--text-muted)}
.reply-card__date{color:var(--text-muted);font-size:11px}
.reply-card__actions{margin-left:auto;display:flex;gap:4px;opacity:0;transition:opacity .15s}
.reply-card:hover .reply-card__actions{opacity:1}
.reply-edit-btn,.reply-del-btn{width:24px;height:24px;border-radius:var(--radius-sm);background:transparent;border:1px solid var(--border-default);color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:11px;transition:all .15s;padding:0}
.reply-edit-btn:hover{color:var(--accent-primary);border-color:rgba(124,106,239,.4);background:rgba(124,106,239,.08)}
.reply-del-btn:hover{color:var(--red);border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.08)}
.reply-card__content{font-size:13px;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}
.reply-card.is-editing{outline:1px dashed var(--accent-primary)}

.reply-trigger-wrap{padding-left:20px}
.reply-toggle-btn{padding:4px 10px;font-size:11.5px;font-weight:600;color:var(--text-muted);background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .15s}
.reply-toggle-btn:hover{color:var(--accent-primary);border-color:rgba(124,106,239,.35);background:rgba(124,106,239,.06)}
.reply-toggle-btn i{font-size:10px}

.reply-form-wrap{padding:8px 0 4px 20px}
.reply-form,.reply-edit-form{display:flex;flex-direction:column;gap:8px;background:var(--bg-base);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:10px}
.reply-form textarea, .reply-edit-form textarea{font-size:13px;line-height:1.5;resize:vertical;min-height:60px}
.reply-form__btns{display:flex;justify-content:flex-end;gap:6px}
.reply-form__author-mode{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:11px}
.author-anonymous{color:var(--text-secondary);font-style:italic}
.author-real-hint{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:var(--radius-sm);background:rgba(245,158,11,.16);color:var(--accent-warning);font-size:11px;font-style:normal;font-weight:600;cursor:help}
.reply-form__btns .btn-primary,.reply-form__btns .btn-secondary{padding:6px 14px;font-size:12px;min-height:auto}

/* === Answer form (별도 박스, 답변 목록과 분리) === */
.answer-form{margin-top:18px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:20px 22px;display:flex;flex-direction:column;gap:12px}
.answer-form__header{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text-secondary)}
.answer-form__header strong{color:var(--text-primary)}
.answer-form__header i{color:var(--accent-primary)}
.answer-form__footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.answer-form__footer .btn-primary{margin-left:auto}

/* === Compact answer form — Slack 스타일 (아이콘 툴바) === */
.answer-form--compact{padding:12px 14px;gap:8px}
.answer-form--compact .answer-form__textarea{min-height:auto;line-height:1.55;resize:vertical}
.answer-form__toolbar{display:flex;align-items:center;gap:6px;padding-top:4px;border-top:1px solid rgba(255,255,255,.04);margin-top:2px;padding-top:8px}
.answer-form__icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;font-size:14px}
.answer-form__icon-btn:hover{color:var(--accent-primary);background:rgba(124,106,239,.10);border-color:rgba(124,106,239,.20)}
.answer-form__icon-btn.is-active{color:var(--accent-warning);background:rgba(245,158,11,.10);border-color:rgba(245,158,11,.32)}
.answer-form__author-mini{display:inline-flex;align-items:center;gap:3px;margin-left:6px}
.chip--xs{padding:3px 8px;font-size:11px;font-weight:700;border-radius:var(--radius-sm)}
.answer-form__author-select{display:inline-flex;align-items:center;gap:6px;margin-left:8px}
.answer-form__author-select-input{padding:5px 24px 5px 10px;font-size:12px;font-weight:600;color:var(--text-primary);background:var(--bg-secondary) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path fill='none' stroke='%238b8d97' stroke-width='1.5' d='M3 4.5l3 3 3-3'/></svg>") no-repeat right 6px center;border:1px solid var(--border-default);border-radius:var(--radius-sm);outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;font-family:inherit}
.answer-form__author-select-input:focus{border-color:var(--accent-primary)}
.answer-form__author-select-input option{background:var(--bg-secondary);color:var(--text-primary)}
.answer-form__submit{margin-left:auto;padding:7px 14px;font-size:12.5px}

/* 답글 폼 컴팩트 (답변 폼과 동일 패턴) */
.reply-form--compact{display:flex;flex-direction:column;gap:8px}
.reply-form--compact .reply-textarea{font-size:13px;line-height:1.55;resize:vertical;min-height:auto}
.reply-form__toolbar{display:flex;align-items:center;gap:6px;padding-top:8px;border-top:1px solid rgba(255,255,255,.04);flex-wrap:wrap}
.reply-form__toolbar [data-reply-cancel]{margin-left:auto;padding:6px 12px;font-size:12px}
.reply-form__toolbar [data-reply-save]{padding:6px 14px;font-size:12px}

.answer-img-btn{padding:8px 12px;font-size:12.5px;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s}
.answer-img-btn:hover{color:var(--text-primary);border-color:rgba(255,255,255,.15)}
.answer-img-btn i{color:var(--accent-primary);font-size:13px}

.login-required--inline{padding:24px;background:var(--bg-primary);border:1px dashed var(--border-default);border-radius:var(--radius-md);text-align:center;margin-top:18px}
.login-required--inline button{margin:0 4px}

/* === Tag input (Instagram style) === */
.tag-input-wrap{position:relative;display:flex;flex-direction:column;gap:8px;padding:10px;min-height:46px;background:var(--bg-base);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:border-color .15s,box-shadow .15s;cursor:text}
.tag-input-wrap:focus-within{border-color:var(--accent-primary);box-shadow:var(--focus-ring)}
.tag-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tag-chips:empty{display:none}
.tag-chip{display:inline-flex;align-items:center;gap:4px;padding:5px 6px 5px 12px;background:rgba(124,106,239,.22);color:#bbb1ff;border:1px solid rgba(124,106,239,.32);border-radius:var(--radius-full);font-size:12.5px;font-weight:700;line-height:1}
.tag-chip__remove{width:20px;height:20px;border:none;background:transparent;color:inherit;cursor:pointer;border-radius:50%;font-size:15px;line-height:1;display:inline-flex;align-items:center;justify-content:center;opacity:.75;transition:opacity .15s,background .15s}
.tag-chip__remove:hover{opacity:1;background:rgba(255,255,255,.14)}
.tag-input-row{display:flex;gap:8px;align-items:center}
.tag-input{flex:1;min-width:120px;border:none;background:transparent;outline:none;color:var(--text-primary);font-size:13.5px;padding:6px 0;font-family:inherit}
.tag-input::placeholder{color:var(--text-muted)}
.tag-add-btn{flex-shrink:0;padding:7px 14px;font-size:12.5px;font-weight:700;color:var(--accent-primary);background:rgba(124,106,239,.12);border:1px solid rgba(124,106,239,.32);border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .15s}
.tag-add-btn:hover{background:rgba(124,106,239,.2);color:#fff;border-color:var(--accent-primary)}
.tag-add-btn i{font-size:10px}
.tag-suggest{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;max-height:280px;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px}
.tag-suggest__item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;color:var(--text-primary);transition:background .1s}
.tag-suggest__item:hover, .tag-suggest__item.active{background:rgba(124,106,239,.14)}
.tag-suggest__name{font-weight:600;color:#a89bff}
.tag-suggest__count{font-size:11px;color:var(--text-muted)}
.tag-suggest__item--new{color:var(--text-secondary);border-top:1px solid var(--border-default);margin-top:4px;padding-top:10px}
.tag-suggest__item--new i{color:var(--accent-success);margin-right:6px}
.tag-suggest__item--new strong{color:var(--text-primary);font-weight:700;margin-left:2px}

/* === Image upload === */
.upload-area{border:2px dashed var(--border-default);border-radius:var(--radius-md);padding:24px 16px;text-align:center;cursor:pointer;transition:all .2s var(--transition-fast);background:var(--bg-base)}
.upload-area:hover, .upload-area.drag{border-color:var(--accent-primary);background:rgba(124,106,239,.04)}
.upload-area__inner i{font-size:28px;color:var(--text-muted);margin-bottom:10px;display:block}
.upload-area__inner div{font-size:13px;color:var(--text-secondary)}
.upload-area__inner .form-hint{margin-top:6px}
.upload-area__link{color:var(--accent-primary);font-weight:700}
.upload-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.upload-grid:empty{display:none}
.upload-thumb{position:relative;width:96px;height:96px;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-tertiary);border:1px solid var(--border-default);flex-shrink:0}
.upload-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.upload-thumb.status-error{border-color:var(--red)}
.upload-fcard{position:relative;display:flex;align-items:center;gap:10px;padding:10px 14px;padding-right:32px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);min-width:220px;max-width:340px;flex-shrink:0}
.upload-fcard.status-error{border-color:var(--red)}
.upload-fcard__icon{font-size:22px;flex-shrink:0;width:28px;text-align:center}
.upload-fcard__body{flex:1;min-width:0}
.upload-fcard__name{font-size:12.5px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload-fcard__meta{font-size:10.5px;color:var(--text-muted);margin-top:1px}
.upload-fcard .upload-thumb__remove{top:50%;transform:translateY(-50%);right:6px;background:transparent;color:var(--text-muted)}
.upload-fcard .upload-thumb__remove:hover{background:rgba(239,68,68,.95);color:#fff}
.upload-thumb__overlay{position:absolute;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px}
.upload-thumb__overlay--error{background:rgba(239,68,68,.55)}
.upload-thumb__remove{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;border:none;cursor:pointer;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s}
.upload-thumb__remove:hover{background:rgba(239,68,68,.95)}

/* === Toast === */
.toast-container{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}
.toast{padding:11px 22px;border-radius:var(--radius-lg);font-size:13.5px;font-weight:600;color:#fff;pointer-events:auto;box-shadow:var(--shadow-lg);max-width:90vw;text-align:center;animation:toastIn .3s var(--spring)}
.toast--error{background:linear-gradient(135deg,#ef4444,#dc2626)}
.toast--success{background:linear-gradient(135deg,#10b981,#059669)}
.toast--info{background:linear-gradient(135deg,#7c6aef,#5b4ad9)}
@keyframes toastIn{from{opacity:0;transform:translateY(-12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}

/* === Filter bar === */
.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;margin-bottom:var(--sp-4);border-bottom:1px solid var(--border-default)}
.filter-group{display:flex;gap:var(--sp-1);align-items:center;flex-wrap:wrap}
.filter-group__label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-right:var(--sp-1)}
.chip{padding:6px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:600;border:1px solid var(--border-default);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s var(--spring);white-space:nowrap}
.chip:hover{border-color:rgba(255,255,255,.15);color:var(--text-primary)}
.chip.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}
.filter-select{padding:6px 32px 6px 12px;font-size:12px;font-weight:600;color:var(--text-primary);background:var(--bg-secondary) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path fill='none' stroke='%238b8d97' stroke-width='1.5' d='M3 4.5l3 3 3-3'/></svg>") no-repeat right 10px center;border:1px solid var(--border-default);border-radius:var(--radius-md);outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;transition:border-color .15s,box-shadow .15s;font-family:inherit;min-width:120px}
.filter-select:focus{border-color:var(--accent-primary);box-shadow:var(--focus-ring)}
.filter-select option{background:var(--bg-secondary);color:var(--text-primary)}
.filter-search{flex:1;min-width:200px;display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md)}
.filter-search input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:13px}
.filter-search i{color:var(--text-muted);font-size:13px}
.toggle-btn{padding:6px 12px;border-radius:var(--radius-md);font-size:12px;font-weight:600;border:1px solid var(--border-default);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s var(--spring)}
.toggle-btn:hover{color:var(--text-primary);border-color:rgba(255,255,255,.15)}
.toggle-btn.active{background:rgba(124,106,239,.12);color:var(--accent-primary);border-color:var(--accent-primary)}

/* 세그먼트 칩 (상태 필터: 전체/진행중/완료) */
.filter-segment{display:inline-flex;align-items:center;gap:4px;padding:3px;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md)}
.filter-segment .filter-group__label{margin-right:6px;margin-left:6px}
.seg-btn{padding:5px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:700;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:5px}
.seg-btn i{font-size:10.5px}
.seg-btn:hover{color:var(--text-primary)}
.seg-btn.is-active{background:var(--bg-primary);color:var(--text-primary);box-shadow:0 1px 4px rgba(0,0,0,.25),inset 0 0 0 1px var(--border-default)}
.seg-btn[data-status="completed"].is-active{color:#34d399;box-shadow:0 1px 4px rgba(0,0,0,.25),inset 0 0 0 1px rgba(16,185,129,.36)}
.seg-btn[data-status="completed"].is-active i{color:#34d399}
.seg-btn[data-status="in_progress"].is-active{color:var(--text-primary);box-shadow:0 1px 4px rgba(0,0,0,.25),inset 0 0 0 1px rgba(124,106,239,.36)}

/* === Board (2-column card grid) === */
.board{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px;align-items:start;background:transparent;border:none;border-radius:0;overflow:visible}
.board__head{display:none}
.board .empty-state{grid-column:1/-1}

.board__item{display:block;text-decoration:none;color:inherit;background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;transition:background .15s, border-color .15s, box-shadow .15s;position:relative}
.board__item:hover{background:var(--bg-tertiary);border-color:rgba(255,255,255,.12)}
/* 완료 카드는 도장 표시를 위해 overflow 풀어줌 */
.board__item.is-accepted,.board__item.is-finished-l2,.board__item.is-finished-l3{overflow:visible}
.board__item.is-accepted{box-shadow:inset 7px 0 0 var(--accent-warning),0 0 0 1px rgba(245,158,11,.32),0 0 24px rgba(245,158,11,.10);background:linear-gradient(135deg,rgba(245,158,11,.10) 0%,rgba(245,158,11,.03) 40%,var(--bg-secondary) 100%);border-color:rgba(245,158,11,.28)}
.board__item.is-accepted:hover{box-shadow:inset 7px 0 0 var(--accent-warning),0 0 0 1px rgba(245,158,11,.50),0 4px 20px rgba(245,158,11,.24);background:linear-gradient(135deg,rgba(245,158,11,.14) 0%,rgba(245,158,11,.05) 40%,var(--bg-tertiary) 100%)}
/* L2 협업 완료 — 청록 */
.board__item.is-finished-l2{box-shadow:inset 7px 0 0 #06b6d4,0 0 0 1px rgba(6,182,212,.32),0 0 24px rgba(6,182,212,.10);background:linear-gradient(135deg,rgba(6,182,212,.10) 0%,rgba(6,182,212,.03) 40%,var(--bg-secondary) 100%);border-color:rgba(6,182,212,.28)}
.board__item.is-finished-l2:hover{box-shadow:inset 7px 0 0 #06b6d4,0 0 0 1px rgba(6,182,212,.50),0 4px 20px rgba(6,182,212,.24);background:linear-gradient(135deg,rgba(6,182,212,.14) 0%,rgba(6,182,212,.05) 40%,var(--bg-tertiary) 100%)}
/* L3 프로젝트 완료 — 보라 */
.board__item.is-finished-l3{box-shadow:inset 7px 0 0 #7c6aef,0 0 0 1px rgba(124,106,239,.32),0 0 24px rgba(124,106,239,.10);background:linear-gradient(135deg,rgba(124,106,239,.10) 0%,rgba(124,106,239,.03) 40%,var(--bg-secondary) 100%);border-color:rgba(124,106,239,.28)}
.board__item.is-finished-l3:hover{box-shadow:inset 7px 0 0 #7c6aef,0 0 0 1px rgba(124,106,239,.50),0 4px 20px rgba(124,106,239,.24);background:linear-gradient(135deg,rgba(124,106,239,.14) 0%,rgba(124,106,239,.05) 40%,var(--bg-tertiary) 100%)}

/* 완료 도장 — 원형 결재 도장 느낌 (별 데코 + "완료" + 별 데코) */
.card-stamp{position:absolute;top:14px;right:96px;pointer-events:none;width:62px;height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:3px solid;border-radius:50%;font-family:var(--font-display);font-weight:900;letter-spacing:0;line-height:1;opacity:.95;box-shadow:inset 0 0 0 2px currentColor;background:rgba(13,17,23,.6);text-shadow:0 0 2px currentColor;transform:rotate(-12deg);z-index:10;user-select:none;transition:all .15s}
.card-stamp__deco{font-size:8px;letter-spacing:2px;line-height:1;opacity:.95}
.card-stamp__text{font-size:14px;letter-spacing:2px;line-height:1}
.card-stamp--accepted{color:#fbbf24}
.card-stamp--l2{color:#5dd5e8}
.card-stamp--l3{color:#a89bff}
.board__item:hover .card-stamp{opacity:1;transform:rotate(-12deg) scale(1.08)}

.board__row{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"meta . date" "title title title" "preview preview preview" "ans author num";align-items:center;column-gap:10px;row-gap:6px;padding:14px 16px;color:var(--text-primary);font-size:13px;user-select:none}

.board__td{overflow:hidden;min-width:0}
.board__td--num{grid-area:num;justify-self:end;color:var(--text-muted);font-family:var(--font-mono);font-size:11px}
.board__td--meta{grid-area:meta;display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.board__td--date{grid-area:date;justify-self:end;color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums}
.board__td--title{grid-area:title;font-weight:600;display:flex;align-items:flex-start;gap:6px;min-width:0;font-size:14.5px;line-height:1.45;flex-wrap:wrap}
.board__td--title .title-text{flex:1 1 auto;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;overflow:hidden;text-overflow:ellipsis;word-break:break-word}
.board__td--title .title-icon{color:var(--text-muted);font-size:11px;flex-shrink:0;margin-top:5px}
.board__td--preview{grid-area:preview;font-size:12.5px;line-height:1.55;color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.board__td--ans{grid-area:ans;justify-self:start;color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums}
.board__td--ans::before{content:"답변 ";color:var(--text-muted)}
.board__td--ans .num{color:var(--text-secondary)}
.board__td--ans .num.has{color:var(--text-primary);font-weight:700}
.board__td--author{grid-area:author;justify-self:end;color:var(--text-secondary);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-status{font-size:11px;font-weight:700;letter-spacing:.2px;padding:3px 9px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;line-height:1.4;gap:5px}
.card-status i{font-size:10px}
.card-status--wait{background:rgba(139,148,158,.14);color:#bcc4cc}
.card-status--done{background:rgba(245,158,11,.16);color:var(--accent-warning)}
.card-status--accepted{font-size:11.5px;font-weight:800;padding:4px 11px;background:linear-gradient(90deg,rgba(245,158,11,.28),rgba(245,158,11,.14));color:#ffd87a;border:1px solid rgba(245,158,11,.40);text-shadow:0 0 8px rgba(245,158,11,.30)}
.card-status--accepted i{font-size:11px;color:var(--accent-warning)}
.card-status--finished{font-size:11.5px;font-weight:800;padding:4px 11px;background:linear-gradient(90deg,rgba(16,185,129,.24),rgba(16,185,129,.12));color:#34d399;border:1px solid rgba(16,185,129,.36);text-shadow:0 0 8px rgba(16,185,129,.25)}
.card-status--finished i{font-size:11px;color:#34d399}
.card-status--finished-l2{font-size:11.5px;font-weight:800;padding:4px 11px;background:linear-gradient(90deg,rgba(6,182,212,.28),rgba(6,182,212,.14));color:#5dd5e8;border:1px solid rgba(6,182,212,.40);text-shadow:0 0 8px rgba(6,182,212,.28)}
.card-status--finished-l2 i{font-size:11px;color:#5dd5e8}
.card-status--finished-l3{font-size:11.5px;font-weight:800;padding:4px 11px;background:linear-gradient(90deg,rgba(124,106,239,.30),rgba(124,106,239,.14));color:#c1b6ff;border:1px solid rgba(124,106,239,.42);text-shadow:0 0 8px rgba(124,106,239,.30)}
.card-status--finished-l3 i{font-size:11px;color:#c1b6ff}

.title-accept{font-size:10.5px;font-weight:800;letter-spacing:.4px;padding:3px 8px;border-radius:var(--radius-sm);background:rgba(245,158,11,.16);color:var(--accent-warning);flex-shrink:0;display:inline-flex;align-items:center;gap:4px;align-self:flex-start;margin-top:2px}
.title-accept i{font-size:9px}

.cat-pill{font-size:11px;font-weight:700;padding:3px 9px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;line-height:1.4;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-pill--class{background:rgba(124,106,239,.12);color:#a89bff}
.cat-pill--it{background:rgba(6,182,212,.14);color:#5dd5e8}
.cat-pill--student{background:rgba(16,185,129,.14);color:#34d399}
.cat-pill--parent{background:rgba(244,114,182,.14);color:#f472b6}
.cat-pill--admission{background:rgba(245,158,11,.14);color:#fbbf24}
.cat-pill--marketing{background:rgba(251,146,60,.14);color:#fb923c}
.cat-pill--member{background:rgba(239,68,68,.14);color:#ef4444}
.cat-pill--etc{background:rgba(255,255,255,.06);color:var(--text-secondary)}
.cat-pill--default{background:rgba(255,255,255,.06);color:var(--text-secondary)}

.lvl-pill{font-size:11px;font-weight:800;padding:3px 9px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;line-height:1.4;letter-spacing:.5px}
.lvl-L1{background:rgba(139,148,158,.14);color:#bcc4cc}
.lvl-L2{background:rgba(245,158,11,.14);color:var(--accent-gold)}
.lvl-L3{background:rgba(239,68,68,.14);color:#ff7b7b}

/* L3 승격 요청 카드 (작성자 메인 기능 + 매니저 검토) */
.l3-req{margin:18px 0;padding:20px 22px;border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(245,158,11,.08) 0%,rgba(239,68,68,.06) 100%);border:1.5px solid rgba(245,158,11,.32);position:relative;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.l3-req--pending{background:linear-gradient(135deg,rgba(124,106,239,.07) 0%,rgba(99,102,241,.05) 100%);border-color:rgba(124,106,239,.32)}
.l3-req--review{background:linear-gradient(135deg,rgba(6,182,212,.08) 0%,rgba(20,184,166,.05) 100%);border-color:rgba(6,182,212,.36)}
.l3-req--rejected{background:linear-gradient(135deg,rgba(239,68,68,.07) 0%,rgba(239,68,68,.03) 100%);border-color:rgba(239,68,68,.30)}
.l3-req__head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.l3-req__head h3{font-family:var(--font-display);font-size:17px;font-weight:800;color:var(--text-primary);display:inline-flex;align-items:center;gap:9px;margin:0;letter-spacing:-.3px}
.l3-req__head h3 i{color:var(--accent-warning);font-size:16px}
.l3-req--pending .l3-req__head h3 i{color:#a89bff}
.l3-req--review .l3-req__head h3 i{color:#5dd5e8}
.l3-req--rejected .l3-req__head h3 i{color:#ef4444}
.l3-req__sub{font-size:12px;color:var(--text-secondary);line-height:1.5}
.l3-req__team{font-size:13px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-default);padding:10px 14px;border-radius:var(--radius-md);margin-bottom:12px}
.l3-req__team strong{color:var(--accent-warning);font-weight:800}
.l3-req__warn{color:#ef4444;font-weight:700}
.l3-req__reason-display{background:var(--bg-primary);border:1px solid var(--border-default);padding:10px 14px;border-radius:var(--radius-md);margin-bottom:12px}
.l3-req__reason-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}
.l3-req__reason-text{font-size:13px;color:var(--text-primary);line-height:1.6;margin-top:4px;white-space:pre-wrap}
.l3-req__reason-display--rej{border-color:rgba(239,68,68,.28);background:rgba(239,68,68,.04)}
.l3-req__form{display:flex;flex-direction:column;gap:10px}
.l3-req__form--actions{flex-direction:row;flex-wrap:wrap}
.l3-req__reason{width:100%;min-height:72px;padding:10px 12px;font-family:var(--font-body);font-size:13px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);resize:vertical;line-height:1.5}
.l3-req__reason:focus{outline:none;border-color:var(--accent-primary)}
.l3-req__submit,.l3-req__approve,.l3-req__reject,.l3-req__cancel{padding:11px 22px;font-size:14px;font-weight:700;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .15s;border:none;letter-spacing:-.2px}
.l3-req__submit{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;align-self:flex-start;box-shadow:0 1px 6px rgba(239,68,68,.25)}
.l3-req__submit:hover{transform:translateY(-1px);box-shadow:0 2px 10px rgba(239,68,68,.32)}
.l3-req__submit:disabled{opacity:.5;cursor:not-allowed;transform:none}
.l3-req__approve{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 1px 6px rgba(16,185,129,.25)}
.l3-req__approve:hover{transform:translateY(-1px);box-shadow:0 2px 10px rgba(16,185,129,.32)}
.l3-req__reject{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.32)}
.l3-req__reject:hover{background:rgba(239,68,68,.2)}
.l3-req__cancel{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default);align-self:flex-start;padding:9px 18px;font-size:13px}
.l3-req__cancel:hover{color:var(--text-primary)}
.l3-req-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:rgba(124,106,239,.1);color:#a89bff;border:1px solid rgba(124,106,239,.3);border-radius:var(--radius-full);font-size:12px;font-weight:700;margin:14px 0}

/* 프로젝트 완료 요청 카드 — l3-req 스타일 alias */
.pc-req,.pc-req--pending,.pc-req--review,.pc-req--rejected{margin:18px 0;padding:20px 22px;border-radius:var(--radius-lg);position:relative;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.pc-req{background:linear-gradient(135deg,rgba(16,185,129,.10) 0%,rgba(16,185,129,.04) 100%);border:1.5px solid rgba(16,185,129,.34)}
.pc-req--pending{background:linear-gradient(135deg,rgba(124,106,239,.07) 0%,rgba(99,102,241,.05) 100%);border:1.5px solid rgba(124,106,239,.32)}
.pc-req--review{background:linear-gradient(135deg,rgba(6,182,212,.08) 0%,rgba(20,184,166,.05) 100%);border:1.5px solid rgba(6,182,212,.36)}
.pc-req--rejected{background:linear-gradient(135deg,rgba(239,68,68,.07) 0%,rgba(239,68,68,.03) 100%);border:1.5px solid rgba(239,68,68,.30)}
.pc-req__head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.pc-req__head h3{font-family:var(--font-display);font-size:17px;font-weight:800;color:var(--text-primary);display:inline-flex;align-items:center;gap:9px;margin:0;letter-spacing:-.3px}
.pc-req__head h3 i{color:#34d399;font-size:16px}
.pc-req--pending .pc-req__head h3 i{color:#a89bff}
.pc-req--review .pc-req__head h3 i{color:#5dd5e8}
.pc-req--rejected .pc-req__head h3 i{color:#ef4444}
.pc-req__sub{font-size:12px;color:var(--text-secondary);line-height:1.5}
.pc-req__reason-display{background:var(--bg-primary);border:1px solid var(--border-default);padding:10px 14px;border-radius:var(--radius-md);margin-bottom:12px}
.pc-req__reason-display--rej{border-color:rgba(239,68,68,.28);background:rgba(239,68,68,.04)}
.pc-req__reason-label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}
.pc-req__reason-text{font-size:13px;color:var(--text-primary);line-height:1.6;margin-top:4px;white-space:pre-wrap}
.pc-req__form{display:flex;flex-direction:column;gap:10px}
.pc-req__form--actions{flex-direction:row;flex-wrap:wrap}
.pc-req__reason{width:100%;min-height:72px;padding:10px 12px;font-family:var(--font-body);font-size:13px;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);resize:vertical;line-height:1.5}
.pc-req__reason:focus{outline:none;border-color:var(--accent-primary)}
.pc-req__submit,.pc-req__approve,.pc-req__reject,.pc-req__cancel{padding:11px 22px;font-size:14px;font-weight:700;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .15s;border:none;letter-spacing:-.2px}
.pc-req__submit,.pc-req__approve{background:linear-gradient(135deg,#10b981,#059669);color:#fff;align-self:flex-start;box-shadow:0 1px 6px rgba(16,185,129,.25)}
.pc-req__submit:hover,.pc-req__approve:hover{transform:translateY(-1px);box-shadow:0 2px 10px rgba(16,185,129,.32)}
.pc-req__submit:disabled,.pc-req__approve:disabled{opacity:.5;cursor:not-allowed;transform:none}
.pc-req__reject{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.32)}
.pc-req__reject:hover{background:rgba(239,68,68,.2)}
.pc-req__cancel{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default);align-self:flex-start;padding:9px 18px;font-size:13px}
.pc-req__cancel:hover{color:var(--text-primary)}
.pc-req-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:rgba(124,106,239,.1);color:#a89bff;border:1px solid rgba(124,106,239,.3);border-radius:var(--radius-full);font-size:12px;font-weight:700;margin:14px 0}
.pc-done-banner{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:rgba(16,185,129,.14);color:#34d399;border:1px solid rgba(16,185,129,.36);border-radius:var(--radius-md);font-size:13px;font-weight:800;margin:14px 0}
.pc-done-banner i{color:#34d399}
.proposals-lock-hint{display:flex;align-items:center;gap:8px;padding:9px 14px;margin-bottom:12px;background:rgba(124,106,239,.08);color:#a89bff;border:1px solid rgba(124,106,239,.28);border-radius:var(--radius-md);font-size:12.5px;line-height:1.5}
.proposals-lock-hint i{font-size:11px}
.proposals-lock-hint strong{color:var(--text-primary)}

/* L3 프로젝트 팀 카드 v2 — PM 강조 카드 + 협업자 그리드 + 합계 */
.l3-team{margin:18px 0;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:20px 22px;position:relative}
.l3-team__header{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.l3-team__title{font-family:var(--font-display);font-size:15.5px;font-weight:800;color:var(--text-primary);display:inline-flex;align-items:center;gap:9px;margin:0;letter-spacing:-.2px}
.l3-team__title i{color:var(--accent-warning);font-size:15px}
.l3-team__count{font-size:12.5px;font-weight:700;color:var(--text-secondary);background:var(--bg-secondary);padding:2px 9px;border-radius:var(--radius-full);margin-left:2px}
.l3-team__header-right{margin-left:auto;display:inline-flex;align-items:center;gap:10px}
.l3-team__finalize{font-size:11.5px;font-weight:800;padding:4px 10px;border-radius:var(--radius-full);background:rgba(16,185,129,.16);color:#34d399;display:inline-flex;align-items:center;gap:6px}
.l3-team__edit-btn{background:rgba(245,158,11,.10);border:1px solid rgba(245,158,11,.32);color:var(--accent-warning);padding:7px 14px;font-size:12.5px;font-weight:700;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s}
.l3-team__edit-btn:hover{background:rgba(245,158,11,.18);color:#ffd87a;transform:translateY(-1px)}
.l3-team__finalize-btn[hidden],.l3-team__edit-btn[hidden]{display:none !important}
.l3-team__finalize-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;padding:8px 16px;font-size:13px;font-weight:800;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:all .15s;box-shadow:0 1px 6px rgba(16,185,129,.25)}
.l3-team__finalize-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 10px rgba(16,185,129,.32)}
.l3-team__finalize-btn:disabled{opacity:.5;cursor:not-allowed}
.l3-team__finalize-btn--undo{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-default);box-shadow:none}
.l3-team__finalize-btn--undo:hover:not(:disabled){color:var(--text-primary);border-color:rgba(255,255,255,.18);transform:none;box-shadow:none}
.l3-team__body{display:flex;flex-direction:column;gap:16px}
.l3-team__loading{padding:20px;text-align:center;color:var(--text-muted);font-size:13px}
.l3-team__loading i{margin-right:6px}

/* 팀 구성 완료 전 placeholder */
.l3-team__pending{padding:28px 22px;text-align:center;border:1px dashed var(--border-default);border-radius:var(--radius-md);background:var(--bg-secondary)}
.l3-team__pending i{font-size:24px;color:var(--text-muted);opacity:.5;margin-bottom:10px;display:block}
.l3-team__pending-title{font-family:var(--font-display);font-size:14px;font-weight:800;color:var(--text-secondary);margin-bottom:6px}
.l3-team__pending-desc{font-size:12.5px;color:var(--text-muted);line-height:1.7}
.l3-team__pending-desc strong{color:var(--text-secondary);font-weight:700}

/* PM 카드 — 큰 강조 */
.l3-team__pm-card{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:var(--radius-md);background:linear-gradient(135deg,rgba(245,158,11,.16) 0%,rgba(245,158,11,.05) 100%);border:1.5px solid rgba(245,158,11,.40);box-shadow:0 1px 6px rgba(245,158,11,.12)}
.l3-team__pm-icon{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#d97706);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:18px;box-shadow:0 2px 8px rgba(245,158,11,.32);flex-shrink:0}
.l3-team__pm-info{flex:1;min-width:0}
.l3-team__pm-name{font-size:16.5px;font-weight:800;color:var(--text-primary);letter-spacing:-.3px}
.l3-team__pm-role{font-size:12px;color:var(--accent-warning);font-weight:700;margin-top:3px;letter-spacing:.3px}
.l3-team__pm-bonus{font-size:15px;font-weight:800;color:#ffd87a;background:rgba(245,158,11,.20);padding:7px 14px;border-radius:var(--radius-md);border:1px solid rgba(245,158,11,.32);flex-shrink:0}

/* 협업자 섹션 */
.l3-team__collab-section{display:flex;flex-direction:column;gap:10px}
.l3-team__collab-label{font-size:12.5px;font-weight:700;color:var(--text-secondary);display:inline-flex;align-items:center;gap:8px}
.l3-team__collab-count{font-size:11.5px;font-weight:700;color:var(--text-primary);background:rgba(124,106,239,.16);padding:2px 8px;border-radius:var(--radius-full);border:1px solid rgba(124,106,239,.28)}
.l3-team__collab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.l3-team__collab-card{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-default);transition:all .15s}
.l3-team__collab-card:hover{border-color:rgba(124,106,239,.32);background:rgba(124,106,239,.04)}
.l3-team__collab-icon{width:32px;height:32px;border-radius:50%;background:rgba(124,106,239,.16);color:#a89bff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.l3-team__collab-name{flex:1;min-width:0;font-size:13.5px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.l3-team__collab-bonus{font-size:11.5px;font-weight:700;color:#a89bff;flex-shrink:0;padding:2px 8px;background:rgba(124,106,239,.10);border-radius:var(--radius-sm)}
.l3-team__collab-badge{font-size:10.5px;font-weight:800;color:#a89bff;background:rgba(124,106,239,.16);padding:3px 9px;border-radius:var(--radius-full);letter-spacing:.4px;flex-shrink:0;border:1px solid rgba(124,106,239,.28)}
.l3-team__collab-card.is-author{border-color:rgba(6,182,212,.28);background:rgba(6,182,212,.04)}
.l3-team__collab-card.is-author .l3-team__collab-icon{background:rgba(6,182,212,.16);color:#5dd5e8}
.l3-team__collab-card.is-author .l3-team__collab-badge{color:#5dd5e8;background:rgba(6,182,212,.16);border-color:rgba(6,182,212,.32)}
.l3-team__collab-empty{padding:18px;text-align:center;border:1px dashed var(--border-default);border-radius:var(--radius-md);color:var(--text-muted);font-size:12.5px;line-height:1.6}
.l3-team__collab-empty i{margin-right:8px;opacity:.5;font-size:18px;vertical-align:middle}
.l3-team__collab-empty strong{color:var(--text-secondary)}

/* 합계 푸터 */
.l3-team__summary{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:6px;padding:14px 18px;border-radius:var(--radius-md);background:var(--bg-secondary);border:1px dashed var(--border-default)}
.l3-team__summary-label{font-size:13px;color:var(--text-secondary);font-weight:600;display:inline-flex;align-items:center;gap:8px}
.l3-team__summary-label i{color:var(--accent-warning);font-size:13px}
.l3-team__summary-amount{font-family:var(--font-display);font-size:18px;font-weight:800;color:var(--accent-warning);letter-spacing:-.3px}

.l3-team__msg{font-size:12px;color:var(--text-secondary);min-height:18px;margin-top:6px}
.l3-team__msg--err{color:#ef4444}

/* PM 지정 모달 */
.l3-pm-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.l3-pm-modal[hidden]{display:none}
.l3-pm-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(2px);animation:fadeIn .15s ease}
.l3-pm-modal__dialog{position:relative;width:100%;max-width:440px;background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:0 18px 60px rgba(0,0,0,.45);overflow:hidden;animation:slideUp .2s ease}
.l3-pm-modal__head{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border-default);background:rgba(245,158,11,.06)}
.l3-pm-modal__head h3{margin:0;font-family:var(--font-display);font-size:15.5px;font-weight:800;color:var(--text-primary);display:inline-flex;align-items:center;gap:9px}
.l3-pm-modal__head h3 i{color:var(--accent-warning)}
.l3-pm-modal__close{margin-left:auto;background:transparent;border:none;color:var(--text-muted);width:28px;height:28px;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:14px;transition:all .15s}
.l3-pm-modal__close:hover{background:var(--bg-tertiary);color:var(--text-primary)}
.l3-pm-modal__body{padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.l3-pm-modal__current{font-size:13px;color:var(--text-secondary)}
.l3-pm-modal__current strong{color:var(--text-primary);font-weight:800;margin-left:6px}
.l3-pm-modal__options-label{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}
.l3-pm-modal__options{display:flex;flex-direction:column;gap:6px}
.l3-pm-option{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-secondary);cursor:pointer;transition:all .15s}
.l3-pm-option:hover{border-color:rgba(245,158,11,.32);background:rgba(245,158,11,.04)}
.l3-pm-option input[type="radio"]{accent-color:var(--accent-warning);width:16px;height:16px;cursor:pointer;margin:0}
.l3-pm-option__name{flex:1;font-size:13.5px;font-weight:700;color:var(--text-primary)}
.l3-pm-option__badge{font-size:10.5px;font-weight:800;color:var(--accent-warning);background:rgba(245,158,11,.16);padding:3px 9px;border-radius:var(--radius-full);letter-spacing:.4px}
.l3-pm-option.is-current{border-color:rgba(245,158,11,.40);background:rgba(245,158,11,.06)}
.l3-pm-modal__notice{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.20);border-radius:var(--radius-md);font-size:12px;color:var(--text-secondary);line-height:1.5;margin-top:4px}
.l3-pm-modal__notice i{color:var(--accent-warning);font-size:13px;margin-top:1px}
.l3-pm-modal__notice strong{color:var(--accent-warning);font-weight:800}
.l3-pm-modal__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--border-default);background:var(--bg-secondary)}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

.expand-tags{display:flex;flex-wrap:wrap;gap:6px}
.expand-tag{font-size:11px;padding:3px 9px;border-radius:var(--radius-full);background:rgba(255,255,255,.04);color:var(--text-secondary);border:1px solid var(--border-default)}
.expand-tag--people{background:rgba(124,106,239,.08);color:#a89bff;border-color:rgba(124,106,239,.2)}
.expand-tag--teams{background:rgba(6,182,212,.08);color:#5dd5e8;border-color:rgba(6,182,212,.2)}

.empty-state{padding:80px 20px;text-align:center;color:var(--text-muted)}
.empty-state__icon{font-size:48px;margin-bottom:16px;opacity:.4}
.empty-state__title{font-size:16px;font-weight:700;color:var(--text-secondary);margin-bottom:8px}
.empty-state__desc{font-size:13px;line-height:1.6}
.empty-state--compact{padding:36px 20px}
.empty-state--compact .empty-state__icon{font-size:28px;margin-bottom:10px}
.empty-state--compact .empty-state__title{font-size:14px;margin-bottom:4px}
.empty-state--compact .empty-state__desc{font-size:12px}

/* Tablet — fall back to 1 column when card gets too narrow */
@media (max-width:1024px){
  .board{grid-template-columns:1fr}
}
/* Mobile */
@media (max-width:768px){
  .main{padding:var(--sp-3) var(--sp-4) var(--sp-8)}
  .nav{padding:0 var(--sp-4)}
  .board{gap:8px}
  .board__row{grid-template-columns:auto 1fr;grid-template-areas:"meta date" "title title" "preview preview" "ans author";padding:12px 14px;font-size:13px}
  .board__td--num{display:none}
}
