Files

648 lines
12 KiB
CSS

@import url("./shared.css");
.system-poster {
min-height: 2520px;
background: #fffdf9;
}
.system-header {
display: grid;
grid-template-columns: 1fr 360px;
gap: 50px;
min-height: 300px;
align-items: center;
padding: 58px 64px 52px;
border-bottom: 1px solid #eee8df;
}
.brand-lockup {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 24px;
}
.brand-mark {
display: flex;
width: 122px;
height: 122px;
align-items: center;
justify-content: center;
border-radius: 28px;
background: linear-gradient(135deg, var(--orange), var(--orange-deep));
box-shadow: 0 18px 36px rgba(255, 140, 66, 0.26);
font-size: 64px;
}
.brand-note {
max-width: 180px;
}
.brand-note strong {
display: block;
margin-bottom: 6px;
font-size: 22px;
}
.brand-note span {
color: var(--muted);
font-size: 14px;
line-height: 1.55;
}
.system-layout {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 0;
}
.system-main {
padding: 44px 42px 52px 54px;
border-right: 1px solid #eee8df;
}
.system-aside {
padding: 44px 54px 52px 42px;
background: #fbfaf7;
}
.spec-section {
padding: 30px 0 34px;
border-bottom: 1px solid #ece8e2;
}
.spec-section:first-child { padding-top: 0; }
.spec-section:last-child { border-bottom: 0; }
.spec-heading {
display: flex;
align-items: baseline;
justify-content: space-between;
margin-bottom: 24px;
}
.spec-heading h2 {
margin: 0;
font-size: 25px;
line-height: 1.3;
}
.spec-heading span {
color: var(--quiet);
font-size: 13px;
}
.button-showcase {
display: grid;
grid-template-columns: 1.45fr 1fr;
gap: 20px 24px;
}
.control-sample {
min-width: 0;
}
.sample-label {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 9px;
color: #4b5563;
font-size: 13px;
}
.sample-label code {
color: var(--quiet);
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
font-size: 11px;
}
.ds-btn {
display: flex;
width: 100%;
height: 62px;
align-items: center;
justify-content: center;
gap: 10px;
border: 0;
border-radius: 14px;
background: var(--orange);
color: #ffffff;
font-size: 19px;
font-weight: 760;
box-shadow: 0 10px 24px rgba(255, 140, 66, 0.24);
}
.ds-btn.compact {
width: 214px;
height: 54px;
margin: 0 auto;
font-size: 17px;
}
.ds-btn.green { background: #07c160; box-shadow: 0 10px 24px rgba(7, 193, 96, 0.18); }
.ds-btn.dark { background: #1f2937; box-shadow: 0 10px 24px rgba(31, 41, 55, 0.18); }
.ds-btn.pressed { transform: translateY(2px); background: var(--orange-deep); box-shadow: 0 4px 10px rgba(255, 107, 53, 0.22); }
.ds-btn.focused { outline: 3px solid rgba(255, 140, 66, 0.32); outline-offset: 3px; }
.ds-btn.disabled { background: #e5e7eb; color: #a9afb7; box-shadow: none; }
.ds-btn.loading { background: #f2f0ed; color: #929292; box-shadow: none; }
.spinner {
width: 18px;
height: 18px;
border: 2px solid rgba(146, 146, 146, 0.35);
border-top-color: #929292;
border-radius: 50%;
}
.state-strip {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 12px;
}
.state-cell .ds-btn {
height: 50px;
font-size: 15px;
border-radius: 12px;
}
.audio-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 14px;
}
.audio-btn {
display: flex;
height: 58px;
align-items: center;
justify-content: center;
gap: 10px;
border: 1px solid #ffd0b1;
border-radius: 14px;
background: #fffaf6;
color: var(--orange-deep);
font-size: 16px;
font-weight: 730;
}
.audio-btn.playing {
border-color: var(--orange);
background: var(--orange-soft);
}
.audio-icon {
display: flex;
width: 28px;
height: 28px;
align-items: center;
justify-content: center;
border-radius: 50%;
background: var(--orange);
color: #ffffff;
font-size: 12px;
}
.secondary-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 14px;
}
.secondary-btn {
display: flex;
height: 54px;
align-items: center;
justify-content: center;
border: 1px solid #ffb786;
border-radius: 13px;
background: #ffffff;
color: var(--orange-deep);
font-size: 16px;
font-weight: 700;
}
.secondary-btn.neutral { border-color: #d8dde4; color: #4b5563; }
.secondary-btn.danger { border-color: #e7a4b2; color: var(--red); }
.text-actions {
display: flex;
gap: 48px;
margin-top: 22px;
padding: 0 10px;
}
.text-action {
display: inline-flex;
align-items: center;
gap: 8px;
color: var(--orange-deep);
font-size: 16px;
font-weight: 700;
}
.icon-grid {
display: grid;
grid-template-columns: repeat(8, 1fr);
gap: 12px;
}
.icon-sample {
text-align: center;
}
.round-icon {
display: flex;
width: 54px;
height: 54px;
align-items: center;
justify-content: center;
margin: 0 auto 8px;
border: 1px solid #e5e7eb;
border-radius: 50%;
background: #ffffff;
color: #374151;
font-size: 22px;
box-shadow: 0 4px 12px rgba(31, 41, 55, 0.06);
}
.icon-sample span:last-child {
color: var(--muted);
font-size: 11px;
}
.compound-grid {
display: grid;
grid-template-columns: 1.3fr 1fr;
gap: 26px;
}
.segment {
display: grid;
grid-template-columns: repeat(4, 1fr);
overflow: hidden;
border: 1px solid #e5e7eb;
border-radius: 13px;
background: #ffffff;
}
.segment span {
display: flex;
height: 52px;
align-items: center;
justify-content: center;
border-right: 1px solid #eeeeee;
color: #4b5563;
font-size: 14px;
}
.segment span:last-child { border-right: 0; }
.segment .active { background: var(--orange); color: #ffffff; font-weight: 750; }
.switch-row,
.slider-row {
display: flex;
min-height: 48px;
align-items: center;
justify-content: space-between;
gap: 18px;
color: #4b5563;
font-size: 14px;
}
.switch {
position: relative;
width: 54px;
height: 30px;
border-radius: 999px;
background: var(--orange);
}
.switch::after {
position: absolute;
top: 4px;
right: 4px;
width: 22px;
height: 22px;
border-radius: 50%;
background: #ffffff;
box-shadow: 0 2px 6px rgba(31, 41, 55, 0.18);
content: "";
}
.slider {
position: relative;
flex: 1;
height: 7px;
border-radius: 999px;
background: linear-gradient(90deg, var(--orange) 0 62%, #e5e7eb 62% 100%);
}
.slider::after {
position: absolute;
top: 50%;
left: 62%;
width: 20px;
height: 20px;
transform: translate(-50%, -50%);
border: 3px solid #ffffff;
border-radius: 50%;
background: var(--orange);
box-shadow: 0 2px 8px rgba(31, 41, 55, 0.18);
content: "";
}
.bottom-nav-demo {
display: grid;
grid-template-columns: repeat(4, 1fr);
max-width: 650px;
margin: 0 auto;
padding: 14px 20px 10px;
border: 1px solid #ececec;
border-radius: 18px 18px 8px 8px;
background: #ffffff;
box-shadow: var(--shadow-soft);
}
.feedback-grid {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 12px;
}
.status-chip-demo {
display: flex;
min-height: 48px;
align-items: center;
justify-content: center;
gap: 7px;
border-radius: 999px;
background: #f3f4f6;
color: #4b5563;
font-size: 13px;
font-weight: 700;
}
.status-chip-demo::before {
width: 8px;
height: 8px;
border-radius: 50%;
background: currentColor;
content: "";
}
.status-chip-demo.online { background: #e8f8f0; color: #15803d; }
.status-chip-demo.syncing { background: #e8f0fe; color: #2563eb; }
.status-chip-demo.sleeping { background: #f0e6ff; color: #7c3aed; }
.status-chip-demo.low { background: #fff7e8; color: #c2410c; }
.status-chip-demo.alarm { background: #fff1f2; color: #be123c; }
.feedback-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 14px;
margin-top: 18px;
}
.feedback-banner {
display: flex;
min-height: 56px;
align-items: center;
gap: 10px;
padding: 0 16px;
border-left: 4px solid #16a34a;
border-radius: 0 10px 10px 0;
background: #f0fdf4;
color: #14532d;
font-size: 14px;
font-weight: 650;
}
.feedback-banner.warning {
border-left-color: var(--orange);
background: #fff7ed;
color: #9a3412;
}
.card-demo-grid {
display: grid;
grid-template-columns: 1.15fr 1fr;
gap: 16px;
}
.status-card-demo {
min-height: 164px;
padding: 22px;
border-radius: 18px;
background: linear-gradient(135deg, var(--orange), var(--orange-deep));
color: #ffffff;
box-shadow: 0 14px 28px rgba(255, 140, 66, 0.22);
}
.status-card-demo .demo-badge {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 10px;
border-radius: 8px;
background: rgba(255, 255, 255, 0.18);
font-size: 11px;
font-weight: 700;
}
.status-card-demo strong {
display: block;
margin-top: 18px;
font-size: 38px;
line-height: 1;
}
.status-card-demo span:last-child {
display: block;
margin-top: 7px;
color: rgba(255, 255, 255, 0.82);
font-size: 12px;
}
.empty-card-demo {
display: flex;
min-height: 164px;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 20px;
border: 1px solid #ececec;
border-radius: 18px;
background: #ffffff;
text-align: center;
box-shadow: var(--shadow-soft);
}
.empty-card-demo b {
margin: 8px 0 4px;
font-size: 15px;
}
.empty-card-demo span {
color: var(--muted);
font-size: 12px;
}
.nav-demo-item {
display: flex;
flex-direction: column;
align-items: center;
gap: 5px;
color: #999999;
font-size: 12px;
}
.nav-demo-item.active { color: var(--orange); font-weight: 760; }
.nav-demo-item img {
width: 30px;
height: 30px;
object-fit: contain;
}
.aside-panel {
padding: 28px 0 32px;
border-bottom: 1px solid #e9e4dc;
}
.aside-panel:first-child { padding-top: 0; }
.aside-panel:last-child { border-bottom: 0; }
.aside-panel h2 {
margin: 0 0 18px;
font-size: 22px;
}
.rule-list {
display: grid;
gap: 13px;
}
.rule {
display: grid;
grid-template-columns: 24px 1fr;
gap: 10px;
align-items: start;
color: #4b5563;
font-size: 14px;
line-height: 1.55;
}
.rule-mark {
display: flex;
width: 20px;
height: 20px;
align-items: center;
justify-content: center;
border-radius: 50%;
background: var(--orange);
color: #ffffff;
font-size: 11px;
font-weight: 800;
}
.token-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px 12px;
}
.color-token {
min-width: 0;
}
.swatch {
width: 52px;
height: 52px;
margin-bottom: 8px;
border: 1px solid rgba(31, 41, 55, 0.06);
border-radius: 50%;
}
.color-token code {
display: block;
color: #4b5563;
font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
font-size: 11px;
}
.color-token span {
color: var(--quiet);
font-size: 11px;
}
.spec-table {
width: 100%;
border-collapse: collapse;
}
.spec-table td {
padding: 11px 0;
border-bottom: 1px solid #ebe7e1;
color: #4b5563;
font-size: 13px;
line-height: 1.45;
vertical-align: top;
}
.spec-table tr:last-child td { border-bottom: 0; }
.spec-table td:first-child { width: 42%; color: var(--quiet); }
.spec-table td:last-child { color: var(--ink); font-weight: 650; }
.type-sample {
margin-bottom: 14px;
}
.type-sample:last-child { margin-bottom: 0; }
.type-sample strong {
display: block;
color: var(--ink);
}
.type-sample span {
color: var(--quiet);
font-size: 11px;
}
.type-display strong { font-size: 32px; }
.type-title strong { font-size: 22px; }
.type-body strong { font-size: 16px; }
.type-caption strong { font-size: 13px; }
.spacing-scale {
display: grid;
gap: 10px;
}
.space-row {
display: grid;
grid-template-columns: 42px 1fr 52px;
gap: 10px;
align-items: center;
color: var(--muted);
font-size: 12px;
}
.space-bar {
height: 10px;
border-radius: 3px;
background: var(--orange-soft);
}
.inventory-note {
padding: 16px;
border-left: 4px solid var(--orange);
border-radius: 0 8px 8px 0;
background: #fff7ed;
color: #9a3412;
font-size: 13px;
line-height: 1.6;
}