/* Shared visual refresh. All colours follow the existing light/dark tokens. */
:root{--canvas:#f4f6fa;--surface:#fff;--raised:#f0f3f8;--line:#e0e6ef;--input-line:#b9c6d8;--shadow:0 4px 22px #122c4c06;--radius:14px}
:root[data-color-scheme=dark]{--canvas:#0b1320;--surface:#142135;--raised:#1b2b43;--line:#2d405b;--input-line:#506684;--shadow:0 4px 22px #00000014}
body{font-size:14px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1{font-size:34px;letter-spacing:0;font-weight:600;line-height:1.2}
h2,h3{font-family:'Open Sans',Arial,sans-serif;font-weight:650;letter-spacing:-.015em;line-height:1.4}
h2{font-size:18px;margin-bottom:18px}h3{font-size:15px}
.topbar{min-height:82px;padding:14px max(24px,calc((100vw - 1480px)/2));background:linear-gradient(115deg,#041326,#092954 75%,#003f99);gap:20px}
.brand{gap:18px}.brand img{width:126px;height:52px}.brand-copy{padding-left:18px;max-width:300px}.brand-copy strong{font-size:22px;letter-spacing:.04em}.brand-copy small{font-size:11px}
.user-area{gap:14px;font-size:12px}.logout-button,.theme-control select{border-radius:8px}.theme-control select{border-color:#ffffff45;background:transparent;color:#e3ebf7;color-scheme:dark;padding:6px 9px}.theme-control select option{background:#0b2445;color:#e3ebf7}
.theme-control .logout-button{border-color:#ffffff35;min-height:34px}.theme-control{gap:6px}
.sidebar{padding:8px max(24px,calc((100vw - 1480px)/2));background:#071a33;border-bottom:1px solid #ffffff12}
.sidebar nav{gap:5px;align-items:center}.sidebar a{display:flex;align-items:center;gap:8px;padding:10px 13px;border:0;border-radius:8px;text-transform:none;letter-spacing:0;font-size:12px;font-weight:600;color:#b9cce7;white-space:nowrap}
.sidebar a:hover{background:#ffffff09;color:#fff;border:0}.sidebar a[aria-current=page]{background:#ffffff14;color:#fff;box-shadow:inset 0 -2px 0 var(--brand-gold);border:0}
.nav-icon{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.app-layout{min-height:calc(100vh - 82px)}.content{padding:32px 28px 48px}.page-heading{background:none;color:var(--ink);border:0;border-radius:0;padding:0;gap:18px;margin-bottom:26px;box-shadow:none}
.page-heading h1{margin-bottom:5px}.page-heading p{color:var(--muted);font-size:13px;max-width:760px}.page-heading .button{background:var(--brand-blue);border-color:var(--brand-blue);color:#fff}.page-heading .button-secondary{background:var(--surface);border-color:var(--input-line);color:var(--link)}
.card,.login-card{border-radius:var(--radius);border-color:var(--line);box-shadow:var(--shadow)}.card{padding:24px;margin-bottom:22px}.card>:last-child{margin-bottom:0}.card-link:hover{border-color:var(--input-line);box-shadow:var(--shadow);color:inherit}
.dashboard-grid,.admin-grid{gap:18px}.stat-card{min-height:134px}.stat-title{font-size:11px;font-weight:650;letter-spacing:.07em}.stat-number{font-family:'Open Sans',Arial,sans-serif;font-size:38px;font-weight:600;letter-spacing:-.045em;color:var(--link);margin-top:10px;line-height:1.25}
.button{border-radius:8px;padding:9px 16px;font-size:12px;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}
.button-secondary{background:var(--surface);color:var(--link);border-color:var(--input-line)}.button-danger{background:#a32929;border-color:#a32929;color:white}
/* Keep button hover styling stable as requested. Keyboard focus remains explicit. */
.button:hover{filter:none;box-shadow:none;transform:none}.page-actions,.form-actions{gap:9px;align-items:center}
.form-group{margin-bottom:20px}.form-group label{font-size:12px;font-weight:650;margin-bottom:7px;display:block;color:var(--ink)}
.form-group :is(input,textarea,select),.data-table th :is(input,select){border-radius:8px;min-height:42px;padding:10px 12px;border:1px solid var(--input-line);background:var(--input);color:var(--ink);font:inherit}
.form-group textarea{line-height:1.6;resize:vertical}.form-group :is(input,textarea,select):focus{border-color:var(--link);outline:2px solid color-mix(in srgb,var(--link) 22%,transparent);outline-offset:1px}
.form-group input[type=checkbox]{accent-color:var(--brand-blue);padding:0}.field-help{font-size:11px;line-height:1.65;margin-top:6px}.has-errors :is(input,textarea,select){border-color:var(--error-ink)}.field-error{font-size:12px;margin-top:6px;font-weight:600}
.form-grid{gap:0 24px}.form-actions{padding-top:10px}.filters{gap:16px;padding:18px 22px;align-items:end}.filters .form-group{margin-bottom:0}
.table-wrapper{overflow:auto}.data-table{border-collapse:separate;border-spacing:0;width:100%}.data-table th{background:var(--raised);font-size:10px;letter-spacing:.07em;font-weight:700;border-bottom:1px solid var(--line);padding:12px 14px;white-space:nowrap}
.data-table td{padding:13px 14px;vertical-align:middle;border-bottom:1px solid var(--line);font-size:13px}.data-table tbody tr:last-child td{border-bottom:0}.data-table th:first-child{border-top-left-radius:8px}.data-table th:last-child{border-top-right-radius:8px}.data-table td a{font-weight:600;text-decoration:none}.data-table td a:hover{text-decoration:underline}
.badge,.status-badge,.priority-badge,.ipam-status{display:inline-flex;align-items:center;gap:6px;border-radius:7px;padding:4px 9px;font-size:11px;font-weight:600;line-height:1.5;white-space:nowrap;background:var(--badge-bg);color:var(--badge-ink)}
.status-badge:before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}.status-closed,.status-cancelled{background:var(--raised);color:var(--muted)}.status-resolved,.status-approved,.status-implemented{background:var(--success-bg);color:var(--success-ink)}.status-waiting_user,.status-waiting_third_party,.status-pending{background:var(--warn-bg);color:var(--warn-ink)}
.messages,.alert,.sync-notice{border-radius:10px;padding:16px 18px;margin-bottom:20px;font-size:13px;border:1px solid transparent;border-left-width:3px}
.messages{border-left-color:var(--success-ink)}.message-error,.alert{background:var(--error-bg);color:var(--error-ink);border-left-color:var(--error-ink)}.message-warning{background:var(--warn-bg);color:var(--warn-ink);border-left-color:var(--warn-ink)}.message-info{background:var(--badge-bg);color:var(--badge-ink);border-left-color:var(--badge-ink)}
.detail-list dt{font-size:11px;color:var(--muted);font-weight:650;text-transform:uppercase;letter-spacing:.04em}.detail-list dd{font-size:13px;margin:4px 0 18px}.comment{padding:18px 0}.internal{border-radius:10px;padding:18px;margin-bottom:14px}
.disclosure>summary h2,.disclosure>summary h3{font-size:17px}.disclosure>summary::before{font-size:23px;color:var(--muted)}.disclosure[open]>summary{margin-bottom:16px}.admin-link{padding:16px 4px;gap:4px}.admin-link strong{font-size:13px}.admin-link .muted{font-size:12px}.integration-section.disclosure{padding:22px 0}
.refresh-controls{justify-content:flex-end;font-size:11px;margin-bottom:18px;gap:10px}.refresh-controls .button{min-height:30px;padding:5px 10px;font-size:11px}.refresh-controls [role=status]:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted);margin-right:7px}
.site-footer{text-transform:none;letter-spacing:0;font-size:11px;padding-top:20px}.login-shell{border-radius:18px;overflow:hidden;box-shadow:0 24px 70px #0003}.login-card{border-radius:0;box-shadow:none}.login-intro{border-top:0}.login-card{border-top:0}.login-card h1{font-size:34px}
.ipam-summary .card{border-radius:var(--radius)}.ipam-summary strong{font-family:'Open Sans',Arial,sans-serif;font-weight:600;font-size:32px;letter-spacing:-.035em}.ipam-meter{border-radius:9px}.ipam-cell{border-radius:5px}.sync-counts>div{border-radius:10px;border:0}.sync-counts dd{font-family:'Open Sans',Arial,sans-serif;font-weight:600}.ipam-facts{gap:18px}
@media(max-width:1100px){.topbar{flex-wrap:wrap}.user-area{gap:10px}.sidebar{padding:8px 18px}.sidebar a{padding:9px 11px}.content{padding:28px 22px}.brand-copy{max-width:none}}
@media(max-width:700px){.topbar{padding:14px 16px}.brand img{width:104px;height:44px}.brand-copy{padding-left:14px}.brand-copy strong{font-size:19px}.user-area{justify-content:flex-start;gap:12px}.theme-control{width:auto}.sidebar{padding:8px}.sidebar nav{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px}.sidebar a{font-size:11px;padding:9px 11px;flex:none}.nav-icon{width:15px;height:15px}.content{padding:22px 16px}.page-heading{padding:0;margin-bottom:20px}.page-heading h1{font-size:30px}.page-actions{width:100%}.card{padding:18px;border-radius:12px}.data-table td{padding:12px}.refresh-controls{justify-content:flex-start}.form-grid{grid-template-columns:1fr}.filters .form-group{flex:1 1 180px}.stat-number{font-size:34px}.admin-links{grid-template-columns:1fr}.site-footer{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition:none!important;scroll-behavior:auto!important}}
.microsoft-login{width:100%;gap:10px;margin:8px 0 4px;min-height:44px}.microsoft-login svg{flex:none}.local-login-options{border-top:1px solid var(--line);padding-top:20px;margin-top:26px}.local-login-options>summary{cursor:pointer;color:var(--link);font-size:12px;font-weight:600}.local-login-options>form{margin-top:18px}.local-login-options .login-note{margin-top:16px;margin-bottom:16px}.login-card>.login-note{margin-top:0;margin-bottom:14px}

.ticket-detail-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start}.ticket-detail-grid>.card{min-width:0}@media(max-width:900px){.ticket-detail-grid{grid-template-columns:minmax(0,1fr)}}

.table-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.table-actions .table-action-form{display:inline-flex;margin:0}.table-action{appearance:none;background:none;border:0;border-radius:0;padding:0;min-height:0;color:var(--link);font:inherit;font-weight:600;line-height:inherit;text-decoration:none;cursor:pointer}.table-action:hover{text-decoration:underline;color:var(--link)}
