3546 lines
56 KiB
CSS
3546 lines
56 KiB
CSS
@import "tailwindcss";
|
|
|
|
:root {
|
|
--ink: #172321;
|
|
--ink-soft: #32423f;
|
|
--nav: #13201e;
|
|
--nav-muted: #84938f;
|
|
--green: #1f8f69;
|
|
--green-deep: #187455;
|
|
--green-soft: #e9f4ef;
|
|
--canvas: #f4f5f2;
|
|
--panel: #ffffff;
|
|
--line: #e4e8e4;
|
|
--muted: #77827f;
|
|
--orange: #ec7d51;
|
|
--orange-soft: #fff0e8;
|
|
--blue: #477f91;
|
|
--blue-soft: #e8f2f5;
|
|
--shadow: 0 1px 2px rgb(18 31 28 / 0.03), 0 12px 34px rgb(18 31 28 / 0.045);
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html,
|
|
body {
|
|
min-height: 100%;
|
|
}
|
|
|
|
.admin-access-denied {
|
|
display: grid;
|
|
min-height: 100vh;
|
|
place-items: center;
|
|
padding: 24px;
|
|
background: var(--cream);
|
|
}
|
|
|
|
.admin-access-denied section {
|
|
width: min(440px, 100%);
|
|
padding: 42px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 22px;
|
|
background: white;
|
|
box-shadow: 0 22px 70px rgb(18 31 28 / 0.1);
|
|
text-align: center;
|
|
}
|
|
|
|
.admin-access-denied p {
|
|
color: var(--green);
|
|
font-size: 11px;
|
|
font-weight: 800;
|
|
letter-spacing: 0.16em;
|
|
}
|
|
|
|
.admin-access-denied h1 {
|
|
margin: 14px 0 8px;
|
|
color: var(--green-deep);
|
|
font-size: 24px;
|
|
}
|
|
|
|
.admin-access-denied span {
|
|
display: block;
|
|
color: #7f8a86;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.admin-access-denied a {
|
|
display: inline-flex;
|
|
height: 40px;
|
|
align-items: center;
|
|
margin-top: 24px;
|
|
padding: 0 18px;
|
|
border-radius: 10px;
|
|
color: white;
|
|
background: var(--green);
|
|
font-size: 12px;
|
|
font-weight: 700;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.login-page {
|
|
display: grid;
|
|
min-height: 100vh;
|
|
grid-template-columns: minmax(0, 1.25fr) minmax(380px, 0.75fr);
|
|
gap: 28px;
|
|
align-items: stretch;
|
|
padding: 42px;
|
|
background: #eef2ee;
|
|
}
|
|
|
|
.login-brand,
|
|
.login-card {
|
|
border-radius: 28px;
|
|
}
|
|
|
|
.login-brand {
|
|
display: flex;
|
|
min-height: 620px;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
padding: clamp(42px, 7vw, 96px);
|
|
color: white;
|
|
background: linear-gradient(135deg, #102d25, #1f6f55);
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.login-logo {
|
|
display: grid;
|
|
width: 54px;
|
|
height: 54px;
|
|
place-items: center;
|
|
border-radius: 16px;
|
|
color: #15553f;
|
|
background: #a9e4cc;
|
|
font-size: 23px;
|
|
font-weight: 800;
|
|
}
|
|
|
|
.login-brand p {
|
|
margin: 28px 0 6px;
|
|
color: #67d4aa;
|
|
font-size: 12px;
|
|
font-weight: 800;
|
|
letter-spacing: 0.16em;
|
|
}
|
|
|
|
.login-brand h1 {
|
|
margin: 0;
|
|
font-size: clamp(42px, 6vw, 82px);
|
|
font-weight: 520;
|
|
letter-spacing: -0.06em;
|
|
}
|
|
|
|
.login-brand span {
|
|
margin-top: 20px;
|
|
color: rgb(255 255 255 / 0.64);
|
|
font-size: 15px;
|
|
}
|
|
|
|
.login-card {
|
|
display: flex;
|
|
width: 100%;
|
|
max-width: 520px;
|
|
flex-direction: column;
|
|
align-self: center;
|
|
justify-self: center;
|
|
padding: clamp(32px, 5vw, 58px);
|
|
border: 1px solid #dfe6e1;
|
|
background: white;
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.login-card h2 {
|
|
margin: 6px 0 4px;
|
|
font-size: 32px;
|
|
letter-spacing: -0.04em;
|
|
}
|
|
|
|
.login-tip {
|
|
margin-bottom: 30px;
|
|
color: var(--muted);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.login-card label,
|
|
.user-create-form label {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.login-card label > span,
|
|
.user-create-form label > span {
|
|
color: #61706b;
|
|
font-size: 11px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.login-card input,
|
|
.user-create-form input,
|
|
.user-create-form select {
|
|
height: 48px;
|
|
padding: 0 14px;
|
|
border: 1px solid #dbe3de;
|
|
border-radius: 11px;
|
|
outline: none;
|
|
background: #fbfcfb;
|
|
}
|
|
|
|
.login-card input:focus,
|
|
.user-create-form input:focus,
|
|
.user-create-form select:focus {
|
|
border-color: #5fb28f;
|
|
box-shadow: 0 0 0 3px rgb(50 153 112 / 0.1);
|
|
}
|
|
|
|
.login-card .primary-button {
|
|
width: 100%;
|
|
height: 50px;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.login-error {
|
|
margin: -2px 0 10px;
|
|
color: #c45e3a;
|
|
font-size: 11px;
|
|
}
|
|
|
|
body {
|
|
margin: 0;
|
|
background: var(--canvas);
|
|
color: var(--ink);
|
|
font-family: var(--font-geist-sans), "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
|
|
-webkit-font-smoothing: antialiased;
|
|
}
|
|
|
|
button,
|
|
input,
|
|
textarea,
|
|
select {
|
|
color: inherit;
|
|
font: inherit;
|
|
}
|
|
|
|
button {
|
|
cursor: pointer;
|
|
}
|
|
|
|
button:disabled {
|
|
cursor: not-allowed;
|
|
opacity: 0.55;
|
|
}
|
|
|
|
a {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.app-shell {
|
|
min-height: 100vh;
|
|
}
|
|
|
|
.sidebar {
|
|
position: fixed;
|
|
inset: 0 auto 0 0;
|
|
z-index: 50;
|
|
display: flex;
|
|
width: 232px;
|
|
flex-direction: column;
|
|
padding: 26px 16px 18px;
|
|
color: white;
|
|
background:
|
|
radial-gradient(circle at 20% 2%, rgb(64 129 106 / 0.17), transparent 24%),
|
|
var(--nav);
|
|
}
|
|
|
|
.brand-lockup {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
min-height: 46px;
|
|
padding: 0 10px;
|
|
}
|
|
|
|
.brand-symbol {
|
|
display: grid;
|
|
width: 38px;
|
|
height: 38px;
|
|
place-items: center;
|
|
border: 1px solid rgb(255 255 255 / 0.14);
|
|
border-radius: 12px;
|
|
background: linear-gradient(145deg, #2a9a74, #136149);
|
|
box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.22);
|
|
font-size: 16px;
|
|
font-weight: 750;
|
|
}
|
|
|
|
.brand-lockup > div:last-child {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.brand-lockup strong {
|
|
font-size: 14px;
|
|
letter-spacing: 0.12em;
|
|
}
|
|
|
|
.brand-lockup > div:last-child span {
|
|
margin-top: 3px;
|
|
color: #8fa29e;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.main-nav {
|
|
margin-top: 32px;
|
|
}
|
|
|
|
.nav-caption {
|
|
margin: 0 12px 10px;
|
|
color: #667a75;
|
|
font-size: 10px;
|
|
font-weight: 650;
|
|
letter-spacing: 0.12em;
|
|
}
|
|
|
|
.nav-caption.second {
|
|
margin-top: 26px;
|
|
}
|
|
|
|
.main-nav button {
|
|
position: relative;
|
|
display: flex;
|
|
width: 100%;
|
|
height: 44px;
|
|
align-items: center;
|
|
gap: 12px;
|
|
margin: 2px 0;
|
|
padding: 0 12px;
|
|
border: 0;
|
|
border-radius: 10px;
|
|
color: var(--nav-muted);
|
|
background: transparent;
|
|
font-size: 13px;
|
|
text-align: left;
|
|
transition: 150ms ease;
|
|
}
|
|
|
|
.main-nav button:hover {
|
|
color: white;
|
|
background: rgb(255 255 255 / 0.045);
|
|
}
|
|
|
|
.main-nav button.active {
|
|
color: white;
|
|
background: linear-gradient(90deg, rgb(44 139 105 / 0.28), rgb(44 139 105 / 0.12));
|
|
}
|
|
|
|
.main-nav button.active::before {
|
|
position: absolute;
|
|
left: 0;
|
|
width: 2px;
|
|
height: 20px;
|
|
border-radius: 2px;
|
|
background: #4bc091;
|
|
content: "";
|
|
}
|
|
|
|
.nav-mark {
|
|
display: grid;
|
|
width: 20px;
|
|
height: 20px;
|
|
place-items: center;
|
|
color: #95a8a3;
|
|
font-size: 15px;
|
|
}
|
|
|
|
.main-nav button.active .nav-mark {
|
|
color: #5ec49d;
|
|
}
|
|
|
|
.nav-badge {
|
|
display: grid;
|
|
min-width: 21px;
|
|
height: 21px;
|
|
margin-left: auto;
|
|
place-items: center;
|
|
border-radius: 10px;
|
|
color: #fff;
|
|
background: #df744c;
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.sidebar-summary {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
margin-top: auto;
|
|
padding: 14px 12px;
|
|
border: 1px solid rgb(255 255 255 / 0.065);
|
|
border-radius: 12px;
|
|
background: rgb(255 255 255 / 0.035);
|
|
}
|
|
|
|
.sidebar-summary > div:last-child,
|
|
.sidebar-user > div:nth-child(2) {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex: 1;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.sidebar-summary strong,
|
|
.sidebar-user strong {
|
|
font-size: 11px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.sidebar-summary span,
|
|
.sidebar-user span {
|
|
margin-top: 3px;
|
|
color: #71837f;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.pulse-dot {
|
|
width: 8px;
|
|
height: 8px;
|
|
flex: 0 0 auto;
|
|
border: 2px solid #173d31;
|
|
border-radius: 50%;
|
|
background: #48bd8f;
|
|
box-shadow: 0 0 0 3px rgb(72 189 143 / 0.12);
|
|
}
|
|
|
|
.sidebar-user {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
margin-top: 12px;
|
|
padding: 10px 8px 0;
|
|
border-top: 1px solid rgb(255 255 255 / 0.06);
|
|
border-right: 0;
|
|
border-bottom: 0;
|
|
border-left: 0;
|
|
width: 100%;
|
|
color: inherit;
|
|
background: transparent;
|
|
text-align: left;
|
|
}
|
|
|
|
.sidebar-user:hover {
|
|
background: rgb(255 255 255 / 0.035);
|
|
}
|
|
|
|
.chevron {
|
|
color: #62736f !important;
|
|
font-size: 16px !important;
|
|
}
|
|
|
|
.avatar {
|
|
display: grid;
|
|
width: 34px;
|
|
height: 34px;
|
|
flex: 0 0 auto;
|
|
place-items: center;
|
|
border-radius: 10px;
|
|
color: #24423a;
|
|
background: #d7ebe3;
|
|
font-size: 12px;
|
|
font-weight: 720;
|
|
}
|
|
|
|
.avatar.small {
|
|
width: 30px;
|
|
height: 30px;
|
|
border-radius: 9px;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.avatar.large {
|
|
width: 44px;
|
|
height: 44px;
|
|
border-radius: 12px;
|
|
}
|
|
|
|
.avatar.xlarge {
|
|
width: 48px;
|
|
height: 48px;
|
|
border-radius: 15px;
|
|
font-size: 15px;
|
|
}
|
|
|
|
.avatar.coral { color: #6c382a; background: #f5d9cb; }
|
|
.avatar.cyan { color: #24505a; background: #d6e9ec; }
|
|
.avatar.violet { color: #51436a; background: #e4dcf0; }
|
|
.avatar.amber { color: #674a1f; background: #f0e1c3; }
|
|
.avatar.mint { color: #235646; background: #cfe8dd; }
|
|
|
|
.main-area {
|
|
min-height: 100vh;
|
|
margin-left: 232px;
|
|
}
|
|
|
|
.topbar {
|
|
position: sticky;
|
|
top: 0;
|
|
z-index: 30;
|
|
display: flex;
|
|
height: 70px;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 0 32px;
|
|
border-bottom: 1px solid #e5e8e5;
|
|
background: rgb(249 250 247 / 0.88);
|
|
backdrop-filter: blur(18px);
|
|
}
|
|
|
|
.breadcrumb {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
color: #9aa39f;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.breadcrumb i {
|
|
color: #c0c7c3;
|
|
font-style: normal;
|
|
}
|
|
|
|
.breadcrumb strong {
|
|
color: var(--ink-soft);
|
|
font-weight: 580;
|
|
}
|
|
|
|
.top-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.sync-state {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
margin-right: 6px;
|
|
color: #76817e;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.sync-state i {
|
|
width: 7px;
|
|
height: 7px;
|
|
border-radius: 50%;
|
|
background: #32a875;
|
|
}
|
|
|
|
.primary-button,
|
|
.ghost-button,
|
|
.full-ghost-button {
|
|
display: inline-flex;
|
|
min-height: 38px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 7px;
|
|
border-radius: 9px;
|
|
font-size: 12px;
|
|
font-weight: 620;
|
|
}
|
|
|
|
.primary-button {
|
|
padding: 0 15px;
|
|
border: 1px solid var(--green-deep);
|
|
color: white;
|
|
background: var(--green);
|
|
box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.18);
|
|
}
|
|
|
|
.primary-button:hover {
|
|
background: var(--green-deep);
|
|
}
|
|
|
|
.primary-button.soft {
|
|
border-color: #b8dacd;
|
|
color: var(--green-deep);
|
|
background: #eff8f4;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.primary-button.light {
|
|
border-color: white;
|
|
color: var(--green-deep);
|
|
background: white;
|
|
}
|
|
|
|
.ghost-button {
|
|
padding: 0 14px;
|
|
border: 1px solid #dce2de;
|
|
color: #53615d;
|
|
background: #fff;
|
|
}
|
|
|
|
.ghost-button:hover {
|
|
border-color: #bec9c4;
|
|
}
|
|
|
|
.full-ghost-button {
|
|
width: 100%;
|
|
border: 1px solid #e2e7e4;
|
|
color: #52615d;
|
|
background: #fafbf9;
|
|
}
|
|
|
|
.text-button {
|
|
padding: 3px 0;
|
|
border: 0;
|
|
color: var(--green-deep);
|
|
background: transparent;
|
|
font-size: 11px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.content-frame {
|
|
width: min(100%, 1500px);
|
|
margin: 0 auto;
|
|
padding: 32px 32px 56px;
|
|
}
|
|
|
|
.page-heading {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
justify-content: space-between;
|
|
margin-bottom: 26px;
|
|
}
|
|
|
|
.eyebrow {
|
|
margin: 0 0 8px;
|
|
color: var(--green);
|
|
font-size: 10px;
|
|
font-weight: 720;
|
|
letter-spacing: 0.13em;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.page-heading h1 {
|
|
margin: 0;
|
|
font-size: clamp(26px, 3vw, 34px);
|
|
font-weight: 690;
|
|
letter-spacing: -0.045em;
|
|
}
|
|
|
|
.page-heading > div > p:last-child {
|
|
margin: 8px 0 0;
|
|
color: var(--muted);
|
|
font-size: 13px;
|
|
}
|
|
|
|
.date-chip {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
color: #7b8682;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.date-chip strong {
|
|
color: var(--ink);
|
|
font-size: 12px;
|
|
}
|
|
|
|
.stat-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 14px;
|
|
}
|
|
|
|
.stat-card {
|
|
position: relative;
|
|
min-height: 148px;
|
|
padding: 20px 20px 17px;
|
|
overflow: hidden;
|
|
border: 1px solid var(--line);
|
|
border-radius: 15px;
|
|
background: white;
|
|
box-shadow: 0 1px 2px rgb(18 31 28 / 0.02);
|
|
}
|
|
|
|
.stat-icon {
|
|
position: absolute;
|
|
top: 17px;
|
|
right: 17px;
|
|
display: grid;
|
|
width: 33px;
|
|
height: 33px;
|
|
place-items: center;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.stat-icon span {
|
|
width: 11px;
|
|
height: 11px;
|
|
border: 2px solid currentColor;
|
|
border-radius: 3px 8px 3px 8px;
|
|
transform: rotate(12deg);
|
|
}
|
|
|
|
.stat-icon.ink { color: #364944; background: #eef1ef; }
|
|
.stat-icon.green { color: var(--green); background: var(--green-soft); }
|
|
.stat-icon.blue { color: var(--blue); background: var(--blue-soft); }
|
|
.stat-icon.orange { color: var(--orange); background: var(--orange-soft); }
|
|
|
|
.stat-card > p {
|
|
margin: 0;
|
|
color: #6f7a77;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.stat-value {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 5px;
|
|
margin-top: 17px;
|
|
}
|
|
|
|
.stat-value strong {
|
|
font-size: 30px;
|
|
font-weight: 670;
|
|
letter-spacing: -0.055em;
|
|
}
|
|
|
|
.stat-value span {
|
|
color: #9aa39f;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.stat-card small {
|
|
display: block;
|
|
margin-top: 10px;
|
|
color: #98a19e;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.overview-grid {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1.7fr) minmax(290px, 0.8fr);
|
|
gap: 14px;
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.panel {
|
|
border: 1px solid var(--line);
|
|
border-radius: 16px;
|
|
background: white;
|
|
box-shadow: 0 1px 2px rgb(18 31 28 / 0.02);
|
|
}
|
|
|
|
.workflow-panel,
|
|
.task-mini-panel,
|
|
.table-panel {
|
|
padding: 21px;
|
|
}
|
|
|
|
.panel-heading {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
gap: 20px;
|
|
margin-bottom: 19px;
|
|
}
|
|
|
|
.panel-heading h2,
|
|
.task-hero h2,
|
|
.resource-intro h2,
|
|
.batch-submit-card h2 {
|
|
margin: 0;
|
|
font-size: 15px;
|
|
font-weight: 670;
|
|
letter-spacing: -0.02em;
|
|
}
|
|
|
|
.panel-heading p {
|
|
margin: 5px 0 0;
|
|
color: #929c98;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.workflow-track {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr auto 1fr auto 1fr auto;
|
|
align-items: center;
|
|
padding: 9px 0 20px;
|
|
}
|
|
|
|
.workflow-track > i {
|
|
height: 1px;
|
|
margin: 0 10px;
|
|
background: #e1e7e3;
|
|
}
|
|
|
|
.workflow-step {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 9px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.workflow-step > span {
|
|
display: grid;
|
|
width: 30px;
|
|
height: 30px;
|
|
flex: 0 0 auto;
|
|
place-items: center;
|
|
border: 1px solid #dbe2de;
|
|
border-radius: 9px;
|
|
color: #9aa49f;
|
|
background: #fafbf9;
|
|
font-size: 9px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.workflow-step.done > span,
|
|
.workflow-step.active > span {
|
|
border-color: #abd1c2;
|
|
color: white;
|
|
background: var(--green);
|
|
}
|
|
|
|
.workflow-step > div {
|
|
display: flex;
|
|
flex-direction: column;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.workflow-step strong {
|
|
font-size: 11px;
|
|
}
|
|
|
|
.workflow-step small {
|
|
margin-top: 4px;
|
|
color: #99a29f;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.focus-callout {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr auto;
|
|
gap: 17px;
|
|
align-items: center;
|
|
padding: 17px 18px;
|
|
border: 1px solid #dcebe5;
|
|
border-radius: 13px;
|
|
background:
|
|
radial-gradient(circle at 90% 10%, rgb(47 157 117 / 0.08), transparent 28%),
|
|
#f6faf8;
|
|
}
|
|
|
|
.callout-ring {
|
|
display: grid;
|
|
width: 58px;
|
|
height: 58px;
|
|
place-items: center;
|
|
border: 4px solid #d8ede5;
|
|
border-top-color: var(--green);
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.callout-ring strong,
|
|
.callout-ring span {
|
|
grid-area: 1 / 1;
|
|
}
|
|
|
|
.callout-ring strong {
|
|
margin-top: -10px;
|
|
font-size: 17px;
|
|
}
|
|
|
|
.callout-ring span {
|
|
margin-top: 20px;
|
|
color: #81908b;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.focus-callout h3 {
|
|
margin: 0 0 5px;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.focus-callout p:last-child {
|
|
margin: 0;
|
|
color: #7c8985;
|
|
font-size: 9px;
|
|
line-height: 1.55;
|
|
}
|
|
|
|
.task-mini-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
}
|
|
|
|
.task-mini-list article {
|
|
padding-bottom: 15px;
|
|
border-bottom: 1px solid #edf0ed;
|
|
}
|
|
|
|
.task-mini-list article:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.task-mini-top {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 9px;
|
|
}
|
|
|
|
.task-mini-top > div:nth-child(2) {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex: 1;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.task-mini-top strong {
|
|
overflow: hidden;
|
|
font-size: 11px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.task-mini-top span {
|
|
margin-top: 3px;
|
|
color: #929c98;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.task-mini-top b {
|
|
color: var(--green);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.progress {
|
|
height: 4px;
|
|
overflow: hidden;
|
|
border-radius: 4px;
|
|
background: #edf0ed;
|
|
}
|
|
|
|
.progress span {
|
|
display: block;
|
|
height: 100%;
|
|
border-radius: 4px;
|
|
background: var(--green);
|
|
}
|
|
|
|
.task-mini-list .progress {
|
|
margin: 12px 0 8px 43px;
|
|
}
|
|
|
|
.task-mini-meta {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-left: 43px;
|
|
color: #9aa39f;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.task-mini-panel .full-ghost-button {
|
|
margin-top: 5px;
|
|
}
|
|
|
|
.table-panel {
|
|
margin-top: 14px;
|
|
}
|
|
|
|
.table-scroll {
|
|
width: 100%;
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.data-table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
table-layout: fixed;
|
|
}
|
|
|
|
.data-table th {
|
|
height: 38px;
|
|
padding: 0 12px;
|
|
border-bottom: 1px solid #e8ece9;
|
|
color: #97a09d;
|
|
background: #fafbf9;
|
|
font-size: 9px;
|
|
font-weight: 630;
|
|
text-align: left;
|
|
}
|
|
|
|
.data-table th:first-child {
|
|
width: 28%;
|
|
border-radius: 8px 0 0 8px;
|
|
}
|
|
|
|
.data-table th:last-child {
|
|
border-radius: 0 8px 8px 0;
|
|
}
|
|
|
|
.data-table td {
|
|
height: 66px;
|
|
padding: 10px 12px;
|
|
border-bottom: 1px solid #eef1ef;
|
|
font-size: 10px;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.data-table tbody tr:last-child td {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.data-table tbody tr:hover td {
|
|
background: #fbfcfa;
|
|
}
|
|
|
|
.content-cell,
|
|
.account-cell {
|
|
display: flex;
|
|
min-width: 0;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.content-cell > div,
|
|
.account-cell > div:last-child {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.content-cell strong,
|
|
.account-cell strong {
|
|
overflow: hidden;
|
|
font-size: 10px;
|
|
font-weight: 630;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.content-cell span:last-child,
|
|
.account-cell span {
|
|
overflow: hidden;
|
|
margin-top: 4px;
|
|
color: #98a19e;
|
|
font-size: 8px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.content-id {
|
|
display: grid;
|
|
min-width: 28px;
|
|
height: 28px;
|
|
place-items: center;
|
|
border-radius: 8px;
|
|
color: #61716c;
|
|
background: #eef2ef;
|
|
font-size: 8px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.plain-strong {
|
|
font-size: 10px;
|
|
font-weight: 610;
|
|
}
|
|
|
|
.muted {
|
|
color: #a0a8a5;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.date-value {
|
|
color: #5f6d69;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.status-pill,
|
|
.metric-ready,
|
|
.metric-waiting {
|
|
display: inline-flex;
|
|
min-width: 51px;
|
|
height: 23px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 12px;
|
|
font-size: 8px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.status-pill.claimed {
|
|
color: #a15f36;
|
|
background: #fff1e7;
|
|
}
|
|
|
|
.status-pill.published,
|
|
.status-pill.collecting,
|
|
.status-pill.active {
|
|
color: #2e7286;
|
|
background: #e9f3f6;
|
|
}
|
|
|
|
.status-pill.complete {
|
|
color: #277a5d;
|
|
background: #e6f3ee;
|
|
}
|
|
|
|
.metric-ready {
|
|
color: #277a5d;
|
|
background: #e9f5f0;
|
|
}
|
|
|
|
.metric-waiting {
|
|
color: #927038;
|
|
background: #faf1df;
|
|
}
|
|
|
|
.stack {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
}
|
|
|
|
.stack > .table-panel {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.task-hero {
|
|
display: flex;
|
|
min-height: 170px;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 28px 32px;
|
|
overflow: hidden;
|
|
border-radius: 17px;
|
|
color: white;
|
|
background:
|
|
radial-gradient(circle at 82% 30%, rgb(83 194 151 / 0.21), transparent 30%),
|
|
linear-gradient(125deg, #162a26, #205843);
|
|
}
|
|
|
|
.task-hero h2 {
|
|
font-size: 23px;
|
|
}
|
|
|
|
.task-hero > div > p:last-child {
|
|
max-width: 540px;
|
|
margin: 10px 0 0;
|
|
color: #a9c2b9;
|
|
font-size: 11px;
|
|
line-height: 1.7;
|
|
}
|
|
|
|
.task-hero .eyebrow {
|
|
color: #73d1ac;
|
|
}
|
|
|
|
.task-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.task-row {
|
|
display: grid;
|
|
grid-template-columns: auto minmax(220px, 1fr) 110px 82px 70px auto;
|
|
gap: 16px;
|
|
align-items: center;
|
|
min-height: 82px;
|
|
border-bottom: 1px solid #edf0ee;
|
|
}
|
|
|
|
.task-row:last-child {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.task-row-main > div:first-child {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 10px;
|
|
}
|
|
|
|
.task-row-main h3 {
|
|
margin: 0;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.task-row-main > div:first-child span,
|
|
.task-date span {
|
|
color: #929b98;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.task-row-main > small {
|
|
display: block;
|
|
margin-top: 4px;
|
|
color: #9aa39f;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.task-row-main .progress {
|
|
margin-top: 9px;
|
|
}
|
|
|
|
.task-number,
|
|
.task-date {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.task-number strong {
|
|
font-size: 16px;
|
|
}
|
|
|
|
.task-number span,
|
|
.task-date strong {
|
|
margin-top: 3px;
|
|
color: #7e8a86;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.round-arrow {
|
|
display: grid;
|
|
width: 30px;
|
|
height: 30px;
|
|
place-items: center;
|
|
border: 1px solid #e0e5e2;
|
|
border-radius: 50%;
|
|
color: #71807b;
|
|
background: white;
|
|
}
|
|
|
|
.task-share-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
}
|
|
|
|
.share-link-button {
|
|
height: 31px;
|
|
padding: 0 10px;
|
|
border: 1px solid #cfe1d9;
|
|
border-radius: 8px;
|
|
color: var(--green-deep);
|
|
background: #f2f8f5;
|
|
font-size: 8px;
|
|
font-weight: 650;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.share-link-button:hover {
|
|
border-color: #a9cebf;
|
|
background: #eaf5f0;
|
|
}
|
|
|
|
.inline-summary {
|
|
display: flex;
|
|
min-height: 76px;
|
|
align-items: center;
|
|
gap: 24px;
|
|
padding: 15px 21px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 14px;
|
|
background: white;
|
|
}
|
|
|
|
.inline-summary > div:not(.summary-note) {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 10px;
|
|
}
|
|
|
|
.inline-summary span {
|
|
color: #8b9692;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.inline-summary strong {
|
|
font-size: 23px;
|
|
}
|
|
|
|
.inline-summary > i {
|
|
width: 1px;
|
|
height: 28px;
|
|
background: #e5e9e6;
|
|
}
|
|
|
|
.summary-note {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
margin-left: auto;
|
|
padding: 9px 12px;
|
|
border-radius: 9px;
|
|
background: #f3f8f5;
|
|
}
|
|
|
|
.filter-chips {
|
|
display: flex;
|
|
gap: 4px;
|
|
padding: 3px;
|
|
border-radius: 9px;
|
|
background: #f3f5f3;
|
|
}
|
|
|
|
.filter-chips button {
|
|
height: 27px;
|
|
padding: 0 11px;
|
|
border: 0;
|
|
border-radius: 7px;
|
|
color: #89938f;
|
|
background: transparent;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.filter-chips button.active {
|
|
color: #34443f;
|
|
background: white;
|
|
box-shadow: 0 1px 3px rgb(18 31 28 / 0.08);
|
|
}
|
|
|
|
.section-intro {
|
|
display: flex;
|
|
min-height: 92px;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 30px;
|
|
padding: 18px 22px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 15px;
|
|
background: white;
|
|
}
|
|
|
|
.section-intro h2 {
|
|
margin: 0;
|
|
font-size: 18px;
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
.section-intro > p {
|
|
max-width: 510px;
|
|
margin: 0;
|
|
color: #84908c;
|
|
font-size: 10px;
|
|
line-height: 1.7;
|
|
text-align: right;
|
|
}
|
|
|
|
.task-scope-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 13px;
|
|
}
|
|
|
|
.task-scope-card {
|
|
padding: 19px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 16px;
|
|
background: white;
|
|
box-shadow: 0 1px 2px rgb(18 31 28 / 0.02);
|
|
transition: 160ms ease;
|
|
}
|
|
|
|
.task-scope-card:hover {
|
|
transform: translateY(-1px);
|
|
border-color: #cfdbd6;
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.task-scope-head {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr auto;
|
|
gap: 11px;
|
|
align-items: center;
|
|
}
|
|
|
|
.task-scope-head h3 {
|
|
margin: 0;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.task-scope-head > div:nth-child(2) > span {
|
|
display: block;
|
|
margin-top: 4px;
|
|
color: #929c98;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.task-source-line {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
margin-top: 16px;
|
|
padding: 10px 11px;
|
|
border-radius: 9px;
|
|
background: #f5f7f5;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.task-source-line > span {
|
|
color: #9aa39f;
|
|
}
|
|
|
|
.task-source-line a,
|
|
.task-source-line strong {
|
|
overflow: hidden;
|
|
color: #4d6b61;
|
|
font-weight: 620;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.task-scope-metrics {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
margin-top: 16px;
|
|
padding: 14px 0;
|
|
border-block: 1px solid #eef1ef;
|
|
}
|
|
|
|
.task-scope-metrics > div {
|
|
display: flex;
|
|
flex-direction: column;
|
|
border-right: 1px solid #eef1ef;
|
|
text-align: center;
|
|
}
|
|
|
|
.task-scope-metrics > div:last-child {
|
|
border-right: 0;
|
|
}
|
|
|
|
.task-scope-metrics span {
|
|
color: #99a29f;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.task-scope-metrics strong {
|
|
margin-top: 5px;
|
|
font-size: 17px;
|
|
letter-spacing: -0.03em;
|
|
}
|
|
|
|
.task-scope-progress {
|
|
margin-top: 13px;
|
|
}
|
|
|
|
.task-scope-open {
|
|
display: flex;
|
|
width: 100%;
|
|
height: 37px;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-top: 15px;
|
|
padding: 0 12px;
|
|
border: 1px solid #dce5e1;
|
|
border-radius: 9px;
|
|
color: #345d50;
|
|
background: #fbfcfb;
|
|
font-size: 9px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.task-scope-open:hover {
|
|
border-color: #bcd5ca;
|
|
background: #f2f8f5;
|
|
}
|
|
|
|
.task-scope-open b {
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.task-detail-header {
|
|
display: grid;
|
|
grid-template-columns: auto auto 1fr auto;
|
|
gap: 13px;
|
|
align-items: center;
|
|
min-height: 92px;
|
|
padding: 17px 20px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 15px;
|
|
background: white;
|
|
}
|
|
|
|
.detail-back {
|
|
height: 31px;
|
|
padding: 0 10px;
|
|
border: 1px solid #e0e6e2;
|
|
border-radius: 8px;
|
|
color: #697671;
|
|
background: white;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.task-detail-header p {
|
|
margin: 0 0 4px;
|
|
color: var(--green);
|
|
font-size: 8px;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
}
|
|
|
|
.task-detail-header h2 {
|
|
margin: 0;
|
|
font-size: 16px;
|
|
}
|
|
|
|
.task-detail-header > div:nth-child(3) > span {
|
|
display: block;
|
|
margin-top: 4px;
|
|
color: #8e9995;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.task-detail-header > a {
|
|
padding: 8px 10px;
|
|
border-radius: 8px;
|
|
color: var(--green-deep);
|
|
background: var(--green-soft);
|
|
font-size: 8px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.resource-intro {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr auto;
|
|
gap: 24px;
|
|
align-items: center;
|
|
min-height: 126px;
|
|
padding: 22px 26px;
|
|
border-radius: 16px;
|
|
color: white;
|
|
background: linear-gradient(120deg, #172924, #254d40);
|
|
}
|
|
|
|
.resource-figure {
|
|
display: flex;
|
|
min-width: 115px;
|
|
flex-direction: column;
|
|
padding-right: 24px;
|
|
border-right: 1px solid rgb(255 255 255 / 0.14);
|
|
}
|
|
|
|
.resource-figure strong {
|
|
font-size: 34px;
|
|
letter-spacing: -0.05em;
|
|
}
|
|
|
|
.resource-figure span {
|
|
color: #94b1a7;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.resource-intro > div:nth-child(2) p {
|
|
max-width: 580px;
|
|
margin: 8px 0 0;
|
|
color: #9db5ad;
|
|
font-size: 10px;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.resource-rule {
|
|
display: flex;
|
|
flex-direction: column;
|
|
padding: 13px 16px;
|
|
border: 1px solid rgb(255 255 255 / 0.1);
|
|
border-radius: 11px;
|
|
background: rgb(255 255 255 / 0.05);
|
|
}
|
|
|
|
.resource-rule span {
|
|
color: #8aa59c;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.resource-rule strong {
|
|
margin-top: 5px;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.resource-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
gap: 9px;
|
|
margin: -3px 0 18px;
|
|
padding: 13px;
|
|
border: 1px solid #e9eeeb;
|
|
border-radius: 12px;
|
|
background: #f8faf8;
|
|
}
|
|
|
|
.resource-search {
|
|
display: flex;
|
|
flex-direction: row;
|
|
min-width: 230px;
|
|
flex: 1 1 280px;
|
|
align-items: center;
|
|
gap: 8px;
|
|
margin: 0;
|
|
height: 38px;
|
|
padding: 0 12px;
|
|
border: 1px solid #dfe6e2;
|
|
border-radius: 9px;
|
|
background: white;
|
|
}
|
|
|
|
.resource-search:focus-within,
|
|
.resource-filter-search:focus-within {
|
|
border-color: #74b79f;
|
|
box-shadow: 0 0 0 3px rgb(31 143 107 / 0.08);
|
|
}
|
|
|
|
.resource-search > span,
|
|
.resource-filter-search > span {
|
|
color: #83918c;
|
|
font-size: 17px;
|
|
font-weight: 400;
|
|
}
|
|
|
|
.resource-search input,
|
|
.resource-filter-search input {
|
|
width: 100%;
|
|
height: 100%;
|
|
padding: 0;
|
|
border: 0;
|
|
outline: 0;
|
|
background: transparent;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.resource-filter-search {
|
|
display: flex;
|
|
flex: 0 1 180px;
|
|
align-items: center;
|
|
gap: 7px;
|
|
height: 38px;
|
|
padding: 0 11px;
|
|
border: 1px solid #dfe6e2;
|
|
border-radius: 9px;
|
|
background: white;
|
|
}
|
|
|
|
.resource-clear-button {
|
|
height: 38px;
|
|
padding: 0 6px;
|
|
border: 0;
|
|
color: var(--green-deep);
|
|
background: transparent;
|
|
font-size: 9px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.resource-clear-button:disabled {
|
|
color: #a5aeaa;
|
|
}
|
|
|
|
.resource-toolbar-summary {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
margin-left: auto;
|
|
color: #8c9894;
|
|
font-size: 9px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.resource-toolbar-summary b {
|
|
color: var(--ink);
|
|
font-size: 11px;
|
|
}
|
|
|
|
.resource-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.resource-card {
|
|
padding: 18px;
|
|
border: 1px solid #e5e9e6;
|
|
border-radius: 14px;
|
|
background: #fff;
|
|
transition: 150ms ease;
|
|
}
|
|
|
|
.resource-card:hover {
|
|
transform: translateY(-1px);
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.resource-card-head {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 11px;
|
|
}
|
|
|
|
.resource-card-head > div:nth-child(2) {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex: 1;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.resource-card-head h3 {
|
|
margin: 0;
|
|
overflow: hidden;
|
|
font-size: 12px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.resource-card-head span {
|
|
margin-top: 4px;
|
|
color: #8c9894;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.verified-dot {
|
|
display: grid;
|
|
width: 19px;
|
|
height: 19px;
|
|
place-items: center;
|
|
border-radius: 50%;
|
|
color: #fff !important;
|
|
background: var(--green);
|
|
font-size: 9px !important;
|
|
}
|
|
|
|
.resource-account-id {
|
|
display: flex;
|
|
min-width: 0;
|
|
align-items: center;
|
|
gap: 9px;
|
|
margin-top: 14px;
|
|
padding: 9px 10px;
|
|
border-radius: 8px;
|
|
color: #77847f;
|
|
background: #f5f7f5;
|
|
}
|
|
|
|
.resource-account-id span {
|
|
flex: 0 0 auto;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.resource-account-id strong {
|
|
min-width: 0;
|
|
overflow: hidden;
|
|
color: #40534d;
|
|
font-family: var(--font-geist-mono), monospace;
|
|
font-size: 9px;
|
|
font-weight: 600;
|
|
text-overflow: ellipsis;
|
|
user-select: all;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.resource-metrics {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, 1fr);
|
|
margin-top: 12px;
|
|
padding: 13px 0;
|
|
border-block: 1px solid #eef1ef;
|
|
}
|
|
|
|
.resource-metrics > div {
|
|
display: flex;
|
|
flex-direction: column;
|
|
border-right: 1px solid #eef1ef;
|
|
text-align: center;
|
|
}
|
|
|
|
.resource-metrics > div:last-child {
|
|
border-right: 0;
|
|
}
|
|
|
|
.resource-metrics span,
|
|
.resource-source > span {
|
|
color: #9ba4a1;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.resource-metrics strong {
|
|
margin-top: 4px;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.resource-source {
|
|
margin-top: 13px;
|
|
}
|
|
|
|
.resource-source > div {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 5px;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.resource-source b {
|
|
padding: 5px 7px;
|
|
border-radius: 6px;
|
|
color: #567068;
|
|
background: #eef4f1;
|
|
font-size: 8px;
|
|
font-weight: 580;
|
|
}
|
|
|
|
.resource-source b.partner-managed {
|
|
color: #8b603c;
|
|
background: #fff3e8;
|
|
}
|
|
|
|
.resource-card-foot {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-top: 14px;
|
|
color: #9aa39f;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.resource-card-foot a {
|
|
color: var(--green);
|
|
font-weight: 650;
|
|
}
|
|
|
|
.resource-empty {
|
|
display: flex;
|
|
min-height: 240px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
gap: 7px;
|
|
color: #939e9a;
|
|
text-align: center;
|
|
}
|
|
|
|
.resource-empty strong {
|
|
color: #354640;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.resource-empty span {
|
|
margin-bottom: 8px;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.recovery-legend {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 10px;
|
|
}
|
|
|
|
.recovery-legend > div {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr;
|
|
gap: 3px 9px;
|
|
align-items: center;
|
|
padding: 13px 16px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: white;
|
|
}
|
|
|
|
.recovery-legend strong {
|
|
font-size: 10px;
|
|
}
|
|
|
|
.recovery-legend small {
|
|
grid-column: 2;
|
|
color: #97a09d;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.legend-dot {
|
|
grid-row: 1 / span 2;
|
|
width: 9px;
|
|
height: 9px;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.legend-dot.auto { background: #43a97f; }
|
|
.legend-dot.upload { background: #52889a; }
|
|
.legend-dot.fallback { background: #e8875d; }
|
|
|
|
.recovery-table {
|
|
table-layout: auto;
|
|
}
|
|
|
|
.recovery-table th:first-child {
|
|
min-width: 280px;
|
|
}
|
|
|
|
.recovery-table th:nth-child(2) {
|
|
min-width: 96px;
|
|
}
|
|
|
|
.recovery-table th,
|
|
.recovery-table td {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.recovery-content {
|
|
max-width: 360px;
|
|
}
|
|
|
|
.recovery-content > div:last-child {
|
|
min-width: 0;
|
|
}
|
|
|
|
.recovery-content strong {
|
|
max-width: 310px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.recovery-title-link {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 5px;
|
|
max-width: 310px;
|
|
color: #182822;
|
|
text-decoration: none;
|
|
vertical-align: top;
|
|
}
|
|
|
|
.recovery-title-link strong {
|
|
min-width: 0;
|
|
}
|
|
|
|
.recovery-title-link::after {
|
|
content: "↗";
|
|
flex: none;
|
|
color: #2b9875;
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.recovery-title-link:hover strong {
|
|
color: #168565;
|
|
text-decoration: underline;
|
|
text-underline-offset: 3px;
|
|
}
|
|
|
|
.recovery-title-link:focus-visible {
|
|
border-radius: 4px;
|
|
outline: 2px solid rgba(43, 152, 117, 0.35);
|
|
outline-offset: 3px;
|
|
}
|
|
|
|
.recovery-content span {
|
|
color: #8d9894;
|
|
}
|
|
|
|
.metric-cell,
|
|
.creator-metrics {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.metric-cell strong,
|
|
.creator-metrics strong {
|
|
font-size: 11px;
|
|
}
|
|
|
|
.metric-cell span,
|
|
.creator-metrics span {
|
|
margin-top: 3px;
|
|
color: #99a29f;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.metric-cell.total strong {
|
|
color: var(--green-deep);
|
|
}
|
|
|
|
.metric-cell.update-time strong {
|
|
font-size: 9px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.metric-cell.publish-time strong {
|
|
color: #56645f;
|
|
font-size: 9px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.collection-status-cell {
|
|
display: flex;
|
|
max-width: 190px;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 5px;
|
|
}
|
|
|
|
.collection-status-cell small {
|
|
max-width: 180px;
|
|
overflow: hidden;
|
|
color: #98a19e;
|
|
font-size: 8px;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.collection-status {
|
|
display: inline-flex;
|
|
min-height: 24px;
|
|
align-items: center;
|
|
padding: 0 9px;
|
|
border-radius: 999px;
|
|
color: #72807a;
|
|
background: #f0f3f1;
|
|
font-size: 8px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.collection-status.success {
|
|
color: #237859;
|
|
background: #e9f7f0;
|
|
}
|
|
|
|
.collection-status.scheduled,
|
|
.collection-status.collecting {
|
|
color: #34778c;
|
|
background: #eaf4f7;
|
|
}
|
|
|
|
.collection-status.failed {
|
|
color: #b85e3a;
|
|
background: #fff0e9;
|
|
}
|
|
|
|
.creator-data-summary {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 3px;
|
|
color: #8b9692;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.creator-data-summary b {
|
|
font-weight: 650;
|
|
}
|
|
|
|
.creator-screenshot-cell {
|
|
display: flex;
|
|
min-width: 104px;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 6px;
|
|
}
|
|
|
|
.creator-screenshot-link {
|
|
color: var(--green-deep);
|
|
font-size: 8px;
|
|
font-weight: 700;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.creator-screenshot-link:hover {
|
|
text-decoration: underline;
|
|
text-underline-offset: 3px;
|
|
}
|
|
|
|
.creator-screenshot-pending,
|
|
.creator-ocr-failed {
|
|
color: #9aa39f;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.creator-ocr-failed {
|
|
color: #b85e3a;
|
|
}
|
|
|
|
.collect-button {
|
|
height: 27px;
|
|
padding: 0 9px;
|
|
border: 1px dashed #a8c9bb;
|
|
border-radius: 7px;
|
|
color: var(--green-deep);
|
|
background: #f7fbf9;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.upload-button {
|
|
display: inline-flex;
|
|
height: 28px;
|
|
align-items: center;
|
|
padding: 0 9px;
|
|
border: 1px solid #dce3df;
|
|
border-radius: 7px;
|
|
color: #66746f;
|
|
background: white;
|
|
cursor: pointer;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.upload-button.uploaded {
|
|
border-color: #b8d8cb;
|
|
color: #277a5d;
|
|
background: #eff8f4;
|
|
}
|
|
|
|
.upload-button.retry-upload {
|
|
height: 24px;
|
|
padding-inline: 7px;
|
|
color: #8a5a44;
|
|
background: #fff8f4;
|
|
}
|
|
|
|
.retry-failed-button {
|
|
display: inline-flex;
|
|
height: 34px;
|
|
align-items: center;
|
|
gap: 7px;
|
|
padding: 0 12px;
|
|
border: 1px solid #efc7b4;
|
|
border-radius: 8px;
|
|
color: #a95735;
|
|
background: #fff8f4;
|
|
font-size: 9px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.recovery-panel-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 9px;
|
|
}
|
|
|
|
.export-data-button {
|
|
display: inline-flex;
|
|
height: 34px;
|
|
align-items: center;
|
|
padding: 0 13px;
|
|
border: 1px solid #a9cdbc;
|
|
border-radius: 8px;
|
|
color: var(--green-deep);
|
|
background: #f2faf6;
|
|
font-size: 9px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.export-data-button:disabled {
|
|
color: #94a29c;
|
|
background: #f5f7f6;
|
|
cursor: wait;
|
|
}
|
|
|
|
.retry-failed-button b {
|
|
display: grid;
|
|
min-width: 18px;
|
|
height: 18px;
|
|
place-items: center;
|
|
padding: 0 5px;
|
|
border-radius: 999px;
|
|
color: white;
|
|
background: #df7b50;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.retry-failed-button:disabled {
|
|
border-color: #e4e8e6;
|
|
color: #a7afac;
|
|
background: #f6f7f6;
|
|
}
|
|
|
|
.collection-schedule-panel {
|
|
padding: 22px 24px;
|
|
}
|
|
|
|
.collection-schedule-heading {
|
|
display: flex;
|
|
align-items: flex-end;
|
|
justify-content: space-between;
|
|
gap: 24px;
|
|
}
|
|
|
|
.collection-schedule-heading h2 {
|
|
margin-top: 5px;
|
|
font-size: 20px;
|
|
}
|
|
|
|
.collection-schedule-heading > div > span {
|
|
display: block;
|
|
margin-top: 7px;
|
|
color: #87938f;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.schedule-save-area {
|
|
display: flex;
|
|
flex: 0 0 auto;
|
|
align-items: center;
|
|
gap: 12px;
|
|
}
|
|
|
|
.schedule-save-area .primary-button {
|
|
height: 38px;
|
|
}
|
|
|
|
.schedule-grid {
|
|
display: grid;
|
|
grid-template-columns: 190px 1fr;
|
|
gap: 14px;
|
|
margin-top: 20px;
|
|
}
|
|
|
|
.schedule-start {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
gap: 9px;
|
|
padding: 14px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
background: #fbfcfb;
|
|
}
|
|
|
|
.schedule-start span {
|
|
color: #65716d;
|
|
font-size: 9px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.schedule-start input {
|
|
width: 100%;
|
|
height: 42px;
|
|
padding: 0 12px;
|
|
border: 1px solid #d7dfdb;
|
|
border-radius: 9px;
|
|
color: var(--ink);
|
|
background: white;
|
|
font: inherit;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.schedule-days {
|
|
display: grid;
|
|
grid-template-columns: repeat(7, minmax(78px, 1fr));
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.schedule-days button {
|
|
display: grid;
|
|
min-height: 104px;
|
|
place-items: center;
|
|
align-content: center;
|
|
gap: 7px;
|
|
border: 0;
|
|
border-right: 1px solid var(--line);
|
|
color: #596762;
|
|
background: white;
|
|
}
|
|
|
|
.schedule-days button:last-child {
|
|
border-right: 0;
|
|
}
|
|
|
|
.schedule-days button:hover {
|
|
background: #f7fbf9;
|
|
}
|
|
|
|
.schedule-days button.selected {
|
|
color: var(--green-deep);
|
|
background: #eef8f3;
|
|
}
|
|
|
|
.schedule-days button span {
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.schedule-days button b {
|
|
display: grid;
|
|
width: 24px;
|
|
height: 24px;
|
|
place-items: center;
|
|
border: 1px solid #d4dfda;
|
|
border-radius: 7px;
|
|
color: white;
|
|
background: white;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.schedule-days button.selected b {
|
|
border-color: var(--green);
|
|
background: var(--green);
|
|
}
|
|
|
|
.schedule-days button small {
|
|
color: #89948f;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.schedule-mobile-hint {
|
|
display: none;
|
|
}
|
|
|
|
.schedule-updated {
|
|
margin-top: 10px;
|
|
color: #9aa39f;
|
|
font-size: 8px;
|
|
text-align: right;
|
|
}
|
|
|
|
.upload-button input {
|
|
display: none;
|
|
}
|
|
|
|
.partner-layout {
|
|
display: grid;
|
|
grid-template-columns: 310px minmax(0, 1fr);
|
|
gap: 20px;
|
|
align-items: start;
|
|
}
|
|
|
|
.partner-phone {
|
|
position: sticky;
|
|
top: 94px;
|
|
min-height: 620px;
|
|
padding: 16px 14px 12px;
|
|
overflow: hidden;
|
|
border: 7px solid #1c2926;
|
|
border-radius: 28px;
|
|
background: #f2f4f1;
|
|
box-shadow: 0 20px 50px rgb(18 31 28 / 0.15);
|
|
}
|
|
|
|
.phone-top {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 9px;
|
|
padding: 8px 5px 17px;
|
|
}
|
|
|
|
.phone-top > div:nth-child(2) {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex: 1;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.phone-top strong {
|
|
font-size: 11px;
|
|
}
|
|
|
|
.phone-top span {
|
|
margin-top: 3px;
|
|
color: #8c9693;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.phone-top button {
|
|
border: 0;
|
|
color: #78837f;
|
|
background: transparent;
|
|
}
|
|
|
|
.partner-card {
|
|
padding: 22px 17px 17px;
|
|
border-radius: 18px;
|
|
color: white;
|
|
background:
|
|
radial-gradient(circle at 90% 5%, rgb(98 218 171 / 0.22), transparent 28%),
|
|
linear-gradient(145deg, #18352d, #1e654d);
|
|
}
|
|
|
|
.micro-label {
|
|
display: inline-flex;
|
|
padding: 5px 8px;
|
|
border-radius: 12px;
|
|
color: #8ce3bd;
|
|
background: rgb(255 255 255 / 0.09);
|
|
font-size: 8px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.partner-card h2 {
|
|
margin: 15px 0 5px;
|
|
font-size: 19px;
|
|
letter-spacing: -0.035em;
|
|
}
|
|
|
|
.partner-card > p {
|
|
margin: 0;
|
|
color: #a1c0b5;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.partner-task-stats {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
margin: 19px 0;
|
|
padding: 13px 0;
|
|
border-block: 1px solid rgb(255 255 255 / 0.1);
|
|
}
|
|
|
|
.partner-task-stats div {
|
|
display: flex;
|
|
flex-direction: column;
|
|
text-align: center;
|
|
}
|
|
|
|
.partner-task-stats div:first-child {
|
|
border-right: 1px solid rgb(255 255 255 / 0.1);
|
|
}
|
|
|
|
.partner-task-stats strong {
|
|
font-size: 20px;
|
|
}
|
|
|
|
.partner-task-stats span {
|
|
margin-top: 3px;
|
|
color: #94b7aa;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.quantity-picker {
|
|
display: grid;
|
|
grid-template-columns: 42px 1fr 42px;
|
|
align-items: center;
|
|
padding: 8px;
|
|
border-radius: 13px;
|
|
background: rgb(255 255 255 / 0.08);
|
|
}
|
|
|
|
.quantity-picker button {
|
|
display: grid;
|
|
width: 37px;
|
|
height: 37px;
|
|
place-items: center;
|
|
border: 1px solid rgb(255 255 255 / 0.12);
|
|
border-radius: 10px;
|
|
color: white;
|
|
background: rgb(255 255 255 / 0.06);
|
|
}
|
|
|
|
.quantity-picker div {
|
|
display: flex;
|
|
flex-direction: column;
|
|
text-align: center;
|
|
}
|
|
|
|
.quantity-picker strong {
|
|
font-size: 19px;
|
|
}
|
|
|
|
.quantity-picker span {
|
|
color: #97b7ac;
|
|
font-size: 7px;
|
|
}
|
|
|
|
.partner-primary {
|
|
width: 100%;
|
|
height: 43px;
|
|
margin-top: 14px;
|
|
border: 0;
|
|
border-radius: 11px;
|
|
color: #14553e;
|
|
background: #f4fff9;
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.partner-card > small {
|
|
display: block;
|
|
margin-top: 9px;
|
|
color: #86aa9c;
|
|
font-size: 7px;
|
|
text-align: center;
|
|
}
|
|
|
|
.partner-bottom-nav {
|
|
position: absolute;
|
|
right: 14px;
|
|
bottom: 10px;
|
|
left: 14px;
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
height: 46px;
|
|
align-items: center;
|
|
border-radius: 14px;
|
|
background: white;
|
|
box-shadow: 0 7px 20px rgb(18 31 28 / 0.08);
|
|
color: #9aa39f;
|
|
font-size: 8px;
|
|
text-align: center;
|
|
}
|
|
|
|
.partner-bottom-nav .active {
|
|
color: var(--green);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.partner-console {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
}
|
|
|
|
.partner-settings,
|
|
.batch-submit-card,
|
|
.simple-flow {
|
|
padding: 21px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 16px;
|
|
background: white;
|
|
}
|
|
|
|
.form-grid {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
|
|
.form-grid.two {
|
|
grid-template-columns: 1fr 1fr;
|
|
}
|
|
|
|
label {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 7px;
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
label > span {
|
|
color: #66736f;
|
|
font-size: 10px;
|
|
font-weight: 620;
|
|
}
|
|
|
|
input,
|
|
textarea,
|
|
select {
|
|
width: 100%;
|
|
border: 1px solid #dce2de;
|
|
border-radius: 9px;
|
|
outline: none;
|
|
background: white;
|
|
font-size: 11px;
|
|
}
|
|
|
|
input,
|
|
select {
|
|
height: 40px;
|
|
padding: 0 11px;
|
|
}
|
|
|
|
textarea {
|
|
min-height: 110px;
|
|
padding: 11px;
|
|
resize: vertical;
|
|
line-height: 1.7;
|
|
}
|
|
|
|
input:focus,
|
|
textarea:focus,
|
|
select:focus {
|
|
border-color: #70ad95;
|
|
box-shadow: 0 0 0 3px rgb(31 143 105 / 0.08);
|
|
}
|
|
|
|
label small {
|
|
color: #9aa39f;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.partner-settings .form-grid {
|
|
margin-top: 15px;
|
|
}
|
|
|
|
.partner-settings label {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.batch-head {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 17px;
|
|
}
|
|
|
|
.batch-head > div {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
}
|
|
|
|
.batch-head p {
|
|
margin: 5px 0 0;
|
|
color: #909b97;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.step-number {
|
|
display: grid;
|
|
width: 36px;
|
|
height: 36px;
|
|
place-items: center;
|
|
border-radius: 11px;
|
|
color: var(--green);
|
|
background: var(--green-soft);
|
|
font-size: 10px;
|
|
font-weight: 750;
|
|
}
|
|
|
|
.pending-count {
|
|
padding: 7px 10px;
|
|
border-radius: 13px;
|
|
color: #ad643d;
|
|
background: var(--orange-soft);
|
|
font-size: 9px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.batch-submit-card textarea {
|
|
min-height: 210px;
|
|
border-style: dashed;
|
|
background: #fbfcfa;
|
|
}
|
|
|
|
.batch-foot {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.batch-foot > div {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 7px;
|
|
color: #8c9894;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.batch-foot > div span {
|
|
display: grid;
|
|
width: 18px;
|
|
height: 18px;
|
|
place-items: center;
|
|
border-radius: 50%;
|
|
color: var(--green);
|
|
background: var(--green-soft);
|
|
}
|
|
|
|
.simple-flow {
|
|
display: grid;
|
|
grid-template-columns: 1fr auto 1fr auto 1fr;
|
|
align-items: center;
|
|
}
|
|
|
|
.simple-flow div {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr;
|
|
gap: 2px 9px;
|
|
align-items: center;
|
|
}
|
|
|
|
.simple-flow div > span {
|
|
display: grid;
|
|
grid-row: 1 / span 2;
|
|
width: 27px;
|
|
height: 27px;
|
|
place-items: center;
|
|
border-radius: 9px;
|
|
color: var(--green);
|
|
background: var(--green-soft);
|
|
font-size: 9px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.simple-flow strong {
|
|
font-size: 10px;
|
|
}
|
|
|
|
.simple-flow small {
|
|
color: #99a29f;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.simple-flow > i {
|
|
width: 42px;
|
|
height: 1px;
|
|
margin: 0 12px;
|
|
background: #dfe5e1;
|
|
}
|
|
|
|
.modal-backdrop {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 100;
|
|
display: grid;
|
|
place-items: center;
|
|
padding: 20px;
|
|
background: rgb(11 20 18 / 0.54);
|
|
backdrop-filter: blur(5px);
|
|
}
|
|
|
|
.modal-card {
|
|
width: min(620px, 100%);
|
|
max-height: calc(100vh - 40px);
|
|
padding: 24px;
|
|
overflow-y: auto;
|
|
border-radius: 17px;
|
|
background: white;
|
|
box-shadow: 0 24px 80px rgb(9 19 16 / 0.24);
|
|
}
|
|
|
|
.modal-card.compact {
|
|
width: min(480px, 100%);
|
|
}
|
|
|
|
.modal-heading {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: space-between;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.modal-heading h2 {
|
|
margin: 0;
|
|
font-size: 20px;
|
|
letter-spacing: -0.035em;
|
|
}
|
|
|
|
.modal-heading > button {
|
|
display: grid;
|
|
width: 30px;
|
|
height: 30px;
|
|
place-items: center;
|
|
border: 0;
|
|
border-radius: 50%;
|
|
color: #7c8783;
|
|
background: #f1f3f1;
|
|
font-size: 18px;
|
|
}
|
|
|
|
.source-url-row {
|
|
display: grid;
|
|
grid-template-columns: 1fr auto;
|
|
gap: 9px;
|
|
}
|
|
|
|
.source-read-button {
|
|
min-width: 92px;
|
|
}
|
|
|
|
.source-preview {
|
|
margin: 2px 0 17px;
|
|
padding: 14px;
|
|
border: 1px solid #cfe2da;
|
|
border-radius: 12px;
|
|
background: #f6faf8;
|
|
}
|
|
|
|
.source-preview-head,
|
|
.source-preview-head > div {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.source-preview-head {
|
|
justify-content: space-between;
|
|
gap: 14px;
|
|
}
|
|
|
|
.source-preview-head > div {
|
|
min-width: 0;
|
|
gap: 9px;
|
|
}
|
|
|
|
.source-preview-head > div > div {
|
|
display: flex;
|
|
min-width: 0;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.source-check {
|
|
display: grid;
|
|
width: 24px;
|
|
height: 24px;
|
|
flex: 0 0 auto;
|
|
place-items: center;
|
|
border-radius: 50%;
|
|
color: white;
|
|
background: var(--green);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.source-preview-head strong {
|
|
overflow: hidden;
|
|
font-size: 11px;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.source-preview-head small {
|
|
margin-top: 3px;
|
|
color: #85928d;
|
|
font-size: 8px;
|
|
}
|
|
|
|
.source-preview-head b {
|
|
color: var(--green-deep);
|
|
font-size: 15px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.source-columns {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 5px;
|
|
margin-top: 12px;
|
|
}
|
|
|
|
.source-columns span {
|
|
padding: 4px 6px;
|
|
border-radius: 5px;
|
|
color: #64746e;
|
|
background: white;
|
|
font-size: 7px;
|
|
}
|
|
|
|
.source-samples {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
margin-top: 11px;
|
|
padding-top: 10px;
|
|
border-top: 1px solid #dfeae5;
|
|
}
|
|
|
|
.source-samples > div {
|
|
display: grid;
|
|
grid-template-columns: 20px 1fr;
|
|
gap: 8px;
|
|
align-items: center;
|
|
}
|
|
|
|
.source-samples span {
|
|
display: grid;
|
|
width: 20px;
|
|
height: 20px;
|
|
place-items: center;
|
|
border-radius: 6px;
|
|
color: #6d7d77;
|
|
background: #e7f0ec;
|
|
font-size: 7px;
|
|
}
|
|
|
|
.source-samples strong {
|
|
overflow: hidden;
|
|
color: #52625c;
|
|
font-size: 8px;
|
|
font-weight: 560;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.modal-actions {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: 9px;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.context-strip {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
margin-bottom: 18px;
|
|
padding: 12px 14px;
|
|
border-radius: 10px;
|
|
background: #f4f7f5;
|
|
}
|
|
|
|
.context-strip strong {
|
|
font-size: 11px;
|
|
}
|
|
|
|
.context-strip span {
|
|
color: #87928e;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.user-management-layout {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: 16px;
|
|
min-width: 0;
|
|
}
|
|
|
|
.user-create-panel,
|
|
.user-list-panel {
|
|
align-self: start;
|
|
min-width: 0;
|
|
padding: 22px;
|
|
}
|
|
|
|
.user-create-form {
|
|
display: grid;
|
|
gap: 12px;
|
|
align-items: end;
|
|
margin-top: 18px;
|
|
}
|
|
|
|
.user-create-form.with-role {
|
|
grid-template-columns: minmax(190px, 1.15fr) minmax(190px, 1fr) minmax(150px, 0.72fr) 132px;
|
|
}
|
|
|
|
.user-create-form.without-role {
|
|
grid-template-columns: minmax(190px, 1fr) minmax(190px, 1fr) 132px;
|
|
}
|
|
|
|
.user-create-form label {
|
|
min-width: 0;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.user-create-form .primary-button {
|
|
width: 100%;
|
|
height: 40px;
|
|
min-height: 40px;
|
|
}
|
|
|
|
.user-management-message {
|
|
margin: 14px 0 0;
|
|
padding: 10px 12px;
|
|
border-radius: 9px;
|
|
color: #27634f;
|
|
background: #edf7f2;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.user-table {
|
|
width: 100%;
|
|
max-width: 100%;
|
|
margin-top: 16px;
|
|
border: 1px solid var(--line);
|
|
border-radius: 12px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.user-table-head,
|
|
.user-table-row {
|
|
display: grid;
|
|
grid-template-columns: minmax(160px, 1.4fr) minmax(100px, 0.7fr) minmax(110px, 0.75fr) minmax(180px, auto);
|
|
gap: 12px;
|
|
align-items: center;
|
|
padding: 14px 16px;
|
|
}
|
|
|
|
.user-table-head {
|
|
color: #899490;
|
|
background: #f5f7f5;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.user-table-row {
|
|
border-top: 1px solid var(--line);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.user-table-row:hover {
|
|
background: #fbfcfa;
|
|
}
|
|
|
|
.user-table-row > span:not(.role-pill) {
|
|
color: #84908c;
|
|
}
|
|
|
|
.role-pill {
|
|
width: fit-content;
|
|
padding: 5px 8px;
|
|
border-radius: 999px;
|
|
color: #53625d;
|
|
background: #edf1ee;
|
|
font-size: 8px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.role-pill.super_admin {
|
|
color: #7d5a14;
|
|
background: #fff4d9;
|
|
}
|
|
|
|
.role-pill.admin {
|
|
color: #22614b;
|
|
background: #e5f5ed;
|
|
}
|
|
|
|
.user-row-actions {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 8px;
|
|
}
|
|
|
|
.user-action-button {
|
|
min-height: 30px;
|
|
padding: 0 10px;
|
|
border: 1px solid #dce5e1;
|
|
border-radius: 8px;
|
|
color: var(--green-deep);
|
|
background: white;
|
|
font-size: 9px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.user-action-button:hover {
|
|
border-color: #a8cbbd;
|
|
background: #f4faf7;
|
|
}
|
|
|
|
.user-action-button.danger {
|
|
border-color: #efd7d3;
|
|
color: #a8473b;
|
|
}
|
|
|
|
.user-action-button.danger:hover {
|
|
border-color: #dfb5ae;
|
|
background: #fff7f5;
|
|
}
|
|
|
|
.danger-button {
|
|
display: inline-flex;
|
|
min-height: 38px;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 0 15px;
|
|
border: 1px solid #a83f34;
|
|
border-radius: 9px;
|
|
color: white;
|
|
background: #b94d41;
|
|
font-size: 11px;
|
|
font-weight: 650;
|
|
}
|
|
|
|
.danger-button:hover {
|
|
background: #9f3e34;
|
|
}
|
|
|
|
.danger-button:disabled {
|
|
cursor: wait;
|
|
opacity: 0.62;
|
|
}
|
|
|
|
.eyebrow.danger {
|
|
color: #b04b40;
|
|
}
|
|
|
|
.user-delete-warning {
|
|
margin: 0;
|
|
padding: 13px 14px;
|
|
border: 1px solid #f0dedb;
|
|
border-radius: 10px;
|
|
color: #7f5049;
|
|
background: #fff8f6;
|
|
font-size: 10px;
|
|
line-height: 1.65;
|
|
}
|
|
|
|
.toast {
|
|
position: fixed;
|
|
right: 24px;
|
|
bottom: 24px;
|
|
z-index: 120;
|
|
display: flex;
|
|
min-height: 46px;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 0 16px;
|
|
border: 1px solid #d4e7df;
|
|
border-radius: 12px;
|
|
color: #2b4a40;
|
|
background: rgb(255 255 255 / 0.96);
|
|
box-shadow: 0 16px 45px rgb(18 31 28 / 0.16);
|
|
font-size: 11px;
|
|
font-weight: 580;
|
|
backdrop-filter: blur(12px);
|
|
}
|
|
|
|
.toast span {
|
|
display: grid;
|
|
width: 21px;
|
|
height: 21px;
|
|
place-items: center;
|
|
border-radius: 50%;
|
|
color: white;
|
|
background: var(--green);
|
|
font-size: 10px;
|
|
}
|
|
|
|
.working-bar {
|
|
position: fixed;
|
|
top: 0;
|
|
right: 0;
|
|
left: 232px;
|
|
z-index: 200;
|
|
height: 2px;
|
|
background: linear-gradient(90deg, transparent, #38b483, transparent);
|
|
background-size: 40% 100%;
|
|
animation: working 1.2s infinite linear;
|
|
}
|
|
|
|
@keyframes working {
|
|
from { background-position: -50% 0; }
|
|
to { background-position: 150% 0; }
|
|
}
|
|
|
|
.loading-layout {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 14px;
|
|
}
|
|
|
|
.loading-card,
|
|
.loading-table {
|
|
min-height: 148px;
|
|
border-radius: 15px;
|
|
background: linear-gradient(100deg, #e9ece9 20%, #f5f6f4 40%, #e9ece9 60%);
|
|
background-size: 220% 100%;
|
|
animation: shimmer 1.4s infinite linear;
|
|
}
|
|
|
|
.loading-table {
|
|
grid-column: 1 / -1;
|
|
min-height: 330px;
|
|
}
|
|
|
|
@keyframes shimmer {
|
|
to { background-position-x: -220%; }
|
|
}
|
|
|
|
.empty-state,
|
|
.table-empty {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
min-height: 380px;
|
|
color: #87928e;
|
|
text-align: center;
|
|
}
|
|
|
|
.table-empty.compact {
|
|
min-height: 150px;
|
|
font-size: 10px;
|
|
}
|
|
|
|
.empty-icon {
|
|
display: grid;
|
|
width: 44px;
|
|
height: 44px;
|
|
place-items: center;
|
|
border-radius: 50%;
|
|
color: #ac603e;
|
|
background: var(--orange-soft);
|
|
font-weight: 800;
|
|
}
|
|
|
|
.empty-state h3 {
|
|
margin: 15px 0 5px;
|
|
color: var(--ink);
|
|
}
|
|
|
|
.empty-state p {
|
|
margin: 0 0 18px;
|
|
font-size: 11px;
|
|
}
|
|
|
|
.menu-button,
|
|
.sidebar-scrim {
|
|
display: none;
|
|
}
|
|
|
|
@media (max-width: 1180px) {
|
|
.stat-grid {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
|
|
.overview-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.resource-grid {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
|
|
.resource-toolbar-summary {
|
|
width: 100%;
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.task-scope-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.workflow-track {
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.schedule-grid {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.user-create-form.with-role,
|
|
.user-create-form.without-role {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.user-create-form .primary-button {
|
|
align-self: end;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.login-page {
|
|
grid-template-columns: 1fr;
|
|
padding: 20px;
|
|
}
|
|
|
|
.login-brand {
|
|
min-height: 260px;
|
|
}
|
|
|
|
.user-management-layout {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.sidebar {
|
|
transform: translateX(-100%);
|
|
transition: transform 180ms ease;
|
|
}
|
|
|
|
.sidebar.open {
|
|
transform: translateX(0);
|
|
}
|
|
|
|
.sidebar-scrim {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 40;
|
|
display: block;
|
|
border: 0;
|
|
background: rgb(8 16 14 / 0.44);
|
|
}
|
|
|
|
.main-area {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.menu-button {
|
|
display: grid;
|
|
width: 34px;
|
|
height: 34px;
|
|
margin-right: 10px;
|
|
place-items: center;
|
|
border: 1px solid #dce2de;
|
|
border-radius: 9px;
|
|
background: white;
|
|
}
|
|
|
|
.topbar {
|
|
justify-content: flex-start;
|
|
padding: 0 20px;
|
|
}
|
|
|
|
.top-actions {
|
|
margin-left: auto;
|
|
}
|
|
|
|
.sync-state,
|
|
.top-actions .ghost-button {
|
|
display: none;
|
|
}
|
|
|
|
.content-frame {
|
|
padding: 26px 20px 50px;
|
|
}
|
|
|
|
.partner-layout {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.partner-phone {
|
|
position: relative;
|
|
top: 0;
|
|
width: min(100%, 330px);
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.resource-intro {
|
|
grid-template-columns: auto 1fr;
|
|
}
|
|
|
|
.resource-rule {
|
|
display: none;
|
|
}
|
|
|
|
.working-bar {
|
|
left: 0;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 680px) {
|
|
.login-page {
|
|
padding: 12px;
|
|
}
|
|
|
|
.login-brand {
|
|
min-height: 210px;
|
|
padding: 30px;
|
|
}
|
|
|
|
.login-brand h1 {
|
|
font-size: 40px;
|
|
}
|
|
|
|
.login-card {
|
|
padding: 28px 22px;
|
|
}
|
|
|
|
.user-table {
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.user-table-head,
|
|
.user-table-row {
|
|
min-width: 660px;
|
|
}
|
|
|
|
.user-create-panel,
|
|
.user-list-panel {
|
|
padding: 18px;
|
|
}
|
|
|
|
.user-create-form.with-role,
|
|
.user-create-form.without-role {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.topbar {
|
|
height: 62px;
|
|
}
|
|
|
|
.breadcrumb span,
|
|
.breadcrumb i {
|
|
display: none;
|
|
}
|
|
|
|
.top-actions .primary-button {
|
|
min-width: 38px;
|
|
padding: 0 10px;
|
|
font-size: 0;
|
|
}
|
|
|
|
.top-actions .primary-button span {
|
|
font-size: 16px;
|
|
}
|
|
|
|
.content-frame {
|
|
padding-inline: 14px;
|
|
}
|
|
|
|
.page-heading {
|
|
align-items: flex-start;
|
|
}
|
|
|
|
.date-chip {
|
|
display: none;
|
|
}
|
|
|
|
.stat-grid,
|
|
.resource-grid,
|
|
.recovery-legend {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.resource-toolbar {
|
|
align-items: stretch;
|
|
}
|
|
|
|
.resource-search,
|
|
.resource-filter-search {
|
|
width: 100%;
|
|
flex-basis: 100%;
|
|
}
|
|
|
|
.resource-clear-button {
|
|
padding-inline: 4px;
|
|
text-align: left;
|
|
}
|
|
|
|
.resource-toolbar-summary {
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.collection-schedule-panel {
|
|
padding: 18px;
|
|
}
|
|
|
|
.collection-schedule-heading {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.schedule-save-area {
|
|
width: 100%;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.schedule-save-area .primary-button {
|
|
min-width: 138px;
|
|
}
|
|
|
|
.schedule-days {
|
|
grid-template-columns: repeat(7, minmax(76px, 1fr));
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.schedule-mobile-hint {
|
|
display: block;
|
|
margin-top: -4px;
|
|
color: #97a19d;
|
|
font-size: 8px;
|
|
text-align: center;
|
|
}
|
|
|
|
.stat-card {
|
|
min-height: 130px;
|
|
}
|
|
|
|
.focus-callout {
|
|
grid-template-columns: auto 1fr;
|
|
}
|
|
|
|
.focus-callout .primary-button {
|
|
grid-column: 1 / -1;
|
|
width: 100%;
|
|
}
|
|
|
|
.workflow-track {
|
|
display: flex;
|
|
gap: 16px;
|
|
}
|
|
|
|
.workflow-track > i {
|
|
width: 24px;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.task-row {
|
|
grid-template-columns: auto 1fr auto;
|
|
padding: 12px 0;
|
|
}
|
|
|
|
.task-number,
|
|
.task-date,
|
|
.task-row > .status-pill {
|
|
display: none;
|
|
}
|
|
|
|
.task-hero {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 22px;
|
|
}
|
|
|
|
.inline-summary {
|
|
align-items: flex-start;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.summary-note {
|
|
width: 100%;
|
|
margin-left: 0;
|
|
}
|
|
|
|
.resource-intro {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.section-intro {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.section-intro > p {
|
|
text-align: left;
|
|
}
|
|
|
|
.task-detail-header {
|
|
grid-template-columns: auto 1fr auto;
|
|
}
|
|
|
|
.task-detail-header .detail-back {
|
|
grid-column: 1 / -1;
|
|
justify-self: start;
|
|
}
|
|
|
|
.source-url-row {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.source-read-button {
|
|
width: 100%;
|
|
}
|
|
|
|
.resource-figure {
|
|
border-right: 0;
|
|
}
|
|
|
|
.form-grid.two {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.batch-head,
|
|
.batch-foot {
|
|
align-items: flex-start;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.batch-foot .primary-button {
|
|
width: 100%;
|
|
}
|
|
|
|
.simple-flow {
|
|
grid-template-columns: 1fr;
|
|
gap: 14px;
|
|
}
|
|
|
|
.simple-flow > i {
|
|
width: 1px;
|
|
height: 18px;
|
|
margin-left: 13px;
|
|
}
|
|
|
|
.modal-card {
|
|
padding: 20px 17px;
|
|
}
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
scroll-behavior: auto !important;
|
|
animation-duration: 0.01ms !important;
|
|
animation-iteration-count: 1 !important;
|
|
}
|
|
}
|