:root{--bg: #fdfaf3;--bg-card: #fff8ec;--bg-cream: #fff4e0;--coral: #ff9a8b;--orange: #ff9a56;--peach: #ffc371;--peach-soft: #ffe0b2;--mint: #7fd8be;--mint-soft: #c8f0e4;--mint-deep: #4ecdc4;--grad-brand: linear-gradient(90deg, #ff9a56 0%, #ffc371 35%, #7fd8be 75%, #4ecdc4 100%);--grad-warm: linear-gradient(135deg, #ff9a56, #ffb4c6);--shadow-sm: 0 2px 8px rgba(255, 154, 86, .12);--shadow-md: 0 6px 20px rgba(255, 154, 86, .18);--text: #3d2a1f;--text-soft: #7a6458;--text-muted: #a99786;--border-subtle: rgba(255, 154, 86, .18);--err: #ff6b6b;--err-bg: #ffe0e0}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Poppins,Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.55}#app{max-width:1280px;margin:0 auto;padding:48px 40px 120px}.app-header{display:flex;flex-direction:column;gap:6px;margin-bottom:36px}.app-header h1{margin:0;font-size:32px;font-weight:800;letter-spacing:-.02em;background:var(--grad-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.app-header .sub{color:var(--text-muted);font-size:13px;font-weight:600}.nav{display:flex;gap:16px;margin-top:12px;align-items:center}.nav a{color:var(--text-soft);text-decoration:none;font-weight:600;padding:8px 16px;border-radius:10px;border:1px solid var(--border-subtle);background:var(--bg-card);transition:all .2s ease}.nav a.active{color:#fff;background:var(--grad-warm);border-color:transparent;box-shadow:var(--shadow-sm)}.nav a:hover:not(.active){border-color:var(--peach)}.logout-btn{margin-left:auto;padding:8px 14px;border:1px solid var(--border-subtle);background:var(--bg-card);border-radius:10px;font-family:inherit;font-size:13px;font-weight:600;color:var(--text-soft);cursor:pointer;transition:all .2s ease}.logout-btn:hover{border-color:var(--err);color:var(--err)}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:18px;padding:28px 32px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.card h2{margin:0 0 12px;font-size:20px;font-weight:700}.card h3{margin:20px 0 10px;font-size:15px;font-weight:700;color:var(--text-soft)}.card.center{text-align:center;max-width:480px;margin:80px auto}.card.error{border-color:var(--err);background:var(--err-bg);color:#8a2a2a}.muted{color:var(--text-soft);font-size:13px}code{background:#ffffffb3;padding:2px 6px;border-radius:6px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px}.primary{background:var(--grad-warm);color:#fff;border:none;border-radius:12px;padding:12px 24px;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}.primary:disabled{opacity:.5;cursor:not-allowed}.badge{display:inline-block;padding:2px 10px;background:var(--peach-soft);color:var(--text);border-radius:999px;font-size:12px;font-weight:700;margin-left:8px}.projects-table{width:100%;border-collapse:separate;border-spacing:0;margin-top:16px;border-radius:12px;overflow:hidden;border:1px solid var(--border-subtle)}.projects-table th{text-align:left;padding:12px 14px;background:var(--peach-soft);font-weight:700;font-size:13px}.projects-table td{padding:12px 14px;border-top:1px solid var(--border-subtle);vertical-align:top}.projects-table tr:nth-child(2n) td{background:var(--bg)}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;background:var(--peach-soft);color:var(--text)}.pill.active{background:var(--mint-soft);color:var(--mint-deep)}.pill.dev{background:var(--peach-soft);color:var(--orange)}.code-row{display:flex;align-items:stretch;gap:8px;margin:8px 0}.code-row pre{flex:1;margin:0;background:#ffffffd9;border:1px solid var(--border-subtle);border-radius:10px;padding:10px 14px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;white-space:pre-wrap;word-break:break-all}.copy-btn{background:linear-gradient(135deg,#7fd8be,#c8b6ff);color:#fff;border:none;border-radius:10px;padding:6px 16px;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.copy-btn:hover{transform:translateY(-1px)}.graph-placeholder{min-height:320px;border:1px dashed var(--border-subtle);border-radius:12px;display:flex;align-items:center;justify-content:center;margin-top:16px}@media (max-width: 768px){#app{padding:24px 16px 80px}.app-header h1{font-size:24px}.nav{flex-wrap:wrap}}
