:root{--bg: #eef3f1;--bg-deep: #dfe8e4;--surface: #f7faf8;--ink: #142421;--muted: #5a6f68;--line: #c5d4ce;--teal: #0d5c4d;--teal-soft: #1a7a66;--teal-wash: #d5ebe4;--amber: #b86a1c;--amber-wash: #f6e6d4;--rose: #9b3b3b;--rose-wash: #f3dede;--slate: #3d4f49;--shadow: 0 18px 40px rgba(20, 36, 33, .08);--radius: 18px;--font-display: "Fraunces", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);font-family:var(--font-body);background:radial-gradient(1200px 500px at 10% -10%,#cfe4dc 0%,transparent 55%),radial-gradient(900px 420px at 100% 0%,#e7ddd0 0%,transparent 50%),linear-gradient(180deg,var(--bg) 0%,var(--bg-deep) 100%);background-attachment:fixed}a{color:var(--teal);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.dashboard-shell{position:relative;isolation:isolate;background-color:#d8cfc4;background-image:linear-gradient(120deg,#eef3f1c7,#eef3f18c 40%,#ffffff6b),url(/dashboard-bg.jpg);background-size:cover;background-position:center top;background-repeat:no-repeat;background-attachment:fixed}.dashboard-shell .sidebar{background:#f7faf8e0}.dashboard-shell .panel,.dashboard-shell .stat,.dashboard-shell .job-card{background:#f7faf8e6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.sidebar{padding:28px 22px;border-right:1px solid var(--line);background:#f7faf8d1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;height:100vh}.brand{font-family:var(--font-display);font-size:1.45rem;line-height:1.15;color:var(--teal);margin:0 0 6px}.brand-sub{margin:0 0 28px;color:var(--muted);font-size:.85rem}.nav{display:flex;flex-direction:column;gap:6px}.nav a{padding:11px 14px;border-radius:12px;color:var(--slate);text-decoration:none;font-weight:500;transition:background .2s ease,color .2s ease,transform .2s ease}.nav a:hover{background:var(--teal-wash);transform:translate(2px)}.nav a.active{background:var(--teal);color:#f4faf8}.main{padding:28px 32px 48px}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px}.page-header h1{font-family:var(--font-display);font-size:2rem;margin:0 0 6px;letter-spacing:-.02em}.page-header p{margin:0;color:var(--muted)}.welcome-msg{margin:0 0 8px!important;font-family:var(--font-display);font-size:1.35rem;font-weight:600;color:var(--teal)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:28px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 18px 16px;box-shadow:var(--shadow);animation:rise .45s ease both}.stat:nth-child(2){animation-delay:.05s}.stat:nth-child(3){animation-delay:.1s}.stat:nth-child(4){animation-delay:.15s}.stat .label{color:var(--muted);font-size:.82rem;margin-bottom:8px}.stat .value{font-family:var(--font-display);font-size:2rem;color:var(--teal);line-height:1}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:18px;animation:rise .5s ease both}.panel h2{margin:0 0 14px;font-family:var(--font-display);font-size:1.25rem}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}input,select,textarea,button{font:inherit}input,select,textarea{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;color:var(--ink);min-width:0}textarea{width:100%;min-height:100px;resize:vertical}button,.btn{border:none;border-radius:12px;padding:10px 14px;background:var(--teal);color:#f4faf8;font-weight:600;cursor:pointer;transition:transform .15s ease,background .15s ease,opacity .15s ease}button:hover,.btn:hover{background:var(--teal-soft);transform:translateY(-1px)}button.secondary,.btn.secondary{background:transparent;color:var(--teal);border:1px solid var(--line)}button:disabled{opacity:.55;cursor:not-allowed;transform:none}.job-list{display:flex;flex-direction:column;gap:12px}.job-row{display:grid;grid-template-columns:1fr auto;gap:16px;padding:16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,#fff,#f3f8f6);transition:border-color .2s ease,transform .2s ease}.job-row:hover{border-color:#9fc4b8;transform:translateY(-1px)}.job-row h3{margin:0 0 6px;font-size:1.05rem}.meta{color:var(--muted);font-size:.9rem}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.chip{font-size:.75rem;padding:4px 8px;border-radius:999px;background:var(--teal-wash);color:var(--teal);font-weight:600}.chip.warn{background:var(--amber-wash);color:var(--amber)}.chip.danger{background:var(--rose-wash);color:var(--rose)}.chip.neutral{background:#e8eeeb;color:var(--slate)}.chip.ok{background:#d8f0e4;color:#1b6b45}.job-row-3{grid-template-columns:minmax(0,1.4fr) minmax(140px,.7fr) minmax(160px,.9fr);align-items:start}.job-table-head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(140px,.7fr) minmax(160px,.9fr);gap:16px;padding:0 16px 8px;color:var(--muted);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.syllabus-col{border-left:1px solid var(--line);padding-left:14px;min-width:0}.syllabus-exam{font-weight:700;font-size:.92rem;margin:4px 0 6px}.syllabus-topics{line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.syllabus-link{display:inline-block;margin-top:8px;font-size:.85rem;font-weight:600}.syllabus-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:12px}.syllabus-paper{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#f7fbf9}.syllabus-paper h3{margin:0 0 8px;font-size:.95rem}.syllabus-paper h4{margin:12px 0 6px;font-size:.88rem;color:var(--teal)}.syllabus-paper ul{margin:0;padding-left:18px;color:var(--slate);font-size:.9rem}.syllabus-paper li{margin-bottom:4px;line-height:1.4}.syllabus-title{font-weight:700;margin:0 0 6px}.syllabus-meta{margin-bottom:8px}.syllabus-section{margin-top:4px}.syllabus-extra{margin-top:10px!important}.syllabus-grid-detail{grid-template-columns:1fr}@media (min-width: 900px){.syllabus-grid-detail{grid-template-columns:1fr 1fr}}.dates{text-align:right;min-width:160px}.dates .deadline{font-weight:700;color:var(--teal)}.dates .deadline.urgent{color:var(--rose)}.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}.timeline li{padding:0 0 18px 18px;position:relative}.timeline li:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--teal);position:absolute;left:-6px;top:4px}.update-type{text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700;color:var(--amber)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1 / -1}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:.88rem;color:var(--muted)}.check-row{display:flex;flex-wrap:wrap;gap:12px 18px}.check-row label{flex-direction:row;align-items:center;gap:8px;color:var(--ink)}.toast{margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--teal-wash);color:var(--teal)}.toast.error{background:var(--rose-wash);color:var(--rose)}.empty{color:var(--muted);padding:24px 8px}.detail-links{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 8px}.chip.sector{background:#e7eef8;color:#2a4a7a}.portal-list{margin:0;padding-left:1.1rem;line-height:1.7}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.register-page{position:relative;isolation:isolate;background-color:#fce8f0;background-image:linear-gradient(160deg,#ffffff6b,#ffe4f047,#ffffff59),url(/register-roses.png);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}.register-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 70% 50% at 15% 20%,rgba(255,182,193,.35),transparent 60%),radial-gradient(ellipse 50% 40% at 85% 80%,rgba(255,255,255,.45),transparent 55%);pointer-events:none}.auth-card{width:min(560px,100%);background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:28px 26px 24px;animation:rise .45s ease both}.register-card{background:#ffffffeb;border:1px solid rgba(255,192,203,.55);box-shadow:0 18px 48px #7828462e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-card h1{font-family:var(--font-display);margin:0 0 8px;font-size:1.9rem;color:var(--teal)}.auth-eyebrow{margin:0 0 8px;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700;color:var(--amber)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 960px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--line)}.nav{flex-direction:row;flex-wrap:wrap}.stats{grid-template-columns:1fr 1fr}.job-row,.job-row-3,.job-table-head,.form-grid{grid-template-columns:1fr}.job-table-head{display:none}.syllabus-col{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:12px}.dates{text-align:left}.main{padding:20px 16px 40px}}
