/* Flores365 election-night community dock; separate from dashboard nav. */
.f365-community{
 position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));
 z-index:2500;font-family:"DM Sans",system-ui,sans-serif;
 color:#edf1f3;max-width:calc(100vw - 24px);pointer-events:none;
}
.f365-community-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;pointer-events:auto}
.f365-community-online{
 display:inline-flex;align-items:center;gap:7px;background:rgba(12,27,35,.97);
 border:1px solid #5a6864;color:#c8e8d4;border-radius:999px;
 padding:9px 12px;font-size:11px;font-weight:800;
 box-shadow:0 5px 22px #0006;white-space:nowrap;
}
.f365-community-dot{width:7px;height:7px;border-radius:100%;background:#79dba0;box-shadow:0 0 10px #6fdf997c}
.f365-community-online[data-status=offline] .f365-community-dot,
.f365-community-online[data-status=unknown] .f365-community-dot{background:#b4a181;box-shadow:none}
.f365-community-launch{border:1px solid #c6a76d;background:#c7a46a;color:#15222b;border-radius:999px;min-height:43px;
 padding:10px 17px;box-shadow:0 10px 30px #0008;font:900 12px "Manrope",system-ui,sans-serif;white-space:nowrap}
.f365-community-launch:hover{background:#f0cf98}
.f365-chat-panel{
 position:absolute;bottom:calc(100% + 13px);right:0;width:min(375px,calc(100vw - 24px));
 max-height:min(610px,calc(100dvh - 120px));height:min(555px,calc(100dvh - 120px));
 background:#0c1722;border:1px solid #6c634e;border-radius:16px;
 box-shadow:0 18px 80px #000c;overflow:hidden;display:flex;flex-direction:column;pointer-events:auto;
}
.f365-chat-panel[hidden]{display:none!important}
.f365-chat-header{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(100deg,#182d35,#172321);
 border-bottom:1px solid #41504e;padding:14px 16px;gap:10px}
.f365-chat-header strong{font:800 15px "Manrope",system-ui,sans-serif;color:#f2dec2}
.f365-chat-header small{display:block;font-size:10px;color:#aabec7;margin-top:3px}
.f365-chat-close{border:1px solid #53606a;border-radius:8px;background:#182834;color:#d9e3e8;padding:5px 9px;font-size:15px}
.f365-chat-account{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:9px;row-gap:3px;align-items:center;
 padding:11px 13px;background:#14232d;border-bottom:1px solid #263b44}
.f365-chat-account #f365-chat-nickname{grid-column:1;grid-row:1/3;font-size:11px;font-weight:800;color:#e6d4b5;line-height:1.45}
.f365-chat-account label{grid-column:2;font-size:9px;color:#aec0c9}
.f365-chat-account select{grid-column:2;width:94px;background:#172d39;color:#e7eff1;border:1px solid #526474;border-radius:7px;font-size:11px;padding:5px}
.f365-chat-connection{font-size:10px;color:#a4bcc8;background:#101d27;border-bottom:1px solid #283c47;padding:7px 14px}
.f365-chat-connection[data-status=ok]{color:#9fdbb5}.f365-chat-connection[data-status=error]{color:#f3b7a8}
.f365-chat-messages{flex:1;min-height:60px;overflow-y:auto;overscroll-behavior:contain;padding:13px;
 display:flex;flex-direction:column;gap:12px;scrollbar-color:#455e68 transparent}
.f365-chat-empty{font-size:12px;color:#94a8b4;text-align:center;margin:30px 4px}
.f365-chat-item{display:flex;flex-direction:column;max-width:95%;align-self:flex-start;background:#1a2b38;border:1px solid #334d57;
 border-radius:11px 11px 11px 3px;padding:9px 12px;word-break:break-word}
.f365-chat-item.is-mine{align-self:flex-end;background:#27362d;border-color:#786944;border-radius:11px 11px 3px 11px}
.f365-chat-item-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:5px}
.f365-chat-item-meta strong{font-size:10px;color:#eed5a6;overflow-wrap:anywhere}
.f365-chat-item-meta time{font-size:9px;color:#91aab6;margin-left:auto;white-space:nowrap}
.f365-chat-state-chip{font-size:9px;border-radius:5px;background:#314855;color:#d8e5e9;padding:1px 5px}
.f365-chat-body{color:#e3eaf0;font-size:12px;line-height:1.55;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.f365-chat-report{align-self:flex-end;padding:3px 0 0;border:0;background:transparent;color:#9aabba;font-size:9px;cursor:pointer}
.f365-chat-report:hover{color:#f1c4a9}
.f365-chat-removed{font-size:11px;color:#91a2ac;font-style:italic}
.f365-chat-compose{display:flex;align-items:stretch;gap:8px;padding:10px 12px 9px;border-top:1px solid #354651;background:#101f28}
.f365-chat-compose textarea{flex:1;min-width:0;resize:none;border-radius:8px;background:#1d303b;border:1px solid #3c5660;
 color:#f1f5f6;font-size:12px;padding:10px;outline:none}
.f365-chat-compose textarea:focus{border-color:#d3b47b}
.f365-chat-compose textarea:disabled{opacity:.55}
.f365-chat-compose button{border:1px solid #d6b980;background:#d7b47a;color:#15222b;border-radius:8px;
 padding:0 13px;font-size:12px;font-weight:800}
.f365-chat-compose button:disabled{opacity:.5;cursor:not-allowed}
.f365-chat-notice{font-size:9px;line-height:1.5;color:#a0b2bd;background:#111f27;padding:9px 12px;border-top:1px solid #2b3e46}
.f365-chat-notice strong{color:#dfc698}
.f365-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media(max-width:700px){
 .f365-community{right:12px;bottom:max(13px,env(safe-area-inset-bottom));}
 .f365-community-online{font-size:10px;padding:8px 9px}
 .f365-community-launch{font-size:11px;padding:9px 12px;min-height:39px}
 .f365-chat-panel{height:min(520px,calc(100dvh - 110px));max-height:calc(100dvh - 110px);width:min(370px,calc(100vw - 24px));}
}
@media(max-width:345px){.f365-community-actions{gap:5px}.f365-community-online{font-size:9px}.f365-community-launch{font-size:10px;padding:8px}}


/* Secure, self-service public nickname editing */
.f365-chat-identity{grid-column:1;grid-row:1/3;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.f365-chat-account .f365-chat-identity #f365-chat-nickname{grid-column:auto;grid-row:auto;overflow-wrap:anywhere}
.f365-chat-edit-name{border:0;background:transparent;color:#d6b981;font-size:10px;cursor:pointer;padding:3px 0;text-decoration:underline;text-underline-offset:3px}
.f365-chat-edit-name:disabled{opacity:.5;cursor:default}
.f365-chat-name-editor{background:#12242e;padding:10px 13px;border-bottom:1px solid #344a55}
.f365-chat-name-editor[hidden]{display:none!important}
.f365-chat-name-editor label{display:block;color:#bed2da;font-size:10px;margin-bottom:7px}
.f365-chat-name-row{display:flex;align-items:stretch;gap:5px}
.f365-chat-name-row input{flex:1;min-width:0;padding:8px 9px;border-radius:7px;border:1px solid #50636d;background:#0f1b25;color:#f1f4f7;font:12px "DM Sans",system-ui,sans-serif}
.f365-chat-name-row button{border-radius:7px;border:1px solid #8e774e;background:#29342f;color:#edd6ad;font-size:10px;padding:7px;cursor:pointer;white-space:nowrap}
.f365-chat-name-row button:disabled{opacity:.6}
.f365-chat-name-editor small{display:block;color:#93a8b7;font-size:9px;line-height:1.5;margin-top:5px}
#f365-chat-name-error{color:#f1bf9f;font-size:10px;margin:5px 0 0}

/* Flores365 slim OS-inspired status taskbar — one continuous low-profile strip.
   Online count is driven by existing actual WebSocket presence, not a mock value. */
body{padding-bottom:calc(54px + env(safe-area-inset-bottom,0px))}
.f365-community{
  left:0;right:0;bottom:0;max-width:none;width:100%;
  padding:0 max(15px,env(safe-area-inset-right)) env(safe-area-inset-bottom,0px) max(15px,env(safe-area-inset-left));
  background:linear-gradient(100deg,#101c28f7,#111e29fa 62%,#182b2af5);
  border-top:1px solid #506257;
  box-shadow:0 -9px 34px #0005;
  backdrop-filter:blur(17px);-webkit-backdrop-filter:blur(17px);
  pointer-events:auto;
}
.f365-community-actions{
  width:100%;min-height:45px;max-width:1380px;margin:0 auto;
  display:flex;justify-content:flex-start;align-items:center;gap:12px;
}
.f365-community-brand{
  display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap;color:#e2e8e7;
  padding-right:15px;border-right:1px solid #43525a;
}
.f365-community-brand strong{font:900 19px/1 "Manrope",system-ui,sans-serif;letter-spacing:-.08em}
.f365-community-brand strong span{color:#e0ba7b}
.f365-community-brand small{font:800 9px/1.15 "Manrope",system-ui,sans-serif;letter-spacing:.13em;color:#a6b7bd}
.f365-community-online{
  background:transparent;border:0;box-shadow:none;
  font:700 10px "Manrope",system-ui,sans-serif;color:#a7cdbb;
  padding:8px 1px;gap:8px;border-radius:5px;min-height:31px;
}
.f365-community-dot{width:7px;height:7px}
.f365-community-clock{
  margin-left:auto;color:#8da0ac;white-space:nowrap;
  font:700 10px "Manrope",system-ui,sans-serif;
}
.f365-community-launch{
  min-height:31px;height:31px;padding:4px 12px;display:inline-flex;align-items:center;gap:8px;
  border-radius:7px;border:1px solid #88744f;background:#29352d;color:#edd0a0;
  box-shadow:none;font:800 11px/1 "Manrope",system-ui,sans-serif;
  transition:background .15s,border-color .15s;
}
.f365-community-launch svg{
  width:16px;height:16px;flex:none;stroke:currentColor;fill:none;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round
}
.f365-community-launch:hover,.f365-community-launch:focus-visible,
.f365-community-launch.is-open{background:#44513a;border-color:#dfbe82;color:#ffe4b3}
.f365-chat-panel{
  position:absolute;bottom:calc(100% + 8px);
  right:max(15px,env(safe-area-inset-right));height:min(555px,calc(100dvh - 135px));
  max-height:calc(100dvh - 135px);width:min(375px,calc(100vw - 30px));
}
@media(max-width:700px){
 body{padding-bottom:calc(50px + env(safe-area-inset-bottom,0px))}
 .f365-community{left:0;right:0;width:100%;padding-left:max(9px,env(safe-area-inset-left));padding-right:max(9px,env(safe-area-inset-right));bottom:0}
 .f365-community-actions{min-height:43px;gap:8px}
 .f365-community-brand{padding-right:8px;gap:0}
 .f365-community-brand strong{font-size:16px}
 .f365-community-brand small{display:none}
 .f365-community-online{padding:5px 0;font-size:10px;gap:6px;white-space:nowrap}
 .f365-community-clock{font-size:9px}
 .f365-community-launch{min-height:30px;height:30px;padding:5px 9px;font-size:10px;gap:6px}
 .f365-community-launch svg{width:15px;height:15px}
 .f365-chat-panel{right:10px;bottom:calc(100% + 7px);width:min(370px,calc(100vw - 20px));height:min(520px,calc(100dvh - 116px));max-height:calc(100dvh - 116px)}
}
@media(max-width:380px){
 .f365-community-actions{gap:5px}
 .f365-community-brand{padding-right:5px}
 .f365-community-online{font-size:9px}
 .f365-community-clock{display:none}
 .f365-community-launch{font-size:10px}
}
@media(max-height:450px){
 .f365-chat-panel{max-height:calc(100dvh - 70px);height:calc(100dvh - 70px)}
}

/* Live Central Time clock/calendar inside the fixed Election Center taskbar */
.f365-online-short{display:none}
.f365-community-clock{
 margin-left:auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;
 min-height:37px;padding:4px 10px;
 color:#e3cc9f;background:#1c3038;border:1px solid #435d61;border-radius:8px;
 cursor:pointer;white-space:nowrap;box-shadow:none;
 font-family:"Manrope",system-ui,sans-serif;
 transition:background .15s,border-color .15s;
}
.f365-community-clock:hover,.f365-community-clock:focus-visible,.f365-community-clock.is-open{
 background:#2a4448;color:#f3daac;border-color:#d5b987;
}
.f365-community-clock svg{width:17px;height:17px;flex:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;fill:none}
.f365-community-clock .f365-clock-chevron{width:10px;height:10px;color:#97adae}
.f365-clock-lines{display:flex;flex-direction:column;gap:1px;align-items:flex-start;line-height:1.12;text-align:left}
#f365-taskbar-time{font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.015em}
#f365-taskbar-date{font-size:9px;font-weight:700;color:#a8bdc5;letter-spacing:.025em}
.f365-calendar-panel{
 position:absolute;bottom:calc(100% + 8px);right:160px;z-index:10;
 width:min(354px,calc(100vw - 20px));
 max-height:calc(100dvh - 85px);overflow:auto;
 background:#0d1c2a;border:1px solid #83704e;border-radius:14px;color:#e4ebf2;
 box-shadow:0 15px 65px #000c;padding:0;
 font-family:"DM Sans",system-ui,sans-serif;
}
.f365-calendar-panel[hidden]{display:none!important}
.f365-calendar-header{padding:15px 16px 12px;border-bottom:1px solid #304955;background:linear-gradient(115deg,#1c3442,#142735);
 display:flex;align-items:center;justify-content:space-between;gap:9px}
.f365-calendar-header strong{display:block;font:850 15px "Manrope",system-ui,sans-serif;color:#f2d7a8}
.f365-calendar-header small{display:block;font-size:10px;color:#98b2c0;margin-top:3px}
#f365-calendar-close{border:1px solid #4b6070;border-radius:6px;background:#233847;color:#d5e1e7;padding:5px 9px;line-height:1.2;font-size:15px}
.f365-calendar-switch{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:14px 14px 7px}
.f365-calendar-switch strong{font:800 14px "Manrope",system-ui,sans-serif;color:#f3e0b8;text-align:center}
.f365-calendar-switch button{display:grid;place-items:center;width:34px;height:32px;border-radius:8px;
 background:#1b3040;border:1px solid #425a69;color:#d8e6ed;font-size:24px;line-height:1}
.f365-calendar-switch button:hover,.f365-calendar-switch button:focus-visible{background:#304a59;border-color:#c9ac7c}
.f365-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:5px 13px 6px;text-align:center}
.f365-calendar-weekdays span{font:800 10px "Manrope",system-ui,sans-serif;color:#9baebe}
.f365-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:0 13px 10px}
.f365-calendar-day{position:relative;display:grid;place-items:center;aspect-ratio:1;min-height:34px;
 background:#132638;color:#d4e0e7;border:1px solid transparent;border-radius:8px;
 font:750 12px "Manrope",system-ui,sans-serif;cursor:pointer}
.f365-calendar-day:hover,.f365-calendar-day:focus-visible{background:#284555;border-color:#a3b6c3}
.f365-calendar-day.is-today{border-color:#bb9963;color:#ffddaa}
.f365-calendar-day.is-selected{background:#c8ad7e!important;border-color:#e5d4b0!important;color:#182734!important}
.f365-calendar-day.has-event:not(.is-selected){background:#203b46;color:#ffe6ba}
.f365-calendar-event-dot{position:absolute;bottom:2px;left:50%;width:4px;height:4px;border-radius:50%;transform:translateX(-50%);background:#d5a96d}
.f365-calendar-day.is-selected .f365-calendar-event-dot{background:#375b5d}
.f365-calendar-selection{margin:2px 13px 0;padding:12px;border:1px solid #385363;border-radius:9px;background:#142a38;min-height:90px}
.f365-calendar-selection strong{display:block;font:800 12px "Manrope",system-ui,sans-serif;color:#f0d2a4}
.f365-calendar-selection p{font-size:11px;line-height:1.55;color:#aebfcb;margin:6px 0 0}
.f365-calendar-selection p.has-event{color:#d9e8d7}
.f365-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 14px}
.f365-calendar-footer span{display:flex;align-items:center;gap:7px;font-size:10px;color:#a5bbc7}
.f365-calendar-footer i{width:6px;height:6px;background:#d5a96d;border-radius:50%}
.f365-calendar-footer button{background:#253a42;border:1px solid #8d7854;border-radius:7px;padding:7px 11px;color:#f2d4a1;font:800 10px "Manrope",system-ui,sans-serif}
.f365-calendar-footer button:disabled{opacity:.45;cursor:default}
.f365-calendar-source{display:block;margin:0 14px 14px;color:#ead09f;font:700 10px "Manrope",system-ui,sans-serif;text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){
 .f365-online-short{display:inline}
 .f365-community-online #f365-online-label{display:none}
 .f365-community-actions{gap:6px}
 .f365-community-clock{margin-left:auto;gap:4px;min-height:35px;padding:3px 7px}
 .f365-community-clock svg{height:15px;width:15px}
 .f365-community-clock .f365-clock-chevron{width:8px;height:8px}
 #f365-taskbar-time{font-size:10px}
 #f365-taskbar-date{font-size:9px}
 .f365-calendar-panel{right:10px;width:min(354px,calc(100vw - 20px));max-height:calc(100dvh - 78px)}
}
@media(max-width:380px){
 .f365-community-actions{gap:4px}
 .f365-community-clock{margin-left:auto;padding:3px 5px;gap:3px}
 .f365-community-clock .f365-clock-chevron{display:none}
 .f365-community-clock svg{width:14px;height:14px}
 .f365-community-online{font-size:9px}
 .f365-community-launch{padding:5px 7px;gap:4px}
 .f365-community-launch svg{width:14px;height:14px}
}
@media(max-width:340px){
 .f365-community-brand{padding-right:4px}
 .f365-community-clock svg.f365-clock-icon{display:none}
}
