/* Student Portal 6.31.22 — DES303 guided project workflow */
.nsw-des-project{
  --des-ink:#17231d;--des-muted:#64766d;--des-line:#c7d3cd;--des-line-strong:#aebfb6;
  --des-green:#087d61;--des-green-dark:#05634d;--des-soft:#f1f8f5;--des-soft-2:#f8fbf9;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--des-ink);
  display:grid;gap:18px
}
.nsw-des-project *{box-sizing:border-box}
.nsw-des-project-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px;border:2px solid var(--des-line-strong);border-radius:20px;background:linear-gradient(180deg,#fff,#f7faf8);box-shadow:0 8px 22px rgba(16,50,38,.045)}
.nsw-des-project-hero h2{margin:3px 0 7px;font-size:1.3rem;line-height:1.22;letter-spacing:-.025em;color:var(--des-ink)}
.nsw-des-project-hero p{margin:0;max-width:720px;color:var(--des-muted);font-size:.8rem;line-height:1.65}
.nsw-des-project-score{flex:0 0 150px;padding:14px 15px;border:2px solid #b8d6ca;border-radius:15px;background:#edf8f4;text-align:center}
.nsw-des-project-score strong{display:block;color:var(--des-green-dark);font-size:1.65rem;line-height:1;font-weight:900;letter-spacing:-.05em}
.nsw-des-project-score small{display:block;margin-top:6px;color:#536b61;font-size:.66rem;font-weight:760;line-height:1.35}
.nsw-des-project-context{display:grid;grid-template-columns:1.15fr 1fr .8fr;gap:10px}
.nsw-des-project-context>div{padding:13px 15px;border:2px solid var(--des-line);border-radius:14px;background:#fff}
.nsw-des-project-context span{display:block;margin-bottom:3px;color:var(--des-muted);font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:.055em}
.nsw-des-project-context strong{display:block;font-size:.76rem;line-height:1.45;overflow-wrap:anywhere}
.nsw-des-project-lock{padding:20px;border:2px solid #d9c7a4;border-radius:16px;background:#fffaf1}
.nsw-des-project-lock strong{font-size:.88rem}.nsw-des-project-lock p{margin:5px 0 0;color:#716450;font-size:.76rem}
.nsw-des-project-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:11px;border:2px solid var(--des-line);border-radius:15px;background:#fff}
.nsw-des-project-progress span{min-width:0;display:flex;align-items:center;gap:7px;padding:8px 9px;border-radius:10px;color:#6e7e76;font-size:.66rem;font-weight:760;line-height:1.25}
.nsw-des-project-progress span i{width:23px;height:23px;flex:0 0 auto;display:grid;place-items:center;border:1.5px solid var(--des-line-strong);border-radius:50%;background:#fff;font-style:normal;font-size:.62rem;font-weight:900}
.nsw-des-project-progress span.is-done{background:#edf8f4;color:#245c47}.nsw-des-project-progress span.is-done i{border-color:var(--des-green);background:var(--des-green);color:#fff}
.nsw-des-stage{position:relative;overflow:hidden;border:2px solid var(--des-line);border-radius:19px;background:#fff;box-shadow:0 3px 10px rgba(16,45,35,.025);transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.nsw-des-stage:not(.is-complete):not(.is-locked){background:linear-gradient(180deg,#f7fcfa,#fff);border-color:#b8cec4;box-shadow:0 8px 22px rgba(16,50,38,.045)}
.nsw-des-stage.is-complete{border-color:#b2d0c3}
.nsw-des-stage.is-locked{background:#f7f8f7;opacity:.78}
.nsw-des-stage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:17px 18px;border-bottom:1px solid #e1e8e4}
.nsw-des-stage-head>div{display:flex;gap:11px;align-items:flex-start}.nsw-des-stage-head>div>span{width:30px;height:30px;flex:0 0 auto;display:grid;place-items:center;border:1.5px solid #bdd0c7;border-radius:9px;background:#edf6f2;color:var(--des-green-dark);font-size:.66rem;font-weight:900}
.nsw-des-stage-head h3{margin:1px 0 3px;font-size:.9rem;line-height:1.25}.nsw-des-stage-head p{margin:0;color:var(--des-muted);font-size:.7rem;line-height:1.5}
.nsw-des-stage-head>b{flex:0 0 auto;padding:5px 8px;border:1px solid #c7d6cf;border-radius:999px;background:#f6f9f7;color:#66766e;font-size:.61rem;font-weight:850}
.nsw-des-stage.is-complete .nsw-des-stage-head>b{border-color:#b9dccd;background:#edf8f4;color:#177052}
.nsw-des-stage-locked-note{margin:14px 18px 0;padding:11px 12px;border:1.5px solid #d4ddd8;border-radius:10px;background:#fff;color:#6d7973;font-size:.7rem}
.nsw-des-stage-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:18px}
.nsw-des-field{min-width:0;display:block}.nsw-des-field-wide{grid-column:1/-1}.nsw-des-field>span{display:block;margin-bottom:7px;color:#30433a;font-size:.72rem;font-weight:820}.nsw-des-field em{color:#a82f2f;font-style:normal}
.nsw-des-field input,.nsw-des-field textarea,.nsw-des-field select{width:100%;border:2px solid var(--des-line-strong);border-radius:11px;background:#fff;color:var(--des-ink);outline:none;font:inherit;font-size:.76rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.nsw-des-field input,.nsw-des-field select{min-height:46px;padding:0 12px}.nsw-des-field textarea{padding:11px 12px;resize:vertical;min-height:100px;line-height:1.55}
.nsw-des-field input:focus,.nsw-des-field textarea:focus,.nsw-des-field select:focus{border-color:var(--des-green);box-shadow:0 0 0 4px rgba(8,125,97,.11)}
.nsw-des-field.is-error input,.nsw-des-field.is-error textarea,.nsw-des-field.is-error select{border-color:#bd4141;background:#fff7f7;box-shadow:0 0 0 3px rgba(189,65,65,.08);animation:desFieldShake .28s ease}
@keyframes desFieldShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.nsw-des-subgrid{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.nsw-des-repeat{grid-column:1/-1;border:2px solid #d2ddd7;border-radius:14px;background:#f8faf9;padding:13px}
.nsw-des-repeat-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:11px}.nsw-des-repeat-head strong{font-size:.76rem}.nsw-des-repeat-head small{color:var(--des-muted);font-size:.65rem}
.nsw-des-budget-row{display:grid;grid-template-columns:1.3fr .8fr .55fr 1fr;gap:9px;padding:10px 0;border-top:1px solid #e0e7e3}.nsw-des-budget-row:first-of-type{border-top:0}
.nsw-des-activity-row{display:grid;grid-template-columns:.72fr 1.25fr 1fr 1fr 1.2fr;gap:9px;padding:10px 0;border-top:1px solid #e0e7e3}.nsw-des-activity-row:first-of-type{border-top:0}
.nsw-des-budget-total{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding-top:12px;border-top:2px solid #d4dfd9}.nsw-des-budget-total span{color:var(--des-muted);font-size:.67rem;font-weight:750}.nsw-des-budget-total strong{font-size:1rem;color:var(--des-green-dark)}
.nsw-des-stage-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:14px 18px;border-top:1px solid #e1e8e4;background:#fbfcfb}.nsw-des-stage-actions>span{margin-right:auto;color:var(--des-muted);font-size:.68rem;font-weight:730}.nsw-des-stage-actions>span.is-error{color:#a12e2e}.nsw-des-stage-actions>span.is-success{color:#08714f}
.nsw-des-stage.is-locked form{pointer-events:none;filter:grayscale(.2)}
.nsw-des-evidence{grid-column:1/-1;padding:14px;border:2px dashed #b7c9c0;border-radius:13px;background:#fbfdfc}.nsw-des-evidence strong{display:block;font-size:.77rem}.nsw-des-evidence p{margin:4px 0 10px;color:var(--des-muted);font-size:.68rem}.nsw-des-evidence input{display:block;margin-bottom:10px}.nsw-des-evidence small{display:block;margin-top:8px;color:var(--des-muted);font-size:.66rem}.nsw-des-evidence small.is-error{color:#a12e2e}.nsw-des-evidence small.is-success{color:#08714f}
.nsw-des-generate{padding:0}.nsw-des-generate .nsw-des-stage-head{border-bottom:0}.nsw-des-generate>.nsw-primary-button,.nsw-des-generate>small{margin:0 18px 18px}.nsw-des-generate>small{display:block;color:var(--des-muted);font-size:.67rem}.nsw-des-generate:not(.is-unlocked)>.nsw-primary-button{opacity:.45;cursor:not-allowed}
.nsw-des-generated{margin:0 18px 18px;padding:15px;border:2px solid #b9d9cc;border-radius:13px;background:#edf8f4}.nsw-des-generated strong{font-size:.8rem}.nsw-des-generated p{margin:4px 0 11px;color:#506a5f;font-size:.7rem;line-height:1.5}
.nsw-des-project [hidden]{display:none!important}
@media(max-width:920px){.nsw-des-project-context{grid-template-columns:1fr}.nsw-des-project-progress{grid-template-columns:1fr 1fr}.nsw-des-budget-row{grid-template-columns:1fr 1fr}.nsw-des-activity-row{grid-template-columns:1fr 1fr}.nsw-des-activity-row .nsw-des-field:last-child{grid-column:1/-1}}
@media(max-width:640px){.nsw-des-project-hero{flex-direction:column}.nsw-des-project-score{width:100%;flex:auto;text-align:left;display:flex;align-items:center;gap:9px}.nsw-des-project-score strong{font-size:1.25rem}.nsw-des-project-score small{margin:0}.nsw-des-project-progress{grid-template-columns:1fr}.nsw-des-stage-fields,.nsw-des-subgrid{grid-template-columns:1fr}.nsw-des-field-wide{grid-column:auto}.nsw-des-budget-row,.nsw-des-activity-row{grid-template-columns:1fr}.nsw-des-activity-row .nsw-des-field:last-child{grid-column:auto}.nsw-des-stage-head{padding:15px}.nsw-des-stage-fields{padding:15px}.nsw-des-stage-actions{align-items:stretch;flex-direction:column}.nsw-des-stage-actions>span{margin:0}.nsw-des-stage-actions .nsw-primary-button{width:100%}.nsw-des-repeat-head{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.nsw-des-project *{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}}
@media(prefers-color-scheme:dark){
  .nsw-des-project{--des-ink:#edf4f0;--des-muted:#a4b2ab;--des-line:#34473e;--des-line-strong:#465c51;--des-soft:#173128;--des-soft-2:#14231d}
  .nsw-des-project-hero,.nsw-des-project-context>div,.nsw-des-stage{background:#14201a}.nsw-des-project-hero{background:linear-gradient(180deg,#16231d,#131e19)}
  .nsw-des-project-score{border-color:#315a49;background:#173329}.nsw-des-stage:not(.is-complete):not(.is-locked){background:linear-gradient(180deg,#162a22,#14201a);border-color:#456356}.nsw-des-stage.is-locked{background:#151d19}
  .nsw-des-stage-head,.nsw-des-stage-actions{border-color:#2d3d35}.nsw-des-stage-actions{background:#15201b}.nsw-des-field>span{color:#d5dfda}.nsw-des-field input,.nsw-des-field textarea,.nsw-des-field select{background:#111a16;color:#edf4f0}.nsw-des-repeat{border-color:#35483f;background:#17221d}.nsw-des-budget-row,.nsw-des-activity-row{border-color:#2f4038}.nsw-des-generated{border-color:#386652;background:#183228}.nsw-des-evidence{border-color:#40594d;background:#16221c}.nsw-des-stage-locked-note{border-color:#3b4b44;background:#17201c;color:#a9b5af}
}
