*{box-sizing:border-box}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#17202a;background:#f4f5f7}body{margin:0;background:#f4f5f7}main{max-width:1180px;margin:auto;padding:18px}header{display:flex;justify-content:space-between;align-items:center;gap:16px}h1{font-size:26px;margin:4px 0}h2{margin:0 0 8px}h3{margin:18px 0 8px}p{margin:6px 0;color:#59636e}button,input,textarea{font:inherit}button{border:0;border-radius:11px;padding:10px 14px;font-weight:700;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.secondary{background:#e5e7eb;color:#17202a}.small{padding:7px 10px}.headerActions{display:flex;gap:8px;flex-wrap:wrap}.hero,.summary,.login,.panel,.notice{background:white;border-radius:18px;padding:22px;margin:18px 0;box-shadow:0 2px 12px #00000010}.hero button,.login button,.complete,.submit,.panel>button{background:#17202a;color:white}.progress{height:8px;background:#ddd;border-radius:99px;overflow:hidden;margin:12px 0 14px}.progress i{display:block;height:100%;background:#17202a}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filters button{background:#e8ebee}.filters button.selected{background:#17202a;color:white}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.tile{min-height:138px;background:#fff;text-align:left;border:1px solid #e3e6e8;padding:14px;display:flex;flex-direction:column;gap:7px;box-shadow:0 1px 6px #00000008}.tile:hover{transform:translateY(-1px)}.tile.done{opacity:.58}.tile.oos{border-color:#ad3030}.tile strong{font-size:16px;line-height:1.2}.tile small{font-weight:600;color:#69737e}.tile em{margin-top:auto;font-style:normal;font-size:13px;color:#4e5964}.type{display:inline-block;width:max-content;font-size:11px;text-transform:uppercase;letter-spacing:.06em;padding:4px 7px;border-radius:99px;background:#edf0f2;color:#4c5863;font-weight:800}.type.stock_status{background:#eef1f4}.type.inspection{background:#f2efe9}.type.pull_thaw{background:#edf3ed}.submit{width:100%;margin:18px 0;font-size:16px}.submit:disabled{opacity:.35}.modalback{position:fixed;inset:0;background:#0008;display:grid;place-items:center;padding:16px;z-index:20}.modal{background:#fff;width:min(620px,100%);max-height:92vh;overflow:auto;border-radius:20px;padding:20px;box-shadow:0 20px 80px #0005}.modalhead{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.close{font-size:28px;line-height:1;background:#edf0f2;width:42px;height:42px;padding:0}.target{background:#f4f5f7;border-radius:12px;padding:12px;margin:12px 0}.instructions{font-size:14px}.requiredNote{font-size:12px;color:#75808b;margin:4px 0 8px}.field,.qualityblock{display:block;margin:16px 0;font-weight:700}.field>span,.qualityblock>span{display:block;margin-bottom:8px}.numberline{display:flex;align-items:center;gap:8px}.numberline button{font-size:20px;width:44px}.numberline input{width:96px;text-align:center;border:1px solid #cfd4da;border-radius:10px;padding:11px}.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.statuschoices{grid-template-columns:repeat(4,1fr);margin:6px 0}.choices button{background:#e9ecef}.choices button.selected{background:#17202a;color:white}.choices button.bad.selected{background:#9b1c1c}textarea{width:100%;min-height:72px;border:1px solid #cfd4da;border-radius:10px;padding:11px;resize:vertical}.complete{width:100%;margin-top:12px}.editHint{display:block;text-align:center;color:#68727c;margin-top:8px}.remaining{border-radius:12px;padding:12px 14px;margin:14px 0;font-weight:800}.remaining.needed{background:#fff0dd;color:#7a4300}.remaining.satisfied{background:#e9f6ec;color:#245f32}.oosButton{width:100%;background:#f4dddd;color:#7e1d1d}.oosButton.selected{background:#8f2323;color:#fff}.alert{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #eee}.pullok{padding:16px 0;font-weight:800}.comments{margin-top:16px;border-top:1px solid #eee}.commentRow,.miniAlert,.activityRow,.recentRow{display:flex;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid #eee}.commentRow span,.miniAlert span{text-align:right}.goodBox{padding:14px;border-radius:12px;background:#e9f6ec;color:#245f32;font-weight:700}.login{max-width:460px;margin:14vh auto 0}.login form{display:grid;gap:10px;margin-top:14px}.login input{width:100%;border:1px solid #cfd4da;border-radius:10px;padding:12px}.remember{display:flex;align-items:center;gap:8px;font-weight:600;color:#59636e}.remember input{width:auto}.errorText{color:#9b1c1c;font-weight:700}.dashboardGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{margin:0 0 16px}.panel button:not(.secondary){margin-top:16px}.sectionHead{display:flex;justify-content:space-between;align-items:center;gap:12px}.statusBadge{display:inline-block;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:800;margin:10px 0}.ready{background:#e8f4ea;color:#245f32}.progressBadge{background:#fff0dd;color:#7a4300}.locked{background:#f2e7dd;color:#70401f}.completeBadge{background:#e8edf4;color:#34495e}.criticalNotice{border-left:5px solid #a52626}.closingMeta{display:flex;gap:18px;flex-wrap:wrap;background:#fff;padding:12px 14px;border-radius:12px;margin:12px 0}.activityRow span{text-transform:capitalize}.activityRow time{color:#69737e;text-align:right}.recentRow>div:last-child{text-align:right;color:#69737e}
@media(max-width:900px){.grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.dashboardGrid{grid-template-columns:1fr}.headerActions{justify-content:flex-end}.topbar{align-items:flex-start}}@media(max-width:660px){main{padding:10px}.grid{grid-template-columns:repeat(2,1fr);gap:8px}.tile{min-height:126px;padding:12px}.statuschoices{grid-template-columns:repeat(2,1fr)}.alert,.commentRow,.miniAlert{display:block}.alert span,.commentRow span,.miniAlert span{display:block;text-align:left;margin-top:4px}.headerActions button{padding:8px 9px;font-size:12px}.recentRow{display:block}.recentRow>div:last-child{text-align:left;margin-top:8px}}@media(max-width:380px){.grid{grid-template-columns:1fr 1fr}.tile strong{font-size:14px}.tile{min-height:116px}}
.timestampLine{display:block;color:#68727c;margin:6px 0}

/* Admin */
.adminPage{max-width:1320px}.adminStats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:16px 0}.adminStats>div{background:#fff;border:1px solid #e4e7ea;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:3px}.adminStats b{font-size:22px;text-transform:capitalize}.adminStats span{font-size:12px;color:#69737e}.adminTabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.adminTabs button{background:#e8ebee}.adminTabs button.selected{background:#17202a;color:#fff}.adminForm{display:grid;gap:9px;margin:14px 0}.compactForm{grid-template-columns:2fr 1.3fr 1.3fr 1fr auto}.adminForm input,.adminForm select,.filterBar input,.filterBar select,.formGrid input,.formGrid select,.reqRow input,.adminModal input,.adminModal select{border:1px solid #cfd4da;border-radius:9px;padding:10px;background:#fff}.tableWrap{overflow:auto;width:100%;margin-top:12px}.tableWrap table{width:100%;border-collapse:collapse;font-size:13px}.tableWrap th,.tableWrap td{text-align:left;padding:10px;border-bottom:1px solid #e6e8eb;vertical-align:top}.tableWrap th{position:sticky;top:0;background:#fff;z-index:1;white-space:nowrap}.actions{display:flex;gap:6px;flex-wrap:wrap}.detailsCell{max-width:460px;word-break:break-word;color:#59636e}.itemAdminGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.adminItem{border:1px solid #e4e7ea;border-radius:14px;padding:14px;display:flex;justify-content:space-between;gap:12px;background:#fff}.adminItem.inactive{opacity:.5}.adminItem h3{margin:8px 0 3px}.adminItem p{font-size:12px}.adminModal{width:min(860px,100%)}.formGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0}.formGrid label,.adminModal>label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:13px}.checkline{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;margin:10px 0}.checkline input{width:auto}.requirementsGrid{display:grid;grid-template-columns:1fr;gap:6px}.reqRow{display:grid;grid-template-columns:50px 100px 1fr;gap:8px;align-items:center}.filterBar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.filterBar>*{min-height:40px}.notice{background:#fff;border:1px solid #d9dee3;border-radius:12px;padding:10px 14px;margin:12px 0}.notice p{margin:0}.panel>h2{margin-top:0}
@media(max-width:1000px){.adminStats{grid-template-columns:repeat(3,1fr)}.compactForm{grid-template-columns:1fr 1fr}.itemAdminGrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.adminStats{grid-template-columns:repeat(2,1fr)}.compactForm,.formGrid{grid-template-columns:1fr}.itemAdminGrid{grid-template-columns:1fr}.reqRow{grid-template-columns:44px 90px 1fr}.adminTabs{display:grid;grid-template-columns:1fr 1fr}.tableWrap{font-size:12px}}

.versionTag{font-size:11px;font-weight:700;background:#e8ebee;padding:3px 7px;border-radius:999px;color:#59636e}


/* =========================================================
   V1.0.1 — phone / small-tablet usability layer
   ========================================================= */

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  background:#f4f5f7;
}
body{
  min-height:100dvh;
  overscroll-behavior-y:none;
}
button,input,textarea,select{
  touch-action:manipulation;
}
button{
  min-height:44px;
}
input,textarea,select{
  font-size:16px;
}
textarea{
  line-height:1.4;
}

@media (hover:none){
  .tile:hover{transform:none}
  button:active{transform:scale(.985)}
}

@media(max-width:660px){
  body{
    padding-bottom:calc(74px + env(safe-area-inset-bottom));
  }

  main,
  .adminPage{
    width:100%;
    max-width:none;
    padding:
      max(10px, env(safe-area-inset-top))
      10px
      calc(22px + env(safe-area-inset-bottom));
  }

  .topbar{
    min-height:58px;
    align-items:center;
    padding:2px 1px 8px;
    border-bottom:1px solid #e2e5e8;
  }
  .topbar h1{
    font-size:20px;
    line-height:1.15;
    margin:0;
  }
  .topbar p{
    font-size:12px;
    margin-top:3px;
  }
  .versionTag{
    font-size:9px;
    padding:2px 5px;
  }

  .headerActions{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:40;
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:1fr;
    gap:0;
    padding:7px max(7px,env(safe-area-inset-left))
      calc(7px + env(safe-area-inset-bottom))
      max(7px,env(safe-area-inset-right));
    background:rgba(250,251,252,.96);
    border-top:1px solid #dfe3e6;
    box-shadow:0 -5px 24px #00000012;
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
  }
  .headerActions button{
    min-width:0;
    min-height:48px;
    padding:6px 4px;
    border-radius:10px;
    font-size:11px;
    line-height:1.1;
    white-space:normal;
    background:transparent;
  }
  .headerActions button:active{
    background:#e4e8eb;
  }

  .hero,.summary,.login,.panel,.notice{
    border-radius:15px;
    padding:15px;
    margin:10px 0;
  }
  .dashboardGrid{
    gap:10px;
  }
  .panel{
    margin-bottom:10px;
  }
  .panel h2,.summary h2{
    font-size:18px;
  }
  .sectionHead{
    align-items:flex-start;
  }

  .closingMeta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    padding:8px;
    margin:8px 0;
    font-size:11px;
    border:1px solid #e4e7ea;
  }
  .closingMeta span:last-child{
    grid-column:1 / -1;
    font-weight:800;
  }

  .progress{
    position:sticky;
    top:0;
    z-index:12;
    margin:6px 0 8px;
    height:7px;
  }

  .filters{
    position:sticky;
    top:8px;
    z-index:11;
    display:flex;
    flex-wrap:nowrap;
    gap:6px;
    overflow-x:auto;
    margin:0 -10px 9px;
    padding:7px 10px 8px;
    background:rgba(244,245,247,.94);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    scrollbar-width:none;
  }
  .filters::-webkit-scrollbar{display:none}
  .filters button{
    flex:0 0 auto;
    min-height:38px;
    padding:7px 13px;
    font-size:12px;
    border-radius:999px;
  }

  .grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .tile{
    min-height:112px;
    padding:10px;
    border-radius:13px;
    gap:5px;
  }
  .tile strong{
    font-size:14px;
    line-height:1.16;
  }
  .tile small{
    font-size:10px;
    line-height:1.25;
  }
  .tile em{
    font-size:11px;
    line-height:1.2;
  }
  .type{
    font-size:9px;
    padding:3px 6px;
  }

  .submit{
    position:sticky;
    bottom:calc(69px + env(safe-area-inset-bottom));
    z-index:15;
    min-height:50px;
    margin:10px 0 4px;
    box-shadow:0 7px 26px #0003;
  }

  .modalback{
    align-items:end;
    padding:0;
    z-index:60;
  }
  .modal{
    width:100%;
    max-width:none;
    max-height:min(92dvh,850px);
    border-radius:20px 20px 0 0;
    padding:16px 14px calc(16px + env(safe-area-inset-bottom));
    box-shadow:0 -14px 45px #0005;
  }
  .modal::before{
    content:"";
    display:block;
    width:42px;
    height:4px;
    margin:-5px auto 11px;
    border-radius:999px;
    background:#d3d7da;
  }
  .modalhead{
    position:sticky;
    top:-16px;
    z-index:3;
    margin:-2px -2px 0;
    padding:7px 2px 8px;
    background:#fff;
  }
  .modalhead h2{
    font-size:20px;
    line-height:1.15;
  }
  .close{
    flex:0 0 44px;
    width:44px;
    height:44px;
  }

  .target{
    margin:8px 0;
    padding:10px;
    font-size:13px;
  }
  .instructions{
    font-size:12px;
    line-height:1.35;
  }
  .requiredNote{
    font-size:11px;
  }

  .field,.qualityblock{
    margin:12px 0;
  }
  .field>span,.qualityblock>span{
    font-size:13px;
    margin-bottom:6px;
  }

  .numberline{
    display:grid;
    grid-template-columns:52px minmax(76px,1fr) 52px auto;
    gap:7px;
    width:100%;
  }
  .numberline button{
    width:52px;
    min-height:52px;
    padding:0;
    font-size:25px;
  }
  .numberline input{
    width:100%;
    min-height:52px;
    padding:8px;
    font-size:20px;
    font-weight:800;
  }
  .numberline b{
    align-self:center;
    max-width:90px;
    font-size:12px;
    line-height:1.15;
  }

  .choices{
    gap:7px;
  }
  .choices button{
    min-height:50px;
    padding:8px 6px;
    font-size:13px;
  }
  .statuschoices{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .remaining{
    margin:9px 0;
    padding:10px 12px;
    font-size:13px;
  }
  .oosButton{
    min-height:50px;
  }
  .complete{
    position:sticky;
    bottom:0;
    z-index:4;
    min-height:52px;
    margin-top:10px;
    box-shadow:0 6px 22px #0002;
  }

  .alert,.commentRow,.miniAlert,.activityRow,.recentRow{
    gap:4px;
    padding:9px 0;
  }
  .activityRow{
    display:grid;
    grid-template-columns:1fr;
  }
  .activityRow time{
    text-align:left;
    font-size:11px;
  }

  .adminStats{
    grid-template-columns:1fr 1fr;
    gap:7px;
  }
  .adminStats>div{
    padding:11px;
  }
  .adminStats b{
    font-size:18px;
  }
  .adminTabs{
    position:sticky;
    top:0;
    z-index:10;
    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    margin:0 -10px 10px;
    padding:7px 10px;
    background:#f4f5f7;
    scrollbar-width:none;
  }
  .adminTabs::-webkit-scrollbar{display:none}
  .adminTabs button{
    flex:0 0 auto;
    min-height:40px;
    white-space:nowrap;
  }
  .compactForm,.formGrid{
    grid-template-columns:1fr;
  }
  .itemAdminGrid{
    grid-template-columns:1fr;
  }
  .adminItem{
    padding:12px;
  }
  .filterBar{
    display:grid;
    grid-template-columns:1fr;
    gap:6px;
  }
  .filterBar>*{
    width:100%;
  }
  .tableWrap{
    margin-left:-2px;
    margin-right:-2px;
    -webkit-overflow-scrolling:touch;
  }
  .tableWrap table{
    min-width:680px;
  }
  .reqRow{
    grid-template-columns:42px 78px minmax(150px,1fr);
  }

  .login{
    min-height:auto;
    margin:8vh auto 0;
    padding:18px;
  }
  .login h1{
    font-size:24px;
  }
  .login input{
    min-height:50px;
  }
  .login button{
    min-height:50px;
  }
}

@media(max-width:360px){
  main,.adminPage{padding-left:7px;padding-right:7px}
  .grid{gap:5px}
  .tile{min-height:106px;padding:8px}
  .tile strong{font-size:13px}
  .tile small{font-size:9px}
  .headerActions button{font-size:10px}
  .numberline{grid-template-columns:48px minmax(65px,1fr) 48px}
  .numberline b{grid-column:1/-1;text-align:center;max-width:none}
}

/* ============================
   V1.0.2 Calm typography
   ============================ */

body {
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button,
input,
textarea,
select {
  font-family: inherit;
}

h1,
h2,
h3 {
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 600;
  letter-spacing: -0.012em;
}

button {
  font-weight: 500;
}

.tile strong {
  font-weight: 500;
  letter-spacing: 0;
}


/* V1 email-delivery admin status */
.emailHealth{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid #d9dee3;border-radius:13px;padding:12px 14px;margin:12px 0}
.emailHealth>div{display:flex;flex-direction:column;gap:3px}.emailHealth span{font-size:12px;color:#69737e}
.emailHealthy{background:#edf7ef;border-color:#cde4d1}.emailUnhealthy{background:#fff3e7;border-color:#f0d3ad}
.emailHealth form{display:flex;gap:7px;align-items:center}.emailHealth input{border:1px solid #cfd4da;border-radius:9px;padding:10px;min-width:220px}
.emailError{color:#9b1c1c;max-width:320px;white-space:normal}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
@media(max-width:660px){.emailHealth{display:block}.emailHealth form{display:grid;grid-template-columns:1fr;margin-top:10px}.emailHealth input{min-width:0;width:100%}}


/* =========================================================
   V1.0.2 — calm visual layer
   ========================================================= */
:root{color:#252827;background:#f4f5f3;font-weight:400}
html,body{background:#f4f5f3;color:#252827}
body{font-weight:400}
main,.adminPage{color:#252827}
h1{font-size:25px;font-weight:600;line-height:1.18;color:#252827}
h2{font-weight:600;line-height:1.25;color:#252827}
h3{font-weight:500;line-height:1.3;color:#252827}
p{color:#626763;font-weight:400}
small,.timestampLine,.editHint{color:#858a86;font-weight:400}
button{font-weight:500}
label,.field,.qualityblock,.formGrid label,.adminModal>label{font-weight:500}
.field>span,.qualityblock>span{font-weight:500;color:#454a47}
.remember{font-weight:400;color:#626763}
.hero,.summary,.login,.panel,.notice{background:#fff;border:1px solid #e2e5e1;box-shadow:0 1px 5px #1b211d0a}
.target{background:#fafaf8}
.tile{background:#fff;border-color:#e2e5e1;box-shadow:0 1px 3px #1b211d08}
.tile:hover{box-shadow:0 3px 10px #1b211d0d}
.tile strong{color:#252827;font-weight:500}
.tile small{color:#858a86;font-weight:400}
.tile em{color:#626763}
.modal{background:#fff;box-shadow:0 18px 55px #15191526}
.modalback{background:#20252173}
.closingMeta{background:#fafaf8;border:1px solid #e2e5e1}
.adminStats>div,.adminItem{border-color:#e2e5e1;box-shadow:none}
.adminStats b{font-weight:600;color:#252827}
.adminStats span,.adminItem p,.detailsCell{color:#626763}
.login input,.numberline input,textarea,.adminForm input,.adminForm select,.filterBar input,.filterBar select,.formGrid input,.formGrid select,.reqRow input,.adminModal input,.adminModal select,.emailHealth input{background:#fff;color:#252827;border-color:#d8dcd7;box-shadow:none;font-weight:400}
input::placeholder,textarea::placeholder{color:#9a9f9b}
input:focus,textarea:focus,select:focus{outline:2px solid #8d97903d;outline-offset:1px;border-color:#9ba39d}
.numberline input{font-weight:500}
.hero button,.login button,.complete,.submit,.panel>button,.filters button.selected,.choices button.selected,.adminTabs button.selected{background:#303632;color:#fff}
.secondary,.filters button,.adminTabs button,.choices button,.close{background:#eceeeb;color:#353a37}
.secondary:hover,.filters button:hover,.adminTabs button:hover,.choices button:hover{background:#e4e7e3}
.progress{background:#e2e5e1}.progress i{background:#4a524d}
.type{font-weight:500;color:#626763;background:#f0f2ef;letter-spacing:.045em}
.type.stock_status{background:#f0f2ef}.type.inspection{background:#f4f1eb}.type.pull_thaw{background:#edf3ed}
.versionTag{font-weight:500;background:#eceeeb;color:#626763}
.statusBadge,.remaining,.pullok,.goodBox,.errorText{font-weight:500}
.tableWrap th,.tableWrap td,.alert,.comments,.commentRow,.miniAlert,.activityRow,.recentRow{border-color:#e7e9e6}
.tableWrap th{background:#fafaf8;font-weight:500;color:#454a47}
.activityRow time{color:#858a86}
.tile.oos{border-color:#b45a5a}
.emailHealth{border-color:#dfe3de}
.emailHealthy{background:#eff6f0;border-color:#d4e4d7}.emailUnhealthy{background:#fff5ea;border-color:#ecd8ba}
@media(max-width:660px){.adminTabs{background:#f4f5f3}.login h1{font-size:23px;font-weight:600}}

/* V1.0.3 warm visual identity */
:root{--ink:#25312c;--muted:#69746f;--page:#f4f2ea;--surface:#fffdf8;--surface-soft:#f7f3e8;--line:#e3ded1;--green:#315f4d;--green-deep:#264b3d;--green-soft:#e3eee7;--gold:#c7923d;--gold-soft:#f6ead2;font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--page)}
html,body{background:var(--page);color:var(--ink)}body,button,input,textarea,select{font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}h1,h2,h3{font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);letter-spacing:-.025em}h1{font-weight:700}h2,h3{font-weight:600}p{color:var(--muted)}
.hero,.summary,.panel,.notice,.login{background:var(--surface);border:1px solid var(--line);box-shadow:0 8px 28px rgba(45,55,48,.055)}.hero button,.login button,.complete,.submit,.panel>button,.filters button.selected,.choices button.selected,.adminTabs button.selected{background:var(--green);color:#fff}.hero button:hover,.login button:hover,.complete:hover,.submit:hover,.panel>button:hover{background:var(--green-deep)}.secondary,.filters button,.adminTabs button,.choices button,.close{background:#ebe9e1;color:#35413b}.progress{background:#e5e0d5}.progress i{background:linear-gradient(90deg,var(--green),#4f7a66)}
.tile{background:var(--surface);border-color:var(--line);box-shadow:0 3px 12px rgba(45,55,48,.035)}.tile:hover{border-color:#cfc7b5;box-shadow:0 7px 20px rgba(45,55,48,.07)}.type.stock_status{background:#edf0eb;color:#56635d}.type.inspection{background:var(--gold-soft);color:#7b5a22}.type.pull_thaw{background:var(--green-soft);color:#315f4d}.target,.closingMeta,.tableWrap th{background:var(--surface-soft)}.versionTag{background:#e9e5da;color:#6b706c}.statusBadge.ready,.remaining.satisfied,.goodBox{background:var(--green-soft);color:#2c6249}.progressBadge,.remaining.needed{background:var(--gold-soft);color:#79571f}
.login{position:relative;max-width:470px;margin:13vh auto 0;padding:30px;overflow:hidden}.login::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--green) 0 72%,var(--gold) 72%)}.login h1{font-size:29px;margin:2px 0 3px;letter-spacing:-.04em}.login p{font-size:15px}.login form{gap:11px;margin-top:18px}.login input{min-height:48px;background:#fffefa;border-color:#d8d2c4}.login input:focus,textarea:focus,select:focus{outline:3px solid rgba(49,95,77,.12);border-color:#739080}.login button{min-height:48px;box-shadow:0 5px 13px rgba(49,95,77,.14)}.remember{color:#5e6964}.notice{border-left:4px solid var(--gold)}.criticalNotice{border-left-color:#a94b45}.adminStats>div,.adminItem{background:var(--surface);border-color:var(--line)}.adminStats>div:nth-child(1){border-top:3px solid var(--green)}.adminStats>div:nth-child(2){border-top:3px solid var(--gold)}.emailHealthy{background:var(--green-soft);border-color:#c8dccf}
@media(max-width:660px){.filters{background:rgba(244,242,234,.94)}.headerActions{background:rgba(255,253,248,.96)}.login{margin:9vh 10px 0;padding:24px 20px}.login h1{font-size:26px}}


/* V1.0.4 — dark-blue warm identity */
:root{--ink:#24283a;--muted:#6f7488;--page:#eef2f8;--surface:#fff;--surface-soft:#f5f7fb;--line:#dde3ee;--navy:#252a44;--navy-deep:#1d2137;--blue:#1769e8;--blue-hover:#0f58c9;--blue-soft:#e8f0ff;--warm:#f4efe6;font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--page)}
html,body{background:var(--page);color:var(--ink)}body,button,input,textarea,select{font-family:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}h1,h2,h3{color:var(--ink);letter-spacing:-.025em}h1{font-weight:700}h2,h3{font-weight:600}p{color:var(--muted)}
.hero,.summary,.panel,.notice,.login,.adminStats>div,.adminItem{background:var(--surface);border:1px solid var(--line);box-shadow:0 8px 24px rgba(30,40,65,.055)}
.tile{background:var(--surface);border-color:var(--line);box-shadow:0 3px 12px rgba(30,40,65,.035)}.tile:hover{border-color:#c9d3e4;box-shadow:0 8px 22px rgba(30,40,65,.075)}.target,.closingMeta,.tableWrap th{background:var(--surface-soft)}.versionTag{background:#e8ecf4;color:#687083}
.hero button,.login button,.complete,.submit,.panel>button,.filters button.selected,.choices button.selected,.adminTabs button.selected{background:var(--navy);color:#fff;border-color:var(--navy)}.hero button:hover,.login button:hover,.complete:hover,.submit:hover,.panel>button:hover{background:var(--navy-deep)}
.secondary,.filters button,.adminTabs button,.choices button,.close{background:#edf0f5;color:#3b4258;border-color:#dce2eb}.progress{background:#e2e7f0}.progress i{background:linear-gradient(90deg,var(--navy),var(--blue))}a{color:var(--blue)}
.type.pull_thaw{background:var(--blue-soft);color:#2456a8}.type.inspection{background:var(--warm);color:#7c6745}.type.stock_status{background:#edf0f4;color:#596172}.statusBadge.ready,.remaining.satisfied,.goodBox{background:#e8f2ed;color:#32634c}.progressBadge,.remaining.needed{background:#fff1d9;color:#815f24}.emailHealthy{background:#e8f2ed;border-color:#cbded3}
.login{position:relative;max-width:470px;margin:12vh auto 0;padding:32px 30px 30px;overflow:hidden;border-radius:18px}.login::before{content:"";position:absolute;left:0;right:0;top:0;height:7px;background:linear-gradient(90deg,var(--navy) 0 68%,var(--blue) 68%)}.login h1{font-size:29px;margin:3px 0 3px;letter-spacing:-.04em;color:var(--navy)}.login p{font-size:15px;color:#697086}.login form{gap:11px;margin-top:18px}.login input{min-height:48px;background:#fbfcfe;border-color:#d4dbe7;color:var(--ink)}.login input::placeholder{color:#8a91a1}.login input:focus,textarea:focus,select:focus{outline:3px solid rgba(23,105,232,.12);border-color:#7aa6e9}.login button{min-height:48px;background:var(--navy);box-shadow:0 6px 16px rgba(37,42,68,.15)}.login button:hover{background:var(--blue)}.remember{color:#606779}
.notice{border-left:4px solid var(--blue)}.criticalNotice{border-left-color:#b64c55}.adminStats>div:nth-child(1){border-top:3px solid var(--navy)}.adminStats>div:nth-child(2){border-top:3px solid var(--blue)}
@media(max-width:660px){.filters{background:rgba(238,242,248,.95)}.headerActions{background:rgba(255,255,255,.97)}.login{margin:8vh 10px 0;padding:25px 20px 22px}.login h1{font-size:26px}}


/* Secure employee password setup */
.passwordSetupPage .goodBox{margin:18px 0}.passwordSetupPage .goodBox p{margin:6px 0 0}
.passwordRules{display:grid;gap:5px;padding:12px 14px;border-radius:12px;background:#f4f7fb;color:#68728a;font-size:13px;border:1px solid #e0e7f1}
.passwordRules span::before{content:'✓';color:#1769e8;font-weight:700;margin-right:7px}


/* V1.1 — Guided pull-out workflow */
.pullWorkflow{background:var(--surface,#fff);border:1px solid var(--line,#dce3ee);border-radius:18px;padding:18px;margin:10px 0 16px}
.pullWorkflowHead{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}.pullWorkflowHead h2{margin:5px 0 3px}.pullWorkflowHead p{max-width:640px}
.pullSteps{display:flex;gap:6px;white-space:nowrap}.pullSteps span{display:flex;gap:5px;align-items:center;background:#e9edf4;color:#707789;border-radius:999px;padding:8px 11px;font-size:12px}.pullSteps span.active{background:#252a44;color:#fff}.pullSteps span.done{background:#dce9ff;color:#1759b8}
.workflowNotice{display:flex;flex-direction:column;gap:4px;background:#f4f7fc;border-left:4px solid #1769e8;border-radius:10px;padding:12px 14px;margin:12px 0 14px}.workflowNotice span{color:#687085;font-size:13px}
.pullCountGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pullCountCard{background:#fff;border:1px solid #dce3ee;border-radius:14px;padding:12px;display:grid;gap:10px}.pullCountCard>div:first-child{display:flex;flex-direction:column;gap:3px}.pullCountCard small{color:#757c8d}
.compactNumber{display:grid;grid-template-columns:44px minmax(62px,90px) 44px 1fr;gap:7px;align-items:center}.compactNumber button{min-height:44px;padding:0;font-size:20px}.compactNumber input{width:100%;min-height:44px;border:1px solid #cfd8e6;border-radius:9px;text-align:center;font-weight:650;font-size:17px}.compactNumber span{font-size:12px;color:#697386}
.pullCountCard em{font-style:normal;font-size:12px;font-weight:600}.pullCountCard em.need{color:#9a5a13}.pullCountCard em.enough{color:#276445}
.workflowPrimary{background:#252a44!important;color:#fff!important;min-height:48px;margin-top:13px}.workflowPrimary:disabled{opacity:.4}.workflowHint{display:block;color:#737b8d;margin-top:7px}
.freezerList{display:grid;gap:8px}.freezerRow{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:11px;background:#fff;border:1px solid #dce3ee;border-radius:14px;padding:12px 14px;cursor:pointer}.freezerRow.checked{background:#f2f6fc;opacity:.72}.freezerRow input{width:20px;height:20px}.freezerRow>div{display:flex;flex-direction:column}.freezerRow small{color:#70788a}.pullAmount{font-size:25px;color:#252a44;text-align:right}.pullAmount small{font-size:11px;text-transform:uppercase;color:#747b8b}
.enoughDetails{margin:12px 0;background:#f7f8fb;border:1px solid #e1e6ee;border-radius:12px;padding:10px 12px}.enoughDetails summary{cursor:pointer;font-weight:600}.enoughDetails>div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid #e6eaf0}.enoughDetails>div:last-child{border-bottom:0}
.workflowActions{display:flex;justify-content:space-between;gap:9px;align-items:center}.workflowActions .workflowPrimary{margin-top:0}.pullConfirmSummary{display:flex;justify-content:space-between;align-items:center;background:#f7f8fb;border-radius:11px;padding:9px 11px;margin:10px 0}.pullConfirmGrid{margin-top:8px}
.pullWorkflowTile{width:100%;background:#f7f9fd;border:1px solid #cdd9ec;border-radius:16px;padding:14px 16px;margin:0 0 11px;display:flex;align-items:center;justify-content:space-between;text-align:left;color:#252a44}.pullWorkflowTile>div{display:flex;flex-direction:column;gap:4px}.pullWorkflowTile strong{font-size:16px}.pullWorkflowTile small{color:#697386}
.closingBreakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:9px 0}.closingBreakdown button{background:#fff;border:1px solid #dce3ee;display:grid;grid-template-columns:1fr auto;gap:2px 8px;text-align:left;padding:10px 12px}.closingBreakdown button span{font-size:12px;color:#70788a}.closingBreakdown button b{font-size:16px}.closingBreakdown button small{grid-column:1/-1;color:#737b8d;font-size:10px}
@media(max-width:660px){.pullWorkflow{padding:12px;margin:5px 0 12px;border-radius:14px}.pullWorkflowHead{display:block}.pullSteps{margin-top:10px;display:grid;grid-template-columns:repeat(3,1fr)}.pullSteps span{justify-content:center;padding:7px 5px;font-size:10px}.pullSteps span b{display:none}.pullCountGrid{grid-template-columns:1fr}.pullCountCard{padding:10px}.compactNumber{grid-template-columns:46px minmax(68px,1fr) 46px auto}.compactNumber input{font-size:18px}.freezerRow{grid-template-columns:28px 1fr auto;padding:11px}.pullAmount{font-size:22px}.workflowActions{display:grid;grid-template-columns:1fr}.workflowActions button{width:100%}.closingBreakdown{gap:5px}.closingBreakdown button{padding:8px 7px}.closingBreakdown button span{font-size:10px}.closingBreakdown button b{font-size:14px}.pullWorkflowTile{padding:12px}}

/* Controlled manager/admin reset */
.closingControl{border-left:4px solid #1769e8}.closingControl .sectionHead{align-items:center}.dangerButton{background:#fff0ef!important;color:#8b2824!important;border:1px solid #e6b9b6!important}.dangerButton:hover{background:#f9dfdd!important}@media(max-width:660px){.closingControl .sectionHead{display:block}.closingControl .dangerButton{width:100%;margin-top:12px;min-height:48px}}

.resetHistoryBox{margin:14px 0 20px;padding:14px;border:1px solid #d8dce8;border-radius:14px;background:#f8f9fc}
.resetHistoryBox h3{margin-top:0}.resetNotice{border-left:4px solid #4b64a8}


/* =========================================================
   V1.2 — Opia River official authentication screen
   Visual-only: signed-out login page
   ========================================================= */

.authPage{
  min-height:100dvh;
  display:grid;
  grid-template-columns:minmax(360px,44%) 1fr;
  background:#f3f6fb;
  color:#24283a;
  padding:0;
  max-width:none;
  margin:0;
}

.authBrandPanel{
  min-height:100dvh;
  position:relative;
  overflow:hidden;
  padding:46px clamp(34px,5vw,74px);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  color:#fff;
  background:
    radial-gradient(circle at 85% 15%,rgba(54,116,231,.35),transparent 30%),
    radial-gradient(circle at 5% 85%,rgba(70,105,182,.24),transparent 32%),
    linear-gradient(145deg,#171d3a 0%,#222b55 52%,#172344 100%);
}

.authBrandPanel::before,
.authBrandPanel::after{
  content:"";
  position:absolute;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
  pointer-events:none;
}

.authBrandPanel::before{
  width:420px;
  height:420px;
  right:-235px;
  top:18%;
}

.authBrandPanel::after{
  width:620px;
  height:620px;
  right:-350px;
  top:7%;
}

.authBrandTop{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:13px;
}

.opiaLogo{
  width:48px;
  height:48px;
  flex:0 0 48px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#347af1,#1558cc);
  box-shadow:0 12px 30px rgba(5,22,64,.28),inset 0 1px 0 rgba(255,255,255,.28);
}

.opiaLogo span{
  color:#fff;
  font-size:15px;
  line-height:1;
  font-weight:700;
  letter-spacing:-.06em;
}

.authBrandName{
  display:flex;
  flex-direction:column;
  gap:1px;
}

.authBrandName strong{
  color:inherit;
  font-size:15px;
  font-weight:700;
  letter-spacing:.14em;
}

.authBrandName small{
  color:inherit;
  opacity:.62;
  font-size:11px;
  letter-spacing:.035em;
}

.authBrandMessage{
  position:relative;
  z-index:1;
  max-width:560px;
  margin:10vh 0;
}

.authEyebrow{
  display:block;
  color:#2c70e5;
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.authBrandPanel .authEyebrow{
  color:#8db7ff;
}

.authBrandMessage h1{
  color:#fff;
  font-size:clamp(34px,4.2vw,58px);
  line-height:1.06;
  letter-spacing:-.045em;
  margin:16px 0 18px;
  font-weight:600;
}

.authBrandMessage p{
  color:rgba(255,255,255,.68);
  max-width:490px;
  font-size:16px;
  line-height:1.65;
  margin:0;
}

.authTrustRow{
  margin-top:30px;
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}

.authTrustRow span{
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  color:rgba(255,255,255,.76);
  background:rgba(255,255,255,.055);
  font-size:11px;
  font-weight:500;
}

.authTrustRow span::before{
  content:"✓";
  color:#8db7ff;
  margin-right:6px;
  font-weight:700;
}

.authBrandFooter{
  position:relative;
  z-index:1;
  color:rgba(255,255,255,.42);
  font-size:12px;
  letter-spacing:.04em;
}

.authLoginSide{
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:42px clamp(24px,6vw,90px) 28px;
}

.authMobileBrand{
  display:none;
}

.authLoginSide .officialLogin{
  width:min(440px,100%);
  max-width:none;
  margin:0;
  padding:34px 34px 30px;
  border:1px solid #dfe5ef;
  border-radius:20px;
  background:#fff;
  box-shadow:0 24px 65px rgba(31,43,75,.09);
  overflow:visible;
}

.authLoginSide .officialLogin::before{
  display:none;
}

.loginHeading{
  margin-bottom:24px;
}

.authLoginSide .officialLogin .loginHeading h1{
  margin:8px 0 6px;
  font-size:29px;
  line-height:1.15;
  color:#202844;
  letter-spacing:-.035em;
  font-weight:600;
}

.authLoginSide .officialLogin .loginHeading p{
  margin:0;
  color:#747b90;
  font-size:14px;
  line-height:1.5;
}

.authLoginSide .officialLogin form{
  display:grid;
  gap:15px;
  margin:0;
}

.authField{
  display:grid;
  gap:7px;
}

.authField>span{
  color:#3e465e;
  font-size:12px;
  font-weight:600;
}

.authLoginSide .officialLogin .authField input{
  width:100%;
  min-height:50px;
  padding:0 14px;
  color:#242a3f;
  background:#fbfcff;
  border:1px solid #d9e0eb;
  border-radius:11px;
  box-shadow:none;
}

.authLoginSide .officialLogin .authField input:hover{
  border-color:#c3cedf;
}

.authLoginSide .officialLogin .authField input:focus{
  outline:3px solid rgba(23,105,232,.11);
  border-color:#6d9ce8;
  background:#fff;
}

.authLoginSide .officialLogin .remember{
  margin:0;
  display:flex;
  align-items:center;
  gap:8px;
  color:#646b7d;
  font-size:12px;
  font-weight:500;
}

.authLoginSide .officialLogin .remember input{
  width:16px;
  height:16px;
  min-height:0;
  accent-color:#1769e8;
}

.authLoginSide .officialLogin .authSignIn{
  min-height:50px;
  margin-top:1px;
  border-radius:11px;
  background:linear-gradient(180deg,#26315c,#1d274f);
  color:#fff;
  font-size:14px;
  font-weight:600;
  box-shadow:0 10px 22px rgba(31,44,90,.18);
}

.authLoginSide .officialLogin .authSignIn:hover{
  background:linear-gradient(180deg,#2e3b70,#202d5c);
}

.authError{
  display:block;
  margin-top:13px;
}

.authSecurityNote{
  margin-top:24px;
  padding-top:18px;
  border-top:1px solid #edf0f5;
  display:flex;
  align-items:flex-start;
  gap:10px;
}

.authLock{
  width:28px;
  height:28px;
  border-radius:8px;
  display:grid;
  place-items:center;
  background:#e9f1ff;
  color:#1769e8;
  font-size:8px;
  transform:rotate(45deg);
}

.authSecurityNote>div{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.authSecurityNote strong{
  color:#565e73;
  font-size:11px;
  font-weight:600;
}

.authSecurityNote small{
  color:#9298a7;
  font-size:10px;
}

.authLegal{
  width:min(440px,100%);
  margin-top:22px;
  display:flex;
  justify-content:space-between;
  gap:18px;
  color:#969dad;
  font-size:10px;
}

/* Tablets / phones */
@media(max-width:860px){
  .authPage{
    display:block;
    min-height:100dvh;
    background:
      linear-gradient(180deg,#1b2346 0,#202c58 210px,#f3f6fb 210px,#f3f6fb 100%);
  }

  .authBrandPanel{
    display:none;
  }

  .authLoginSide{
    min-height:100dvh;
    justify-content:flex-start;
    padding:
      max(28px,env(safe-area-inset-top))
      16px
      calc(24px + env(safe-area-inset-bottom));
  }

  .authMobileBrand{
    width:min(440px,100%);
    min-height:125px;
    display:flex;
    align-items:flex-start;
    gap:11px;
    color:#fff;
    padding:7px 4px 0;
  }

  .authMobileBrand .opiaLogo{
    width:43px;
    height:43px;
    flex-basis:43px;
    border-radius:12px;
  }

  .authMobileBrand .authBrandName strong{
    font-size:13px;
  }

  .authLoginSide .officialLogin{
    padding:26px 20px 22px;
    border-radius:18px;
    box-shadow:0 20px 45px rgba(26,37,73,.12);
  }

  .authLoginSide .officialLogin .loginHeading h1{
    font-size:25px;
  }

  .authLegal{
    padding:0 3px;
    flex-wrap:wrap;
    justify-content:center;
    margin-top:18px;
  }
}

@media(max-width:380px){
  .authLoginSide{
    padding-left:10px;
    padding-right:10px;
  }

  .authMobileBrand{
    min-height:116px;
  }

  .authLoginSide .officialLogin{
    padding-left:17px;
    padding-right:17px;
  }
}


/* Generalized operations login refinements */
.authBrandMessage h1{
  max-width:560px;
}
.authBrandMessage p{
  max-width:520px;
}
.authSecurityNote strong{
  color:#3f4963;
  font-size:12px;
}
.authSecurityNote small{
  color:#81899b;
  font-size:10.5px;
}


/* =========================================================
   V1.3 — Full Opia River dark-blue / white application theme
   Visual-only global theme layer
   ========================================================= */

:root{
  --opia-navy:#202a52;
  --opia-navy-deep:#17203f;
  --opia-navy-soft:#2b376a;
  --opia-blue:#1769e8;
  --opia-blue-soft:#eaf2ff;
  --opia-page:#eef3fa;
  --opia-surface:#ffffff;
  --opia-surface-soft:#f7f9fd;
  --opia-border:#dbe3ef;
  --opia-text:#252b3f;
  --opia-muted:#70788c;
  --opia-success:#2f6a50;
  --opia-success-soft:#e7f3ec;
  --opia-warning:#996b21;
  --opia-warning-soft:#fff4df;
  --opia-danger:#9d3733;
  --opia-danger-soft:#fff0ef;
}

html,body,#root{
  background:var(--opia-page);
  color:var(--opia-text);
}

body{
  background:
    radial-gradient(circle at 85% 0%,rgba(23,105,232,.055),transparent 28%),
    linear-gradient(180deg,#f3f7fc 0%,#edf2f9 100%);
}

/* Main application containers */
main,
.adminPage{
  color:var(--opia-text);
}

.hero,
.summary,
.panel,
.notice,
.login,
.adminStats>div,
.adminItem,
.tile,
.tableWrap{
  background:var(--opia-surface);
  border-color:var(--opia-border);
}

.hero,
.summary,
.panel,
.notice,
.adminStats>div,
.tile{
  box-shadow:0 8px 24px rgba(30,43,82,.055);
}

/* Page headings */
h1,h2,h3{
  color:var(--opia-navy-deep);
}

p,
.closingMeta,
.timestamp,
.timestampLine,
.target,
.muted{
  color:var(--opia-muted);
}

/* Top app header / navigation */
.topbar{
  background:linear-gradient(180deg,var(--opia-navy),var(--opia-navy-deep));
  color:#fff;
  border-bottom:none;
  box-shadow:0 8px 22px rgba(23,32,63,.12);
}

.topbar h1,
.topbar h2,
.topbar h3,
.topbar p{
  color:#fff;
}

.headerActions button,
.topbar button{
  background:rgba(255,255,255,.09);
  color:#fff;
  border:1px solid rgba(255,255,255,.08);
}

.headerActions button:hover,
.topbar button:hover{
  background:rgba(255,255,255,.16);
}

/* App title cards / primary hero elements */
.hero{
  border-top:4px solid var(--opia-blue);
}

.versionTag{
  background:var(--opia-blue-soft);
  color:#4b67a0;
}

/* Buttons */
button{
  border-color:transparent;
}

.hero button,
.complete,
.submit,
.panel>button,
.authSignIn,
.filters button.selected,
.choices button.selected,
.adminTabs button.selected{
  background:linear-gradient(180deg,var(--opia-navy-soft),var(--opia-navy));
  color:#fff;
  box-shadow:0 6px 14px rgba(31,43,83,.12);
}

.hero button:hover,
.complete:hover,
.submit:hover,
.panel>button:hover,
.filters button.selected:hover,
.choices button.selected:hover,
.adminTabs button.selected:hover{
  background:linear-gradient(180deg,#34417c,#202a52);
}

.secondary,
.close,
.filters button:not(.selected),
.choices button:not(.selected),
.adminTabs button:not(.selected){
  background:#f2f5fa;
  color:#3f4863;
  border:1px solid var(--opia-border);
}

.secondary:hover,
.close:hover,
.filters button:not(.selected):hover,
.choices button:not(.selected):hover,
.adminTabs button:not(.selected):hover{
  background:#e9eef7;
}

/* Admin navigation */
.adminTabs{
  gap:8px;
}

.adminTabs button{
  border-radius:11px;
}

.adminTabs button.selected{
  background:var(--opia-navy);
}

.adminStats>div{
  border-top:3px solid var(--opia-blue);
}

.adminStats>div:first-child{
  border-top-color:var(--opia-navy);
}

/* Form controls */
input,
textarea,
select{
  background:#fff;
  color:var(--opia-text);
  border:1px solid #d7dfeb;
  box-shadow:none;
}

input:hover,
textarea:hover,
select:hover{
  border-color:#c4cede;
}

input:focus,
textarea:focus,
select:focus{
  outline:3px solid rgba(23,105,232,.10);
  border-color:#6f9fe9;
  background:#fff;
}

/* Cards and tiles */
.tile{
  border:1px solid var(--opia-border);
}

.tile:hover{
  border-color:#bfcbe0;
  box-shadow:0 10px 24px rgba(30,43,82,.085);
}

.target,
.closingMeta,
.tableWrap th{
  background:var(--opia-surface-soft);
}

/* Item / workflow badges */
.type.stock_status{
  background:#eef2f7;
  color:#5d6678;
}

.type.inspection{
  background:var(--opia-warning-soft);
  color:var(--opia-warning);
}

.type.pull_thaw{
  background:var(--opia-blue-soft);
  color:#365b9e;
}

.statusBadge.ready,
.remaining.satisfied,
.goodBox,
.emailHealthy{
  background:var(--opia-success-soft);
  color:var(--opia-success);
  border-color:#cfe3d6;
}

.progressBadge,
.remaining.needed{
  background:var(--opia-warning-soft);
  color:var(--opia-warning);
}

.errorText,
.criticalNotice{
  color:var(--opia-danger);
}

.criticalNotice{
  background:var(--opia-danger-soft);
  border-left-color:#c6544f;
}

/* Notices */
.notice{
  border-left:4px solid var(--opia-blue);
}

.resetNotice{
  border-left-color:#526caa;
}

.closingControl{
  border-left-color:var(--opia-blue);
}

/* Progress */
.progress{
  background:#dde5f0;
}

.progress i{
  background:linear-gradient(90deg,var(--opia-blue),#4a7bd7);
}

/* Tables */
.tableWrap{
  border:1px solid var(--opia-border);
  border-radius:14px;
  overflow:auto;
}

.tableWrap table{
  background:#fff;
}

.tableWrap th{
  color:#515b72;
  border-bottom:1px solid var(--opia-border);
}

.tableWrap td{
  border-bottom:1px solid #e8edf4;
}

.tableWrap tr:hover td{
  background:#f8faff;
}

/* Admin reset / destructive controls */
.dangerButton{
  background:var(--opia-danger-soft)!important;
  color:var(--opia-danger)!important;
  border:1px solid #efc4c1!important;
  box-shadow:none!important;
}

.dangerButton:hover{
  background:#ffe4e2!important;
}

/* Status chips */
.statusBadge,
.progressBadge,
.remaining,
.versionTag,
.type{
  border-radius:999px;
}

/* Modal polish */
.modalBackdrop{
  background:rgba(20,29,58,.42);
  backdrop-filter:blur(3px);
}

.modal,
.dialog{
  background:#fff;
  border:1px solid var(--opia-border);
  box-shadow:0 24px 70px rgba(20,29,58,.18);
}

/* Mobile navigation and sticky regions */
@media(max-width:660px){
  body{
    background:var(--opia-page);
  }

  .filters{
    background:rgba(238,243,250,.96);
    border-color:var(--opia-border);
  }

  .headerActions{
    background:rgba(32,42,82,.97);
  }

  .headerActions button{
    background:rgba(255,255,255,.10);
    color:#fff;
  }

  .panel,
  .hero,
  .summary,
  .tile{
    box-shadow:0 5px 16px rgba(30,43,82,.045);
  }
}

/* Keep the branded signed-out login screen stronger than the internal UI */
.authPage{
  background:#f3f6fb;
}


/* =========================================================
   V1.4 — Refined internal app layout
   Fixes: header density, card hierarchy, spacing, empty space,
   button states, and stronger visual continuity with login.
   ========================================================= */

/* Global app width and rhythm */
.appShell,
main:not(.authPage),
.adminPage{
  max-width:1320px;
  margin:0 auto;
  padding-left:22px;
  padding-right:22px;
}

/* Refined signed-in header */
.topbar{
  margin-top:14px;
  border-radius:16px;
  padding:14px 18px;
  min-height:74px;
  align-items:center;
  background:
    radial-gradient(circle at 90% 10%,rgba(59,111,219,.18),transparent 24%),
    linear-gradient(135deg,#202a52 0%,#17203f 100%);
  box-shadow:0 12px 30px rgba(24,33,66,.16);
}

.topbar h1{
  font-size:25px;
  line-height:1.05;
  margin:0 0 6px;
  letter-spacing:-.035em;
}

.topbar p{
  margin:0;
  font-size:13px;
  opacity:.78;
}

.topbar .versionTag{
  display:inline-flex;
  margin-left:6px;
  vertical-align:middle;
  background:rgba(255,255,255,.12);
  color:#dce8ff;
  border:1px solid rgba(255,255,255,.12);
}

.headerActions{
  gap:8px;
}

.headerActions button,
.topbar button{
  min-height:42px;
  border-radius:11px;
  padding:0 15px;
  font-size:13px;
  font-weight:600;
  background:rgba(255,255,255,.085);
  border:1px solid rgba(255,255,255,.09);
}

.headerActions button:hover,
.topbar button:hover{
  background:rgba(255,255,255,.15);
  transform:translateY(-1px);
}

/* Dashboard grid */
.homeGrid{
  gap:18px;
  margin-top:18px;
}

.hero,
.summary,
.panel{
  border-radius:18px;
}

.hero,
.summary{
  padding:26px;
  min-height:0;
}

.hero{
  border-top:0;
  border-left:4px solid var(--opia-blue);
}

.summary{
  border-top:3px solid #dbe6f7;
}

.hero h2,
.summary h2,
.panel h2{
  margin-top:0;
  font-size:23px;
  letter-spacing:-.03em;
}

.hero p,
.summary p{
  line-height:1.5;
}

/* Closing status */
.statusBadge,
.progressBadge{
  padding:7px 11px;
  font-size:11px;
  font-weight:700;
}

.hero button{
  margin-top:12px;
  min-height:44px;
  padding:0 15px;
  border-radius:11px;
}

/* Disabled / unavailable action should still look intentional */
.hero button:disabled,
button:disabled{
  opacity:1;
  color:#7e879a;
  background:#edf1f7;
  border:1px solid #dde4ee;
  box-shadow:none;
  cursor:not-allowed;
}

/* Morning prep rows */
.summary ul,
.summary .prepList{
  margin-top:14px;
}

.summary li,
.prepRow{
  padding:11px 0;
  border-bottom:1px solid #e7ecf3;
}

.summary li:last-child,
.prepRow:last-child{
  border-bottom:0;
}

/* Recent completed section */
.recentCompleted,
.homeGrid + .panel{
  margin-top:18px;
}

.panel{
  padding:24px;
}

.panel .sectionHead{
  gap:16px;
}

/* Avoid giant empty cards */
.panel:has(.recentActivity),
.panel:has(.activityList){
  min-height:0;
}

.activityList,
.recentActivity{
  margin-top:12px;
}

.activityList>div,
.recentActivity>div{
  min-height:42px;
  padding:10px 0;
  border-bottom:1px solid #e7ecf3;
}

/* Tables and report areas */
.tableWrap{
  border-radius:14px;
  box-shadow:0 5px 16px rgba(31,43,82,.035);
}

.tableWrap th{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.035em;
}

.tableWrap td{
  color:#31384d;
}

/* Admin dashboard */
.adminStats{
  gap:12px;
}

.adminStats>div{
  border-radius:15px;
  padding:18px;
}

.adminStats strong,
.adminStats h3{
  font-size:23px;
  color:var(--opia-navy-deep);
}

.adminTabs{
  margin:16px 0;
  padding:5px;
  border-radius:13px;
  background:#e8eef7;
  width:max-content;
  max-width:100%;
}

.adminTabs button{
  min-height:40px;
  padding:0 14px;
  box-shadow:none!important;
}

.adminTabs button:not(.selected){
  border-color:transparent;
  background:transparent;
}

/* Current closing / alert cards */
.notice,
.closingControl{
  border-radius:14px;
}

.closingControl{
  background:linear-gradient(90deg,#fff 0%,#fbfdff 100%);
}

/* Visual consistency for secondary buttons */
.secondary,
.close,
.filters button:not(.selected),
.choices button:not(.selected){
  border-radius:10px;
  font-weight:600;
}

/* More branded active/focus treatment */
a:focus-visible,
button:focus-visible{
  outline:3px solid rgba(23,105,232,.18);
  outline-offset:2px;
}

/* Responsive cleanup */
@media(max-width:860px){
  .appShell,
  main:not(.authPage),
  .adminPage{
    padding-left:14px;
    padding-right:14px;
  }

  .topbar{
    margin-top:10px;
    padding:13px 14px;
    border-radius:14px;
  }

  .topbar h1{
    font-size:21px;
  }

  .homeGrid{
    grid-template-columns:1fr;
  }

  .hero,
  .summary,
  .panel{
    padding:20px;
  }

  .adminTabs{
    width:100%;
    overflow:auto;
  }
}

@media(max-width:560px){
  .topbar{
    display:block;
  }

  .headerActions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin-top:13px;
  }

  .headerActions button{
    width:100%;
  }

  .hero h2,
  .summary h2,
  .panel h2{
    font-size:20px;
  }

  .hero,
  .summary,
  .panel{
    border-radius:15px;
  }
}


/* =========================================================
   V1.4.1 — Mobile login restoration
   Keeps the refined signed-in theme from overriding the
   branded mobile authentication header.
   ========================================================= */

@media(max-width:860px){
  .authPage{
    display:block;
    min-height:100dvh;
    background:
      linear-gradient(
        180deg,
        #182142 0,
        #223064 225px,
        #f3f6fb 225px,
        #f3f6fb 100%
      ) !important;
  }

  .authLoginSide{
    min-height:100dvh;
    justify-content:flex-start;
    padding:
      max(26px,env(safe-area-inset-top))
      16px
      calc(24px + env(safe-area-inset-bottom));
  }

  .authMobileBrand{
    display:flex;
    min-height:155px;
    align-items:flex-start;
    padding-top:18px;
    color:#fff;
  }

  .authMobileBrand .authBrandName strong{
    color:#fff;
  }

  .authMobileBrand .authBrandName small{
    color:rgba(255,255,255,.64);
  }

  .authLoginSide .officialLogin{
    margin-top:0;
  }
}

@media(max-width:560px){
  .authMobileBrand{
    min-height:150px;
  }
}


/* Opia River reminder control */
.reminderPanel{
  margin:14px 0 16px;
  padding:18px;
  border:1px solid #dbe3ef;
  border-left:4px solid #1769e8;
  border-radius:14px;
  background:linear-gradient(90deg,#ffffff,#f9fbff);
}
.reminderIntro h3{margin:5px 0 3px;color:#17203f}
.reminderIntro p{margin:0;color:#70788c;font-size:13px}
.reminderForm{
  display:grid;
  grid-template-columns:minmax(210px,1fr) minmax(260px,1.5fr) auto;
  gap:10px;
  margin-top:14px;
}
.reminderForm select,.reminderForm input{min-height:44px}
.reminderForm button{
  min-height:44px;
  padding:0 16px;
  background:linear-gradient(180deg,#2b376a,#202a52);
  color:#fff;
  border-radius:10px;
}
@media(max-width:760px){
  .reminderForm{grid-template-columns:1fr}
  .reminderForm button{width:100%}
}


/* Immutable report amendments */
.reportModal{max-width:1180px}
.amendInfo{margin-top:12px;padding:11px 13px;border-left:3px solid #1769e8;border-radius:8px;background:#f4f8ff;color:#53617a;font-size:12px}
.amendedRow td{background:#fbfdff}
.amendedBadge{display:block;width:max-content;margin-top:5px;padding:3px 7px;border-radius:999px;background:#eaf2ff;color:#355f9f;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.amendmentHistory{margin-top:18px;padding:16px;border:1px solid #dbe3ef;border-radius:14px;background:#f8faff}
.amendmentHistory h3{margin:0}.amendmentHistory>p{margin:3px 0 12px;font-size:12px;color:#7a8395}
.amendmentHistory article{padding:12px 0;border-top:1px solid #e3e9f2}.amendmentHistory article:first-of-type{border-top:0}
.amendmentHistory article>div{display:flex;justify-content:space-between;gap:12px}.amendmentHistory article p{margin:6px 0;color:#46516b;font-size:12px}.amendmentHistory article small{color:#7c8597}
.amendmentEditor{position:sticky;bottom:0;margin-top:18px;padding:18px;border:1px solid #cfd9e9;border-radius:16px;background:#fff;box-shadow:0 -10px 30px rgba(26,38,75,.10)}
.amendmentEditor .modalhead{margin-bottom:12px}.amendmentEditor h3{margin:4px 0}.amendmentEditor label{display:grid;gap:6px;margin-top:10px;color:#505a70;font-size:12px;font-weight:600}.amendmentEditor textarea{min-height:76px}.amendmentCheck{display:flex!important;align-items:center!important;grid-column:1/-1}.requiredMark{color:#9d3733;font-size:10px;text-transform:uppercase}.amendActions{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}.amendActions button{min-height:42px}
@media(max-width:700px){.amendmentHistory article>div{display:block}.amendmentHistory article>div small{display:block;margin-top:3px}.amendmentEditor{position:static}.reportModal{max-width:100%}}


/* =========================================================
   V1.5 — Independent Cleaning workflow
   ========================================================= */
.cleaningHero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;padding:24px 26px;border-radius:18px;background:linear-gradient(135deg,#fff,#f7faff);border:1px solid var(--opia-border);border-left:4px solid var(--opia-blue);box-shadow:0 8px 24px rgba(30,43,82,.055)}
.cleaningHero h2{font-size:29px;margin:5px 0}.cleaningHero p{margin:0}.cleaningTabs{display:flex;gap:7px;padding:5px;margin:0 0 14px;width:max-content;max-width:100%;overflow:auto;border-radius:13px;background:#e5ecf6}.cleaningTabs button{white-space:nowrap;background:transparent;color:#46506b;box-shadow:none}.cleaningTabs button.selected{background:var(--opia-navy);color:#fff}.cleaningToday{margin-top:0}.cleaningProgress{height:10px;margin:14px 0 20px}.cleaningTaskGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cleaningTask{display:flex;flex-direction:column;gap:13px;padding:18px;border:1px solid var(--opia-border);border-radius:15px;background:#fff;box-shadow:0 4px 13px rgba(31,43,82,.035)}.cleaningTask.done{background:#f8fbfa;border-color:#d7e7de}.cleaningTaskTop{display:flex;align-items:flex-start;gap:12px}.cleaningTask h3{margin:1px 0 3px;font-size:16px}.cleaningTask p{margin:0;font-size:12px}.cleanCheck{width:32px;height:32px;flex:0 0 32px;border-radius:10px;display:grid;place-items:center;background:#edf2fa;color:#66728d;font-size:11px;font-weight:800}.cleanCheck.complete{background:#e3f2e9;color:#2f6a50}.cleaningMeta{margin-top:auto;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:10px;color:#7c8495}.cleaningTask>button{align-self:flex-start;background:var(--opia-navy);color:#fff}.cleaningCompletedActions{display:flex;justify-content:space-between;align-items:end;gap:10px}.cleaningCompletedActions p{font-style:italic}.cleaningEmpty{text-align:center;padding:40px 20px;background:#f7f9fd;border-radius:14px}.cleaningCompleteModal{width:min(560px,100%)}.cleaningPhotoPicker{display:flex;flex-direction:column;gap:7px;margin:15px 0;padding:18px;border:1.5px dashed #9bb5df;border-radius:13px;background:#f7faff}.cleaningPhotoPicker>span{font-weight:700;color:#29426f}.cleaningPhotoPicker input{padding:9px;background:#fff}.cleaningPrivacy{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:11px;background:#eef4ff;color:#56627b;font-size:11px}.cleaningHistoryRun{padding:18px 0;border-bottom:1px solid var(--opia-border)}.cleaningHistoryTasks>div{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 0;border-top:1px solid #e9edf4}.cleaningHistoryTasks>div>div{display:flex;flex-direction:column;gap:3px}.cleaningHistoryTasks small{color:#7b8496}.cleaningNote{font-size:11px;color:#646f84;font-style:italic}.cleaningStatsGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 24px}.cleaningStatsGrid article{padding:18px;border:1px solid var(--opia-border);border-radius:14px;background:#f9fbff}.cleaningStatsGrid strong{display:block;color:var(--opia-blue);font-size:30px}.cleaningStatsGrid h3{margin:3px 0}.cleaningStatsGrid p{font-size:11px}.cleaningSetupDays{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.cleaningSetupDays>section{padding:16px;border:1px solid var(--opia-border);border-radius:14px;background:#fafcff}.cleaningSetupDays h3{margin:0 0 8px}.cleaningSetupRow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid #e7ecf3}.cleaningSetupRow>div{display:flex;flex-direction:column}.cleaningSetupRow small{color:#788195}.cleaningSetupRow.inactive{opacity:.5}.cleaningPhotoModal{width:min(850px,96vw)}.cleaningPhotoModal img{display:block;width:100%;max-height:72vh;object-fit:contain;border-radius:12px;background:#111827}.photoLoading{position:fixed;right:20px;bottom:20px;z-index:60;padding:10px 14px;border-radius:10px;background:var(--opia-navy);color:#fff;box-shadow:0 8px 24px #0002}.cleaningHomeCard{border-left:4px solid var(--opia-blue)}
@media(max-width:760px){.cleaningHero{align-items:flex-start;flex-direction:column}.cleaningTaskGrid,.cleaningStatsGrid,.cleaningSetupDays{grid-template-columns:1fr}.cleaningHistoryTasks>div{align-items:flex-start;flex-direction:column}.cleaningCompletedActions{align-items:flex-start;flex-direction:column}.cleaningTask>button{width:100%}.cleaningHero button{width:100%}.cleaningTabs{width:100%}}


/* Date-range spreadsheet export */
.exportRangeCard{
  margin:14px 0 18px;
  padding:18px;
  border:1px solid #dbe3ef;
  border-left:4px solid #1769e8;
  border-radius:14px;
  background:linear-gradient(90deg,#fff,#f9fbff);
}
.exportRangeCard h3{margin:5px 0 4px;color:#17203f}
.exportRangeCard p{margin:0;color:#70788c;font-size:13px}
.exportRangeControls{
  display:grid;
  grid-template-columns:minmax(170px,220px) minmax(170px,220px) auto;
  gap:10px;
  align-items:end;
  margin-top:14px;
}
.exportRangeControls label{display:grid;gap:5px}
.exportRangeControls label span{font-size:11px;font-weight:700;color:#59637a;text-transform:uppercase;letter-spacing:.04em}
.exportRangeControls input,.exportRangeControls button{min-height:44px}
.exportRangeControls button{
  padding:0 18px;
  border-radius:10px;
  background:linear-gradient(180deg,#2b376a,#202a52);
  color:#fff;
}
.exportPresets{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:11px}
.exportPresets>span{font-size:12px;color:#7c8496}
@media(max-width:760px){
  .exportRangeControls{grid-template-columns:1fr}
  .exportRangeControls button{width:100%}
}


/* Phase 2 — visual operations status board */
.homeQuickGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.statusHomeCard{border-top:3px solid #1769e8}
.statusPage{min-height:100vh}
.statusHero{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin:18px 0;padding:24px 26px;border-radius:18px;background:linear-gradient(125deg,#17203f,#24356d);color:#fff;box-shadow:0 16px 36px rgba(27,42,82,.16)}
.statusHero h1{margin:5px 0 4px;font-size:34px;letter-spacing:-.035em}
.statusHero p{margin:0;color:#cbd6f2}
.statusHeroActions{display:flex;gap:9px;align-items:center}
.statusHero .secondary{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff}
.livePill{display:flex;align-items:center;gap:7px;padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.1);font-size:12px;font-weight:700}
.livePill i{width:8px;height:8px;border-radius:50%;background:#6ee7a7;box-shadow:0 0 0 4px rgba(110,231,167,.13)}
.statusMetricGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.statusMetricGrid article{background:#fff;border:1px solid #dce4f0;border-radius:15px;padding:17px;box-shadow:0 7px 20px rgba(31,45,83,.05)}
.statusMetricGrid span,.statusMetricGrid small{display:block;color:#788197}
.statusMetricGrid span{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.statusMetricGrid strong{display:block;margin:7px 0 3px;font-size:28px;color:#17203f}
.statusMetricGrid .statusWord{font-size:21px}
.statusMetricGrid small{font-size:12px}
.statusColumns{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}
.statusPanel,.artistPanel{min-height:360px}
.statusFeed{display:grid}
.statusFeedRow{display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;padding:12px 0;border-bottom:1px solid #e8edf5}
.statusIcon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eaf2ff;color:#1769e8;font-weight:800}
.statusIcon.closing{background:#eef0f8;color:#202a52}
.statusFeedMain{display:grid;gap:2px}
.statusFeedMain strong{color:#1e2747}.statusFeedMain span{font-size:13px}.statusFeedMain small,.statusFeedRow time{color:#8790a3;font-size:11px}
.statusEmpty{padding:30px 4px;color:#7d8699}
.artistWinner{display:flex;align-items:center;gap:14px;padding:17px;border-radius:14px;background:linear-gradient(120deg,#edf4ff,#f8faff);border:1px solid #dce7f7}
.artistAvatar{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:linear-gradient(145deg,#2d77ef,#1d4fb4);color:#fff;font-size:18px;font-weight:800}
.artistWinner div:last-child{display:grid;gap:4px}.artistWinner strong{font-size:18px;color:#17203f}.artistWinner span{font-size:12px;color:#727c91}
.artistGallery{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:12px}
.artistGallery button{text-align:left;display:grid;gap:4px;min-height:90px;padding:13px;border:1px solid #dce4f0;background:#fff;color:#202a52}
.artistGallery button span{font-size:10px;color:#1769e8;text-transform:uppercase;font-weight:800;letter-spacing:.05em}.artistGallery button small{color:#8a92a4}
.statusProgressPanel{margin-top:14px}
.statusTaskList{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.statusTask{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:8px;padding:12px;border-radius:12px;border:1px solid #e1e7f0;background:#fff}
.statusTask.done{background:#f6fbf8;border-color:#d7eadf}.statusTask.pending{background:#fafbfe}
.statusTask .taskState{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#edf2fb;color:#7b8598;font-weight:800}.statusTask.done .taskState{background:#e0f3e7;color:#23724a}
.statusTask div{display:grid;gap:3px}.statusTask strong{font-size:13px;color:#202844}.statusTask small{font-size:11px;color:#818a9e}
.statusFooter{text-align:center;padding:24px;color:#9aa2b2;font-size:11px}
@media(max-width:900px){.statusMetricGrid{grid-template-columns:repeat(2,1fr)}.statusColumns,.homeQuickGrid{grid-template-columns:1fr}}
@media(max-width:620px){.statusHero{align-items:flex-start;flex-direction:column;padding:20px}.statusHero h1{font-size:29px}.statusMetricGrid{grid-template-columns:1fr 1fr}.statusTaskList{grid-template-columns:1fr}.statusFeedRow{grid-template-columns:34px 1fr}.statusFeedRow time{grid-column:2}.artistGallery{grid-template-columns:1fr}}


/* Phase 2.1 — status spotlight, detailed closing and personal gallery */
.statusSpotlight{display:grid;grid-template-columns:1.35fr .65fr;gap:14px;margin-bottom:14px}
.spotlightMain,.closingStatusCard{border:1px solid #dce4f0;border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(31,45,83,.055)}
.spotlightMain{display:grid;grid-template-columns:1fr minmax(260px,42%);min-height:300px;overflow:hidden}
.spotlightCopy{padding:28px;align-self:center}.spotlightCopy h2{font-size:30px;line-height:1.12;margin:7px 0 12px;letter-spacing:-.035em}.spotlightCopy p{margin:5px 0;color:#737c90}.spotlightCopy p strong{color:#202a52}
.spotlightVisual{min-height:300px;background:linear-gradient(145deg,#1a2448,#2a3a73);display:grid;place-items:center;overflow:hidden}
.spotlightVisual.hasPhoto{background:#11182f}.spotlightVisual img{width:100%;height:100%;object-fit:cover;min-height:300px}
.spotlightPlaceholder{display:grid;place-items:center;gap:8px;color:#fff}.spotlightPlaceholder span{display:grid;place-items:center;width:72px;height:72px;border-radius:22px;background:#1769e8;font-size:23px;font-weight:800;box-shadow:0 14px 30px rgba(0,0,0,.18)}.spotlightPlaceholder small{color:#c6d2ef}
.closingStatusCard{padding:24px}.closingStatusCard h2{font-size:28px;margin:7px 0 15px}.closingStatusCard>strong{display:block;margin:9px 0;color:#202a52}.closingStatusCard p{margin:6px 0;color:#727c90}
.closingProgressBar{height:10px;border-radius:999px;background:#e7ecf4;overflow:hidden}.closingProgressBar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1769e8,#557ee0)}
.closingLastItem{display:grid;gap:4px;margin-top:18px;padding:14px;border-radius:12px;background:#f4f7fc;border:1px solid #e0e6f0}.closingLastItem small{color:#7f899c;text-transform:uppercase;font-size:9px;font-weight:800;letter-spacing:.06em}.closingLastItem b{color:#202a52}.closingLastItem span{font-size:11px;color:#7f899c}
.galleryEmpty{margin-top:13px;padding:20px;border:1px dashed #cdd8e8;border-radius:12px;color:#7f899d;text-align:center;font-size:12px}
.personalStatusCard{margin-top:14px}.personalEmpty{display:flex;align-items:center;gap:16px;padding:22px;border-radius:14px;background:#f7f9fd;border:1px dashed #cfd9e8}.emptyGalleryMark{display:grid;place-items:center;width:50px;height:50px;flex:0 0 50px;border-radius:16px;background:#eaf2ff;color:#1769e8;font-size:26px}.personalEmpty strong{color:#202a52}.personalEmpty p{margin:5px 0 0}
.personalStats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.personalStats>div{display:grid;gap:4px;padding:17px;border-radius:13px;background:#f8faff;border:1px solid #e0e7f1}.personalStats strong{font-size:25px;color:#17203f}.personalStats span{font-size:11px;color:#7f899b}
.statusIcon.closing_item{background:#edf0fa;color:#253566}
@media(max-width:940px){.statusSpotlight{grid-template-columns:1fr}.spotlightMain{grid-template-columns:1fr minmax(220px,38%)}}
@media(max-width:700px){.spotlightMain{grid-template-columns:1fr}.spotlightVisual{min-height:230px}.spotlightVisual img{min-height:230px}.personalStats{grid-template-columns:repeat(2,1fr)}}


/* Phase 3 — Scheduling foundation */
.scheduleHero{margin:18px 0;padding:24px 26px;border-radius:18px;background:linear-gradient(125deg,#17203f,#27396f);color:#fff;box-shadow:0 14px 32px rgba(26,39,78,.15)}
.scheduleHero h1{color:#fff;margin:5px 0 4px;font-size:32px}.scheduleHero p{color:#cbd5ee;margin:0}
.scheduleTabs{margin-bottom:14px}.scheduleEmpty{padding:26px 4px;color:#7b8497}.scheduleEmpty strong{display:block;color:#3d4861;margin-bottom:5px}
.myShiftList{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.myShiftCard{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px;border:1px solid #dfe6ef;border-radius:13px;background:#fafcff}.myShiftCard>div{display:grid;gap:3px}.myShiftCard span,.myShiftCard small{font-size:11px;color:#7d8799}.myShiftCard strong{color:#202a52;font-size:17px}
.offeredMine{margin-top:20px}.offeredMine>div{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #e6ebf2}.offeredMine small{color:#7e8798}
.availabilityGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.availabilityDay{padding:14px;border:1px solid #dce4ef;border-radius:12px;background:#fff}.availabilityDay.unavailable{background:#f6f7fa}.availabilityTop{display:flex;justify-content:space-between;gap:12px;align-items:center}.availabilityTop label{font-size:11px;color:#6e788b}.availabilityTimes{display:grid;grid-template-columns:1fr auto 1fr;gap:7px;align-items:center;margin:10px 0}.availabilityDay>input{margin-top:9px}
.exceptionForm{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:13px}.exceptionForm label{display:flex;align-items:center;gap:6px;font-size:12px}.exceptionForm input{min-height:42px}.exceptionList{margin-top:14px}.exceptionList>div{display:grid;grid-template-columns:150px 100px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #e7ecf3}.exceptionList small{color:#7e8798}
.openShiftGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.openShiftCard{display:grid;gap:5px;padding:16px;border:1px solid #dce4ef;border-radius:14px;background:#fff}.openShiftCard>span,.openShiftCard>small{font-size:11px;color:#7d8798}.openShiftCard>strong{font-size:18px;color:#202a52}.openShiftCard p{font-size:12px}.openShiftCard.hasConflict{background:#fff9ef;border-color:#ead5aa}.conflictBadge{padding:8px;border-radius:8px;background:#fff0d4;color:#8b631d;font-size:11px;font-weight:700}
.weekControls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.scheduleState{padding:7px 10px;border-radius:999px;background:#eef2f8;color:#5c6680;font-size:11px;font-weight:800;text-transform:uppercase}.scheduleState.published{background:#e5f4eb;color:#2f6a50}
.managerPeople{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:12px 0;padding:10px 12px;border-radius:11px;background:#f6f8fc}.managerPeople strong{font-size:11px;color:#4b5670;margin-right:5px}.managerPeople span{font-size:10px;color:#68738a;padding:5px 8px;border-radius:999px;background:#fff;border:1px solid #e0e6ef}
.shiftCreateForm{display:grid;grid-template-columns:1.2fr 1fr 1fr .8fr .8fr 1.4fr auto;gap:8px;margin:13px 0 18px}.shiftCreateForm>*{min-width:0;min-height:42px}
.managerShiftTable select{min-width:110px}.requestList{display:grid;gap:9px}.requestList article{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:14px;border:1px solid #e0e6ef;border-radius:12px}.requestList article>div:first-child{display:grid;gap:3px}.requestList span,.requestList small{font-size:11px;color:#798398}.requestList p{margin:3px 0;font-size:12px}.requestList article>div:last-child{display:flex;gap:8px}
.scheduleExport{display:grid;grid-template-columns:200px 200px auto;gap:10px;align-items:end}.scheduleExport label{display:grid;gap:5px;font-size:11px;font-weight:700;color:#5b657b}.scheduleExport input,.scheduleExport button{min-height:44px}
.scheduleHomeCard{border-top:3px solid #557ee0}
@media(max-width:1000px){.shiftCreateForm{grid-template-columns:repeat(3,1fr)}.openShiftGrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.myShiftList,.availabilityGrid,.openShiftGrid{grid-template-columns:1fr}.myShiftCard{align-items:flex-start}.exceptionList>div{grid-template-columns:1fr auto}.exceptionList small{grid-column:1/-1}.shiftCreateForm{grid-template-columns:1fr}.scheduleExport{grid-template-columns:1fr}.requestList article{display:grid}.weekControls{width:100%}.offeredMine>div{grid-template-columns:1fr auto}}

/* Experience-based Status: individual progression, never employee ranking */
.experienceIntroPanel{min-height:360px}
.experiencePath{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:14px 0}
.experiencePath>div{display:flex;align-items:center;gap:8px;padding:12px;border:1px solid #dce4f0;border-radius:12px;background:#f8faff}
.experiencePath span{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:#eaf2ff;color:#1769e8;font-size:11px;font-weight:800}
.experiencePath strong{font-size:12px;color:#202a52}
.skillGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.skillCard{padding:16px;border:1px solid #dce4f0;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(23,32,63,.04)}
.skillTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.skillTop small{text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#7c879b;font-size:9px}
.skillTop h3{margin:3px 0 0;color:#17203f;font-size:15px;line-height:1.25}
.skillBadge{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#edf3ff;color:#2458b8;border:1px solid #d8e4fb;font-size:10px;font-weight:900;letter-spacing:.03em}
.skillCount{display:flex;align-items:baseline;gap:7px;margin:15px 0 8px}.skillCount strong{font-size:25px;color:#17203f}.skillCount span{font-size:11px;color:#7f899b}
.skillBar{height:7px;border-radius:999px;background:#edf1f7;overflow:hidden}.skillBar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2b5fbf,#557ee0)}
.skillMeta{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-size:10px;color:#7f899b}
@media(max-width:700px){.skillGrid{grid-template-columns:1fr}.experiencePath{grid-template-columns:repeat(2,1fr)}}

/* Opia River Technical Analytics */
.technicalMetricGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.technicalMetricGrid>div{display:grid;gap:4px;padding:16px;border:1px solid #dce4ef;border-radius:13px;background:#f8faff}
.technicalMetricGrid strong{font-size:25px;color:#17203f}.technicalMetricGrid span{font-size:11px;color:#7c8699}
.technicalRows{display:grid}.technicalRows>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #e7ecf3}.technicalRows strong{font-size:12px;color:#202a52}.technicalRows span{font-size:11px;color:#7d8798}
.technicalInvestigate{display:grid;grid-template-columns:1fr auto;gap:9px;margin:12px 0}.technicalInvestigate input{min-height:44px}
@media(max-width:760px){.technicalMetricGrid{grid-template-columns:repeat(2,1fr)}.technicalInvestigate{grid-template-columns:1fr}}

/* =========================================================
   Public Opia River website — navy / white launch theme
   ========================================================= */
.publicSite{min-height:100vh;background:#f7f9fd;color:#0b1b4a;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.publicNav{position:sticky;top:0;z-index:90;height:88px;display:grid;grid-template-columns:minmax(280px,1fr) auto minmax(190px,.45fr);align-items:center;padding:0 clamp(28px,5.5vw,92px);background:rgba(249,251,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid #dce4f0;box-shadow:0 8px 28px #13244b0a}
.publicBrand{display:flex;align-items:center;gap:14px;width:max-content;padding:0;background:transparent!important;color:#101f48!important;border:0!important;box-shadow:none!important;text-align:left}
.publicLogo{display:grid;place-items:center;width:54px;height:54px;border-radius:13px;background:linear-gradient(145deg,#101d43,#0a1738);color:#fff;font-weight:900;font-size:16px;box-shadow:0 8px 22px #07163d22}
.publicBrand>span:last-child{display:grid;gap:1px}.publicBrand strong{font-size:19px;letter-spacing:.11em;color:#101f48}.publicBrand small{font-size:13px;color:#7887a2;letter-spacing:.02em}
.publicLinks{display:flex;align-items:center;gap:clamp(18px,2.7vw,46px)}
.publicLinks button{min-height:42px;padding:7px 2px;background:transparent!important;border:0!important;border-radius:0!important;color:#465673!important;font-weight:760;font-size:14px;box-shadow:none!important;position:relative}
.publicLinks button:after{content:"";position:absolute;left:0;right:0;bottom:1px;height:2px;transform:scaleX(0);background:#4b83ff;transition:.2s}.publicLinks button:hover:after,.publicLinks button.active:after{transform:scaleX(1)}
.publicLoginBtn{justify-self:end;min-height:50px!important;padding:0 24px!important;border:1px solid #4f84ff!important;border-radius:12px!important;background:linear-gradient(135deg,#1b5de4,#236ee9)!important;color:#fff!important;font-weight:800!important;box-shadow:0 10px 26px #001c5e3d!important}
.publicMain{max-width:none!important;padding:0!important;margin:0!important}
.publicHero{min-height:700px;display:grid;grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);align-items:center;gap:clamp(52px,6vw,105px);padding:92px clamp(36px,7vw,112px) 88px;background:linear-gradient(180deg,#f9fbff 0%,#f5f8fd 100%);border-bottom:1px solid #dce4f0}
.publicHeroCopy{max-width:670px}.publicEyebrow{display:block;color:#1760dc;font-weight:900;font-size:12px;letter-spacing:.14em;margin-bottom:20px}.publicHero h1{margin:0;color:#081a4a;font-size:clamp(48px,4.55vw,74px);line-height:.99;letter-spacing:-.055em;font-weight:860}.publicHeroCopy>p{max-width:650px;margin:30px 0 0;color:#60708d;font-size:19px;line-height:1.72}
.publicHeroActions{display:flex;gap:12px;margin-top:32px}.publicPrimary,.publicSecondary{display:inline-flex;align-items:center;justify-content:center;min-height:50px;border-radius:10px!important;padding:0 22px!important;text-decoration:none;font-weight:800!important}.publicPrimary{background:linear-gradient(135deg,#1556d2,#2471f0)!important;color:#fff!important;border:1px solid #2b70e9!important;box-shadow:0 10px 24px #124bac20!important}.publicSecondary{background:#fff!important;color:#10234f!important;border:1px solid #ccd8ec!important;box-shadow:none!important}.publicTrustMini{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;color:#4d6080;font-size:12px;font-weight:800}.publicTrustMini span{white-space:nowrap;display:inline-flex;align-items:center;gap:10px}.publicTrustMini span:not(:last-child)::after{content:"·";color:#175fe1}
.publicOperationsCard{justify-self:end;width:min(100%,690px);min-height:470px;padding:28px;border-radius:27px;background:linear-gradient(150deg,#111d43 0%,#172650 54%,#111d43 100%);box-shadow:0 30px 62px #12234e20,0 4px 10px #07184218;transform:none!important;rotate:0deg!important;margin-right:0}
.publicCardHead{display:flex;justify-content:space-between;align-items:center;color:#fff;font-size:12px;letter-spacing:.04em;margin:0 5px 20px}.publicCardHead span{display:flex;align-items:center;gap:8px;color:#e8effe;font-weight:800}.publicCardHead i{width:9px;height:9px;border-radius:50%;background:#21d88b;box-shadow:0 0 0 4px #21d88b18}
.publicCardGrid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.publicCardGrid article{min-height:183px;padding:26px 22px 22px;border-radius:16px;background:linear-gradient(180deg,#fff,#f9fbff);box-shadow:inset 0 0 0 1px #fff,0 8px 24px #00133816}.publicCardGrid small{display:block;color:#174cb0;font-size:10px;font-weight:900;letter-spacing:.055em;margin:7px 0 20px}.publicCardGrid h3{margin:0 0 8px;color:#081a49;font-size:27px;letter-spacing:-.035em}.publicCardGrid p{margin:0;color:#6e7c96;font-size:13px}.publicIcon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#124fbf,#176ee8);color:#fff;font-size:20px}
.publicNavyBand{display:grid;grid-template-columns:repeat(4,1fr);padding:30px clamp(44px,7vw,112px);background:linear-gradient(105deg,#041942,#06265c 55%,#041b49);color:#fff}.publicNavyBand article{display:flex;align-items:flex-start;gap:18px;min-height:94px;padding:12px 30px;border-right:1px solid #ffffff18}.publicNavyBand article:last-child{border-right:0}.publicNavyBand>b{}.publicNavyBand article>b{color:#2773ff;font-size:32px;line-height:1}.publicNavyBand h3{margin:0 0 7px;font-size:14px}.publicNavyBand p{margin:0;color:#aebbd4;font-size:12px;line-height:1.65}
.publicDetailSection,.publicSecuritySection,.publicContactSection{scroll-margin-top:88px;padding:92px clamp(40px,7vw,112px)}.publicDetailSection{background:#fff}.publicSectionIntro{max-width:760px;margin-bottom:38px}.publicSectionIntro h2,.publicSecuritySection h2,.publicContactSection h2{margin:0 0 16px;color:#081a49;font-size:clamp(34px,3vw,50px);letter-spacing:-.04em;line-height:1.05}.publicSectionIntro p,.publicSecuritySection>div:first-child p,.publicContactSection p{color:#657490;font-size:17px;line-height:1.7;max-width:780px}.publicDetailGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.publicDetailGrid article{padding:25px;border:1px solid #dce5f2;border-radius:17px;background:#f9fbff}.publicDetailGrid span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#eaf2ff;color:#1659ce;font-weight:900;font-size:11px}.publicDetailGrid h3{margin:22px 0 9px;color:#112654}.publicDetailGrid p{margin:0;color:#6b7891;line-height:1.6;font-size:13px}
.publicSecuritySection{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;background:#eef3fb}.publicSecurityCards{display:grid;gap:10px}.publicSecurityCards article{padding:22px 24px;border:1px solid #d5e0f0;border-radius:14px;background:#fff}.publicSecurityCards b{color:#102554}.publicSecurityCards p{margin:6px 0 0;color:#6b7891;line-height:1.6}
.publicContactSection{display:flex;justify-content:space-between;align-items:end;gap:40px;background:#fff}.publicMailLink{flex:0 0 auto}.publicFooter{display:flex;justify-content:space-between;align-items:center;padding:28px clamp(40px,7vw,112px);background:#06183e;color:#c6d1e7;font-size:12px}.publicFooter>div{display:flex;gap:10px;align-items:baseline}.publicFooter strong{color:#fff;letter-spacing:.12em}.publicFooter span{color:#a9b6d0}

@media(max-width:1050px){.publicNav{grid-template-columns:1fr auto;height:auto;min-height:78px;padding:12px 24px}.publicLinks{grid-row:2;grid-column:1/-1;justify-content:center;gap:25px;padding-top:8px}.publicLoginBtn{grid-column:2;grid-row:1}.publicHero{grid-template-columns:1fr;padding:72px 48px}.publicHeroCopy{max-width:760px}.publicOperationsCard{width:min(100%,760px)}.publicDetailGrid{grid-template-columns:1fr 1fr}.publicNavyBand{grid-template-columns:1fr 1fr}.publicNavyBand article:nth-child(2){border-right:0}.publicSecuritySection{grid-template-columns:1fr}}
@media(max-width:700px){.publicNav{display:flex;flex-wrap:wrap;gap:10px;padding:10px 14px}.publicBrand{flex:1}.publicLogo{width:43px;height:43px}.publicBrand strong{font-size:14px}.publicBrand small{font-size:10px}.publicLoginBtn{min-height:43px!important;padding:0 13px!important;font-size:12px!important}.publicLinks{order:3;width:100%;justify-content:flex-start;overflow-x:auto;gap:19px;padding:2px 0 0}.publicLinks button{flex:0 0 auto;font-size:12px}.publicHero{min-height:auto;padding:54px 20px 48px;gap:38px}.publicHero h1{font-size:45px}.publicHeroCopy>p{font-size:16px}.publicHeroActions{display:grid}.publicTrustMini{gap:10px;display:flex}.publicOperationsCard{padding:17px;border-radius:20px}.publicCardGrid{gap:9px}.publicCardGrid article{min-height:150px;padding:16px 13px}.publicCardGrid h3{font-size:20px}.publicCardGrid small{margin-bottom:12px}.publicIcon{width:34px;height:34px;font-size:15px}.publicNavyBand{grid-template-columns:1fr;padding:22px 18px}.publicNavyBand article{border-right:0;border-bottom:1px solid #ffffff18;padding:17px 8px}.publicNavyBand article:last-child{border-bottom:0}.publicDetailSection,.publicSecuritySection,.publicContactSection{padding:62px 20px}.publicDetailGrid{grid-template-columns:1fr}.publicContactSection{display:grid;align-items:start}.publicFooter{padding:24px 20px;display:grid;gap:12px}
}

/* Final public-site alignment: keep the operations preview straight and visually anchored right. */
@media(min-width:1051px){
  .publicHero{grid-template-columns:minmax(0,.94fr) minmax(540px,1.06fr)}
  .publicOperationsCard{justify-self:end;align-self:center;transform:none!important;rotate:0deg!important}
}
.publicLinks button:hover,.publicLinks button.active{color:#102554!important}

/* =========================================================
   V1.5.2 — Brand consistency fix
   Previous override contained escaped newlines and was not
   being parsed by the browser. These are real CSS rules.
   ========================================================= */
:root{
  --opia-brand-navy:#202a52;
  --opia-brand-navy-deep:#17203f;
  --opia-brand-navy-hover:#2b376a;
}

/* One OR badge treatment everywhere */
.opiaLogo,
.publicLogo{
  background:linear-gradient(180deg,#202a52 0%,#17203f 100%) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.12) !important;
  box-shadow:0 10px 24px rgba(23,32,63,.20), inset 0 1px 0 rgba(255,255,255,.12) !important;
}

.opiaLogo span,
.publicLogo{
  color:#fff !important;
}

/* Keep the sign-in button as the brand-color reference */
.authLoginSide .officialLogin button[type="submit"],
.authLoginSide .officialLogin .authSignIn{
  background:linear-gradient(180deg,#202a52 0%,#17203f 100%) !important;
  border-color:#202a52 !important;
  color:#fff !important;
  box-shadow:0 10px 22px rgba(23,32,63,.18) !important;
}

.authLoginSide .officialLogin button[type="submit"]:hover,
.authLoginSide .officialLogin .authSignIn:hover{
  background:linear-gradient(180deg,#2b376a 0%,#202a52 100%) !important;
}

/* Public-site primary actions use exactly the same navy */
.publicLoginBtn,
.publicPrimary{
  background:linear-gradient(180deg,#202a52 0%,#17203f 100%) !important;
  border-color:#202a52 !important;
  color:#fff !important;
}

.publicLoginBtn:hover,
.publicPrimary:hover{
  background:linear-gradient(180deg,#2b376a 0%,#202a52 100%) !important;
}

/* Make Back to Opia River clearly visible over the dark brand panel */

/* Brand-panel eyebrow is light blue; login-card eyebrow stays blue */
.authBrandPanel .authEyebrow{
  color:#9fc3ff !important;
}
.authLoginSide .authEyebrow{
  color:#2866d6 !important;
}

/* Checkbox follows the same navy */
.authLoginSide input[type="checkbox"]{
  accent-color:#202a52 !important;
}

/* Mobile signed-out header uses the same navy family */
@media(max-width:860px){
  .authPage{
    background:
      linear-gradient(
        180deg,
        #17203f 0px,
        #202a52 225px,
        #f3f6fb 225px,
        #f3f6fb 100%
      ) !important;
  }
  
}


/* Mobile navigation refinement */
.mobileMore { display: none; }
.navPrimary { display: inline-flex; }
.desktopOnly { display: inline-flex; }

@media (max-width: 720px) {
  .topbar {
    padding: 16px 18px;
  }

  .topbar h1 {
    font-size: 1.55rem;
    line-height: 1.05;
  }

  .topbar p {
    margin-top: 6px;
  }

  .headerActions {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
    padding: 8px max(8px, env(safe-area-inset-right))
             calc(8px + env(safe-area-inset-bottom))
             max(8px, env(safe-area-inset-left));
    background: #202b58;
    border-top: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 -8px 24px rgba(20,31,66,.12);
  }

  .headerActions .navPrimary,
  .mobileMore > summary {
    min-width: 0;
    min-height: 48px;
    padding: 8px 4px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 14px;
    background: rgba(255,255,255,.08);
    color: #fff;
    font: inherit;
    font-size: .82rem;
    line-height: 1.1;
    text-align: center;
    align-items: center;
    justify-content: center;
    white-space: normal;
  }

  .desktopOnly { display: none !important; }

  .mobileMore {
    display: block;
    position: relative;
  }

  .mobileMore > summary {
    display: flex;
    list-style: none;
    cursor: pointer;
    height: 100%;
  }

  .mobileMore > summary::-webkit-details-marker { display: none; }

  .mobileMoreMenu {
    position: absolute;
    right: 0;
    bottom: calc(100% + 12px);
    width: 190px;
    padding: 8px;
    border: 1px solid #dce3f0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(20,31,66,.18);
  }

  .mobileMoreMenu button {
    width: 100%;
    display: block;
    padding: 12px 14px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #17213f;
    text-align: left;
    font: inherit;
  }

  .mobileMoreMenu button:hover,
  .mobileMoreMenu button:focus {
    background: #f1f5fb;
  }

  body {
    padding-bottom: calc(82px + env(safe-area-inset-bottom));
  }

  /* Let the closing CTA wrap cleanly instead of crowding the status pill. */
  .homeHeroActions,
  .closingActions {
    flex-wrap: wrap;
  }
}


/* =========================================================
   V1.6 — Responsive / mobile interaction hardening
   ========================================================= */

/* Prevent accidental page-level horizontal overflow at all widths. */
html, body, #root {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

main,
.panel,
.summary,
.notice,
.dashboardGrid,
.statusPage,
.cleaningPage {
  min-width: 0;
}

img, video, canvas, svg {
  max-width: 100%;
}

/* Better touch behavior without changing desktop controls. */
button, a, input, select, textarea, summary {
  touch-action: manipulation;
}

/* Tablets: do not force the public hero into two oversized columns. */
@media (max-width: 1100px) {
  .publicNav {
    grid-template-columns: minmax(220px,1fr) auto;
    height: auto;
    min-height: 82px;
    row-gap: 8px;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .publicLinks {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: center;
    flex-wrap: wrap;
  }

  .publicHero {
    grid-template-columns: 1fr;
    min-height: auto;
    gap: 48px;
    padding-top: 68px;
  }

  .publicHeroCopy {
    max-width: 760px;
  }

  .publicOperationsCard {
    justify-self: center !important;
    width: min(100%, 760px) !important;
  }

  .publicDetailGrid {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }

  .statusSpotlight,
  .statusColumns {
    grid-template-columns: 1fr;
  }

  .statusMetricGrid {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 720px) {
  /* iOS: 16px inputs avoid focus zoom and make keyboard entry feel more immediate. */
  input,
  textarea,
  select {
    font-size: 16px !important;
  }

  input,
  textarea,
  select,
  button {
    max-width: 100%;
  }

  /* The fixed mobile nav was above dialogs. Dialogs now own the foreground. */
  .modalback {
    z-index: 2200 !important;
    align-items: flex-end !important;
    padding: max(8px, env(safe-area-inset-top)) 0 0 !important;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .modal {
    max-height: calc(100dvh - max(8px, env(safe-area-inset-top))) !important;
    padding-bottom: calc(24px + env(safe-area-inset-bottom)) !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  /* Hide the bottom navigation while an editing/submit sheet is open.
     This prevents Save/Submit controls from sitting underneath it. */
  main:has(.modalback) .headerActions {
    visibility: hidden;
    pointer-events: none;
  }

  /* Keep the important action visible inside a long mobile form/sheet. */
  .modal .complete,
  .modal .submit,
  .cleaningCompleteModal .submit {
    position: sticky !important;
    bottom: 0 !important;
    z-index: 8 !important;
    min-height: 52px;
    margin-bottom: 0 !important;
    box-shadow: 0 -8px 22px rgba(23,32,63,.10), 0 8px 20px rgba(23,32,63,.16);
  }

  .modal .complete::before,
  .modal .submit::before {
    content: "";
  }

  .field textarea,
  .cleaningCompleteModal textarea {
    min-height: 96px;
  }

  /* Give the final page content enough room above the fixed nav. */
  main:not(.authPage):not(.publicMain) {
    padding-bottom: calc(104px + env(safe-area-inset-bottom));
  }

  .dashboardGrid,
  .statusMetricGrid,
  .personalStats,
  .cleaningTaskGrid,
  .cleaningStatsGrid,
  .cleaningSetupDays,
  .publicDetailGrid {
    grid-template-columns: 1fr !important;
  }

  .sectionHead {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .sectionHead > button {
    width: 100%;
  }

  .statusFeedRow {
    grid-template-columns: 36px minmax(0,1fr) !important;
  }

  .statusFeedRow time {
    grid-column: 2;
    justify-self: start;
  }

  .statusTask {
    min-width: 0;
  }

  .statusTask > div {
    min-width: 0;
  }

  .statusTask strong,
  .statusTask small {
    overflow-wrap: anywhere;
  }

  /* Cleaner closing editor controls on narrow phones. */
  .numberline {
    flex-wrap: wrap;
  }

  .numberline input {
    flex: 1 1 100px;
    min-width: 88px;
    width: auto !important;
  }

  .choices,
  .statuschoices {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }

  .workflowActions,
  .closingCompletedActions,
  .cleaningCompletedActions {
    flex-direction: column;
    align-items: stretch;
  }

  .workflowActions button,
  .closingCompletedActions button,
  .cleaningCompletedActions button {
    width: 100%;
  }

  /* Tables should scroll inside their own surface, never push the whole page sideways. */
  .tableWrap,
  .adminTableWrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Public website phone layout. */
  .publicHero {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .publicHero h1 {
    font-size: clamp(38px, 12vw, 48px) !important;
  }

  .publicCardGrid {
    grid-template-columns: 1fr !important;
  }

  .publicCardGrid article {
    min-height: 128px !important;
  }

  .publicHeroActions {
    grid-template-columns: 1fr !important;
  }

  .publicHeroActions button {
    width: 100%;
  }
}

/* Very narrow phones. */
@media (max-width: 380px) {
  main {
    padding-left: 10px;
    padding-right: 10px;
  }

  .headerActions {
    gap: 4px !important;
    padding-left: 5px !important;
    padding-right: 5px !important;
  }

  .headerActions .navPrimary,
  .mobileMore > summary {
    font-size: .74rem !important;
    padding-left: 2px !important;
    padding-right: 2px !important;
  }

  .panel,
  .summary,
  .notice {
    padding-left: 14px;
    padding-right: 14px;
  }
}


/* =========================================================
   V1.7 — Operational workspaces / qualifications
   ========================================================= */
.workspaceIntro{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.workspaceIntro h1{margin:.25rem 0 .35rem;font-size:clamp(2rem,3vw,3rem)}
.workspaceProfileSummary{
  display:grid;
  gap:4px;
  min-width:190px;
  padding:16px 18px;
  border-radius:16px;
  background:#f3f6fb;
  text-transform:capitalize;
}
.workspaceGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin:18px 0;
}
.workspaceCard{
  background:#fff;
  border:1px solid #dce4ef;
  border-radius:22px;
  padding:22px;
  box-shadow:0 8px 24px rgba(23,32,63,.06);
}
.workspaceCard.kitchenTone{border-top:5px solid #202a52}
.workspaceCard.frontTone{border-top:5px solid #3478e5}
.workspaceCard.supervisorTone{border-top:5px solid #4e6b63}
.workspaceCard.managementTone{border-top:5px solid #735d9a}
.workspaceCard h2{margin:.25rem 0 1rem}
.workspaceSectionList{display:grid;gap:9px}
.workspaceSectionButton{
  width:100%;
  min-height:62px;
  padding:12px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  text-align:left;
  background:#f7f9fc;
  color:#17203f;
  border:1px solid #dce4ef;
  border-radius:14px;
}
.workspaceSectionButton span{font-weight:750}
.workspaceSectionButton small{color:#75809a;text-align:right}
.workspaceSectionButton:disabled{opacity:.62;cursor:not-allowed}
.workspaceSnapshotRow{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:10px 0;
  border-top:1px solid #e5eaf2;
  text-transform:capitalize;
}
.workspacePlaceholderPage .workspacePlaceholder{max-width:900px;margin:24px auto}
.workspaceRequirementList{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.operationalAccessCell,.qualificationEditor{display:grid;gap:6px;min-width:145px}
.operationalAccessCell small,.qualificationEditor small{font-weight:700;color:#75809a}
.qualificationEditor label{display:flex;align-items:center;gap:7px;white-space:nowrap}

@media(max-width:720px){
  .workspaceIntro{align-items:flex-start;flex-direction:column}
  .workspaceProfileSummary{width:100%}
  .workspaceGrid{grid-template-columns:1fr}
  .workspaceCard{padding:16px}
  .workspaceSectionButton{min-height:58px}
}


/* Phase 2.7 complete workflow routing */
.workspaceStageGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin:18px 0;
}
.workspaceStageCard{
  width:100%;
  min-height:175px;
  text-align:left;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  color:#17203f;
}
.workspaceStageCard h2{margin:.35rem 0}
.workspaceStageCard p{color:#6f7b94;flex:1}
.workspaceStageCard strong{color:#202a52}
.preClosingStateCard{max-width:900px;margin:18px auto}
.workflowStageHero{margin-bottom:18px}
.workflowTaskList{display:grid;gap:14px}
.workflowTaskCard{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  text-align:left;
  color:#17203f;
}
.workflowTaskCard h2{margin:.25rem 0 .35rem}
.workflowTaskCard p{margin:0;color:#6f7b94}
.workflowTaskCard.done{background:#f1f8f3;border-color:#cfe5d6}
@media(max-width:720px){
  .workspaceStageGrid{grid-template-columns:1fr}
  .workspaceStageCard{min-height:145px}
  .workflowTaskCard{align-items:flex-start;flex-direction:column}
}

/* =========================================================
   V1.5.3 — Dark-surface contrast hardening
   Dark/navy surfaces own their foreground colors so generic
   h1/h2/h3/p rules cannot make their copy unreadable.
   ========================================================= */
.statusHero,
.scheduleHero,
.publicOperationsCard,
.publicNavyBand,
.authLoginBrand{
  color:#fff;
}

.statusHero h1,
.statusHero h2,
.statusHero h3,
.statusHero strong,
.scheduleHero h1,
.scheduleHero h2,
.scheduleHero h3,
.scheduleHero strong,
.publicOperationsCard > h1,
.publicOperationsCard > h2,
.publicOperationsCard > h3,
.publicNavyBand h1,
.publicNavyBand h2,
.publicNavyBand h3,
.publicNavyBand strong,
.authLoginBrand h1,
.authLoginBrand h2,
.authLoginBrand h3,
.authLoginBrand strong{
  color:#fff !important;
}

.statusHero p,
.statusHero small,
.scheduleHero p,
.scheduleHero small,
.authLoginBrand p,
.authLoginBrand small{
  color:#cbd6f2 !important;
}

/* Preserve blue accent/eyebrow labels on navy surfaces. */
.statusHero .authEyebrow,
.scheduleHero .authEyebrow,
.authLoginBrand .authEyebrow{
  color:#4f8cff !important;
}


/* =========================================================
   Operational Guardrails Phase 3 — Supervisor engine
   ========================================================= */
.supervisorViewTabs{
  display:flex;
  gap:8px;
  padding:8px;
  margin:16px 0;
  border:1px solid #dce4ef;
  border-radius:16px;
  background:#fff;
  overflow-x:auto;
}
.supervisorViewTabs button{
  flex:1;
  min-width:max-content;
  background:#f3f6fb;
  color:#202a52;
  border:1px solid transparent;
}
.supervisorViewTabs button.selected{
  background:#202a52;
  color:#fff;
}
.supervisorSummaryGrid,.supervisorAlertSummary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:16px 0;
}
.supervisorSummaryGrid article,.supervisorAlertSummary article{
  padding:18px;
  border-radius:18px;
  background:#fff;
  border:1px solid #dce4ef;
  display:grid;
  gap:5px;
}
.supervisorSummaryGrid strong,.supervisorAlertSummary strong{font-size:1.8rem;color:#202a52}
.supervisorSummaryGrid span,.supervisorAlertSummary span{font-weight:700;color:#5f6c86}
.supervisorWorkflowGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin:16px 0;
}
.supervisorWorkflowCard{display:grid;gap:12px}
.supervisorWorkflowHead{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.supervisorWorkflowHead h2{margin:.2rem 0 0}
.supervisorStatusPill,.supervisorSeverity{
  display:inline-flex;
  align-items:center;
  width:max-content;
  border-radius:999px;
  padding:6px 10px;
  font-size:.78rem;
  font-weight:800;
  white-space:nowrap;
}
.supervisorStatusPill.complete{background:#e9f6ed;color:#23643a}
.supervisorStatusPill.in-progress{background:#edf4ff;color:#245ca8}
.supervisorStatusPill.not-started{background:#f1f3f7;color:#69758d}
.supervisorStatusPill.blocked{background:#fff5df;color:#8b6113}
.supervisorStatusPill.missed{background:#fdecec;color:#9d2e2e}
.supervisorStatusPill.not-configured{background:#f1f3f7;color:#69758d}
.supervisorAlertSummary{grid-template-columns:repeat(3,minmax(0,1fr))}
.supervisorAlertSummary article.critical{border-top:4px solid #a93131}
.supervisorAlertSummary article.attention{border-top:4px solid #9b6c16}
.supervisorAlertSummary article.info{border-top:4px solid #386ca8}
.supervisorIssueList{display:grid;gap:10px}
.supervisorIssue{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:14px;
  padding:15px;
  border:1px solid #e1e6ef;
  border-radius:14px;
  background:#fafbfe;
}
.supervisorIssue p{margin:.25rem 0;color:#65718a}
.supervisorIssue small{color:#7b869c}
.supervisorIssue.critical{border-left:5px solid #a93131}
.supervisorIssue.attention{border-left:5px solid #9b6c16}
.supervisorIssue.info{border-left:5px solid #386ca8}
.supervisorSeverity.critical{background:#fdecec;color:#9d2e2e}
.supervisorSeverity.attention{background:#fff5df;color:#805a13}
.supervisorSeverity.info{background:#edf4ff;color:#245ca8}

@media(max-width:720px){
  .supervisorSummaryGrid,.supervisorAlertSummary,.supervisorWorkflowGrid{grid-template-columns:1fr}
  .supervisorViewTabs button{flex:0 0 auto}
  .supervisorWorkflowHead{flex-direction:column}
}


/* =========================================================
   Operational Guardrails Phase 4 — calendar/windows/overrides
   ========================================================= */
.operationalRulesAdmin{display:grid;gap:18px}
.operationalClockLine{padding:10px 12px;border-radius:12px;background:#f3f6fb;color:#485570;margin-bottom:14px}
.operationalRuleGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.operationalRuleCard{padding:16px;border:1px solid #dce4ef;border-radius:16px;background:#fafbfe;display:grid;gap:12px}
.operationalRuleCard h3{text-transform:capitalize;margin:.2rem 0}
.toggleLine{display:flex;align-items:center;gap:9px;font-weight:700}
.timeRuleInputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.timeRuleInputs label{display:grid;gap:5px;color:#64708a;font-size:.85rem;font-weight:700}
.closedDayList{display:grid;gap:9px;margin-top:14px}
.closedDayList>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid #e0e6ef;border-radius:12px;background:#fafbfe}
.closedDayList>div>div{display:grid;gap:3px}
.closedDayList span{color:#69758d;font-size:.86rem}
@media(max-width:720px){
  .operationalRuleGrid,.timeRuleInputs{grid-template-columns:1fr}
  .closedDayList>div{align-items:flex-start;flex-direction:column}
}


/* =========================================================
   Phase 6 — Developer Console
   ========================================================= */
.developerPage{max-width:1480px;margin:0 auto;padding:0 22px 40px}
.developerHero{
  margin:18px 0;
  padding:26px 28px;
  border-radius:22px;
  background:#202a52;
  color:#fff;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
}
.developerHero h1{margin:.2rem 0;color:#fff}
.developerHero p{margin:.3rem 0 0;color:#d8def0;max-width:820px}
.developerHealthGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.developerHealthCard{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #dce4ef;border-radius:16px;background:#fff}
.developerHealthCard>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;font-weight:900}
.developerHealthCard.healthy>span{background:#e8f6ed;color:#247443}
.developerHealthCard.unhealthy>span{background:#fdecec;color:#a53333}
.developerHealthCard>div{display:grid;gap:3px}
.developerHealthCard small{color:#68758e}
.developerReasonRow{display:grid;grid-template-columns:1fr auto;gap:10px}
.developerCheckList{display:grid;gap:8px;margin-top:14px}
.developerCheckList article{display:grid;grid-template-columns:70px 1fr;gap:10px;align-items:center;padding:11px 12px;border-radius:12px;border:1px solid #e0e6ef;background:#fafbfe}
.developerCheckList article>span{font-size:.75rem;font-weight:900}
.developerCheckList article.pass>span{color:#247443}
.developerCheckList article.fail{border-left:5px solid #a53333}
.developerCheckList article.fail>span{color:#a53333}
.developerCheckList article div{display:grid;gap:2px}
.developerCheckList small{color:#7a869b}
.developerFinding{display:grid;gap:10px;margin-top:14px;padding:14px;border:1px solid #efd1d1;border-radius:14px;background:#fffafa}
@media(max-width:760px){
  .developerPage{padding:0 12px 30px}
  .developerHero{align-items:flex-start;flex-direction:column}
  .developerHealthGrid{grid-template-columns:1fr}
  .developerReasonRow{grid-template-columns:1fr}
}


/* =========================================================
   Phase 7 — Unified Operational Workflow Engine
   ========================================================= */
.unifiedWorkflowHero{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:end}
.unifiedWorkflowHero .progress{grid-column:1/-1;width:100%;margin:2px 0 0}
.workflowProgressSummary{display:grid;text-align:right}.workflowProgressSummary strong{font-size:1.8rem;color:#202a52}.workflowProgressSummary span{color:#69758d;font-size:.85rem}
.operationalTaskGroup{margin-top:14px}.unifiedTaskList{display:grid;gap:8px}.unifiedTaskRow{width:100%;display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;text-align:left;padding:14px;border:1px solid #dfe5ef;background:#fafbfe;color:#202a52;border-radius:14px}.unifiedTaskRow:hover{background:#f4f7fc}.unifiedTaskRow.done{opacity:.72;background:#f4f8f5}.unifiedTaskRow>div{display:grid;gap:4px}.unifiedTaskRow small{color:#68758f;font-weight:500}.unifiedTaskRow em{font-size:.78rem;color:#3e7650;font-style:normal}.unifiedTaskRow>b{font-size:.8rem}.workflowCheck{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#edf3ff;color:#2868bf;font-size:1.2rem;font-weight:900}.unifiedTaskRow.done .workflowCheck{background:#e7f5eb;color:#277346}.workflowSource{display:block;color:#7c879b;margin:8px 0 14px}.workflowSubnav{max-width:1180px;margin:14px auto 4px;padding:0 18px;display:flex;gap:8px;overflow-x:auto}.workflowSubnav button{background:#eef2f7;color:#263156;white-space:nowrap}.workflowSubnav button.selected{background:#202a52;color:#fff}.frontPreclosingShell>.cleaningPage .cleaningHero{margin-top:4px}
.workflowAdminGroup{padding:14px 0;border-top:1px solid #e3e7ef}.workflowAdminGroup:first-of-type{border-top:0}.workflowAdminTasks{display:grid;gap:7px}.workflowAdminTask{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #e0e6ef;border-radius:12px;padding:11px 12px;background:#fafbfe}.workflowAdminTask>div{display:grid;gap:2px}.workflowAdminTask small{color:#748099}.workflowAdminTask.inactive{opacity:.5}
@media(max-width:660px){.unifiedWorkflowHero{grid-template-columns:1fr}.workflowProgressSummary{text-align:left;grid-template-columns:auto 1fr;align-items:baseline;gap:7px}.unifiedTaskRow{grid-template-columns:34px 1fr}.unifiedTaskRow>b{grid-column:2}.workflowSubnav{padding:0 10px}.workflowAdminTask{align-items:flex-start}}


/* =========================================================
   Phase 8 — Food Safety / Temperature Control
   ========================================================= */
.foodSafetyPage{max-width:1480px;margin:0 auto;padding:18px}
.foodSafetyHero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;padding:25px 28px;border-radius:22px;background:#202a52;color:#fff}
.foodSafetyHero h1{color:#fff;margin:.2rem 0}.foodSafetyHero p{color:#d8def0}
.foodSafetyHeroTime{display:grid;gap:2px;text-align:right}.foodSafetyHeroTime strong{font-size:1.7rem}.foodSafetyHeroTime small,.foodSafetyHeroTime span{color:#d8def0}
.foodSafetySummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}
.foodSafetySummary article{display:grid;gap:4px;padding:16px 18px;background:#fff;border:1px solid #dce4ef;border-radius:16px}
.foodSafetySummary article>span{font-weight:800;color:#63708a}.foodSafetySummary article>strong{font-size:1.7rem;color:#202a52}.foodSafetySummary article>small{color:#7a8599}
.foodSafetySummary article.danger{border-left:5px solid #a53232}
.foodSafetyGuidance{border-left:5px solid #2c68ae}
.foodSafetySections{display:grid;gap:16px}
.foodSafetyPointGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.foodSafetyPoint{border:1px solid #dfe5ee;border-radius:16px;background:#fafbfe;padding:15px;display:grid;gap:12px}
.foodSafetyPointHead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.foodSafetyPointHead>div{display:grid;gap:4px}.foodSafetyPointHead small{color:#69758c}
.rangePill{background:#edf4ff;color:#245ca8;border-radius:999px;padding:6px 9px;font-size:.78rem;font-weight:900;white-space:nowrap}
.foodSafetyPeriods{display:grid;gap:8px}
.foodSafetyPeriod{display:grid;grid-template-columns:minmax(85px,.35fr) 1fr;gap:12px;align-items:center;border-top:1px solid #e4e8ef;padding-top:9px}
.foodSafetyPeriod>div:first-child{display:grid;gap:2px}.foodSafetyPeriod>div:first-child small{color:#7a8599}
.foodSafetyPeriod.due:not(.compliant):not(.non_compliant){border-left:4px solid #9a6b16;padding-left:9px}
.foodSafetyRecorded{display:grid;gap:3px;justify-items:start}.foodSafetyRecorded p{font-size:.82rem;margin:2px 0}.foodSafetyRecorded em{font-size:.8rem;color:#287144;font-style:normal}
.temperatureResult{display:inline-flex;border-radius:999px;padding:5px 9px;font-weight:900}.temperatureResult.compliant{background:#e8f6ed;color:#247443}.temperatureResult.non_compliant{background:#fdecec;color:#9d2e2e}
.temperatureEntryButton{background:#202a52;color:#fff;justify-self:start}
.temperatureInput{display:grid;grid-template-columns:1fr auto;align-items:center;border:1px solid #ccd5e2;border-radius:12px;overflow:hidden}.temperatureInput input{border:0!important;border-radius:0!important;min-height:54px;padding:12px;font-size:1.3rem}.temperatureInput b{padding:0 16px;color:#526079}
.temperatureAssessment{display:grid;gap:3px;padding:12px;border-radius:12px}.temperatureAssessment.compliant{background:#eaf7ee;color:#225f39}.temperatureAssessment.non_compliant{background:#fff0f0;color:#912c2c}.temperatureAssessment span{font-size:.86rem}
.foodSafetyModal{width:min(620px,100%)}
.foodSafetyTone{border-top:4px solid #287144}
@media(max-width:760px){
  .foodSafetyPage{padding:10px 10px calc(90px + env(safe-area-inset-bottom))}
  .foodSafetyHero{align-items:flex-start;flex-direction:column;padding:19px}
  .foodSafetyHeroTime{text-align:left}
  .foodSafetySummary,.foodSafetyPointGrid{grid-template-columns:1fr}
  .foodSafetyPeriod{grid-template-columns:1fr}
  .foodSafetyRecorded{justify-items:stretch}
  .temperatureEntryButton{width:100%}
}


/* Phase 8.1 — Food Safety Reports & Excel */
.foodSafetyTabs{display:flex;gap:8px;margin:0 0 14px;padding:5px;background:#e8eef7;border-radius:14px;width:max-content;max-width:100%}
.foodSafetyTabs button{border:0;background:transparent;color:#4c5870;font-weight:800;padding:10px 15px;border-radius:10px}
.foodSafetyTabs button.selected{background:#202a52;color:#fff;box-shadow:0 5px 15px rgba(32,42,82,.15)}
.foodSafetyReportControls{margin-bottom:14px}
.foodSafetyReportRange{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) auto auto;gap:10px;align-items:end}
.foodSafetyReportRange label{display:grid;gap:5px}.foodSafetyReportRange label span{font-weight:800;color:#536079;font-size:.82rem}
.foodSafetyReportRange input{min-height:45px}
.foodSafetyExportButton{background:#202a52!important;color:#fff!important}
.foodSafetyPermissionNote{display:block;margin-top:10px;color:#6e7890}
.reportSummary{grid-template-columns:repeat(4,minmax(0,1fr))}
.foodSafetyReportNote{border-left:5px solid #287144}
.foodSafetyReportTable td,.foodSafetyReportTable th{vertical-align:top}
.foodSafetyReportTable .temperatureResult{white-space:nowrap}
.reportExceptionRow td{background:#fff7f7}
.reportExceptionRow td:first-child{border-left:4px solid #b74444}
.muted{color:#7c879a}
@media(max-width:900px){
  .foodSafetyReportRange{grid-template-columns:1fr 1fr}
  .foodSafetyReportRange button{width:100%}
  .reportSummary{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .foodSafetyTabs{width:100%}.foodSafetyTabs button{flex:1;padding:9px 8px}
  .foodSafetyReportRange,.reportSummary{grid-template-columns:1fr}
}


/* =========================================================
   Phase 9 — Scheduling Engine + Drivers
   ========================================================= */
.scheduleAssistantStack{display:grid;gap:16px;margin-bottom:16px}
.scheduleAssistantHero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;border-radius:20px;background:#202a52;color:#fff}
.scheduleAssistantHero h2{color:#fff;margin:.2rem 0}.scheduleAssistantHero p{color:#d8def0;max-width:760px}
.coverageRequirementForm{display:grid;grid-template-columns:1fr 1.2fr .9fr .9fr .65fr 1.4fr auto;gap:8px;align-items:end}
.coverageRequirementList{display:grid;gap:7px;margin-top:14px}
.coverageRequirementList>div{display:grid;grid-template-columns:1fr 1.2fr 1.2fr .8fr 1.5fr auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid #dde5ef;border-radius:12px;background:#fafbfe}
.schedulePeopleGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.schedulePersonCard{display:grid;gap:10px;padding:14px;border:1px solid #dde4ee;border-radius:15px;background:#fbfcfe}
.schedulePersonTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.schedulePersonTop>div{display:grid;gap:3px}.schedulePersonTop small{color:#718096}
.employeeScheduleStatus{font-size:.76rem;font-weight:900;border-radius:999px;padding:5px 8px;white-space:nowrap}.employeeScheduleStatus.available{background:#e8f6ed;color:#2c7147}.employeeScheduleStatus.scheduled{background:#eaf1ff;color:#285da4}.employeeScheduleStatus.unavailable{background:#fdecec;color:#9d2e2e}.employeeScheduleStatus.unknown{background:#f3f0e8;color:#79642c}
.schedulePersonMeta{display:flex;gap:6px;flex-wrap:wrap}.schedulePersonMeta span{font-size:.76rem;background:#eef2f7;border-radius:999px;padding:4px 7px;color:#536079}
.suggestionRunMeta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px;color:#68758d}.suggestionRunMeta strong{color:#9a5a21}
.suggestionList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.suggestionCard{border:1px solid #dfe5ee;border-radius:14px;padding:13px;background:#fafbfe;display:grid;gap:8px}.suggestionCard>div:first-child{display:grid;gap:2px}.suggestionCard p{font-size:.88rem;margin:0;color:#58647b}.suggestionWarnings{display:grid;gap:3px;font-size:.78rem;color:#8a5a20}
.scheduleProfileModal{width:min(620px,100%)}

.driverPage{max-width:1480px;margin:0 auto;padding:18px}
.driverHero{padding:24px 28px;margin:18px 0;border-radius:22px;background:#202a52;color:#fff}.driverHero h1{color:#fff;margin:.2rem 0}.driverHero p{color:#d8def0}
.driverGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.driverStatusEditor{display:grid;grid-template-columns:1fr 2fr auto;gap:8px}
.driverRoster{display:grid;gap:8px}.driverRoster article{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px;border:1px solid #dfe5ee;border-radius:12px}.driverRoster article>div{display:grid;gap:2px}.driverRoster small{color:#6e7890}
.driverStatus{font-size:.76rem;font-weight:900;border-radius:999px;padding:5px 9px;white-space:nowrap}.driverStatus.available{background:#e8f6ed;color:#257047}.driverStatus.on_delivery{background:#e8efff;color:#275ba3}.driverStatus.returning{background:#fff4dd;color:#8e611d}.driverStatus.break{background:#f3f0e8;color:#705f35}.driverStatus.errand{background:#f0eaff;color:#6442a0}.driverStatus.off{background:#eef1f5;color:#667085}
.driverScheduleList{display:grid;gap:7px}.driverScheduleList>div{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;padding:9px 0;border-bottom:1px solid #e5e8ef}
.deliveryCreateForm{display:grid;grid-template-columns:1.2fr .8fr 1.5fr .7fr 1.5fr auto;gap:8px;margin-bottom:14px}
.deliveryQueue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.deliveryCard{display:grid;gap:9px;border:1px solid #dfe5ee;border-radius:15px;padding:14px;background:#fbfcfe}.deliveryCard.priority{border-left:5px solid #b74444}.deliveryCardTop{display:flex;justify-content:space-between;gap:10px}.deliveryCardTop>div{display:grid;gap:2px}.deliveryCardTop small{color:#6e7890}.deliveryStatus{font-size:.76rem;font-weight:900;border-radius:999px;padding:5px 8px;align-self:start;background:#eef2f7}.deliveryStatus.delivering,.deliveryStatus.picked_up{background:#e9f0ff;color:#2b5da2}.deliveryStatus.completed{background:#e8f6ed;color:#247443}.deliveryActions{display:flex;gap:8px;flex-wrap:wrap}
.errandCreateForm{display:grid;grid-template-columns:1.2fr 2fr 1fr auto;gap:8px;margin-bottom:12px}.errandList{display:grid;gap:8px}.errandList article{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #dfe5ee;border-radius:13px;padding:12px}.errandList article>div:first-child{display:grid;gap:3px}.errandList p{margin:0;color:#667085}.errandList small{color:#718096}

@media(max-width:1050px){
  .coverageRequirementForm{grid-template-columns:1fr 1fr 1fr 1fr}
  .schedulePeopleGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .deliveryCreateForm{grid-template-columns:1fr 1fr 1fr}
}
@media(max-width:760px){
  .scheduleAssistantHero{flex-direction:column;align-items:stretch}
  .coverageRequirementForm,.schedulePeopleGrid,.suggestionList,.driverGrid,.deliveryQueue{grid-template-columns:1fr}
  .coverageRequirementList>div{grid-template-columns:1fr 1fr}
  .driverPage{padding:10px 10px calc(90px + env(safe-area-inset-bottom))}
  .driverStatusEditor,.deliveryCreateForm,.errandCreateForm{grid-template-columns:1fr}
  .driverRoster article{grid-template-columns:1fr auto}
  .driverRoster article select{grid-column:1/-1}
  .driverScheduleList>div{grid-template-columns:1fr 1fr}.driverScheduleList>div small{grid-column:1/-1}
  .errandList article{align-items:stretch;flex-direction:column}
}


/* =========================================================
   Phase 10 — Historical Coverage + Schedule Email Notifications
   ========================================================= */
.historicalCoveragePanel{border-top:4px solid #287144}
.historicalModeControls{display:flex;gap:6px}.historicalModeControls button.selected{background:#202a52;color:#fff}
.historicalCoverageExplainer{display:flex;gap:10px;align-items:center;justify-content:space-between;background:#f1f7f3;border:1px solid #d7eadc;border-radius:12px;padding:10px 12px;margin:12px 0;color:#315c40}
.historicalCoverageGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.historicalDayCard{border:1px solid #dfe5ee;border-radius:15px;padding:13px;background:#fbfcfe}.historicalDayCard h3{margin:0 0 9px}
.historicalCrewRow{display:grid;grid-template-columns:105px 1fr;gap:8px;padding:8px 0;border-top:1px solid #e6eaf0}.historicalCrewRow>strong{font-size:.82rem;color:#526079}.historicalCrewRow>div{display:flex;gap:6px;flex-wrap:wrap}
.historicalCrewRow span{font-size:.76rem;background:#edf3fb;border-radius:999px;padding:5px 8px;color:#42516a}.historicalCrewRow span b{color:#202a52}
.historicalCoverageActions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.historicalCoverageActions span{font-size:.82rem;color:#6a758b}
.scheduleNotificationStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.scheduleNotificationStats span{display:grid;gap:2px;background:#f4f7fb;border-radius:12px;padding:12px;color:#5c687e}.scheduleNotificationStats b{font-size:1.35rem;color:#202a52}.scheduleNotificationStats .bad{background:#fff0f0;color:#8c3030}.scheduleNotificationStats .bad b{color:#8c3030}
.notificationRecipientList{display:grid;gap:6px}.notificationRecipientList>div{display:grid;grid-template-columns:1fr 1.3fr auto;gap:8px;align-items:center;border-top:1px solid #e5e9ef;padding:9px 0}.notificationRecipientList span{color:#6d7890;font-size:.84rem}.notificationRecipientList small{grid-column:1/-1;color:#9a3d3d}
.notificationState{text-transform:capitalize;font-size:.75rem;border-radius:999px;padding:4px 8px;background:#eef2f7}.notificationState.sent{background:#e8f6ed;color:#277149}.notificationState.failed,.notificationState.disabled{background:#fdecec;color:#982f2f}
@media(max-width:760px){
  .historicalCoverageGrid,.scheduleNotificationStats{grid-template-columns:1fr}
  .historicalCoverageActions,.historicalCoverageExplainer{align-items:stretch;flex-direction:column}
  .historicalCoverageActions button{width:100%}
  .notificationRecipientList>div{grid-template-columns:1fr auto}.notificationRecipientList span{grid-column:1/-1}
}


/* =========================================================
   Phase 10.1 — Compact Schedule Manager UI
   ========================================================= */
.scheduleManagerWorkspace{display:grid;gap:14px}
.scheduleManagerSticky{position:sticky;top:0;z-index:12;background:rgba(244,247,252,.96);backdrop-filter:blur(14px);padding:10px 0 8px;border-bottom:1px solid #dde5ef}
.scheduleManagerTopbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;background:#fff;border:1px solid #dfe5ee;border-radius:15px}
.scheduleManagerTopbar>div:first-child{display:grid;gap:2px}.scheduleManagerTopbar>div:first-child>strong{font-size:1.05rem;color:#202a52}.scheduleManagerTopbar small{color:#707c91}
.weekControls.compact{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.weekControls.compact input{min-width:145px}
.scheduleManagerTabs{display:flex;gap:5px;overflow-x:auto;padding:7px 3px 0;scrollbar-width:none}.scheduleManagerTabs::-webkit-scrollbar{display:none}.scheduleManagerTabs button{white-space:nowrap;border:0;background:transparent;color:#59657b;font-weight:800;padding:9px 13px;border-radius:10px}.scheduleManagerTabs button.selected{background:#202a52;color:#fff}
.scheduleManagerSummaryGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.scheduleManagerSummaryGrid button{text-align:left;border:1px solid #dde4ee;background:#fff;border-radius:15px;padding:14px;display:grid;gap:3px;min-height:102px}.scheduleManagerSummaryGrid button:hover{border-color:#aebbd0;transform:translateY(-1px)}.scheduleManagerSummaryGrid span{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;font-weight:900;color:#68758c}.scheduleManagerSummaryGrid strong{font-size:1.12rem;color:#202a52}.scheduleManagerSummaryGrid small{color:#7a8496}.scheduleManagerSummaryGrid .attention{border-left:4px solid #c8872a;background:#fffaf1}.scheduleManagerSummaryGrid .success{border-left:4px solid #2b7b4d;background:#f6fbf8}
.managerOverviewPanel{padding-top:15px}.managerOverviewStrip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.managerOverviewStrip>div{background:#f4f7fb;border-radius:12px;padding:12px;display:grid;gap:2px}.managerOverviewStrip span{font-size:.78rem;color:#6e7890}.managerOverviewStrip b{font-size:1.25rem;color:#202a52}
.coverageDayAccordion{display:grid;gap:7px;margin-top:12px}.coverageDayGroup{border:1px solid #dfe5ee;border-radius:14px;overflow:hidden;background:#fff}.coverageDayGroup.open{box-shadow:0 7px 20px rgba(32,42,82,.06)}
.coverageDayHeader{width:100%;display:grid;grid-template-columns:130px 1fr 28px;gap:12px;align-items:center;text-align:left;border:0;background:#fbfcfe;padding:12px 14px;color:#202a52}.coverageDayHeader:hover{background:#f4f7fb}.coverageDayHeader>div:first-child{display:grid;gap:1px}.coverageDayHeader>div:first-child strong{font-size:1rem}.coverageDayHeader small{color:#7a8496}
.coverageDayPeaks{display:flex;gap:6px;flex-wrap:wrap}.coverageDayPeaks span{font-size:.73rem;padding:4px 7px;border-radius:999px;background:#eef3fa;color:#52617a}.coverageDayPeaks b{color:#202a52}.coverageChevron{text-align:right;font-size:1rem}
.coverageCompactTableWrap{overflow-x:auto;border-top:1px solid #e4e8ef}.coverageCompactTable{width:100%;border-collapse:collapse;min-width:680px}.coverageCompactTable th,.coverageCompactTable td{padding:8px 11px;border-bottom:1px solid #edf0f4;text-align:left;font-size:.84rem}.coverageCompactTable th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#788399;background:#fafbfc}.coverageCompactTable tr:last-child td{border-bottom:0}.coverageCompactTable td:nth-child(3){width:70px}.coverageCompactTable td:last-child{width:44px;text-align:right}.coverageCompactTable td small{display:block;margin-top:2px;color:#8490a2}
.coverageSourceBadge{display:inline-block;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:3px 6px}.coverageSourceBadge.historical{background:#eaf1ff;color:#2c5e9c}.coverageSourceBadge.manual{background:#eef5ea;color:#3d6d33}
.iconActionButton{width:30px;height:30px;border:1px solid #d9e0ea;border-radius:8px;background:#fff;color:#788399;font-size:1.15rem;line-height:1}.iconActionButton:hover{background:#fff0f0;color:#9b3333;border-color:#efcaca}
.shiftCreateForm.compact{display:grid;grid-template-columns:1.2fr .9fr 1fr .75fr .75fr 1.2fr auto;gap:7px;align-items:end;margin-bottom:12px}.shiftCreateForm.compact>*{min-width:0}
.managerShiftTable.compact table th,.managerShiftTable.compact table td{padding:8px 9px;font-size:.82rem}.managerShiftTable.compact select{min-width:110px}
.requestList.compact article{padding:12px}
.publishReviewGrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.publishReviewGrid>div{background:#f4f7fb;border-radius:12px;padding:12px;display:grid;gap:3px}.publishReviewGrid>div.attention{background:#fff5e7}.publishReviewGrid span{font-size:.76rem;color:#6d7890}.publishReviewGrid strong{font-size:1.15rem;color:#202a52}
.scheduleExport.compact{display:flex;gap:9px;align-items:end;flex-wrap:wrap}.scheduleExport.compact label{display:grid;gap:4px;font-size:.78rem;color:#667085}
.schedulePeopleGrid{grid-template-columns:repeat(4,minmax(0,1fr))}
.schedulePersonCard{padding:11px;gap:7px}.schedulePersonMeta{gap:4px}.schedulePersonMeta span{font-size:.7rem}
.historicalCoverageGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.historicalDayCard{padding:11px}.historicalCrewRow{grid-template-columns:90px 1fr;padding:6px 0}.historicalCrewRow span{font-size:.7rem;padding:4px 6px}
.suggestionList{grid-template-columns:repeat(3,minmax(0,1fr))}.suggestionCard{padding:11px}
.coverageRequirementForm{grid-template-columns:.9fr 1fr .7fr .7fr .55fr 1.2fr auto}.coverageRequirementForm>*{min-width:0}

@media(max-width:1150px){
  .scheduleManagerSummaryGrid{grid-template-columns:repeat(3,1fr)}
  .schedulePeopleGrid,.historicalCoverageGrid,.suggestionList{grid-template-columns:repeat(2,minmax(0,1fr))}
  .publishReviewGrid{grid-template-columns:repeat(3,1fr)}
  .shiftCreateForm.compact{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:760px){
  .scheduleManagerSticky{top:0;padding-top:4px}
  .scheduleManagerTopbar{align-items:stretch;flex-direction:column}.weekControls.compact{display:grid;grid-template-columns:1fr 1fr}.weekControls.compact input{min-width:0}
  .scheduleManagerSummaryGrid,.managerOverviewStrip,.publishReviewGrid{grid-template-columns:1fr 1fr}
  .schedulePeopleGrid,.historicalCoverageGrid,.suggestionList{grid-template-columns:1fr}
  .coverageDayHeader{grid-template-columns:92px 1fr 22px;padding:10px}.coverageDayPeaks{gap:4px}.coverageDayPeaks span{font-size:.66rem}
  .coverageRequirementForm,.shiftCreateForm.compact{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .scheduleManagerSummaryGrid,.managerOverviewStrip,.publishReviewGrid{grid-template-columns:1fr}
  .weekControls.compact{grid-template-columns:1fr}
  .coverageDayHeader{grid-template-columns:1fr 22px}.coverageDayPeaks{grid-column:1/-1}.coverageChevron{grid-column:2;grid-row:1}
  .coverageRequirementForm,.shiftCreateForm.compact{grid-template-columns:1fr}
}


/* =========================================================
   Phase 11 — Drivers work area + Sales-aware scheduling
   ========================================================= */
.workspaceCard.driverTone{border-top-color:#b86b2d}
.workspaceCard.driverTone .authEyebrow{color:#a65d27}
.salesAwarePanel{border-top:4px solid #2f72c7}
.salesModelBadge,.coverageScopeBadge{align-self:flex-start;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:900;white-space:nowrap;background:#edf3fb;color:#3d5f8f}
.coverageScopeBadge.week{background:#eef7f1;color:#34704a}
.salesForecastGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}
.salesForecastDay{display:grid;gap:9px;border:1px solid #dfe5ee;border-radius:14px;padding:11px;background:#fbfcfe}
.salesForecastDay>div:first-child{display:grid;gap:2px}.salesForecastDay>div:first-child small{color:#7a8496}
.salesForecastDay label{display:grid;gap:4px;font-size:.75rem;color:#68758c;font-weight:800}
.moneyInput{display:grid;grid-template-columns:28px 1fr;align-items:center;border:1px solid #d7dfeb;border-radius:9px;background:#fff;overflow:hidden}.moneyInput b{text-align:center;color:#6b7890}.moneyInput input{border:0;border-left:1px solid #e3e8ef;border-radius:0;min-width:0}
.salesForecastConfidence{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.salesForecastConfidence small{color:#7a8496}.coverageSourceBadge.high{background:#e7f6ec;color:#2e7449}.coverageSourceBadge.medium{background:#fff4de;color:#8a611e}.coverageSourceBadge.low{background:#fdecec;color:#943535}
.salesCrewPeaks{display:flex;gap:5px;flex-wrap:wrap}.salesCrewPeaks span{font-size:.68rem;background:#eef2f7;color:#526078;border-radius:999px;padding:4px 6px}.salesCrewPeaks b{color:#202a52}
.salesAwareActions{display:flex;gap:9px;align-items:center;justify-content:flex-end;margin-top:12px}.salesAwareActions>div{margin-right:auto;display:grid;gap:2px}.salesAwareActions>div span{font-size:.78rem;color:#768197}
@media(max-width:1100px){.salesForecastGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.salesForecastGrid{grid-template-columns:1fr}.salesAwareActions{align-items:stretch;flex-direction:column}.salesAwareActions>div{margin-right:0}.salesAwareActions button{width:100%}}


/* =========================================================
   Phase 14.1 — Your kitchen. Your flow.
   Public-brand copy/flow-panel refinement only.
   ========================================================= */
.publicHeroAccent{color:#1769e8}
.publicHeroCopy>p strong{color:#263c66;font-weight:800}
.publicFlowCard{display:flex;flex-direction:column}
.publicFlowGrid{display:grid;grid-template-columns:1fr 1fr;gap:13px;position:relative}
.publicFlowGrid article{position:relative;min-height:170px;padding:22px 22px 20px;border-radius:16px;background:linear-gradient(180deg,#fff,#f9fbff);box-shadow:inset 0 0 0 1px #fff,0 8px 24px #00133816}
.publicFlowGrid article:nth-child(1)::after,.publicFlowGrid article:nth-child(3)::after{content:"→";position:absolute;right:-13px;top:50%;transform:translate(50%,-50%);z-index:2;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#1769e8;color:#fff;font-size:13px;font-weight:900;box-shadow:0 5px 14px rgba(23,105,232,.24)}
.publicFlowStep{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#eaf2ff;color:#1769e8;font-size:11px;font-weight:900;letter-spacing:.04em}
.publicFlowGrid small{display:block;color:#174cb0;font-size:10px;font-weight:900;letter-spacing:.06em;margin:10px 0 12px}
.publicFlowGrid h3{margin:0 0 7px;color:#081a49;font-size:23px;letter-spacing:-.035em}
.publicFlowGrid p{margin:0;color:#6e7c96;font-size:12px;line-height:1.5}
.publicFlowSupport{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:14px}
.publicFlowSupport span{display:flex;align-items:center;justify-content:center;min-height:31px;border:1px solid rgba(255,255,255,.13);border-radius:999px;color:#dce7fb;background:rgba(255,255,255,.055);font-size:10px;font-weight:800;letter-spacing:.025em}
@media(max-width:700px){.publicFlowGrid{grid-template-columns:1fr}.publicFlowGrid article{min-height:128px}.publicFlowGrid article:nth-child(1)::after,.publicFlowGrid article:nth-child(3)::after{display:none}.publicFlowSupport{grid-template-columns:1fr 1fr}}


/* Phase 14.3 — Expanded public product story */
.publicAudienceSection,.publicEmployeeRecordSection{padding:92px clamp(40px,7vw,112px);scroll-margin-top:88px}
.publicAudienceSection{background:#f6f9fd}.publicAudienceGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.publicAudienceGrid article{padding:30px;border:1px solid #dce5f2;border-radius:19px;background:#fff}.publicAudienceGrid article>span{color:#1769e8;font-size:10px;font-weight:900;letter-spacing:.09em}.publicAudienceGrid h3{margin:14px 0 10px;color:#081a49;font-size:24px}.publicAudienceGrid p{margin:0;color:#657490;line-height:1.7;font-size:14px}
.publicEmployeeRecordSection{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;background:#0d1b46;color:#fff}.publicEmployeeRecordSection h2{margin:8px 0 16px;font-size:clamp(34px,3vw,50px);letter-spacing:-.04em;line-height:1.05}.publicEmployeeRecordSection>div:first-child p{color:#c7d3ea;line-height:1.75;font-size:16px}.publicEmployeeRecordSection .publicEyebrow{color:#7fb0ff}.publicRecordCard{padding:30px;border:1px solid #ffffff24;border-radius:20px;background:#ffffff0d;box-shadow:0 18px 45px #00000018}.publicRecordCard small{color:#8eb9ff;font-weight:900;letter-spacing:.08em}.publicRecordCard h3{font-size:25px;margin:10px 0 16px}.publicRecordCard ul{margin:0;padding-left:20px;display:grid;gap:8px;color:#e6edfa;line-height:1.45}.publicRecordCard p{margin:18px 0 0;color:#aebdd8;font-size:12px;line-height:1.6}.publicExpandedGrid{grid-template-columns:repeat(4,1fr)}
@media(max-width:1050px){.publicAudienceGrid{grid-template-columns:1fr}.publicEmployeeRecordSection{grid-template-columns:1fr;gap:32px}.publicExpandedGrid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.publicAudienceSection,.publicEmployeeRecordSection{padding:62px 20px}.publicExpandedGrid{grid-template-columns:1fr}.publicRecordCard{padding:22px}}

/* Front page employee-history contrast fix */
.publicEmployeeRecordSection h2 { color: #f7f9ff; }
.publicEmployeeRecordSection .publicRecordCard h3 { color: #ffffff; }

/* Static public subpages — exact Opia River public design language */
.publicLinks a{
  min-height:42px;padding:7px 2px;color:#465673!important;font-weight:760;font-size:14px;
  position:relative;text-decoration:none;display:inline-flex;align-items:center
}
.publicLinks a:after{content:"";position:absolute;left:0;right:0;bottom:1px;height:2px;transform:scaleX(0);background:#4b83ff;transition:.2s}
.publicLinks a:hover:after,.publicLinks a.active:after{transform:scaleX(1)}
.publicLinks a:hover,.publicLinks a.active{color:#102554!important}
.publicBrandLink{text-decoration:none}
.publicSubHero .publicHeroCopy{max-width:700px}
.publicSubHero .publicOperationsCard{min-height:430px}
.publicSubHeroList{display:grid;gap:12px;margin-top:4px}
.publicSubHeroList article{padding:18px 19px;border-radius:14px;background:linear-gradient(180deg,#fff,#f9fbff);box-shadow:0 7px 20px #00133813}
.publicSubHeroList small{display:block;color:#1760dc;font-size:10px;font-weight:900;letter-spacing:.08em;margin-bottom:6px}
.publicSubHeroList h3{margin:0 0 5px;color:#081a49;font-size:19px}
.publicSubHeroList p{margin:0;color:#6e7c96;font-size:12px;line-height:1.55}
.publicFeatureList{display:grid;grid-template-columns:1fr 1fr;gap:10px 28px;margin:0;padding:0;list-style:none}
.publicFeatureList li{padding:13px 0;border-bottom:1px solid #e0e7f1;color:#5f6f89;font-size:14px;line-height:1.55}
.publicFeatureList li:before{content:"✓";color:#1769e8;font-weight:900;margin-right:10px}
.publicCallout{margin-top:28px;padding:22px 24px;border:1px solid #d5e0f0;border-radius:14px;background:#eef4fd}
.publicCallout strong{display:block;color:#102554;margin-bottom:6px}
.publicCallout p{margin:0;color:#657490;line-height:1.65}
.publicPageLinks{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.publicPageLinks a{display:inline-flex;padding:10px 14px;border:1px solid #d5e0f0;border-radius:10px;background:#fff;color:#17376e;text-decoration:none;font-size:12px;font-weight:800}
@media(max-width:700px){
  .publicLinks a{flex:0 0 auto;font-size:12px}
  .publicFeatureList{grid-template-columns:1fr}
}
