.card[data-v-a5b88323]{grid-column:span 12;border:1px solid var(--border);border-radius:12px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:8px;box-shadow:0 2px 6px #0000000d;transition:all .25s ease-in-out}.card[data-v-a5b88323]:hover{transform:scale(1.02);box-shadow:0 6px 12px #00000014}@media (min-width: 640px){.card[data-v-a5b88323]{grid-column:span 6}}@media (min-width: 1024px){.card[data-v-a5b88323]{grid-column:span 3}}.cover[data-v-a5b88323]{width:100%;aspect-ratio:16 / 9;background:#f6f6f6;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden}.cover img[data-v-a5b88323]{width:100%;height:100%;object-fit:cover;transition:transform .2s ease-in-out}.card:hover .cover img[data-v-a5b88323]{transform:scale(1.02)}.card-title[data-v-a5b88323]{font-size:16px;font-weight:600;margin:6px 0 2px;color:var(--text)}.card-desc[data-v-a5b88323]{font-size:14px;line-height:1.5;min-height:42px;color:var(--text-muted)}.btn[data-v-a5b88323]{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 14px;border-radius:8px;font-weight:600;text-decoration:none;transition:all .25s ease-in-out}.btn-ghost[data-v-a5b88323]{border:1px solid var(--border);background:var(--brand-light);color:var(--brand)}.btn-ghost[data-v-a5b88323]:hover{background:var(--brand);color:#fff}.modal-backdrop[data-v-e43c6c61]{position:fixed;inset:0;background:#0000004d;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal[data-v-e43c6c61]{width:100%;max-width:520px;background:#fff;border-radius:12px;padding:24px;box-shadow:0 12px 40px #0000001a}.modal-title[data-v-e43c6c61]{font-size:18px;font-weight:600;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border);color:var(--text)}.field[data-v-e43c6c61]{display:flex;flex-direction:column;gap:8px;margin:10px 0}.field input[data-v-e43c6c61],.field textarea[data-v-e43c6c61]{border:1px solid #ccc;border-radius:8px;padding:10px 12px;font-size:14px;transition:all .25s ease-in-out}.field input[data-v-e43c6c61]:focus,.field textarea[data-v-e43c6c61]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #16a34a26}.modal-actions[data-v-e43c6c61]{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.btn[data-v-e43c6c61]{height:36px;padding:0 14px;border-radius:8px;cursor:pointer;font-weight:600;transition:all .25s ease-in-out}.btn-ghost[data-v-e43c6c61]{background:#fff;border:1px solid var(--border);color:var(--text)}.btn-ghost[data-v-e43c6c61]:hover{background:#f5f5f5}.btn-primary[data-v-e43c6c61]{background:var(--brand);color:#fff;border:none}.btn-primary[data-v-e43c6c61]:hover{background:var(--brand-hover)}.btn-primary[data-v-e43c6c61]:disabled{opacity:.6;cursor:not-allowed}.tiny[data-v-e43c6c61]{font-size:12px;color:var(--text-muted);margin-top:4px}:root{--brand: #16a34a;--brand-hover: #15803d;--brand-light: #dcfce7;--text: #222;--text-muted: #666;--border: #e5e5e5;--bg: #fafafa}*{box-sizing:border-box;max-width:100%}html,body{margin:0;padding:0;font-family:system-ui,Noto Sans TC,sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden}#app{display:flex;flex-direction:column;min-height:100vh}.header{padding:0 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#fff;z-index:10}.brand{display:flex;align-items:center;gap:8px}.logo-dot{width:10px;height:10px;background:var(--brand);border-radius:50%}.muted{color:#7a7a7a;font-weight:500}@media (max-width: 640px){.header{align-items:center;gap:8px;padding:12px 16px}}.footer{margin-top:64px;padding:32px 24px;text-align:center;font-size:14px;color:var(--text-muted);border-top:1px solid var(--border);background:var(--bg)}@media (max-width: 640px){.footer{padding:24px 16px;font-size:13px}}.container{width:100%;max-width:1536px;margin:24px auto;padding:0 24px}@media (max-width: 640px){.container{padding:0 16px}}.main{flex:1}.page-title{font-size:22px;margin-bottom:4px}.project-count{font-size:14px;color:var(--text-muted);margin-bottom:16px}.hint{color:#666;margin:24px 0}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}@media (min-width: 640px){.grid{gap:20px}}@media (min-width: 768px){.grid{gap:24px}}.card{grid-column:span 12;border:1px solid var(--border);border-radius:12px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:8px;box-shadow:0 2px 6px #0000000d;transition:transform .25s ease-in-out}.card:hover{transform:scale(1.02);box-shadow:0 6px 12px #00000014}@media (min-width: 640px){.card{grid-column:span 6}}@media (min-width: 1024px){.card{grid-column:span 3}}.btn{height:38px;padding:0 14px;border-radius:8px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .25s ease-in-out}.btn-primary{background:var(--brand);color:#fff;border:none}.btn-primary:hover{background:var(--brand-hover)}.btn-ghost{border:1px solid var(--border);background:var(--brand-light);color:var(--brand)}.btn-ghost:hover{background:var(--brand);color:#fff}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;font-size:14px;margin:32px auto;color:var(--text);flex-wrap:wrap}.pagination button{background:var(--brand-light);border:1px solid var(--border);border-radius:6px;padding:6px 12px;cursor:pointer;transition:all .2s ease-in-out;font-weight:600}.pagination button:hover{background:var(--brand);color:#fff}.pagination button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 480px){.pagination{flex-direction:column;gap:8px;font-size:13px}.pagination button{width:100%}}
