:root{--bg:#f4f6f9;--card:#fff;--ink:#16202e;--muted:#5d6b7e;--line:#e2e7ee;--input-line:#cfd7e2;--navy:#14284b;--blue:#2a5bd7;--blue-soft:#e8eefc;--red:#c62828;--red-soft:#fdecea;--amber:#a85d00;--amber-soft:#fff3e0;--green:#1e7d45;--green-soft:#e6f4ec;--gray-soft:#eef0f3;--satya:#0f7c7a;--satya-soft:#e0f3f2;--dyna:#4b3fb8;--dyna-soft:#ecebfb;--r:10px;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-width:320px;margin:0}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{margin:0;line-height:1.25}h1{letter-spacing:-.01em;font-size:20px;font-weight:700}h2{font-size:17px;font-weight:600}p{margin:0 0 .5rem}a{color:inherit}code{background:var(--gray-soft);border-radius:4px;padding:0 4px}.muted{color:var(--muted)}.small{font-size:12.5px}.strong{font-weight:600}.nowrap{white-space:nowrap}.break{word-break:break-word}.link{text-decoration:none}.link:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.topbar{background:var(--navy);color:#fff;z-index:10;position:sticky;top:0}.topbar-inner{flex-wrap:wrap;align-items:center;gap:12px 24px;max-width:1280px;margin:0 auto;padding:16px 24px;display:flex}.brand{color:#fff;flex-direction:column;min-width:0;text-decoration:none;display:flex}.brand-name{letter-spacing:-.01em;font-size:20px;font-weight:700}.brand-sub{opacity:.75;font-size:13px}.mainnav{flex-wrap:wrap;order:3;align-items:center;gap:8px;width:100%;display:flex}.menu-btn{display:none}.nav-links{flex-wrap:wrap;gap:4px;display:flex}.nav-links a{color:#ffffffbf;white-space:nowrap;border:1px solid #0000;border-radius:8px;padding:6px 12px;font-weight:500;text-decoration:none}.nav-links a:hover{color:#fff}.nav-links a.active{color:#fff;border-color:#ffffff59}.nav-actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.nav-actions .btn-on-dark.active{background:#ffffff29}@media (width<=759px){.menu-btn{display:inline-flex}.nav-links{flex-direction:column;order:3;gap:2px;width:100%;padding-top:4px;display:none}.nav-links.open{display:flex}.nav-links a{padding:11px 12px;font-size:15px}}.userbox{align-items:center;gap:12px;margin-left:auto;display:flex}.userbox-text{flex-direction:column;align-items:flex-end;line-height:1.2;display:flex}.userbox-name{text-overflow:ellipsis;white-space:nowrap;max-width:40vw;font-size:13.5px;font-weight:600;overflow:hidden}.userbox-role{opacity:.75;font-size:12px}.company-tabs{gap:4px;max-width:1280px;margin:0 auto;padding:0 24px;display:flex;overflow-x:auto}.company-tab{color:#ffffffb3;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;padding:10px 16px;font-weight:600}.company-tab:hover{color:#fff}.company-tab[aria-selected=true]{color:#fff;border-bottom-color:#7fb1ff}.content{max-width:1280px;margin:0 auto;padding:20px 24px 60px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:14px;display:flex}.head-actions{gap:8px;display:flex}.back-link{color:var(--muted);margin-bottom:4px;font-size:13px;text-decoration:none;display:inline-block}.back-link:hover{color:var(--ink)}.page-loading{text-align:center;color:var(--muted);padding:48px 16px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:14px;padding:14px 16px}.placeholder-card{border:1px dashed #c9d3e0}.empty-state{text-align:center;color:var(--muted);border:1px dashed #c9d3e0;padding:30px}.empty-state h1{color:var(--ink);margin-bottom:8px}.empty-state .btn{margin-top:8px}.section-title{border-bottom:1px solid var(--line);margin:0 0 10px;padding-bottom:6px;font-size:15px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.card-grid .card{margin-bottom:0}.project-card{color:inherit;flex-direction:column;gap:8px;text-decoration:none;transition:box-shadow .15s,border-color .15s;display:flex}.project-card:hover{border-color:#c9d3e0;box-shadow:0 4px 14px #14284b14}.project-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.project-card-name{font-size:15.5px}.project-card-meta{color:var(--muted);font-size:13px}.prow{color:var(--muted);justify-content:space-between;gap:8px;font-size:12.5px;display:flex}.prow b{color:var(--ink);font-weight:600}.project-code{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12.5px;font-weight:600}.chip{white-space:nowrap;background:var(--gray-soft);color:var(--muted);border-radius:20px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.status-on-track,.chip-active{background:var(--green-soft);color:var(--green)}.status-at-risk{background:var(--amber-soft);color:var(--amber)}.status-delayed{background:var(--red-soft);color:var(--red)}.status-on-hold,.chip-inactive{background:var(--gray-soft);color:var(--muted)}.status-completed{background:var(--blue-soft);color:var(--blue)}.company-sa{background:var(--satya-soft);color:var(--satya)}.company-dt{background:var(--dyna-soft);color:var(--dyna)}.progress{align-items:center;gap:8px;min-width:110px;display:flex}.progress-track{background:var(--gray-soft);border-radius:6px;flex:1;height:7px;overflow:hidden}.progress-fill{background:var(--blue);border-radius:6px;height:100%;display:block}.progress-label{font-variant-numeric:tabular-nums;text-align:right;min-width:3ch;font-size:12.5px;font-weight:600}.btn{border:1px solid var(--line);min-height:38px;color:var(--ink);cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){filter:brightness(.97)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-sm{min-height:32px;padding:5px 10px;font-size:13px}.btn-block{width:100%}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-secondary{background:#fff}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.btn-danger-ghost{color:var(--red);background:0 0;border:none}.btn-danger-ghost:hover:not(:disabled){background:var(--red-soft);filter:none}.btn-on-dark{color:#fff;background:0 0;border-color:#ffffff59}.btn-link{color:var(--blue);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-weight:500}.icon-btn{background:var(--gray-soft);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;width:34px;height:34px;font-size:18px;line-height:1}.field{flex-direction:column;gap:4px;min-width:0;margin-bottom:12px;display:flex}.field>span,.field>label{color:var(--muted);font-size:12.5px;font-weight:600}input,select,textarea{border:1px solid var(--input-line);width:100%;min-height:38px;color:var(--ink);background:#fff;border-radius:8px;padding:8px 10px}input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #2a5bd726}input[readonly],select:disabled{background:var(--bg);color:var(--muted)}.checkbox{cursor:pointer;align-items:center;gap:8px;margin:0 0 12px;font-weight:600;display:flex}.checkbox input{width:16px;height:16px;min-height:0;margin:0}.field .checkbox{color:var(--muted);margin:4px 0 0;font-weight:400}.hint{color:var(--muted);font-size:13px;font-weight:400}.input-with-button{gap:8px;display:flex}.form-card{max-width:860px}.form-grid{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.field-wide{grid-column:1/-1}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.filters{flex-wrap:wrap;gap:8px;display:flex}.filters .field{margin-bottom:0}.filters .field-grow{flex:1;min-width:240px}.alert{word-break:break-word;border-radius:8px;margin-bottom:12px;padding:10px 14px;font-weight:500}.alert-error{background:var(--red-soft);color:var(--red)}.alert-warning{background:var(--amber-soft);color:var(--amber)}.alert-success{background:var(--green-soft);color:var(--green)}.table-card{padding:0;overflow:hidden}.table{border-collapse:collapse;width:100%}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--bg);border-bottom:1px solid var(--line);padding:10px 12px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 12px}.table tbody tr:last-child td{border-bottom:none}.row-inactive td{color:var(--muted)}.row-actions{text-align:right;white-space:nowrap}.row-actions .btn+.btn{margin-left:6px}.progress-cell{min-width:140px}@media (width<=899px){.stack-on-mobile thead{display:none}.stack-on-mobile,.stack-on-mobile tbody,.stack-on-mobile tr,.stack-on-mobile td{width:100%;display:block}.stack-on-mobile tr{border-bottom:1px solid var(--line);padding:12px 14px}.stack-on-mobile tbody tr:last-child{border-bottom:none}.stack-on-mobile td{text-align:right;border:none;justify-content:space-between;align-items:center;gap:12px;padding:4px 0;display:flex}.stack-on-mobile td[data-label]:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;flex:none;font-size:11.5px;font-weight:600}.stack-on-mobile .row-actions{white-space:normal;flex-wrap:wrap;justify-content:flex-end;gap:6px;padding-top:10px}.stack-on-mobile .row-actions .btn+.btn{margin-left:0}.stack-on-mobile .progress-cell .progress{width:60%}}.simple-list{margin:0 0 14px;padding:0;list-style:none}.simple-list li+li{border-top:1px solid var(--line)}.simple-list-row{color:inherit;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:10px 2px;text-decoration:none;display:flex}.simple-list-main{flex-direction:column;min-width:0;display:flex}.simple-list-name{font-weight:600}.simple-list-side{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.simple-list-side .progress{width:140px}.detail-code-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.detail-status{align-items:center;gap:16px;display:flex}.detail-status .progress{flex:1;max-width:360px}.detail-grid{background:var(--bg);border-radius:8px;grid-template-columns:1fr 1fr;gap:8px 16px;margin:14px 0 0;padding:12px 14px;display:grid}@media (width>=900px){.detail-grid{grid-template-columns:repeat(4,1fr)}}.detail-grid dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:600}.detail-grid dd{word-break:break-word;margin:0;font-size:13px}.modal{width:min(620px,100vw - 28px);max-height:calc(100dvh - 40px);color:var(--ink);border:none;border-radius:12px;padding:0;box-shadow:0 20px 50px #00000040}.modal::backdrop{background:#0a142873}.modal-head{background:#fff;justify-content:space-between;align-items:flex-start;gap:10px;padding:20px 22px 4px;display:flex;position:sticky;top:0}.modal-head h2{font-size:18px}.modal-body{padding:10px 22px 20px}.confirm-message{color:var(--muted)}.confirm-message p{margin-bottom:10px}.confirm-message strong{color:var(--ink)}.login-page{background:linear-gradient(180deg, var(--navy) 0 38%, var(--bg) 38% 100%);justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;display:flex}.login-card{width:100%;max-width:400px;padding:24px 22px;box-shadow:0 20px 50px #0000001f}.login-brand,.change-pw-head{margin-bottom:18px}.login-brand p,.change-pw-head p{margin:2px 0 0}.login-help{text-align:center;color:var(--muted);margin:14px 0 0;font-size:13px}@media (width<=640px){.topbar-inner,.company-tabs,.content{padding-left:14px;padding-right:14px}.form-grid{grid-template-columns:1fr}.filters .field,.filters .field-grow{flex:100%;min-width:0}.brand-sub{display:none}input,select,textarea{font-size:16px}}.wk-state{flex-wrap:wrap;align-items:center;gap:0 6px;font-weight:600;display:inline-flex}.wk-submitted{color:var(--green)}.wk-due{color:var(--amber)}.wk-overdue{color:var(--red)}.wk-not-needed{color:var(--muted);font-weight:500}.late-tag{background:var(--red-soft);color:var(--red)}.week-summary{color:var(--muted);margin:0 0 14px}.week-summary strong{color:var(--ink)}.project-card-link{color:inherit;flex-direction:column;gap:8px;text-decoration:none;display:flex}.project-card-week{border-top:1px solid var(--line);flex-direction:column;gap:10px;margin-top:4px;padding-top:10px;display:flex}.btn-lg{min-height:46px;font-size:15px;font-weight:600}.this-week-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.this-week-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:600}.alert-info{background:var(--blue-soft);color:var(--ink);font-weight:400}.alert .chip{margin-left:6px}.draft-notice{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}textarea{resize:vertical;min-height:76px}.progress-input{align-items:center;gap:10px;display:flex}.progress-input input[type=range]{box-shadow:none;accent-color:var(--blue);border:none;flex:1;padding:0}.progress-input input[type=number]{flex:none;width:84px}.timeline{flex-direction:column;display:flex}.upd{border-left:2px solid var(--line);margin-left:6px;padding:0 0 16px 20px;position:relative}.upd:before{content:"";background:var(--blue);border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;top:3px;left:-7px}.upd .w{flex-wrap:wrap;align-items:center;gap:6px 8px;font-weight:600;display:flex}.upd .w .muted{font-weight:400}.upd-meta{color:var(--muted);margin-top:2px;font-size:12.5px}.upd .lab{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:8px;font-size:11.5px;font-weight:600}.upd .txt{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13.5px}.upd-actions{gap:6px;margin-top:8px;display:flex}.upd-missed{color:var(--muted);padding-bottom:12px}.upd-missed:before{background:#c9d3e0}.upd-missed .w{font-weight:500}.timeline>.btn{align-self:flex-start;margin-top:4px}@media (width<=640px){.sticky-actions{padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff;margin:12px -16px -14px;position:sticky;bottom:0;box-shadow:0 -4px 12px #14284b0f}.sticky-actions .btn{flex:1;min-height:46px}.this-week-card .btn{width:100%}}.btn-warn{background:var(--red);border-color:var(--red);color:#fff}.btn-link.danger{color:var(--red)}.kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:18px;display:grid}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}.kpi .lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.kpi .val{margin-top:4px;font-size:28px;font-weight:700}.kpi .val-of{color:var(--muted);font-size:17px}.kpi .sub{color:var(--muted);font-size:12.5px}.kpi.alert .val{color:var(--red)}@media (width<=640px){.kpis{grid-template-columns:1fr 1fr}.kpi .val{font-size:24px}}.attention{background:var(--card);border:2px solid var(--red);border-radius:var(--r);margin-bottom:22px;padding:16px 18px}.attention.clear{border-color:var(--green)}.attention.my-issues{border-color:var(--amber)}.att-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.att-head h2{margin:0;font-size:17px}.att-head .count{background:var(--red);color:#fff;border-radius:20px;padding:1px 9px;font-size:12.5px;font-weight:700}.attention.clear .count{background:var(--green)}.attention.my-issues .count{background:var(--amber)}.att-item{border-left:5px solid var(--muted);background:var(--gray-soft);cursor:pointer;border-radius:8px;align-items:flex-start;gap:12px;margin-bottom:8px;padding:10px 12px;display:flex}.att-item:hover{filter:brightness(.985)}.att-critical{border-left-color:var(--red);background:var(--red-soft)}.att-high{border-left-color:var(--amber);background:var(--amber-soft)}.att-normal{border-left-color:var(--blue);background:var(--blue-soft)}.att-delay{border-left-color:var(--red);border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.att-main{flex:1;min-width:0}.att-title{overflow-wrap:anywhere;font-weight:600}.att-meta{color:var(--muted);margin-top:2px;font-size:12.5px}.att-meta b{color:var(--ink);font-weight:600}.att-btns{cursor:default;flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:6px;display:flex}.overdue{color:var(--red);font-weight:700}.overdue-tag{background:var(--red);color:#fff;padding:1px 7px;font-size:11px}.pending{border-top:1px dashed var(--line);color:var(--muted);margin-top:12px;padding-top:12px;font-size:13px}.chip-overdue{cursor:pointer;background:var(--red-soft);color:var(--red);font:inherit;border:none;margin:4px 4px 0 0;font-size:12px;font-weight:600}.empty-ok{color:var(--green);padding:6px 2px;font-weight:600}.sev-critical{background:var(--red);color:#fff}.sev-high{background:var(--amber);color:#fff}.sev-normal{background:var(--blue);color:#fff}.issue-badge{background:var(--red);color:#fff}.stale{color:var(--red);font-weight:600}@media (width<=640px){.att-item{flex-direction:column}.att-btns{justify-content:flex-start}}.sec-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.sec-head h2{margin:0;font-size:17px}.grid-filters{flex-wrap:wrap;gap:8px;display:flex}.grid-filters input{width:240px;max-width:100%}.grid-filters select{width:auto}@media (width<=640px){.grid-filters,.grid-filters input,.grid-filters select{width:100%}}.section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:6px;display:flex}.section-head .section-title{border:none;margin:0;padding:0}.iss{border:1px solid var(--line);border-left-width:4px;border-radius:8px;margin-bottom:8px;padding:10px 12px}.iss-critical{border-left-color:var(--red)}.iss-high{border-left-color:var(--amber)}.iss-normal{border-left-color:var(--blue)}.iss.resolved{background:var(--bg)}.iss .t{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;display:flex}.iss-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0;font-size:13px}.iss-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.show-resolved{margin:4px 0 8px}.notes{border-left:2px solid var(--line);margin-top:10px;padding-left:10px}.note{margin-bottom:8px}.note-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}.note-meta{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.note-meta .btn-link{padding:0 4px;font-size:12px}.add-note{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.add-note textarea{flex:1;min-width:200px;min-height:38px}.add-note .alert{flex-basis:100%;margin:0}.plain-fieldset{border:none;min-width:0;margin:0;padding:0}.issbox{border:1px solid var(--line);background:snow;border-radius:8px;min-width:0;margin:4px 0 12px;padding:12px}.issbox legend{color:var(--red);padding:0 6px;font-weight:700}.issbox .checkbox{margin-bottom:10px}.app{overflow-x:clip}.content p,.content li,.content dd{overflow-wrap:anywhere}.summary-text{width:100%;min-height:340px;margin-bottom:12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.5}a.btn.disabled{opacity:.6;pointer-events:none}.form-section-title{margin-bottom:8px;font-size:16px}.settings-current{background:var(--blue-soft);border-radius:8px;padding:10px 12px;font-size:15px;font-weight:600}.help h2{margin-bottom:8px;font-size:16px}.help ol,.help ul{margin:0 0 8px;padding-left:20px}.help li{margin-bottom:4px}.help-more summary{cursor:pointer;min-height:32px;font-weight:600}.help-more[open] summary{margin-bottom:12px}.help-more .card{box-shadow:none}@media (width<=640px){.topbar-inner{padding-top:10px;padding-bottom:10px}.brand-name{font-size:18px}.btn,.btn-sm{min-height:44px}.btn-sm{padding:8px 12px}input,select{min-height:44px}.icon-btn{width:44px;height:44px}.btn-link{min-height:44px}.checkbox input{width:20px;height:20px}.page-head h1{font-size:19px}.head-actions{width:100%}.head-actions .btn{flex:1}.card{padding:14px}.detail-status{flex-wrap:wrap}.company-tab{padding:12px 14px}.upd-actions .btn,.iss-actions .btn{flex:1}.add-note .btn{width:100%}.form-actions .btn{flex:1}}.topbar{padding-top:env(safe-area-inset-top)}.login-page{padding-top:max(24px, env(safe-area-inset-top))}
