Gate STO workplace by role
Some checks failed
ci / test (push) Has been cancelled

This commit is contained in:
VPN SaaS Dev
2026-05-16 10:33:33 +09:00
parent 83ad880b9d
commit ac5845d5a0
10 changed files with 1612 additions and 593 deletions

View File

@@ -261,7 +261,6 @@ body.auth-required .shell {
.drawer-panel,
.sheet-panel {
max-height: 88vh;
overflow: auto;
padding: 18px;
border-radius: 16px 16px 0 0;
background: var(--surface);
@@ -270,14 +269,40 @@ body.auth-required .shell {
}
.drawer-panel {
display: grid;
grid-template-rows: auto auto minmax(0, 1fr);
gap: 12px;
width: min(520px, 100%);
height: min(88vh, 860px);
margin-left: auto;
overflow: hidden;
}
.sheet-panel {
overflow: auto;
}
.drawer-menu,
.drawer-content {
min-height: 0;
overflow: auto;
overscroll-behavior: contain;
scrollbar-gutter: stable;
}
.drawer-menu {
display: grid;
gap: 10px;
max-height: min(38vh, 360px);
padding: 2px 4px 2px 0;
}
.drawer-content {
padding-right: 4px;
}
.drawer-section {
margin-top: 14px;
padding-top: 14px;
border-top: 1px solid var(--line);
padding-top: 2px;
}
.drawer-form {
@@ -288,7 +313,7 @@ body.auth-required .shell {
.menu-row {
display: block;
width: 100%;
margin-bottom: 8px;
margin: 0;
background: var(--soft);
color: var(--text);
text-align: left;
@@ -1171,10 +1196,57 @@ button.is-busy {
color: #0e604f;
}
.menu-group {
display: grid;
gap: 6px;
padding: 10px;
border: 1px solid var(--line);
border-radius: 8px;
background: #fff;
}
.menu-group summary {
display: flex;
min-height: 28px;
align-items: center;
justify-content: space-between;
color: var(--muted);
cursor: pointer;
font-size: 12px;
font-weight: 850;
list-style: none;
text-transform: uppercase;
}
.menu-group summary::-webkit-details-marker {
display: none;
}
.menu-group summary::after {
content: "+";
display: grid;
width: 22px;
height: 22px;
place-items: center;
border: 1px solid var(--line);
border-radius: 50%;
color: var(--muted);
font-size: 14px;
line-height: 1;
}
.menu-group[open] summary::after {
content: "-";
}
.menu-group .menu-row {
margin-top: 6px;
}
.service-profile-card {
display: grid;
gap: 10px;
margin: 4px 0 12px;
margin: 0;
padding: 12px;
border: 1px solid rgba(18, 115, 95, 0.24);
border-radius: 8px;
@@ -1561,6 +1633,98 @@ select {
font-weight: 700;
}
.sto-page {
background:
linear-gradient(180deg, #ffffff 0, #f2f6f4 220px),
var(--bg);
}
.sto-shell {
width: min(1380px, 100%);
}
.sto-page .topbar {
align-items: center;
}
.sto-page .top-actions {
align-items: center;
min-width: min(520px, 48vw);
}
.sto-page #centerSelect {
min-width: 0;
}
.sto-hero {
margin-bottom: 14px;
}
.sto-hero .trust-badge {
color: #103f35;
background: #dff7ef;
}
.mini-stats {
grid-template-columns: repeat(5, minmax(130px, 1fr));
}
.stat-card {
display: grid;
gap: 7px;
min-height: 88px;
padding: 13px;
border: 1px solid var(--line);
border-radius: 8px;
background: #fff;
box-shadow: 0 10px 24px rgba(27, 38, 34, 0.06);
}
.stat-card span {
color: var(--muted);
font-size: 12px;
font-weight: 750;
text-transform: uppercase;
}
.stat-card strong {
color: var(--text);
font-size: clamp(20px, 2.6vw, 28px);
line-height: 1.05;
}
.sto-grid {
display: grid;
grid-template-columns: minmax(320px, 0.95fr) minmax(420px, 1.35fr);
gap: 14px;
align-items: start;
}
.sto-grid .workspace {
min-width: 0;
}
#staffPanel {
grid-column: 1 / -1;
}
.staff-form {
grid-template-columns: minmax(220px, 1fr) minmax(160px, 220px) auto;
margin: 0 0 10px;
padding: 12px;
border: 1px solid var(--line);
border-radius: 8px;
background: #fbfdfc;
}
.staff-form button {
min-width: 136px;
}
.stack-item small {
overflow-wrap: anywhere;
}
@keyframes toastIn {
from {
opacity: 0;
@@ -1627,6 +1791,37 @@ select {
.sheet-panel {
max-height: 92vh;
}
.drawer-panel {
height: 92vh;
}
.sto-page .topbar {
align-items: stretch;
flex-direction: column;
}
.sto-page .top-actions {
width: 100%;
min-width: 0;
}
.sto-grid,
.staff-form {
grid-template-columns: 1fr;
}
.mini-stats {
display: flex;
overflow-x: auto;
scroll-snap-type: x mandatory;
padding-bottom: 4px;
}
.stat-card {
min-width: 70vw;
scroll-snap-align: start;
}
}
@media (max-width: 640px) {
@@ -1727,6 +1922,19 @@ select {
display: grid;
}
.sto-page .passport-head {
grid-template-columns: 1fr;
}
.sto-page .top-actions {
display: grid;
grid-template-columns: minmax(0, 1fr) 44px;
}
.staff-form button {
width: 100%;
}
.auth-overlay {
align-items: stretch;
padding: 14px;