|
|
@@ -0,0 +1,131 @@
|
|
|
+/* Page-level layout kept in the global bundle to respect the schedule component style budget. */
|
|
|
+app-operations-schedule.schedule-ui {
|
|
|
+/* Overview first: the range count anchors the page, while the other figures stay quiet. */
|
|
|
+.page-header { margin-bottom: 18px; }
|
|
|
+.page-header p { margin: 0; color: #347a64; font-size: 12px; font-weight: 800; letter-spacing: .03em; }
|
|
|
+.summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
|
|
|
+.summary-card {
|
|
|
+ min-width: 0;
|
|
|
+ min-height: 112px;
|
|
|
+ align-content: space-between;
|
|
|
+ padding: 16px 18px;
|
|
|
+ border-color: #dbe8e2;
|
|
|
+ box-shadow: 0 6px 18px rgba(31, 67, 55, .035);
|
|
|
+}
|
|
|
+.summary-card span { color: #657b70; font-weight: 750; }
|
|
|
+.summary-card strong { color: #21493c; font-size: clamp(26px, 2.2vw, 34px); line-height: 1; font-variant-numeric: tabular-nums; }
|
|
|
+.summary-card small { min-height: 16px; line-height: 1.35; }
|
|
|
+.summary-card-primary {
|
|
|
+ position: relative;
|
|
|
+ isolation: isolate;
|
|
|
+ overflow: hidden;
|
|
|
+ border-color: #176c55;
|
|
|
+ background: linear-gradient(118deg, #145944, #1d7860);
|
|
|
+ box-shadow: 0 10px 24px rgba(23, 108, 85, .16);
|
|
|
+}
|
|
|
+.summary-card-primary::after {
|
|
|
+ content: '';
|
|
|
+ position: absolute;
|
|
|
+ z-index: -1;
|
|
|
+ width: 176px;
|
|
|
+ height: 176px;
|
|
|
+ right: -48px;
|
|
|
+ top: -99px;
|
|
|
+ border: 27px solid rgba(255, 255, 255, .1);
|
|
|
+ border-radius: 50%;
|
|
|
+}
|
|
|
+.summary-card-primary.summary-card-primary span, .summary-card-primary.summary-card-primary strong { color: #fff; }
|
|
|
+.summary-card-primary.summary-card-primary small { color: #c9e5d9; }
|
|
|
+
|
|
|
+.schedule-planner {
|
|
|
+ margin-bottom: 14px;
|
|
|
+ overflow: visible;
|
|
|
+ border: 1px solid #dce9e2;
|
|
|
+ border-radius: 18px;
|
|
|
+ background: #fff;
|
|
|
+ box-shadow: 0 8px 26px rgba(31, 67, 55, .045);
|
|
|
+}
|
|
|
+.planner-heading {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ gap: 10px 18px;
|
|
|
+ padding: 15px 18px 0;
|
|
|
+}
|
|
|
+.planner-heading > div:first-child { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 12px; }
|
|
|
+.planner-heading strong { color: #224b3e; font-size: 16px; }
|
|
|
+.planner-heading span, .planner-heading small { color: #74867e; font-size: 12px; }
|
|
|
+.planner-heading small { white-space: nowrap; font-variant-numeric: tabular-nums; }
|
|
|
+.schedule-planner .toolbar {
|
|
|
+ flex-wrap: wrap;
|
|
|
+ gap: 10px;
|
|
|
+ margin: 0;
|
|
|
+ padding: 14px 18px 16px;
|
|
|
+ border: 0;
|
|
|
+ border-radius: 0;
|
|
|
+ box-shadow: none;
|
|
|
+}
|
|
|
+.schedule-planner .toolbar > .segmented { width: 190px; }
|
|
|
+.schedule-planner .toolbar .date-filter { flex: 0 0 200px; width: 200px; }
|
|
|
+.schedule-planner .toolbar .coach-filter { flex: 0 1 300px; width: 300px; min-width: 230px; max-width: 300px; margin-left: auto; }
|
|
|
+.schedule-planner .schedule-filterbar {
|
|
|
+ flex-wrap: wrap;
|
|
|
+ justify-content: space-between;
|
|
|
+ gap: 10px 12px;
|
|
|
+ margin: 0;
|
|
|
+ padding: 14px 18px 16px;
|
|
|
+ border: 0;
|
|
|
+ border-top: 1px solid #edf2ef;
|
|
|
+ border-radius: 0 0 18px 18px;
|
|
|
+ background: #fbfdfc;
|
|
|
+}
|
|
|
+.schedule-planner .schedule-search { flex: 0 1 430px; width: min(100%, 430px); max-width: 430px; }
|
|
|
+.schedule-planner .status-filter { flex: 0 0 220px; }
|
|
|
+.schedule-planner .filter-result { margin-left: 0; }
|
|
|
+.schedule-planner .schedule-loading { margin: 0 18px 14px; }
|
|
|
+
|
|
|
+.schedule-workflow { margin-bottom: 14px; }
|
|
|
+.schedule-workflow > summary {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ gap: 12px;
|
|
|
+ min-height: 52px;
|
|
|
+ padding: 11px 18px;
|
|
|
+ cursor: pointer;
|
|
|
+ list-style: none;
|
|
|
+ background: #f7fbf9;
|
|
|
+}
|
|
|
+.schedule-workflow > summary::-webkit-details-marker { display: none; }
|
|
|
+.schedule-workflow > summary > span:first-child { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
|
|
|
+.schedule-workflow > summary strong { color: #244c3e; font-size: 14px; }
|
|
|
+.schedule-workflow > summary small { color: #6b8177; font-size: 12px; }
|
|
|
+.workflow-toggle { flex: none; color: #176c55; font-size: 12px; font-weight: 750; }
|
|
|
+.workflow-toggle::after { content: '⌄'; display: inline-block; margin-left: 7px; font-size: 17px; line-height: .7; }
|
|
|
+.schedule-workflow[open] .workflow-toggle::after { transform: rotate(180deg); }
|
|
|
+.schedule-workflow[open] > summary { border-bottom: 1px solid #e8efec; }
|
|
|
+.schedule-workflow > summary:focus-visible { outline: 3px solid rgba(31, 130, 98, .25); outline-offset: -3px; }
|
|
|
+
|
|
|
+@media (max-width: 1300px) {
|
|
|
+ .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
|
+}
|
|
|
+
|
|
|
+@media (max-width: 700px) {
|
|
|
+ .summary-grid { gap: 10px; margin-bottom: 12px; }
|
|
|
+ .summary-card { min-height: 96px; padding: 14px; }
|
|
|
+ .summary-card:first-child { grid-column: 1 / -1; }
|
|
|
+ .summary-card:last-child { min-height: 82px; }
|
|
|
+ .summary-card:last-child strong { grid-column: auto; grid-row: auto; font-size: 26px; }
|
|
|
+ .summary-card:last-child span, .summary-card:last-child small { grid-column: auto; }
|
|
|
+ .planner-heading { align-items: flex-start; flex-wrap: wrap; padding: 13px 14px 0; }
|
|
|
+ .planner-heading > div:first-child { display: grid; gap: 3px; }
|
|
|
+ .schedule-planner .toolbar { padding: 12px 14px; }
|
|
|
+ .schedule-planner .toolbar > .segmented { width: 100%; }
|
|
|
+ .schedule-planner .toolbar .date-filter, .schedule-planner .toolbar .coach-filter { width: 100%; min-width: 0; max-width: none; margin-left: 0; }
|
|
|
+ .schedule-planner .schedule-filterbar { grid-template-columns: minmax(0, 1fr); padding: 12px 14px 14px; }
|
|
|
+ .schedule-planner .schedule-search, .schedule-planner .status-filter { width: 100%; max-width: none; min-width: 0; }
|
|
|
+ .schedule-planner .filter-result { margin-left: 0; }
|
|
|
+ .schedule-workflow > summary { align-items: flex-start; padding: 12px 14px; }
|
|
|
+ .schedule-workflow > summary > span:first-child { display: grid; gap: 3px; }
|
|
|
+}
|
|
|
+}
|