/* Responsive presentation shared by all modules. */
:root{--line:#e5eaf2;--muted:#64748b;--blue:#245ce5;font-size:16px;color:#172b48;background:#f5f7fb}
aside{width:248px;background:#fff;color:#334155;border-right:1px solid var(--line);padding:26px 16px;overflow:hidden}.brand{color:#162b49;font-size:25px;padding:0 10px 24px}.brandmark{color:#fff;flex-shrink:0}nav{overflow-y:auto;flex:1;scrollbar-width:thin;padding:8px 0}nav button{color:#52627b;font-size:14px;font-weight:500;padding:12px 14px;margin-bottom:4px;border-radius:10px}nav button:hover{background:#f2f6fc;color:#245ce5}nav button.active{background:#eaf0ff;color:#245ce5;box-shadow:inset 3px 0 #245ce5}.navicon{opacity:.85}.sidebottom{padding-top:14px;margin-top:0;border-top:1px solid var(--line)}.profile{color:#233957;padding:12px 10px}.avatar{background:#edf2ff;color:#245ce5}.sidehealth{display:none}.workspace,.navlabel{display:none}header{height:80px;position:sticky;top:0;z-index:15;padding:0 32px;background:#ffffffed;backdrop-filter:blur(12px)}.headeractions{gap:14px}.breadcrumb strong{font-size:17px;font-weight:600}.connectionstatus{border:1px solid var(--line);background:#f8fafc;color:#475569;padding:8px 12px;border-radius:99px;font-size:12px;display:flex;align-items:center;gap:7px}.statusdot{width:7px;height:7px;border-radius:50%;background:#d69b30;flex-shrink:0}.statusdot.online{background:#16956b}.eyebrow{display:none}main{padding:30px 32px;max-width:1800px}h1{font-size:30px;color:#172b48;font-weight:700;letter-spacing:-.8px}h2{font-size:18px;font-weight:650;margin:0 0 12px}p{font-size:14px;color:#64748b;line-height:1.7}.pagehead{align-items:center;margin-bottom:24px}.pagehead>div{min-width:0}.pagehead>.btn{flex-shrink:0}.card{border-radius:14px;box-shadow:0 3px 16px #20304a04}.detailbody{padding:25px;min-width:0}.detailbody .field{margin-bottom:16px}.field label{font-size:13px;color:#465974;font-weight:550;margin-bottom:7px}.field input,.field select,.field textarea{min-height:46px;padding:12px 13px;border-radius:9px;line-height:1.4}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #a9c2ff;border-color:#245ce5}.field textarea{min-height:140px;font-family:ui-monospace,monospace;resize:vertical}.fields{gap:18px}.btn{font-size:13px;min-height:42px;border-radius:9px;padding:10px 16px;line-height:1.4}.btn:disabled{cursor:not-allowed;opacity:.5}.primary{box-shadow:0 3px 8px #245ce522}.actions{gap:10px}.spaced{margin-top:20px}.kv{gap:18px;align-items:start;font-size:14px}.kv span{flex-shrink:0;max-width:45%}.kv strong{min-width:0;text-align:right;overflow-wrap:anywhere}.help,.note{font-size:13px;line-height:1.75}.note{background:#eef4fc;border:1px solid #dce8f8;color:#47607e;padding:16px 19px;border-radius:11px;margin:18px 0}.callout{line-height:1.7}.detailgrid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:340px;overflow:auto;margin:20px 0}.checks label{font-size:13px;display:flex;align-items:center;gap:8px;overflow-wrap:anywhere}.checks input{accent-color:#245ce5;width:17px;height:17px;flex-shrink:0}.mono{font:13px/1.7 ui-monospace,monospace;overflow-wrap:anywhere}.error{color:#bc3541;margin-top:16px;line-height:1.6}dialog{width:min(720px,calc(100% - 32px));max-height:90dvh;overflow:auto;border-radius:18px}.modalhead{align-items:center;padding:22px 26px}.modalhead h2{margin:0;font-size:22px}#modalBody{padding:24px 26px}.modalfoot{padding:18px 26px;position:sticky;bottom:0}.tablewrap{max-width:100%}table{white-space:normal;min-width:640px}th{font-size:11px;padding:15px 20px;white-space:nowrap}td{font-size:14px;padding:18px 20px;line-height:1.6;overflow-wrap:anywhere;max-width:460px}td .btn{margin:3px}td small{font-size:12px;color:#75869b}.empty{padding:45px 20px}.badge{font-size:12px;border-radius:99px;padding:5px 9px}.tabs{gap:8px}.tabs button{padding:12px 16px;border-radius:9px 9px 0 0;font-size:14px}.tabs button.active{background:#edf3ff;font-weight:600}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboardstats{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{padding:22px;min-width:0}.stat-top{font-size:14px}.statvalue{font-size:32px}.historygrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.metricchart{width:100%;height:auto}.console{overflow:auto;overflow-wrap:anywhere;max-height:560px;min-height:220px;font-size:13px}.connectionbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:22px;font-size:13px;color:#61738c}.connectionbar .btn{margin-left:auto}.inventorysection{margin-top:24px}.inventorysection .sectionhead{border:0;padding:8px 2px 15px}.inventorysection h2{margin-bottom:5px}.workspaceLogo{width:25px;height:25px;object-fit:contain}footer{font-size:12px;padding:18px 32px}.auth aside,.auth header,.auth footer,.auth #scrim{display:none}.auth .shell{margin-left:0}.auth main{min-height:100dvh;display:grid;place-items:center;padding:28px 18px}.authcard{width:min(460px,100%);padding:36px}.authcard h1{font-size:27px;margin:22px 0 10px}.authcard form{display:grid;gap:18px;margin-top:26px}.authcard .btn{width:100%;min-height:47px}.authcard .help{margin-top:16px;text-align:center}.authcard .brandmark{width:42px;height:42px}.authcard .textbtn{font-size:14px}.authcard .field{margin:0}
@media(min-width:1500px){.dashboardstats{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1100px){aside{width:220px}.shell{margin-left:220px}.detailgrid{grid-template-columns:1fr}.historygrid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}header{padding:0 22px}main{padding:26px 22px}}
@media(max-width:760px){aside{width:260px}.shell{margin-left:0}header{height:auto;min-height:70px;gap:10px;flex-wrap:wrap;padding:12px 16px}.headeractions{gap:8px}.headeractions #role{display:none}.breadcrumb strong{font-size:15px}.connectionstatus{font-size:11px;padding:7px 9px}.headeractions .btn{min-height:35px;padding:6px 10px;font-size:12px}main{padding:24px 16px}h1{font-size:26px}.pagehead{align-items:flex-start}.detailbody{padding:20px}.fields{grid-template-columns:1fr}.dashboardstats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:17px}.statvalue{font-size:28px}.stat-top{font-size:13px}.stat p{font-size:12px}.checks{grid-template-columns:1fr}.connectionbar{padding:12px;gap:10px}.connectionbar .btn{margin-left:0}.inventorysection .sectionhead{flex-wrap:wrap}footer{padding:18px 16px}.authcard{padding:28px}.tabs button{padding:12px}.modalhead,#modalBody{padding:20px}.kv{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.company-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}.company-project{padding:24px;min-width:0}.company-project-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.company-project h2{margin:0 0 8px;font-size:22px}.company-project-head p{color:#64748b;margin:0}.company-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.company-counts div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:14px}.company-counts strong{display:block;font-size:24px}.company-counts span{font-size:13px;color:#64748b;text-transform:capitalize}.company-handover{display:grid;grid-template-columns:1fr;gap:7px;margin-top:20px;overflow-wrap:anywhere}.company-handover span{color:#64748b;font-size:13px}.company-handover strong{margin-bottom:8px}.field textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:110px;padding:12px;border:1px solid #cbd5e1;border-radius:9px;font:inherit;background:#fff;color:#0f172a}#modalBody .tablewrap{max-width:100%;overflow-x:auto}@media(max-width:1100px){.company-grid{grid-template-columns:1fr}}@media(max-width:480px){.company-project{padding:16px}.company-project-head{flex-direction:column}.company-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.company-project .actions{display:grid;grid-template-columns:1fr}.company-project .actions button{width:100%}}

/* Visible action feedback survives page refreshes and renders. */
[hidden]{display:none!important}.actionprogress{position:fixed;top:0;left:0;right:0;z-index:2000;background:#1d4ed8;color:white;padding:10px 18px;text-align:center;font-weight:600}.actionprogress:before,.actionbusy:before{content:"";display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin-right:9px;vertical-align:middle;animation:actionspin .8s linear infinite}.actionfeedback{padding:14px 18px;border:1px solid #93c5fd;border-radius:12px;background:#eff6ff;color:#1e3a8a;overflow-wrap:anywhere}.globalfeedback{position:fixed;bottom:22px;left:330px;right:32px;z-index:1100;box-shadow:0 4px 20px #10244622;max-height:30vh;overflow:auto}.actionfeedback.error{background:#fff1f2;border-color:#fda4af;color:#9f1239}.actionfeedback.success{background:#f0fdf4;border-color:#86efac;color:#166534}.actionbusy{cursor:wait!important}#modalFeedback{margin-bottom:16px}@keyframes actionspin{to{transform:rotate(360deg)}}@media(max-width:800px){.globalfeedback{left:16px;right:16px;bottom:16px}}@media(prefers-reduced-motion:reduce){.actionprogress:before,.actionbusy:before{animation:none}}

/* ID rules keep notifications positioned even when their severity changes. */
#actionFeedback{position:fixed;inset:auto 24px 24px auto;z-index:1100;width:min(560px,calc(100vw - 280px));max-height:35dvh;overflow:auto;display:flex;align-items:flex-start;gap:16px;margin:0;padding:16px 18px;box-sizing:border-box;box-shadow:0 8px 32px #172b4826;font-size:14px;line-height:1.6;isolation:isolate}
.feedbackmessage{flex:1;min-width:0;overflow-wrap:anywhere;white-space:pre-wrap}.feedbackclose{flex:0 0 30px;width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:inherit;font-size:24px;line-height:1;cursor:pointer}.feedbackclose:hover{background:#172b4810}.feedbackclose:focus-visible{outline:2px solid currentColor}
#actionProgress{position:fixed;inset:96px 24px auto auto;width:min(380px,calc(100vw - 280px));border-radius:12px;box-sizing:border-box;padding:12px 18px;box-shadow:0 5px 24px #172b4822;overflow-wrap:anywhere;font-size:14px;line-height:1.5;text-align:left}#toast{display:none!important}
#modalFeedback{margin:16px 24px 0;max-width:calc(100% - 48px);overflow-wrap:anywhere}body,main,.shell{min-width:0}.pagehead{flex-wrap:wrap}.pagehead h1{overflow-wrap:anywhere}.kv strong{white-space:normal}.coveragewarning{background:#fff8eb;border-color:#f5d48e;color:#805b14}
@media(max-width:760px){#actionFeedback{inset:auto 16px 16px;width:auto;max-height:40dvh;font-size:13px}#actionProgress{inset:90px 16px auto;width:auto}#modalFeedback{margin:12px 16px 0;max-width:calc(100% - 32px)}}

.inventorytools,.inventorypager{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:14px 0;color:#64748b;font-size:13px}.inventorytools input{width:min(320px,100%);padding:10px 12px;border:1px solid #dce3ec;border-radius:9px;background:#fff;min-width:0}.inventorypager{justify-content:flex-end}.inventorypager>span:first-child{margin-right:auto}.compactinventory{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 20px}.compactinventory summary{cursor:pointer;font-size:17px;font-weight:650;line-height:1.8}.compactinventory summary .badge{float:right;font-weight:400}.compactinventory[open] summary{margin-bottom:14px}.inventorysection td{padding:12px 16px}.inventorysection h2{margin:0}@media(max-width:760px){.inventorytools input{width:100%}.compactinventory{padding:14px}.compactinventory summary{font-size:15px}.compactinventory summary .badge{float:none;margin-left:8px}.inventorypager{justify-content:flex-start}.inventorypager>span:first-child{width:100%;margin:0}}

.inventorycategories{display:flex;flex-wrap:wrap;overflow:visible;margin:24px 0}.inventorycategories [aria-current=page]{background:#245ce5;color:#fff;border-color:#245ce5}.inventorycategories .btn{border-radius:9px}

.paneltools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}.paneltools>.card{padding:20px}.paneltools .btn{flex:1 1 130px}@media(max-width:1100px){.paneltools{grid-template-columns:1fr}}

.project-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.project-summary>div{padding:12px;background:#f6f8fc;border-radius:10px;min-width:0}.project-summary span{display:block;font-size:12px;color:#68778c;margin-bottom:6px}.project-summary strong{font-size:14px;overflow-wrap:anywhere;display:block}@media(max-width:600px){.project-summary{grid-template-columns:1fr}.company-project .actions{display:grid;grid-template-columns:1fr}.company-project .actions button{width:100%}}

#hostingUploadProgress{width:100%;height:12px;margin:12px 0;accent-color:#2563eb}#hostingUploadLabel{margin-top:18px;color:#32557a}#modalBody details{margin:12px 0;padding:12px;border:1px solid #dce5f1;border-radius:12px}#modalBody details summary{cursor:pointer;font-weight:600}#modalBody details[open] summary{margin-bottom:14px}@media(max-width:600px){#modalBody .fields{display:block}#modalBody .field{width:100%}}
