/* 내 발표 목록(event.torder.ai) — Austin UI 가이드: 밝은 회색 무대 위 흰 카드, 딥네이비 잉크, 밝은 블루 액션 */
:root { --bg:#eef0f4; --surface:#fff; --ink:#14213d; --blue:#2f6bff; --blue-dark:#1f56e8; --blue-bg:#e8efff; --sub:#66718c; --line:#e3e7f0; --ok:#16a34a; --bad:#dc2626;
  --shadow-card: 0 14px 32px -24px rgba(20,33,61,.18), 0 1px 3px rgba(20,33,61,.04); --shadow-float: 0 24px 48px -22px rgba(20,33,61,.18), 0 2px 8px rgba(20,33,61,.05);
  --grad-blue: linear-gradient(180deg,#4a80ff,#2f63f0); --grad-navy: linear-gradient(180deg,#1d2e5c,#14213d); }
* { box-sizing:border-box; }
body { margin:0; font-family:-apple-system,"Apple SD Gothic Neo","Noto Sans KR",sans-serif; background: radial-gradient(140% 90% at 50% -20%, #f8fafd 0%, var(--bg) 65%); color:var(--ink); line-height:1.5; word-break:keep-all; min-height:100vh; }
button { font:inherit; font-weight:800; border:0; border-radius:14px; padding:12px 18px; cursor:pointer; min-height:42px; letter-spacing:-.01em; }
.btn-primary { background:var(--grad-blue); color:#fff; box-shadow:0 14px 24px -12px rgba(47,99,240,.55), inset 0 1px 0 rgba(255,255,255,.22); }
.btn-primary:active { background:var(--blue-dark); transform:translateY(1px); }
.btn-ghost { background:var(--blue-bg); color:var(--blue); }
.btn-ghost.danger { background:#fdecec; color:var(--bad); }
.btn-ghost:active { transform:translateY(1px); }
button.small { padding:8px 12px; min-height:36px; border-radius:11px; font-size:13px; }
.btns { display:flex; flex-wrap:wrap; gap:8px; }
.card { background:var(--surface); border-radius:20px; padding:24px; box-shadow:var(--shadow-card); }
.hint { color:var(--sub); font-size:13px; margin:6px 0 12px; }
.brand { font-weight:900; font-size:15px; letter-spacing:-.02em; color:var(--ink); }
.brand::after { content:" AI"; color:#b7bfd2; }
h1 { font-size:28px; font-weight:900; letter-spacing:-.02em; margin:0; }
h2 { font-size:17px; font-weight:800; margin:0; }
/* 로그인 */
.login { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.login-card { background:var(--surface); border-radius:24px; padding:40px 36px; max-width:460px; width:100%; text-align:center; box-shadow:var(--shadow-float); }
.login-card h1 { font-size:34px; margin:10px 0 8px; }
.login-card .sub { color:var(--sub); font-size:14px; margin:0 0 24px; }
.btn-google { display:inline-flex; align-items:center; gap:10px; background:var(--grad-navy); color:#fff; text-decoration:none; font-weight:800; font-size:16px; padding:14px 26px; border-radius:14px; box-shadow:0 14px 24px -12px rgba(20,33,61,.5); }
.btn-google:active { transform:translateY(1px); }
.btn-google svg { background:#fff; border-radius:50%; padding:2px; }
.err { background:#fdecec; color:var(--bad); border-radius:12px; padding:10px 12px; font-size:13px; font-weight:700; margin:16px 0 0; }
.login-card .foot { color:var(--sub); font-size:12px; margin:22px 0 0; } .login-card .foot a { color:var(--blue); }
/* 앱 */
.app { max-width:1180px; margin:0 auto; padding:28px 20px 64px; }
.top { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; }
.top-right { display:flex; align-items:center; gap:10px; }
.pill { display:inline-flex; align-items:center; gap:6px; background:var(--surface); border-radius:999px; padding:8px 14px; font-size:13px; font-weight:700; box-shadow:var(--shadow-card); white-space:nowrap; }
.pill.link { text-decoration:none; color:var(--ink); } .pill.link:hover { color:var(--blue); }
.user { display:flex; align-items:center; gap:8px; background:var(--surface); border-radius:999px; padding:4px 6px 4px 4px; box-shadow:var(--shadow-card); font-size:13px; font-weight:700; }
.user img { width:30px; height:30px; border-radius:50%; }
.user span { padding:0 4px; max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.layout { display:grid; grid-template-columns:280px 1fr; gap:20px; align-items:start; }
.side-head, .main-head { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.main-head { margin-top:6px; }
.main-head h2 { font-size:22px; }
/* 폴더 트리 */
.tree, .tree ul { list-style:none; margin:0; padding:0; }
.tree ul { margin-left:14px; border-left:1px solid var(--line); padding-left:6px; }
.tree li > .row { display:flex; align-items:center; gap:6px; padding:7px 10px; border-radius:10px; cursor:pointer; font-weight:700; font-size:14px; color:var(--ink); }
.tree li > .row:hover { background:#f3f5f9; }
.tree li > .row.on { background:var(--ink); color:#fff; }
.tree .row .ic { flex:none; }
.tree .row .nm { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tree .row .cnt { font-size:11px; font-weight:800; background:var(--blue-bg); color:var(--blue); border-radius:999px; padding:1px 7px; }
.tree .row.on .cnt { background:rgba(255,255,255,.18); color:#fff; }
.tree .row.drop { box-shadow:0 0 0 2px var(--blue); }
/* 빵가루 · 하위 폴더 칩 */
.crumbs { font-size:13px; color:var(--sub); display:flex; flex-wrap:wrap; gap:4px; }
.crumbs a { color:var(--blue); text-decoration:none; font-weight:700; cursor:pointer; } .crumbs span { color:#b7bfd2; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.chips button { background:#f3f5f9; color:var(--ink); border-radius:999px; padding:8px 14px; min-height:36px; font-size:13px; }
.chips button:hover { background:var(--blue-bg); color:var(--blue); }
/* 발표 카드 */
.decks { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:14px; }
.deck { border:1px solid var(--line); border-radius:16px; padding:16px; display:flex; flex-direction:column; gap:10px; background:var(--surface); transition:box-shadow .15s; cursor:grab; }
.deck:hover { box-shadow:var(--shadow-card); }
.deck.dragging { opacity:.5; }
.deck .title { font-weight:800; font-size:16px; display:flex; justify-content:space-between; gap:8px; align-items:flex-start; }
.deck .title span { flex:1; min-width:0; word-break:break-all; }
.deck .meta { color:var(--sub); font-size:12px; }
.deck .open { display:flex; gap:6px; flex-wrap:wrap; }
.deck .open a { flex:1 1 auto; text-align:center; text-decoration:none; font-weight:800; font-size:13px; padding:9px 10px; border-radius:11px; background:var(--blue-bg); color:var(--blue); }
.deck .open a.adm { background:var(--grad-blue); color:#fff; box-shadow:0 10px 18px -10px rgba(47,99,240,.55); }
.deck .ops { display:flex; gap:6px; flex-wrap:wrap; }
.deck .ops button { padding:6px 10px; min-height:32px; border-radius:9px; font-size:12px; background:#f3f5f9; color:var(--ink); }
.deck .ops button.del { background:#fdecec; color:var(--bad); }
.deck .ops select { font:inherit; font-size:12px; font-weight:700; border:1px solid var(--line); border-radius:9px; padding:5px 8px; background:#fbfcfe; color:var(--ink); max-width:160px; }
.empty { color:var(--sub); font-size:14px; padding:24px 0; text-align:center; }
/* 검색 + 분류 */
.filter { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin:4px 0 12px; }
.filter input[type=search] { flex:1 1 260px; font:inherit; font-size:15px; border:1px solid var(--line); border-radius:12px; padding:10px 14px; background:#fbfcfe; color:var(--ink); }
.filter input[type=search]:focus { outline:2px solid var(--blue); border-color:transparent; }
.cats { display:flex; align-items:center; gap:8px; flex:2 1 320px; }
.cats .lbl { font-size:12px; font-weight:800; color:var(--sub); flex:none; }
.cats .chips { margin:0; }
.chips button.on { background:var(--ink); color:#fff; }
.chips.found button { background:#fff8eb; color:#8a6116; }
.chips.found button b { color:inherit; opacity:.7; font-weight:600; }
.deck .path { color:var(--sub); font-size:12px; }
.deck .ops button.ex { background:var(--blue-bg); color:var(--blue); }
/* 내보내기 대화창 */
.dlg { border:0; border-radius:22px; padding:0; width:min(620px, 94vw); box-shadow:0 40px 80px -30px rgba(20,33,61,.5); }
.dlg::backdrop { background:rgba(20,33,61,.45); }
.dlg-body { padding:24px 26px; display:grid; gap:14px; }
.dlg h2 { font-size:20px; }
.ex { border:1px solid var(--line); border-radius:16px; padding:14px 16px; display:grid; gap:8px; }
.ex h3 { margin:0; font-size:15px; font-weight:800; }
.ex .hint { margin:0; }
.ex input { font:inherit; font-size:15px; border:1px solid var(--line); border-radius:12px; padding:9px 12px; background:#fbfcfe; color:var(--ink); }
.ex .row { display:flex; gap:8px; } .ex .row input { flex:1; }
.folder-pick { list-style:none; margin:0; padding:0; max-height:220px; overflow:auto; display:grid; gap:2px; }
.folder-pick li { padding:8px 10px; border-radius:10px; cursor:pointer; font-weight:700; font-size:14px; display:flex; gap:8px; align-items:center; }
.folder-pick li:hover { background:#f3f5f9; } .folder-pick li.cur { background:var(--blue-bg); color:var(--blue); }
.folder-pick li .p { color:var(--sub); font-size:12px; font-weight:600; }
a.link { display:inline-block; text-decoration:none; text-align:center; }
@media (max-width: 820px) { .dlg-body { padding:16px 14px; } .filter input[type=search] { flex-basis:100%; } }
.toast { position:fixed; left:50%; bottom:28px; transform:translateX(-50%); background:var(--ink); color:#fff; border-radius:999px; padding:12px 20px; font-weight:700; font-size:14px; box-shadow:0 24px 48px -22px rgba(20,33,61,.5); max-width:90vw; z-index:9; }
[hidden] { display:none !important; }
input, select { font-size:16px; }
@media (max-width: 820px) {
  .app { padding:14px 12px 48px; }
  .top { flex-direction:column; align-items:stretch; gap:10px; }
  .top-right { justify-content:space-between; }
  .layout { grid-template-columns:1fr; gap:14px; }
  .card { padding:16px 14px; border-radius:16px; }
  .main-head { flex-direction:column; align-items:stretch; }
  .main-head .btns button { flex:1 1 auto; }
  .decks { grid-template-columns:1fr; }
  .deck { cursor:default; }
}
