@font-face { font-family: 'Roboto-Light'; src: url("/fonts/Roboto-Light.ttf") format("truetype"); } @font-face { font-family: 'Roboto'; src: url("/fonts/Roboto-Regular.ttf") format("truetype"); } @font-face { font-family: 'Roboto'; src: url("/fonts/Roboto-Italic.ttf") format("truetype"); font-style: italic; } @font-face { font-family: 'Roboto'; src: url("/fonts/Roboto-Bold.ttf") format("truetype"); font-weight: bold; } * { box-sizing: border-box; } html { height: 100%; border: solid 1px #ccc; } body { position: relative; height: 100%; width: 100%; margin: 0; font-family: Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif; font-size: 14px; } .clearfix:before, .clearfix:after { display: table; content: " "; } .clearfix:after { clear: both; } .hide { display: none; } #header { max-width: 1300px; position: fixed; top: 1px; width: calc(100% - 2px); z-index: 1; height: 36px; line-height: 24px; color: #f2f2f2; -webkit-app-region: drag; } #header button { -webkit-app-region: no-drag; color: inherit; } #header button:hover { background-color: rgba(0, 0, 0, 0.2); } .title-text { height: 36px; line-height: 36px; font-family: Roboto-Light, "Helvetica Neue", Arial, Helvetica, sans-serif; } .conversation-header button, .title-bar button { width: 36px; height: 36px; line-height: 36px; padding: 0; border: 0; outline: 0; } button { cursor: pointer; } button.back { float: left; background: url("/images/back.png") no-repeat center center; } button.back + .title-text { text-indent: -36px; } ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-thumb { border-radius: 10px; background: rgba(255, 255, 255, 0.6); } .menu { position: relative; float: right; height: 36px; padding-right: 8px; } .menu .hamburger { width: 36px; height: 36px; background: url("/images/menu.png") no-repeat center; } .menu .menu-list { display: none; position: absolute; color: #454545; z-index: 1; top: 100%; right: 0; margin: 0; padding: 0; border: solid 1px #2090ea; background-color: white; box-shadow: 0 4px 3px 0px rgba(10, 62, 103, 0.8); } .menu .menu-list li { display: block; white-space: nowrap; } .menu .menu-list li a { cursor: pointer; display: block; padding: 5px 15px 5px 10px; } .menu .menu-list li a:hover { background-color: #f3f3f3; } .file-input { position: relative; margin-right: 10px; } .file-input .choose-file { cursor: pointer; } .file-input .paperclip { width: 36px; height: 100%; background: url("/images/paperclip.png") no-repeat center center; background-size: 90%; margin-top: 4px; } .file-input input[type=file] { display: none; position: absolute; width: 100%; height: 100%; opacity: 0; top: 0; left: 0; cursor: pointer; z-index: 1; } .file-input .close { font-family: sans-serif; color: white; position: absolute; top: 5px; right: 2px; cursor: pointer; border-radius: 50%; width: 20px; height: 20px; padding: 0px; background: #666; color: #fff; text-align: center; } img.emoji { height: 1em; width: 1em; margin: 0 .05em 0 .1em; vertical-align: -0.1em; } .avatar { display: inline-block; height: 44px; width: 44px; background: #f3f3f3 url("/images/default.png") no-repeat center; border-radius: 50%; background-size: cover; vertical-align: middle; text-align: center; line-height: 44px; overflow-x: hidden; text-overflow: ellipsis; color: white; } .group-info-input { background: white; } .group-info-input .group-avatar { display: inline-block; padding: 2px 0px 0px 2px; } .group-info-input .file-input .thumbnail, .group-info-input .thumbnail .avatar, .group-info-input img { height: 54px; width: 54px; border-radius: 27px; } .group-info-input .thumbnail:after { content: ''; position: absolute; height: 0; width: 0; bottom: 0; right: 0; border-bottom: 10px solid #616161; border-left: 10px solid transparent; } .group-info-input input.name { padding: 0.5em; border: solid 1px #ccc; border-width: 0 0 1px 0; width: calc(100% - 84px); } .group-member-list .members .contact, .new-group-update .members .contact { box-shadow: none; border-bottom: 1px solid #eee; } .group-member-list .members .contact .last-message, .group-member-list .members .contact .last-timestamp, .new-group-update .members .contact .last-message, .new-group-update .members .contact .last-timestamp { display: none; } .group-member-list .members .contact .number, .new-group-update .members .contact .number { display: none; } .conversation-header .check { float: right; background: url("/images/check.png") no-repeat center center; } .conversation-list-item { cursor: pointer; } .conversation-list-item:hover { background: #f8f8f8; } .conversation-list-item .number { display: none; } .conversation-list-item .unread-count { float: right; margin: 3px 10px 0 20px; display: inline-block; padding: 0 3px; min-width: 21px; height: 21px; line-height: 21px; font-size: 12px; font-weight: bold; text-align: center; border-radius: 5px; background-color: #2090ea; color: white; border: solid 1px rgba(255, 255, 255, 0.6); } .contact { position: relative; padding: 12px; white-space: nowrap; overflow: hidden; background: rgba(255, 255, 255, 0.6); margin: 10px; border-radius: 10px; } .contact.selected { background: #f3f3f3; padding-left: 22px; margin-left: 0; border-radius: 0 10px 10px 0; } .contact:first-child { margin-top: 0; } .contact:last-child::after { display: none; } .contact .contact-details { vertical-align: top; display: inline-block; margin: 4px 0 0 8px; width: calc(100% - 44px - 8px); } .contact .contact-details p { overflow-x: hidden; text-overflow: ellipsis; } .contact .name { display: block; margin: 0; font-size: 1em; font-weight: 400; text-overflow: ellipsis; overflow-x: hidden; } .contact .number { color: #616161; font-size: small; } .recipients-input { position: relative; } .recipients-input .recipients-container { background-color: white; padding: 2px; border-bottom: 1px solid #f2f2f2; line-height: 24px; } .recipients-input .recipient { display: inline-block; margin: 0 2px 2px 0; padding: 0 5px; border-radius: 10px; background-color: #2090ea; color: white; } .recipients-input .recipient.error { background-color: #f00; } .recipients-input .recipient .remove { margin-left: 5px; padding: 0 2px; } .recipients-input .results { position: absolute; z-index: 10; margin: 0 0 0 20px; width: calc(100% - 30px); max-width: 300px; max-height: 165px; overflow-y: auto; box-shadow: 0px 0px 1px rgba(170, 170, 170, 0.8); } .recipients-input .results .contact { cursor: pointer; } .attachment-preview { display: inline-block; position: relative; } .attachment-preview img { max-width: 100%; } .new-conversation .recipients-input .recipients::before { content: 'To: '; } .new-group-update .recipients-input .recipients::before { content: 'Add: '; } .loading { position: relative; } .loading::before { display: block; margin: 0px auto; content: " "; height: 16px; width: 16px; border-radius: 32px; border: solid 3px; border-color: #a2d2f4 #a2d2f4 #f3f3f3 #f3f3f3 !important; animation: rotate 1s linear infinite; } @keyframes rotate { to { transform: rotate(360deg); } } .debug-log { position: absolute; width: 100%; height: 100%; top: 0; left: 0; padding: 1em; background: #f3f3f3; z-index: 1; overflow-y: auto; } .debug-log a.x { display: inline-block; float: right; cursor: pointer; font-family: sans-serif; color: white; border-radius: 50%; width: 20px; height: 20px; padding: 0px; background: #666; color: #fff; text-align: center; font-size: 19px; } .debug-log textarea { width: 100%; resize: vertical; } .debug-log button, .debug-log input[type=submit] { border-radius: 4px; border: solid 1px #ccc; cursor: pointer; margin: 1em auto; padding: 1em; font-family: inherit; color: #616161; background: #f3f3f3; box-shadow: 0 0 10px -5px rgba(97, 97, 97, 0.5); } .debug-log button:hover, .debug-log input[type=submit]:hover { color: black; box-shadow: 0 0 10px -3px rgba(97, 97, 97, 0.7); } .debug-log .result { display: none; text-align: center; -webkit-user-select: text; } .gutter { padding: 36px 0 0; } .conversation-stack, .new-conversation, .inbox, .gutter { height: 100%; } .container, .scrollable { height: 100%; overflow: auto; } .gutter { float: left; margin: 10px 0; width: 300px; } .gutter .conversations { overflow-y: scroll; height: calc(100% - 20px); width: 100%; } .socket-status { float: right; padding: 6px; -webkit-app-region: no-drag; } .socket-status * { display: inline; cursor: pointer; padding-left: 20px; border-radius: 36px; } .socket-status *:hover { background: url("/images/refresh.png") center; } .socket-status .connecting .icon { background-color: #2090ea; } .socket-status .closing { background-color: #a2d2f4; } .socket-status .closed { background: url("/images/error_red.png") no-repeat left center; } .conversation-stack { padding-left: 300px; padding-top: 36px; } .conversation-stack .conversation { display: none; } .conversation-stack .conversation:first-child { display: block; } .conversation-header { border-bottom: solid 1px #d9d9d9; margin-bottom: 4px; padding-bottom: 5px; } .conversation-header .avatar { float: left; width: 36px; height: 36px; line-height: 36px; } @media (min-width: 950px) { .conversation-header .avatar { width: 70px; height: 70px; line-height: 70px; } } .menu.conversation-menu button.drop-down { background: url("/images/arrow_drop_down.png") no-repeat center; } input.search { border: none; padding: 0; margin: 0; outline: 0; } .tool-bar button.show-new-conversation { float: right; height: 36px; width: 36px; border: 0; outline: 0; font: 300 36px Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif; color: white; background: url("/images/pencil.png") no-repeat center center; } .tool-bar button.show-new-conversation:hover { background-color: #ebebeb; } .tool-bar input.search { height: 26px; width: 270px; background: rgba(255, 255, 255, 0.2); margin: 10px; padding: 5px; } .tool-bar input.search::-webkit-input-placeholder { color: white; } .tool-bar input.search.active, .tool-bar input.search:active, .tool-bar input.search:focus { background: white; } .tool-bar input.search.active::-webkit-input-placeholder, .tool-bar input.search:active::-webkit-input-placeholder, .tool-bar input.search:focus::-webkit-input-placeholder { color: #ccc; } .last-timestamp { font-size: smaller; float: right; margin: 0 10px; } .new-contact { display: none; cursor: pointer; background: #f3f3f3; } .new-contact .name, .new-contact .last-timestamp, .new-contact .avatar { display: none; } .new-contact .contact-details::before { content: 'Create new contact'; display: block; font-style: italic; opacity: 0.7; padding-right: 8px; } .index { max-width: 1300px; color: #454545; background: #2eace0; } .index .gutter .new-group-update-form { display: none; padding: 0.5em; } .index .last-message { margin: 6px 0; font-size: small; font-weight: 300; color: #616161; } .index .gutter .timestamp { position: absolute; top: 14px; right: 12px; color: #888; } .conversations .unread .contact-details .name, .conversations .unread .contact-details .last-message, .conversations .unread .contact-details .last-timestamp { font-weight: bold; } .hint { margin: 10px; padding: 1em; border-radius: 10px; color: white; border: 2px dashed white; } .hint h3 { margin-top: 5px; } .hint.firstRun { position: absolute; top: 0; left: 302px; width: 225px; } .hint.firstRun:before, .hint.firstRun:after { content: ' '; display: block; position: absolute; top: 8px; left: -35px; width: 0; height: 0; border: solid 10px white; border-color: transparent white transparent transparent; transform: scaleX(2.5) scaleY(0.75); } .hint.firstRun:after { border-color: transparent #2eace0 transparent transparent; left: -30px; } .conversation.placeholder { text-align: center; padding-top: 100px; color: #aaa; } .contact.placeholder { position: absolute; top: 50px; left: 0; background: transparent; border-radius: 10px; color: white; border: 2px dashed white; overflow: visible; } .contact.placeholder p { color: white; } .contact.placeholder:before, .contact.placeholder:after { content: ' '; display: block; position: absolute; top: -35px; left: 15px; width: 0; height: 0; border: solid 10px white; border-color: transparent transparent white transparent; transform: scaleY(2.5) scaleX(0.75); } .contact.placeholder:after { border-color: transparent transparent #2eace0 transparent; top: -30px; } .conversation { background-color: #ffffff; margin: 10px; padding: 20px; border-radius: 10px; } .conversation .panel { height: 100%; } .conversation ::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.15); } .conversation-title { display: block; line-height: 36px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-left: 10px; } .conversation { height: calc(100% - 20px); border-radius: 10px; } .conversation .discussion-container { height: calc(100% - 2 * 36px - 60px); } .group-member-list, .new-group-update, .message-list, .message-detail, .key-verification { height: 100%; } .key-verification { background: white; } .key-verification p { padding: 1em; } .key-verification .key { font-family: monospace; padding: 0 1em; } .message-detail .container { height: calc(100% - (36px + 4px)); } .message-detail .message-container { background: white; padding: 1em 0; } .message-detail .message-container .sender { display: none; } .message-detail .info { padding: 1em; } .message-detail .info .label { font-weight: bold; padding-right: 1em; vertical-align: top; } .message-detail .info button { border: none; border-radius: 5px; color: white; padding: 0.5em; font-weight: bold; background: #2090ea; } .message-detail .info button span { vertical-align: middle; } .message-detail .info button:before { content: ''; display: inline-block; vertical-align: middle; width: 18px; height: 18px; background: url("/images/refresh.png") no-repeat center center; background-size: 100%; } .message-detail .contact-detail { margin-bottom: 5px; padding: 0 36px; } .message-detail h3 { font-size: 1em; padding: 5px; } .message-detail h3 button { float: right; } .message-detail .error-icon { display: inline-block; width: 18px; height: 18px; background: url("/images/error_red.png") no-repeat center center; vertical-align: middle; position: relative; margin: 9px; float: right; } .message-detail .error-icon .error-message { display: none; position: absolute; background: black; color: white; border-radius: 10px; padding: 0.5em; font-weight: normal; bottom: calc(100% + 16px); left: 50%; margin-left: -130px; width: 180px; z-index: 10; } .message-detail .error-icon .error-message:before { left: -10px; display: block; content: ''; position: absolute; bottom: -23px; left: calc(50% - 6px + 40px); border: 6px solid transparent; border-top: 18px solid #000000; } .message-detail .error-icon:hover .error-message { display: block; } .message-detail button.conflict { float: right; background: #d00; } .message-detail button.conflict span { padding-left: 5px; } .message-detail button.conflict:before { background: url("/images/error.png") no-repeat center center; } .group-update { font-size: smaller; } .group-member-list .container { height: calc(100% - 36px); } .new-group-update .container { height: calc(100% - 36px - 85px); } .private .entry .avatar, .private .sender, .outgoing .sender { display: none; } .sender { font-size: smaller; opacity: 0.8; margin-bottom: 5px; font-weight: bold; } .timestamp { font-size: smaller; margin-right: 3px; } .outgoing.entry .status { display: inline-block; width: 18px; height: 1em; } .outgoing.entry.sent .status { background: url("/images/check-white.png"); } .outgoing.entry.delivered .status { background: url("/images/double-check-white.png"); } .outgoing.entry.pending .status { background: none; } .outgoing.entry.pending .status:before { content: '...'; } .message-list { position: relative; margin: 0; padding: 2em 0 0; overflow-y: auto; } .message-list:before { display: block; margin: -25px auto 10px; content: " "; height: 16px; width: 16px; border: solid 3px transparent; } .message-list .timestamp { cursor: pointer; } .message-list .timestamp:hover { text-decoration: underline; } .message-detail, .message-list { list-style: none; } .message-detail li, .message-list li { max-width: 800px; margin: 0 8px 16px; } .message-detail li::after, .message-list li::after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } .message-detail .bubble, .message-list .bubble { position: relative; left: -2px; display: inline-block; vertical-align: top; padding: 9px 12px; border-radius: 10px; box-shadow: 0 3px 3px -4px black; word-wrap: break-word; margin-left: 8px; max-width: 30em; } @media (max-width: 950px) { .message-detail .bubble, .message-list .bubble { max-width: calc(100% - 45px); } } .message-detail .bubble .content, .message-list .bubble .content { -webkit-user-select: text; white-space: pre-wrap; } .message-detail .bubble .content a, .message-list .bubble .content a { word-break: break-all; } .message-detail .bubble p, .message-list .bubble p { margin: 0; } .message-detail .bubble .meta, .message-list .bubble .meta { opacity: 0.5; } .message-detail .bubble .meta:hover, .message-list .bubble .meta:hover { opacity: 1.0; } .message-detail .error.bubble, .message-list .error.bubble { cursor: pointer; background: url("/images/error_red.png") no-repeat; } .message-detail .incoming .error.bubble, .message-list .incoming .error.bubble { padding-right: 40px; background-position: calc(100% - 12px) 9px; } .message-detail .outgoing .error.bubble, .message-list .outgoing .error.bubble { padding-left: 40px; background-position: 12px 9px; } .message-detail .incoming .avatar, .message-detail .incoming .bubble, .message-list .incoming .avatar, .message-list .incoming .bubble { float: left; } .message-detail .incoming .bubble, .message-list .incoming .bubble { color: #454545; background-color: #f3f3f3; } .message-detail .incoming .bubble::before, .message-list .incoming .bubble::before { left: -10px; border-right: 10px solid white; } .message-detail .incoming .bubble::after, .message-list .incoming .bubble::after { left: -8px; border-right: 8px solid #f3f3f3; } .message-detail .outgoing .avatar, .message-detail .outgoing .bubble, .message-list .outgoing .avatar, .message-list .outgoing .bubble { float: right; } .message-detail .outgoing .bubble, .message-list .outgoing .bubble { clear: left; color: white; background-color: #2090ea; } .message-detail .outgoing .bubble .meta, .message-list .outgoing .bubble .meta { color: white; } .message-detail .outgoing .bubble::before, .message-list .outgoing .bubble::before { right: -10px; border-left: 10px solid white; } .message-detail .outgoing .bubble::after, .message-list .outgoing .bubble::after { right: -8px; border-left: 8px solid #2090ea; } .message-detail .outgoing .bubble .content a, .message-list .outgoing .bubble .content a { color: #f3f3f3; } .message-detail .outgoing .bubble .content::selection, .message-detail .outgoing .bubble .content a::selection, .message-list .outgoing .bubble .content::selection, .message-list .outgoing .bubble .content a::selection { color: #454545; background: white; } .message-detail .outgoing .bubble .content::-moz-selection, .message-detail .outgoing .bubble .content a::-moz-selection, .message-list .outgoing .bubble .content::-moz-selection, .message-list .outgoing .bubble .content a::-moz-selection { color: #454545; background: white; } .message-detail .control .bubble .content, .message-list .control .bubble .content { font-style: italic; } .message-detail .control .bubble::before, .message-detail .control .bubble::after, .message-list .control .bubble::before, .message-list .control .bubble::after { display: none; } .message-detail .attachments img, .message-detail .attachments audio, .message-detail .attachments video, .message-list .attachments img, .message-list .attachments audio, .message-list .attachments video { max-width: 100%; max-height: 300px; } .message-detail .attachments video, .message-list .attachments video { background: black; min-height: 300px; } .message-detail .attachments img, .message-list .attachments img { cursor: pointer; } .message-detail .outgoing .avatar, .message-list .outgoing .avatar { display: none; } .message-detail .avatar, .message-list .avatar { height: 36px; width: 36px; line-height: 36px; } .message-detail .meta, .message-list .meta { margin-top: 3px; float: right; } .message-detail .end-session, .message-list .end-session { font: small; font-style: italic; opacity: 0.8; } .message-detail .bubble .error-message, .message-list .bubble .error-message { font-style: italic; } .message-detail .key-conflict, .message-list .key-conflict { padding: 15px 10px; } .message-detail .key-conflict button, .message-list .key-conflict button { margin-top: 5px; } .key-conflict-dialogue { position: absolute; top: 0; left: 0; height: 100%; width: 100%; padding: 36px; } .key-conflict-dialogue .content { padding: 1em; background: white; color: black; box-shadow: 0 0 5px 0 black; } .key-conflict-dialogue .verify { color: #2090ea; text-decoration: underline; cursor: pointer; } .bottom-bar { margin-top: 4px; height: 36px; border-top: 1px solid #f3f3f3; background: white; } .bottom-bar button, .bottom-bar input, .bottom-bar textarea { color: #454545; } .bottom-bar button { position: absolute; top: 0; height: 100%; width: 36px; padding: 0; border: 0; outline: 0; font-size: 24px; background: transparent; } .bottom-bar .attachment-previews { padding: 0 36px; } .bottom-bar .attachment-previews .attachment-preview { padding: 13px 10px 0; } .bottom-bar .attachment-previews img { border: 2px solid #ddd; border-radius: 5px; max-height: 100px; } .bottom-bar .attachment-previews .close { background: #999; } .bottom-bar .attachment-previews .close:hover { background: #616161; } .bottom-bar .choose-file { float: left; height: 36px; } .bottom-bar .send-btn { float: right; height: 36px; width: 36px; border: none; outline: none; background: url("/images/send.png") no-repeat; background-size: 75%; background-position: center center; cursor: pointer; } .bottom-bar .send-btn::before { content: '+'; } .bottom-bar form, .bottom-bar input, .bottom-bar textarea { height: 100%; } .bottom-bar .send-message { display: block; width: calc(100% - 2 * 36px - 20px); min-height: 35px; max-height: 100px; padding: 10px; border: 0; outline: 0; z-index: 5; resize: none; } .toast { position: absolute; bottom: 0; margin: 0 2em 3em; padding: 0.5em 1.5em; background: rgba(0, 0, 0, 0.75); color: white; box-shadow: 0 0 5px 0 black; border-radius: 20px; font-size: small; } .confirmation-dialog { position: absolute; top: 36px; padding: 1em; background: white; border: solid 2px #2090ea; } .confirmation-dialog .message { text-align: center; } .confirmation-dialog button { float: right; margin-left: 10px; } /*# sourceMappingURL=manifest.css.map */