:root{
  --turq:#2A8E92;
  --turq-hover:#237D81;
  --turq-deep:#1B6F72;
  --turq-soft:#E5F1F1;
  --turq-light:#6fd6da;
  --purp:#922A8E;
  --purp-hover:#7E1F7A;
  --purp-soft:#F2E2F1;
  --purp-light:#d58bcc;
  --ink:#111;
  --char:#1E1E1E;
  --text:#28323d;
  --muted:#66717d;
  --faint:#8a949e;
  --line:#d9e0e0;
  --line-soft:#e8eeee;
  --surface:#f4f6f6;
  --paper:#fafbfb;
  --white:#fff;
  --danger:#b83a3a;
  --danger-soft:#fff0ee;
  --warning:#d89b2a;
  --warning-soft:#fff8e8;
  --ok:#2a8e66;
  --ok-soft:#edf8f2;
  --radius:8px;
  --shadow:0 12px 30px rgba(17,24,39,.07);
  --shadow-strong:0 24px 70px rgba(17,24,39,.16);
  --ease:cubic-bezier(.22,1,.36,1);
  --font:Poppins,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-serif:"Cormorant Infant",Georgia,serif;
}

*{box-sizing:border-box}
html{background:var(--surface)}
body{margin:0;font-family:var(--font);background:var(--surface);color:var(--ink);font-size:15px;line-height:1.45}
a{color:var(--turq);text-decoration:none;transition:color 120ms var(--ease),background-color 120ms var(--ease),border-color 120ms var(--ease),box-shadow 120ms var(--ease),transform 120ms var(--ease)}
code{background:#eef3f3;border:1px solid #dbe7e8;border-radius:5px;padding:2px 5px}

.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:
  linear-gradient(115deg,rgba(10,16,20,.92) 0%,rgba(10,16,20,.78) 38%,rgba(10,16,20,.46) 100%),
  radial-gradient(900px 600px at 80% 10%,rgba(146,42,142,.22),transparent),
  radial-gradient(900px 600px at 10% 90%,rgba(42,142,146,.24),transparent),
  url("/tools/images/fifa-rexona-wide.jpg") center/cover no-repeat,#101112;color:#fff}
.auth-card{width:min(460px,100%);background:rgba(255,255,255,.95);color:#111;border:1px solid rgba(255,255,255,.58);border-radius:12px;padding:32px;box-shadow:0 28px 90px rgba(0,0,0,.48);backdrop-filter:blur(8px)}
.auth-logo{width:170px;height:auto;display:block;margin:0 0 24px}
.auth-card h1{margin:4px 0 18px;font-size:32px;line-height:1}
.auth-card p{line-height:1.55}

.shell{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:100vh;transition:grid-template-columns 200ms var(--ease)}
.sidebar{position:sticky;top:0;height:100vh;background:#111;color:#fff;padding:24px 18px;display:flex;flex-direction:column;gap:26px;border-right:1px solid rgba(255,255,255,.08);overflow:auto}
.brand{display:flex;align-items:center;gap:12px;color:#fff;font-weight:700;padding:4px 6px 18px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand img{width:38px;height:auto;display:block}
.brand span{letter-spacing:0;font-size:15px}
.sidebar-toggle{width:100%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.78);min-height:34px;padding:8px 10px;font-size:12px}
.sidebar-toggle:hover{background:rgba(255,255,255,.14);box-shadow:none}
.sidebar nav{display:flex;flex-direction:column;gap:4px}
.sidebar nav a{position:relative;color:rgba(255,255,255,.68);padding:10px 12px;border-radius:8px;font-size:14px;font-weight:600}
.sidebar nav a:hover{background:rgba(255,255,255,.08);color:#fff;transform:translateY(-1px)}
.sidebar nav a.active{background:rgba(111,214,218,.16);color:#fff;box-shadow:inset 3px 0 0 var(--turq-light)}
body.sidebar-collapsed .shell{grid-template-columns:82px minmax(0,1fr)}
body.sidebar-collapsed .sidebar{padding:22px 12px;align-items:center}
body.sidebar-collapsed .brand{justify-content:center;width:100%;padding-bottom:14px}
body.sidebar-collapsed .brand span,
body.sidebar-collapsed .sidebar nav a span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.sidebar-collapsed .sidebar-toggle{width:48px;padding:8px 0;font-size:0}
body.sidebar-collapsed .sidebar-toggle:after{content:"Open";font-size:11px}
body.sidebar-collapsed .sidebar nav{width:100%;align-items:center}
body.sidebar-collapsed .sidebar nav a{width:44px;height:40px;padding:0;display:flex;align-items:center;justify-content:center}
body.sidebar-collapsed .sidebar nav a:after{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.72}
body.sidebar-collapsed .sidebar nav a.active{box-shadow:inset 0 -3px 0 var(--turq-light)}

.main{padding:32px;min-width:0}
.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}
.top-logo{width:138px;height:auto;display:block;margin-left:auto}
.eyebrow{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--turq)}
h1{margin:0;font-size:34px;line-height:1.1;letter-spacing:0}
h2{margin:0 0 14px;font-size:22px;line-height:1.2;letter-spacing:0}
h3{line-height:1.25;letter-spacing:0}
.userbox{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:14px;white-space:nowrap}

.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card,.panel{background:#fff;border:1px solid var(--line-soft);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.card{display:flex;flex-direction:column;min-height:188px;transition:transform 120ms var(--ease),box-shadow 120ms var(--ease),border-color 120ms var(--ease)}
.card:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(17,24,39,.11);border-color:#c9d7d8}
.card h3{margin:0 0 8px;font-size:18px}
.card p,.muted{color:var(--muted);line-height:1.52}
.card p{margin:0 0 16px}
.card .button{margin-top:auto;align-self:flex-start}
.panel{overflow:hidden}

.hero-panel{background:#111;color:#fff;border-color:#111;display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:end}
.hero-panel .eyebrow{color:var(--turq-light)}
.hero-panel p{color:rgba(255,255,255,.72);line-height:1.55}
.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.stat{border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:14px;background:rgba(255,255,255,.05)}
.stat strong{display:block;font-size:22px;line-height:1}
.stat span{display:block;margin-top:6px;color:rgba(255,255,255,.62);font-size:12px}

.button,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;background:var(--turq);color:#fff;font-weight:700;padding:10px 14px;cursor:pointer;min-height:38px;line-height:1.1;transition:background-color 120ms var(--ease),color 120ms var(--ease),box-shadow 120ms var(--ease),transform 120ms var(--ease),border-color 120ms var(--ease)}
.button:hover,button:hover{background:var(--turq-hover);color:#fff;transform:translateY(-1px);box-shadow:0 10px 22px rgba(42,142,146,.18)}
.button.secondary,button.secondary{background:#edf4f5;color:#165c60;border:1px solid #d5e5e6}
.button.secondary:hover,button.secondary:hover{background:#dfeff0;color:#0f4f52;border-color:#bdd8da}
.button.danger,button.danger{background:var(--danger);color:#fff}
.button.small{padding:6px 9px;font-size:12px;min-height:30px}
.link-button{background:transparent;color:var(--turq);padding:0;min-height:auto;font-weight:700;box-shadow:none}
.link-button:hover{background:transparent;color:var(--turq-deep);box-shadow:none;transform:none}

.form-grid{display:grid;gap:14px}
label{display:grid;gap:7px;font-size:13px;font-weight:700;color:#28323d}
input,select,textarea{width:100%;border:1px solid #cfd8df;border-radius:8px;padding:11px 12px;font:inherit;background:#fff;color:var(--text);transition:border-color 120ms var(--ease),box-shadow 120ms var(--ease),background-color 120ms var(--ease)}
textarea{min-height:110px;resize:vertical;line-height:1.45}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--turq);box-shadow:0 0 0 3px rgba(42,142,146,.18)}
.flash{border-radius:8px;padding:12px 14px;margin-bottom:18px;border:1px solid #dbe7e8;background:#fff}
.flash.success{border-color:#b6e4ca;color:var(--ok);background:#f0fbf5}
.flash.error{border-color:#ffd1cc;color:var(--danger);background:#fff5f3}

.table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line-soft);border-radius:8px;overflow:hidden}
.table th,.table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line-soft);font-size:14px}
.table th{background:#f8fafb;color:#53606c;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.table tr:last-child td{border-bottom:0}
.table tbody tr{transition:background-color 120ms var(--ease)}
.table tbody tr:hover{background:#fbfdfd}
.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:18px;align-items:start}
.tool-frame{width:100%;height:72vh;border:1px solid var(--line);border-radius:8px;background:#111}
.tool-frame.tall{height:82vh}
.empty{border:1px dashed #bfccd4;border-radius:8px;padding:24px;background:#fff;color:var(--muted)}

.portal-hero{position:relative;overflow:hidden;background:
  linear-gradient(135deg,rgba(17,17,17,.98),rgba(30,30,30,.96) 48%,rgba(42,142,146,.88)),
  url("/tools/images/studio-desk.jpg") center/cover no-repeat;color:#fff;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:32px;margin-bottom:16px;box-shadow:var(--shadow-strong)}
.portal-hero:after{content:"";position:absolute;inset:auto 0 0;height:4px;background:linear-gradient(90deg,var(--turq),var(--purp))}
.portal-hero-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:28px;align-items:end}
.portal-hero h2{font-size:36px;line-height:1.05;max-width:760px;margin:0 0 12px}
.portal-hero p{max-width:740px;color:rgba(255,255,255,.76);margin:0;line-height:1.58}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.portal-hero .button.secondary{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.2);color:#fff}
.portal-hero .button.secondary:hover{background:rgba(255,255,255,.18)}
.portal-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.summary-tile{border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:14px;background:rgba(255,255,255,.07);backdrop-filter:blur(5px)}
.summary-tile span{display:block;color:rgba(255,255,255,.62);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}
.summary-tile strong{display:block;font-size:24px;line-height:1.1;margin-top:7px;color:#fff}
.summary-tile.wide{grid-column:1/-1}
.portal-priority-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.priority-card{background:#fff;border:1px solid var(--line-soft);border-radius:8px;padding:16px;box-shadow:var(--shadow);transition:transform 120ms var(--ease),box-shadow 120ms var(--ease),border-color 120ms var(--ease)}
.priority-card:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(17,24,39,.1);border-color:#cfdede}
.priority-card span{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.priority-card strong{display:block;margin-top:8px;font-size:27px;line-height:1;color:var(--ink)}
.priority-card p{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.4}
.priority-card.attention{border-color:#f1d5d1;background:linear-gradient(180deg,#fff,#fff8f7)}
.priority-card.money strong{font-size:22px}
.portal-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:18px 0 12px}
.portal-section-head h2{margin:0}
.portal-section-head p{margin:4px 0 0;color:var(--muted);max-width:720px}
.portal-card.featured{background:linear-gradient(180deg,#fff,#f8fcfc);border-color:#cde2e3}
.card-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}

.dashboard-board{background:#fff;border:1px solid var(--line-soft);border-radius:18px;padding:18px;box-shadow:var(--shadow);margin-bottom:18px;animation:panelIn 320ms var(--ease) both}
.dashboard-hero{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;align-items:stretch;margin-bottom:14px}
.dashboard-hero>div:first-child{position:relative;overflow:hidden;border-radius:14px;padding:28px;background:
  linear-gradient(135deg,rgba(17,17,17,.98),rgba(30,30,30,.96) 48%,rgba(42,142,146,.9)),
  url("/tools/images/studio-desk.jpg") center/cover no-repeat;color:#fff}
.dashboard-hero h2{font-size:34px;line-height:1.06;margin:0 0 10px;max-width:760px}
.dashboard-hero p{max-width:760px;color:rgba(255,255,255,.76);margin:0;line-height:1.56}
.dashboard-hero .eyebrow{color:var(--turq-light)}
.dashboard-hero .button.secondary{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);color:#fff}
.hero-metric-card{border-radius:14px;padding:22px;background:linear-gradient(180deg,#f8fcfc,#edf6f6);border:1px solid #cde3e4;display:flex;flex-direction:column;justify-content:center}
.hero-metric-card span,.hero-metric-card small{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.hero-metric-card strong{display:block;margin:12px 0;font-size:34px;line-height:1;color:var(--turq-deep)}
.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.metric-card{border:1px solid var(--line-soft);border-radius:14px;background:#fff;padding:16px;min-height:128px;box-shadow:0 10px 24px rgba(17,24,39,.055);transition:transform 120ms var(--ease),box-shadow 120ms var(--ease),border-color 120ms var(--ease)}
.metric-card:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(17,24,39,.1);border-color:#cbdadb}
.metric-card.primary{background:linear-gradient(135deg,var(--turq-deep),var(--turq));color:#fff;border-color:transparent}
.metric-card.warn{background:linear-gradient(180deg,#fff,#fff8f7);border-color:#f1d5d1}
.metric-card span,.metric-card small{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.metric-card.primary span,.metric-card.primary small{color:rgba(255,255,255,.74)}
.metric-card strong{display:block;margin:10px 0;font-size:34px;line-height:1}
.metric-card.warn strong{color:var(--danger)}
.dashboard-visual-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:12px}
.viz-panel{border:1px solid var(--line-soft);border-radius:14px;background:#fff;padding:16px;min-height:230px;box-shadow:0 10px 24px rgba(17,24,39,.055);transition:transform 120ms var(--ease),box-shadow 120ms var(--ease)}
.viz-panel:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(17,24,39,.1)}
.viz-panel.span-2{grid-column:span 2}
.viz-panel.dark{background:linear-gradient(135deg,#111,#1E1E1E 52%,#172f31);color:#fff;border-color:#1f3234}
.viz-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.viz-head h3{margin:0;font-size:18px}
.viz-head.compact{margin-bottom:12px}
.column-chart{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;align-items:end;height:190px;padding-top:16px}
.column{height:100%;display:grid;grid-template-rows:1fr auto auto;gap:7px;text-align:center;color:var(--muted);font-size:11px;font-weight:700}
.column i{align-self:end;display:block;height:var(--h);min-height:12px;border-radius:999px 999px 7px 7px;background:linear-gradient(180deg,var(--turq),var(--purp));box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);animation:barGrow 320ms var(--ease) both}
.column:nth-child(even) i{background:linear-gradient(180deg,var(--turq-light),var(--turq-deep))}
.column b{color:var(--ink);font-size:13px}
.dashboard-donut{width:148px;height:148px;margin:8px auto 14px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--turq) 0 var(--a), var(--purp) var(--a) var(--b), var(--danger) var(--b) var(--c), #e8eeee var(--c) 100%);position:relative}
.dashboard-donut:after{content:"";position:absolute;inset:28px;border-radius:50%;background:#fff}
.dashboard-donut strong,.dashboard-donut span{position:relative;z-index:1;display:block;text-align:center}
.dashboard-donut strong{font-size:34px;line-height:1}
.dashboard-donut span{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-top:34px}
.mini-legend{display:grid;gap:8px;color:var(--muted);font-size:12px}
.mini-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px}
.mini-legend .ok{background:var(--turq)}
.mini-legend .wait{background:var(--purp)}
.mini-legend .risk{background:var(--danger)}
.pulse-line{display:flex;align-items:center;gap:8px;height:92px;margin:12px 0 18px}
.pulse-line i{flex:1;display:block;border-radius:999px;background:linear-gradient(180deg,var(--turq-light),var(--purp-light));animation:barGrow 320ms var(--ease) both}
.money-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid rgba(255,255,255,.12);padding:10px 0;color:rgba(255,255,255,.7)}
.money-row strong{color:#fff}
.task-list{display:grid;gap:10px}
.task-list a{display:block;border:1px solid var(--line-soft);border-radius:12px;padding:12px;background:#f8fbfb;color:var(--ink)}
.task-list a:hover{transform:translateY(-1px);border-color:#cbdadb;background:#fff}
.task-list strong,.task-list span{display:block}
.task-list span{margin-top:4px;color:var(--muted);font-size:12px}
@keyframes panelIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes barGrow{from{transform:scaleY(.72);transform-origin:bottom;opacity:.68}to{transform:scaleY(1);transform-origin:bottom;opacity:1}}

.pm-hero{position:relative;overflow:hidden;background:
  linear-gradient(135deg,#111 0%,#1E1E1E 52%,#1b6f72 100%);color:#fff;border-radius:8px;padding:28px;margin-bottom:16px;display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:24px;align-items:center;box-shadow:var(--shadow-strong)}
.pm-hero:after{content:"";position:absolute;inset:auto 0 0;height:4px;background:linear-gradient(90deg,var(--turq-light),var(--purp-light))}
.pm-hero h2{font-size:32px;line-height:1.08;margin:0 0 10px;max-width:820px}
.pm-hero p{color:rgba(255,255,255,.72);line-height:1.55;max-width:820px}
.invoice-clock{border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:18px;text-align:center;background:rgba(255,255,255,.07);backdrop-filter:blur(5px)}
.invoice-clock span,.invoice-clock small{display:block;color:rgba(255,255,255,.62);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.invoice-clock strong{display:block;font-size:58px;line-height:1;color:var(--turq-light);margin:8px 0}
.updates-hero{background:linear-gradient(135deg,#101112 0%,#17212b 56%,#2A8E92 100%)}

.pm-priority-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.pm-priority-item{position:relative;background:#fff;border:1px solid var(--line-soft);border-radius:8px;padding:16px;box-shadow:var(--shadow)}
.pm-priority-item:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:99px;background:var(--turq)}
.pm-priority-item.warn:before{background:var(--danger)}
.pm-priority-item.money:before{background:var(--purp)}
.pm-priority-item span{display:block;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.pm-priority-item strong{display:block;font-size:25px;margin-top:8px}
.pm-priority-item p{margin:7px 0 0;color:var(--muted);font-size:13px}
.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.kpi{background:#fff;border:1px solid var(--line-soft);border-radius:8px;padding:16px;box-shadow:var(--shadow);transition:transform 120ms var(--ease),box-shadow 120ms var(--ease),border-color 120ms var(--ease)}
.kpi:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(17,24,39,.1);border-color:#cfdede}
.kpi span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}
.kpi strong{display:block;font-size:28px;line-height:1.1;margin-top:8px}
.kpi.warn{background:linear-gradient(180deg,#fff,#fff8f7);border-color:#f1d5d1}
.kpi.warn strong{color:var(--danger)}
.kpi.money strong{font-size:22px}
.pm-viz-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}
.donut-wrap{display:flex;gap:16px;align-items:center}
.donut{width:118px;height:118px;border-radius:50%;background:conic-gradient(var(--ok) 0 var(--a), var(--purp) var(--a) var(--b), var(--turq) var(--b) var(--c), #dfe7eb var(--c) 100%);position:relative;flex:0 0 auto;box-shadow:inset 0 0 0 1px rgba(17,24,39,.04)}
.donut:after{content:"";position:absolute;inset:22px;background:#fff;border-radius:50%}
.legend{display:grid;gap:8px;font-size:12px;color:var(--muted)}
.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.legend .ok{background:var(--ok)}
.legend .wait{background:var(--purp)}
.legend .review{background:var(--turq)}
.bar-list{display:grid;gap:10px}
.bar-row{display:grid;grid-template-columns:92px 1fr 28px;gap:8px;align-items:center;font-size:12px}
.bar-row span{color:#28323d;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-row div{height:9px;background:#eef3f3;border-radius:99px;overflow:hidden}
.bar-row i{display:block;height:100%;background:linear-gradient(90deg,var(--turq),var(--purp))}
.bar-row b{text-align:right;color:var(--muted)}
.pm-split{margin-bottom:16px}
.table-scroll{overflow:auto;max-width:100%}
.table.compact th,.table.compact td{padding:10px 12px;font-size:13px;vertical-align:top}
.tag{display:inline-flex;align-items:center;border-radius:99px;background:#edf4f5;color:#165c60;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.2}
.status-pill{display:inline-flex;border-radius:99px;background:#f1f3f5;color:#394450;padding:4px 8px;font-size:11px;font-weight:700;white-space:nowrap}
.status-pill.attention{background:#fff5f3;color:var(--danger);border:1px solid #ffd1cc}
.mini-progress{width:90px;height:7px;background:#eef3f3;border-radius:99px;overflow:hidden;margin-bottom:4px}
.mini-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--turq),var(--turq-light))}
.actions-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.actions-inline.space-between{justify-content:space-between;margin-bottom:10px}
.filter-form{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto auto;gap:10px;align-items:end;margin:10px 0 12px;padding:12px;background:#f8fbfb;border:1px solid var(--line-soft);border-radius:8px}
.bulk-form{margin:0}
.table-actions{margin:0 0 8px}
.pm-version{font-size:12px;font-weight:700;color:var(--turq-light);margin-top:10px}
.table input[type="checkbox"]{width:16px;height:16px}
.form-grid .actions-inline{margin-top:4px}

.update-list{display:grid;gap:12px}
.update-item{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fbfcfd}
.update-item div{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.update-item h3{margin:0 0 6px;font-size:17px}
.update-item p{margin:0 0 10px;color:#394450;line-height:1.45}
.update-item small{display:block;color:var(--muted);font-size:12px;line-height:1.4}

.poepla-workroom{display:grid;gap:18px}
.poepla-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.poepla-intro h2{margin-bottom:8px}
.poepla-stack{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:520px}
.poepla-stack span{display:inline-flex;align-items:center;min-height:30px;border:1px solid #d8e7e8;border-radius:8px;background:#f4fafb;color:#155c61;padding:6px 10px;font-size:12px;font-weight:800;white-space:nowrap}
.poepla-shell{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px;align-items:stretch;height:calc(100vh - 138px);min-height:640px}
.poepla-shell-v2{height:auto;min-height:760px}
.poepla-side,.poepla-main{min-height:0}
.poepla-side{display:flex;flex-direction:column;gap:16px}
.poepla-side h2,.poepla-main h2{margin-bottom:8px}
.poepla-side textarea{min-height:190px}
.poepla-shell-v2 .poepla-side textarea{min-height:92px}
.poepla-shell-v2 #poeplaContext{min-height:160px}
.poepla-status{margin-top:auto;border:1px solid #dfe8e8;border-radius:8px;background:#f8fbfb;color:var(--muted);padding:11px 12px;font-size:12px;font-weight:700;line-height:1.35}
.poepla-status.ready{border-color:#b6e4ca;background:var(--ok-soft);color:var(--ok)}
.poepla-main{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:14px}
.poepla-shell-v2 .poepla-main{grid-template-rows:auto auto auto minmax(0,1fr)}
.poepla-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.poepla-prompts{display:flex;gap:8px;flex-wrap:wrap}
.poepla-prompts button{min-height:32px;padding:7px 10px;background:#edf4f5;color:#165c60;border:1px solid #d5e5e6;font-size:12px}
.poepla-tool-note{border:1px solid var(--line-soft);border-radius:8px;background:#fbfcfd;padding:12px;color:#394450;font-size:13px;line-height:1.45}
.poepla-chat{overflow:auto;border:1px solid var(--line-soft);border-radius:8px;background:linear-gradient(180deg,#fbfdfd,#fff);padding:14px;display:flex;flex-direction:column;gap:12px}
.poepla-pack{overflow:auto;border:1px solid var(--line-soft);border-radius:8px;background:linear-gradient(180deg,#fbfdfd,#fff);padding:14px;display:flex;flex-direction:column;gap:12px;min-height:520px}
.poepla-message{max-width:min(760px,92%);border:1px solid var(--line-soft);border-radius:8px;padding:12px 13px;background:#fff;box-shadow:0 8px 22px rgba(17,24,39,.045)}
.poepla-message strong{display:block;margin-bottom:6px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.poepla-message p{margin:0;color:var(--text);line-height:1.55}
.poepla-message.user{align-self:flex-end;background:var(--turq-soft);border-color:#c5e1e2}
.poepla-message.user strong{color:var(--turq-deep)}
.poepla-message.assistant{align-self:flex-start}
.poepla-pack-section{border:1px solid var(--line-soft);border-radius:8px;background:#fff;box-shadow:0 8px 22px rgba(17,24,39,.04);overflow:hidden}
.poepla-pack-section>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid var(--line-soft);background:#fbfcfd}
.poepla-pack-section strong{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.poepla-pack-section button{min-height:28px;padding:6px 9px;font-size:12px;background:#edf4f5;color:#165c60;border:1px solid #d5e5e6}
.poepla-pack-section pre{margin:0;padding:13px 14px;white-space:pre-wrap;word-break:break-word;font:13px/1.55 var(--mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);color:#263238;background:#fff}
.poepla-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.poepla-compose textarea{min-height:78px;max-height:180px}
.poepla-compose button{min-width:104px}

@media(max-width:1180px){
  .grid,.portal-priority-grid,.pm-priority-strip,.pm-viz-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-hero,.dashboard-visual-grid{grid-template-columns:1fr}
  .viz-panel.span-2{grid-column:auto}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filter-form{grid-template-columns:repeat(2,minmax(150px,1fr))}
}

@media(max-width:900px){
  .shell,body.sidebar-collapsed .shell{grid-template-columns:1fr}
  .sidebar{position:static;height:auto}
  body.sidebar-collapsed .sidebar{align-items:stretch}
  body.sidebar-collapsed .brand span,
  body.sidebar-collapsed .sidebar nav a span{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}
  body.sidebar-collapsed .sidebar nav a{width:auto;height:auto;padding:10px 12px;justify-content:flex-start}
  body.sidebar-collapsed .sidebar nav a:after{display:none}
  body.sidebar-collapsed .sidebar-toggle{width:100%;font-size:12px}
  body.sidebar-collapsed .sidebar-toggle:after{display:none}
  .main{padding:22px}
  .topbar{display:grid;grid-template-columns:1fr auto;align-items:start}
  .top-logo{display:none}
  .grid,.split,.hero-panel,.stat-row,.pm-hero,.portal-hero-inner,.portal-summary,.portal-priority-grid,.pm-priority-strip,.kpi-grid,.pm-viz-grid,.dashboard-kpis{grid-template-columns:1fr}
  .portal-hero,.pm-hero{padding:22px}
  .dashboard-board{padding:12px;border-radius:14px}
  .dashboard-hero>div:first-child{padding:22px}
  .portal-hero h2,.pm-hero h2{font-size:28px}
  .dashboard-hero h2{font-size:30px}
  .column-chart{height:160px;gap:8px}
  .filter-form{grid-template-columns:1fr}
  .poepla-intro{display:block}
  .poepla-stack{justify-content:flex-start;margin-top:14px}
  .poepla-shell{grid-template-columns:1fr;height:auto;min-height:0}
  .poepla-chat,.poepla-pack{min-height:420px}
}

@media(max-width:560px){
  .main{padding:18px}
  .sidebar{padding:18px}
  .topbar{grid-template-columns:1fr}
  .userbox{justify-content:space-between;white-space:normal}
  h1{font-size:28px}
  .portal-section-head{display:block}
  .card,.panel{padding:16px}
  .poepla-head,.poepla-compose{display:block}
  .poepla-compose button{width:100%;margin-top:8px}
}

@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
