:root{--gold:#ecbd00;--ink:#0b0b0a;--ink2:#171715;--graphite:#242421;--ivory:#f7f5ef;--stone:#d8d3c8;--muted:#817c72;--line:#e4dfd4;--white:#fff;--success:#247a4a;--danger:#9b2c2c;--shadow:0 18px 60px rgba(20,18,14,.08)}*{box-sizing:border-box}html{background:#f4f1ea}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f4f1ea;color:var(--ink);font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:var(--ink);color:#f7f5ef;padding:24px 18px;display:flex;flex-direction:column;z-index:50}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 26px}.brand img{width:42px;height:42px;object-fit:contain}.brand b{font-size:16px;letter-spacing:.15em}.brand small{display:block;color:#aaa69d;font-size:10px;letter-spacing:.18em;margin-top:2px}.sidebar-section-label{font-size:9px;letter-spacing:.2em;color:#6f6b64;padding:16px 10px 8px}.nav{display:grid;gap:4px}.nav-link{display:flex;align-items:center;gap:11px;min-height:42px;border-radius:10px;padding:9px 11px;color:#c7c2b8;transition:.2s}.nav-link:hover{background:#191917;color:#fff}.nav-link.active{background:#242421;color:#fff}.nav-link.active:before{content:"";width:3px;height:20px;background:var(--gold);border-radius:3px;margin-left:-11px}.nav-icon{width:22px;text-align:center;color:#858076}.nav-link.active .nav-icon{color:var(--gold)}.nav-muted{opacity:.48}.nav-link.disabled{cursor:default}.sidebar-user{margin-top:auto;border-top:1px solid #282825;padding:18px 8px 0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}.sidebar-user-copy{min-width:0}.sidebar-user b,.sidebar-user small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{color:#858076}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f2ead1;color:#2b271d;font-weight:800;flex:0 0 auto}.page{min-width:0}.topbar{min-height:88px;background:rgba(247,245,239,.92);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px clamp(20px,3vw,42px);position:sticky;top:0;z-index:35;backdrop-filter:blur(14px)}.topbar-title span,.eyebrow{font-size:9px;letter-spacing:.19em;font-weight:800;color:#9a7920;text-transform:uppercase}.topbar h1{font-size:25px;margin:2px 0 0;letter-spacing:-.035em}.topbar-actions{display:flex;gap:8px;align-items:center}.inline-form{display:inline-flex;margin:0}.content{padding:28px clamp(18px,3vw,42px) 60px;max-width:1680px;margin:0 auto}.mobile-menu{display:none;border:0;background:none;font-size:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 16px;border:1px solid transparent;border-radius:9px;font-weight:700;cursor:pointer}.btn.primary{background:var(--ink);color:#fff}.btn.primary:hover{background:#242421}.btn.secondary{border-color:#d7d1c5;background:#fff;color:var(--ink)}.btn.small{min-height:34px;padding:6px 11px;font-size:12px}.btn.wide{width:100%}.text-link,.text-button{border:0;background:none;color:#7b6118;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.flash{padding:12px 15px;border-radius:10px;margin-bottom:18px;font-weight:600}.flash-success{background:#e7f4ec;color:#28653f}.flash-error{background:#f8e5e5;color:#8d2d2d}.hero-card,.project-hero{background:var(--ink);color:#fff;border-radius:18px;padding:clamp(24px,4vw,42px);display:flex;align-items:flex-end;justify-content:space-between;gap:28px;box-shadow:var(--shadow);overflow:hidden;position:relative}.hero-card:after,.project-hero:after{content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(236,189,0,.22);border-radius:50%;right:-60px;top:-130px}.hero-card h2,.project-hero h2{font-size:clamp(30px,4vw,54px);letter-spacing:-.045em;margin:7px 0}.hero-card p,.project-hero p{color:#b7b2a9;max-width:650px;margin:0}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.metric,.panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 30px rgba(15,13,10,.035)}.metric{padding:19px}.metric span,.details-grid span,.project-meta b,.detail-list dt{display:block;color:var(--muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.metric strong{display:block;font-size:29px;letter-spacing:-.04em;margin:6px 0 2px}.metric small{color:#989287}.panel{padding:22px;margin:18px 0}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.panel-head h2,.panel-head h3{margin:4px 0 0;font-size:21px;letter-spacing:-.025em}.panel-head p{margin:5px 0 0;color:var(--muted);max-width:680px}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.feature-grid>div{background:#fff;padding:20px}.feature-grid p{color:var(--muted);margin:6px 0 0}.filters{display:flex;gap:9px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);padding:12px;border-radius:13px}.filters select,.filters input,.form-grid input,.form-grid select,.form-grid textarea,.searchbox input{border:1px solid #dcd6ca;background:#fff;border-radius:9px;min-height:42px;padding:9px 11px;outline:none;width:100%}.filters select{width:auto;min-width:145px}.searchbox{position:relative;display:flex;align-items:center;min-width:280px;flex:1}.searchbox>span{position:absolute;left:12px;color:#9b958b}.searchbox input{padding-left:34px}.list-meta{display:flex;justify-content:space-between;gap:12px;color:var(--muted);padding:18px 2px 10px}.list-meta b{color:var(--ink)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.project-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:0 8px 28px rgba(20,18,14,.035);transition:.25s}.project-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.project-cover{height:132px;background:#272723;background-size:cover;background-position:center;position:relative;padding:14px;display:flex;align-items:flex-start;justify-content:space-between}.cover-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.58))}.project-code{position:absolute;left:14px;bottom:12px;color:#fff;font-size:11px;letter-spacing:.1em}.status-pill{position:relative;z-index:2;border-radius:99px;padding:5px 9px;font-size:10px;font-weight:800;background:#ece8df;color:#4d4941}.status-active{background:#e4f2e8;color:#27663f}.status-planning{background:#f2ead1;color:#725c19}.status-on_hold{background:#f7e5de;color:#8c4b34}.status-completed,.status-handed_over{background:#e7e9f4;color:#3f4e7d}.project-card-body{padding:17px}.project-card-title{display:flex;justify-content:space-between;gap:14px}.project-card-title span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#8e887d}.project-card-title h2{font-size:18px;margin:3px 0 12px;letter-spacing:-.025em}.project-card-title strong{font-size:20px}.progress{height:6px;background:#ede9e0;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:var(--gold);border-radius:99px}.project-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:17px 0}.project-meta span{font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis}.project-card-foot{border-top:1px solid #eeeae2;padding-top:12px;display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#8c867c}.project-hero{align-items:center}.project-hero-copy{min-width:0;position:relative;z-index:2;flex:1}.project-kickers{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:10px;letter-spacing:.08em;color:#aaa69d}.project-hero .status-pill{display:inline-flex}.project-hero-side{position:relative;z-index:2;text-align:right;min-width:210px}.project-hero-side span,.project-hero-side small{display:block;color:#aaa69d}.project-hero-side strong{display:block;font-size:20px;margin:4px 0}.progress-lg{max-width:650px;margin-top:22px;background:#393936}.progress-copy{max-width:650px;display:flex;justify-content:space-between;margin-top:7px;font-size:11px;color:#b9b4aa}.workspace-tabs{display:flex;overflow:auto;gap:4px;border-bottom:1px solid var(--line);margin:22px 0 10px;scrollbar-width:none}.workspace-tabs::-webkit-scrollbar{display:none}.workspace-tabs a{white-space:nowrap;padding:11px 14px;border-bottom:2px solid transparent;color:#777168;font-weight:700}.workspace-tabs a.active{border-color:var(--gold);color:var(--ink)}.workspace-tabs em{font-style:normal;font-size:10px;background:#e9e4d9;border-radius:99px;padding:2px 6px;margin-left:5px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-list{margin:0}.detail-list>div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid #eeeae2}.detail-list>div:last-child{border:0}.detail-list dd{margin:0;font-weight:700;text-align:right}.timeline{display:grid}.timeline-item{display:grid;grid-template-columns:16px 1fr;gap:10px;position:relative;padding-bottom:16px}.timeline-item>i{width:9px;height:9px;border-radius:50%;background:var(--gold);margin-top:6px}.timeline-item:not(:last-child):after{content:"";position:absolute;left:4px;top:16px;bottom:0;width:1px;background:#ded8cd}.timeline-item span,.timeline-item small{display:block;color:var(--muted);margin-top:2px}.details-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.details-grid>div{background:#fff;padding:16px;min-width:0}.details-grid b{display:block;margin-top:5px;overflow-wrap:anywhere}.details-grid small{display:block;color:var(--muted);margin-top:3px}.span-2{grid-column:span 2}.normal-weight{font-weight:500}.inline-search{max-width:520px;margin-bottom:14px}.team-list,.file-list,.activity-list,.master-list,.stage-master-list{display:grid}.team-row,.file-row,.activity-row,.master-row,.stage-master-row{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid #eeeae2}.team-main,.file-row>div,.activity-row>div,.master-row>div{min-width:0;flex:1}.team-main span,.team-main small,.file-row small,.activity-row span,.activity-row small,.master-row span,.master-row small,.stage-master-row span,.stage-master-row small{display:block;color:var(--muted)}.badge{font-size:10px;border-radius:99px;background:#f3ead0;color:#765d13;padding:4px 8px}.file-icon{width:45px;height:38px;border-radius:8px;background:#f2eee5;display:grid;place-items:center;font-size:9px;font-weight:800}.file-row>span:last-child{font-size:11px;color:var(--muted)}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--gold)}.empty-state{background:#fff;border:1px dashed #d6d0c4;border-radius:16px;text-align:center;padding:70px 20px}.empty-icon{width:48px;height:48px;border-radius:50%;background:#f2ead1;display:grid;place-items:center;margin:0 auto 12px;font-size:20px}.empty-state p,.empty-mini,.muted{color:var(--muted)}.empty-mini{padding:22px 0}.project-form{display:grid;gap:2px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid label{display:grid;gap:6px;font-size:11px;font-weight:700;color:#514d46}.form-grid small{color:var(--muted);font-weight:400}.form-grid textarea{resize:vertical}.checkbox-field{display:flex!important;align-items:center;gap:9px;align-self:end;min-height:42px}.checkbox-field input{width:auto;min-height:auto}.form-actions{position:sticky;bottom:14px;display:flex;justify-content:flex-end;gap:9px;padding:11px;background:rgba(247,245,239,.92);border:1px solid var(--line);border-radius:12px;backdrop-filter:blur(12px);z-index:20}.dialog{border:0;border-radius:16px;padding:0;width:min(620px,calc(100vw - 30px));box-shadow:0 30px 100px rgba(0,0,0,.25)}.dialog::backdrop{background:rgba(10,10,9,.56);backdrop-filter:blur(3px)}.dialog-wide{width:min(820px,calc(100vw - 30px))}.dialog form{padding:22px}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:18px}.dialog-head h3{font-size:22px;margin:4px 0}.dialog-close{border:0;background:#f0ece4;width:34px;height:34px;border-radius:50%;font-size:20px;cursor:pointer}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.team-picker-tools{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.team-picker-tools>div:last-child{display:flex;align-items:center;gap:9px;font-size:11px}.team-picker{max-height:48vh;overflow:auto;border:1px solid var(--line);border-radius:11px}.team-pick-row{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #eeeae2;cursor:pointer}.team-pick-row:last-child{border-bottom:0}.team-pick-row input{width:17px;height:17px}.team-pick-row small{display:block;color:var(--muted)}.master-row{justify-content:space-between}.stage-master-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto}.stage-num{font-size:24px;color:#b2aca1}.stage-line{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:18px;align-items:center}.stage-progress{height:5px;background:#eeeae1;border-radius:99px;overflow:hidden}.stage-progress i{display:block;height:100%;background:var(--gold)}.login-page{background:var(--ink);min-height:100vh}.login-grid{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-story{background:radial-gradient(circle at 75% 30%,rgba(236,189,0,.15),transparent 36%),#0b0b0a;color:#fff;padding:clamp(32px,6vw,82px);display:flex;flex-direction:column;justify-content:space-between}.login-brand{display:flex;align-items:center;gap:12px;letter-spacing:.16em}.login-brand img{width:42px}.login-story h1{font-size:clamp(42px,6vw,84px);line-height:.96;letter-spacing:-.06em;margin:20px 0}.login-story h1 em{color:var(--gold);font-family:Georgia,serif;font-weight:400}.login-story p{color:#aaa69d;max-width:590px;font-size:16px}.login-panel{background:var(--ivory);display:grid;place-items:center;padding:28px}.login-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(26px,4vw,42px);box-shadow:var(--shadow)}.login-card h2{font-size:32px;letter-spacing:-.04em;margin:7px 0}.login-card>p{color:var(--muted);margin:0 0 22px}.login-card label{display:grid;gap:7px;font-size:11px;font-weight:700;margin:13px 0}.login-card input{min-height:45px;border:1px solid #d8d2c7;border-radius:9px;padding:10px 12px}.login-note{font-size:10px;color:var(--muted);text-align:center;margin-top:16px}.sidebar-backdrop{display:none}
@media(max-width:1200px){.project-grid{grid-template-columns:repeat(2,1fr)}.details-grid{grid-template-columns:repeat(3,1fr)}.metric-grid,.feature-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-270px;width:252px;transition:.25s}.sidebar.open{left:0;box-shadow:30px 0 80px rgba(0,0,0,.25)}.sidebar-backdrop.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:45}.mobile-menu{display:block}.topbar{padding:14px 18px}.topbar-title{flex:1}.topbar h1{font-size:20px}.content{padding:18px}.two-col{grid-template-columns:1fr}.details-grid{grid-template-columns:repeat(2,1fr)}.login-grid{grid-template-columns:1fr}.login-story{display:none}.login-panel{min-height:100vh}.project-hero{align-items:flex-start;flex-direction:column}.project-hero-side{text-align:left}.team-picker-tools{align-items:stretch;flex-direction:column}.team-picker-tools>div:last-child{flex-wrap:wrap}.stage-line{grid-template-columns:1fr}}
@media(max-width:640px){body{font-size:13px}.content{padding:14px 12px 50px}.topbar{padding:12px}.topbar-actions .btn{padding:8px 10px;min-height:38px}.hero-card{align-items:flex-start;flex-direction:column}.metric-grid,.feature-grid{grid-template-columns:1fr 1fr}.metric{padding:14px}.metric strong{font-size:24px}.filters{align-items:stretch}.filters>*{width:100%!important}.searchbox{min-width:0}.list-meta{align-items:flex-start;flex-direction:column}.project-grid{grid-template-columns:1fr}.project-cover{height:115px}.project-meta{grid-template-columns:1fr 1fr}.project-card-foot{flex-wrap:wrap}.panel{padding:16px;margin:12px 0}.details-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:1}.form-actions{bottom:8px}.project-hero{padding:22px 18px}.project-hero h2{font-size:30px}.workspace-tabs{margin-top:14px}.team-row{align-items:flex-start}.dialog form{padding:17px}.dialog-actions{position:sticky;bottom:-17px;background:#fff;padding:12px 0 0}.stage-master-row{grid-template-columns:36px minmax(0,1fr);align-items:start}.stage-master-row>.btn{grid-column:2;justify-self:start}.stage-line{grid-template-columns:1fr}.login-panel{padding:14px}.login-card{padding:25px 20px}.login-card h2{font-size:28px}.metric-grid{gap:8px}.metric small{font-size:10px}}
/* Unified PHP web navigation + existing Customer Central modules */
.web-nav-group{margin-top:10px}.web-nav-group summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 10px 6px;color:#706c64;font-size:9px;font-weight:800;letter-spacing:.18em;cursor:pointer;user-select:none}.web-nav-group summary::-webkit-details-marker{display:none}.web-nav-group summary i{font-style:normal;font-size:13px;transition:.2s}.web-nav-group[open] summary i{transform:rotate(180deg)}.web-nav-group .nav{padding-top:2px}.nav-count{margin-left:auto;min-width:21px;height:21px;padding:0 6px;border-radius:99px;background:var(--gold);color:#17140a;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:900}.ticket-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ticket-card{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;transition:.2s}.ticket-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.ticket-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.ticket-card h3{margin:5px 0 7px;font-size:17px}.ticket-card p{margin:0;color:var(--muted)}.ticket-card-meta{display:flex;gap:12px;flex-wrap:wrap;border-top:1px solid #eeeae2;margin-top:14px;padding-top:12px;font-size:11px;color:var(--muted)}.priority-urgent{color:#9b2c2c}.priority-high{color:#9a581c}.ticket-status{display:inline-flex;border-radius:99px;padding:5px 9px;background:#eeeae2;font-size:10px;font-weight:800}.ticket-status.status-raised,.ticket-status.status-pending,.ticket-status.status-escalated{background:#fff0c7;color:#795a00}.ticket-status.status-processing,.ticket-status.status-approved{background:#e4ecf8;color:#2e527b}.ticket-status.status-resolved,.ticket-status.status-closed{background:#e4f2e8;color:#27663f}.ticket-status.status-rejected,.ticket-status.status-on_hold{background:#f7e5de;color:#8c4b34}.ticket-detail-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:18px}.history-list{display:grid;gap:0}.history-item{display:grid;grid-template-columns:12px minmax(0,1fr);gap:10px;padding:12px 0;border-bottom:1px solid #eeeae2}.history-item i{width:8px;height:8px;border-radius:50%;background:var(--gold);margin-top:6px}.history-item small{display:block;color:var(--muted)}.attachment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.attachment-card{border:1px solid var(--line);background:#faf8f3;border-radius:10px;padding:12px;min-width:0}.attachment-card b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feedback-grid,.notification-list,.stock-grid{display:grid;gap:12px}.feedback-card,.notification-card,.stock-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.notification-card.unread{border-left:4px solid var(--gold)}.notification-card-head,.feedback-card-head,.stock-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.notification-card p,.feedback-card p,.stock-card p{color:var(--muted);margin:6px 0 0}.rating{letter-spacing:.1em;color:#b18700}.form-note{background:#f4f0e6;border:1px solid #e1d9c8;border-radius:10px;padding:12px;color:#6d665b}.stock-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stock-card strong{font-size:25px}.stock-table{width:100%;border-collapse:collapse}.stock-table th,.stock-table td{padding:11px 9px;border-bottom:1px solid #eeeae2;text-align:left}.stock-table th{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
@media(max-width:900px){.ticket-detail-grid{grid-template-columns:1fr}.stock-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.ticket-grid{grid-template-columns:1fr}.attachment-grid{grid-template-columns:1fr}.stock-grid{grid-template-columns:1fr}.ticket-card-head,.notification-card-head,.feedback-card-head,.stock-card-head{flex-direction:column}.stock-table{min-width:680px}.table-scroll{overflow:auto}}
.feature-grid>a{background:#fff;padding:20px;display:block}.feature-grid>a:hover{background:#fbf9f4}.feature-grid>a p{color:var(--muted);margin:6px 0 0}
.panel label{display:grid;gap:6px;font-size:11px;font-weight:700;color:#514d46}.panel label input,.panel label select,.panel label textarea{border:1px solid #dcd6ca;background:#fff;border-radius:9px;min-height:42px;padding:9px 11px;outline:none;width:100%}.panel label textarea{resize:vertical}

/* Module 2 — Planning & Tasks */
.task-control-hero,.task-detail-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;background:var(--ink);color:#fff;border-radius:18px;padding:24px;margin-bottom:16px}.task-control-hero h2,.task-detail-hero h2{font-size:30px;letter-spacing:-.04em;margin:5px 0}.task-control-hero p,.task-detail-hero p{margin:0;color:#aaa69d}.project-switcher{min-width:290px;color:#d8d3c8;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.project-switcher select{margin-top:7px;width:100%;min-height:44px;border-radius:9px;border:1px solid #343431;background:#151514;color:#fff;padding:8px 11px}.task-metrics{margin-bottom:8px}.task-view-tabs{margin-bottom:14px}.task-filters{display:grid;grid-template-columns:minmax(280px,1fr) repeat(3,minmax(150px,190px)) auto;gap:8px;align-items:center}.task-table-panel{padding:0;overflow:hidden}.task-table-panel .panel-head{padding:20px 20px 12px}.task-table{width:100%;min-width:1180px;border-collapse:collapse}.task-table th,.task-table td{padding:10px 11px;border-top:1px solid #ece8df;text-align:left;vertical-align:middle}.task-table th{background:#faf8f3;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.task-table td{font-size:11px}.task-name{display:flex;align-items:flex-start;gap:8px;padding-left:calc(var(--depth) * 18px);min-width:260px}.task-name b{display:block;font-size:12px;color:var(--ink)}.task-name small{display:block;color:var(--muted);margin-top:3px;max-width:270px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-group-icon{color:#a68000;font-size:12px}.task-progress-cell{display:grid;grid-template-columns:90px 36px;gap:6px;align-items:center}.task-progress-cell small{grid-column:1/-1;color:var(--muted)}.btn.tiny{min-height:31px;padding:6px 9px;font-size:10px}.block{display:block}.text-danger{color:#a13030!important;font-weight:800}.gantt{overflow:auto;border:1px solid var(--line);border-radius:12px}.gantt-head,.gantt-row{display:grid;grid-template-columns:270px minmax(720px,1fr);min-width:1000px}.gantt-head{background:#faf8f3;border-bottom:1px solid var(--line);font-size:10px;font-weight:800;color:var(--muted)}.gantt-head>span,.gantt-head>div,.gantt-row>span,.gantt-track{padding:10px 12px}.gantt-head>div{display:flex;justify-content:space-between}.gantt-row{border-bottom:1px solid #eeeae2;color:var(--ink)}.gantt-row:hover{background:#fcfaf5}.gantt-row>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-track{position:relative;min-height:38px;background-image:linear-gradient(to right,rgba(0,0,0,.04) 1px,transparent 1px);background-size:8.333% 100%}.gantt-bar{position:absolute;top:11px;height:16px;background:#ddd7c9;border-radius:4px;overflow:hidden;min-width:3px}.gantt-bar em{display:block;height:100%;background:var(--gold);border-radius:4px}.task-breadcrumb{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:11px;margin-bottom:10px}.task-breadcrumb a{color:var(--ink);font-weight:800}.task-detail-hero{align-items:center}.task-hero-progress{text-align:right}.task-hero-progress strong{display:block;font-size:42px;line-height:1;color:var(--gold)}.task-hero-progress span{display:block;color:#aaa69d;margin-top:7px}.task-detail-grid{align-items:start}.progress-history{display:grid;gap:10px}.progress-entry{border:1px solid var(--line);border-radius:11px;padding:14px;background:#fff}.progress-entry-head{display:flex;justify-content:space-between;gap:12px}.progress-entry-head small{display:block;color:var(--muted);margin-top:3px}.progress-entry-head>span{font-weight:800;color:#6f5800}.progress-entry p{margin:10px 0 0;color:#4f4a42}.measurement-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.measurement-list span{padding:5px 8px;background:#f4f0e6;border-radius:99px;font-size:10px}.comment-form{display:grid;gap:9px;margin-bottom:16px}.comment-form textarea{border:1px solid #dcd6ca;border-radius:10px;padding:11px;resize:vertical}.comment-form .btn{justify-self:end}.comment-list{display:grid;gap:12px}.comment-list article{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px}.comment-list article small{display:block;color:var(--muted);margin-top:2px}.comment-list article p{margin:7px 0 0;color:#4f4a42}.dependency-list{display:grid;gap:8px}.dependency-list>div{border:1px solid var(--line);border-radius:9px;padding:11px}.dependency-list b,.dependency-list span{display:block}.dependency-list span{font-size:10px;color:var(--muted);margin-top:3px}.resource-cards{display:grid;gap:10px}.resource-cards article{border:1px solid var(--line);border-radius:11px;padding:13px}.resource-cards article>div span,.resource-cards article>div b{display:block}.resource-cards article>div span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.resource-cards dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 0}.resource-cards dl div{background:#faf8f3;border-radius:8px;padding:8px}.resource-cards dt{font-size:9px;color:var(--muted)}.resource-cards dd{margin:3px 0 0;font-weight:800}.danger-panel{border-color:#e6c8c0;background:#fffaf8;display:flex;align-items:center;justify-content:space-between;gap:18px}.danger-panel p{margin:5px 0 0;color:var(--muted)}.measurement-fieldset{border:1px solid var(--line);border-radius:10px;padding:12px;margin:14px 0}.measurement-fieldset legend{padding:0 6px;font-size:10px;font-weight:800;color:var(--muted)}.measurement-row{display:grid;grid-template-columns:1.6fr repeat(5,.7fr);gap:6px;margin-bottom:6px}.measurement-row input{min-width:0;border:1px solid #dcd6ca;border-radius:8px;padding:8px}.dependency-picker{display:grid;gap:5px;max-height:50vh;overflow:auto;margin-top:10px}.dependency-pick-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 90px;gap:8px;align-items:center;border-bottom:1px solid #eeeae2;padding:7px 2px}.dependency-pick-row select,.dependency-pick-row>input{min-height:38px;border:1px solid #dcd6ca;border-radius:8px;padding:6px 8px}.status-not_started{background:#eceff3!important;color:#4a5560!important}.status-ongoing{background:#e4ecf8!important;color:#2e527b!important}.status-needs_revision{background:#fff0c7!important;color:#795a00!important}.status-cancelled{background:#f7e5de!important;color:#8c4b34!important}.status-completed{background:#e4f2e8!important;color:#27663f!important}
@media(max-width:1100px){.task-filters{grid-template-columns:1fr 1fr 1fr}.task-filters .searchbox{grid-column:1/-1}.task-filters .btn{width:100%}.task-detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){.task-control-hero,.task-detail-hero{align-items:flex-start;flex-direction:column;padding:20px 17px}.task-control-hero h2,.task-detail-hero h2{font-size:25px}.project-switcher{min-width:0;width:100%}.task-hero-progress{text-align:left}.task-hero-progress strong{font-size:34px}.task-filters{grid-template-columns:1fr}.task-filters .searchbox{grid-column:auto}.task-table-panel{margin-left:-12px;margin-right:-12px;border-radius:0}.progress-entry-head{flex-direction:column}.danger-panel{align-items:flex-start;flex-direction:column}.measurement-row{grid-template-columns:1fr 1fr}.measurement-row input:first-child{grid-column:1/-1}.dependency-pick-row{grid-template-columns:1fr 72px 72px}.dependency-pick-row .check-row{min-width:0}.dependency-pick-row .check-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resource-cards dl{grid-template-columns:1fr 1fr}}
.task-action-grid{display:flex;flex-wrap:wrap;gap:8px}.task-action-grid form{margin:0}.task-action-grid .btn{white-space:nowrap}
@media(max-width:520px){.task-action-grid{display:grid;grid-template-columns:1fr 1fr}.task-action-grid .btn,.task-action-grid form,.task-action-grid form .btn{width:100%}}

/* Module 3 — Daily Progress Reports */
.filterbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.filterbar select,.filterbar input,.inline-upload input,.stack-sm textarea{min-height:40px;border:1px solid #dcd6ca;border-radius:9px;padding:8px 10px;background:#fff}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th,.data-table td{padding:11px 10px;border-top:1px solid #eeeae2;text-align:left;vertical-align:top}.data-table th{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#faf8f3}.data-table small{display:block;color:var(--muted);margin-top:3px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px}.empty-state{text-align:center;padding:44px 20px}.empty-state h3{margin:0 0 6px}.empty-state p,.empty-mini{color:var(--muted)}.repeat-rows{display:grid;gap:8px}.repeat-row{display:grid;grid-template-columns:1.4fr 1.2fr repeat(3,.8fr);gap:7px}.repeat-row input{min-width:0;border:1px solid #dcd6ca;border-radius:9px;padding:9px}.sticky-actions{position:sticky;bottom:14px;display:flex;justify-content:flex-end;gap:8px;background:rgba(247,245,239,.94);border:1px solid var(--line);border-radius:12px;padding:10px;backdrop-filter:blur(10px);z-index:20}.stack-lg{display:grid;gap:16px}.stack-sm{display:grid;gap:8px}.inline-upload{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px}.status-draft{background:#eceff3!important;color:#4a5560!important}.status-submitted{background:#fff0c7!important;color:#795a00!important}.status-approved{background:#e4f2e8!important;color:#27663f!important}.status-rejected{background:#f7e5de!important;color:#8c4b34!important}
@media(max-width:900px){.repeat-row{grid-template-columns:1fr 1fr}.repeat-row input:first-child{grid-column:1/-1}}
@media(max-width:640px){.filterbar>*{width:100%}.repeat-row{grid-template-columns:1fr}.repeat-row input:first-child{grid-column:auto}.sticky-actions .btn{flex:1}.detail-grid{grid-template-columns:1fr}}
/* Module 4 — Quality / Inspections status accents */
.status-pass,.status-approved{background:#e4f2e8;color:#27663f}.status-fail,.status-rejected{background:#f7e5de;color:#8c342f}.status-submitted{background:#e7e9f4;color:#3f4e7d}.status-draft,.status-pending,.status-conditional{background:#f2ead1;color:#725c19}.status-na{background:#eceff2;color:#5d6269}

/* ===== Nakhsha Central dynamic dashboard + detail-page polish ===== */
html{scroll-behavior:smooth}body{overflow-x:hidden}.content{animation:nccWebPageIn .32s cubic-bezier(.2,.72,.2,1) both}.panel,.metric,.project-card,.hero-card,.project-hero{transition:transform .24s cubic-bezier(.2,.72,.2,1),box-shadow .24s ease,border-color .24s ease}.metric:hover,.web-chart:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(20,18,14,.075);border-color:#d8d0bf}.metric{animation:nccWebRise .38s cubic-bezier(.2,.72,.2,1) both}.metric:nth-child(2){animation-delay:.03s}.metric:nth-child(3){animation-delay:.06s}.metric:nth-child(4){animation-delay:.09s}
.web-analytics-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin:18px 0}.web-chart{margin:0!important;overflow:hidden;padding:0!important;min-height:310px}.web-chart-wide{grid-column:1/-1;min-height:338px}.web-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px 7px}.web-chart-head h2{font-size:20px;letter-spacing:-.035em;margin:4px 0 0}.web-chart-head p{font-size:11px;color:var(--muted);margin:5px 0 0;max-width:620px}.live-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #e3ded3;background:#fbfaf6;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:900;letter-spacing:.08em;color:#6b675f}.live-chip i{width:6px;height:6px;border-radius:50%;background:#2b8a57;box-shadow:0 0 0 4px rgba(43,138,87,.1);animation:nccWebPulse 1.8s ease-in-out infinite}.web-chart-stage{height:252px;padding:4px 12px 16px}.web-chart-stage.compact{height:238px}.web-chart-stage.tall{height:285px}.web-canvas-chart{display:block;width:100%;height:100%}

/* Consistent detail views: labels line up, content wraps and cards breathe. */
.project-hero,.task-detail-hero,.hero-card{animation:nccWebRise .42s cubic-bezier(.2,.72,.2,1) both}.two-col,.detail-grid,.ticket-detail-grid{align-items:start;gap:16px!important}.details-grid,.detail-list{min-width:0}.detail-list{display:grid!important;grid-template-columns:minmax(130px,170px) minmax(0,1fr)!important;gap:0!important;padding:2px 0!important}.detail-list dt,.detail-list dd{min-width:0;padding:11px 2px;border-bottom:1px solid #eeeae2}.detail-list dt{font-size:9px!important;line-height:1.45;letter-spacing:.09em}.detail-list dd{margin:0!important;font-size:12px;line-height:1.55;overflow-wrap:anywhere}.detail-list dt:last-of-type,.detail-list dd:last-of-type{border-bottom:0}.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.details-grid>div{min-width:0;padding:13px 14px;border:1px solid #ece7dc;border-radius:10px;background:#fcfbf8}.details-grid .span-2{grid-column:1/-1}.details-grid b,.details-grid strong,.details-grid p{overflow-wrap:anywhere}.panel{overflow:hidden}.panel-head{padding-bottom:15px;border-bottom:1px solid #eeeae2}.panel>.detail-list,.panel>.details-grid,.panel>.timeline,.panel>.history-list,.panel>.activity-list,.panel>.file-list,.panel>.resource-cards,.panel>.comment-list,.panel>.progress-history,.panel>.dependency-list{margin-top:0}.table-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.data-table th{position:sticky;top:0;z-index:2}.file-row,.activity-row,.history-item,.team-row,.progress-entry{transition:background .18s ease,transform .18s ease}.file-row:hover,.activity-row:hover,.history-item:hover,.team-row:hover,.progress-entry:hover{background:#fffdf5;transform:translateX(2px)}

/* Refined motion without making ERP screens feel slow. */
.panel{animation:nccWebRise .36s cubic-bezier(.2,.72,.2,1) both}.panel:nth-of-type(2){animation-delay:.035s}.panel:nth-of-type(3){animation-delay:.07s}.panel:nth-of-type(4){animation-delay:.105s}.btn,.nav-link,.workspace-tabs a,.feature-grid>a,.feature-grid>div{transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}.btn:hover{transform:translateY(-1px)}.feature-grid>a{background:#fff;padding:20px}.feature-grid>a:hover{background:#fffdf5;transform:translateY(-1px)}body.ncc-web-leaving .page{opacity:.76;transform:translateY(3px);transition:opacity .13s ease,transform .13s ease}
@keyframes nccWebPageIn{from{opacity:0}to{opacity:1}}@keyframes nccWebRise{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes nccWebPulse{0%,100%{opacity:1}50%{opacity:.42}}
@media(max-width:1050px){.web-analytics-grid{grid-template-columns:1fr}.web-chart-wide{grid-column:auto}.web-chart-stage,.web-chart-stage.compact,.web-chart-stage.tall{height:235px}}
@media(max-width:700px){.details-grid{grid-template-columns:1fr}.details-grid .span-2{grid-column:auto}.detail-list{grid-template-columns:1fr!important}.detail-list dt{padding:10px 2px 2px;border-bottom:0}.detail-list dd{padding:2px 2px 10px}.web-chart-head{padding:15px 15px 5px}.web-chart-stage,.web-chart-stage.compact,.web-chart-stage.tall{height:220px}.web-chart{min-height:278px}.hero-card,.project-hero{align-items:flex-start;flex-direction:column}.metric-grid{gap:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.content,.metric,.panel,.hero-card,.project-hero,.live-chip i{animation:none!important}.panel,.metric,.project-card,.hero-card,.project-hero,.btn,.nav-link,.workspace-tabs a,.feature-grid>a{transition:none!important}}


/* NCC smooth Add/Edit dialog transitions — removes white/native dialog flash */
@keyframes nccWebDialogOpen{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@keyframes nccWebDialogClose{from{opacity:1;transform:none}to{opacity:0;transform:translateY(8px) scale(.99)}}
@keyframes nccWebBackdropOpen{from{background:rgba(10,10,9,0);backdrop-filter:blur(0)}to{background:rgba(10,10,9,.56);backdrop-filter:blur(3px)}}
@keyframes nccWebBackdropClose{from{background:rgba(10,10,9,.56);backdrop-filter:blur(3px)}to{background:rgba(10,10,9,0);backdrop-filter:blur(0)}}
dialog.dialog[open],dialog[open].dialog-wide{animation:nccWebDialogOpen .26s cubic-bezier(.2,.72,.2,1) both}
dialog.dialog[open]::backdrop,dialog[open].dialog-wide::backdrop{animation:nccWebBackdropOpen .24s ease both}
dialog.ncc-dialog-closing{animation:nccWebDialogClose .16s ease both!important}
dialog.ncc-dialog-closing::backdrop{animation:nccWebBackdropClose .16s ease both!important}
[data-dialog-open]{will-change:transform}.btn:active{transform:translateY(0) scale(.985)}
@media(prefers-reduced-motion:reduce){dialog.dialog[open],dialog.dialog[open]::backdrop,dialog.ncc-dialog-closing,dialog.ncc-dialog-closing::backdrop{animation:none!important}}
