/* Personal dashboard library and job operations. Uses the PRA shell theme tokens. */
.library-filters{display:flex;align-items:flex-end;gap:14px;padding:20px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:12px;margin:8px 0 15px;flex-wrap:wrap}
.library-filters label{margin:0;min-width:155px;flex:0 1 185px}
.library-filters .library-search{flex:1 1 250px}
.library-filters button{min-height:42px}
.library-clear{padding:12px 3px;font-size:11px;font-weight:600;color:var(--brand)}
.library-results{display:flex;gap:14px;justify-content:space-between;font-size:10px;color:var(--muted);margin:19px 0 15px}
.library-star{width:40px;height:40px;min-width:40px;padding:9px;border:1px solid var(--line);background:var(--surface,#fff);color:var(--muted);border-radius:10px}
.library-star:hover{color:var(--brand);background:var(--accent);border-color:var(--brand)}
.library-star.is-favorite{color:var(--brand);background:var(--accent);border-color:transparent}
.library-star.with-label{width:auto;white-space:nowrap;padding:9px 13px;font-size:11px}
.favorite-control{margin:0;flex-shrink:0}
.library-report{position:relative;min-width:0;display:flex}
.library-report>.report-card{height:100%;width:100%;margin:0}
.library-report>.favorite-control{position:absolute;right:14px;top:14px;z-index:2}
.library-report>.favorite-control .library-star{box-shadow:0 2px 8px #0002}
.library-report .report-card-meta{flex-wrap:wrap}
.library-empty{grid-column:1/-1;padding:44px 24px;border:1px dashed var(--line);border-radius:12px;text-align:center;background:var(--surface,#fff)}
.library-empty .job-symbol{margin:0 auto 16px}
.library-empty p{color:var(--muted);max-width:470px;margin:0 auto 24px}
.library-create{margin-top:28px}
.library-create>summary{color:var(--brand);font-weight:600;cursor:pointer}
.library-create .grid{margin-bottom:0}
.job-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:2px 0 28px;border:1px solid var(--line);border-radius:12px;background:var(--surface,#fff);overflow:hidden}
.job-overview>div{padding:19px 25px;border-right:1px solid var(--line)}
.job-overview>div:last-child{border-right:0}
.job-overview span{display:block;color:var(--muted);font-size:10px;margin-bottom:5px}
.job-overview strong{font-size:26px;line-height:1.3;font-weight:600;letter-spacing:-1px;display:flex;gap:6px;align-items:baseline}
.job-overview small{font-size:14px;color:var(--muted);font-weight:400;letter-spacing:0}
.job-overview .has-failures strong{color:#b34035}
.job-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.job-card{display:flex;flex-direction:column;margin:0;padding:25px}
.job-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}
.job-symbol{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--accent);color:var(--brand);border-radius:12px;flex-shrink:0}
.job-card h2{font-size:17px;margin:0 0 9px;line-height:1.45;overflow-wrap:anywhere}
.job-card h2 a:hover{color:var(--brand)}
.job-card .job-description{font-size:11px;min-height:40px;line-height:1.8;margin:0 0 24px}
.job-latest{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:auto}
.job-latest>span:first-child{font-size:10px;color:var(--muted)}
.status-dot{display:inline-block;width:5px;height:5px;background:currentColor;border-radius:50%;margin-right:5px;vertical-align:middle}
.job-card .job-run-time{font-size:10px;margin:9px 0 17px;color:var(--muted)}
.job-schedule-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:15px;border-top:1px solid var(--line);font-size:10px}
.job-schedule-summary>span{color:var(--muted)}
.job-schedule-summary strong{font-weight:600}
.job-schedule-summary code{margin-left:auto;color:var(--muted);font-size:11px}
.job-open{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;color:var(--brand);margin-top:21px;padding-top:17px;border-top:1px solid var(--line)}
.job-open .ui-icon{width:17px;height:17px}
.library-back{display:inline-block;font-size:11px;color:var(--muted);margin:0 0 25px}
.library-back:hover{color:var(--brand)}
.job-heading{align-items:center;gap:22px;margin-bottom:25px}
.job-heading h1{font-size:28px;overflow-wrap:anywhere}
.job-heading .lead{margin-bottom:0;max-width:600px}
.job-heading-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;flex-shrink:0;max-width:330px;justify-content:flex-end}
.job-heading-actions button{min-height:42px}
.job-detail-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:25px 0}
.job-detail-stats>.card{margin:0;padding:21px}
.job-detail-stats>.card>span:first-child{display:block;font-size:10px;color:var(--muted);margin-bottom:13px}
.job-detail-stats strong{display:block;font-weight:600;font-size:13px;line-height:1.7}
.job-detail-stats small{font-size:9px;margin-top:10px}
.job-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:24px}
.job-detail-grid>.card{margin:0}
.job-panel-heading{display:flex;align-items:center;gap:13px;margin-bottom:22px}
.job-panel-heading h2{font-size:17px;margin:0 0 3px}
.job-panel-heading p{font-size:10px;margin:0}
.job-schedule .library-help{font-size:10px;line-height:1.9;margin:8px 0 22px}
.job-timezone{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--line);padding:12px 15px;border-radius:8px}
.job-timezone>span{font-size:10px}
.job-timezone strong{display:block;color:var(--ink);font-size:11px;font-weight:600;margin-top:2px;overflow-wrap:anywhere}
.job-schedule .checkbox{margin:22px 0}
.job-about h2{font-size:21px;margin:12px 0}
.job-about p{line-height:1.9}
.job-about ul{padding-left:19px;line-height:1.9;font-size:11px;color:var(--muted);margin:23px 0}
.job-about li{margin-bottom:10px}
.job-about dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:13px;font-size:10px;padding-top:18px;border-top:1px solid var(--line)}
.job-about dt{color:var(--muted)}
.job-about dd{margin:0;overflow-wrap:anywhere}
.job-history{padding:0;overflow:hidden;scroll-margin-top:24px}
.job-history-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:24px}
.job-history-heading h2{font-size:17px;margin:0 0 5px}
.job-history-heading p{font-size:10px;margin:0}
.job-history-heading .button{font-size:10px}
.job-history-table{overflow:auto;max-width:100%}
.job-history table{margin:0;min-width:650px}
.job-history th,.job-history td{padding:16px 24px;vertical-align:top}
.job-history td{font-size:10px}
.job-history td small{font-size:9px;margin:5px 0 0}
.job-history .job-history-empty{padding:42px 24px;color:var(--muted);text-align:center;white-space:normal}
.job-result{width:34%;max-width:440px;white-space:normal}
.job-result details>summary{cursor:pointer;font-weight:600;color:var(--brand)}
.job-result pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);padding:13px;border:1px solid var(--line);border-radius:7px;font:10px/1.7 monospace;max-height:300px;overflow-y:auto}
.library-pagination{padding:19px 24px;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:14px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}
.library-pagination .button{font-size:10px}
.report-freshness>.favorite-control{margin-bottom:12px}
.report-freshness>.favorite-control button{margin-left:auto}
[data-theme="dark"] .library-star{background:var(--surface,#172638);color:var(--muted);border-color:var(--line)}
[data-theme="dark"] .library-star.is-favorite{background:#203e59;color:#99cdf3;border-color:#345979}
[data-theme="dark"] .job-overview .has-failures strong{color:#ffa99c}
@media(min-width:1500px){.job-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1150px){.job-heading{align-items:flex-start;flex-direction:column}.job-heading-actions{max-width:none;justify-content:flex-start}.job-detail-stats{gap:12px}.job-detail-stats>.card{padding:18px}.job-detail-grid{gap:16px}}
@media(max-width:800px){.job-detail-stats{grid-template-columns:1fr}.job-detail-grid{grid-template-columns:1fr}.library-filters{gap:12px;padding:16px}.library-filters label{flex:1 1 160px}.job-grid{gap:16px}.job-card{padding:20px}.job-overview>div{padding:17px}.job-overview span{font-size:9px}}
@media(max-width:520px){.job-grid{grid-template-columns:1fr}.job-overview>div{padding:15px 11px}.job-overview strong{font-size:23px}.job-overview span{font-size:8px}.job-overview small{font-size:11px}.library-filters .library-search{flex-basis:100%}.library-filters label{min-width:0;flex-basis:40%}.library-filters>button{flex:1 1 auto}.library-results{font-size:9px;align-items:flex-start}.library-results>span:last-child{text-align:right;max-width:45%}.job-heading h1{font-size:25px}.job-heading-actions{gap:8px}.job-heading-actions button{font-size:10px;padding:10px 12px}.job-heading-actions .ui-icon{width:15px}.job-about dl{grid-template-columns:72px minmax(0,1fr)}.job-history-heading{padding:18px}.job-history th,.job-history td{padding:14px 18px}.library-pagination{padding:16px;justify-content:center}.library-report .report-card-meta{font-size:9px}}
@media(max-width:520px){.library-filters label{flex-basis:100%}.library-filters .library-clear{padding-inline:10px}}
