/* A1 Compact bridge for the existing PHP/vanilla-JS dashboard.
   Color pairs follow JUSTIS a1-theme.css; component proportions follow Brand Kit.
   Scheme and density are independent: all schemes retain Compact controls. */
@font-face{font-family:'Allianz Neo';src:url('fonts/AllianzNeo-Regular.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:'Allianz Neo';src:url('fonts/AllianzNeo-Bold.woff') format('woff');font-weight:700;font-display:swap}
@font-face{font-family:'Allianz Icons';src:url('fonts/AllianzIcons.woff') format('woff');font-display:block}
:root,html[data-theme=light]{color-scheme:light;--a1-page:#fff;--a1-surface:#fff;--a1-subtle:#f5f5f7;--a1-raised:#f0f7fc;--a1-text:#003781;--a1-secondary:#3f72b1;--a1-border:#d2d5dc;--a1-control:#6590bd;--a1-action:#003781;--a1-action-hover:#00266d;--a1-on-action:#fff;--a1-focus:#0e98cc;--a1-aqua:#005e78;--a1-teal:#00635a;--a1-purple:#593080;--a1-overlay:rgba(9,18,35,.48);--a1-success-bg:#d9f2e2;--a1-success:#006028;--a1-warning-bg:#fbe6a7;--a1-warning:#6a4e00;--a1-danger-bg:#fae2e3;--a1-danger:#aa001b;--a1-info-bg:#dbeaf5;--a1-info:#003781;--a1-shadow:0 2px 8px rgba(18,43,84,.06);--a1-bar-text:#fff;--a1-chart:#057c85}
html[data-theme=dark]{color-scheme:dark;--a1-page:#091223;--a1-surface:#0c182e;--a1-subtle:#10223d;--a1-raised:#122b54;--a1-text:#dbeaf5;--a1-secondary:#8dafd1;--a1-border:#335389;--a1-control:#6590bd;--a1-action:#dbeaf5;--a1-action-hover:#a9cceb;--a1-on-action:#001955;--a1-focus:#71c2f3;--a1-aqua:#9cddf0;--a1-teal:#90ded4;--a1-purple:#d8bdff;--a1-overlay:rgba(0,9,25,.75);--a1-success-bg:#023409;--a1-success:#9ae5b4;--a1-warning-bg:#382a04;--a1-warning:#fad066;--a1-danger-bg:#5c0906;--a1-danger:#ff808a;--a1-info-bg:#102f58;--a1-info:#a9cceb;--a1-shadow:0 5px 24px rgba(0,9,25,.2);--a1-bar-text:#001955;--a1-chart:#46bab8}
html[data-theme]{--bg-primary:var(--a1-page);--bg-secondary:var(--a1-surface);--bg-card:var(--a1-surface);--bg-glass:var(--a1-subtle);--border-subtle:var(--a1-border);--border-glow:var(--a1-control);--text-primary:var(--a1-text);--text-secondary:var(--a1-secondary);--text-muted:var(--a1-secondary);--accent-blue:var(--a1-info);--accent-green:var(--a1-success);--accent-orange:var(--a1-warning);--accent-red:var(--a1-danger);--accent-purple:var(--a1-purple);--accent-cyan:var(--a1-aqua);--gradient-premium:var(--a1-action);--font-display:'Allianz Neo',Arial,sans-serif;--font-mono:'Allianz Neo',Arial,sans-serif}
body{font-family:var(--font-display);font-size:16px;line-height:1.5;background:var(--a1-page);color:var(--a1-text)}
button,input,select,textarea{font-family:var(--font-display)}
button,a,input,select,textarea,[tabindex]{-webkit-tap-highlight-color:transparent}
:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--a1-focus);outline-offset:3px}
[hidden]{display:none!important}
.bg-gradient,.noise-overlay{display:none}
.container{max-width:1600px;padding:24px 32px}
.header{align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--a1-border);animation:none}
.header-left{display:flex;align-items:center;gap:24px;min-width:0}
.a1-brand{width:112px;height:auto;flex:none}
.a1-brand-title{border-left:1px solid var(--a1-border);padding-left:24px}
.header-left h1,.header h1,.login-title{font-size:31px;line-height:36px;font-weight:700;letter-spacing:-.02em;background:none;-webkit-text-fill-color:currentColor;color:var(--a1-text);margin:0 0 4px}
.header-left .subtitle{font-size:16px;line-height:24px;letter-spacing:0;text-transform:none;color:var(--a1-secondary)}
.header-right,.header-actions{gap:12px;flex-wrap:wrap;align-items:center}
.user-info,.header-user{background:none;border:0;padding:0;gap:8px;font-size:14px;border-radius:0}
.user-avatar,#user-avatar{width:32px;height:32px;border:1px solid var(--a1-border)}
.user-name{font-size:14px}
.a1-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.a1-controls label{margin:0}
.a1-controls select{height:40px;border:1px solid var(--a1-control);border-radius:7px;background:var(--a1-surface);color:var(--a1-text);font-size:14px;padding:0 10px;max-width:130px}
.lang-toggle{border-color:var(--a1-control);border-radius:7px;background:var(--a1-surface)}
.lang-btn{min-height:38px;padding:0 12px;font:700 14px/16px var(--font-display);color:var(--a1-secondary)}
.lang-btn.active{background:var(--a1-action);color:var(--a1-on-action)}
.btn,.sync-btn,.export-btn,.github-btn,.login-prompt .github-btn,.logout-btn,.logout-link,.a1-link-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 19px;border:1px solid var(--a1-control);border-radius:7px;font:700 14px/16px var(--font-display);background:transparent;color:var(--a1-action);text-decoration:none;box-shadow:none;transition:background .15s,color .15s,border-color .15s;cursor:pointer}
.btn-primary,.sync-btn,.pdf-export-light,.github-btn,.login-prompt .github-btn{background:var(--a1-action);color:var(--a1-on-action);border-color:var(--a1-action)}
.btn:hover,.sync-btn:hover,.export-btn:hover,.github-btn:hover,.login-prompt .github-btn:hover,.logout-btn:hover,.logout-link:hover,.a1-link-button:hover{background:var(--a1-info-bg);color:var(--a1-text);border-color:var(--a1-action);transform:none;box-shadow:none}
.btn-primary:hover,.sync-btn:hover,.pdf-export-light:hover,.github-btn:hover,.login-prompt .github-btn:hover{background:var(--a1-action-hover);color:var(--a1-on-action)}
.btn-danger{background:transparent;border-color:var(--a1-danger);color:var(--a1-danger)}
.btn-danger:hover{background:var(--a1-danger-bg);color:var(--a1-danger);border-color:var(--a1-danger)}
button:disabled{opacity:.65;cursor:not-allowed;transform:none}
.pdf-export-btn{--pdf-action:var(--a1-action);--pdf-on-action:var(--a1-on-action)}
.a1-warning-action{background:var(--a1-warning-bg)!important;color:var(--a1-warning)!important;border-color:var(--a1-warning)!important}
.a1-icon{font-family:'Allianz Icons'!important;font-weight:400!important;font-style:normal;font-size:20px;line-height:1;display:inline-block;speak:none}
.live-indicator{padding:0;border:0;background:none;font-size:12px;border-radius:0;color:var(--a1-secondary)}
.live-dot{background:var(--a1-success);animation:none}
.stats-grid{gap:16px;margin-bottom:16px}
.stat-card{padding:20px 24px;display:grid;grid-template-columns:40px 1fr;column-gap:16px;row-gap:4px;border-radius:10px;background:var(--a1-surface);box-shadow:var(--a1-shadow);animation:a1-reveal .45s ease both;backdrop-filter:none}
html[data-theme=dark] .stat-card{background:linear-gradient(135deg,var(--a1-raised),var(--a1-surface))}
.stat-card::before{display:none}
.stat-card .icon-wrapper{grid-row:1/4;width:40px;height:40px;border-radius:7px;border:1px solid var(--a1-border);background:var(--a1-subtle)!important;color:var(--a1-aqua);margin:0;font-size:24px}
.stat-card .label{margin:0;text-transform:none;letter-spacing:0;font-size:14px;color:var(--a1-text);line-height:20px}
.stat-card .value{grid-column:2;font-size:40px;line-height:44px;letter-spacing:-.025em;color:var(--a1-text)!important}
.stat-card .subtext{grid-column:2;margin:4px 0 0;font-size:12px;color:var(--a1-secondary);line-height:18px}
.stat-card .value::after{content:'';display:block;height:3px;width:40px;background:var(--a1-chart);border-radius:2px;margin-top:8px}
.phase-pipeline,.timeline-section,.card{background:var(--a1-surface);border:1px solid var(--a1-border);border-radius:10px;padding:20px 24px;backdrop-filter:none;box-shadow:var(--a1-shadow);animation:none}
.phase-pipeline{margin-bottom:16px}
.phase-pipeline h3{font-size:16px!important;color:var(--a1-text)!important;margin-bottom:12px!important;font-weight:700}
.pipeline-container{height:auto;min-height:40px;background:var(--a1-subtle);border-radius:4px;gap:2px;flex-wrap:wrap}
.pipeline-phase{flex-basis:72px!important;min-width:72px;min-height:40px;padding:4px 8px;background:var(--phase-bg)!important;color:var(--phase-text);cursor:default;transition:none}
.pipeline-phase:hover{transform:none;filter:none}
.pipeline-phase .count{font-size:16px;color:var(--phase-text);text-shadow:none}
.pipeline-phase .label{font-size:11px;letter-spacing:0;text-transform:none;color:var(--phase-text)}
h2,.timeline-header h2,.reporting-header h2{font-size:22px;line-height:28px;letter-spacing:-.01em;font-weight:700}
.timeline-header{margin-bottom:16px;gap:12px;flex-wrap:wrap}
.timeline-header h2::before{display:none}
.timeline-section{padding:20px 24px;overflow:hidden}
.quarters-header{grid-template-columns:360px 1fr;gap:16px;margin:0;padding:12px 0;background:var(--a1-subtle);border-bottom:1px solid var(--a1-border)}
.quarters-header>div:first-child{padding-left:12px;font-weight:700;font-size:14px}
.quarter-label{font-size:13px;color:var(--a1-secondary)}
.timeline-row{grid-template-columns:360px 1fr;gap:16px;padding:12px 0;margin:0;border-bottom:1px solid var(--a1-border);border-radius:0;animation:a1-reveal .35s ease both;min-height:68px}
.timeline-row:last-child{border-bottom:0}
.timeline-row:hover{background:var(--a1-subtle);transform:none}
.project-info{gap:12px;padding-left:12px;min-width:0}
.project-icon{width:32px;height:32px;border-radius:7px;font-size:18px;background:var(--a1-info-bg)!important;border-color:var(--a1-border)!important;color:var(--a1-info)}
.project-name{font-size:14px;line-height:20px;white-space:normal;overflow-wrap:anywhere;font-weight:700}
.project-meta{font-size:12px;gap:8px;flex-wrap:wrap;line-height:18px;margin-top:4px}
.progress-badge{background:var(--a1-subtle)!important;color:var(--a1-text)!important;border:1px solid var(--a1-border);border-radius:4px;font-size:12px;line-height:16px;padding:1px 5px}
.roadmap-status{font-size:11px;line-height:16px;border-radius:4px;padding:2px 6px;font-weight:700;background:var(--a1-info-bg);color:var(--a1-info)}
.roadmap-status.completed{background:var(--a1-success-bg);color:var(--a1-success)}
.roadmap-status.overdue{background:var(--a1-danger-bg);color:var(--a1-danger)}
.roadmap-status.upcoming{background:var(--a1-subtle);color:var(--a1-secondary);border:1px solid var(--a1-border)}
.gantt-container{height:40px;margin-right:12px;background:var(--a1-subtle);border-radius:4px}
.gantt-grid-line{border-left:1px solid var(--a1-border)}
.gantt-bar{height:24px;border-radius:4px;box-shadow:none;background:var(--roadmap-color)!important;color:var(--roadmap-on-color);padding:0 8px;justify-content:center;min-width:4px;font-size:11px;font-weight:700;transition:filter .15s}
.gantt-bar::before{display:none}
.gantt-bar:hover{transform:none;box-shadow:none;filter:brightness(1.06)}
.gantt-progress{border-radius:4px 0 0 4px;background:rgba(255,255,255,.22)}
.gantt-bar span{background:var(--a1-surface);color:var(--a1-text);padding:0 4px;border-radius:2px;line-height:16px;text-shadow:none}
.today-marker{background:var(--a1-danger);width:2px;box-shadow:none;z-index:2}
.today-marker::before{background:var(--a1-danger)}
.today-marker::after{display:none}
.reporting-section{margin-top:24px;animation:none}
.reporting-header{gap:16px;margin-bottom:16px}
.reporting-summary{gap:12px;margin-bottom:20px}
.summary-card{background:var(--a1-surface);border:1px solid var(--a1-border);border-radius:7px;padding:16px 20px}
.summary-label{color:var(--a1-secondary);text-transform:none;letter-spacing:0;font-size:13px}
.summary-value{color:var(--a1-text)!important;font-size:30px;line-height:36px}
.summary-detail{font-size:12px;color:var(--a1-secondary)}
.monthly-chart{background:var(--a1-surface);border:1px solid var(--a1-border);border-radius:7px;padding:24px 16px 36px;height:180px;gap:12px}
.chart-bar{background:var(--a1-chart);border-radius:3px 3px 0 0;box-shadow:none;min-width:12px;transition:filter .15s}
.chart-bar:hover{background:var(--a1-chart);filter:brightness(1.15);transform:none}
.month-label{color:var(--a1-secondary);font-size:12px}
.month-card{background:var(--a1-surface);border:1px solid var(--a1-border);border-radius:7px;padding:14px 16px}
.month-card:hover{background:var(--a1-subtle);transform:none}
.month-card-title{font-size:14px;font-weight:700}.month-card-stats{font-size:12px;color:var(--a1-secondary)}
.modal-overlay,.auth-overlay,.login-overlay{background:var(--a1-overlay);backdrop-filter:blur(4px)}
.modal{background:var(--a1-surface);color:var(--a1-text);border:1px solid var(--a1-border);border-radius:10px;max-height:90vh;overflow:auto;box-shadow:0 16px 56px rgba(0,9,25,.25);padding:24px;transform:none}
.modal-overlay.active .modal{transform:none}
.modal h3{font-size:22px;line-height:28px;font-weight:700;margin:0 0 20px}
.modal-header{padding:0 0 16px;margin-bottom:16px;gap:12px}
.modal-header h3{margin:0;font-size:22px;line-height:28px}
.modal-close{border-radius:7px;background:var(--a1-subtle);border-color:var(--a1-border);color:var(--a1-text);font-size:24px;flex:none}
.modal-body{padding:0;max-height:65vh}
.modal-stats{gap:12px;margin-bottom:16px}.modal-stat{border-radius:7px;padding:12px;background:var(--a1-subtle)}
.modal-stat .value{font-size:28px}.modal-stat .label{font-size:12px;color:var(--a1-secondary)}
.task-item{background:var(--a1-subtle);border-color:var(--a1-border);border-radius:7px;padding:12px 16px;transition:background .15s}
.task-item:hover{background:var(--a1-raised);transform:none}
.task-title{font-size:14px;line-height:20px}.task-details{font-size:12px;flex-wrap:wrap;color:var(--a1-secondary)}
.task-arrow{font-size:18px;color:var(--a1-secondary)}
.empty-state{padding:32px 16px;color:var(--a1-secondary)}
.back-link{font-size:14px;color:var(--a1-action);margin-bottom:16px}
.card{margin-bottom:20px}.card-header{gap:12px;flex-wrap:wrap;padding:0 0 16px;margin-bottom:0;border-bottom:1px solid var(--a1-border)}
.card-header h2{font-size:22px;line-height:28px}
.table-container{overflow-x:auto}
table{font-size:14px;border-collapse:collapse;width:100%}
th{font-size:12px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--a1-secondary);background:var(--a1-subtle);padding:12px}
td{padding:12px;border-bottom:1px solid var(--a1-border)}
tr:hover{background:var(--a1-subtle)}
.tag-badge{background:var(--a1-info-bg);color:var(--a1-info);font-size:12px;border-radius:4px;font-family:var(--font-display)}
.status-badge.active{background:var(--a1-success-bg);color:var(--a1-success)}
.status-badge.inactive{background:var(--a1-subtle);color:var(--a1-secondary)}
.actions .btn{padding:7px 11px;min-height:32px;white-space:nowrap}.actions{white-space:nowrap}
.form-group{margin-bottom:16px}
.form-group label{display:block;font-size:14px;font-weight:700;line-height:20px;color:var(--a1-text);margin-bottom:6px}
.form-group input,.form-group select,.form-group textarea{font-size:16px;line-height:24px;padding:7px 11px;min-height:40px;border:1px solid var(--a1-control);border-radius:7px;background:var(--a1-surface);color:var(--a1-text);width:100%;box-shadow:none}
.form-group textarea{min-height:76px}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--a1-secondary);opacity:1}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--a1-focus);box-shadow:none}
.form-group small{color:var(--a1-secondary)!important;font-size:12px!important;line-height:18px}
.form-actions{border-top:1px solid var(--a1-border);padding-top:16px;gap:12px}
[aria-invalid=true]{border-color:var(--a1-danger)!important}
.a1-field-error{font-size:12px;line-height:18px;color:var(--a1-danger);margin-top:6px}
.a1-notices{position:fixed;right:24px;bottom:24px;z-index:11000;display:grid;gap:8px;max-width:min(420px,calc(100vw - 32px))}
.a1-notice{background:var(--a1-info-bg);color:var(--a1-info);border:1px solid var(--a1-control);border-radius:7px;padding:12px 16px;box-shadow:var(--a1-shadow);font-size:14px;display:flex;gap:12px;align-items:start}
.a1-notice.error{background:var(--a1-danger-bg);color:var(--a1-danger);border-color:var(--a1-danger)}
.a1-notice.success{background:var(--a1-success-bg);color:var(--a1-success);border-color:var(--a1-success)}
.a1-notice button{background:none;border:0;color:inherit;font:700 18px var(--font-display);cursor:pointer;margin-left:auto}
.toggle-btn{border-radius:7px;background:var(--a1-subtle);color:var(--a1-secondary);border-color:var(--a1-border)}
.toggle-btn.active,.toggle-btn.admin.active{background:var(--a1-info-bg);color:var(--a1-info);border-color:var(--a1-control)}
.login-card,.auth-card{background:var(--a1-surface);border:1px solid var(--a1-border);border-radius:10px;box-shadow:var(--a1-shadow);padding:32px;animation:a1-reveal .4s ease both;backdrop-filter:none}
.login-card::before{display:none}.login-container{max-width:460px;padding:24px}
.login-title{font-size:28px;line-height:34px;margin-bottom:8px}
.login-subtitle{font-size:16px;line-height:24px;color:var(--a1-secondary);margin-bottom:24px}
.login-container .a1-controls{justify-content:center;margin-bottom:20px}
.login-footer,.login-container .footer,.login-container .info-text{font-size:12px;color:var(--a1-secondary)}
.error-message{background:var(--a1-danger-bg);color:var(--a1-danger);border-color:var(--a1-danger);border-radius:7px}
.success-message{background:var(--a1-success-bg);color:var(--a1-success);border-color:var(--a1-success);border-radius:7px}
.login-prompt{padding:24px}.login-prompt h2{font-size:28px}.login-prompt p{color:var(--a1-secondary)}
.a1-theme-select-label,.a1-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes a1-reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:1200px){.header-left h1{font-size:28px}.stats-grid{grid-template-columns:repeat(4,1fr)}.stat-card{padding:16px;column-gap:12px;grid-template-columns:32px 1fr}.stat-card .icon-wrapper{width:32px;height:32px}.stat-card .value{font-size:34px}.header-right{gap:8px}}
@media(max-width:900px){.container{padding:20px}.header-left h1{font-size:26px}.stats-grid{grid-template-columns:repeat(2,1fr)}.quarters-header,.timeline-row{grid-template-columns:280px 1fr}.user-name{display:none}.timeline-section{padding:16px}}
@media(max-width:600px){.container{padding:16px}.header{gap:16px}.header-left{gap:16px}.a1-brand{width:64px}.a1-brand-title{padding-left:16px}.header-left h1{font-size:24px;line-height:28px}.header-left .subtitle{font-size:14px}.header-right{width:100%;justify-content:space-between}.stat-card{padding:14px;grid-template-columns:1fr}.stat-card .icon-wrapper{display:none}.stat-card .value,.stat-card .subtext{grid-column:1}.stat-card .value{font-size:32px;line-height:36px}.stat-card .label{font-size:13px}.quarters-header{display:grid;grid-template-columns:1fr;gap:8px;padding:8px}.quarters-header>div:first-child{display:none}.timeline-row{grid-template-columns:1fr;gap:8px;padding:12px 0}.project-info{padding:0}.gantt-container{height:32px;margin:0}.gantt-bar{height:24px}.timeline-header .live-indicator{font-size:11px}.reporting-summary{grid-template-columns:repeat(2,1fr)}.reporting-actions{width:100%;gap:8px}.reporting-actions .export-btn{padding:11px 12px;font-size:12px}.summary-card{padding:12px}.summary-value{font-size:26px}.monthly-details{grid-template-columns:1fr}.modal{width:calc(100% - 24px);padding:20px}.modal-body{max-height:60vh}.form-row,.form-row-3{grid-template-columns:1fr}.card{padding:16px}.header-actions{width:100%}body[data-page=admin]{padding:0}.login-container{padding:16px}.login-card{padding:24px}.a1-notices{right:16px;bottom:16px}.monthly-chart{gap:6px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* A single legend explains the continuous today marker. */
.today-marker{top:-12px;bottom:-12px}.today-marker::before,.today-marker::after{display:none}
.timeline-legend{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.today-legend{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--a1-danger)}
.timeline-row{animation:none}.particles{display:none}
@media(max-width:600px){.timeline-legend{gap:12px}.today-marker{top:0;bottom:0}}

.modal-overlay{transition:opacity .15s ease}.modal-overlay.active{visibility:visible}

@media(prefers-reduced-motion:reduce){.modal-overlay{transition:none}}

.chart-heading{font-size:16px;line-height:24px;margin-bottom:12px}
.chart-count{position:absolute;top:-22px;left:0;width:100%;text-align:center;font-size:12px;font-weight:700;color:var(--a1-text)}
.roadmap-dates{display:none}
@media(max-width:600px){.roadmap-dates{display:block;width:100%;color:var(--a1-secondary)}.gantt-bar span{display:none}.monthly-chart{gap:4px;padding-left:12px;padding-right:12px}.month-label{font-size:10px}}
