:root{--bg:#f5f7fa;--surface:#fff;--ink:#12181f;--ink-soft:#5b6472;--ink-faint:#8a93a3;--border:#e4e8ee;--primary:#0f766e;--primary-dark:#0b5b55;--primary-light:#e6f7f5;--accent:#ff6b4a;--accent-dark:#e5502f;--scholarship-bg:#f3e8ff;--scholarship-text:#7c3aed;--job-bg:#dbeafe;--job-text:#2563eb;--update-bg:#fef3c7;--update-text:#b45309;--news-bg:#dcfce7;--news-text:#15803d;--font-display:"Plus Jakarta Sans","Inter",system-ui,sans-serif;--font-body:"Inter",system-ui,sans-serif;--radius:14px;--shadow-sm:0 1px 2px rgba(18,24,31,.06);--shadow-md:0 8px 24px -8px rgba(18,24,31,.16);--shadow-lg:0 20px 40px -16px rgba(18,24,31,.22)}*{box-sizing:border-box}body,html{padding:0;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);line-height:1.55;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:inherit}button{font-family:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.page{max-width:1120px;margin:0 auto;padding:2.5rem 1.5rem 5rem}.site-header{display:flex;flex-direction:column;gap:.5rem;padding:2rem 0 2.25rem;margin-bottom:2.5rem;border-bottom:1px solid var(--border)}.site-header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.site-title-link{text-decoration:none}.site-tagline{font-family:var(--font-body);font-size:.85rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--primary);margin:0 0 1.25rem}.site-title{font-family:var(--font-display);font-weight:800;font-size:clamp(1.9rem,4.5vw,2.6rem);letter-spacing:-.02em;margin:0;color:var(--ink)}.admin-link{font-family:var(--font-body);font-size:.8rem;font-weight:600;text-decoration:none;color:var(--ink-soft);border:1px solid var(--border);padding:.5rem .9rem;border-radius:999px;background:var(--surface);transition:border-color .15s ease,color .15s ease}.admin-link:hover{border-color:var(--primary);color:var(--primary)}.site-nav{display:flex;gap:.4rem;flex-wrap:wrap}.nav-link{font-family:var(--font-body);font-size:.9rem;font-weight:600;text-decoration:none;color:var(--ink-soft);padding:.5rem .9rem;border-radius:999px;transition:background .15s ease,color .15s ease}.nav-link:hover{background:var(--primary-light);color:var(--primary-dark)}.nav-link[data-active=true]{color:#fff;background:var(--primary)}.controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:flex-end;margin-bottom:2rem}.search{font-family:var(--font-body);font-size:.92rem;padding:.65rem 1.1rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);min-width:220px}.search:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.board{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:1.5rem;gap:1.5rem}.notice{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.5rem;display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.notice:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:transparent}.stamp{align-self:flex-start;font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:.3rem .7rem;border-radius:999px;margin-bottom:.85rem}.stamp[data-cat=scholarship]{background:var(--scholarship-bg);color:var(--scholarship-text)}.stamp[data-cat=job]{background:var(--job-bg);color:var(--job-text)}.stamp[data-cat=update]{background:var(--update-bg);color:var(--update-text)}.stamp[data-cat=news]{background:var(--news-bg);color:var(--news-text)}.notice-title{font-family:var(--font-display);font-weight:700;font-size:1.15rem;letter-spacing:-.01em;margin:0 0 .25rem;padding-right:0;line-height:1.3}.notice-org{font-size:.87rem;font-weight:600;color:var(--ink-soft);margin:0 0 .75rem}.notice-desc{font-size:.92rem;color:var(--ink-soft);margin:0 0 1.1rem;flex-grow:1}.notice-stub{border-top:1px solid var(--border);margin-top:auto;padding-top:.9rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;font-size:.78rem;color:var(--ink-faint)}.notice-stub .deadline{color:var(--accent-dark);font-weight:600;background:#fff1ec;padding:.2rem .55rem;border-radius:999px}.notice-link{font-family:var(--font-body);font-size:.83rem;font-weight:700;text-decoration:none;color:#fff;background:var(--accent);padding:.5rem 1rem;border-radius:999px;white-space:nowrap;transition:background .15s ease,transform .15s ease}.notice-link:hover{background:var(--accent-dark);transform:translateY(-1px)}.empty-state{font-family:var(--font-body);color:var(--ink-faint);text-align:center;padding:3.5rem 1rem;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface)}.admin-shell{max-width:480px;margin:4rem auto;padding:0 1.5rem}.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:2rem}.admin-card h1{font-family:var(--font-display);font-weight:700;font-size:1.4rem;margin-top:0;letter-spacing:-.01em}.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.1rem}.field label{font-family:var(--font-body);font-size:.78rem;font-weight:600;color:var(--ink-soft)}.field input,.field select,.field textarea{font-family:var(--font-body);font-size:.95rem;padding:.65rem .85rem;border:1px solid var(--border);border-radius:10px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.field textarea{min-height:90px;resize:vertical}.btn{font-family:var(--font-body);font-size:.85rem;font-weight:700;border:none;background:var(--primary);color:#fff;padding:.7rem 1.3rem;border-radius:999px;cursor:pointer;transition:background .15s ease,transform .15s ease}.btn:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg);border-color:var(--ink-faint)}.btn-danger{background:#fff1ec;color:var(--accent-dark);border:1px solid #ffd9cc}.btn-danger:hover{background:var(--accent);color:#fff}.error-text{color:var(--accent-dark);font-size:.85rem;margin:-.4rem 0 1rem}.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.dashboard-header h1{font-family:var(--font-display);font-weight:800;font-size:1.7rem;letter-spacing:-.01em;margin:0}.post-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--border)}.post-row-actions{display:flex;gap:.5rem;flex-shrink:0}.badge{display:inline-block;font-family:var(--font-body);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.2rem .6rem;border-radius:999px;margin-bottom:.4rem}.badge[data-cat=scholarship]{background:var(--scholarship-bg);color:var(--scholarship-text)}.badge[data-cat=job]{background:var(--job-bg);color:var(--job-text)}.badge[data-cat=update]{background:var(--update-bg);color:var(--update-text)}.badge[data-cat=news]{background:var(--news-bg);color:var(--news-text)}@media (max-width:560px){.controls{flex-direction:column;align-items:stretch;border-radius:20px}.search{width:100%}}.article-shell{max-width:720px;margin:0 auto;padding:1rem 0 3rem}.article-title{font-family:var(--font-display);font-weight:800;font-size:clamp(1.7rem,4vw,2.3rem);letter-spacing:-.02em;margin:.75rem 0 .6rem;color:var(--ink)}.article-meta{font-size:.85rem;color:var(--ink-faint);margin:0 0 2rem}.article-body{font-size:1.02rem;color:var(--ink);line-height:1.75}.article-body p{margin:0 0 1.1rem}.article-h2{font-family:var(--font-display);font-weight:700;font-size:1.25rem;letter-spacing:-.01em;color:var(--ink);margin:1.75rem 0 .75rem}.article-list{margin:0 0 1.1rem;padding-left:1.3rem}.article-list li{margin-bottom:.45rem}.site-footer{max-width:1120px;margin:3rem auto 0;padding:1.5rem 1.5rem 2.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--border);font-size:.82rem;color:var(--ink-faint)}.footer-link{color:var(--ink-soft);text-decoration:none}.footer-link:hover{color:var(--primary)}