:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;font-weight:400;color:#0b2239;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{min-height:100%}html,body{margin:0;min-width:320px;background:radial-gradient(circle at 12% 18%,rgba(173,216,255,.48),transparent 42%),radial-gradient(circle at 88% 10%,rgba(145,201,255,.38),transparent 38%),linear-gradient(180deg,#dfeaf6,#cfe3f7 42%,#c2daf1)}body.login-body{min-height:100vh;background:#d8e3ef}html.login-html,html.login-html body,html.login-html #root{background:#d8e3ef}.page{width:min(1200px,100%);margin:2rem auto;padding:1rem}.page.login-page{--login-scale: .8;position:relative;isolation:isolate;width:100%;min-height:100vh;margin:0;padding:1.5rem 1rem;display:grid;justify-items:center;align-content:center;gap:1rem;background:#d8e3ef}.page.login-page:before{content:"";position:fixed;inset:0;z-index:-1;background:#d8e3ef}.status-banner{margin-bottom:1rem;border-radius:14px;padding:.9rem 1rem;font-size:.92rem;font-weight:700}.status-banner-error{border:1px solid #f0c4c0;background:#fff3f1;color:#b42318}.status-banner-info{border:1px solid #cfe0f1;background:#f5faff;color:#1f3c59}.card{background:#fffffff0;border:1px solid #d9e0ea;border-radius:18px;box-shadow:0 18px 40px #14293d1f;padding:1.5rem}.login-card{max-width:540px;margin:0 auto}.login-shell{position:relative;width:min(calc(1040px * var(--login-scale)),100%);max-width:calc(1040px * var(--login-scale));margin-top:0;padding:0;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(calc(340px * var(--login-scale)),.9fr);overflow:hidden;isolation:isolate;border-radius:calc(28px * var(--login-scale));border:1px solid rgba(255,255,255,.42);background:linear-gradient(135deg,#ffffff42,#ffffff1a);box-shadow:0 24px 60px #2031442e,inset 0 1px #ffffff57;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);animation:loginCardIn .62s cubic-bezier(.22,1,.36,1)}.login-shell:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,#ffffff2e,#ffffff0f)}.login-hero{position:relative;z-index:1;padding:calc(1.65rem * var(--login-scale));min-height:calc(460px * var(--login-scale));display:flex;flex-direction:column;justify-content:space-between;background:#ffffff1f;color:#0f2437;border-right:1px solid rgba(255,255,255,.22);overflow:hidden}.login-hero-backdrop{position:absolute;inset:0;background:linear-gradient(180deg,#ffffff1f,#ffffff08);opacity:.9;animation:loginBackdropFloat 8s ease-in-out infinite}.login-brand-wrap{z-index:1;align-self:center;width:100%;max-width:none;display:flex;justify-content:center;margin-top:calc(.8rem * var(--login-scale));margin-bottom:calc(1.7rem * var(--login-scale));padding:0;border:0;background:transparent;box-shadow:none;overflow:visible}.login-brand-wrap:before{display:none}.login-brand-wrap:after{display:none}.login-brand-wrap .brand-logo{position:relative;z-index:1;width:min(100%,260px);margin:0 auto;filter:drop-shadow(0 10px 18px rgba(24,58,90,.14))}.login-hero-copy,.login-badge-row{position:relative;z-index:1}.login-hero-copy .eyebrow{color:#bc643d}.login-hero-copy h1{margin:.3rem 0 .45rem;color:#12263a;font-family:Segoe UI Variable Display,Trebuchet MS,Arial Narrow,sans-serif;font-size:clamp(2.1rem,3.2vw,3.2rem);line-height:.94;letter-spacing:-.05em}.login-subtitle{max-width:28rem;color:#617487;font-size:1rem;line-height:1.65}.login-badge-row{display:flex;flex-wrap:nowrap;gap:.5rem;align-items:stretch}.login-badge-row span{display:inline-flex;flex:1 1 0;align-items:center;justify-content:center;gap:.35rem;padding:.45rem .62rem;border-radius:999px;background:#fff9;border:1px solid rgba(219,210,198,.92);color:#35506a;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-align:center;white-space:nowrap}.login-form-panel{position:relative;z-index:1;padding:calc(1.65rem * var(--login-scale));display:flex;flex-direction:column;justify-content:center;background:#ffffff1f}.login-footer{width:min(calc(1040px * var(--login-scale)),100%);display:grid;justify-items:center;justify-content:center;gap:.18rem;padding:0 .4rem;color:#526882;font-size:.82rem;line-height:1.5;text-align:center}.login-footer a{color:#183a5a;font-weight:700;text-decoration:none}.login-footer a:hover,.login-footer a:focus-visible{text-decoration:underline;text-underline-offset:3px}.login-footer-copy{color:#687b90}.login-form-head{margin-bottom:calc(1.2rem * var(--login-scale))}.login-form-kicker{margin:0 0 .35rem;color:#bc643d;font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.login-form-head h2{margin:0;font-family:Segoe UI Variable Display,Trebuchet MS,Arial Narrow,sans-serif;font-size:1.55rem;line-height:1.05;letter-spacing:-.04em}.login-form{margin-top:0;gap:1rem}.login-field{display:grid;gap:.45rem}.login-form-panel input{border-radius:16px;border-color:#ddd5c9;background:#fffffffa;padding:.88rem .95rem;font-size:.98rem;box-shadow:none}.login-form-panel input:focus{border-color:#1e695e;box-shadow:0 0 0 3px #1e695e1f}.password-input-wrap{position:relative}.password-input-wrap input{padding-right:3rem}.password-toggle{position:absolute;top:50%;right:.72rem;transform:translateY(-50%);border:0;width:1.5rem;height:1.5rem;padding:0;background:transparent;color:#5a6c81;display:inline-flex;align-items:center;justify-content:center;box-shadow:none}.password-toggle:hover{background:transparent;color:#183a5a}.password-toggle:focus-visible{outline:none;color:#183a5a}.password-toggle svg{width:1.25rem;height:1.25rem}.login-submit-btn{margin-top:.15rem;min-height:52px;border-radius:16px;font-size:.96rem;letter-spacing:.02em;background:#183a5a;box-shadow:0 12px 24px #183a5a1f}.brand-wrap{position:relative;border-radius:14px;background:linear-gradient(145deg,#f5fbff,#edf6ff);border:1px solid #d9e7f5;padding:.6rem .8rem;margin-bottom:.9rem;overflow:hidden}.brand-wrap:after{content:"";position:absolute;top:0;left:-40%;width:35%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.8),transparent);animation:logoShine 3.5s ease-in-out infinite}.brand-logo{display:block;width:min(100%,360px);margin:0 auto;animation:logoIn .6s ease-out,logoFloat 4s ease-in-out .7s infinite;transform-origin:center}.eyebrow{margin:0;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:#0f5cab;font-weight:700}h1,h2,h3{margin:.35rem 0;color:#0b2239}.subtitle{margin:0;color:#47627d;font-size:.95rem}.form{display:grid;gap:.65rem;margin-top:1.2rem}label{font-size:.84rem;font-weight:600;color:#314d68}input,select{width:100%;box-sizing:border-box;border-radius:10px;border:1px solid #c7d3df;background:#fff;padding:.72rem .8rem;font-size:.95rem;color:#0b2239}input:focus,select:focus{border-color:#0f5cab;outline:none;box-shadow:0 0 0 3px #0f5cab29}button{border:0;border-radius:10px;padding:.72rem 1rem;font-weight:700;color:#fff;background:linear-gradient(110deg,#0d4f93,#1365bc);cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}.secondary{background:#f0f4f8;color:#1f3c59;border:1px solid #d1dce7;font-weight:600}.error{margin:.3rem 0;font-size:.88rem;color:#b42318;font-weight:600}.success{margin:.3rem 0;font-size:.86rem;color:#067647;font-weight:600}.account-help{margin-top:1.1rem;background:#f5f9ff;border:1px solid #d5e4f8;border-radius:12px;padding:.9rem;color:#1f3c59}.account-help p{margin:0 0 .45rem;font-weight:700}.account-help ul{margin:0;padding-left:1.1rem;font-size:.9rem}.dashboard-card{display:grid;gap:1rem}.reveal-item,.csv-chart-item{opacity:0;transform:translateY(22px) scale(.985);filter:blur(2px);transition-property:opacity,transform,filter;transition-duration:.62s;transition-timing-function:cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay, 0ms)}.reveal-item.is-visible,.csv-chart-item.is-visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.last-update-float{position:fixed;top:14px;right:16px;z-index:1200;border:1px solid #cfe0f1;background:#fffffff5;color:#1f3c59;border-radius:999px;padding:.45rem .75rem;font-size:.8rem;font-weight:700;box-shadow:0 8px 20px #14293d1f}.admin-layout{display:grid;grid-template-columns:230px 1fr;gap:1rem}.admin-layout-read-only{grid-template-columns:1fr}.admin-sidebar{border:1px solid #d9e0ea;background:#f8fbff;border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.75rem;height:fit-content}.admin-update-form{border-top:1px solid #dfe8f2;padding-top:.75rem;margin-top:.35rem}.file-input-hidden{display:none}.file-input-name{margin:-.15rem 0 .15rem;font-size:.84rem;color:#6b7f93;text-align:center}.last-update-input-grid{display:grid;grid-template-columns:1fr;gap:.5rem}.last-update-input-grid input{width:100%;max-width:100%}.time-select-row{display:flex;align-items:center;gap:.6rem;width:100%;min-width:0}.time-select{flex:1 1 0;width:auto;min-width:0;text-align:center;font-variant-numeric:tabular-nums;font-weight:700}.time-select-separator{color:#5a6f84;font-size:1.25rem;font-weight:700}.menu-list{display:grid;gap:.5rem;margin-top:.3rem}.menu-btn{background:#edf3fb;color:#1d3e5f;border:1px solid #d5e1ee;text-align:left;padding:.65rem .75rem}.menu-btn.active{background:linear-gradient(110deg,#0d4f93,#1365bc);color:#fff;border-color:transparent}.logout-btn{margin-top:.45rem}.admin-content{border:1px solid #d9e0ea;border-radius:14px;padding:1rem;background:#fff;display:grid;gap:1rem}.viewer-detail-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.viewer-detail-toolbar-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.settings-form{max-width:520px}.project-form{border:1px solid #d9e0ea;border-radius:12px;padding:.9rem;background:#f8fbff;margin-top:0}.project-form h3{margin-top:0}.project-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem}.methodology-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;grid-column:1 / -1}.fw-row{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.project-form-actions{display:flex;gap:.5rem;justify-content:flex-start}.project-detail-view{display:grid;gap:.6rem;align-content:start}.project-hero{text-align:center;margin-bottom:.2rem}.project-hero h1{font-size:clamp(2rem,4vw,3.2rem);margin:0;font-weight:800;letter-spacing:-.02em}.project-hero p{margin:.4rem 0 0;color:#5a728a;font-weight:500}.project-actions-top{display:flex;flex-wrap:nowrap;gap:.75rem;justify-content:center;align-items:center;margin:0}.project-actions-top .secondary,.project-actions-top .mode-switch-btn{flex:0 1 auto;min-width:150px;height:56px;display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;transition:transform .14s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease}.project-actions-top .secondary:hover{background:#e7f2ff;border-color:#9fc2ea;box-shadow:0 0 0 3px #438ad62e,0 8px 16px #194c8224;transform:translateY(-1px)}.project-actions-top .secondary:active,.project-actions-top .secondary:focus-visible{background:#e3f0ff;border-color:#8ab7e6;box-shadow:0 0 0 4px #438ad638,0 6px 14px #194c8226;transform:translateY(-1px) scale(1.01)}.project-actions-top .action-tab-btn.active{background:linear-gradient(110deg,#0d4f93,#1365bc);color:#fff;border-color:transparent}.mode-switch-btn{border:1px solid #d6e1ec;background:#eef4fb;color:#294868}.mode-switch-btn.active{background:linear-gradient(110deg,#0d4f93,#1365bc);color:#fff;border-color:transparent}.project-summary-panel.is-hidden{display:none}.fgd-summary-section{display:grid;gap:.85rem}.fgd-profile-chart-grid{align-items:stretch}.fgd-profile-head{justify-content:center;text-align:center}.fgd-profile-chart-card{border:1px solid #dbe5ef;border-radius:14px;background:linear-gradient(180deg,#fafdff,#f4f8fd);padding:.9rem}.fgd-profile-chart-card h4{margin:0 0 .75rem;color:#183a5c;font-size:.92rem}.fgd-card-head h3{margin:0}.fgd-group-tabs{--fgd-tab-gap: .5rem;--fgd-tab-width: calc((100% - 2.5rem) / 6);display:flex;flex-wrap:wrap;justify-content:center;gap:var(--fgd-tab-gap);margin-top:.9rem}.fgd-group-tab{display:grid;gap:.15rem;flex:0 1 var(--fgd-tab-width);max-width:var(--fgd-tab-width);min-width:0;justify-items:center;text-align:center;border:1px solid #d6e1ec;background:#f5f9ff;color:#22415f;padding:.6rem .45rem;box-shadow:inset 0 1px #ffffffb3}.fgd-group-tab span{font-size:.82rem;font-weight:800;line-height:1.2}.fgd-group-tab strong{font-size:.66rem;color:#688199;text-transform:uppercase;letter-spacing:.05em;line-height:1.15}.fgd-group-tab.active{background:linear-gradient(110deg,#0d4f93,#1365bc);color:#fff;border-color:transparent;box-shadow:0 14px 28px #1365bc38}.fgd-group-tab.active strong{color:#ffffffd6}.fgd-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.fgd-card-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.fgd-display-grid,.fgd-session-info-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.fgd-session-info-list{margin-top:1rem}.fgd-session-info-item{display:grid;gap:.25rem;padding:.85rem .9rem;border:1px solid #dbe5ef;border-radius:12px;background:#f8fbff}.fgd-session-info-item span{font-size:.72rem;font-weight:800;color:#6a829a;letter-spacing:.06em;text-transform:uppercase}.fgd-session-info-item strong{color:#173553;line-height:1.45;word-break:break-word}.fgd-link-inline{display:grid;gap:.28rem}.fgd-link-text{color:#0d4f93;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;word-break:break-all}.fgd-link-actions{display:none;align-items:center;gap:.75rem;flex-wrap:wrap}.fgd-link-inline:hover .fgd-link-actions,.fgd-link-inline:focus-within .fgd-link-actions{display:flex}.fgd-link-action{padding:0;border:0;background:transparent;color:#0d4f93;font-size:.74rem;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.idi-link-inline{font-size:.83rem;line-height:1.4}.fgd-session-info-item-compact{align-content:center;justify-items:flex-start}.fgd-status-badge{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .8rem;border-radius:999px;border:1px solid #d6e2ed;background:#eef5fb;color:#234564;font-size:.78rem;font-weight:800}.fgd-status-badge.scheduled{background:#eef5ff;color:#0d4f93}.fgd-status-badge.rescheduled{background:#fff6e8;color:#b54708}.fgd-status-badge.cancel{background:#fff1f3;color:#c01048}.fgd-status-badge.done{background:#ecfdf3;color:#067647}.fgd-count-badge{display:inline-flex;align-items:center;justify-content:center;padding:.72rem 1.1rem;border-radius:999px;background:#eef5ff;border:1px solid #c9dbef;color:#0d4f93;font-size:1rem;font-weight:800;line-height:1.1;white-space:nowrap}.fgd-count-badge.pending{background:#fff1e8;border-color:#f7b27a;color:#b54708;animation:fgdQuotaPulse 1s ease-in-out infinite}.fgd-count-badge.ready{background:#ecfdf3;border-color:#9fddbc;color:#067647}@keyframes fgdQuotaPulse{0%,to{background:#fff1e8;border-color:#f7b27a;box-shadow:0 0 #f57c0014}50%{background:#ffd8b5;border-color:#f08a24;box-shadow:0 0 0 5px #f57c002e}}.fgd-inline-status{margin:.45rem 0 0;font-size:.88rem;font-weight:700}.fgd-inline-status.warning{color:#b54708}.fgd-inline-status.complete{color:#067647}.fgd-inline-status.cancelled{color:#c01048}.fgd-respondent-table-wrap{border:1px solid #d9e0ea;border-radius:12px;overflow:auto;background:#fff}.fgd-respondent-table{width:100%;min-width:560px;border-collapse:collapse}.fgd-respondent-table th,.fgd-respondent-table td{padding:.7rem .8rem;border-bottom:1px solid #e4ebf3;border-right:1px solid #edf2f8;color:#173553;font-size:.83rem;text-align:left;vertical-align:top;white-space:nowrap}.fgd-respondent-table th:last-child,.fgd-respondent-table td:last-child{border-right:0}.fgd-respondent-table thead th{position:sticky;top:0;z-index:1;background:#f5f9ff;color:#274768;font-weight:800}.fgd-respondent-table tbody tr:nth-child(2n) td{background:#fbfdff}.fgd-respondent-table tbody tr.fgd-respondent-empty-row td{background:#fbfcfe;color:#7a8ea3}.fgd-respondent-table tbody tr.fgd-respondent-empty-row td:first-child{font-style:italic}.fgd-respondent-table td.idi-row-number{width:68px;text-align:center;font-weight:700}.fgd-respondent-table tbody tr.idi-respondent-row td{padding-top:.48rem;padding-bottom:.48rem;vertical-align:middle}.fgd-respondent-table td.idi-status-cell{min-width:148px}.fgd-respondent-table td.idi-status-cell .fgd-status-badge{padding:.3rem .62rem;font-size:.72rem}.fgd-respondent-table tbody tr.idi-respondent-row.scheduled td{background:#eef5ff}.fgd-respondent-table tbody tr.idi-respondent-row.rescheduled td{background:#fff6e8}.fgd-respondent-table tbody tr.idi-respondent-row.cancel td{background:#fff1f3}.fgd-respondent-table tbody tr.idi-respondent-row.done td{background:#ecfdf3}.idi-summary-section{display:grid;gap:.85rem}.idi-summary-cards{grid-template-columns:repeat(2,minmax(280px,360px));justify-content:center}.idi-summary-card{min-height:100%}.idi-planner-panel{background:radial-gradient(circle at top left,rgba(48,145,255,.12),transparent 34%),radial-gradient(circle at top right,rgba(16,185,129,.12),transparent 28%),linear-gradient(180deg,#fcfeff,#f5f9fe)}.idi-planner-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.idi-planner-header h3,.idi-upcoming-head h3{margin:0}.idi-overview-chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem}.idi-overview-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .8rem;border-radius:999px;background:#fffc;border:1px solid #d9e4ef;color:#365572;font-size:.8rem;font-weight:700}.idi-overview-chip strong{color:#0d4f93;font-size:.92rem}.idi-planner-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.9fr);gap:1rem;align-items:start}.idi-calendar-card,.idi-upcoming-card{border:1px solid #d8e2ee;border-radius:18px;background:#ffffffd1;box-shadow:inset 0 1px #ffffffb8}.idi-calendar-card{padding:1rem}.idi-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.9rem}.idi-calendar-head strong{color:#183a5c;font-size:1rem}.idi-calendar-nav{min-width:86px}.idi-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem;margin-bottom:.45rem}.idi-calendar-weekdays span{text-align:center;color:#688199;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.idi-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}.idi-calendar-day{min-height:92px;padding:.55rem;border-radius:14px;border:1px solid #e3ebf4;background:#f8fbff}.idi-calendar-day.empty{min-height:92px;border-style:dashed;background:#f8fbff73}.idi-calendar-day.has-event{border-color:#9ec9f1;background:linear-gradient(180deg,#eef7ff,#e8f3ff);box-shadow:0 8px 18px #0d4f9314}.idi-calendar-day.has-done{border-color:#9fd8b4;background:linear-gradient(180deg,#f1fcf5,#e7f8ee);box-shadow:0 8px 18px #16653414}.idi-calendar-day.today{outline:2px solid rgba(19,101,188,.3);outline-offset:2px}.idi-calendar-day-head{display:flex;justify-content:space-between;align-items:center;gap:.4rem}.idi-calendar-day-head strong{color:#163551;font-size:.96rem}.idi-calendar-day-head span{display:inline-flex;align-items:center;justify-content:center;min-width:30px;padding:.14rem .36rem;border-radius:999px;background:#1365bc1f;color:#0d4f93;font-size:.68rem;font-weight:800}.idi-calendar-day.has-done .idi-calendar-day-head span{background:#16a34a24;color:#166534}.idi-calendar-day-body{margin-top:.65rem;display:grid;gap:.34rem}.idi-calendar-event{display:block;padding:.24rem .42rem;border-radius:8px;font-size:.72rem;font-weight:700;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.idi-calendar-event.online{background:#e8f2ff;color:#0d4f93;border:1px solid #b8d8ff}.idi-calendar-event.offline{background:#f3f8e6;color:#4d6b12;border:1px solid #d7e6af}.idi-calendar-event.done{background:#ecfdf3;color:#166534;border:1px solid #a7f3d0}.idi-calendar-more{color:#5d748a;font-size:.68rem;font-weight:700}.idi-upcoming-card{padding:1rem;background:linear-gradient(180deg,#fffffff0,#f5f9feeb)}.idi-upcoming-head{display:flex;justify-content:flex-start;align-items:center;gap:.8rem;margin-bottom:.9rem}.idi-upcoming-list{display:grid;gap:.75rem}.idi-upcoming-item{padding:.82rem .88rem;border-radius:14px;border:1px solid #dbe5ef;background:#f8fbff}.idi-upcoming-item.online{border-color:#b8d8ff;background:linear-gradient(135deg,#f4f9ff,#e8f2ff)}.idi-upcoming-item.offline{border-color:#d8e1c0;background:linear-gradient(135deg,#fafcf1,#f1f6df)}.idi-upcoming-meta{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin-bottom:.55rem}.idi-upcoming-item h4{margin:0 0 .3rem;color:#173553}.idi-upcoming-item p{margin:0;color:#365572;line-height:1.4}.metrics-ref-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.detail-table-section{display:grid;gap:.6rem}.detail-table-head h2{margin:0}.detail-control-bar{border:1px solid #d9e0ea;border-radius:12px;background:#f8fbff;padding:.7rem;display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.detail-filter-group{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.detail-filter-chip{border:1px solid #d5e1ee;background:#edf3fb;color:#2d4d6d;border-radius:9px;padding:.4rem .65rem;font-size:.76rem;font-weight:700}.detail-filter-select{width:auto;min-width:220px;max-width:320px;flex:0 1 auto}.detail-filter-chip.active{background:linear-gradient(110deg,#0d4f93,#1365bc);color:#fff;border-color:transparent}.detail-filter-chip:disabled{opacity:.5;cursor:not-allowed;background:#f2f5f8;color:#7890a7;border-color:#d9e2ec;box-shadow:none}.detail-filter-input{width:min(260px,100%)}.detail-search-group{display:grid;justify-items:end;gap:.35rem}.detail-search-mode{display:inline-block;padding:0;color:#5c748d;font-size:.72rem;font-style:italic;font-weight:500}.detail-table-wrap{border:1px solid #d9e0ea;border-radius:12px;overflow:auto;background:#fff}.detail-table{width:100%;border-collapse:collapse;min-width:980px;table-layout:auto}.detail-table th,.detail-table td{border-bottom:1px solid #e4ebf3;border-right:1px solid #edf2f8;padding:.5rem .6rem;font-size:.82rem;color:#1f3c59;white-space:nowrap}.detail-table thead th{background:#f5f9ff;color:#274768;font-weight:700;position:sticky;top:0;z-index:2}.detail-table thead tr:nth-child(2) th{top:38px;z-index:3}.detail-table tfoot th{position:sticky;bottom:0;background:#f5f9ff;color:#1f3c59;font-weight:800;z-index:2}.detail-table tbody tr:nth-child(2n) td{background:#fbfdff}.detail-table tbody tr.row-completed td{background:#10b9811f!important}.detail-table tbody tr.row-critical td{background:#f43f5e1f!important}.detail-table th.col-hierarchy,.detail-table td.col-hierarchy{width:1%;white-space:nowrap;text-align:left}.detail-table th.col-metric,.detail-table td.col-metric{width:1%;min-width:52px;padding-left:.28rem;padding-right:.28rem;font-size:.72rem;white-space:nowrap;text-align:center}.shortfall-dot{display:inline-flex;align-items:center;justify-content:center;margin-left:3px;padding:0 4px;border-radius:999px;font-size:.54rem;font-weight:800;line-height:1.15;color:#b42318;background:#f43f5e29;border:1px solid rgba(244,63,94,.4);vertical-align:super}.metric-ref{padding:1rem;transition:transform .22s ease,box-shadow .22s ease;will-change:transform}.metric-ref:hover{transform:translateY(-6px);box-shadow:0 16px 28px #14293d29}.metric-ref.deadline-near{border-color:#f5cc88;animation:deadlinePulse 1.35s ease-in-out infinite}.metric-ref.deadline-near .metric-big{color:#b54708}.metric-ref.deadline-near .mini-stat-row{border-color:#f5cc88;background:#fff6e8}.metric-title{margin:0;color:#5b7087;text-transform:uppercase;font-size:.82rem;font-weight:700}.metric-big{margin:.5rem 0 .7rem;font-size:2.1rem;font-weight:800;color:#0f2238}.metric-big span{font-size:1rem;color:#607b96;font-weight:600}.metric-big.danger{color:#e0315a}.metric-progress-head{display:flex;justify-content:space-between;align-items:center;color:#607b96;font-size:.86rem;margin-bottom:.4rem}.metric-progress-head strong{color:#0eae72;font-size:1.1rem}.progress-bg{height:11px;border-radius:999px;border:1px solid #d6e1ec;background:#e9f0f7;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#17b074,#38c98f);border-radius:999px}.mini-stat-row{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;border:1px solid #d8e2ec;border-radius:10px;background:#f2f6fb;padding:.55rem .7rem}.stat-label{color:#5f7993;font-size:.86rem;font-weight:600}.stat-val{color:#213b57;font-size:.9rem;font-weight:700}.ref-chart{padding:1.2rem}.chart-meta{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:.8rem}.meta-pill{border:1px solid #d5e2ef;background:#eef4fb;border-radius:999px;padding:.3rem .65rem;color:#365572;font-size:.78rem;font-weight:700}.meta-pill.warning{border-color:#f5cc88;background:#fff3dd;color:#9b5e00}.daily-chart-wrap{height:360px}.csv-chart-wrap{height:280px}.csv-chart-wrap.circular{height:250px}.csv-chart-wrap.standard{height:285px}.csv-chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.summary-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.summary-card{border:1px solid #d9e0ea;border-radius:12px;padding:.85rem 1rem;background:#f8fbff}.summary-card p{margin:0;font-size:.84rem;color:#55708b}.summary-card strong{margin-top:.3rem;display:block;color:#0b2239}.chart-box{border:1px solid #d9e0ea;border-radius:12px;padding:.9rem;background:#f8fbff;position:relative;overflow:hidden}.chart-box h3{margin-top:0;animation:chartTitleIn .62s cubic-bezier(.22,1,.36,1) both}.chart-box.ref-chart{transition:transform .26s cubic-bezier(.22,1,.36,1),box-shadow .26s ease,border-color .26s ease}.chart-box.ref-chart:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px #66a2ff00;transition:box-shadow .26s ease}.chart-box.ref-chart:hover{transform:translateY(-6px) scale(1.01);border-color:#b9d6f4;box-shadow:0 14px 28px #234f8024}.chart-box.ref-chart:hover:before{box-shadow:inset 0 0 0 1px #66a2ff61}.chart-box.ref-chart .daily-chart-wrap canvas,.chart-box.ref-chart .csv-chart-wrap canvas{transition:transform .26s cubic-bezier(.22,1,.36,1)}.chart-box.ref-chart:hover .daily-chart-wrap canvas,.chart-box.ref-chart:hover .csv-chart-wrap canvas{transform:scale(1.015)}.bar-chart{display:grid;grid-template-columns:repeat(auto-fit,minmax(66px,1fr));align-items:end;gap:.55rem}.bar-col{display:grid;gap:.35rem;justify-items:center}.bar-value{font-size:.75rem;color:#43617f;font-weight:700}.bar-wrap{width:100%;height:120px;border-radius:8px;border:1px solid #d4e0ec;background:#eef4fa;padding:.25rem;display:flex;align-items:flex-end}.bar-fill{width:100%;border-radius:6px;background:linear-gradient(180deg,#4f95d9,#0f5cab)}.bar-col p{margin:0;font-size:.74rem;color:#47627d}.account-list{border-top:1px solid #e3e8ef;padding-top:.8rem}.account-item{border:1px solid #d9e0ea;border-radius:12px;padding:.75rem .85rem;background:#fbfdff;display:flex;align-items:center;justify-content:space-between;gap:.8rem}.danger-btn{background:linear-gradient(110deg,#b42318,#d92d20);white-space:nowrap}.dashboard-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.stats{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stats article{border:1px solid #d9e0ea;border-radius:12px;padding:.85rem 1rem;background:#fbfdff}.stats p{margin:0;color:#47627d;font-size:.86rem}.stats strong{display:block;margin-top:.2rem;color:#0b2239}.project-list{display:grid;gap:.75rem}.project-section{display:grid;align-content:start;align-items:start}.in-progress-section{gap:.35rem}.in-progress-list{margin-top:0;align-self:start}.project-item{border:1px solid #d9e0ea;border-radius:12px;padding:.78rem .9rem;display:grid;grid-template-columns:minmax(0,1fr) 188px 224px;column-gap:.95rem;align-items:center;background:#fff}.viewer-project-item{cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.viewer-project-item:hover,.viewer-project-item:focus-visible{border-color:#b7c9de;box-shadow:0 10px 24px #12335414;transform:translateY(-1px);outline:none}.project-item>div:first-child{flex:1 1 0;min-width:0}.project-item h3{margin:0 0 .18rem;font-size:1.05rem;line-height:1.18}.project-item .subtitle{font-size:.8rem;line-height:1.28}.project-right{width:224px;text-align:right;justify-self:end}.archived-item{grid-template-columns:minmax(0,1fr) auto;column-gap:.72rem;padding:.62rem .78rem}.archived-item .project-right{width:auto;display:flex;align-items:center;gap:.55rem}.archived-item .project-actions{gap:.35rem}.archived-item .project-action-btn{padding:.34rem .58rem;font-size:.72rem}.archived-item .badge{margin:0}.project-right p{margin:.15rem 0 .42rem;color:#4c6a85;font-size:.76rem;line-height:1.25}.project-stats-inline{display:flex;gap:.4rem;justify-content:flex-end;flex-wrap:wrap;margin-bottom:.5rem}.project-stat-chip{display:inline-flex;align-items:center;justify-content:center;padding:.28rem .62rem;border:1px solid #d7e2ee;border-radius:999px;background:#f5f9ff;color:#234567;font-size:.76rem;font-weight:600}.project-achieved-block{width:108px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;justify-self:center}.project-achieved-block-simple-offset{transform:translate(-10px)}.project-achieved-block strong{display:block;color:#0d4f9394;font-family:Segoe UI Variable Display,Trebuchet MS,Arial Narrow,sans-serif;font-size:2.45rem;line-height:.95;font-weight:800;letter-spacing:-.05em}.project-achieved-block span{display:block;margin-top:.28rem;color:#5d748a;font-size:.7rem;font-weight:700;letter-spacing:.02em}.project-achieved-block-compact{width:176px;align-items:stretch;text-align:left}.project-achieved-compact-list{display:grid;gap:.18rem;width:100%}.project-achieved-compact-row{display:grid;grid-template-columns:minmax(72px,84px) 1fr;align-items:baseline;column-gap:.38rem}.project-achieved-compact-row-primary{margin-bottom:.12rem}.project-achieved-block .project-achieved-compact-value{margin:0;color:#0d4f9394;font-family:Segoe UI Variable Display,Trebuchet MS,Arial Narrow,sans-serif;font-size:clamp(1.18rem,1.55vw,1.82rem);line-height:.96;font-weight:800;letter-spacing:-.04em;justify-self:center;text-align:center}.project-achieved-block .project-achieved-compact-label{margin:0;color:#5d748a;font-size:clamp(.62rem,.78vw,.76rem);line-height:1.12;font-weight:700;letter-spacing:.01em;text-align:left}.project-achieved-block-dual{width:188px;align-items:stretch;text-align:left}.project-achieved-dual-list{display:grid;gap:.5rem;width:100%}.project-achieved-dual-row{display:grid;grid-template-columns:minmax(72px,84px) 1fr;align-items:baseline;column-gap:.38rem}.project-achieved-block .project-achieved-dual-value{margin:0;font-size:2.15rem;justify-self:center;text-align:center}.project-achieved-block .project-achieved-dual-label{margin:0;font-size:.68rem;text-align:left}.project-actions{display:flex;gap:.45rem;justify-content:flex-end}.project-action-btn{padding:.38rem .62rem;border-radius:9px;font-size:.76rem;line-height:1.1}.badge{display:inline-block;padding:.25rem .56rem;border-radius:999px;font-size:.78rem;font-weight:700;background:#e7f1ff;color:#0d4f93}.archived-box{border:1px solid #d9e0ea;border-radius:12px;padding:.9rem;background:#f8fbff}.archived-box h3{margin-top:0}.archived-item{background:#f4f7fb}.archived-badge{background:#f2e8ff;color:#6c2bd9}@keyframes logoIn{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes logoShine{0%{left:-40%}60%,to{left:120%}}@keyframes chartTitleIn{0%{opacity:0;transform:translateY(-8px);letter-spacing:.01em}to{opacity:1;transform:translateY(0);letter-spacing:0}}@keyframes deadlinePulse{0%,to{box-shadow:0 0 #f59e0b24}50%{box-shadow:0 0 0 9px #f59e0b00}}@keyframes loginCardIn{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes loginBackdropFloat{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(0,-8px,0) scale(1.03)}}@media(max-width:700px){.login-shell{grid-template-columns:1fr}.login-hero,.login-form-panel{padding:1.2rem}.login-hero{min-height:0;gap:1.2rem}.login-hero-copy h1{font-size:2.5rem}.login-badge-row{gap:.4rem}.login-badge-row span{font-size:.6rem;padding:.42rem .45rem}.login-footer{font-size:.76rem;gap:.12rem}.admin-layout{grid-template-columns:1fr}.viewer-detail-toolbar{flex-direction:column;align-items:flex-start}.viewer-detail-toolbar-actions{width:100%;justify-content:flex-start}.last-update-float{right:10px;top:10px;font-size:.75rem;padding:.38rem .62rem}.dashboard-header{flex-direction:column;align-items:flex-start}.project-item{grid-template-columns:1fr;row-gap:.7rem;align-items:flex-start}.detail-control-bar{align-items:stretch}.detail-filter-group,.detail-filter-input{width:100%}.project-right{text-align:left;width:100%}.project-achieved-block{width:100%;justify-self:stretch;align-items:flex-start;text-align:left;justify-content:flex-start}.project-achieved-block-simple-offset{transform:none}.project-stats-inline{justify-content:flex-start}.project-actions{justify-content:flex-start;width:100%}.project-right button,.menu-btn,.logout-btn,.danger-btn{width:100%}.project-form-actions{width:100%;flex-direction:column}.last-update-input-grid{grid-template-columns:1fr}.project-actions-top{flex-wrap:wrap}.project-actions-top .secondary,.project-actions-top .mode-switch-btn{width:100%;min-width:0}.fgd-card-head{flex-direction:column;align-items:flex-start}.fgd-display-grid,.fgd-session-info-list{grid-template-columns:1fr}.idi-planner-header,.idi-upcoming-head{flex-direction:column;align-items:flex-start}.idi-overview-chips{justify-content:flex-start}.idi-planner-grid{grid-template-columns:1fr}.idi-calendar-grid{gap:.35rem}.idi-calendar-day,.idi-calendar-day.empty{min-height:82px}.fgd-group-tabs{--fgd-tab-width: calc((100% - 1rem) / 3)}.fgd-group-tab{width:100%;min-width:0}.daily-chart-wrap{height:300px}.csv-chart-wrap,.csv-chart-wrap.circular,.csv-chart-wrap.standard{height:260px}.csv-chart-grid,.idi-summary-cards,.fw-row,.methodology-row{grid-template-columns:1fr}.account-item{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){.login-shell,.login-hero-backdrop{animation:none}.reveal-item,.csv-chart-item{opacity:1;transform:none;filter:none;transition:none}.chart-box.ref-chart,.chart-box.ref-chart .daily-chart-wrap canvas,.chart-box.ref-chart .csv-chart-wrap canvas{transition:none;transform:none}.chart-box h3,.metric-ref.deadline-near{animation:none}}
