:root{color-scheme:light;--ink:#182c3a;--muted:#637582;--line:#dce4e8;--accent:#176b70;--bg:#f2f5f6;--nav:#142c3a;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.5}a{color:var(--accent);text-underline-offset:3px}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,.button{display:inline-block;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:white;padding:.58rem 1rem;cursor:pointer;text-decoration:none;font-weight:600}button:hover,.button:hover{background:#10565b;color:white}button.secondary{background:transparent;border-color:#758995;color:white}.topbar{height:78px;background:var(--nav);color:#fff;position:fixed;inset:0 0 auto;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid #314957}.brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;font-weight:700;font-size:19px}.brand small{display:block;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#b1c3ce}.brand-icon{background:#2b7d80;border-radius:8px;padding:5px 13px;font-size:24px}.account{display:flex;gap:20px;align-items:center}.account a{color:#d4e9ec}.sidebar{position:fixed;top:78px;bottom:0;width:228px;background:var(--nav);color:white;padding:20px 14px;overflow:auto}.nav-group{margin-bottom:20px}.nav-group p{margin:0 12px 6px;color:#9eb6c5;font-size:11px;text-transform:uppercase;letter-spacing:.12em}.nav-group a{display:block;color:#dbe5eb;text-decoration:none;padding:8px 12px;border-radius:5px;margin:2px 0}.nav-group a:hover{background:#253f4e}.nav-group a[aria-current]{background:#236a70;color:#fff;font-weight:650}.sidebar-note{font-size:11px;color:#aac0cc;padding:12px;border-top:1px solid #314957}.with-sidebar{margin-left:228px}main{padding:104px 32px 32px;min-height:calc(100vh - 50px)}main.guest{max-width:820px;margin:auto}h1{font-size:28px;letter-spacing:-.03em;margin:4px 0 12px}h2{font-size:18px;margin:0 0 14px}.intro{color:var(--muted);margin-bottom:24px}.breadcrumb{color:var(--muted);font-size:12px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 2px 3px #142c3a04}.metric{display:flex;flex-direction:column;text-decoration:none;padding:22px;color:var(--ink);border-top:3px solid var(--accent)}.metric:hover{box-shadow:0 4px 15px #142c3a12;text-decoration:none}.metric span{font-size:13px;color:var(--muted)}.metric strong{font-size:38px;margin:8px 0}.metric small{color:var(--accent)}.panel{padding:24px;margin-top:24px;min-width:0}.narrow{max-width:540px}.narrow .form-grid{grid-template-columns:1fr}.table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:8px;background:#fff}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);max-width:480px;overflow-wrap:anywhere}th{background:#eaf0f2;font-weight:650;white-space:nowrap}tbody tr:hover{background:#f6f9fa}tbody tr:last-child td{border-bottom:0}.empty{padding:30px;text-align:center;color:var(--muted)}.actions{min-width:160px}.actions form{margin-top:8px}.actions button{font-size:12px;padding:5px 9px}.badge{display:inline-block;padding:2px 8px;border-radius:20px;background:#edf0f2;color:#5c6b74;font-size:11px;white-space:nowrap}.badge.good{background:#e1f1e9;color:#236844}.notice{padding:15px 18px;background:#fff5da;border:1px solid #e4cc8b;border-radius:7px;margin:18px 0}.error{background:#fff0ed;border-color:#dfb0a8;color:#913b30}.success{background:#eaf5ed;border-color:#a8d0b5;color:#286240}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:550;min-width:0}input,textarea,select{width:100%;min-width:0;border:1px solid #bccbd2;background:#fff;color:var(--ink);padding:9px 11px;border-radius:5px}textarea{resize:vertical}.form-grid .check{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:400}.check input{width:auto}.form-actions{grid-column:1/-1}fieldset{border:1px solid var(--line);border-radius:6px;min-width:0;padding:16px}fieldset label{margin:8px 0}legend{font-weight:650;padding:0 6px}.muted{color:var(--muted);font-size:12px}.search{display:flex;gap:10px;max-width:620px;margin:20px 0}.pagination{display:flex;gap:18px;flex-wrap:wrap;padding:16px 0;font-size:13px;color:var(--muted)}details summary{cursor:pointer;color:var(--accent)}details p{max-width:500px}.danger-zone{border-top:1px solid #e7c5be;margin-top:24px;padding-top:20px}.danger-zone button{background:#9c4033;border-color:#9c4033}footer{padding:12px 32px;color:var(--muted);font-size:11px;border-top:1px solid var(--line)}:focus-visible{outline:3px solid #d89132;outline-offset:3px}.skip{position:fixed;top:-100px;left:15px;z-index:30;background:#fff;padding:10px}.skip:focus{top:10px}@media(min-width:1600px){.cards{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:1000px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.account{gap:10px;font-size:12px}main{padding-left:22px;padding-right:22px}}@media(max-width:700px){.topbar{position:static;height:auto;min-height:78px;gap:12px;flex-wrap:wrap;padding:15px}.account{flex-wrap:wrap}.sidebar{position:static;width:auto;padding:12px}.sidebar nav{display:flex;gap:16px;overflow:auto}.nav-group{min-width:150px;margin:0}.sidebar-note{display:none}.with-sidebar{margin-left:0}main{padding:24px 16px}.cards{gap:10px}.metric{padding:15px}.metric strong{font-size:30px}.form-grid{grid-template-columns:1fr}.panel{padding:16px}h1{font-size:24px}.nav-group a{padding:6px 10px}}
.mobile-navigation{display:none}@media(max-width:700px){.desktop-navigation{display:none}.mobile-navigation{display:block}.mobile-navigation>summary{color:#fff;font-weight:600;padding:8px 10px;cursor:pointer}.sidebar .mobile-navigation nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:16px 0 6px;overflow:visible}.mobile-navigation .nav-group{min-width:0}.mobile-navigation .nav-group a{white-space:normal}}
.rename-field{display:none;margin-top:12px}.rename-toggle:has(input:checked)+.rename-field{display:block}.rename-toggle input[role=switch]{appearance:none;flex:0 0 38px;width:38px;height:22px;border-radius:20px;padding:2px;background:#bccbd2;cursor:pointer}.rename-toggle input[role=switch]::before{content:"";display:block;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}.rename-toggle input[role=switch]:checked{background:var(--accent);border-color:var(--accent)}.rename-toggle input[role=switch]:checked::before{transform:translateX(15px)}
.notifications{position:relative}.notifications>summary{color:#fff;cursor:pointer;white-space:nowrap;padding:6px 10px;border:1px solid #758995;border-radius:6px;list-style:none}.notification-panel{position:absolute;right:0;top:100%;width:min(420px,calc(100vw - 32px));max-height:70vh;display:flex;flex-direction:column;overflow:hidden;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:0;box-shadow:0 8px 28px #142c3a30}.notification-header{flex:none;padding:20px 20px 12px;border-bottom:1px solid var(--line)}.notification-header p{margin:0}.notification-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 20px 20px}.account .notification-panel a{color:var(--accent)}.notification-panel ul{padding-left:20px}.notification-panel li{margin:12px 0;overflow-wrap:anywhere}.notification-panel time{display:block;color:var(--muted);font-size:12px}@media(max-width:700px){.notifications{position:static}.notification-panel{top:auto;left:16px;right:16px;width:auto}}
.cron-warning{color:#913b30;font-weight:600}
.notification-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:6px;margin-top:8px}.notification-panel .notification-actions form{margin:0}.notification-panel button,.notification-panel .button{font-size:12px;padding:4px 8px}.account .notification-panel .button{color:#fff}
.badge.level-info{background:#e7f0f7;color:#245675}.badge.level-warning{background:#fff1d5;color:#7a520b}.badge.level-error{background:#fbe8e5;color:#913b30}.notification-panel li{padding-left:10px;border-left:3px solid #4c87ab}.notification-panel li[data-level=Warning]{border-color:#c18a28}.notification-panel li[data-level=Error]{border-color:#ba5042}

.nav-group>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none;margin:0 0 6px;padding:8px 12px;color:#9eb6c5;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;border-radius:5px}.nav-group>summary::-webkit-details-marker{display:none}.nav-group>summary::after{content:'›';font-size:18px;line-height:1;transform:rotate(0deg)}.nav-group[open]>summary::after{transform:rotate(90deg)}.nav-group>summary:hover{background:#253f4e;color:#fff}@media(max-width:700px){.sidebar .mobile-navigation nav{display:block}.mobile-navigation .nav-group{margin-bottom:8px}}

.log-overdue{color:#b42318}

.history-filter{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:20px 0}.history-filter label{display:flex;flex-direction:column;gap:5px}.resource-chart svg{display:block;width:100%;max-height:300px}.chart-axis{stroke:#637582;fill:none}.chart-line{stroke:#176b70;stroke-width:2;fill:none}.chart-point{fill:#176b70}.resource-chart text{fill:#637582;font-size:12px}pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:900px;font-size:12px}

.user-dialog{width:min(760px,calc(100% - 32px));max-height:90vh;padding:0;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff;box-shadow:0 20px 70px #0005}.user-dialog::backdrop{background:#0b1d2bb3}.user-dialog>.panel{position:relative;margin:0;border:0;box-shadow:none}.user-dialog h2{padding-right:42px}.dialog-close{position:absolute;right:14px;top:10px;background:transparent;border:0;color:var(--ink);font-size:26px;padding:0 10px}.dialog-close:hover{background:#eaf0f2;color:var(--ink)}.dialog-cancel{background:#fff;color:var(--accent)}

.cron-log-dialog{width:min(1100px,calc(100% - 32px))}.cron-log-dialog pre{max-height:60vh;overflow:auto;white-space:pre}
.user-dialog[open]{display:flex;flex-direction:column;overflow:hidden}.user-dialog>.panel{min-height:0;overflow:auto;padding-top:0}.dialog-header{position:relative;flex-shrink:0;z-index:3;display:flex;align-items:center;min-height:68px;margin:0 0 18px;padding:18px 24px;background:#fff;border-bottom:1px solid var(--line)}.dialog-header h2{margin:0;padding-right:42px}.dialog-header .dialog-close{top:12px}.license-customer-first{grid-column:1/-1}@media(max-width:700px){.dialog-header{padding-left:16px;padding-right:16px}}

.system-update-plan{max-height:45vh;overflow:auto;padding:16px;background:#f3f6f7;border:1px solid #dce4e8;border-radius:8px}

main>h2,.table-wrap+h2{margin-top:28px}
.nav-subgroup{margin:0 0 8px 12px;border-left:1px solid #314957;padding-left:6px}.nav-subgroup>summary{text-transform:none;letter-spacing:normal;font-size:12px}

.license-tabs,.license-families{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.license-tabs{border-bottom:1px solid #bccbd4;padding-bottom:10px}.license-tabs a,.license-families a{padding:8px 14px;border-radius:5px;text-decoration:none}.license-tabs a[aria-current=page],.license-families a[aria-current=page]{background:#176b73;color:#fff}.license-tree{background:#fff;border:1px solid #d8e1e7;border-radius:7px;margin:0 0 12px}.license-tree>summary{display:flex;align-items:center;gap:20px;padding:16px;cursor:pointer;list-style:none}.license-tree>summary::-webkit-details-marker{display:none}.license-tree>summary>span:not(.license-toggle){flex:1;min-width:0;overflow-wrap:anywhere}.license-toggle{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #176b73;border-radius:4px;color:#176b73;font-size:20px;flex-shrink:0}.license-toggle:before{content:'+'}.license-tree[open]>summary>.license-toggle:before{content:'−'}.license-children{padding:8px 20px 20px 45px;border-top:1px solid #d8e1e7}.license-children h2{font-size:16px}.license-tree>summary:focus-visible{outline:3px solid #176b73;outline-offset:2px}@media(max-width:700px){.license-tree>summary{flex-wrap:wrap;gap:10px}.license-tree>summary>span:not(.license-toggle){flex-basis:40%}.license-children{padding:12px}}
.license-children table{min-width:1200px;table-layout:auto}.license-children td:first-child,.license-children th:first-child{min-width:235px;white-space:nowrap}.license-tree>summary>.actions{display:flex;gap:12px;flex-wrap:wrap}
.denied-unread{background:#fff0ed;color:#913b30}.denied-unread:hover{background:#fce3dd}

.inline-filter{display:inline-block;margin:0}.text-button{background:none;border:0;color:inherit;padding:0;text-decoration:underline;font:inherit;cursor:pointer}.text-button:hover{background:none;color:#176c75}th .inline-filter{display:block}th .text-button{text-decoration:none;font-weight:700}

.package-actions{display:flex;justify-content:flex-end;gap:8px}.actions .package-actions form{margin:0}.package-actions .package-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:7px}.package-icon svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.package-icon .icon-fill{fill:currentColor;stroke:none}.package-icon:disabled{cursor:default;background:#eaf0f2;border-color:#bccbd2;color:#536b78}
[data-update-control]:disabled{cursor:default;background:#eaf0f2;border-color:#bccbd2;color:#536b78}
.system-job-actions{display:flex;justify-content:flex-end;gap:8px}.actions .system-job-actions form{margin:0}.system-job-actions .system-job-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:7px}.system-job-icon svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.system-job-cancel{background:#b42318;border-color:#b42318}.system-job-cancel:hover{background:#8f1c13;border-color:#8f1c13}

button[data-update-control]:disabled,button[data-update-control]:disabled:hover{background:#eaf0f2;border-color:#bac8cf;color:#536772;cursor:wait}
