.freshness-pill {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 12px;
border-radius: 999px;
background: var(--ivory);
border: 1px solid rgba(173, 138, 84, 0.55);
font-family: var(--font-mono);
font-size: 11.5px;
font-weight: 700;
color: var(--teal-dark);
min-height: 40px;
}
.account-pill {
display: inline-flex;
align-items: center;
gap: 9px;
padding: 5px 14px 5px 6px;
border-radius: 999px;
background: var(--teal);
color: var(--ivory);
border: 1.5px solid var(--gold);
font-size: 12.5px;
font-weight: 700;
min-height: 40px;
box-shadow: 0 3px 10px rgba(13, 92, 99, 0.18);
}
.account-monogram {
width: 28px;
height: 28px;
border-radius: 50%;
background: linear-gradient(135deg, var(--gold) 0%, var(--os-brass) 100%);
color: var(--tok-1a1205);
font-family: var(--font-serif);
font-weight: 800;
font-size: 14px;
display: inline-flex;
align-items: center;
justify-content: center;
}
.storefront-grid {
flex: 1;
display: grid;
grid-template-columns: var(--pillar-w) minmax(0, 1fr) var(--pillar-w);
align-items: stretch;
transition: grid-template-columns 0.26s cubic-bezier(0.22, 1, 0.36, 1);
}
.victorian-pillar {
display: flex;
flex-direction: column;
background:
repeating-linear-gradient(
90deg,
rgba(173, 138, 84, 0.16) 0px,
rgba(173, 138, 84, 0.16) 2px,
rgba(255, 253, 249, 0.95) 2px,
rgba(255, 253, 249, 0.95) 6px
),
var(--ivory);
position: relative;
z-index: 10;
user-select: none;
}
.victorian-pillar.left-pillar {
border-right: 3px solid var(--os-brass);
box-shadow:
inset -3px 0 0 var(--tok-fffdf9),
inset -5px 0 0 rgba(173, 138, 84, 0.45),
6px 0 22px rgba(13, 92, 99, 0.07);
}
.victorian-pillar.right-pillar {
border-left: 3px solid var(--os-brass);
box-shadow:
inset 3px 0 0 var(--tok-fffdf9),
inset 5px 0 0 rgba(173, 138, 84, 0.45),
-6px 0 22px rgba(13, 92, 99, 0.07);
}
.pillar-capital {
height: 112px;
background: linear-gradient(180deg, var(--tok-a8e4e5) 0%, var(--aqua) 68%, var(--tok-85d2d4) 100%);
border-bottom: 3px solid var(--os-brass);
box-shadow:
inset 0 2px 0 rgba(255, 255, 255, 0.8),
inset 0 -3px 0 var(--tok-fffdf9),
inset 0 -5px 0 rgba(173, 138, 84, 0.55),
0 4px 12px rgba(13, 92, 99, 0.1);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 10px 12px;
text-align: center;
position: relative;
}
.capital-crown-svg {
width: 40px;
height: 26px;
color: var(--tok-161616);
margin-bottom: 2px;
flex-shrink: 0;
}
.capital-year-scroll {
font-family: var(--font-serif);
font-size: 11px;
font-weight: 800;
letter-spacing: 0.18em;
color: var(--tok-1c1c1c);
line-height: 1;
margin-bottom: 3px;
}
.capital-wordmark {
font-family: var(--font-serif);
font-size: 22px;
font-weight: 800;
letter-spacing: 0.16em;
color: var(--tok-111111);
line-height: 1.05;
}
.capital-sub {
font-size: 10px;
font-weight: 800;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--teal-dark);
margin-top: 3px;
}
.capital-count-pill {
margin-top: 4px;
background: var(--teal-dark);
color: var(--ivory);
border: 1px solid var(--gold);
border-radius: 999px;
padding: 2px 10px;
font-size: 11px;
font-weight: 800;
letter-spacing: 0.06em;
}
.storefront-shell.is-slim .pillar-capital {
padding: 8px 4px;
}
.storefront-shell.is-slim .capital-crown-svg {
width: 30px;
height: 20px;
}
.storefront-shell.is-slim .capital-year-scroll {
font-size: 9px;
letter-spacing: 0.08em;
}
.storefront-shell.is-slim .capital-wordmark {
font-size: 11px;
letter-spacing: 0.08em;
}
.storefront-shell.is-slim .capital-sub {
font-size: 8.5px;
letter-spacing: 0.05em;
}
.pillar-shaft {
flex: 1;
margin: 10px 10px;
padding: 10px 8px;
background: var(--ivory);
border: 1.5px solid rgba(173, 138, 84, 0.68);
border-radius: 10px;
box-shadow:
inset 0 0 0 3px var(--panel-recess),
inset 0 0 0 4.5px rgba(173, 138, 84, 0.38),
0 4px 12px rgba(125, 97, 52, 0.06);
display: flex;
flex-direction: column;
gap: 4px;
overflow-y: auto;
}
.storefront-shell.is-slim .pillar-shaft {
margin: 10px 6px;
padding: 8px 4px;
align-items: center;
}
.nav-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 10px 12px;
min-height: 44px;
border-radius: 12px;
color: var(--ink);
text-decoration: none;
font-weight: 700;
font-size: 14.5px;
cursor: pointer;
border: 1px solid transparent;
transition: all 0.15s ease;
}
.nav-item:hover {
background: var(--cream);
border-color: rgba(173, 138, 84, 0.45);
}
.nav-item.active {
background: linear-gradient(135deg, var(--teal) 0%, var(--tok-126b74) 100%);
color: var(--ivory);
border-color: var(--gold);
box-shadow: 0 5px 14px rgba(13, 92, 99, 0.25);
}
.nav-item-left {
display: flex;
align-items: center;
gap: 11px;
min-width: 0;
}
.nav-ico {
width: 20px;
height: 20px;
flex-shrink: 0;
color: var(--teal);
}
.nav-item.active .nav-ico {
color: var(--ivory);
}
.nav-lbl {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.nav-badge {
font-family: var(--font-sans);
font-size: 12px;
font-weight: 800;
padding: 2px 9px;
border-radius: 999px;
flex-shrink: 0;
}
.nav-badge.danger {
background: var(--danger);
color: var(--tok-ffffff);
}
.nav-badge.aqua {
background: var(--tok-d5f6f7);
color: var(--teal-dark);
border: 1px solid rgba(13, 92, 99, 0.25);
}
.nav-divider {
height: 2px;
margin: 6px 8px;
background: linear-gradient(90deg, transparent, rgba(173, 138, 84, 0.55), transparent);
}
.storefront-shell.is-slim .nav-item {
width: 100%;
flex-direction: column;
justify-content: center;
gap: 3px;
padding: 7px 2px;
min-height: 52px;
position: relative;
}
.storefront-shell.is-slim .nav-item-left {
flex-direction: column;
gap: 2px;
}
.storefront-shell.is-slim .nav-lbl {
font-size: 10px;
font-weight: 800;
text-align: center;
max-width: 66px;
}
.storefront-shell.is-slim .nav-badge {
position: absolute;
top: 3px;
right: 3px;
font-size: 9.5px;
padding: 1px 5px;
}
.ny-filter-row {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 4px;
margin-bottom: 8px;
background: var(--panel-recess);
padding: 4px;
border-radius: 10px;
border: 1px solid rgba(173, 138, 84, 0.4);
}
.ny-filter-btn {
appearance: none;
border: none;
background: transparent;
color: var(--ink-muted);
font-family: var(--font-sans);
font-size: 11px;
font-weight: 800;
padding: 6px 2px;
border-radius: 7px;
cursor: pointer;
text-align: center;
transition: all 0.14s ease;
}
.ny-filter-btn.active {
background: var(--teal);
color: var(--ivory);
box-shadow: 0 2px 6px rgba(13, 92, 99, 0.2);
}
.ny-list {
display: flex;
flex-direction: column;
gap: 8px;
}
.ny-card {
background: var(--ivory);
border: 1.5px solid rgba(173, 138, 84, 0.55);
border-left: 4px solid var(--danger);
border-radius: 10px;
padding: 9px 10px;
box-shadow: 0 3px 9px rgba(13, 92, 99, 0.06);
display: flex;
flex-direction: column;
gap: 6px;
transition: opacity 0.2s ease, transform 0.2s ease;
}
.ny-card.tone-warn { border-left-color: var(--warn); }
.ny-card.tone-teal { border-left-color: var(--teal); }
.ny-card-top {
display: flex;
align-items: center;
justify-content: space-between;
gap: 6px;
}
.ny-tag {
font-size: 10px;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.06em;
padding: 2px 7px;
border-radius: 999px;
}
.ny-tag.crit { background: var(--danger-bg); color: var(--danger); }
.ny-tag.verify { background: var(--warn-bg); color: var(--warn); }
.ny-tag.today { background: var(--aqua-light); color: var(--teal-dark); }
.ny-age {
font-family: var(--font-mono);
font-size: 10.5px;
font-weight: 700;
color: var(--ink-muted);
}
.ny-title {
font-size: 13px;
font-weight: 800;
color: var(--ink);
line-height: 1.3;
}
.ny-meta {
font-size: 11.5px;
color: var(--ink-muted);
font-weight: 600;
}
.ny-actions {
display: grid;
grid-template-columns: 1fr 1fr auto;
gap: 5px;
margin-top: 2px;
}
.ny-act-btn {
appearance: none;
border-radius: 7px;
padding: 5px 6px;
min-height: 34px;
font-family: var(--font-sans);
font-size: 11px;
font-weight: 800;
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 4px;
transition: transform 0.12s ease, filter 0.12s ease;
}
.ny-act-btn:hover { filter: brightness(0.96); }
.ny-act-btn.ack {
background: var(--warn-bg);
color: var(--warn);
border: 1px solid rgba(184, 93, 0, 0.4);
}
.ny-act-btn.verify {
background: var(--ok-bg);
color: var(--ok);
border: 1px solid rgba(27, 110, 62, 0.4);
}
.ny-act-btn.dismiss {
background: var(--panel-recess);
color: var(--ink-muted);
border: 1px solid rgba(173, 138, 84, 0.45);
padding: 5px 8px;
}
.ny-slim-stack {
display: none;
flex-direction: column;
gap: 8px;
width: 100%;
align-items: center;
}
.storefront-shell.is-slim .ny-filter-row,
.storefront-shell.is-slim .ny-list {
display: none;
}
.storefront-shell.is-slim .ny-slim-stack {
display: flex;
}
.ny-slim-pill {
width: 64px;
min-height: 54px;
border-radius: 12px;
border: 1.5px solid rgba(173, 138, 84, 0.65);
background: var(--ivory);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
cursor: pointer;
padding: 6px 4px;
box-shadow: 0 3px 8px rgba(13, 92, 99, 0.08);
}
.ny-slim-pill.crit { border-color: var(--danger); background: var(--danger-bg); color: var(--danger); }
.ny-slim-pill.verify { border-color: var(--warn); background: var(--warn-bg); color: var(--warn); }
.ny-slim-pill.today { border-color: var(--teal); background: var(--aqua-light); color: var(--teal-dark); }
.ny-slim-num {
font-family: var(--font-mono);
font-size: 16px;
font-weight: 800;
line-height: 1.1;
}
.ny-slim-lbl {
font-size: 9.5px;
font-weight: 800;
text-transform: uppercase;
margin-top: 2px;
}
.pillar-plinth {
height: 70px;
padding: 10px 12px;
background: linear-gradient(180deg, var(--tok-faf1df) 0%, var(--tok-efe2c8) 100%);
border-top: 3px solid var(--os-brass);
box-shadow: inset 0 2px 0 var(--tok-fffdf9);
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.plinth-gear-btn {
position: relative;
width: 44px;
height: 44px;
border-radius: 50%;
border: 1.5px solid var(--os-brass);
background: var(--ivory);
color: var(--ink);
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
flex-shrink: 0;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
.plinth-gear-badge {
position: absolute;
top: -4px;
right: -4px;
background: var(--gold);
color: var(--tok-1a1205);
font-size: 10px;
font-weight: 800;
padding: 1px 5px;
border-radius: 999px;
border: 1.5px solid var(--ivory);
}
.plinth-collapse-btn {
flex: 1;
min-height: 44px;
border-radius: 999px;
border: 1.5px solid var(--os-brass);
background: var(--ivory);
color: var(--ink);
font-family: var(--font-sans);
font-size: 18px;
font-weight: 800;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
cursor: pointer;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
transition: all 0.15s ease;
}
.plinth-collapse-btn:hover {
background: var(--aqua-light);
border-color: var(--teal);
}
.storefront-shell.is-slim .pillar-plinth {
padding: 8px 6px;
justify-content: center;
}
.storefront-shell.is-slim .plinth-gear-btn {
display: none;
}
.storefront-shell.is-slim .plinth-collapse-btn span.collapse-text {
display: none;
}
.center-salon {
padding: 20px 24px 32px;
background:
radial-gradient(circle at 50% 0%, rgba(152, 221, 222, 0.16) 0%, rgba(250, 243, 227, 0.45) 48%, var(--ivory) 100%);
display: flex;
flex-direction: column;
gap: 18px;
min-width: 0;
}
.salon-header {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
padding-bottom: 12px;
border-bottom: 2px solid rgba(173, 138, 84, 0.35);
}
.salon-eyebrow {
font-size: 11.5px;
font-weight: 800;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--teal);
margin-bottom: 3px;
}
.salon-title {
font-family: var(--font-serif);
font-size: 32px;
font-weight: 800;
color: var(--ink);
line-height: 1.08;
letter-spacing: 0.01em;
}
.salon-subtitle {
font-size: 14px;
color: var(--ink-muted);
font-weight: 500;
margin-top: 3px;
}
.salon-header-actions {
display: flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
}
.salon-btn {
min-height: 44px;
padding: 8px 16px;
border-radius: 999px;
font-family: var(--font-sans);
font-size: 13px;
font-weight: 800;
cursor: pointer;
display: inline-flex;
align-items: center;
gap: 8px;
transition: all 0.16s ease;
}
.salon-btn.secondary {
background: var(--ivory);
color: var(--teal-dark);
border: 1.5px solid var(--os-brass);
box-shadow: 0 2px 8px rgba(13, 92, 99, 0.07);
}
.salon-btn.primary {
background: linear-gradient(135deg, var(--teal) 0%, var(--teal-dark) 100%);
color: var(--ivory);
border: 1.5px solid var(--gold);
box-shadow: 0 6px 16px rgba(13, 92, 99, 0.22);
}
.victorian-showcase {
background: linear-gradient(180deg, var(--tok-fffdf9) 0%, var(--tok-f7efe0) 100%);
border: 2px solid var(--os-brass);
border-radius: 18px;
padding: 16px 18px;
box-shadow: var(--shadow-luxury);
display: grid;
grid-template-columns: 230px minmax(0, 1fr);
gap: 18px;
align-items: stretch;
position: relative;
overflow: hidden;
}
