*{box-sizing:border-box}body{margin:0;background:#f4f6fb;color:#172741;font:16px/1.55 system-ui,sans-serif}header{background:#13253c;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:1rem max(5vw,1rem)}.brand{display:flex;align-items:center;gap:.8rem;font-size:1.1rem;font-weight:750}.mark{background:#8de4c5;color:#13253c;display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:.65rem}.brand small{display:block;color:#b5c8d9;font-size:.72rem;font-weight:500}main{max-width:1120px;margin:auto;padding:2.5rem 1rem 3rem;min-height:78vh}footer{padding:1rem max(5vw,1rem);color:#425777;border-top:1px solid #dce3ed}footer span{padding:.3rem}h1,h2,p{margin:0 0 .7rem}h1{font-size:clamp(1.75rem,4vw,2.7rem);line-height:1.1;letter-spacing:-.04em}h2{font-size:1.22rem}label{font-weight:650;display:grid;gap:.25rem}form,.fields{display:grid;gap:.85rem}input,select,button{font:inherit;border-radius:.5rem;padding:.55rem .72rem}input,select{border:1px solid #a8b9cc;color:inherit;background:#fff;width:100%;min-width:0}button{justify-self:start;background:#126350;color:white;border:1px solid transparent;cursor:pointer;font-weight:700}button:disabled{opacity:.65;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #2c81cc;outline-offset:2px}.quiet{background:transparent;border-color:#afc5df;color:white}.demo-button{color:#174235;background:#dff6ee}.panel{padding:1.25rem;background:white;border:1px solid #dce3ed;border-radius:1rem;margin:1rem 0;box-shadow:0 4px 18px #13253c09}.login{max-width:31rem;margin:0 auto}.hero{background:#dfeff5;padding:1.5rem 1.7rem;border-radius:1rem}.muted{color:#415a76}.tag{font-size:.78rem;display:inline-block;background:#e4eef5;border-radius:1rem;padding:.16rem .65rem;margin:0 .4rem .5rem 0;font-weight:700}.tag.approved{background:#dbf5e6;color:#175342}.stack{display:grid;gap:.7rem}.project{border:1px solid #e0e8f1;border-radius:.75rem;padding:.85rem}.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(20rem,100%),1fr));gap:1rem}.fields{grid-template-columns:repeat(auto-fit,minmax(min(10rem,100%),1fr))}table{width:100%;border-collapse:collapse;text-align:left}th,td{border-bottom:1px solid #e1e7ef;padding:.55rem .5rem}th{font-size:.86rem}.table-wrap{overflow:auto}summary{cursor:pointer;font-weight:750}.expand form{margin-top:1rem}fieldset{border:1px solid #dce3ed;border-radius:.7rem;padding:.75rem;min-width:0}legend{font-weight:750}#notice:not(:empty){background:#e2eef9;color:#173b64;padding:.65rem 1rem;border-radius:.6rem;margin-bottom:.9rem}#notice.error{background:#ffe9e9;color:#791f1f}[hidden]{display:none!important}
[class~="login"] .fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}[class~="login"] .fields p{grid-column:1/-1;margin:0}[class~="login"] .fields button{width:100%;font-size:.8rem;padding:.5rem .25rem}
textarea{font:inherit;color:inherit;min-width:0;width:100%;padding:.55rem .72rem;border:1px solid #a8b9cc;border-radius:.5rem;resize:vertical}textarea:focus-visible{outline:3px solid #2c81cc;outline-offset:2px}.project>button,.panel>a{display:inline-block;margin:.6rem 0}
.actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:.7rem 0}.verbatim{white-space:pre-wrap;overflow-wrap:anywhere}.panel fieldset{margin:.8rem 0}.panel>button{margin-left:.7rem}
.file-choice{display:flex;align-items:center;gap:.55rem;margin:.35rem 0;overflow-wrap:anywhere}.file-choice input{width:auto}
:root{--blue:#1264dc;--ink:#162841;--muted:#536783;--border:#dce4ef;--sidebar:220px;--bar:62px}
body{background:#f1f4f8;color:var(--ink);font-family:Inter,system-ui,sans-serif}
header{background:#fff;color:var(--ink);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:4;min-height:var(--bar);padding:.65rem 1.35rem}
.brand small{color:var(--muted)}.mark{background:var(--blue);color:#fff;border-radius:.5rem}
.profile{display:flex;align-items:center;gap:1rem;font-size:.9rem}.quiet{color:var(--ink);border-color:var(--border)}
#sidebar{position:fixed;z-index:3;top:var(--bar);left:0;bottom:0;width:var(--sidebar);overflow:auto;background:#fff;border-right:1px solid var(--border);padding:1rem .65rem}
#navigation{display:grid;gap:.25rem}.nav-caption{margin:.85rem .7rem .15rem;color:var(--muted);font-size:.78rem;font-weight:700}
.nav-link{width:100%;text-align:left;background:#fff;color:var(--ink);font-size:.9rem;border-radius:.42rem}
.nav-link:first-child,.nav-link:hover,.nav-link:focus-visible{background:#eaf4ff;color:#0757c7}
.workspace main{margin-left:var(--sidebar);max-width:1580px;padding:1.35rem clamp(1rem,3vw,3.2rem) 3rem}
.workspace footer{margin-left:var(--sidebar)}.workspace .hero{background:transparent;padding:.15rem 0 .4rem}
.workspace .hero h1{font-size:clamp(1.65rem,3.5vw,2.4rem);letter-spacing:-.025em}
.panel{border-color:var(--border);border-radius:.58rem;box-shadow:0 1px 3px #24334c0a}
button{background:var(--blue)}button:hover{filter:brightness(.96)}
.secondary,.calendar-tools button{background:#fff;color:#164885;border-color:#cbd8ea}
.staff-columns{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1rem;align-items:start}
.workspace-card,[id^=workspace-]{scroll-margin-top:calc(var(--bar) + 1rem)}
.milestone-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 0;border-top:1px solid var(--border)}
.pending-note,.feedback-block{background:#eef5ff;padding:.85rem;border-radius:.5rem}
.feedback-block{margin:.75rem 0}.feedback-block h3{margin:0 0 .6rem}
.calendar{max-width:760px}.calendar-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.8rem 0}
.calendar-tools strong{min-width:9.5rem;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--border);border-radius:.5rem;overflow:hidden}
.calendar-grid>span,.calendar-day{padding:.3rem .42rem;min-height:2.35rem;border-bottom:1px solid var(--border)}
.calendar-day{display:flex;align-items:center;justify-content:space-between;gap:.2rem;border-right:1px solid var(--border);font-size:.85rem}
.calendar-empty,.weekday{background:#f7f9fc}.weekday{font-size:.75rem;font-weight:700;color:var(--muted)}
.current-day{background:#eaf4ff;color:#0959bb;font-weight:750}.calendar-count{border-radius:1rem;padding:0 .35rem;min-width:1.2rem;font-size:.7rem}
.deadline-row{display:grid;grid-template-columns:6.8rem minmax(0,1fr);gap:.55rem;border-top:1px solid var(--border);padding:.6rem 0}
.deadline-row time{color:var(--muted)}.deadline-row p{margin:0}.deadline-row details{grid-column:1/-1;margin:0;padding:.55rem}
@media(max-width:1100px){.staff-columns{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){#sidebar{position:sticky;top:var(--bar);width:auto;padding:.4rem;border-bottom:1px solid var(--border)}#navigation{display:flex;overflow:auto}.nav-link{width:auto;white-space:nowrap}.nav-caption{display:none}.workspace main,.workspace footer{margin-left:0}.profile span{display:none}.calendar-day{flex-wrap:wrap}.workspace-card,[id^=workspace-]{scroll-margin-top:calc(var(--bar) + 3.5rem)}}
@media(max-width:390px){.calendar-day,.calendar-grid>span{padding:.2rem}.milestone-row{align-items:flex-start;flex-direction:column}}
.material-dialog{width:min(1120px,94vw);max-height:90vh;padding:1.2rem;border:1px solid var(--border);border-radius:.65rem;color:var(--ink)}.material-dialog::backdrop{background:#0e1b32a0}.material-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:1.15rem;margin-top:1rem}.material-preview{background:#f5f7fb;padding:.8rem;overflow-wrap:anywhere}.material-preview img,.material-preview iframe{width:100%;border:0}.material-preview iframe{height:55vh}.material-preview .stack{margin-bottom:.8rem}@media(max-width:760px){.material-grid{grid-template-columns:minmax(0,1fr)}}
.log-day{width:100%;border-radius:0;background:#fff;color:var(--ink);min-height:2.7rem}.log-day:disabled{opacity:1;cursor:default;color:var(--muted)}.log-day.has-log{background:#dcfce7;color:#166534;font-weight:750}.log-day.current-day{box-shadow:inset 0 0 0 2px #1264dc}.log-check{font-size:.75rem}.calendar-legend{margin:.6rem 0}.log-dialog{width:min(620px,94vw)}.log-dialog form{margin-top:1rem}
.calendar{max-width:none}.log-calendar-cell{min-height:5.6rem;min-width:0;background:#fff;border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:.35rem;display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}.log-calendar-cell.has-log{background:#dcfce7;color:#166534}.log-calendar-cell.current-day{box-shadow:inset 0 0 0 2px #1264dc}.log-date{background:transparent;color:inherit;padding:.18rem .28rem;border:0;display:flex;gap:.3rem;font-size:.95rem}.log-date:disabled{opacity:1;cursor:default}.calendar-deadline{color:#9d1c20;background:#ffedee;border:1px solid #f7c4c7;border-radius:.28rem;padding:.14rem .28rem;font-size:.78rem;line-height:1.18;font-weight:700;text-align:left;overflow-wrap:anywhere;max-width:100%}.report-link:hover,.report-link:focus-visible{background:#ffe0e3}.staff-columns>section:has(.log-calendar-cell){grid-column:1/-1}@media(max-width:600px){.log-calendar-cell{min-height:5rem;padding:.16rem}.calendar-deadline{font-size:.66rem;padding:.12rem}.log-date{font-size:.8rem}}
.log-submitted{font-size:.75rem;line-height:1.2;font-weight:700;color:#166534;overflow-wrap:anywhere}
.monthly-report-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
}
button.compact-button {
  width: auto;
  min-height: 2rem;
  padding: .3rem .65rem;
  margin: 0;
  font-size: .875rem;
  line-height: 1.25;
}
