:root{
  color-scheme:light;
  --bg:#f6f8fb;
  --panel:#ffffff;
  --panel2:#eef4fb;
  --line:#d7e0ea;
  --text:#0f172a;
  --muted:#5f6f85;
  --accent:#2563eb;
  --accent2:#0f766e;
  --danger:#dc2626;
  --shadow:0 18px 44px rgba(15,23,42,.10);
}
*{box-sizing:border-box}
body{
  margin:0;
  background:linear-gradient(180deg,#ffffff,#f6f8fb);
  color:#0f172a;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.hidden{display:none!important}
.login{min-height:100vh;display:grid;place-items:center;padding:24px}
.loginPanel{width:min(460px,92vw)}
.shell{display:grid;grid-template-columns:310px 1fr;min-height:100vh}
aside{
  border-right:1px solid var(--line);
  background:rgba(255,255,255,.96);
  padding:18px;
  position:sticky;
  top:0;
  height:100vh;
  overflow:auto;
  box-shadow:8px 0 30px rgba(15,23,42,.04);
}
.workspace{min-width:0}
header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:18px 22px;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  z-index:2;
}
.brand,.headerActions{display:flex;gap:12px;align-items:center}
.brand span{display:block;color:var(--muted);font-size:.85rem}
.brandMark{
  width:64px;height:64px;display:grid;place-items:center;border-radius:20px;
  background:linear-gradient(135deg,#2563eb,#38bdf8);color:#ffffff;font-weight:900;letter-spacing:.05em;
  box-shadow:0 10px 24px rgba(37,99,235,.22);
}
.brandMark.small{width:42px;height:42px;border-radius:14px;font-size:.8rem}
main{padding:22px;display:grid;gap:18px}
h1,h2,h3{margin:.2rem 0;color:var(--text)}
.panel{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:18px;
  padding:20px;
  box-shadow:var(--shadow);
}
nav{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:20px 0}
nav button{
  display:inline-block;max-width:220px;text-align:left;background:transparent;border:1px solid transparent;color:var(--text);
  padding:12px;border-radius:14px;
}
nav button:hover,nav button.active{background:#eaf2ff;border-color:#b6cffb;color:#123a7c}
nav button span{display:block;color:var(--muted);font-size:.78rem;margin-top:4px;line-height:1.25}
.phiNotice{display:grid;gap:6px;margin-top:18px;border:1px solid #a7d8c5;background:#eefbf5;border-radius:16px;padding:14px}
.phiNotice span,.muted,small{color:var(--muted)}
label{display:grid;gap:6px;color:var(--muted);font-size:.92rem}
input,select,textarea,button{
  border-radius:12px;border:1px solid var(--line);background:#ffffff;color:var(--text);padding:10px;font:inherit;
}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(37,99,235,.22);border-color:#8fb4f5}
textarea{min-height:78px;resize:vertical}
button{cursor:pointer;background:#ffffff}
button.primary{background:linear-gradient(135deg,#2563eb,#38bdf8);border:0;color:#ffffff;font-weight:800}
.error{color:var(--danger);min-height:1.2em}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.stat{background:linear-gradient(180deg,#ffffff,#eef4fb);border:1px solid var(--line);border-radius:16px;padding:16px}
.stat b{font-size:2rem;display:block;color:#123a7c}
.stat span{color:var(--muted)}
.moduleGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.moduleCard{border:1px solid var(--line);background:#ffffff;border-radius:16px;padding:16px;cursor:pointer;transition:.15s}
.moduleCard:hover{transform:translateY(-2px);border-color:#8fb4f5;box-shadow:0 14px 32px rgba(37,99,235,.12)}
.moduleCard p{color:var(--muted);min-height:54px}
.moduleCard button{background:#eef4ff;color:#123a7c;border-color:#c7d8f7;font-weight:700}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border:1px solid var(--line);background:#ffffff;border-radius:14px;margin:10px 0;padding:14px}
.row p{margin:.35rem 0;color:#334155}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.grid > label{min-width:0}
.grid input,.grid select,.grid textarea{width:100%;min-width:0;max-width:100%}
.grid select{width:100%;min-width:0;max-width:100%}
.attestForm{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.wide{grid-column:1/-1}
.pill{display:inline-block;border:1px solid var(--line);background:#f8fafc;border-radius:999px;padding:6px 10px;margin:4px;color:#334155}
.positionCard{display:inline-block;vertical-align:top;width:min(310px,100%);min-height:130px;margin:8px;padding:15px;border:1px solid var(--line);border-radius:16px;background:#ffffff}
.flow{line-height:1.9}
.logRow{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:10px 0}
.result{margin:14px 0;color:var(--accent2);word-break:break-all}

.positionLayout{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:18px;align-items:start}
.positionGrid{display:grid;gap:12px}
.positionCard.clickable{cursor:pointer;transition:.15s transform,.15s border-color,.15s background,.15s box-shadow}
.positionCard.clickable:hover,.positionCard.active{transform:translateY(-1px);border-color:#8fb4f5;background:#f3f8ff;box-shadow:0 12px 26px rgba(37,99,235,.10)}
.smallBtn{margin-top:10px;padding:7px 10px;border-radius:10px;font-size:.85rem}
.positionDetail{position:sticky;top:92px;max-height:calc(100vh - 120px);overflow:auto}
.emptyState{border:1px dashed #b8c5d6;border-radius:16px;padding:22px;background:#f8fafc;color:var(--muted)}
.detailHeader{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.statusStrip{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}
.positionItems{display:grid;gap:12px}
.positionItem{border:1px solid var(--line);background:#ffffff;border-radius:16px;padding:14px;display:grid;gap:10px}
.itemHead{display:flex;justify-content:space-between;gap:12px}
.itemHead p{margin:.35rem 0;color:var(--muted)}
.itemMeta{color:var(--muted)}
.evidenceNeed{border-left:3px solid var(--accent2);padding:8px 10px;background:#edfdf8;border-radius:10px}
.positionItem label{display:grid;gap:6px}
.positionItem select,.positionItem textarea{width:100%}

.miniPanel{border:1px solid var(--line);background:#f8fafc;border-radius:16px;padding:14px;margin:12px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.miniPanel h4{grid-column:1/-1;margin:0 0 4px;color:#123a7c}
.miniPanel .wide{grid-column:1/-1}
.assignedSummary b{display:block;margin-top:3px;color:var(--text)}
.assignedSummary p{margin:.35rem 0 0}
.positionActionBar{margin:12px 0;display:flex;gap:10px;align-items:center}
.buttonRow{grid-column:1/-1;display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-start}
.buttonRow button,.miniPanel button,.locationQuickAdd button{width:auto;justify-self:start}
.addChecklistToggle{width:auto}
.sourceLink{color:var(--accent);font-weight:800;text-decoration:none}
.sourceLink:hover{text-decoration:underline}
.assignmentForm input,.assignmentForm textarea,.addItemForm input,.addItemForm textarea,.locationQuickAdd input,.locationQuickAdd select{width:100%}
.itemControls{display:grid;grid-template-columns:220px 1fr;gap:10px}
.locationQuickAdd{border:1px solid #b6cffb;background:#f3f8ff;border-radius:14px;padding:10px;display:grid;grid-template-columns:180px 1fr;gap:8px}
.locationQuickAdd h4{grid-column:1/-1;margin:.1rem 0;color:var(--accent2)}
.locationQuickAdd .wide{grid-column:1/-1}

@media(max-width:1050px){.positionLayout{grid-template-columns:1fr}.positionDetail{position:static;max-height:none}}
@media(max-width:900px){.shell{grid-template-columns:1fr}aside{position:relative;height:auto}header,.row{display:block}.row select{margin-top:10px;width:100%}}
@media(max-width:760px){.attestForm{grid-template-columns:1fr}.miniPanel,.itemControls,.locationQuickAdd{grid-template-columns:1fr}.miniPanel .wide,.locationQuickAdd .wide{grid-column:auto}}
