@font-face{font-family:Araboto;src:url('/static/fonts/Araboto Normal 400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Araboto;src:url('/static/fonts/Araboto Medium 400.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Araboto;src:url('/static/fonts/Araboto Bold 400.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Araboto;src:url('/static/fonts/Araboto Black 400.ttf') format('truetype');font-weight:800;font-style:normal;font-display:swap}

:root{
  --dark:#02242F;--blue:#006E91;--blue-dark:#005b78;--blue-soft:#E7F2F5;--page:#F4F8F9;--paper:#FFFFFF;
  --field:#EEF5F7;--field-hover:#E6F0F3;--line:#D7E3E7;--ink:#17212A;--muted:#657782;
  --red:#CF1414;--yellow:#FFB200;--green:#91C24F;--shadow:0 20px 50px rgba(2,36,47,.09);--radius:18px;
}
*{box-sizing:border-box}html,body{margin:0;min-width:320px;min-height:100%;font-family:Araboto,Arial,sans-serif;color:var(--ink);background:var(--page)}
a{color:inherit}button,input,select,textarea{font:inherit}button,a,summary{outline-offset:3px}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(0,110,145,.28)}
body{overflow-x:hidden}.surface-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.eyebrow{margin:0 0 8px;color:var(--blue-dark);font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.micro-label{margin:1.05rem 0 .42rem;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.large-data{margin:.25rem 0;font-size:1.05rem;font-weight:700}.person-line{margin:.3rem 0;color:var(--ink);line-height:1.4}.person-line a{color:var(--blue-dark);text-decoration:none}.person-line a:hover{text-decoration:underline}
.primary-button{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:0;border-radius:12px;background:var(--blue);color:#fff;padding:.9rem 1.25rem;font-weight:750;text-decoration:none;cursor:pointer}.primary-button:hover{background:var(--blue-dark)}
.outline-button,.outline-action,.google-button{border:2px solid var(--dark);border-radius:14px;background:#fff;color:var(--ink);font-weight:700;cursor:pointer;text-decoration:none}.outline-button{display:inline-flex;padding:.85rem 1.15rem}.text-link{color:var(--dark);text-decoration:none;font-weight:700}.text-link:hover{text-decoration:underline}

/* Authentication */
.brand-page{background:linear-gradient(180deg,#087b98,#006f8c)}.auth-page{min-height:100dvh;padding:42px 20px;display:grid;place-items:center}.auth-card,.denied-card{width:min(720px,calc(100vw - 32px));padding:clamp(34px,6vw,64px);text-align:center}.auth-card h1,.denied-card h1{margin:.1rem 0 1rem;font-size:clamp(2.3rem,5vw,4rem);line-height:1.02;letter-spacing:-.04em}.auth-lead,.portal-login label{display:block;margin:26px 0 20px;font-size:clamp(1.35rem,3vw,2rem);font-weight:400}.role-buttons{display:grid;gap:14px;max-width:430px;margin:24px auto 0}.role-buttons a{padding:17px 22px;border-radius:13px;background:var(--blue);color:#fff;text-decoration:none;font-size:1.25rem;font-weight:700}.role-buttons a:hover{background:var(--blue-dark)}
.portal-login{display:grid;gap:22px;max-width:500px;margin:0 auto}.portal-login input,.portal-login select,.manage-grid input,.manage-grid textarea,.manage-grid select,.step-edit-row input,.step-edit-row select,.form-modal-panel input,.form-modal-panel select{width:100%;border:1px solid transparent;border-radius:13px;background:var(--field);padding:15px 16px;color:var(--ink)}.portal-login input:focus,.portal-login select:focus,.manage-grid input:focus,.manage-grid textarea:focus,.manage-grid select:focus{border-color:var(--blue);background:#fff}.google-button{display:flex;align-items:center;justify-content:center;gap:15px;padding:14px 20px;margin-top:10px;font-size:1.15rem}.google-g{font-family:Arial,sans-serif;font-weight:800;font-size:1.6rem;color:#4285f4}.auth-card>.text-link{display:inline-block;margin-top:25px}.demo-note{color:var(--muted);font-size:.86rem}.coordinator-login-copy{padding:6px 0 2px}.coordinator-login-copy h2{margin:0 0 8px;font-size:1.8rem}.coordinator-login-copy p{margin:0;color:var(--muted);line-height:1.55}.warning-symbol{width:104px;height:90px;margin:0 auto 34px;background:var(--red);clip-path:polygon(50% 0,100% 100%,0 100%);color:#fff;display:grid;place-items:end center;font-size:4.5rem;font-weight:800;line-height:1;padding-bottom:4px}.denied-card p{color:var(--muted);line-height:1.6;margin:20px 0 30px}

/* Shared portal shell */
.portal-topbar{height:96px;padding:18px clamp(26px,5vw,72px);display:flex;align-items:center;justify-content:space-between;background:transparent}.portal-header-card{position:relative;z-index:20}.portal-kicker{font-size:.88rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-dark)}.account-area{position:relative;display:flex;align-items:center;gap:12px}.avatar{width:64px;height:64px;border:0;border-radius:17px;background:var(--dark);color:#fff;font-size:1.55rem;cursor:pointer}.dev-pill{display:inline-flex;padding:6px 10px;border:1px solid var(--yellow);border-radius:999px;font-size:.78rem}.account-menu{position:absolute;right:0;top:74px;width:245px;padding:18px;z-index:50;display:grid;gap:8px}.account-menu[hidden]{display:none}.account-menu span{font-size:.9rem;color:var(--muted)}.account-menu a,.account-menu button{border:0;background:none;padding:8px 0;text-align:left;color:var(--blue-dark);font-weight:700;cursor:pointer;text-decoration:none}.portal-shell{min-height:calc(100dvh - 96px)}.page-heading h1{margin:.1rem 0 .5rem;font-size:clamp(2.4rem,4vw,4rem);line-height:1;letter-spacing:-.04em}.page-heading>p:last-child{max-width:72ch;margin:0;color:var(--muted);line-height:1.55}
.redesigned-scroll{scrollbar-gutter:stable;overscroll-behavior:contain}.redesigned-scroll::-webkit-scrollbar,.compact-table::-webkit-scrollbar,.message-list::-webkit-scrollbar,.mentoring-carousel::-webkit-scrollbar{width:10px;height:10px}.redesigned-scroll::-webkit-scrollbar-thumb,.compact-table::-webkit-scrollbar-thumb,.message-list::-webkit-scrollbar-thumb,.mentoring-carousel::-webkit-scrollbar-thumb{background:#bdd0d6;border-radius:999px;border:2px solid transparent;background-clip:padding-box}.redesigned-scroll::-webkit-scrollbar-track,.compact-table::-webkit-scrollbar-track,.message-list::-webkit-scrollbar-track,.mentoring-carousel::-webkit-scrollbar-track{background:transparent}

/* Student cabinet */
.student-cabinet{height:calc(100dvh - 96px);display:grid;grid-template-columns:minmax(0,1.75fr) minmax(310px,.72fr);gap:30px;padding:20px clamp(26px,5vw,72px) 38px;overflow:hidden}.student-course-column{min-height:0;display:flex;flex-direction:column}.student-course-column .page-heading{flex:0 0 auto;margin-bottom:22px}.course-list{min-height:0;overflow-y:auto;padding:0 12px 12px 0;display:grid;align-content:start;gap:16px}.course-card{overflow:hidden;box-shadow:0 10px 28px rgba(2,36,47,.06)}.course-card summary{list-style:none;cursor:pointer;padding:20px 22px;display:grid;grid-template-columns:minmax(0,1fr) 22px;align-items:center;background:#fff}.course-card summary::-webkit-details-marker{display:none}.course-card[open] summary{border-bottom:1px solid var(--line)}.course-title-wrap{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.course-title-wrap strong{font-size:1.15rem}.course-title-wrap small{color:var(--muted);font-size:.9rem;white-space:nowrap}.summary-chevron{font-size:1.35rem;color:var(--blue);transition:transform .18s}.course-card[open] .summary-chevron{transform:rotate(180deg)}.course-card-content{padding:20px 22px 24px;background:#fff}.attendance-card{padding:16px 18px;border:1px solid var(--line);border-radius:15px;background:#f9fbfc}.attendance-row+.attendance-row{margin-top:14px}.attendance-label{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:8px}.attendance-label strong{font-size:.92rem}.attendance-label span{font-size:.86rem;color:var(--blue-dark);font-weight:800}.attendance-squares{display:grid;grid-template-columns:repeat(12,minmax(10px,1fr));gap:6px}.attendance-square{aspect-ratio:1;border-radius:4px;border:1px solid #cbd8dc;background:#fff}.attendance-square.attended{background:var(--blue);border-color:var(--blue)}.attendance-square.pending{background:#d8e0e3;border-color:#d8e0e3}.attendance-square.absent{background:#fff;border-color:#b9c7cc}.attendance-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;color:var(--muted);font-size:.72rem}.attendance-legend span{display:flex;align-items:center;gap:5px}.legend-box{width:10px;height:10px;border-radius:2px;border:1px solid #b9c7cc}.legend-box.attended{background:var(--blue);border-color:var(--blue)}.legend-box.pending{background:#d8e0e3;border-color:#d8e0e3}.student-course-details{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:20px}.student-course-details>div+div{border-left:1px solid var(--line);padding-left:28px}.link-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.link-pills a{padding:8px 11px;border-radius:999px;background:var(--blue-soft);color:var(--blue-dark);font-size:.82rem;font-weight:800;text-decoration:none}.student-actions-column{min-height:0;overflow-y:auto;display:grid;align-content:start;gap:16px;padding:0 10px 12px 0}.action-card{padding:24px}.action-card h2{margin:.1rem 0 18px;font-size:1.45rem}.student-form-button{min-height:55px;margin-top:10px;padding:12px 14px;border:1px solid var(--line);border-radius:13px;display:flex;align-items:center;justify-content:space-between;text-decoration:none;font-weight:700}.student-form-button.active{background:var(--field);color:var(--dark)}.student-form-button.active:hover{border-color:var(--blue);background:var(--blue-soft)}.student-form-button.disabled{color:#9aa7ad;background:#f8fafb}.student-form-button small{font-size:.72rem;font-weight:700}.contact-link{display:block;padding:7px 0;color:var(--blue-dark);text-decoration:none}

/* Coordinator cabinet */
.coordinator-shell{height:calc(100dvh - 96px);padding:16px clamp(26px,5vw,72px) 38px;display:flex;flex-direction:column;overflow:hidden}.coordinator-heading{flex:0 0 auto;margin-bottom:22px}.coordinator-course-list{min-height:0;overflow-y:auto;padding:0 12px 14px 0;display:grid;align-content:start;gap:22px}.coordinator-course{padding:28px;box-shadow:0 12px 34px rgba(2,36,47,.07)}.coordinator-course-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.75fr);gap:30px;align-items:start}.course-label{display:inline-flex;padding:6px 10px;border-radius:999px;background:var(--blue-soft);color:var(--blue-dark);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.coordinator-course h2{margin:10px 0 5px;font-size:clamp(1.65rem,2.5vw,2.3rem);letter-spacing:-.025em}.coordinator-course-head p{margin:0;color:var(--muted)}.coordinator-link-grid{display:grid;gap:8px}.coordinator-link-grid a{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--field);font-weight:750;text-decoration:none}.coordinator-link-grid a:hover{background:var(--blue-soft);border-color:#bddbe4}.coordinator-meta-grid{display:grid;grid-template-columns:1.15fr 1.15fr .8fr;gap:24px;margin:25px 0;padding:20px;border:1px solid var(--line);border-radius:15px;background:#fbfcfd}.description-drop{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0}.description-drop summary{list-style:none;cursor:pointer;padding:16px 0;display:flex;justify-content:space-between;font-weight:800}.description-drop summary::-webkit-details-marker{display:none}.description-drop p{margin:0 0 18px;color:var(--muted);line-height:1.6;max-width:90ch}.mentoring-section{padding-top:24px}.section-heading-row{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:14px}.section-heading-row h3{margin:0;font-size:1.55rem}.scroll-hint{font-size:.78rem;color:var(--muted)}.mentoring-carousel{display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;padding:2px 3px 14px;scroll-snap-type:x proximity}.mentoring-tile{flex:0 0 min(390px,82vw);scroll-snap-align:start;border:1px solid var(--line);border-radius:16px;background:#fff;padding:19px;box-shadow:0 8px 24px rgba(2,36,47,.05)}.group-card__topline{display:flex;justify-content:space-between;gap:12px;align-items:start}.group-card__topline h4{margin:0;font-size:1.25rem}.group-count{color:var(--muted);font-size:.75rem}.tag-list{display:flex;flex-wrap:wrap;gap:7px}.tag{padding:5px 9px;border-radius:999px;background:var(--field);color:var(--blue-dark);font-size:.75rem;font-weight:700}.mentor-line{padding:7px 0;border-top:1px solid var(--line)}.student-roster{margin-top:14px;border-top:1px solid var(--line)}.roster-head,.roster-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 0}.roster-head{color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.roster-row{border-top:1px solid #edf2f4;font-size:.86rem}.roster-row strong{display:inline-grid;place-items:center;min-width:32px;height:28px;border-radius:9px;background:var(--blue-soft);color:var(--blue-dark)}.scholarship-badge{display:inline-flex;margin-left:7px;padding:3px 6px;border-radius:999px;background:#fff1c9;color:#826000;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em}.empty-state{flex:1;padding:30px;border:1px dashed var(--line);border-radius:14px;color:var(--muted)}

/* Administrative dashboard */
.admin-grid{height:calc(100dvh - 96px);min-height:0;padding:16px clamp(24px,4vw,62px) 34px;display:grid;grid-template-columns:minmax(300px,.9fr) minmax(320px,.95fr) minmax(280px,.8fr);grid-template-rows:minmax(260px,.48fr) minmax(230px,.52fr);gap:24px;overflow:hidden}.admin-grid h1{margin:0 0 15px;font-size:clamp(1.9rem,2.7vw,2.7rem);letter-spacing:-.035em}.admin-progress,.forms-panel,.admin-messages{min-height:0;display:flex;flex-direction:column}.admin-progress{grid-row:1/3}.forms-panel{grid-column:2;grid-row:1}.admin-actions{grid-column:3;grid-row:1;display:grid;align-content:start;gap:14px;padding-top:57px}.admin-messages{grid-column:2/4;grid-row:2}.compact-table,.message-list{min-height:0;overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(2,36,47,.05)}.compact-table{flex:1;padding:10px 14px}.compact-head,.compact-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(105px,auto);gap:10px;align-items:center;min-height:48px;padding:0 8px;border-bottom:1px solid var(--line)}.compact-head{position:sticky;top:0;z-index:3;background:#fff;font-weight:800}.compact-row{color:var(--ink);text-decoration:none}.compact-row:hover{background:var(--field)}button.compact-row{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;cursor:pointer}.status,.form-status{font-weight:800;text-align:right;white-space:nowrap}.status-not-started,.form-status-not-launched{color:var(--red)}.status-in-progress,.form-status-active{color:var(--yellow)}.status-completed,.form-status-closed{color:var(--green)}.outline-action{min-height:68px;padding:12px;background:#fff}.outline-action:hover{background:var(--field)}.messages-heading h2{display:flex;align-items:center;gap:12px;margin:0;font-size:clamp(2rem,3vw,3rem)}.messages-heading h2 span{display:grid;place-items:center;min-width:52px;height:44px;padding:0 12px;border-radius:999px;background:var(--red);color:#fff;font-size:1.1rem}.messages-heading p{margin:9px 0 13px;color:var(--muted)}.message-list{flex:1;padding:12px}.message-item{position:relative;margin-bottom:8px}.message-link{min-height:56px;padding:10px 48px 10px 12px;border-radius:12px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;background:#f9fbfc;text-decoration:none}.message-link:hover{background:var(--field)}.message-icon img{display:block;width:28px;height:28px}.message-link time{color:var(--muted);font-size:.78rem}.message-resolve-form{position:absolute;right:12px;top:50%;transform:translateY(-50%)}.message-resolve-button{opacity:0;width:30px;height:30px;border:0;border-radius:50%;background:#fff;color:var(--dark);font-size:1.2rem;cursor:pointer}.message-item:hover .message-resolve-button,.message-resolve-button:focus-visible{opacity:1}

/* Process pages / workflow editor */
.process-back-button{display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:var(--dark);color:#fff;text-decoration:none;font-size:1.4rem}.role-label{color:var(--muted);font-weight:700;text-transform:capitalize}.process-shell,.manage-shell{width:min(1180px,calc(100vw - 40px));margin:0 auto;padding:10px 0 54px}.process-shell>h1,.manage-shell>h1{font-size:clamp(2.4rem,4vw,4rem);letter-spacing:-.04em;margin:10px 0 18px}.process-description{max-width:90ch;color:var(--muted);line-height:1.6}.process-prompt{font-weight:700}.process-steps-card,.manage-stage{margin-top:18px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);overflow:hidden}.process-steps-heading,.process-step-row{display:grid;grid-template-columns:minmax(0,1fr) 150px 150px;gap:20px;align-items:center;padding:15px 20px;border-bottom:1px solid var(--line)}.process-steps-heading{font-weight:800;background:#f8fbfc}.process-step-row{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;cursor:pointer}.process-step-row:hover{background:var(--field)}.step-deadline{color:var(--muted)}.manage-shell>p{color:var(--muted)}.manage-stage{padding:24px;overflow:visible}.manage-stage-title{display:flex;justify-content:space-between;gap:20px;align-items:center}.manage-stage-title h2{margin:0}.manage-grid{display:grid;grid-template-columns:1fr 240px;gap:14px;margin:18px 0}.manage-grid label{font-weight:700}.manage-grid .full{grid-column:1/3}.manage-grid textarea{min-height:120px;resize:vertical}.manage-grid .primary-button{justify-self:start}.manage-stage h3{margin-top:28px}.step-edit-row{display:grid;grid-template-columns:minmax(0,1fr) 170px 160px 80px;gap:10px;margin:8px 0}.step-edit-row button{border:0;border-radius:10px;background:var(--field);font-weight:700;cursor:pointer}.add-row{margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}

/* Modals */
.step-modal[hidden]{display:none}.step-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center}.step-modal-backdrop{position:absolute;inset:0;background:rgba(2,36,47,.22);backdrop-filter:blur(5px)}.step-modal-panel{position:relative;width:min(860px,calc(100vw - 34px));max-height:calc(100dvh - 50px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:42px;box-shadow:0 28px 90px rgba(2,36,47,.2)}.step-modal-panel h2{font-size:2rem;margin:0 50px 24px 0}.modal-close{position:absolute;right:22px;top:17px;border:0;background:none;font-size:2.2rem;cursor:pointer;color:var(--dark)}.form-modal-panel form{display:grid;gap:16px}.form-link-line{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center}.saved-check{width:42px;height:42px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:1.3rem}

@media(max-width:1100px){.student-cabinet{grid-template-columns:1fr 300px}.coordinator-course-head{grid-template-columns:1fr}.coordinator-link-grid{grid-template-columns:repeat(3,1fr)}.admin-grid{grid-template-columns:minmax(270px,.85fr) minmax(300px,1fr);grid-template-rows:auto minmax(230px,1fr)}.admin-progress{grid-row:1/3}.forms-panel{grid-column:2;grid-row:1}.admin-actions{display:none}.admin-messages{grid-column:2;grid-row:2}}
@media(max-width:820px){body{overflow-y:auto}.portal-topbar{height:82px;padding:12px 20px}.avatar{width:54px;height:54px}.student-cabinet,.coordinator-shell,.admin-grid{height:auto;min-height:calc(100dvh - 82px);overflow:visible}.student-cabinet{grid-template-columns:1fr;padding:18px 18px 36px}.course-list,.student-actions-column{overflow:visible}.student-course-details{grid-template-columns:1fr}.student-course-details>div+div{border-left:0;border-top:1px solid var(--line);padding:18px 0 0}.course-title-wrap{display:block}.course-title-wrap small{display:block;margin-top:4px}.coordinator-shell{padding:16px 18px 36px}.coordinator-course-list{overflow:visible}.coordinator-course{padding:20px}.coordinator-link-grid{grid-template-columns:1fr}.coordinator-meta-grid{grid-template-columns:1fr}.admin-grid{display:block;padding:16px 18px 36px}.admin-progress,.forms-panel,.admin-messages{margin-bottom:26px}.compact-table{max-height:420px}.message-list{max-height:360px}.process-steps-heading,.process-step-row{grid-template-columns:1fr}.manage-grid,.step-edit-row{grid-template-columns:1fr}.manage-grid .full{grid-column:1}.form-link-line{grid-template-columns:1fr}.auth-card,.denied-card{padding:32px 22px}}

/* Three targeted fixes: admin account menu, student course expansion/scroll, super-admin stage ordering */
.account-menu.surface-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:0 18px 48px rgba(2,36,47,.16);
}

/* Let expanded student course cards take their natural height and push following cards down.
   The course column itself is the scroll container, avoiding clipped nested details in Safari. */
.student-course-column{
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:10px;
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
}
.student-course-column::-webkit-scrollbar{width:10px}
.student-course-column::-webkit-scrollbar-thumb{background:#bdd0d6;border-radius:999px;border:2px solid transparent;background-clip:padding-box}
.student-course-column::-webkit-scrollbar-track{background:transparent}
.course-list{
  min-height:auto;
  overflow:visible;
  padding:0 2px 12px 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.course-card{flex:0 0 auto}
.course-card[open] .course-card-content{display:block}

/* Super-admin drag-and-delete controls */
.manage-stage-list{display:grid;gap:18px}
.manage-stage-list .manage-stage{margin-top:0}
.manage-stage-title-left,.manage-stage-actions{display:flex;align-items:center;gap:12px}
.manage-stage-actions{margin-left:auto}
.drag-handle{
  width:42px;height:42px;border:1px solid var(--line);border-radius:11px;background:var(--field);
  color:var(--blue-dark);font-size:1.25rem;font-weight:800;cursor:grab;line-height:1;
}
.drag-handle:active{cursor:grabbing}
.manage-stage.is-dragging{opacity:.48;box-shadow:none}
.manage-stage.drag-over{outline:3px solid rgba(0,110,145,.22);outline-offset:4px}
.delete-stage-button{
  border:1px solid rgba(207,20,20,.35);border-radius:10px;background:#fff;color:var(--red);
  padding:9px 12px;font-weight:800;cursor:pointer;
}
.delete-stage-button:hover{background:#fff3f3}
.sort-save-note{min-height:1.2em;color:var(--muted);font-size:.85rem}

@media(max-width:820px){
  .student-course-column{overflow:visible;padding-right:0}
  .manage-stage-title{align-items:flex-start;flex-wrap:wrap}
  .manage-stage-actions{width:100%;justify-content:space-between;margin-left:0}
}

/* Super-admin step controls: delete + drag ordering inside each process. */
.manage-step-list{display:grid;gap:10px}
.step-manage-row{display:grid;grid-template-columns:38px 38px minmax(260px,1fr) 170px 160px 80px;gap:10px;align-items:center;border-radius:12px}
.step-manage-row.is-dragging{opacity:.48}
.step-manage-row.drag-over{outline:2px solid rgba(0,110,145,.24);outline-offset:3px}
.step-manage-row .step-edit-row,.step-manage-row .step-delete-form{display:contents}
.step-drag-handle{width:38px;height:46px;border-radius:10px;background:var(--field);display:grid;grid-template-columns:repeat(2,4px);grid-template-rows:repeat(3,4px);gap:4px;place-content:center;cursor:grab;user-select:none;-webkit-user-drag:element}
.step-drag-handle:active{cursor:grabbing}
.step-drag-handle span{width:4px;height:4px;border-radius:50%;background:var(--blue);display:block}
.delete-step-button{width:38px;height:46px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:1.65rem;line-height:1;display:grid;place-items:center;cursor:pointer;font-family:Arial,sans-serif;font-weight:400}
.delete-step-button:hover,.delete-step-button:focus-visible{background:rgba(207,20,20,.07);color:var(--red);outline:none}
.step-manage-row input,.step-manage-row select,.step-manage-row .step-edit-row button{height:46px;min-width:0}
.step-manage-row input[name="name"]{width:100%}
.step-manage-row .step-edit-row button{border:0;border-radius:10px;background:var(--field);font-weight:800;cursor:pointer}
.step-sort-save-note{min-height:1.25em;margin:6px 0 0 86px;color:var(--muted);font-size:.85rem}
@media(max-width:1100px){.step-manage-row{grid-template-columns:38px 38px minmax(200px,1fr) 150px 145px 72px}}
@media(max-width:820px){.step-manage-row{grid-template-columns:38px 38px minmax(0,1fr)}.step-manage-row input[name="name"]{grid-column:3}.step-manage-row input[type="date"],.step-manage-row select,.step-manage-row .step-edit-row button{grid-column:3}.step-sort-save-note{margin-left:86px}}

/* Workflow action enhancements from the implementation brief */
.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.panel-title-row h1{margin-right:auto}.panel-add-button{width:38px;height:38px;border:0;border-radius:11px;background:var(--blue);color:#fff;font-size:1.55rem;line-height:1;cursor:pointer;box-shadow:0 8px 18px rgba(0,110,145,.16)}.panel-add-button:hover{background:var(--blue-dark)}
.modal-delete-button{justify-self:start;border:1px solid rgba(207,20,20,.32);border-radius:11px;background:#fff;color:var(--red);padding:.75rem 1rem;font-weight:800;cursor:pointer}.modal-delete-button:hover{background:#fff3f3}
.process-step-readonly{cursor:default}.process-step-readonly:hover{background:#fff}.workflow-modal-panel{width:min(900px,calc(100vw - 34px))}.modal-kicker{margin-bottom:8px;color:var(--blue-dark);font-size:.76rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.workflow-action-form{display:grid;gap:14px}.workflow-action-form label{display:grid;gap:8px;font-weight:700}.workflow-action-form input[type="url"],.workflow-action-form input[type="text"],.workflow-action-form textarea,.workflow-action-form select{width:100%;border:1px solid transparent;border-radius:13px;background:var(--field);padding:14px 15px;color:var(--ink);resize:vertical}.workflow-action-form input:focus,.workflow-action-form textarea:focus,.workflow-action-form select:focus{background:#fff;border-color:var(--blue)}.workflow-radio{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:10px!important;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#fafcfd;font-weight:600!important}.workflow-radio input{width:auto}.workflow-note{padding:12px 14px;border-radius:12px;background:var(--blue-soft);color:var(--muted);line-height:1.5}.workflow-error{margin:0 0 16px;padding:13px 15px;border:1px solid rgba(207,20,20,.28);border-radius:12px;background:#fff3f3;color:var(--red);font-weight:700}.workflow-final-state{display:flex;align-items:flex-start;gap:15px;margin:8px 0 22px;padding:18px;border:1px solid rgba(145,194,79,.45);border-radius:15px;background:#f7fbf1}.workflow-final-state p{margin:.3rem 0 0;color:var(--muted)}.workflow-complete-mark{flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:1.35rem;font-weight:800}.workflow-output-list{display:grid;gap:8px;margin:18px 0}.workflow-output-list h3{margin:0 0 3px}.workflow-output-list a{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:#fafcfd;color:var(--blue-dark);font-weight:700;text-decoration:none}.workflow-output-list a:hover{background:var(--blue-soft)}.workflow-details{margin-top:18px}.workflow-details summary{cursor:pointer;color:var(--blue-dark);font-weight:800}.workflow-details pre{white-space:pre-wrap;padding:14px;border-radius:12px;background:var(--field);font:inherit;line-height:1.45}.inline-button{margin-top:12px}.secondary-button{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--blue);border-radius:12px;background:#fff;color:var(--blue-dark);padding:.85rem 1.1rem;font-weight:800;cursor:pointer}.secondary-button:hover{background:var(--blue-soft)}.primary-button:disabled,.secondary-button:disabled{opacity:.45;cursor:not-allowed}

/* Statistics page */
.stats-topbar{position:sticky;top:0;z-index:10;background:rgba(244,248,249,.92);backdrop-filter:blur(10px)}.stats-print-button{min-height:auto;padding:11px 18px}.statistics-shell{width:min(1320px,calc(100vw - 42px));margin:0 auto;padding:10px 0 60px}.stats-heading h1{margin:.1rem 0 .5rem;font-size:clamp(2.5rem,4vw,4.2rem);letter-spacing:-.045em}.stats-heading p{margin:0;color:var(--muted)}.stats-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0}.stat-kpi,.stats-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 12px 32px rgba(2,36,47,.06)}.stat-kpi{padding:22px}.stat-kpi span{display:block;color:var(--muted);font-size:.85rem;font-weight:700}.stat-kpi strong{display:block;margin-top:8px;font-size:2.35rem;color:var(--dark)}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.stats-card{padding:22px;min-width:0}.stats-card-wide{grid-column:1/-1}.stats-card h2{margin:0 0 17px;font-size:1.25rem}.bar-list{display:grid;gap:12px}.bar-label{display:flex;justify-content:space-between;gap:20px;font-size:.86rem}.bar-label span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:9px;margin-top:5px;border-radius:999px;background:var(--field);overflow:hidden}.bar-track span{display:block;height:100%;border-radius:inherit;background:var(--blue)}.course-stat-table{display:grid}.course-stat-head,.course-stat-row{display:grid;grid-template-columns:minmax(0,1fr) 100px 120px;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center}.course-stat-head{color:var(--muted);font-size:.82rem;font-weight:800}.course-stat-row span{min-width:0}.course-stat-row strong{text-align:center}
@media(max-width:820px){.stats-kpis,.stats-grid{grid-template-columns:1fr}.stats-card-wide{grid-column:auto}.course-stat-head,.course-stat-row{grid-template-columns:minmax(0,1fr) 60px 80px}.workflow-modal-panel{padding:30px 22px}}
@media print{.stats-topbar{display:none}.statistics-shell{width:100%;padding:0}.stats-card,.stat-kpi{box-shadow:none;break-inside:avoid}.stats-grid{display:block}.stats-card{margin-bottom:14px}.stats-kpis{grid-template-columns:repeat(3,1fr)}}

/* Forms list: add control belongs to the same scrollable list as the forms. */
.forms-panel>h1{margin-bottom:15px}
.student-forms-scroll{display:block}
.add-form-row{grid-template-columns:42px minmax(0,1fr)!important;justify-content:start;color:var(--blue-dark);font-weight:800;background:var(--blue-soft)!important;border-bottom:0!important;margin-top:4px;border-radius:11px;text-decoration:none}
.add-form-row:hover{background:#dceef3!important}
.add-form-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--blue);color:#fff;font-size:1.35rem;font-weight:800;line-height:1}
.form-row{text-decoration:none}

/* Workflow/form popups use CSS :target anchors, avoiding JavaScript-dependent opening in Safari. */
.css-target-modal{display:none}
.css-target-modal:target{display:grid}
.modal-close-link{text-decoration:none;line-height:1}
.form-modal-actions{display:flex;justify-content:flex-start}
.compact-delete-form{margin-top:14px;display:flex!important;justify-content:flex-start}
.modal-delete-button{width:auto!important;min-width:0!important;padding:.72rem 1rem!important;background:#fff!important;color:var(--red)!important;border:1px solid rgba(207,20,20,.32)!important;border-radius:11px!important;box-shadow:none!important}
.process-step-link{color:var(--ink);text-decoration:none}

/* Application preprocessing QA scanner */
.qa-source-form{margin-top:18px}.qa-scan-actions{display:flex;gap:10px;flex-wrap:wrap}.qa-scan-summary{margin-top:24px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fbfdfe}.qa-summary-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.qa-summary-heading>div{display:grid;gap:2px}.qa-summary-heading a{color:var(--blue-dark);font-weight:800;text-decoration:none}.qa-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.qa-kpis>div{padding:13px;border-radius:12px;background:var(--field)}.qa-kpis span{display:block;color:var(--muted);font-size:.75rem;font-weight:700}.qa-kpis strong{display:block;margin-top:4px;font-size:1.45rem}.qa-level-counts{display:flex;gap:8px;flex-wrap:wrap}.qa-level-counts>span{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.78rem}.qa-preview-list{display:grid;gap:7px;margin-top:15px}.qa-preview-list a{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;text-decoration:none;color:var(--ink)}.qa-preview-list small{display:block;margin-top:2px;color:var(--muted)}.qa-case-status{display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;border-radius:999px;background:var(--field);color:var(--blue-dark);font-size:.72rem;font-weight:800}.qa-warning{margin-top:12px}.qa-complete-form{margin-top:14px}

.review-queue-shell{width:min(1380px,calc(100vw - 42px));margin:0 auto;padding:12px 0 64px}.review-queue-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}.review-queue-heading h1{margin:.15rem 0 .45rem;font-size:clamp(2.5rem,4vw,4.1rem);letter-spacing:-.045em}.review-queue-heading p{margin:0;color:var(--muted)}.review-count-card{min-width:150px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(2,36,47,.06)}.review-count-card span{display:block;color:var(--muted);font-size:.78rem;font-weight:700}.review-count-card strong{display:block;margin-top:5px;font-size:2rem}.review-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;align-items:start}.review-main-column{display:grid;gap:12px}.review-section-title{display:flex;align-items:center;gap:10px}.review-section-title h2{margin:0}.review-section-title span{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--blue-soft);font-weight:800}.review-case-card,.scan-history-panel,.review-history-block,.review-empty{border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(2,36,47,.05)}.review-case-card{padding:18px}.review-case-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.review-case-top h3{margin:7px 0 4px;font-size:1.06rem}.review-case-top p{margin:0;color:var(--muted);font-size:.82rem}.qa-level{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.68rem;font-weight:900;letter-spacing:.06em}.qa-level-review{background:#fff6dc;color:#765600}.qa-level-error{background:#fff0f0;color:var(--red)}.qa-level-normalize{background:var(--blue-soft);color:var(--blue-dark)}.qa-level-info{background:var(--field);color:var(--muted)}.review-case-comment{padding:10px 12px;border-radius:10px;background:var(--blue-soft);color:var(--muted);font-size:.85rem}.review-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:15px 0}.review-context>div{padding:10px 12px;border-radius:10px;background:var(--field);min-width:0}.review-context dt{color:var(--muted);font-size:.69rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.review-context dd{margin:5px 0 0;overflow-wrap:anywhere}.review-context pre{margin:0;white-space:pre-wrap;font:inherit;font-size:.8rem}.review-decision-form{display:grid;grid-template-columns:220px minmax(0,1fr) auto;gap:10px;align-items:end;border-top:1px solid var(--line);padding-top:14px}.review-decision-form label{display:grid;gap:6px;font-size:.78rem;font-weight:800}.review-decision-form select,.review-decision-form input{height:44px;border:1px solid transparent;border-radius:10px;background:var(--field);padding:0 12px}.review-decision-form .primary-button{height:44px;padding-top:0;padding-bottom:0}.scan-history-panel{position:sticky;top:18px;padding:17px;max-height:calc(100vh - 42px);overflow:auto}.scan-history-panel h2{margin:0 0 12px}.scan-history-item{padding:11px 0;border-bottom:1px solid var(--line)}.scan-history-item:last-child{border-bottom:0}.scan-history-item>div{display:flex;justify-content:space-between;gap:8px;font-size:.76rem}.scan-history-item>div span{color:var(--muted);text-transform:uppercase}.scan-history-item p{margin:5px 0 0;color:var(--muted);font-size:.77rem}.review-history-block{margin-top:8px;padding:15px}.review-history-block summary{cursor:pointer;font-weight:800}.review-history-list{display:grid;margin-top:10px}.review-history-row{display:grid;grid-template-columns:minmax(0,1fr) 170px 190px;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:.78rem}.review-history-row small{display:block;color:var(--muted)}.review-empty{padding:25px;color:var(--muted);text-align:center}
@media(max-width:900px){.qa-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.review-layout{grid-template-columns:1fr}.scan-history-panel{position:static;max-height:none}.review-decision-form{grid-template-columns:1fr}.review-context{grid-template-columns:1fr}.review-queue-heading{align-items:flex-start;flex-direction:column}.review-history-row{grid-template-columns:1fr}}

.auth-explainer{color:var(--muted);line-height:1.6;margin:0 auto 20px}.auth-error{margin:0;padding:12px 14px;border-radius:12px;background:#fff0f0;color:#8d1d1d;font-weight:700}.portal-login .secondary-auth-label{margin:2px 0 -8px;font-size:1rem;text-align:left;font-weight:700}
