:root {
color-scheme: light dark;
/* Size of text in message bubbles */
--message-text-size: 10pt;
/* Height of caption panel */
--caption-panel-height: 4rem;
/* Wallpaper */
--wallpaper-url: url('../img/bkg/a00.png'); /* path relative to CSS file */
--wallpaper-repeat: repeat;
--wallpaper-blur: 0px;
--wallpaper-invert: 0;
--wallpaper-brightness: 1;
--wallpaper-size: contain;
--wallpaper-position: center;
/* Core Palette */
--clr-bright: light-dark(#fff, #181818);
--clr-dark: light-dark(#000, #fff);
--clr-transparent: transparent;
--clr-std-gray: #808080; /* Standard gray color */
--clr-std-ltgray: light-dark(#c0c0c0, #3f3f3f); /* Standard silver color */
--clr-std-teal: teal; /* Standard teal color */
--clr-std-grey: grey; /* Standard grey color */
--clr-std-orange: #ffa500; /* Standard orange color */
/* Primary Accent Colors */
--clr-primary-accent: light-dark(#2094f3, #0e6dba); /* blue 500, links, borders */
--clr-primary-accent-hover: light-dark(#0a6ebd, #116ab4); /* hover for primary accent */
--clr-primary-accent-focus-shadow: light-dark(rgba(33, 150, 243, 0.25), rgba(3, 7, 12, 0.25)); /* focus shadow for inputs with primary accent */
--clr-primary-accent-transparent-medium: light-dark(rgba(33, 150, 243, 0.3), rgba(20, 70, 120, 0.3)); /* for active call shadow */
--clr-primary-action: light-dark(#1e89e6, #1571c1); /* blue 600, primary buttons */
--clr-primary-action-hover: light-dark(#2962ff, #0037b8); /* hover for primary action */
--clr-secondary-accent: light-dark(#0097a8, #006570); /* Checkmark icon, unread badge bg */
--clr-primary-light-blue: light-dark(#bcdefb, #78a0be); /* light-blue 100, side caption panel text/link */
--clr-light-blue-accent: light-dark(#0398e2, #0379b5); /* light-blue accent, reply quote border, pinned active dot */
/* Secondary/Neutral Grays & Backgrounds */
--clr-body-background: var(--clr-std-ltgray); /* Main page background */
--clr-text-primary: light-dark(#666, #999); /* Default text color */
--clr-text-secondary: light-dark(#757575, #8a8a8a); /* Muted text, icons e.g. menu trigger */
--clr-text-tertiary: light-dark(#999, #787878); /* Even more muted text, borders, some icons */
--clr-text-tertiary-activated: #888; /* Activated (hover, focus) tertiary text */
--clr-text-placeholder: light-dark(#bbb, #555); /* Placeholder text */
--clr-text-disabled: light-dark(#888, #777); /* Disabled text e.g. in-place-edit */
--clr-border-light: light-dark(#ccc, #555); /* Common light border, separator */
--clr-border-muted: light-dark(#ddd, #444); /* Softer border, e.g. in-place-edit dashed */
--clr-background-off-white: light-dark(#fafafa, #222); /* Common very light background */
--clr-background-light-gray: light-dark(#f0f0f0, #0f0f0f); /* HR background, action button hover */
--clr-background-extra-light-gray: light-dark(#eee, #222); /* Flat button faux bg, tabbar bg, chip bg */
--clr-background-blue-gray-50: light-dark(#edf0f2, #202c33); /* Contact hover, messages panel, send message panel */
--clr-background-blue-gray-75: light-dark(#e1e8eb, #182124); /* Contact pinned */
--clr-background-blue-gray-100: light-dark(#cfd8dc, #20272a); /* Contact selected, uploader bar */
--clr-background-blue-gray-300: light-dark(#b0bec5, #354146); /* Topic/Info caption panel bg, some lettertiles */
--clr-blue-wash-light: light-dark(#f0f0ff, #22222d); /* bot form button bg */
--clr-blue-wash-medium: light-dark(#d8e8ff, #123550); /* Pinned active bg */
--clr-primary-wash: light-dark(#e3f2fd, #072f45); /* Secondary button hover, avatar upload hover, bubble meta deleted bg */
--clr-indigo-50: light-dark(#e8eaf6, #1a2c44); /* Outline button hover */
/* Semantic Colors: Danger, Warning, Success, Info */
--clr-danger-text: light-dark(#d33131, #931f1f); /* Danger text, invalid label */
--clr-danger-text-hover: light-dark(#f44034, #cc1100); /* Hover for danger text */
--clr-error-text-muted: light-dark(#cc6666, #993333); /* For less critical errors like invalid in-place edit icon/text */
--clr-error-bg-light: light-dark(#ffccd1, #ff6675); /* Info box error bg */
--clr-error-border-light: light-dark(#ffbdc6, #ff334e); /* Info box error border */
--clr-error-text-dark: light-dark(#b51c1c, #de2323); /* Info box error text, icon */
--clr-error-icon: light-dark(#ef5552, #d81b0e); /* Info box error icon specific */
--clr-warning-accent: light-dark(#FFC107, #808020); /* Amber, danger-color */
--clr-warning-bg-light: light-dark(#fff9c4, #00060c); /* Info box warning bg */
--clr-warning-border-light: light-dark(#fff59d, #000a2b); /* Info box warning border */
--clr-warning-text-dark: light-dark(#6d4c41, #a08356); /* Info box warning text */
--clr-warning-icon: light-dark(#fbc02d, #b48204); /* Info box warning icon specific */
--clr-info-bg-light: light-dark(#e1f5fe, #010a0e); /* Info box info bg */
--clr-info-border-light: light-dark(#b3e5fc, #001824); /* Info box info border */
--clr-info-text-dark: light-dark(#0288d1, #00151f); /* Info box info text, icon */
/* Special UI Elements Colors */
--clr-header-stripe-bg: light-dark(#3949AB, #12152f); /* Deep-blue stripe at top */
--clr-scrollbar-thumb: light-dark(rgba(0,0,0,0.3), rgba(255,255,255,0.3));
--clr-scrollbar-track: light-dark(rgba(255,255,255,0.1), rgba(0,0,0,0.1));
--clr-menu-item-hover-bg: light-dark(#f5f5f5, #0a0a0a);
--clr-alert-overlay-bg: light-dark(rgba(240,240,240,0.85), rgba(15,15,15,0.85));
--clr-verified-accent: light-dark(#02a6f2, #027db6); /* Verified color */
--clr-staff-accent: light-dark(#689f38, #598830); /* Staff color */
--clr-badge-inv: light-dark(#fffd, #cccd); /* Badge inverted text */
--clr-cyan-50: light-dark(#e0f7fa, #2f3e43); /* Dummy view bg */
--clr-overlay-white-strong: light-dark(rgba(255, 255, 255, 0.9), rgba(0,0,0,0.90)); /* Image preview bg, video container bg */
--clr-gray-medium-bg: light-dark(#777, #444); /* Image preview container bg (darker gray) */
--clr-toast-bg: #333;
--clr-toast-text: light-dark(#eee, #aaa);
--clr-online: #4caf50;
--clr-offline: light-dark(#ccc, #999);
/* Shadow Colors & Values */
--clr-shadow-input-underline: rgba(0,0,0, 0.1);
--clr-shadow-hr-inset: rgba(0,0,0,0.15);
--clr-shadow-scrollbar-track-webkit: rgba(0,0,0,0.2);
--clr-shadow-button: rgba(0,0,0, 0.25); /* General purpose shadow for buttons, spinners etc. */
--clr-shadow-button-inset-active: rgba(0,0,0, 0.125);
--clr-shadow-dialog: rgba(0,0,0, 0.45); /* For menus, alerts, dialogs */
--clr-shadow-panel-divider: rgba(0,0,0,0.1); /* For subtle shadows under/above panels */
--clr-shadow-gray-strong: light-dark(var(--clr-std-gray), #333); /* For panel box-shadows using 'gray' keyword */
--clr-shadow-silver-subtle: light-dark(var(--clr-std-ltgray), #333); /* For panel box-shadows using 'silver' keyword */
--clr-shadow-bubble-drop: rgba(0,0,0,0.3);
/* Buttons */
--clr-button-primary-bg: var(--clr-primary-action);
--clr-button-primary-text: var(--clr-bright);
--clr-button-primary-hover-bg: var(--clr-primary-action-hover);
--clr-button-secondary-bg: var(--clr-bright);
--clr-button-secondary-text: var(--clr-primary-accent);
--clr-button-secondary-hover-bg: var(--clr-primary-wash);
--clr-button-outline-text: var(--clr-primary-accent);
--clr-button-outline-border: var(--clr-std-ltgray);
--clr-button-outline-hover-bg: var(--clr-indigo-50);
--clr-button-danger-bg: light-dark(#ec645f, #d74742);
--clr-button-danger-text: var(--clr-bright);
--clr-button-danger-hover-bg: light-dark(#f77, #a55);
--clr-button-positive-bg: light-dark(#71c46f, #3f983e);
--clr-button-positive-text: var(--clr-bright);
--clr-button-positive-hover-bg: light-dark(#7fed7f, #6ec26e);
/* Inputs */
--clr-input-text: var(--clr-text-primary);
--clr-input-border: var(--clr-border-light);
--clr-input-border-focus: var(--clr-primary-accent);
--clr-input-shadow: var(--clr-shadow-input-underline);
--clr-input-shadow-focus: var(--clr-primary-accent-focus-shadow);
--clr-input-invalid-border: light-dark(#e57171, #561010);
--clr-input-invalid-shadow: light-dark(#e5737340, #1a0c0c40);
--clr-input-placeholder-text: var(--clr-text-placeholder);
/* Chat Bubbles */
--clr-bubble-left-bg: light-dark(#c4e0a3, #3e5c1f);
--clr-bubble-left-bg-flash: light-dark(#94a97c, #2c4517);
--clr-bubble-right-bg: var(--clr-background-off-white);
--clr-bubble-right-bg-flash: var(--clr-border-light);
--clr-bubble-text: light-dark(#212121, #bbc);
--clr-bubble-meta-text: var(--clr-text-primary);
--clr-bubble-meta-deleted-bg: var(--clr-primary-wash);
--clr-bubble-meta-date-bg: light-dark(rgba(255 255 255 / 80%), rgba(40 40 40 / 80%));
--clr-bubble-timestamp-text: light-dark(#777, #888);
--clr-bubble-author-text: light-dark(#777, #666);
/* Reply Quotes */
--clr-reply-quote-border: var(--clr-light-blue-accent);
--clr-reply-quote-text: var(--clr-text-primary);
--clr-reply-quote-left-bg: light-dark(rgba(255, 255, 255, 0.4), rgba(0, 0, 0, 0.4));
--clr-reply-quote-right-bg: light-dark(#8080801f, #c4c4c42e);
--clr-reply-quote-preview-bg: var(--clr-background-off-white);
/* Badges (small inline labels) */
--clr-badge-default-bg: light-dark(#e8e8e8, #171717);
--clr-badge-default-text: var(--clr-text-primary);
--clr-badge-default-border: var(--clr-std-ltgray);
--clr-badge-green-bg: light-dark(#efe, #131);
--clr-badge-green-text: light-dark(#383, #363);
--clr-badge-green-border: light-dark(#aca, #242);
--clr-badge-yellow-bg: light-dark(#ffe, #331); /* Note: #ffe is close to white, dark will be black */
--clr-badge-yellow-text: light-dark(#660, #660);
--clr-badge-yellow-border: light-dark(#cc9, #552);
--clr-badge-blue-bg: light-dark(#f0f0ff, #224);
--clr-badge-blue-text: light-dark(#339, #447);
--clr-badge-blue-border: light-dark(#aad, #336);
--clr-badge-red-bg: light-dark(#fee, #522);
--clr-badge-red-text: light-dark(#933, #744);
--clr-badge-red-border: light-dark(#c99, #633);
--clr-badge-magenta-bg: light-dark(#fef, #535);
--clr-badge-magenta-text: light-dark(#939, #747);
--clr-badge-magenta-border: light-dark(#c9c, #636);
/* Chips */
--clr-chip-bg: var(--clr-background-extra-light-gray);
--clr-chip-invalid-text: var(--clr-error-text-muted);
--clr-chip-invalid-bg: var(--clr-badge-red-bg);
--clr-chip-remove-icon-bg: light-dark(#aaa, #555);
--clr-chip-remove-icon-text: var(--clr-background-extra-light-gray);
--clr-chip-remove-icon-hover-bg: var(--clr-text-placeholder);
--clr-chip-remove-icon-hover-text: var(--clr-bright);
/* Tabbar */
--clr-tabbar-bg: var(--clr-background-extra-light-gray);
--clr-tabbar-inactive-text: light-dark(rgba(33,150,243,0.6), rgba(22,90,160,1));
--clr-tabbar-active-text: var(--clr-primary-accent);
--clr-tabbar-inactive-border: var(--clr-border-light);
--clr-tabbar-active-border: var(--clr-primary-accent);
/* Miscellaneous UI */
--clr-highlight-text: var(--clr-std-teal);
--clr-highlight-preview-text: light-dark(#5f9ea0, #205e60);
--clr-spinner-track: light-dark(#f3f3f3, #0c0c0c);
--clr-spinner-active: var(--clr-primary-action);
--clr-cropper-bounding-box-border: var(--clr-primary-action);
--clr-cropper-bounding-box-bg: var(--clr-text-tertiary);
--clr-cropper-cutout-border: var(--clr-text-tertiary);
--clr-cropper-cutout-shadow: light-dark(rgb(230 246 255 / 66%), rgb(25 10 0 / 66%));
--clr-audio-bg: var(--clr-background-extra-light-gray);
--clr-audio-icon: light-dark(rgba(102, 117, 117, 0.8), rgba(153, 138, 138, 0.8));
--clr-audio-icon-disabled: light-dark(rgba(153 153 153 / 75%), rgba(102 102 102 / 75%));
--clr-audio-timer-text: light-dark(rgba(102, 102, 102, 0.75), rgba(153, 153, 153, 0.75));
--clr-pinned-menu-bg: light-dark(#f8f8f8, #1a1a1a);
--clr-drag-n-drop-border: var(--clr-std-grey);
--clr-drag-n-drop-text: var(--clr-std-grey);
--clr-drag-n-drop-bg: light-dark(rgba(255,255,255,.95), rgba(0,0,0,.95));
--clr-drag-n-drop-outline: light-dark(rgba(255,255,255,.95), rgba(0,0,0,.95));
/* Letter Tiles Base */
--clr-lettertile-default-text: light-dark(#fafafacc, #dcdcdccc);
--clr-lettertile-hover-text: var(--clr-bright);
/* Letter Tile Backgrounds (lt-bg) */
--clr-lt-bg-0: #ef9a9a;
--clr-lt-bg-1: #90caf9;
--clr-lt-bg-2: #b0bec4;
--clr-lt-bg-3: #b49edb;
--clr-lt-bg-4: #ffa98f;
--clr-lt-bg-5: #a4d5a6;
--clr-lt-bg-6: #ededed;
--clr-lt-bg-7: #e6ee9b;
--clr-lt-bg-8: #c4e0a3;
--clr-lt-bg-9: #f0e57f;
--clr-lt-bg-10: #f490b1;
--clr-lt-bg-11: #a0a8da;
--clr-lt-bg-12: #ffdf80;
--clr-lt-bg-13: #bcaaa4;
--clr-lt-bg-14: #80deea;
--clr-lt-bg-15: #cd92d8;
/* Letter Tile Dark Backgrounds (dk-bg) */
--clr-dk-bg-0: #c72929;
--clr-dk-bg-1: #ad1457;
--clr-dk-bg-2: #681b98;
--clr-dk-bg-3: #4527a0;
--clr-dk-bg-4: #293594;
--clr-dk-bg-5: #1565c1;
--clr-dk-bg-6: #0277bb;
--clr-dk-bg-7: #00838f;
--clr-dk-bg-8: #006b5f;
--clr-dk-bg-9: #2f7f33;
--clr-dk-bg-10: #54892f;
--clr-dk-bg-11: #9e9e24;
--clr-dk-bg-12: #f9a824;
--clr-dk-bg-13: #ff9100;
--clr-dk-bg-14: #f06c00;
--clr-dk-bg-15: #d54215;
/* Letter Tile Foreground Colors (lt-fg) */
--clr-lt-fg-0: var(--clr-lt-bg-0); /* Use same as bg, as these are for text, will follow light-dark */
--clr-lt-fg-1: var(--clr-lt-bg-1);
--clr-lt-fg-2: var(--clr-lt-bg-2);
--clr-lt-fg-3: var(--clr-lt-bg-3);
--clr-lt-fg-4: var(--clr-lt-bg-4);
--clr-lt-fg-5: var(--clr-lt-bg-5);
--clr-lt-fg-6: var(--clr-lt-bg-6);
--clr-lt-fg-7: var(--clr-lt-bg-7);
--clr-lt-fg-8: var(--clr-lt-bg-8);
--clr-lt-fg-9: var(--clr-lt-bg-9);
--clr-lt-fg-10: var(--clr-lt-bg-10);
--clr-lt-fg-11: var(--clr-lt-bg-11);
--clr-lt-fg-12: var(--clr-lt-bg-12);
--clr-lt-fg-13: var(--clr-lt-bg-13);
--clr-lt-fg-14: var(--clr-lt-bg-14);
--clr-lt-fg-15: var(--clr-lt-bg-15);
/* Letter Tile Dark Foreground Colors (dk-fg) */
--clr-dk-fg-0: var(--clr-dk-bg-0); /* Use same as bg, as these are for text, will follow light-dark */
--clr-dk-fg-1: var(--clr-dk-bg-1);
--clr-dk-fg-2: var(--clr-dk-bg-2);
--clr-dk-fg-3: var(--clr-dk-bg-3);
--clr-dk-fg-4: var(--clr-dk-bg-4);
--clr-dk-fg-5: var(--clr-dk-bg-5);
--clr-dk-fg-6: var(--clr-dk-bg-6);
--clr-dk-fg-7: var(--clr-dk-bg-7);
--clr-dk-fg-8: var(--clr-dk-bg-8);
--clr-dk-fg-9: var(--clr-dk-bg-9);
--clr-dk-fg-10: var(--clr-dk-bg-10);
--clr-dk-fg-11: var(--clr-dk-bg-11);
--clr-dk-fg-12: var(--clr-dk-bg-12);
--clr-dk-fg-13: var(--clr-dk-bg-13);
--clr-dk-fg-14: var(--clr-dk-bg-14);
--clr-dk-fg-15: var(--clr-dk-bg-15);
}
/* Android workplace and office collaboration. */
#sidepanel.workplace-collaboration-panel {
width: 100%;
min-width: 0;
flex: 1 1 auto;
color-scheme: light;
background: #f4f5f7;
}
.workplace-collaboration-panel * {
box-sizing: border-box;
letter-spacing: 0;
}
.workplace-page {
display: flex;
position: relative;
width: 100%;
min-height: 100%;
overflow: hidden;
color: #242930;
background: #f4f5f7;
flex-direction: column;
}
.workplace-page button,
.workplace-page input,
.workplace-page textarea {
font: inherit;
letter-spacing: 0;
}
.workplace-page button {
text-transform: none;
}
.workplace-page > main {
min-height: 0;
overflow-y: auto;
flex: 1 1 auto;
}
.workplace-header {
display: grid;
grid-template-columns: 3.6rem minmax(0, 1fr) 3.6rem;
align-items: center;
min-height: 4.4rem;
padding-top: env(safe-area-inset-top);
border-bottom: 1px solid #e6e8eb;
background: #fff;
flex: none;
}
.workplace-header h1 {
min-width: 0;
margin: 0;
overflow: hidden;
font-size: 1.15rem;
font-weight: 650;
text-align: center;
text-overflow: ellipsis;
white-space: nowrap;
}
.workplace-header button {
display: grid;
place-items: center;
width: 3.6rem;
min-width: 3.6rem;
height: 3.6rem;
min-height: 3.6rem;
margin: 0;
padding: 0;
border: 0;
box-shadow: none;
color: #242930;
background: transparent;
}
.workplace-header button:last-child {
color: #246fce;
}
.workplace-header .material-icons {
font-size: 1.6rem;
}
.workplace-toast {
position: fixed;
z-index: 80;
bottom: max(1.5rem, env(safe-area-inset-bottom));
left: 50%;
max-width: calc(100% - 2rem);
padding: 0.7rem 1rem;
border-radius: 0.3rem;
color: #fff;
background: rgba(29,33,39,0.94);
text-align: center;
transform: translateX(-50%);
}
.workbench-page {
background: #fff;
}
.workbench-page > main {
padding: max(1.4rem, env(safe-area-inset-top)) 1.1rem 1.5rem;
}
.workbench-profile {
display: grid;
grid-template-columns: 3.4rem minmax(0, 1fr) 3rem;
align-items: center;
gap: 0.75rem;
min-height: 4.8rem;
}
.workbench-profile img {
width: 3.4rem;
height: 3.4rem;
border-radius: 0.45rem;
object-fit: cover;
}
.workbench-profile span,
.workbench-profile strong,
.workbench-profile small {
display: block;
min-width: 0;
}
.workbench-profile strong {
overflow: hidden;
font-size: 1.25rem;
text-overflow: ellipsis;
white-space: nowrap;
}
.workbench-profile small {
margin-top: 0.25rem;
color: #767e88;
}
.workbench-profile button {
display: grid;
place-items: center;
width: 3rem;
min-width: 3rem;
height: 3rem;
min-height: 3rem;
margin: 0;
padding: 0;
border: 0;
box-shadow: none;
color: #6c737c;
background: transparent;
}
.workbench-banner {
display: grid;
grid-template-columns: minmax(0, 1fr) 5.5rem;
align-items: center;
min-height: 9.5rem;
margin: 1.25rem 0 1.6rem;
padding: 1.35rem;
overflow: hidden;
border-radius: 0.5rem;
color: #fff;
background: #3d7ce5;
}
.workbench-banner strong,
.workbench-banner small {
display: block;
}
.workbench-banner strong {
max-width: 13rem;
font-size: 1.35rem;
line-height: 1.45;
}
.workbench-banner small {
margin-top: 0.8rem;
color: rgba(255,255,255,0.85);
}
.workbench-banner > .material-icons {
color: #d9e7ff;
font-size: 5rem;
}
.workbench-apps {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 1.4rem 0.7rem;
}
.workbench-apps button {
display: flex;
align-items: center;
width: 100%;
min-width: 0;
min-height: 5.8rem;
margin: 0;
padding: 0;
border: 0;
box-shadow: none;
color: #30353c;
background: transparent;
flex-direction: column;
}
.workbench-apps button > span {
display: grid;
position: relative;
place-items: center;
width: 3.7rem;
height: 3.7rem;
border-radius: 0.7rem;
color: #fff;
}
.workbench-apps span.tone-violet { background: #7659d6; }
.workbench-apps span.tone-orange { background: #f07835; }
.workbench-apps span.tone-red { background: #df4e46; }
.workbench-apps span.tone-blue { background: #3e78d6; }
.workbench-apps span.tone-green { background: #35a96b; }
.workbench-apps .material-icons {
font-size: 2rem;
}
.workbench-apps em {
position: absolute;
top: -0.35rem;
right: -0.35rem;
display: grid;
place-items: center;
min-width: 1.25rem;
height: 1.25rem;
padding: 0 0.25rem;
border: 2px solid #fff;
border-radius: 0.7rem;
color: #fff;
background: #e33f4b;
font-size: 0.68rem;
font-style: normal;
}
.workbench-apps strong {
width: 100%;
margin-top: 0.55rem;
overflow-wrap: anywhere;
font-size: 0.85rem;
font-weight: 500;
line-height: 1.25;
text-align: center;
}
.workplace-bottom-nav {
display: grid;
grid-template-columns: repeat(2, 1fr);
min-height: calc(4.4rem + env(safe-area-inset-bottom));
padding-bottom: env(safe-area-inset-bottom);
border-top: 1px solid #e5e7ea;
background: #fff;
flex: none;
}
.workplace-bottom-nav button {
display: flex;
align-items: center;
justify-content: center;
min-width: 0;
min-height: 4.4rem;
margin: 0;
padding: 0;
border: 0;
box-shadow: none;
color: #9aa1aa;
background: transparent;
flex-direction: column;
}
.workplace-bottom-nav button.active {
color: #2d73d2;
}
.workplace-bottom-nav .material-icons {
font-size: 1.65rem;
}
.workplace-bottom-nav span {
margin-top: 0.15rem;
font-size: 0.72rem;
}
.workplace-search {
display: grid;
grid-template-columns: 2.4rem minmax(0, 1fr);
align-items: center;
min-height: 3rem;
margin: 0.8rem;
padding: 0 0.65rem;
border: 1px solid #e4e7ea;
border-radius: 0.35rem;
background: #fff;
}
.workplace-search .material-icons {
color: #9ba2aa;
}
.workplace-search input {
width: 100%;
height: 2.8rem;
margin: 0;
padding: 0;
border: 0;
box-shadow: none;
background: transparent;
}
.organization-content {
background: #f4f5f7;
}
.organization-tree {
margin-top: 0.7rem;
background: #fff;
}
.organization-tree button {
display: grid;
grid-template-columns: 2.5rem minmax(0, 1fr) 2rem;
align-items: center;
gap: 0.4rem;
width: 100%;
min-height: 4rem;
margin: 0;
padding: 0.55rem 1rem;
border: 0;
border-bottom: 1px solid #eceef0;
border-radius: 0;
box-shadow: none;
color: #30353c;
background: #fff;
text-align: left;
}
.organization-tree button > span,
.organization-tree button strong,
.organization-tree button small {
display: block;
min-width: 0;
}
.organization-tree button strong {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.organization-tree button small {
margin-top: 0.2rem;
color: #8b929b;
}
/* 旧版组织架构的 .organization-root / .organization-department / .organization-members 三条规则
已删除:前两个类名 JSX 里早就没人用了,而 .organization-department 那条
`padding-left: 1.75rem !important` 会压过新版按层级算出来的内联 paddingLeft,
导致一级/二级/三级部门行左边距完全一样、树形层级看不出来(人员行没有 !important,缩进正常,
结果是"部门全平、人员缩进",比不缩进更乱)。新版完整规则在下面 .organization-department 那一块。 */
.organization-members img {
width: 2.5rem;
height: 2.5rem;
border-radius: 50%;
object-fit: cover;
}
.meeting-list {
padding-bottom: 1rem;
}
.workplace-tabs {
display: grid;
grid-template-columns: repeat(3, 1fr);
min-height: 3.2rem;
border-bottom: 1px solid #e7e9ec;
background: #fff;
}
.workplace-tabs button {
position: relative;
min-width: 0;
min-height: 3.2rem;
margin: 0;
padding: 0;
border: 0;
box-shadow: none;
color: #7b838d;
background: transparent;
}
.workplace-tabs button.active {
color: #286fcf;
font-weight: 600;
}
.workplace-tabs button.active::after {
position: absolute;
bottom: 0;
left: 30%;
width: 40%;
height: 0.18rem;
border-radius: 0.1rem;
background: #347bd7;
content: '';
}
.meeting-card,
.meeting-draft,
.meeting-status {
margin: 0.8rem;
border: 1px solid #e7e9ec;
border-radius: 0.45rem;
background: #fff;
}
.meeting-card {
padding: 1rem;
}
.meeting-card > header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 0.8rem;
padding-bottom: 0.85rem;
border-bottom: 1px solid #eceef1;
}
.meeting-card > header span,
.meeting-card > header strong,
.meeting-card > header small {
display: block;
}
.meeting-card > header small {
margin-bottom: 0.25rem;
color: #3575cf;
}
.meeting-card > header strong {
font-size: 1.08rem;
}
.meeting-card > header em {
flex: none;
padding: 0.3rem 0.5rem;
border-radius: 0.25rem;
color: #b26e10;
background: #fff3df;
font-size: 0.75rem;
font-style: normal;
}
.meeting-card > header em.accepted { color: #28784f; background: #e5f5ec; }
.meeting-card > header em.declined { color: #ad3d45; background: #fbe9eb; }
.meeting-card dl {
margin: 0.8rem 0 0;
}
.meeting-card dl > div {
display: grid;
grid-template-columns: 6.5rem minmax(0, 1fr);
align-items: start;
min-height: 2.1rem;
}
.meeting-card dt,
.meeting-card dd {
margin: 0;
}
.meeting-card dt {
display: flex;
align-items: center;
color: #757d87;
}
.meeting-card dt .material-icons {
margin-right: 0.35rem;
font-size: 1.15rem;
}
.meeting-card dd {
overflow-wrap: anywhere;
}
.meeting-card > footer {
display: flex;
justify-content: flex-end;
gap: 0.55rem;
margin-top: 0.8rem;
}
.meeting-card > footer button {
min-width: 5.4rem;
min-height: 2.5rem;
margin: 0;
padding: 0 0.8rem;
border: 1px solid #d8dce1;
border-radius: 0.3rem;
box-shadow: none;
color: #3073ce;
background: #fff;
}
.meeting-card > footer button.primary,
.meeting-card > footer button:last-child {
border-color: #347bd7;
color: #fff;
background: #347bd7;
}
.meeting-card > footer button .material-icons {
margin-right: 0.3rem;
font-size: 1.1rem;
vertical-align: middle;
}
.meeting-response {
display: grid !important;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.meeting-response button {
min-width: 0 !important;
padding: 0 0.3rem !important;
}
.meeting-draft {
display: grid;
grid-template-columns: 2.8rem minmax(0, 1fr) auto;
align-items: center;
gap: 0.6rem;
padding: 0.8rem;
}
.meeting-draft > .material-icons {
color: #347bd7;
font-size: 2rem;
}
.meeting-draft span,
.meeting-draft strong,
.meeting-draft small {
display: block;
min-width: 0;
}
.meeting-draft small {
margin-top: 0.2rem;
color: #838b95;
}
.meeting-draft button {
min-height: 2.4rem;
margin: 0;
padding: 0 0.6rem;
border: 0;
box-shadow: none;
color: #347bd7;
background: transparent;
}
.meeting-status {
padding: 1rem;
}
.meeting-status h2 {
margin: 0 0 0.8rem;
font-size: 1rem;
}
.meeting-status > div,
.report-statistics > div {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.meeting-status span,
.report-statistics > div span {
display: flex;
align-items: center;
min-width: 0;
flex-direction: column;
}
.meeting-status b,
.report-statistics > div b {
font-size: 1.35rem;
}
.meeting-status small,
.report-statistics > div small {
margin-top: 0.25rem;
color: #7c848e;
}
.report-editor-page > main {
padding-bottom: 1rem;
}
.report-period {
display: flex;
align-items: center;
gap: 0.7rem;
padding: 0.9rem 1rem;
border-bottom: 1px solid #e8eaed;
background: #fff;
}
.report-period > .material-icons {
color: #347bd7;
}
.report-period span,
.report-period strong,
.report-period small {
display: block;
}
.report-period small {
margin-top: 0.2rem;
color: #6b927d;
}
.report-field {
display: block;
position: relative;
margin-top: 0.7rem;
padding: 1rem;
background: #fff;
}
.report-field > span {
display: block;
margin-bottom: 0.65rem;
font-weight: 600;
}
.report-field > span b {
margin-right: 0.2rem;
color: #d8414c;
}
.report-field textarea {
display: block;
width: 100%;
height: 11rem;
margin: 0;
padding: 0.75rem 0.8rem 2rem;
resize: vertical;
border: 1px solid #dfe3e7;
border-radius: 0.3rem;
box-shadow: none;
background: #fff;
line-height: 1.5;
}
.report-field > small {
position: absolute;
right: 1.8rem;
bottom: 1.6rem;
color: #9ba2ac;
}
.report-attachment {
display: grid;
grid-template-columns: 2.5rem minmax(0, 1fr) 2rem;
align-items: center;
gap: 0.5rem;
width: calc(100% - 2rem);
min-height: 4.2rem;
margin: 0.8rem 1rem;
padding: 0.6rem 0.8rem;
border: 1px dashed #cad0d7;
border-radius: 0.35rem;
box-shadow: none;
color: #343a42;
background: #fff;
text-align: left;
}
.report-attachment > .material-icons:first-child {
color: #347bd7;
}
.report-attachment span,
.report-attachment strong,
.report-attachment small {
display: block;
min-width: 0;
}
.report-attachment small {
margin-top: 0.2rem;
color: #888f98;
}
.workplace-submit-bar {
padding: 0.75rem 1rem max(0.75rem, env(safe-area-inset-bottom));
border-top: 1px solid #e4e7ea;
background: #fff;
flex: none;
}
.workplace-submit-bar button,
.workplace-primary {
width: 100%;
min-height: 3rem;
margin: 0;
padding: 0 1rem;
border: 0;
border-radius: 0.35rem;
box-shadow: none;
color: #fff;
background: #347bd7;
font-weight: 600;
}
.report-list-page > main {
padding-bottom: 1rem;
}
.report-role-switch {
display: grid;
grid-template-columns: repeat(2, 1fr);
margin: 0 0.8rem 0.8rem;
border: 1px solid #dce0e5;
border-radius: 0.3rem;
background: #fff;
}
.report-role-switch button {
min-height: 2.6rem;
margin: 0;
padding: 0;
border: 0;
box-shadow: none;
color: #737b85;
background: transparent;
}
.report-role-switch button.active {
color: #fff;
background: #347bd7;
}
.report-cards {
margin: 0 0.8rem;
}
.report-cards article {
margin-bottom: 0.7rem;
padding: 0.9rem;
border: 1px solid #e6e9ec;
border-radius: 0.4rem;
background: #fff;
}
.report-cards article > header {
display: grid;
/* DailyReportCard (the only thing rendered into .report-cards) never renders an avatar --
confirmed no JSX inserts an
here -- so the leading 2.6rem avatar column was dead weight
that stole space from the name column with only 2 real children (name+badge span, status ),
squeezing the badge into wrapping onto its own line for any name long enough to fill it. */
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
gap: 0.6rem;
}
.report-cards article > header img {
width: 2.6rem;
height: 2.6rem;
border-radius: 50%;
object-fit: cover;
}
.report-cards article > header span,
.report-cards article > header strong,
.report-cards article > header small {
display: block;
min-width: 0;
}
.report-cards article > header small {
margin-top: 0.15rem;
color: #8b929c;
}
.report-cards article > header em {
padding: 0.3rem 0.45rem;
border-radius: 0.25rem;
color: #b76811;
background: #fff2df;
font-size: 0.72rem;
font-style: normal;
}
.report-cards article p {
display: -webkit-box;
margin: 0.8rem 0;
overflow: hidden;
line-height: 1.55;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
}
.report-cards article > footer {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.5rem;
padding-top: 0.65rem;
border-top: 1px solid #eceef1;
}
.report-cards article > footer span {
display: flex;
align-items: center;
min-width: 0;
color: #7e8690;
font-size: 0.78rem;
}
.report-cards article > footer span .material-icons {
margin-right: 0.25rem;
font-size: 1rem;
}
.report-cards article > footer button {
display: flex;
align-items: center;
flex: none;
min-height: 2.2rem;
margin: 0;
padding: 0 0.1rem 0 0.6rem;
border: 0;
box-shadow: none;
color: #347bd7;
background: transparent;
}
.report-cards article > footer button .material-icons {
font-size: 1.15rem;
}
.report-cards > button {
display: grid;
grid-template-columns: 3.2rem minmax(0, 1fr) auto 1.5rem;
align-items: center;
gap: 0.65rem;
width: 100%;
min-height: 5.2rem;
margin: 0 0 0.7rem;
padding: 0.7rem;
border: 1px solid #e6e9ec;
border-radius: 0.4rem;
box-shadow: none;
color: #30353c;
background: #fff;
text-align: left;
}
.report-month {
display: grid;
place-items: center;
width: 3.2rem;
height: 3.2rem;
border-radius: 0.35rem;
color: #fff;
background: #5577b9;
}
.report-cards > button > span:nth-child(2),
.report-cards > button strong,
.report-cards > button small {
display: block;
min-width: 0;
}
.report-cards > button small {
margin-top: 0.25rem;
color: #858d97;
}
.report-cards > button em {
padding: 0.25rem 0.4rem;
border-radius: 0.25rem;
font-size: 0.72rem;
font-style: normal;
}
.report-cards > button em.submitted { color: #28784f; background: #e5f5ec; }
.report-cards > button em.draft { color: #ad6c11; background: #fff2dd; }
.report-statistics {
margin-bottom: 0.7rem;
padding: 1rem;
background: #fff;
}
.report-statistics > header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.5rem;
margin-bottom: 1rem;
}
.report-statistics > header span,
.report-statistics > header strong,
.report-statistics > header small {
display: block;
}
.report-statistics > header small {
margin-bottom: 0.2rem;
color: #808892;
}
.report-statistics > header button,
.report-statistics > button {
min-height: 2.4rem;
margin: 0;
padding: 0 0.7rem;
border: 1px solid #dce0e5;
border-radius: 0.3rem;
box-shadow: none;
color: #347bd7;
background: #fff;
}
.report-statistics > button {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
margin-top: 1rem;
}
.report-statistics > button .material-icons {
margin-right: 0.35rem;
font-size: 1.15rem;
}
.report-detail {
padding-bottom: 1.5rem;
}
.report-detail > section {
margin-bottom: 0.65rem;
padding: 1rem;
background: #fff;
}
.report-author {
display: grid;
grid-template-columns: 3rem minmax(0, 1fr) auto;
align-items: center;
gap: 0.7rem;
}
.report-author img {
width: 3rem;
height: 3rem;
border-radius: 50%;
object-fit: cover;
}
.report-author span,
.report-author strong,
.report-author small {
display: block;
min-width: 0;
}
.report-author small {
margin-top: 0.2rem;
color: #858d96;
}
.report-author em {
color: #2c8257;
font-style: normal;
}
.report-detail h2,
.report-detail h3,
.report-detail p {
margin: 0;
}
.report-detail h2 {
font-size: 1.05rem;
}
.report-detail h2 + small {
display: block;
margin-top: 0.4rem;
color: #89919b;
}
.report-detail h3 {
margin-bottom: 0.6rem;
font-size: 0.98rem;
}
.report-detail section p {
line-height: 1.7;
white-space: pre-wrap;
}
.report-file {
display: grid;
grid-template-columns: 2.5rem minmax(0, 1fr) 2rem;
align-items: center;
gap: 0.6rem;
}
.report-file > .material-icons:first-child {
color: #4f74ad;
font-size: 2rem;
}
.report-file span,
.report-file strong,
.report-file small {
display: block;
}
.report-file small {
margin-top: 0.2rem;
color: #8b929b;
}
.report-updated {
display: flex;
align-items: center;
justify-content: center;
color: #8a929c;
font-size: 0.78rem;
}
.report-updated .material-icons {
margin-right: 0.25rem;
font-size: 1rem;
}
.mailbox-page > main {
padding: 0.8rem 1rem 1.5rem;
background: #fff;
}
.mailbox-page label {
display: block;
position: relative;
margin-top: 1rem;
}
.mailbox-page label > span:first-child {
display: block;
margin-bottom: 0.55rem;
font-weight: 600;
}
.mailbox-page input[type='text'],
.mailbox-page label > input:not([type]),
.mailbox-page label > textarea {
width: 100%;
margin: 0;
border: 1px solid #dfe3e7;
border-radius: 0.3rem;
box-shadow: none;
background: #fff;
}
.mailbox-page label > input:not([type]) {
height: 3rem;
padding: 0 0.75rem;
}
.mailbox-page label > textarea {
height: 12rem;
padding: 0.75rem 0.75rem 2rem;
resize: vertical;
line-height: 1.5;
}
.mailbox-content > small {
position: absolute;
right: 0.75rem;
bottom: 0.65rem;
color: #9ca3ac;
}
.mailbox-notice,
.mailbox-upload {
display: grid;
grid-template-columns: 2.5rem minmax(0, 1fr) 1.5rem;
align-items: center;
gap: 0.5rem;
width: 100%;
min-height: 4.2rem;
margin: 0;
padding: 0.65rem 0.75rem;
border: 1px solid #dfe4e9;
border-radius: 0.35rem;
box-shadow: none;
color: #343a42;
background: #f7f9fb;
text-align: left;
}
.mailbox-notice > .material-icons:first-child {
color: #2e7954;
}
.mailbox-notice span,
.mailbox-notice strong,
.mailbox-notice small {
display: block;
min-width: 0;
}
.mailbox-notice small {
margin-top: 0.2rem;
color: #78818b;
}
.mailbox-upload {
grid-template-columns: 2.5rem minmax(0, 1fr) auto;
margin-top: 1rem;
border-style: dashed;
}
.mailbox-upload > .material-icons {
color: #347bd7;
}
.mailbox-upload small {
color: #888f99;
}
.mailbox-anonymous {
display: grid !important;
grid-template-columns: 2rem minmax(0, 1fr);
align-items: center;
gap: 0.5rem;
margin: 1rem 0 !important;
padding: 0.8rem;
border: 1px solid #e4e7ea;
border-radius: 0.35rem;
}
.mailbox-anonymous input {
width: 1.25rem;
height: 1.25rem;
margin: 0;
}
.mailbox-anonymous span,
.mailbox-anonymous strong,
.mailbox-anonymous small {
display: block;
min-width: 0;
}
.mailbox-anonymous small {
margin-top: 0.2rem;
color: #858d96;
}
.mailbox-notice-backdrop {
display: grid;
position: absolute;
z-index: 60;
inset: 0;
place-items: center;
padding: 1rem;
background: rgba(20,24,29,0.52);
}
.mailbox-notice-dialog {
width: min(100%, 25rem);
padding: 1.25rem;
border-radius: 0.5rem;
background: #fff;
text-align: center;
}
.mailbox-notice-dialog > .material-icons {
color: #2f7854;
font-size: 2.7rem;
}
.mailbox-notice-dialog h2 {
margin: 0.6rem 0 0.8rem;
font-size: 1.15rem;
}
.mailbox-notice-dialog p {
margin: 0.65rem 0;
color: #555d67;
line-height: 1.65;
text-align: left;
}
.mailbox-notice-dialog small {
display: block;
margin: 0.8rem 0;
color: #898f98;
}
.mailbox-notice-dialog button {
width: 100%;
min-height: 2.9rem;
margin: 0.5rem 0 0;
padding: 0 1rem;
border: 0;
border-radius: 0.35rem;
box-shadow: none;
color: #fff;
background: #347bd7;
}
/* Ch.9 additions: real data needs an arbitrary-depth org tree, repeatable daily-report time
blocks, meeting detail/create screens, and a couple of small mailbox extras that the original
demo (fixed 2-level tree, single-shot report form) didn't need. */
.organization-loading {
padding: 2rem 1rem;
color: #8b929c;
text-align: center;
}
.organization-department {
display: flex;
align-items: center;
gap: 0.6rem;
width: 100%;
min-height: 3.4rem;
margin: 0;
padding: 0 1rem;
border: 0;
border-bottom: 1px solid #eceef1;
border-radius: 0;
box-shadow: none;
color: #30353c;
background: #fff;
text-align: left;
text-transform: none;
}
.organization-department > .material-icons:first-child {
color: #8b929c;
font-size: 1.3rem;
}
.organization-department.expanded {
color: #2094f3;
}
.organization-department.expanded > .material-icons:first-child {
color: #2094f3;
}
.organization-department > span {
flex: 1 1 auto;
min-width: 0;
}
.organization-department > span strong {
display: block;
overflow: hidden;
font-weight: 500;
text-overflow: ellipsis;
white-space: nowrap;
}
.organization-department > .material-icons:last-child {
color: #b0b6bd;
}
.organization-person {
display: flex;
align-items: center;
gap: 0.6rem;
width: 100%;
min-height: 3.2rem;
margin: 0;
padding: 0 1rem;
border: 0;
border-bottom: 1px solid #eceef1;
border-radius: 0;
box-shadow: none;
color: #30353c;
background: #fafbfc;
text-align: left;
text-transform: none;
}
.organization-person > .material-icons:first-child {
color: #b0b6bd;
font-size: 1.1rem;
}
.organization-person > span {
flex: 1 1 auto;
min-width: 0;
}
.organization-person > span strong {
overflow: hidden;
font-weight: 400;
text-overflow: ellipsis;
white-space: nowrap;
}
.organization-person.me {
color: #2094f3;
}
.organization-person.me > span strong {
color: #2094f3;
font-weight: 500;
}
.organization-person > .material-icons:last-child {
color: #b0b6bd;
}
.meeting-more {
display: flex;
align-items: center;
flex: none;
margin: 0;
padding: 0;
border: 0;
box-shadow: none;
color: #b0b6bd;
background: transparent;
font-size: 0.85rem;
}
.meeting-attendees {
color: #347bd7;
}
.meeting-responded {
width: 100%;
min-height: 2.4rem;
margin: 0;
padding: 0 1rem;
border: 0;
border-radius: 0.3rem;
box-shadow: none;
color: #8b929c;
background: #f2f3f5;
}
.meeting-participant-list {
margin: 0.8rem 0 0;
padding: 0.6rem 0 0;
border-top: 1px solid #eceef1;
list-style: none;
}
.meeting-participant-list li {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 2.3rem;
}
.meeting-participant-list em {
padding: 0.15rem 0.5rem;
border-radius: 0.25rem;
color: #8b929c;
background: #f2f3f5;
font-size: 0.72rem;
font-style: normal;
}
.meeting-participant-list em.accepted { color: #28784f; background: #e5f5ec; }
.meeting-participant-list em.declined { color: #ad3d45; background: #fbe9eb; }
.meeting-participant-list em.tentative { color: #ad6c11; background: #fff2dd; }
.meeting-status footer {
display: flex;
gap: 0.6rem;
margin-top: 0.8rem;
}
.meeting-status footer button {
flex: 1 1 auto;
min-height: 2.6rem;
margin: 0;
border: 0;
border-radius: 0.3rem;
box-shadow: none;
color: #347bd7;
background: #eaf2fc;
}
.meeting-status footer button.danger {
color: #ad3d45;
background: #fbe9eb;
}
.meeting-time-range {
display: flex;
align-items: center;
gap: 0.5rem;
}
.meeting-time-range .report-field {
flex: 1 1 0;
}
.meeting-time-range span {
color: #8b929c;
}
.meeting-selected-attendees {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
margin: -0.4rem 0 0.8rem;
}
.meeting-selected-attendees span {
display: flex;
align-items: center;
gap: 0.25rem;
padding: 0.3rem 0.5rem;
border-radius: 999px;
background: #eaf2fc;
color: #347bd7;
font-size: 0.82rem;
}
.meeting-selected-attendees .material-icons {
font-size: 0.9rem;
cursor: pointer;
}
.daily-report-block {
margin-bottom: 1rem;
padding-bottom: 1rem;
border-bottom: 1px solid #eceef1;
}
.daily-report-block-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 0.6rem;
}
.daily-report-block-header .material-icons {
color: #8b929c;
cursor: pointer;
}
.daily-report-date {
display: block;
margin: -0.3rem 0 0.5rem;
color: #8b929c;
}
.daily-report-add-block {
display: flex;
align-items: center;
justify-content: center;
gap: 0.3rem;
width: 100%;
min-height: 2.6rem;
margin: 0 0 1rem;
border: 1px dashed #d5d9dd;
border-radius: 0.3rem;
box-shadow: none;
color: #347bd7;
background: #fff;
}
.report-draft-status {
margin: 0;
color: #8b929c;
font-size: 0.82rem;
text-align: right;
}
.report-cards article > header .role-badge,
.report-author .role-badge {
display: inline-block;
flex-shrink: 0;
margin-left: 0.4rem;
padding: 0.1rem 0.4rem;
border-radius: 0.25rem;
color: #347bd7;
background: #eaf2fc;
font-size: 0.72rem;
white-space: nowrap;
}
/* The name before this badge has no length cap of its own (falls back to the raw account id when
no nickname is set, which can run much longer than a real name) -- let it truncate instead of
squeezing the fixed-width badge next to it into wrapping onto its own line. */
.report-cards article > header > span > strong,
.report-author > span > strong {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.workplace-error {
padding: 0.8rem 1rem;
color: #ad3d45;
text-align: center;
}
/* Specificity needs to beat `.workbench-profile span` (base.css, above) -- that rule's `display:
block` is meant for the plain text-label spans in this same row, but a bare `.workbench-avatar-
fallback` alone is one class vs. that rule's class+element, so it lost and fell back to block,
silently discarding this rule's own centering and leaving the icon glyph sitting in normal block
flow (top-left of the circle) instead of centered. */
.workbench-profile .workbench-avatar-fallback {
display: flex;
align-items: center;
justify-content: center;
width: 3rem;
height: 3rem;
border-radius: 50%;
color: #fff;
background: #b0b6bd;
}
.mailbox-anonymous-choice {
display: flex;
gap: 1.2rem;
justify-content: center;
margin-top: 0.8rem;
}
.mailbox-anonymous-choice label {
display: flex;
align-items: center;
gap: 0.35rem;
color: #58606b;
font-size: 0.88rem;
}
.mailbox-attachment-list {
margin: 0.5rem 0 0;
padding: 0;
list-style: none;
}
.mailbox-attachment-list li {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 2.2rem;
color: #58606b;
}
.mailbox-attachment-list .material-icons {
color: #8b929c;
cursor: pointer;
font-size: 1.1rem;
}
@media screen and (max-width: 480px) {
.workbench-apps {
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 1.2rem 0.35rem;
}
.workbench-banner {
grid-template-columns: minmax(0, 1fr) 4rem;
padding: 1rem;
}
.workbench-banner > .material-icons {
font-size: 3.8rem;
}
.meeting-card dl > div {
grid-template-columns: 5.8rem minmax(0, 1fr);
}
.report-cards > button {
grid-template-columns: 3.2rem minmax(0, 1fr) auto 1.2rem;
gap: 0.45rem;
}
}
* {
box-sizing: border-box;
padding: 0;
margin: 0;
font-family: Roboto, Arial, sans-serif;
text-rendering: optimizeLegibility;
scrollbar-width: thin;
scrollbar-color: var(--clr-scrollbar-thumb) var(--clr-scrollbar-track);
}
/* Basic elements defined */
html, body {
height: 100%;
width: 100%;
height: 100dvh;
width: 100dvw;
font-size: 10pt; /* 13.33 px/rem */
color: var(--clr-text-primary);
overflow: hidden;
background-color: var(--clr-body-background);
box-shadow: inset 0 10rem var(--clr-header-stripe-bg); /* the deep-plue stripe accross the top */
}
tt {
font-family: 'Roboto Mono', Courier, monospace;
}
a {
color: var(--clr-primary-accent);
text-decoration: none;
}
a:hover,
a:focus {
color: var(--clr-primary-accent-hover);
text-decoration: underline;
}
a.danger {
color: var(--clr-danger-text);
}
a.danger:hover,
a.danger:focus {
color: var(--clr-danger-text-hover);
}
a.gray:hover,
a.gray:focus {
color: var(--clr-text-tertiary);
}
form {
font-size: 1.1rem;
padding: 0.5rem 0.75rem;
line-height: 1.5;
}
label {
font-size: 1.1rem;
margin-right: auto;
}
label.small {
color: var(--clr-primary-action);
font-size: 0.95rem;
}
label.large {
color: var(--clr-primary-action);
font-size: 1.1rem;
}
label.invalid {
color: var(--clr-danger-text);
}
img.avatar {
width: 100%;
height: 100%;
border-radius: 50%;
}
img.avatar.self {
padding: 7%;
}
/* Input fields and buttons */
button {
display: inline-block;
font-family: inherit;
font-size: 1.05rem;
height: 2.2rem;
line-height: 2.2rem;
font-weight: normal;
text-align: center;
vertical-align: middle;
touch-action: manipulation;
cursor: pointer;
border: 1px solid var(--clr-transparent);
white-space: nowrap;
padding-left: 1.2rem;
padding-right: 1.2rem;
border-radius: 4px;
box-shadow: 0 1px 3px 0 var(--clr-shadow-button);
text-transform: uppercase;
min-width: 5rem;
margin: 0 0.35rem 0 0.35rem;
}
button[disabled],
html input[disabled] {
cursor: default;
opacity: 0.65;
box-shadow: none;
filter: grayscale(50%);
}
button.round {
border-radius: 50%;
width: 3rem;
height: 3rem;
padding: 0;
margin: 0;
line-height: 3.5rem;
outline: none; /* otherwise a square outline is shown */
box-shadow: 0 2px 0.5rem 0 var(--clr-shadow-button);
z-index: 2;
}
button.round.small {
width: 2rem;
height: 2rem;
line-height: 2rem;
box-shadow: 0 2px 0.35rem 0 var(--clr-shadow-button);
}
/* Scoped to the variants whose *default* text is already white (.primary/.danger/.positive below) --
for them this is a no-op safety net. It used to apply to every