Files

1719 lines
33 KiB
CSS

/* Shell design tokens and system font fallback. */
:root {
font-family: -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI Variable","Segoe UI",system-ui,sans-serif;
--chrome-height: 104px;
--sidebar-width: 240px;
--page-tint: #b8c8df;
--accent: #0969da;
--accent-text: #0969da;
--text: #25272c;
--muted: #767b85;
--line: #171b2412;
--surface: #ffffffa8;
--glass: #f0f1f6b8;
--base: #f5f6fa;
--hover: #2428310a;
--panel: #fafbfde8;
--shadow: 0 12px 36px #29314c16;
color: var(--text);
background: transparent;
}
* {
box-sizing: border-box;
}
html,body {
margin: 0;
width: 100%;
height: 100%;
overflow: hidden;
}
body {
background: var(--base);
border-radius: 20px;
box-shadow: 0 20px 80px #101a3440;
--chrome-height: 104px;
color: var(--text);
}
body[data-tab-mode=compact] {
--chrome-height: 64px;
}
body.window-maximized {
border-radius: 0;
}
button,input,textarea,select {
font: inherit;
}
button {
border: 0;
border-radius: 10px;
background: var(--accent);
color: white;
padding: 10px 15px;
font-size: 12px;
font-weight: 600;
cursor: pointer;
-webkit-app-region: no-drag;
}
button:disabled {
opacity: .35;
cursor: default;
}
button:hover:not(:disabled) {
filter: brightness(.98);
}
img {
width: 18px;
height: 18px;
display: block;
pointer-events: none;
}
.icon-button {
display: inline-flex;
justify-content: center;
align-items: center;
width: 32px;
height: 32px;
padding: 7px;
background: transparent;
color: var(--muted);
border-radius: 10px;
}
.icon-button:hover:not(:disabled) {
background: var(--hover);
}
.icon-button[aria-expanded=true] {
background: color-mix(in srgb,var(--accent) 9%,transparent);
}
.icon-button img {
opacity: .68;
}
.secondary {
background: var(--hover);
color: var(--text);
}
/* Glass chrome: CSS blur/tint approximation; no refraction of native website pixels. */
#chrome {
position: relative;
height: var(--chrome-height);
background: color-mix(in srgb,var(--page-tint) 14%,var(--glass));
backdrop-filter: blur(35px) saturate(1.5);
border-bottom: 1px solid var(--line);
border-radius: 20px 20px 0 0;
z-index: 30;
-webkit-app-region: drag;
padding: 0 12px;
box-shadow: inset 0 1px 0 #ffffffc0;
}
.toolbar {
height: 64px;
display: grid;
grid-template-columns: 190px minmax(180px,600px) 170px;
justify-content: space-between;
align-items: center;
gap: 18px;
}
.toolbar-leading,.toolbar-trailing {
display: flex;
align-items: center;
gap: 3px;
}
.toolbar-trailing {
justify-content: flex-end;
gap: 5px;
}
/* Real window controls. The toolbar is draggable; every interactive control is no-drag. */
.traffic-lights {
display: flex;
gap: 8px;
align-items: center;
padding-right: 10px;
flex-shrink: 0;
}
.traffic {
width: 12px;
height: 12px;
border-radius: 50%;
padding: 0;
border: 1px solid #00000012;
display: grid;
place-items: center;
}
.traffic img {
width: 8px;
height: 8px;
opacity: 0;
filter: none!important;
}
.traffic-lights:hover .traffic img {
opacity: .65;
}
.traffic.close {
background: #ff605a;
}
.traffic.minimize {
background: #ffbd2e;
}
.traffic.maximize {
background: #28c840;
}
#address-form {
display: flex;
align-items: center;
height: 36px;
padding: 0 5px 0 12px;
border-radius: 12px;
background: var(--surface);
border: 1px solid #ffffffb0;
box-shadow: 0 1px 2px #1e284410,inset 0 0 0 1px #0e20350b;
min-width: 0;
-webkit-app-region: no-drag;
backdrop-filter: blur(16px);
}
.address-lock {
width: 12px;
height: 12px;
opacity: .5;
}
#address {
border: 0;
background: transparent;
flex: 1;
min-width: 0;
text-align: center;
font-size: 12px;
color: var(--text);
padding: 8px;
outline: none;
}
#address::placeholder {
color: var(--muted);
}
#address:focus {
text-align: left;
}
#address-form:focus-within {
box-shadow: 0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--accent) 33%,transparent);
}
#address-form .icon-button {
width: 25px;
height: 25px;
}
#address-form .icon-button img {
width: 13px;
height: 13px;
}
/* Separate tabs use 104px chrome; compact tabs stay visible within 64px. */
.tab-row {
height: 40px;
display: flex;
align-items: center;
gap: 12px;
justify-content: space-between;
}
#tab-strip {
display: flex;
align-items: center;
gap: 5px;
overflow: auto;
scrollbar-width: none;
flex: 1;
min-width: 0;
-webkit-app-region: no-drag;
}
.browser-tab {
position: relative;
background: transparent;
color: var(--muted);
font-size: 11px;
font-weight: 400;
height: 29px;
min-width: 120px;
max-width: 240px;
flex: 1;
padding: 6px 12px;
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
border-radius: 11px;
}
.browser-tab.active,.browser-tab[aria-selected=true] {
background: var(--surface);
color: var(--text);
box-shadow: 0 1px 2px #263a4e08,inset 0 1px 0 #ffffffa0;
}
.browser-tab:hover {
background: var(--hover);
}
.tab-close {
padding: 0;
width: 18px;
height: 18px;
margin-left: 7px;
background: transparent;
color: var(--muted);
font-size: 14px;
position: absolute;
right: 5px;
top: 5px;
}
.security-state {
display: flex;
align-items: center;
gap: 5px;
color: var(--muted);
background: #ffffff35;
border: 1px solid var(--line);
border-radius: 18px;
padding: 3px 8px;
max-width: 30%;
height: 22px;
font-size: 9px;
flex-shrink: 0;
-webkit-app-region: no-drag;
}
.security-state img {
width: 11px;
height: 11px;
opacity: .5;
}
#managed {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.security-state.paused {
color: #a76a2b;
background: #eab75b12;
}
body[data-tab-mode=compact] .tab-row {
height: 0;
}
body[data-tab-mode=compact] #tab-strip {
position: absolute;
top: 6px;
left: 220px;
right: 200px;
height: 23px;
}
body[data-tab-mode=compact] .browser-tab {
height: 22px;
font-size: 10px;
padding: 4px 9px;
min-width: 70px;
border-radius: 9px;
}
body[data-tab-mode=compact] .tab-close {
top: 2px;
height: 17px;
}
body[data-tab-mode=compact] #address-form {
margin-top: 24px;
height: 27px;
border-radius: 9px;
}
body[data-tab-mode=compact] .security-state {
display: none;
}
/* Trusted tools menu. Native layout hides website pixels while this overlay is open. */
.glass-popover {
position: fixed;
right: 12px;
top: 58px;
width: 258px;
z-index: 80;
background: var(--panel);
border: 1px solid #ffffff90;
box-shadow: var(--shadow);
backdrop-filter: blur(35px) saturate(1.4);
padding: 10px;
border-radius: 18px;
-webkit-app-region: no-drag;
}
.menu-caption {
font-size: 9px;
letter-spacing: 1px;
color: var(--muted);
padding: 2px 9px;
margin: 5px 0 7px;
}
.menu-item {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
padding: 9px 10px;
font-size: 12px;
font-weight: 400;
background: transparent;
color: var(--text);
text-align: left;
border-radius: 9px;
}
.menu-item img {
width: 16px;
height: 16px;
opacity: .7;
}
.menu-item:hover {
background: var(--hover);
}
.menu-divider {
height: 1px;
background: var(--line);
margin: 8px;
}
#settings {
display: grid;
grid-template-columns: 1fr 112px;
gap: 9px;
align-items: center;
padding: 4px 8px;
}
#settings label {
margin: 0;
font-size: 12px;
font-weight: 400;
}
#settings select {
background: var(--surface);
color: var(--text);
border: 1px solid var(--line);
border-radius: 7px;
padding: 5px 7px;
font-size: 12px;
-webkit-app-region: no-drag;
}
.appearance-status {
margin: 10px 8px 2px;
color: var(--muted);
font-size: 11px;
line-height: 1.5;
}
/* Right sidebars: 360px; left library: 240px. */
aside {
position: fixed;
right: 0;
top: var(--chrome-height);
bottom: 0;
width: 360px;
background: var(--panel);
border-left: 1px solid var(--line);
padding: 20px;
display: flex;
flex-direction: column;
overflow: auto;
z-index: 35;
backdrop-filter: blur(24px);
}
#library {
left: 0;
right: auto;
width: var(--sidebar-width);
padding: 17px 12px;
border-left: 0;
border-right: 1px solid var(--line);
background: color-mix(in srgb,var(--page-tint) 9%,var(--glass));
z-index: 34;
}
.library-brand {
display: flex;
gap: 11px;
align-items: center;
padding: 7px 8px 24px;
}
.brand-monogram {
width: 30px;
height: 30px;
border-radius: 10px;
display: grid;
place-items: center;
background: #ffffff85;
box-shadow: 0 1px 6px #0000000b;
font-size: 18px;
font-weight: 600;
color: #657087;
}
.library-brand strong {
display: block;
font-size: 13px;
font-weight: 600;
}
.library-brand span {
display: block;
font-size: 9px;
color: var(--muted);
margin-top: 3px;
}
.library-item {
display: flex;
align-items: center;
gap: 11px;
background: transparent;
color: var(--text);
width: 100%;
text-align: left;
font-size: 12px;
font-weight: 400;
padding: 9px 11px;
border-radius: 9px;
}
.library-item img {
width: 16px;
height: 16px;
opacity: .65;
}
.library-item:hover,.library-item.active {
background: var(--hover);
}
.library-heading {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 8px;
font-weight: 600;
letter-spacing: 1px;
color: var(--muted);
padding: 22px 11px 7px;
}
.library-heading .icon-button {
width: 22px;
height: 22px;
padding: 4px;
}
.library-heading .icon-button img {
width: 12px;
height: 12px;
}
.library-footer {
margin-top: auto;
display: flex;
gap: 7px;
align-items: center;
padding: 18px 10px 3px;
color: var(--muted);
font-size: 9px;
}
.library-footer img {
width: 13px;
height: 13px;
opacity: .5;
}
#library-tabs,#library-groups {
display: flex;
flex-direction: column;
gap: 3px;
}
#library-tabs button,#library-groups button {
width: 100%;
background: transparent;
color: var(--text);
text-align: left;
font-size: 11px;
font-weight: 400;
padding: 8px 10px;
border-radius: 8px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
#library-tabs button.active,#library-groups button.active {
background: color-mix(in srgb,var(--accent) 7%,transparent);
color: var(--accent-text);
}
/* Enrollment and policy-paused state. */
#welcome {
position: fixed;
left: 0;
right: 0;
top: var(--chrome-height);
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
background: radial-gradient(ellipse at 50% 5%,color-mix(in srgb,var(--page-tint) 28%,transparent),transparent 70%),var(--base);
z-index: 20;
}
.card {
width: 490px;
max-width: 90vw;
background: var(--surface);
border: 1px solid #ffffff75;
border-radius: 25px;
padding: 32px 36px;
box-shadow: var(--shadow);
backdrop-filter: blur(30px);
}
.welcome-mark {
display: grid;
place-items: center;
background: color-mix(in srgb,var(--accent) 5%,transparent);
border-radius: 14px;
width: 48px;
height: 48px;
}
.welcome-mark img {
width: 25px;
height: 25px;
opacity: .7;
}
.eyebrow {
font-size: 9px;
font-weight: 600;
letter-spacing: 1.4px;
color: var(--muted);
margin: 20px 0 7px;
}
h1 {
font-size: 30px;
letter-spacing: -1px;
margin: 10px 0;
font-weight: 600;
}
p {
font-size: 12px;
line-height: 1.65;
color: var(--muted);
}
label {
display: grid;
gap: 7px;
font-size: 11px;
font-weight: 600;
margin: 16px 0 7px;
color: var(--muted);
}
input,textarea {
width: 100%;
border: 1px solid var(--line);
border-radius: 10px;
padding: 10px 11px;
background: var(--surface);
color: var(--text);
font-size: 12px;
-webkit-app-region: no-drag;
}
.actions {
display: flex;
gap: 9px;
margin: 18px 0;
}
.actions button {
flex: 1;
}
small {
display: block;
color: var(--muted);
font-size: 10px;
line-height: 1.6;
}
#error,#vault-error {
color: #c95e55;
font-size: 12px;
}
#error:empty,#vault-error:empty {
display: none;
}
/* AI and vault panels preserve existing security controls. */
.panel-title {
display: flex;
align-items: center;
justify-content: space-between;
}
.panel-title .eyebrow {
font-size: 8px;
margin: 0 0 6px;
letter-spacing: 1.1px;
}
h2 {
font-size: 20px;
font-weight: 600;
letter-spacing: -.5px;
margin: 0;
}
.panel-description {
font-size: 11px;
margin: 13px 0 20px;
color: var(--muted);
}
.panel-title .icon-button {
width: 28px;
height: 28px;
}
#conversation {
flex: 1;
overflow: auto;
min-height: 90px;
white-space: pre-wrap;
font-size: 12px;
line-height: 1.7;
}
.entry {
padding: 12px;
background: var(--hover);
border-radius: 13px;
margin-bottom: 12px;
overflow-wrap: anywhere;
}
.empty-chat {
text-align: center;
margin: 65px 12px 20px;
white-space: normal;
}
.empty-chat img {
margin: auto;
width: 30px;
height: 30px;
opacity: .4;
}
.empty-chat h3 {
font-size: 15px;
font-weight: 500;
letter-spacing: -.3px;
color: var(--muted);
}
.empty-chat p {
font-size: 12px;
color: var(--muted);
}
#ai-form {
border: 1px solid var(--line);
border-radius: 16px;
background: var(--surface);
padding: 8px;
margin-top: 15px;
}
#prompt {
height: 95px;
resize: vertical;
border: 0;
max-height: 200px;
background: transparent;
font-size: 12px;
padding: 6px;
outline: none;
}
.composer-footer {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 9px;
color: var(--muted);
padding: 4px;
}
.composer-footer button {
display: flex;
gap: 6px;
align-items: center;
padding: 7px 10px;
border-radius: 8px;
}
.composer-footer img {
width: 14px;
height: 14px;
filter: invert(1);
}
#vault-access-submit {
width: 100%;
margin: 14px 0;
}
#vault-access-note {
margin-top: 4px;
}
#vault-open {
display: flex;
flex-direction: column;
gap: 15px;
}
.vault-actions {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 11px;
color: var(--muted);
}
.vault-actions button {
padding: 6px 10px;
}
.login-card {
padding: 13px;
border: 1px solid var(--line);
border-radius: 13px;
background: var(--surface);
margin-bottom: 9px;
}
.login-card strong {
display: block;
font-size: 12px;
font-weight: 600;
overflow-wrap: anywhere;
}
.login-card p {
font-size: 10px;
margin: 5px 0;
overflow-wrap: anywhere;
}
.login-buttons {
display: flex;
gap: 7px;
margin-top: 10px;
}
.login-buttons button {
padding: 6px 10px;
font-size: 10px;
}
.empty-vault {
text-align: center;
padding: 25px 8px;
color: var(--muted);
font-size: 12px;
}
details {
border-top: 1px solid var(--line);
padding-top: 15px;
}
summary {
font-size: 12px;
font-weight: 600;
cursor: pointer;
color: var(--accent-text);
}
#vault-save label {
font-size: 10px;
}
#vault-save input {
font-size: 11px;
}
/* Local start page and navigation-record overview. */
#start-page {
position: fixed;
inset: var(--chrome-height) 0 0;
overflow: auto;
background: radial-gradient(ellipse at 65% 0%,color-mix(in srgb,var(--page-tint) 32%,transparent),transparent 65%),var(--base);
z-index: 19;
display: block;
}
body.sidebar-open #start-page,body.sidebar-open #overview {
left: var(--sidebar-width);
}
body.ai-open #start-page,body.vault-open #start-page {
right: 360px;
}
.start-content {
max-width: 830px;
margin: 70px auto 40px;
padding: 0 35px;
}
.start-eyebrow {
font-size: 9px;
letter-spacing: 2px;
color: var(--muted);
margin: 0 0 9px;
}
.start-content>h1 {
font-size: 36px;
letter-spacing: -1.4px;
margin: 0 0 45px;
}
.start-section {
margin: 0 0 35px;
}
.section-title {
display: flex;
align-items: center;
justify-content: space-between;
margin: 0 0 17px;
}
.section-title h2 {
font-size: 17px;
letter-spacing: -.4px;
}
.section-title span {
font-size: 10px;
color: var(--muted);
}
.favorites-grid {
display: grid;
grid-template-columns: repeat(auto-fill,minmax(86px,1fr));
gap: 18px;
}
.favorite-tile {
display: flex;
flex-direction: column;
align-items: center;
gap: 9px;
padding: 0;
background: transparent;
color: var(--text);
font-weight: 400;
}
.favorite-icon {
display: grid;
place-items: center;
width: 64px;
height: 64px;
border-radius: 17px;
background: var(--surface);
box-shadow: 0 4px 14px #242e4610,inset 0 1px 0 #ffffffc0;
font-size: 25px;
font-weight: 500;
color: var(--accent-text);
}
.favorite-tile img {
width: 27px;
height: 27px;
opacity: .6;
}
.favorite-tile span {
font-size: 10px;
max-width: 86px;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.recent-list {
display: grid;
gap: 8px;
}
.recent-item {
display: flex;
align-items: center;
gap: 12px;
width: 100%;
text-align: left;
padding: 13px 16px;
border-radius: 14px;
background: var(--surface);
color: var(--text);
border: 1px solid #ffffff60;
font-size: 12px;
font-weight: 400;
}
.recent-item img {
width: 18px;
height: 18px;
opacity: .5;
}
.recent-item small {
font-size: 9px;
margin-top: 3px;
}
.privacy-card {
display: flex;
align-items: center;
gap: 15px;
padding: 20px;
border-radius: 18px;
background: var(--surface);
border: 1px solid #ffffff65;
box-shadow: 0 2px 12px #26304c05;
}
.privacy-icon {
width: 38px;
height: 38px;
border-radius: 12px;
background: color-mix(in srgb,var(--accent) 4%,transparent);
display: grid;
place-items: center;
}
.privacy-icon img {
width: 23px;
height: 23px;
opacity: .6;
}
.privacy-card strong {
font-size: 12px;
font-weight: 500;
}
.privacy-card p {
font-size: 10px;
margin: 5px 0 0;
}
.session-note {
font-size: 9px;
text-align: center;
color: var(--muted);
opacity: .7;
margin: 25px 0;
}
#overview {
position: fixed;
inset: var(--chrome-height) 0 0;
overflow: auto;
background: color-mix(in srgb,var(--page-tint) 18%,var(--base));
backdrop-filter: blur(35px);
z-index: 40;
padding: 40px;
}
.overview-heading {
display: flex;
justify-content: space-between;
align-items: center;
max-width: 1000px;
margin: auto;
}
.overview-heading h1 {
font-size: 30px;
}
.overview-note {
max-width: 1000px;
margin: 0 auto 30px;
}
#overview-grid {
max-width: 1000px;
margin: auto;
display: grid;
grid-template-columns: repeat(auto-fill,minmax(210px,1fr));
gap: 22px;
}
.overview-card {
border: 1px solid #ffffff70;
background: var(--surface);
color: var(--text);
border-radius: 20px;
padding: 23px;
text-align: left;
min-height: 150px;
box-shadow: 0 6px 18px #15254008;
}
.overview-card strong {
display: block;
font-size: 15px;
font-weight: 500;
margin: 15px 0 7px;
}
.overview-card small {
font-size: 10px;
overflow-wrap: anywhere;
}
.overview-card img {
width: 24px;
height: 24px;
opacity: .6;
}
/* Explicit dark mode, followed by automatic OS theme selection. */
body[data-theme=dark] {
--text: #eceef5;
--muted: #989cac;
--line: #ffffff10;
--surface: #ffffff0e;
--glass: #242733dc;
--base: #181b24;
--hover: #ffffff09;
--panel: #20242eef;
--shadow: 0 12px 40px #00000035;
}
body[data-theme=dark] img:not(.traffic img) {
filter: invert(.86);
}
body[data-theme=dark] #address-form,body[data-theme=dark] .card,body[data-theme=dark] .glass-popover {
border-color: #ffffff12;
}
body[data-theme=dark] #chrome {
box-shadow: inset 0 1px 0 #ffffff15;
}
body[data-theme=dark] .brand-monogram {
background: #ffffff10;
color: #b7c3d8;
}
@media(prefers-color-scheme:dark) {
body[data-theme=auto] {
--text: #eceef5;
--muted: #989cac;
--line: #ffffff10;
--surface: #ffffff0e;
--glass: #242733dc;
--base: #181b24;
--hover: #ffffff09;
--panel: #20242eef;
--shadow: 0 12px 40px #00000035;
}
body[data-theme=auto] img:not(.traffic img) {
filter: invert(.86);
}
body[data-theme=auto] #address-form,body[data-theme=auto] .card,body[data-theme=auto] .glass-popover {
border-color: #ffffff12;
}
body[data-theme=auto] #chrome {
box-shadow: inset 0 1px 0 #ffffff15;
}
}
:focus-visible {
outline: 3px solid #72b1f070;
outline-offset: 2px;
}
[hidden] {
display: none!important;
}
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
white-space: nowrap;
border: 0;
}
@media(max-width:900px) {
.toolbar {
grid-template-columns: 185px minmax(160px,1fr) 148px;
gap: 8px;
}
.toolbar-trailing {
gap: 1px;
}
.start-content {
margin-top: 45px;
padding: 0 25px;
}
.start-content>h1 {
font-size: 29px;
}
body[data-tab-mode=compact] #tab-strip {
left: 208px;
right: 168px;
}
.section-title span {
display: none;
}
}
@media(prefers-reduced-motion:no-preference) {
button {
transition: background .15s,opacity .15s;
}
.glass-popover {
animation: appear .13s ease-out;
}
@keyframes appear {
from {
opacity: 0;
transform: translateY(-4px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
}
/* Dynamic renderer component hooks and compact sidebar links. */
.group-controls {
display: flex;
align-items: center;
gap: 5px;
margin: 4px 7px 10px;
}
.group-controls input {
padding: 6px 8px;
font-size: 10px;
min-width: 0;
background: var(--surface);
border-radius: 8px;
}
.group-controls button {
flex-shrink: 0;
width: 25px;
height: 25px;
padding: 5px;
}
.group-controls img {
width: 13px;
height: 13px;
}
.favorite-card {
display: flex;
flex-direction: column;
align-items: center;
gap: 9px;
padding: 0;
background: transparent;
color: var(--text);
font-weight: 400;
}
.favorite-card img {
width: 27px;
height: 27px;
opacity: .6;
}
.favorite-card span:not(.favorite-icon) {
font-size: 10px;
max-width: 86px;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.favorite-icon {
flex-shrink: 0;
}
.tab-label {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-right: 8px;
}
.group-item {
display: flex;
align-items: center;
gap: 8px;
}
.group-item img {
width: 14px;
height: 14px;
opacity: .5;
}
#favorites-empty {
font-size: 11px;
color: var(--muted);
padding: 15px 0;
}
.library-tab {
display: flex;
align-items: center;
gap: 8px;
}
.library-tab.active {
background: color-mix(in srgb,var(--accent) 7%,transparent)!important;
color: var(--accent-text)!important;
}
.favorite-card strong {
font-size: 10px;
font-weight: 400;
max-width: 90px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.favorite-card small {
font-size: 9px;
text-align: center;
}
.favorite-icon span {
font-size: 25px;
font-weight: 500;
}
.browser-tab .tab-label {
display: block;
}
.browser-tab .tab-close {
background: transparent;
color: var(--muted);
border-radius: 5px;
}
.browser-tab .tab-close:hover {
background: var(--hover);
}
.browser-tab {
display: flex;
align-items: center;
justify-content: center;
padding: 0 28px 0 7px;
}
.browser-tab .tab-label {
border: 0;
flex: 1;
min-width: 0;
height: 100%;
padding: 6px 8px;
font-size: 11px;
font-weight: 400;
color: inherit;
background: transparent;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border-radius: 8px;
}
.browser-tab .tab-close {
display: grid;
place-items: center;
font-size: 13px;
font-weight: 400;
padding: 0;
}
.browser-tab.active .tab-close {
opacity: .6;
}
.browser-tab:not(.active) .tab-close {
opacity: 0;
}
.browser-tab:hover .tab-close {
opacity: .6;
}
body[data-tab-mode=compact] .browser-tab .tab-label {
font-size: 10px;
padding: 3px 5px;
}
.overview-card span {
display: block;
overflow-wrap: anywhere;
}
.library-section {
border: 0;
padding: 0;
margin: 2px 0;
}
.library-section summary {
list-style: none;
font-weight: 400;
color: var(--text);
}
.library-section summary::-webkit-details-marker {
display: none;
}
.library-links .favorite-card {
width: 100%;
flex-direction: row;
justify-content: flex-start;
gap: 9px;
padding: 6px 10px;
border-radius: 8px;
margin-top: 2px;
}
.library-links .favorite-card:hover {
background: var(--hover);
}
.library-links .favorite-icon {
width: 23px;
height: 23px;
border-radius: 7px;
box-shadow: none;
font-size: 12px;
}
.library-links .favorite-card strong {
font-size: 10px;
max-width: 160px;
}
.recent-list .favorite-card {
flex-direction: row;
gap: 12px;
background: var(--surface);
padding: 12px 15px;
border-radius: 14px;
align-items: center;
}
.recent-list .favorite-icon {
width: 34px;
height: 34px;
font-size: 17px;
border-radius: 10px;
}
.recent-list .favorite-card strong {
font-size: 12px;
max-width: none;
text-align: left;
}
body:has(#ai:not([hidden])) #start-page,body:has(#vault:not([hidden])) #start-page {
right: 360px;
}
.library-item {
color: var(--text);
}
body[data-theme=dark] .glass-popover,body[data-theme=dark] .privacy-card,body[data-theme=dark] .overview-card {
border-color: #ffffff12;
}
body[data-theme=dark] .browser-tab.active {
box-shadow: inset 0 1px 0 #ffffff08;
}
body[data-theme=dark] .favorite-icon {
box-shadow: 0 4px 14px #00000018,inset 0 1px 0 #ffffff10;
}
/* Glass fallback: these styles affect only the trusted shell, never website content. */
@supports not (background: color-mix(in srgb, red, blue)) {
#chrome {
background: var(--glass);
}
#library {
background: var(--glass);
}
#overview {
background: var(--base);
}
#welcome, #start-page {
background: var(--base);
}
}
/* Older renderers and reduced-transparency preferences use opaque surfaces. */
@supports not (backdrop-filter: blur(1px)) {
#chrome, #library, .glass-popover, aside, .card {
background: var(--base);
}
#address-form {
background: var(--base);
}
}
@media (prefers-reduced-transparency: reduce) {
#chrome, #library, .glass-popover, aside, .card, #overview, #address-form {
backdrop-filter: none;
background: var(--base);
}
}
/* Accessibility polish: preserve the small traffic-light visual with 24px hit targets. */
.traffic-lights {
gap: 0;
padding-right: 8px;
}
.traffic {
position: relative;
width: 24px;
height: 24px;
border: 0;
background: transparent;
}
.traffic::before {
content: "";
position: absolute;
inset: 6px;
border-radius: 50%;
background: var(--traffic-color);
border: 1px solid #00000012;
}
.traffic.close {
--traffic-color: #ff605a;
background: transparent;
}
.traffic.minimize {
--traffic-color: #ffbd2e;
background: transparent;
}
.traffic.maximize {
--traffic-color: #28c840;
background: transparent;
}
.traffic img {
position: relative;
z-index: 1;
}
.traffic:focus-visible img {
opacity: .75;
}
:root {
--muted: #69707d;
}
:focus-visible {
outline: 3px solid var(--accent);
outline-offset: 2px;
}
.session-note {
opacity: 1;
}
/* The trusted start page can become narrow when both managed sidebars are open. */
#start-page {
container-type: inline-size;
}
@container (max-width: 400px) {
.start-content {
margin-top: 35px;
padding: 0 20px;
}
.start-content > h1 {
font-size: 27px;
margin-bottom: 30px;
overflow-wrap: anywhere;
}
.privacy-card {
display: block;
}
.privacy-icon {
margin-bottom: 12px;
}
.privacy-card p,
.recent-list .favorite-card strong {
white-space: normal;
overflow-wrap: anywhere;
}
.section-title h2 {
font-size: 15px;
}
.favorites-grid {
grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
gap: 14px;
}
}
/* Shell-only scrollbars stay unobtrusive at the 800px minimum window width. */
#library,
#start-page,
#overview,
#ai,
#vault {
scrollbar-width: thin;
scrollbar-color: color-mix(in srgb, var(--muted) 45%, transparent) transparent;
}
@media (forced-colors: active) {
#library,
#start-page,
#overview,
#ai,
#vault {
scrollbar-color: auto;
}
}
/* Company links remain readable when the library is locked; mutation controls disappear. */
.bookmark-row{display:flex;align-items:center;gap:4px;margin:4px 0}.bookmark-link{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bookmark-action{font-size:10px;padding:5px}.bookmark-section-label{font-size:11px;font-weight:600;opacity:.7;margin:12px 0 6px}
#bookmark-editor{color:var(--text,#202632);background:var(--surface,#edf1f6);border:1px solid #8885;border-radius:22px;padding:24px;width:min(420px,80vw);box-shadow:0 24px 80px #0005}#bookmark-editor::backdrop{background:#17233b55;backdrop-filter:blur(8px)}#bookmark-editor label{display:block;margin:12px 0}#bookmark-editor input{display:block;width:100%;box-sizing:border-box;margin-top:5px}#bookmark-editor-error{color:#d53939;font-size:12px}.bookmark-notice{font-size:12px;opacity:.75}
/* Fixed icon/title/badge rows prevent a managed bookmark from shifting its icon. */
#favorites-grid .favorite-card {display:grid;grid-template-rows:64px 18px 14px;gap:8px;justify-items:center;align-content:start;min-width:0;align-self:start;}
.company-logo {display:block;max-width:100%;object-fit:contain;}
.brand-monogram .company-logo {width:36px;height:36px;}
.start-company-logo {width:auto;max-width:260px;height:72px;margin:0 0 20px;object-position:left center;}
.company-surface-brand {display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px;font-weight:600;padding:12px 16px;}
.company-surface-brand .company-logo {width:28px;height:28px;}
#welcome>.company-surface-brand {position:absolute;top:24px;left:24px;}
.start-subtitle {color:var(--muted);font-size:16px;line-height:1.5;margin:10px 0 28px;max-width:650px;}
.company-news-items {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px;}
.company-news-card {display:flex;flex-direction:column;text-align:left;align-items:flex-start;gap:10px;border-radius:16px;padding:18px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface,#fff) 65%,transparent);color:inherit;min-height:100px;transition:transform .2s,box-shadow .2s;}
.company-news-card:hover {transform:translateY(-2px);box-shadow:0 8px 24px #0000000c;}
.company-news-card:hover strong {color:var(--company-accent,var(--accent));}
#start-brand-name {color:var(--company-accent,var(--accent));}
.company-news-card strong {font-size:14px;line-height:1.5;overflow-wrap:anywhere;}
.company-news-card time,.company-news-empty {font-size:12px;color:var(--muted);}
#favorites-grid .favorite-card .favorite-icon {grid-row:1;width:64px;height:64px;}
#favorites-grid .favorite-card strong {grid-row:2;line-height:18px;max-width:100%;}
#favorites-grid .favorite-badge {grid-row:3;line-height:14px;color:var(--muted);}
.library-links .favorite-badge,.recent-list .favorite-badge {display:none;}
.text-button {background:transparent;color:var(--accent-text);border:0;font-size:12px;padding:6px 0;cursor:pointer;}
#bookmark-manager {width:min(780px,calc(100vw - 36px));max-height:calc(100vh - 80px);box-sizing:border-box;padding:26px;border:1px solid #8884;border-radius:24px;background:var(--surface,#edf1f6);color:var(--text);box-shadow:0 24px 90px #0005;overflow:auto;}
#bookmark-manager::backdrop {background:#17233b55;backdrop-filter:blur(10px);}
.manager-header,.manager-toolbar,.manager-row {display:flex;gap:12px;align-items:center;}
.manager-header {justify-content:space-between;margin-bottom:20px;}.manager-header h2{margin:4px 0;font-size:26px;}.manager-eyebrow{margin:0;font-size:10px;letter-spacing:.14em;color:var(--muted);}
.manager-toolbar{flex-wrap:wrap;}.manager-toolbar input{flex:1;min-width:180px;}.manager-list{margin-top:18px;}.manager-row{padding:12px 0;border-bottom:1px solid #8882;}.manager-row .manager-link{flex:1;min-width:0;text-align:left;background:transparent;}.manager-link strong,.manager-link small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.manager-link small{color:var(--muted);font-size:11px;margin-top:4px;}.manager-row button{flex-shrink:0;}.manager-folder{margin:22px 0 4px;font-size:12px;color:var(--muted);}.manager-managed{font-size:10px;color:var(--muted);}.manager-row-actions{display:flex;gap:6px;}#manager-error{color:#d53939;font-size:12px;}
@media(max-width:600px){.manager-row{flex-wrap:wrap;}.manager-row-actions{width:100%;justify-content:flex-end;}#bookmark-manager{padding:18px;}.toolbar{gap:6px;}}
.group-manager-row{display:flex;gap:4px;align-items:center;flex-wrap:wrap;}.group-manager-row .group-item{flex:1;min-width:80px;}.group-manager-row>button:not(.group-item){font-size:10px;padding:5px;}
#bookmark-manager .manager-link{color:var(--text);padding:8px 12px;}#bookmark-manager .manager-row-actions button{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent-text);}#bookmark-manager{backdrop-filter:blur(24px) saturate(150%);}
#agent-pairing{color:var(--text,#202632);background:var(--surface,#edf1f6);border:1px solid #8885;border-radius:22px;padding:24px;width:min(520px,85vw);box-shadow:0 24px 80px #0005}#agent-pairing::backdrop{background:#17233b55;backdrop-filter:blur(8px)}.agent-grant-list{display:grid;gap:10px;margin:16px 0}.agent-grant-choice{text-align:left;padding:12px;border-radius:12px}#agent-pairing pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}