/* PROLET · Midnight Blue UI v2.0.1
   Safe UI-only theme overlay. Does not change form names, API, or permissions. */
:root{
  color-scheme:dark;
  --bg:#080813;
  --bg-2:#0B1121;
  --panel:#101B2B;
  --panel-hover:#1B2940;
  --panel-soft:#142338;
  --line:#344E6A;
  --line-soft:#23384E;
  --text:#F2F6FF;
  --muted:#B3C2D7;
  --muted-2:#879EB9;
  --accent:#A0BDDB;
  --accent-hover:#BED7F0;
  --accent-ink:#080F20;
  --success:#A6D6C4;
  --danger:#D898A8;
  --radius:18px;
  --shadow:0 10px 26px rgba(0,0,0,.21);
  background:#080813;
  color:var(--text);
}
html,body{background-color:#080813!important;}
body{
  background-image:radial-gradient(ellipse at 55% -17%,rgba(72,120,174,.19),transparent 49%),
                   linear-gradient(160deg,#080813 0%,#091121 67%,#080813 100%)!important;
  background-attachment:fixed;
}
button, input, textarea, select{accent-color:#A0BDDB;}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,
[role="button"]:focus-visible{outline:2px solid #BED7F0;outline-offset:3px;}
/* Header: keep fully below iPhone Dynamic Island/notch, and provide 44px tap targets. */
.shell{padding-top:calc(26px + env(safe-area-inset-top,0px));}
.masthead{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:0 0 31px;min-width:0;}
.brandmark{gap:10px;flex:1 1 auto;min-width:0;}
.brand-symbol{width:32px;height:48px;flex-shrink:0;filter:drop-shadow(0 1px 9px rgba(160,189,219,.3));}
.brand-small{font-size:9px;line-height:1.1;letter-spacing:.22em;color:#A0BDDB;}
.brand{margin:0 0 3px;font-weight:820;font-size:21px;line-height:1.15;letter-spacing:.21em;color:#A0BDDB;white-space:nowrap;}
.brand span{display:none;}
.top-right{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:none;}
.icon-btn,.avatar{
  width:44px;height:44px;min-width:44px;min-height:44px;border-radius:14px;
  border:1px solid #3A5778;background:linear-gradient(160deg,#1B2C43,#111C30);
  color:#E3EDFA;box-shadow:0 3px 9px rgba(0,0,0,.13);
  display:grid;place-items:center;padding:0;touch-action:manipulation;
}
.icon-btn.important{background:linear-gradient(165deg,#223A55,#14263A);color:#BFD7EE;border-color:#6588AF;}
.icon-btn:hover,.avatar:hover{background:#233A53;}
.icon-btn:active,.avatar:active{transform:scale(.97);}
.icon-btn svg{width:21px;height:21px;}
.avatar{font-size:17px;font-weight:780;}
button.avatar{cursor:pointer;font:inherit;font-weight:780;}
.masthead+div.eyebrow,.eyebrow{color:#A0BDDB;letter-spacing:.16em;}
.page-title{color:#F5F7FE;font-size:clamp(26px,6.4vw,34px);letter-spacing:-.9px;line-height:1.18;}
.subline{color:var(--muted);}
/* Common controls and surfaces */
.card,.auth-box,.order-card,.reservation,.my-day,.chat-thread,.chat-conversation{
  background:linear-gradient(150deg,rgba(20,35,54,.97),rgba(11,20,37,.98));
  border:1px solid #334C68;box-shadow:0 8px 26px rgba(0,0,0,.16);
}
.card{padding:21px;border-radius:20px;margin:17px 0;}
.card h3{font-size:17px;color:#F2F6FF;line-height:1.3;}
.sectionhead h3{color:#F2F6FF;}
.input{background:#0E1A2B;border-color:#344E6A;color:var(--text);}
.input::placeholder{color:#8196B0;}
.input:focus{border-color:#A0BDDB;box-shadow:0 0 0 3px rgba(160,189,219,.15);}
.field label{color:#C5D3E4;}
.btn{
  border-radius:12px;min-height:45px;background:#A0BDDB;border-color:#A0BDDB;
  color:#081222;box-shadow:0 6px 14px rgba(0,0,0,.13);
  font-size:13px;font-weight:760;
}
.btn:hover:not(:disabled){background:#BED7F0;}
.btn.secondary{background:linear-gradient(155deg,#1B2B43,#111E30);border-color:#466380;color:#E9F1FF;box-shadow:none;}
.btn.secondary:hover:not(:disabled){background:#263B55;}
.btn.danger{background:#401E30;border-color:#87516A;color:#F4D5DF;box-shadow:none;}
.btn.danger:hover:not(:disabled){background:#51283C;}
.btn.small{font-size:12px;min-height:37px;padding:8px 12px;}
.notice{background:#152C37;color:#D5EAF4;border-color:#406778;}
.notice.warn{background:#3C3027;border-color:#7B6144;color:#F1DDC0;}
.divider{background:#2D415A;}
.empty{background:rgba(20,34,54,.7);border-color:#39526D;color:#AEC2DA;}
.pill{background:#1D3853;border-color:#496C90;color:#DAE9FC;}
.pill.completed{background:#183C3C;color:#B1E0D1;border-color:#3C7872;}
.confirmed{color:#B1E4CF;}
.time,.my-day-shift{color:#BDDCFA;}
.time{background:linear-gradient(140deg,#284364,#192D49);border-color:#476E95;}
/* Today's reservations – three clean cards and elegant list */
.summary{gap:10px;margin:25px 0 28px;}
.summary .tile{background:linear-gradient(140deg,#14243C,#0C1627);border-color:#334C68;border-radius:16px;min-height:115px;padding:18px 14px;box-shadow:0 7px 16px rgba(0,0,0,.12);}
.summary .tile:first-child{background:linear-gradient(145deg,#1E3B5C,#10243B);border-color:#71A3D0;}
.summary .tile:before{display:none;}
.summary-icon{width:18px;height:18px;display:block;margin-bottom:7px;stroke:#A0BDDB;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;}
.summary .big{font-size:32px;color:#F3F7FE;line-height:1.06;letter-spacing:-1.3px;}
.summary .tile small{color:#B3C7DE;font-size:11px;margin-top:9px;}
.reservation{padding:14px;gap:12px;border-radius:18px;align-items:center;}
.reservation .res-name{font-size:15px;}
.reservation .res-meta{color:#ADBED1;line-height:1.48;overflow-wrap:anywhere;}
.reservation .btn.small{min-height:38px;flex:none;}
.reservation-tabs{gap:9px;margin:8px 0 13px;}
.reservation-tabs .btn{border-radius:12px;padding:9px 15px;}
.input.search{border-radius:14px;background-color:#101D30;padding-left:43px;background-repeat:no-repeat;background-size:18px 18px;background-position:15px center;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A0BDDB' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M16 16l5 5'/%3E%3C/svg%3E");}
/* Administration: balanced roster buttons */
.roster-card{padding:19px;}
.roster-card h3{margin:0 0 10px;display:flex;gap:10px;align-items:center;font-size:18px;}
.roster-card h3:before{content:'▣';font-size:18px;color:#A0BDDB;}
.roster-card .subline{font-size:12px;line-height:1.65;}
.roster-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:17px;}
.roster-actions .btn{margin:0;display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;white-space:nowrap;text-align:center;}
.roster-actions .btn[data-view="schedule"]{grid-column:1/-1;min-height:54px;font-size:14px;}
.roster-actions .btn[data-view="my-schedule"],
.roster-actions .btn[data-view="staff"]{font-size:clamp(10.7px,2.75vw,12px);padding:10px 6px;min-height:46px;}
.roster-actions .btn svg{width:17px;height:17px;min-width:17px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;}
.profiles-card h3{font-size:clamp(13px,3.5vw,17px);line-height:1.5;margin-bottom:15px;overflow-wrap:anywhere;}
.profiles-card .userrow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:15px 0;}
.profiles-card .userrow>div:first-child{min-width:0;}
.userrow .name{font-size:13px;line-height:1.35;}
.userrow .subtitle{font-size:11px;line-height:1.55;color:#9EB1C8;overflow-wrap:anywhere;}
.profiles-card .userrow .buttons{display:flex;flex-direction:column;align-items:stretch;gap:7px;min-width:83px;}
.profiles-card .userrow .buttons .btn{width:100%;font-size:11px;min-height:33px;padding:7px 9px;border-radius:10px;}
.profiles-card .userrow .buttons .btn.danger{background:#3B1B2B;color:#F0CDD9;border-color:#855067;}
/* Form fields, chat and roster surfaces keep same color family */
.order-content{background:#0C1728;color:#F1F6FD;border-color:#354B66;}
.my-day{border-color:#344E6A;}
.schedule-modal,.schedule-cell,.schedule-grid{color:var(--text);}
.schedule-mobile-row{border-color:#31465D;}
.schedule-read{color:#A7BAD1;}
.schedule-badge-live{background:#21475E!important;border-color:#5782A2!important;color:#D9F1FF!important;}
.time-field .time-colon{color:#BDD7EF;}
.time-field .time-part:focus{border-color:#A0BDDB;}
.chat-conversation.is-selected{background:#233E5F;border-color:#729DCB;}
.chat-inbox,.chat-snippet,.chat-conversation-info{color:#A9BDD4;}
.chat-status,.chat-head-count,.chat-filter{background:#1C324A;color:#D4E6F8;border-color:#496889;}
.chat-status-new,.chat-filter.active,.chat-unread-badge{background:#A0BDDB;color:#0A1727;border-color:#A0BDDB;}
.chat-status-confirmed,.chat-confirm-btn{background:#214D49!important;border-color:#5D9890!important;color:#D9F4EA!important;}
.chat-conversation.is-unread{border-left-color:#A0BDDB;}
.chat-conversation:hover{border-color:#7E9DBD;}
.chat-booking{background:#152C40;border-color:#426180;color:#DCEBFA;}
.chat-booking-meta,.chat-booking-contact,.chat-booking small,.chat-question-note{color:#C0D2E7;}
.chat-messages{background:#0C1728;border-color:#2C4A68;}
.chat-bubble{background:#203752;color:#F1F7FD;}
.chat-bubble.staff{background:#315475;}
.chat-bubble.system{background:#16283C;color:#C7D9EF;}
.chat-bubble small{color:#D3E5FA;}
.chat-quick-chip{background:#1B3149;color:#DCEBFC;border-color:#476887;}
.chat-quick-chip:hover{background:#2A4562;border-color:#A0BDDB;}
.chat-quick-title,.chat-reply-label{color:#D6E5F7;}
.chat-thread-header .chat-thread-eyebrow{color:#A0BDDB;}
#toast{background:#203753;border-color:#6489B1;color:#F5FAFF;}
/* Nav: translucent blue dock and larger hit boxes. */
.bottom{
  background:rgba(9,18,33,.96);border:1px solid #334C6A;border-bottom:0;
  padding:12px 10px calc(12px + env(safe-area-inset-bottom,0px));
  box-shadow:0 -11px 30px rgba(0,0,0,.28);border-radius:22px 22px 0 0;
}
.nav{color:#A0B4CF;border-radius:13px;min-height:55px;gap:6px;touch-action:manipulation;}
.nav svg{width:23px;height:23px;}
.nav.active{color:#D9E9FC;background:linear-gradient(150deg,#1A3658,#13243B);}
.nav.plus svg{background:linear-gradient(155deg,#BAD6EF,#8DBBEF);stroke:#0B1830;box-shadow:0 7px 19px rgba(0,0,0,.3);}
.nav.plus.active svg{background:#BEDAF4;}
/* Login and reusable messages */
.auth-box{border-color:#35516F;}
.auth-logo small{color:#A0BDDB;}
.logout{color:#E4A7B8;}
/* iOS PWA / narrow Android screens */
@media(min-width:800px){.shell{padding-top:calc(35px + env(safe-area-inset-top,0px));}}
@media(max-width:520px){
 .shell{padding:calc(18px + env(safe-area-inset-top,0px)) 16px calc(120px + env(safe-area-inset-bottom,0px));}
 .masthead{gap:8px;padding-bottom:27px;}
 .brandmark{gap:8px;}
 .brand-symbol{width:29px;height:42px;}
 .brand{font-size:18px;letter-spacing:.17em;}
 .brand-small{font-size:8px;letter-spacing:.16em;}
 .top-right{gap:6px;}
 .icon-btn,.avatar{width:43px;height:43px;min-width:43px;min-height:43px;border-radius:13px;}
 .page-title{font-size:clamp(25px,6.5vw,30px);}
 .summary{gap:8px;margin:24px 0 27px;}
 .summary .tile{padding:12px 11px;min-height:102px;}
 .summary .big{font-size:29px;}
 .summary .tile small{font-size:10px;}
 .summary-icon{width:17px;height:17px;margin-bottom:7px;}
 .card{padding:17px;margin:15px 0;}
 .roster-actions{gap:8px;}
 .roster-actions .btn[data-view="schedule"]{min-height:51px;}
 .profiles-card .userrow{gap:7px;}
 .profiles-card .userrow .buttons{min-width:78px;}
 .profiles-card .userrow .buttons .btn{font-size:10.5px;min-height:32px;padding:6px 8px;}
 .reservation{padding:13px 11px;gap:9px;}
 .reservation .btn.small{padding:8px 10px;font-size:11px;}
 .time{min-width:58px;padding:10px 6px;font-size:13px;}
 .bottom{padding-left:7px;padding-right:7px;}
 .nav{font-size:10px;}
}
@media(max-width:370px){
 .shell{padding-left:12px;padding-right:12px;}
 .brand-symbol{width:25px;height:37px;}
 .brand{font-size:16px;letter-spacing:.12em;}
 .brand-small{font-size:7px;}
 .top-right{gap:5px;}
 .icon-btn,.avatar{width:40px;height:40px;min-width:40px;min-height:40px;}
 .roster-actions .btn svg{width:14px;height:14px;min-width:14px;}
 .roster-actions .btn[data-view="my-schedule"],.roster-actions .btn[data-view="staff"]{font-size:10px;padding:8px 4px;}
 .reservation .btn.small{font-size:10px;padding:7px;}
}
@media(prefers-reduced-motion:reduce){.icon-btn,.avatar,.btn,.nav{transition:none!important;}}

/* v2.0.2 — notifications in the bell and in Admin, not as a sixth bottom tab. */
.bottom .announce-nav{display:none!important;}
.bottom{justify-content:space-evenly;}
.bottom .nav{flex:1 1 0;max-width:160px;}
.announcement-bell{position:relative;overflow:visible;cursor:pointer;}
.announcement-bell.is-open{background:linear-gradient(150deg,#315274,#182D46);border-color:#8BAFD1;}
.announcement-bell.has-unread{border-color:#90B6DD;}
.prolet-unread-badge{
 position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;
 border-radius:100px;padding:0 4px;background:#A0BDDB;color:#080813;
 display:flex;justify-content:center;align-items:center;font-size:10px;font-weight:850;
 box-shadow:0 1px 0 #080813,0 0 0 2px #080813;line-height:1;
}
.admin-announcements-entry{display:flex;flex-direction:column;gap:12px;}
.admin-announcements-heading{display:flex;align-items:flex-start;gap:12px;}
.admin-announcements-heading svg{width:22px;height:22px;flex:none;stroke:#A0BDDB;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-top:2px;}
.admin-announcements-entry h3{margin:0 0 7px;font-size:17px;}
.admin-announcements-entry p{color:#AFBFD5;font-size:12px;line-height:1.6;margin:0;}
.admin-announcements-action{min-height:43px;font-size:12px;display:flex;justify-content:center;align-items:center;gap:8px;}
.announce-admin-back{display:inline-flex;align-items:center;margin:0 0 19px;padding:9px 13px;min-height:37px;}
.prolet-push-activate{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#15253C;border:1px solid #3C5775;border-radius:13px;padding:12px;margin-top:16px;color:#D5E3F4;font-size:12px;}
.prolet-push-activate .btn{flex:none;}
.notice.warn .push-enable-btn{margin:12px 0 0;display:block;}
.announce-compose h3{margin-bottom:18px;}
.announce-compose textarea{min-height:110px;line-height:1.6;}
.announce-compose .btn svg{width:18px;height:18px;stroke:currentColor;fill:none;vertical-align:middle;stroke-width:1.8;}
.announce-heading{margin-top:25px;}
.announce-list{display:grid;gap:12px;}
.announce-card{padding:18px;border:1px solid #344F6D;border-radius:17px;background:linear-gradient(155deg,#16263C,#0D192C);box-shadow:0 7px 22px rgba(0,0,0,.19);}
.announce-card.is-unread{border-color:#83ADD6;background:linear-gradient(155deg,#203E5D,#101E34);}
.announce-top{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:10px;}
.announce-status{color:#BEDAF2;font-weight:800;font-size:11px;}
.is-read .announce-status{color:#8DA6C2;}
.announce-date,.announce-by,.announce-stat{color:#9EB4CD;font-size:11px;line-height:1.6;}
.announce-card h3{color:#F4F8FF;font-size:16px;line-height:1.4;margin:0 0 8px;}
.announce-message{color:#D6E3F4;font-size:13px;line-height:1.65;margin:0 0 15px;white-space:pre-wrap;overflow-wrap:anywhere;}
.announce-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;}
.announce-stat{margin-top:7px;}
@media(max-width:370px){
 .prolet-push-activate{flex-direction:column;align-items:stretch;}
 .admin-announcements-entry{padding:15px;}
}
