Job-Scorer / components /studio-shell.module.css
zimejin's picture
style: premium dark SaaS design system (Geist, tokens, surfaces)
5db94e2
Raw
History Blame Contribute Delete
3.55 kB
/* Minimal bottom studio strip — aligns with app-shell width */
.shellWrap {
display: flex;
flex-direction: column;
min-height: 100vh;
position: relative;
isolation: isolate;
}
/* Ambient depth behind main content (no layout impact) */
.shellWrap::before {
content: "";
position: fixed;
inset: 0;
z-index: -1;
pointer-events: none;
background: radial-gradient(ellipse 80% 55% at 50% -10%, rgba(91, 157, 255, 0.045), transparent 50%);
opacity: 1;
}
@media (prefers-color-scheme: light) {
.shellWrap::before {
background: radial-gradient(ellipse 90% 50% at 50% -15%, rgba(37, 99, 235, 0.06), transparent 55%);
}
}
.shellMain {
flex: 1 0 auto;
position: relative;
z-index: 0;
}
.footer {
flex-shrink: 0;
margin-top: auto;
padding-top: 40px;
padding-bottom: 12px;
}
.footerCard {
max-width: 960px;
margin: 0 auto;
width: 100%;
border-radius: var(--radius-md, 10px);
border-top: 1px solid var(--border-subtle);
border-left: none;
border-right: none;
border-bottom: none;
background: transparent;
overflow: hidden;
}
.footerRow {
padding: 10px 14px;
border-bottom: 1px solid var(--border-subtle);
}
.footerRow:last-child {
border-bottom: none;
}
.footerRowSplit {
display: flex;
flex-direction: column;
gap: 8px;
}
@media (min-width: 520px) {
.footerRowSplit {
flex-direction: row;
align-items: center;
justify-content: space-between;
gap: 12px;
}
.rowHint {
flex-shrink: 0;
min-width: 7.5rem;
}
.urlLine {
flex: 1;
min-width: 0;
}
}
.footerRowMeta {
padding-top: 10px;
padding-bottom: 10px;
}
.footerLinks {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px 4px;
justify-content: center;
}
.footerSep {
color: var(--muted);
font-size: 12px;
user-select: none;
}
.brandLockup {
display: flex;
align-items: center;
gap: 10px;
text-decoration: none;
color: inherit;
}
.brandLockup:hover .brandName {
color: var(--link);
}
.brandIcon {
flex-shrink: 0;
opacity: 0.88;
border-radius: var(--radius-xs, 4px);
}
.brandText {
display: flex;
flex-direction: column;
gap: 1px;
min-width: 0;
}
.brandName {
font-size: 12px;
font-weight: 500;
color: var(--text);
letter-spacing: 0.01em;
transition: color var(--motion-xxs, 0.12s) var(--ease-soft, ease);
}
.brandProduct {
font-size: 11px;
color: var(--muted);
}
.rowHint {
font-size: 11px;
color: var(--muted);
}
.urlLine {
display: flex;
align-items: stretch;
gap: 8px;
min-width: 0;
}
.urlField {
flex: 1;
min-width: 0;
font-size: 12px;
padding: 6px 10px;
border-radius: var(--radius-sm, 6px);
border: 1px solid var(--border-subtle);
background: var(--bg);
color: var(--muted);
font-family: var(--font-mono, ui-monospace, monospace);
}
.copyBtn {
flex-shrink: 0;
font-size: 12px;
font-weight: 500;
padding: 6px 12px;
border-radius: var(--radius-sm, 6px);
border: 1px solid var(--border-subtle);
background: var(--bg);
color: var(--link);
cursor: pointer;
transition: background var(--motion-xxs, 0.12s) var(--ease-soft, ease);
}
.copyBtn:hover {
background: var(--surface-muted);
}
.textLink {
font-size: 12px;
font-weight: 500;
color: var(--link);
text-decoration: none;
}
.textLink:hover {
text-decoration: underline;
}
.footerCopyright {
text-align: center;
border-bottom: none;
padding-top: 10px;
padding-bottom: 12px;
}
.copyrightText {
margin: 0;
font-size: 11px;
color: var(--muted);
line-height: 1.4;
}