
/* BursaryFlow mobile usability repairs — additive overrides, preserving existing components. */
@media (max-width: 700px) {
  html, body { max-width:100%; overflow-x:clip; }
  input, select, textarea, button { max-width:100%; }
  .toolbar { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; gap:8px !important; align-items:stretch; }
  .toolbar input[name="search"] { grid-column:1 / -1; width:100%; min-width:0; }
  .toolbar select { width:100%; min-width:0; height:44px !important; padding:0 10px !important; font-size:14px !important; }
  .toolbar button { grid-column:1 / -1; min-height:42px; width:100%; }
  .bulkbar { display:flex !important; flex-wrap:wrap; gap:8px !important; align-items:center; }
  .bulkbar select { flex:1 1 150px; min-width:0; width:100%; height:42px !important; font-size:13px !important; }
  .bulkbar .btn { flex:1 1 130px; min-height:42px; }
  .annlistp, .annform, .annlist { min-width:0; }
  .ann { min-width:0; overflow-wrap:anywhere; }
  .ann-top { gap:8px; align-items:flex-start; }
  .ann-body { overflow-wrap:anywhere; }
  .ann-foot, .ann-foot .actions { flex-wrap:wrap; gap:8px; }
  .ann-foot .actions form, .ann-foot .actions button { max-width:100%; }
  .ann-foot .actions .btn { min-height:38px; padding:8px 12px; }
  .create-document-content, .aiassistant-content { width:100%; min-width:0; }
  .create-document-hero, .aiassistant-hero { align-items:flex-start; flex-direction:column; gap:14px; }
  .create-document-hero h1, .aiassistant-hero h1 { font-size:clamp(29px, 8vw, 38px) !important; line-height:1.15; }
  .delton-create-card { width:100%; min-width:0; }
  .document-type-grid, .document-types, .type-grid, .doc-type-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:8px !important; }
  .document-type-card, .type-card, .doc-type-card { min-width:0; padding:12px !important; }
  .document-type-card *, .type-card *, .doc-type-card * { overflow-wrap:anywhere; }
  .document-details, .document-options, .document-form-card, .create-document-card { min-width:0; }
  .document-details input, .document-details select, .document-options input, .document-options select,
  .create-document-content input, .create-document-content select, .create-document-content textarea { width:100%; min-width:0; }
  .profile-match, .profile-match-card, .ai-tools, .ai-tools-card, .dashboard-ai-card, .completion-card {
    color:#234c35 !important; background:#fff !important; border-color:#dce8df !important;
  }
  .profile-match *, .profile-match-card *, .ai-tools *, .ai-tools-card *, .dashboard-ai-card *, .completion-card * {
    color:inherit;
  }
  .profile-match p, .profile-match-card p, .ai-tools p, .ai-tools-card p, .dashboard-ai-card p, .completion-card p,
  .profile-match span, .profile-match-card span, .ai-tools span, .ai-tools-card span, .dashboard-ai-card span, .completion-card span {
    color:#52645a !important;
  }
  .profile-match .progress, .profile-match-card .progress, .completion-card .progress { background:#e6eee8 !important; }
}
@media (max-width: 430px) {
  .document-type-grid, .document-types, .type-grid, .doc-type-grid { grid-template-columns:minmax(0,1fr) !important; }
  .toolbar { grid-template-columns:minmax(0,1fr) !important; }
  .toolbar input[name="search"], .toolbar button { grid-column:auto; }
}

/* Legal pages: compact reading surface with a genuinely scrollable document. */
.legal-modal-shell, .lg-wrap { min-width:0; }
.lg-wrap { max-width:900px !important; margin:22px auto !important; padding:0 16px 28px !important; }
.lg-hero { padding:20px 22px !important; border-radius:18px !important; }
.lg-hero h1 { font-size:clamp(25px,4vw,36px) !important; line-height:1.15 !important; }
.lg-lead { font-size:15px !important; line-height:1.55 !important; }
.lg-meta { gap:7px !important; flex-wrap:wrap; }
.lg-meta span, .lg-chip { font-size:12px !important; padding:7px 10px !important; }
.lg-glance { gap:8px !important; margin:16px 0 !important; }
.lg-glance > div { padding:12px !important; border-radius:14px !important; }
.lg-glance b { font-size:15px !important; }
.lg-glance span { font-size:13px !important; line-height:1.45 !important; }
.lg-content, .lg-body, .lg-article { font-size:14px !important; line-height:1.6 !important; }
.lg-wrap h2 { font-size:19px !important; margin:18px 0 8px !important; }
.lg-wrap p, .lg-wrap li, .lg-wrap dd { font-size:14px !important; line-height:1.6 !important; }
.lg-wrap section { margin-bottom:16px !important; }
@media(max-width:700px) {
  html { scroll-padding-top:12px !important; }
  body { overflow-x:hidden; }
  .lg-nav { min-height:62px !important; padding:10px 14px !important; gap:8px !important; }
  .lg-links { display:none !important; }
  .lg-login, .lg-start { padding:9px 12px !important; font-size:12px !important; }
  .lg-wrap { margin:12px auto !important; padding:0 12px 20px !important; }
  .lg-hero { padding:16px !important; border-radius:16px !important; }
  .lg-hero h1 { font-size:27px !important; }
  .lg-lead { font-size:14px !important; }
  .lg-glance { grid-template-columns:1fr !important; }
  .lg-glance > div { padding:10px 12px !important; }
  .lg-wrap section, .lg-card { min-width:0; overflow-wrap:anywhere; }
  .lg-toc, .lg-steps, .lg-index { max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .lg-wrap a { overflow-wrap:anywhere; }
}


/* ===== Actual BursaryFlow component repairs (v10) ===== */
@media (max-width: 760px) {
  /* The real create-document page uses .document-type-list/.document-type. */
  .document-workspace { display:grid !important; grid-template-columns:minmax(0,1fr) !important; gap:12px !important; }
  .document-settings { min-width:0; gap:12px !important; }
  .document-panel { min-width:0; padding:14px !important; border-radius:15px !important; }
  .document-panel-heading { margin-bottom:12px !important; gap:9px !important; }
  .document-type-list { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:8px !important; }
  .document-type { min-width:0; min-height:76px; padding:9px !important; gap:7px !important; align-items:flex-start !important; border:1px solid #e2ebe4 !important; border-radius:12px !important; background:#fbfdfb !important; }
  .document-type.active { background:#edf7ef !important; border-color:#8fbea0 !important; box-shadow:inset 0 0 0 1px rgba(49,91,65,.08); }
  .document-type-icon { width:30px !important; height:30px !important; flex:0 0 30px !important; border-radius:9px !important; }
  .document-type-text { min-width:0; flex:1; display:flex; flex-direction:column; gap:3px; }
  .document-type-text strong { font-size:11.5px !important; line-height:1.25 !important; overflow-wrap:anywhere; }
  .document-type-text small { font-size:10px !important; line-height:1.3 !important; overflow-wrap:anywhere; }
  .document-type-check { width:14px !important; height:14px !important; flex:0 0 14px !important; margin-left:auto; }
  .document-form { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:10px !important; }
  .document-form .document-field { min-width:0; margin:0 !important; }
  .document-form .document-field:first-child,.document-form .document-field:nth-child(2) { grid-column:1/-1; }
  .document-field label { font-size:11px !important; margin-bottom:5px !important; }
  .document-field input,.document-field select { width:100% !important; min-width:0 !important; height:43px !important; padding:9px 10px !important; font-size:13px !important; }
  .ai-instruction-panel textarea { width:100% !important; min-height:115px !important; font-size:13px !important; }
  .instruction-tip { display:flex !important; flex-wrap:wrap !important; align-items:flex-start !important; gap:7px !important; font-size:11px !important; line-height:1.45 !important; }
  .instruction-tip #useProfileContext { margin:4px 0 0 !important; white-space:normal !important; }
  .create-document-content { padding-left:12px !important; padding-right:12px !important; }
  /* Compact admin bursary filters: do not let selects fill huge mobile cards. */
  .ap .toolbar { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:8px !important; margin-bottom:12px !important; }
  .ap .toolbar input[name="search"] { grid-column:1/-1; width:100% !important; min-width:0 !important; height:42px !important; font-size:13px !important; padding:9px 11px !important; }
  .ap .toolbar select { width:100% !important; min-width:0 !important; height:42px !important; padding:8px 9px !important; font-size:12px !important; }
  .ap .toolbar .btn { grid-column:1/-1; width:100% !important; min-width:0 !important; min-height:40px !important; padding:9px 12px !important; }
  .ap .bulkbar { display:grid !important; grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; gap:8px !important; padding:9px !important; }
  .ap .bulkbar select,.ap .bulkbar .btn { width:100% !important; min-width:0 !important; min-height:39px !important; padding:8px 9px !important; font-size:12px !important; }
  /* High-contrast AI notes and dashboard helper cards. */
  .ai-tool-card .match-score span,.ai-tool-card .match-progress + p,.ai-tool-card > p,
  .profile-match,.profile-match-card,.ai-tools,.ai-tools-card,.dashboard-ai-card,.completion-card { color:#254c35 !important; }
  .ai-tool-card .match-score span,.ai-tool-card .match-progress + p { color:#52645a !important; opacity:1 !important; }
  .ai-tool-card h3,.ai-tool-card a,.ai-tool-card .panel-eyebrow { color:#174b34 !important; }
  .ai-tool-card .match-progress { background:#e1e9e3 !important; }
  .ai-dashboard-card p { color:#f0f6f1 !important; opacity:1 !important; font-size:12px !important; }
}
@media(max-width:430px) {
  .document-type-list { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .document-type { min-height:82px; }
  .document-form { grid-template-columns:minmax(0,1fr) !important; }
  .document-form .document-field { grid-column:1/-1 !important; }
  .ap .toolbar { grid-template-columns:minmax(0,1fr) !important; }
  .ap .toolbar input[name="search"],.ap .toolbar .btn { grid-column:auto; }
  .ap .bulkbar { grid-template-columns:minmax(0,1fr) !important; }
}

/* Student announcements: soft mint and forest-green styling inspired by the reference, while keeping the student layout distinct from Admin. */
.announcement-panel #announcementList .ann-list { display:grid; gap:12px; }
.announcement-panel #announcementList .student-announcement-card {
  min-width:0; padding:16px 17px; border:1px solid #d1e6d8; border-left:3px solid #3f7658;
  border-radius:20px; background:linear-gradient(118deg,#eaf8ef 0%,#f8fcf9 58%,#e4f3d3 100%);
  box-shadow:0 4px 16px rgba(34,76,48,.055); overflow-wrap:anywhere;
}
.student-announcement-head { display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:10px; align-items:start; }
.student-announcement-icon { width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#e2f7ed;color:#17694b; }
.student-announcement-icon svg { width:19px;height:19px; }
.student-announcement-head h3 { min-width:0;margin:2px 0 0;color:#17291f;font-size:16px;font-weight:750;line-height:1.35;overflow-wrap:anywhere; }
.student-announcement-status { padding:6px 10px;border-radius:99px;background:#08634b;color:#fff;font-size:10px;font-weight:750;white-space:nowrap; }
.student-announcement-copy { margin:10px 0 12px 48px;color:#46574d;font-size:14px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere; }
.student-announcement-footer { margin-left:48px;padding-top:11px;border-top:1px dashed #c5dbcd;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap; }
.student-announcement-footer small { color:#6e7d73;font-size:11px; }
.student-announcement-footer .ann-action { margin-left:auto; }
.student-announcement-card.ann-warning { border-left-color:#d49a29;background:linear-gradient(125deg,#fff9eb,#fffdf8); }
.student-announcement-card.ann-warning .student-announcement-status { background:#9a650c; }
.student-announcement-card.ann-urgent { border-left-color:#c74343;background:linear-gradient(125deg,#fff0ef,#fffafa); }
.student-announcement-card.ann-urgent .student-announcement-status { background:#b52f35; }
@media(max-width:640px) {
  .announcement-panel { padding:14px !important; }
  .announcement-panel #announcementList .student-announcement-card { padding:12px !important; border-radius:14px !important; }
  .student-announcement-head { grid-template-columns:32px minmax(0,1fr) auto; gap:8px; }
  .student-announcement-icon { width:32px;height:32px;border-radius:9px; }
  .student-announcement-head h3 { font-size:13px; }
  .student-announcement-status { font-size:9px;padding:5px 7px; }
  .student-announcement-copy,.student-announcement-footer { margin-left:40px; }
  .student-announcement-copy { font-size:13px; }
  .student-announcement-footer { align-items:flex-start; }
  .student-announcement-footer .ann-action { width:100%;justify-content:center; }
}

/* Contrast correction for the real AI match card, whose original white text sat on a very light mobile surface in some themes. */
@media(max-width:760px){
  .ai-tool-card.match-card{background:#fff !important;color:#17291f !important;border:1px solid #dce8df !important;box-shadow:0 5px 18px rgba(33,67,44,.06) !important;}
  .ai-tool-card.match-card::before,.ai-tool-card.match-card::after{border-color:rgba(49,91,65,.08) !important;}
  .ai-tool-card.match-card .ai-tool-header>span{color:#39734f !important;}
  .ai-tool-card.match-card h3,.ai-tool-card.match-card .match-score strong{color:#17291f !important;}
  .ai-tool-card.match-card .match-score span,.ai-tool-card.match-card p{color:#52645a !important;opacity:1 !important;}
  .ai-tool-card.match-card .match-progress{background:#e2ece5 !important;}
  .ai-tool-card.match-card .match-progress div{background:#398557 !important;}
  .ai-tool-card.match-card>a{color:#176346 !important;font-weight:750 !important;}
  .ai-dashboard-card p{color:#f4faf5 !important;opacity:1 !important;}
  .ai-dashboard-card .panel-eyebrow{color:#d3e6d8 !important;}
}


/* Announcement cards: a severity word can never be mistaken for the .ann-action button again, and long copy always wraps horizontally. */
.student-announcement-card { display:block; width:100%; box-sizing:border-box; align-self:auto; flex:none; white-space:normal; }
.student-announcement-card.ann-notice { border-left-color:#3f7658; }
.student-announcement-card .student-announcement-copy { writing-mode:horizontal-tb; word-break:normal; overflow-wrap:break-word; }
