*{box-sizing:border-box;margin:0;padding:0}
:root{
  --ink:#1C1C2E;--ink2:#3A3A52;--ink3:#70709A;--ink4:#A0A0BC;
  --bg:#F3F2EE;--bg2:#ECEAE2;--bg3:#E4E2D8;--surf:#FFF;--surf2:#F8F7F3;
  --bdr:#DCD9CF;--bdr2:#C8C5BB;
  --blue:#1A5DC8;--blue-l:#EBF1FC;--blue-b:#B8D0F5;
  --teal:#0A7060;--teal-l:#E4F4F0;--teal-b:#8DD5C8;
  --amber:#A85C00;--amber-l:#FDF3E2;--amber-b:#F5C870;
  --red:#B01C1C;--red-l:#FDEAEA;--red-b:#F2A0A0;
  --green:#1A6E3C;--green-l:#E6F4ED;--green-b:#8DD4AC;
  --purple:#5A2FA0;--purple-l:#F0EAFB;--purple-b:#C0A0EE;
  --slate:#3A4A6A;--slate-l:#EBF0FA;--slate-b:#A8BEE8;
  --sh:0 1px 3px rgba(28,28,46,.06),0 4px 16px rgba(28,28,46,.06);
  --sh2:0 2px 8px rgba(28,28,46,.08),0 12px 32px rgba(28,28,46,.1);
  --r:10px;--rl:14px;
  --f:'DM Sans',system-ui,sans-serif;
  --fh:'Syne',system-ui,sans-serif;
  --fm:'DM Mono',monospace;
}
body{font-family:var(--f);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.6;min-height:100vh}
.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.aside{background:var(--ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:10}
.main-area{overflow-y:auto;max-height:100vh}
/* sidebar */
.aside-top{padding:1.4rem 1.2rem 1rem;border-bottom:1px solid rgba(255,255,255,.07)}
.brand{font-family:var(--fh);font-size:18px;font-weight:700;color:#fff;letter-spacing:-.4px}
.brand span{color:rgba(255,255,255,.35);font-weight:500}
.brand-sub{font-size:10px;color:rgba(255,255,255,.3);margin-top:3px;letter-spacing:.07em;text-transform:uppercase}
.nav-sec{padding:.8rem 1.1rem .2rem;font-size:9px;font-weight:600;color:rgba(255,255,255,.22);letter-spacing:.12em;text-transform:uppercase}
.nav-btn{display:flex;align-items:center;gap:8px;padding:.48rem 1.1rem;cursor:pointer;font-size:12.5px;color:rgba(255,255,255,.48);transition:all .14s;border:none;background:none;width:100%;text-align:left;font-family:var(--f);border-left:2px solid transparent}
.nav-btn:hover{color:#ededee;background:#272738}
.nav-btn.on{color:#fff;background:#333343;border-left-color:#5B8EF0}
.nav-btn svg{flex-shrink:0;opacity:.6;width:15px;height:15px}
.nav-btn.on svg{opacity:1}
.nav-cnt{margin-left:auto;font-size:10px;font-weight:600;padding:1px 6px;border-radius:99px;background:#333343;color:#cdcdd1;min-width:18px;text-align:center}
.nav-cnt.hot{background:rgba(120,65,0,.7);color:#FBBF24}
.aside-foot{margin-top:auto;padding:.9rem 1.1rem;border-top:1px solid rgba(255,255,255,.07)}
.user-chip{display:flex;align-items:center;gap:8px;padding:5px 7px;border-radius:8px}
.user-av{width:28px;height:28px;border-radius:50%;background:var(--blue);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}
.user-name{font-size:12px;color:rgba(255,255,255,.78);font-weight:500;line-height:1.2}
.user-role{font-size:10px;color:rgba(255,255,255,.32)}
.logout-btn{margin-top:6px;font-size:10px;color:rgba(255,255,255,.3);background:none;border:none;cursor:pointer;font-family:var(--f);padding:0}
.logout-btn:hover{color:rgba(255,255,255,.6)}
/* login */
.login-screen{position:fixed;inset:0;background:var(--ink);display:flex;align-items:center;justify-content:center;z-index:1000}
.login-box{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2.5rem 2rem;width:100%;max-width:380px}
.login-logo{font-family:var(--fh);font-size:28px;font-weight:700;color:#fff;margin-bottom:4px}
.login-sub{font-size:12px;color:rgba(255,255,255,.35);margin-bottom:2rem;letter-spacing:.06em;text-transform:uppercase}
.login-label{font-size:11px;font-weight:600;color:rgba(255,255,255,.4);display:block;margin-bottom:5px;text-transform:uppercase;letter-spacing:.05em}
.login-input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.25);font-size:13px;color:#fff;background:#2e2e3f;font-family:var(--f);transition:border-color .12s}
.login-input:focus{outline:none;border-color:rgba(91,142,240,.7)}
.login-btn{width:100%;padding:10px;border-radius:8px;background:var(--blue);color:#fff;border:none;font-size:14px;font-weight:600;cursor:pointer;font-family:var(--fh);margin-top:1rem;transition:background .12s}
.login-btn:hover{background:#1248A8}
.login-err{font-size:12px;color:#F2A0A0;margin-top:.5rem;text-align:center}
/* layout */
.page{display:none;padding:2rem}.page.on{display:block}
.ph{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;gap:12px;flex-wrap:wrap}
.ph-t{font-family:var(--fh);font-size:20px;font-weight:600;color:var(--ink)}
.ph-s{font-size:12.5px;color:var(--ink3);margin-top:3px}
/* cards */
.card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:1.2rem 1.3rem;box-shadow:var(--sh)}
.card+.card{margin-top:.9rem}
.card-t{font-family:var(--fh);font-size:14px;font-weight:600;color:var(--ink);margin-bottom:.8rem}
/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:1.4rem}
.stat{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:.9rem 1.1rem;box-shadow:var(--sh);border-top:3px solid var(--bdr2)}
.stat.cb{border-top-color:var(--blue)}.stat.ct{border-top-color:var(--teal)}.stat.ca{border-top-color:var(--amber)}.stat.cr{border-top-color:var(--red)}.stat.cg{border-top-color:var(--green)}
.stat-n{font-family:var(--fh);font-size:28px;font-weight:700;color:var(--ink);line-height:1}
.stat-l{font-size:11px;color:var(--ink3);margin-top:4px;font-weight:500}
/* badges */
.badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap}
.bt{background:var(--teal-l);color:var(--teal)}.bp{background:var(--purple-l);color:var(--purple)}
.ba{background:var(--amber-l);color:var(--amber)}.bb{background:var(--blue-l);color:var(--blue)}
.bg{background:var(--green-l);color:var(--green)}.br{background:var(--red-l);color:var(--red)}
.bsl{background:var(--slate-l);color:var(--slate)}.bgr{background:var(--bg3);color:var(--ink3)}
/* forms */
.fg{margin-bottom:.85rem}
.fl{font-size:11px;font-weight:600;color:var(--ink2);display:block;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.fl span{color:var(--red);margin-left:2px}
.fi{width:100%;padding:7px 10px;border-radius:7px;border:1px solid var(--bdr2);font-size:13px;color:var(--ink);background:var(--surf);font-family:var(--f);transition:border-color .12s}
.fi:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(26,93,200,.08)}
textarea.fi{min-height:76px;resize:vertical;line-height:1.5}
select.fi{cursor:pointer}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.g4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px}
/* info boxes */
.ib{padding:9px 12px;border-radius:8px;font-size:12px;line-height:1.6;margin-bottom:.9rem}
.ibb{background:var(--blue-l);color:#0C3C8A;border:1px solid var(--blue-b)}
.ibt{background:var(--teal-l);color:#054840;border:1px solid var(--teal-b)}
.iba{background:var(--amber-l);color:#6B3A00;border:1px solid var(--amber-b)}
.ibg{background:var(--green-l);color:#0E4425;border:1px solid var(--green-b)}
.ibr{background:var(--red-l);color:#6E1010;border:1px solid var(--red-b)}
.ibp{background:var(--purple-l);color:#381A68;border:1px solid var(--purple-b)}
.ibsl{background:var(--slate-l);color:#1A2840;border:1px solid var(--slate-b)}
/* buttons */
.btn{padding:7px 15px;border-radius:7px;font-size:13px;font-weight:500;cursor:pointer;border:1px solid var(--bdr2);background:var(--surf);color:var(--ink);transition:all .12s;font-family:var(--f)}
.btn:hover{background:var(--bg2)}.btn:active{transform:scale(.98)}
.btn-p{background:var(--blue);color:#fff;border-color:var(--blue)}.btn-p:hover{background:#1248A8}
.btn-t{background:var(--teal);color:#fff;border-color:var(--teal)}.btn-t:hover{background:#085848}
.btn-g{background:var(--green-l);color:var(--green);border-color:var(--green-b)}.btn-g:hover{background:var(--green-b)}
.btn-a{background:var(--amber-l);color:var(--amber);border-color:var(--amber-b)}.btn-a:hover{background:var(--amber-b)}
.btn-r{background:var(--red-l);color:var(--red);border-color:var(--red-b)}.btn-r:hover{background:var(--red-b)}
.btn-row{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;padding-top:.8rem;border-top:1px solid var(--bdr);margin-top:.8rem}
/* tabs */
.tabs{display:flex;gap:0;border-bottom:1.5px solid var(--bdr);margin-bottom:1.2rem;flex-wrap:wrap}
.tab{padding:.5rem 1rem;font-size:12.5px;font-weight:500;color:var(--ink3);cursor:pointer;border-bottom:2px solid transparent;transition:all .12s;margin-bottom:-1.5px}
.tab:hover{color:var(--ink)}.tab.on{color:var(--blue);border-bottom-color:var(--blue)}
.tab-p{display:none}.tab-p.on{display:block}
/* progress */
.prog-tr{display:flex;align-items:flex-start;gap:0;margin-bottom:1.3rem;overflow-x:auto;padding-bottom:2px}
.prog-s{display:flex;flex-direction:column;align-items:center;flex:1;min-width:46px;position:relative}
.prog-s:not(:last-child)::after{content:'';position:absolute;top:11px;left:calc(50% + 11px);right:calc(-50% + 11px);height:1.5px;background:var(--bdr2)}
.prog-s.dn:not(:last-child)::after{background:var(--teal)}
.prog-d{width:22px;height:22px;border-radius:50%;border:2px solid var(--bdr2);background:var(--surf);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--ink4);z-index:1;position:relative;flex-shrink:0}
.prog-d.dn{background:var(--teal);border-color:var(--teal);color:#fff}.prog-d.da{border-color:var(--blue);color:var(--blue);background:var(--blue-l)}
.prog-l{font-size:8px;color:var(--ink3);margin-top:4px;text-align:center;max-width:46px;line-height:1.3}.prog-l.da{color:var(--blue);font-weight:600}
/* timeline */
.tl{display:flex;flex-direction:column;gap:0}
.tl-i{display:flex;gap:10px;padding-bottom:12px;position:relative}
.tl-i:not(:last-child)::before{content:'';position:absolute;left:12px;top:26px;bottom:0;width:1.5px;background:var(--bdr)}
.tl-d{width:24px;height:24px;border-radius:50%;border:1px solid var(--bdr2);background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;color:var(--ink3);flex-shrink:0;z-index:1}
.tl-d.dn{background:var(--teal);color:#fff;border-color:var(--teal)}.tl-d.da{border-color:var(--blue);color:var(--blue);background:var(--blue-l)}
.tl-t{font-size:12px;font-weight:500;color:var(--ink);margin-top:3px}.tl-m{font-size:11px;color:var(--ink3);margin-top:1px}
/* fbar / chips */
.fbar{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:.75rem 1rem;margin-bottom:.9rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap;box-shadow:var(--sh)}
.fbar-l{font-size:10px;font-weight:600;color:var(--ink3);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}
.chips{display:flex;gap:5px;flex-wrap:wrap;flex:1}
.chip{padding:3px 9px;border-radius:99px;border:1px solid var(--bdr2);font-size:11px;font-weight:500;color:var(--ink3);cursor:pointer;background:var(--surf);transition:all .11s;white-space:nowrap;font-family:inherit;display:inline-flex;align-items:center}
.chip:hover{border-color:var(--blue-b);color:var(--blue)}.chip.on{background:var(--blue-l);border-color:var(--blue-b);color:var(--blue)}
.srch{padding:5px 9px;border-radius:6px;border:1px solid var(--bdr2);font-size:12px;color:var(--ink);background:var(--surf);font-family:var(--f);min-width:150px}
.srch:focus{outline:none;border-color:var(--blue)}
/* proc cards */
.proc-list{display:flex;flex-direction:column;gap:8px}
.prc{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rl);padding:.85rem 1.1rem;cursor:pointer;transition:all .14s;box-shadow:var(--sh);display:grid;grid-template-columns:1fr auto;gap:8px;align-items:start}
.prc:hover{border-color:var(--bdr2);box-shadow:var(--sh2);transform:translateY(-1px)}
.prc.urg{border-left:3px solid var(--red)}
.prc-t{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:4px}
.prc-m{display:flex;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--ink3)}.prc-m strong{color:var(--ink2);font-weight:500}
.prc-r{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
/* detail */
.det-hdr{display:flex;align-items:center;gap:10px;margin-bottom:1.2rem;flex-wrap:wrap}
.det-title{font-family:var(--fh);font-size:18px;font-weight:600;color:var(--ink);flex:1;min-width:180px}
/* maturidade */
.mat-wrap{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:1rem}
.mat-item{border:1px solid var(--bdr);border-radius:var(--r);padding:.7rem;cursor:pointer;transition:all .12s;text-align:center}
.mat-item:hover{border-color:var(--blue-b)}.mat-item.on{border-color:var(--blue);background:var(--blue-l)}
.mat-num{font-family:var(--fh);font-size:18px;font-weight:700;color:var(--ink)}
.mat-lbl{font-size:10px;color:var(--ink3);margin-top:2px}
/* questionario */
.quest-item{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);padding:.9rem 1rem;margin-bottom:.6rem}
.quest-txt{font-size:13px;color:var(--ink);margin-bottom:.6rem;font-weight:500}
.quest-dim{font-size:10px;font-weight:600;color:var(--ink3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem}
.likert{display:flex;gap:6px;flex-wrap:wrap}
.lk-btn{padding:4px 10px;border-radius:6px;border:1px solid var(--bdr2);font-size:12px;cursor:pointer;background:var(--surf);color:var(--ink3);transition:all .11s;font-family:var(--f)}
.lk-btn:hover{border-color:var(--blue-b)}.lk-btn.on{background:var(--blue);color:#fff;border-color:var(--blue)}
/* etapas do processo */
.etapa-proc{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);padding:.85rem 1rem;margin-bottom:.5rem;transition:all .12s}
.etapa-proc:hover{border-color:var(--bdr2)}
.etapa-proc.drag-over{border-color:var(--blue);background:var(--blue-l);transform:scale(1.01)}
.etapa-drag-handle{cursor:grab;color:var(--ink3);font-size:14px;flex-shrink:0;user-select:none;padding:0 2px}
.etapa-drag-handle:active{cursor:grabbing}
.etapa-proc-hd{display:flex;align-items:center;gap:8px;margin-bottom:.5rem}
.etapa-tipo{font-size:10px;font-weight:600;padding:2px 7px;border-radius:5px;flex-shrink:0}
.et-ativ{background:var(--blue-l);color:var(--blue)}
.et-evento{background:var(--green-l);color:var(--green)}
.et-evento-fim{background:var(--red-b);color:var(--red)}
.et-decisao{background:var(--amber-l);color:var(--amber)}
.et-coment{background:var(--bg3);color:var(--ink3)}
.etapa-nome{font-size:13px;font-weight:600;color:var(--ink);flex:1;min-width:0}
.etapa-proc-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
/* audit executive report */
.aud-report{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden;margin-bottom:.5rem}
.aud-rep-header{background:linear-gradient(135deg,#1e40af,#6d28d9);padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.aud-rep-title{font-size:16px;font-weight:700;color:#fff;margin-bottom:3px}
.aud-rep-sub{font-size:12px;color:rgba(255,255,255,.8)}
.aud-conf-badge{font-size:11px;font-weight:700;padding:5px 12px;border-radius:20px;white-space:nowrap;display:inline-block}
.aud-rep-stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--bdr)}
.aud-stat{text-align:center;padding:.75rem .5rem;border-right:1px solid var(--bdr)}
.aud-stat:last-child{border-right:none}
.aud-stat-n{font-size:20px;font-weight:700;color:var(--ink);line-height:1}
.aud-stat-l{font-size:10px;color:var(--ink3);margin-top:3px}
.aud-rep-section{padding:1rem 1.5rem;border-bottom:1px solid var(--bdr)}
.aud-rep-section:last-child{border-bottom:none}
.aud-rep-stitle{font-size:11px;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.5rem}
.aud-rep-p{font-size:12.5px;color:var(--ink2);line-height:1.7;margin:0 0 .4rem}
.aud-rep-list{font-size:12px;color:var(--ink2);line-height:1.8;padding-left:1.2rem;margin:0}
.etapa-seq{width:24px;height:24px;border-radius:50%;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--ink3);flex-shrink:0}
/* BPMN */
.bpmn-wrap{border:1px solid var(--bdr);border-radius:var(--rl);overflow:hidden;background:#fafafa}
.bpmn-bar{display:flex;align-items:center;gap:6px;padding:.55rem .8rem;background:var(--surf2);border-bottom:1px solid var(--bdr);flex-wrap:wrap}
.bpmn-bar .btn{font-size:11px;padding:4px 10px}
.bpmn-canvas{width:100%;height:480px;display:block}
.bpmn-spinner{display:flex;align-items:center;justify-content:center;height:480px;flex-direction:column;gap:10px;color:var(--ink3);font-size:13px}
.bpmn-spinner .spin{width:24px;height:24px;border:2px solid var(--bdr2);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}
.bpmn-dirty{font-size:11px;color:var(--amber);font-weight:600}
@keyframes spin{to{transform:rotate(360deg)}}
/* analise */
.analise-item{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);padding:.85rem 1rem;margin-bottom:.6rem}
.analise-cat{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem}
.analise-gar{color:var(--red)}.analise-ret{color:var(--amber)}.analise-gap{color:var(--purple)}.analise-oport{color:var(--green)}
/* notif toast */
.toast{position:fixed;bottom:24px;right:24px;background:var(--green);color:#fff;padding:10px 18px;border-radius:8px;font-size:13px;font-weight:500;z-index:9999;box-shadow:0 4px 16px rgba(0,0,0,.2);animation:slideUp .2s ease}
@keyframes slideUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.notif-log{max-height:240px;overflow-y:auto}
.notif-item{padding:6px 0;border-bottom:1px solid var(--bdr);font-size:12px;display:flex;gap:8px;align-items:flex-start}
.notif-item:last-child{border-bottom:none}
.notif-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);flex-shrink:0;margin-top:4px}
/* pipeline visual */
.pipeline-phases{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:1.4rem}
.pip-phase{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}
.pip-phase-hd{padding:.5rem .7rem;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.pip-e{background:var(--teal-l);color:var(--teal)}.pip-m{background:var(--purple-l);color:var(--purple)}
.pip-f{background:var(--amber-l);color:var(--amber)}.pip-o{background:var(--blue-l);color:var(--blue)}.pip-a{background:var(--red-l);color:var(--red)}
.pip-steps{padding:.4rem .6rem}
.pip-step{font-size:11px;padding:3px 6px;border-radius:5px;margin-bottom:2px;cursor:pointer;color:var(--ink3);transition:all .1s;display:flex;align-items:center;gap:5px}
.pip-step:hover{background:var(--bg2);color:var(--ink)}.pip-step.has{font-weight:600;color:var(--ink)}
.pip-step.pip-e.has{background:var(--teal-l);color:var(--teal)}.pip-step.pip-m.has{background:var(--purple-l);color:var(--purple)}
.pip-step.pip-f.has{background:var(--amber-l);color:var(--amber)}.pip-step.pip-o.has{background:var(--blue-l);color:var(--blue)}.pip-step.pip-a.has{background:var(--red-l);color:var(--red)}
.pip-dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.5;flex-shrink:0}
/* arq */
.arq-macro{border:1px solid var(--bdr);border-radius:var(--rl);margin-bottom:.8rem;overflow:hidden;box-shadow:var(--sh)}
.arq-macro-hd{display:flex;align-items:center;gap:10px;padding:.8rem 1rem;background:var(--ink);color:#fff;cursor:pointer;user-select:none}
.arq-macro-nome{font-family:var(--fh);font-size:14px;font-weight:600;flex:1}
.arq-macro-body{padding:.6rem .8rem;background:var(--surf)}
.arq-proc-hd{display:flex;align-items:center;gap:8px;padding:.6rem .8rem;background:var(--surf2);cursor:pointer;border:1px solid var(--bdr);border-radius:var(--r);margin-bottom:.4rem}
.arq-chevron{transition:transform .2s;color:rgba(255,255,255,.4);font-size:10px}
.arq-chevron.open{transform:rotate(90deg)}
.arq-add-btn{font-size:11px;padding:3px 9px;border-radius:5px;border:1px dashed var(--bdr2);background:none;color:var(--ink3);cursor:pointer;font-family:var(--f);margin-top:4px}
.arq-add-btn:hover{border-color:var(--blue);color:var(--blue)}
/* admin table */
.pop-tbl{width:100%;border-collapse:collapse;font-size:12px}
.pop-tbl th{text-align:left;padding:6px 9px;background:var(--bg2);border:1px solid var(--bdr);font-weight:600;color:var(--ink2);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.pop-tbl td{padding:6px 9px;border:1px solid var(--bdr);color:var(--ink2)}
/* import xlsx */
.upl{border:1.5px dashed var(--bdr2);border-radius:var(--r);padding:1.5rem;text-align:center;cursor:pointer;transition:all .14s;background:var(--surf2)}
.upl:hover{border-color:var(--blue);background:var(--blue-l)}
/* misc */
hr{border:none;border-top:1px solid var(--bdr);margin:.8rem 0}
.sec-lbl{font-size:10px;font-weight:600;color:var(--ink3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem}
.ri-item{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;padding:6px 10px;border-radius:7px;border:1px solid var(--bdr);margin-bottom:5px;font-size:12px}
.ri-del{cursor:pointer;color:var(--ink4);font-size:16px;border:none;background:none;font-family:var(--f);padding:0 4px}.ri-del:hover{color:var(--red)}
/* ── MOBILE ─── */
.mob-top-bar{display:none}
.mob-drawer-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:199;padding:0;border:none;cursor:pointer;width:100%}
.mob-drawer-backdrop.on{display:block}
@media(max-width:720px){
  .shell{grid-template-columns:1fr}
  .main-area{max-height:calc(100vh - 48px);overflow-y:auto}
  .aside{position:fixed;top:0;left:0;height:100vh;width:272px;z-index:200;transform:translateX(-100%);transition:transform .24s cubic-bezier(.4,0,.2,1)}
  .aside.mob-open{transform:translateX(0)}
  .mob-top-bar{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;background:var(--ink);position:sticky;top:0;z-index:50;gap:8px;min-height:48px}
  .mob-ham{background:none;border:none;color:#fff;cursor:pointer;padding:6px;display:flex;flex-direction:column;gap:5px;flex-shrink:0;-webkit-tap-highlight-color:transparent}
  .mob-ham span{display:block;width:22px;height:2px;background:rgba(255,255,255,.85);border-radius:2px;transition:all .2s}
  .mob-page-title{font-size:13px;font-weight:600;color:rgba(255,255,255,.75);flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .page{padding:0!important}
  .page>div{padding:.85rem!important}
  .stats{grid-template-columns:1fr 1fr}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .pipeline-phases{grid-template-columns:1fr 1fr}
  .ph{flex-direction:column;align-items:flex-start;gap:.5rem}
  .card{padding:.85rem .9rem}
  .fi,select.fi{font-size:16px!important;min-height:44px}
  textarea.fi{font-size:16px!important;min-height:80px}
  .btn{min-height:38px;-webkit-tap-highlight-color:transparent}
  .btn-row{justify-content:stretch;gap:6px}
  .btn-row>.btn{flex:1;text-align:center;justify-content:center}
  #det-tabs{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:2px}
  #det-tabs .tab{white-space:nowrap;flex-shrink:0}
  .det-hdr{flex-wrap:wrap;gap:6px;margin-bottom:.7rem}
  .det-title{font-size:15px;min-width:0}
  .prog-s{min-width:34px}
  .prog-l{font-size:8.5px;text-align:center}
  .bpmn-canvas{height:280px}
  .bpmn-bar{gap:3px;padding:.4rem .6rem}
  .bpmn-bar .btn{font-size:10px;padding:3px 7px;min-height:28px}
  .prc{grid-template-columns:1fr}
  .prc-r{flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:5px}
  .etapa-proc-hd{flex-wrap:wrap;row-gap:6px}
  .etapa-proc-actions{width:100%;justify-content:flex-end}
  .ri-item{grid-template-columns:1fr auto auto auto;font-size:11px}
  .arq-filtros-avancados{display:none!important}
  .ind-filtros-avancados{display:none!important}
  .plano-filtros-avancados{display:none!important}
}
@keyframes fu{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.page.on .prc{animation:fu .16s ease both}
.page.on .prc:nth-child(2){animation-delay:.03s}.page.on .prc:nth-child(3){animation-delay:.06s}

/* ── IA ─────────────────────────────────── */
.ai-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:7px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--purple-b);background:var(--purple-l);color:var(--purple);transition:all .13s;font-family:var(--f)}
.ai-btn:hover{background:var(--purple-b);color:#fff}
.ai-btn:disabled{opacity:.5;cursor:not-allowed}
.ai-result{background:var(--purple-l);border:1px solid var(--purple-b);border-radius:var(--r);padding:.9rem 1rem;font-size:12.5px;color:var(--ink2);line-height:1.7;margin-top:.7rem;position:relative}
.ai-result-lbl{font-size:10px;font-weight:700;color:var(--purple);text-transform:uppercase;letter-spacing:.07em;margin-bottom:.4rem}
.ai-loading{display:flex;align-items:center;gap:8px;color:var(--purple);font-size:12px;padding:.6rem 0}
.ai-loading .spin{width:16px;height:16px;border:2px solid var(--purple-b);border-top-color:var(--purple);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
.ai-panel{background:var(--surf);border:1px solid var(--purple-b);border-radius:var(--rl);padding:1rem 1.1rem;margin-top:.8rem}
.ai-panel-t{font-family:var(--fh);font-size:13px;font-weight:600;color:var(--purple);margin-bottom:.6rem;display:flex;align-items:center;gap:6px}
/* ── Utilitários ───────────────────────────────────────────────── */
.u-card{background:var(--surf);border:1px solid var(--bdr);border-radius:var(--r);padding:.85rem 1rem;box-shadow:var(--sh)}
.u-card-l{border-left:3px solid var(--blue)}
.u-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.u-col{display:flex;flex-direction:column;gap:8px}
.u-muted{font-size:12px;color:var(--ink3)}
.u-micro{font-size:11px;color:var(--ink3)}
.u-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--ink3)}
.u-bold{font-weight:600}
.u-sep{border:none;border-top:1px solid var(--bdr);margin:.8rem 0}

/* ══════════════════════════════════════════════════════════
   MÓDULO DE PROJETOS — CAGE-RS
   ══════════════════════════════════════════════════════════ */

/* Landing — hub de módulos (padrão visual da tela de login) */
#module-hub {
  position:fixed;inset:0;background:var(--ink);
  display:none;align-items:center;justify-content:center;
  z-index:999;padding:1.2rem;
}
.module-hub-card {
  width:min(640px,100%);background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);border-radius:16px;
  padding:2.5rem 2rem;animation:hubFadeUp .35s ease;
}
.module-hub-hd { text-align:center;margin-bottom:1.8rem; }
.module-hub-ttl { font-family:var(--fh);font-size:28px;font-weight:700;color:#fff;margin-bottom:4px; }
.module-hub-sub { font-size:12px;color:rgba(255,255,255,.35);letter-spacing:.06em;text-transform:uppercase; }
.module-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
.module-card {
  border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);
  border-radius:12px;padding:1.2rem;display:flex;flex-direction:column;gap:8px;
  transition:border-color .12s,background .12s;
}
.module-card:hover { border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.07); }
.module-card h3 { font-family:var(--fh);font-size:15px;font-weight:600;color:#fff;margin:0; }
.module-card p { font-size:12px;color:rgba(255,255,255,.5);margin:0;line-height:1.5;flex:1; }
.module-hub-foot { text-align:center;margin-top:1.2rem; }

@keyframes hubFadeDown { from{opacity:0;transform:translateY(-20px)} to{opacity:1;transform:translateY(0)} }
@keyframes hubFadeUp   { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }

/* Shell de projetos (substitui o .shell para o módulo de projetos) */
#proj-shell {
  --ink:#172033;--ink2:#334155;--ink3:#64748B;--ink4:#94A3B8;
  --bg:#F3F7FB;--bg2:#EDF3FA;--bg3:#E3ECF6;--surf:#FFF;--surf2:#F8FBFF;
  --bdr:#D9E2EE;--bdr2:#BFCDE0;
  --blue:#1A5DC8;--blue-l:#EAF2FF;--blue-b:#B8D4FA;
  --teal:#0B746E;--teal-l:#E3F6F4;--teal-b:#91D8D1;
  --sh:0 1px 3px rgba(23,32,51,.05),0 4px 16px rgba(23,64,112,.06);
  --sh2:0 2px 8px rgba(23,32,51,.07),0 12px 32px rgba(23,64,112,.1);
  display:flex;min-height:100vh;background:var(--bg);
}
#proj-shell.on { display:flex; }
#proj-aside {
  width:256px;flex-shrink:0;background:#fff;
  border-right:1px solid var(--bdr);
  display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;overflow-y:auto;overflow-x:hidden;
  scrollbar-width:none;
  transition:width .2s;z-index:10;
}
#proj-aside::-webkit-scrollbar { display:none; }
#proj-aside.collapsed { width:0;overflow:hidden; }
#proj-aside.collapsed .proj-sidebar-toggle { left:0; }
.proj-aside-inner { width:100%;min-width:0; }
.proj-aside-top {
  padding:1rem .85rem 1.1rem;
  border-bottom:1px solid var(--bdr);
  display:flex;align-items:center;gap:10px;
}
.proj-aside-logos {
  display:flex;align-items:center;gap:8px;flex:1;min-width:0;
}
.proj-aside-logos-stacked {
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.proj-aside-logo {
  height:42px;
}
.proj-aside-logo-cage {
  width:168px;
  height:auto;
  max-height:none;
  object-fit:contain;
}
.proj-aside-logo-epp {
  width:152px;
  height:auto;
  max-height:none;
  object-fit:contain;
}
.proj-aside-logo-sep {
  width:1px;height:28px;background:var(--bdr);
}
.proj-aside-label {
  font-family:'Syne',system-ui,sans-serif;
  font-size:11px;font-weight:700;color:var(--blue);
  text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;
}
.proj-nav-section {
  padding:.7rem 1rem .2rem;
  font-family:var(--f);
  font-size:9.5px;font-weight:500;color:#6B7890;
  text-transform:uppercase;letter-spacing:.14em;
}
.proj-nav-btn {
  display:flex;align-items:center;gap:9px;
  padding:.5rem 1rem;cursor:pointer;
  font-size:13px;font-weight:400;color:#506079;
  transition:all .12s;border:none;background:none;
  width:calc(100% - 10px);text-align:left;font-family:var(--f);
  border-left:2.5px solid transparent;border-radius:0 8px 8px 0;margin-right:10px;
}
.proj-nav-btn:hover { color:#1557C5;background:#EAF2FF; }
.proj-nav-btn.on { color:#1557C5;background:#EAF2FF;border-left-color:var(--blue);font-weight:500; }
.proj-nav-btn svg { flex-shrink:0;width:16px;height:16px;opacity:.7; }
.proj-nav-btn.on svg { opacity:1; }
.proj-sidebar-toggle {
  position:fixed;left:256px;top:50vh;transform:translateY(-50%);
  width:22px;height:40px;border-radius:0 8px 8px 0;
  background:var(--blue);border:none;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:11px;color:#fff;
  transition:left .2s, background .15s;z-index:20;
  box-shadow:2px 0 8px rgba(26,93,200,.2);
}
.proj-sidebar-toggle:hover { background:#1248A8; }
.proj-aside-foot {
  margin-top:auto;padding:.8rem 1rem;
  border-top:1px solid var(--bdr);
}
.proj-back-btn {
  display:flex;align-items:center;gap:7px;
  font-size:11.5px;color:var(--ink3);cursor:pointer;
  background:none;border:none;font-family:'DM Sans',sans-serif;
  padding:0;transition:color .12s;
}
.proj-back-btn:hover { color:var(--blue); }

/* Área principal de projetos */
#proj-main {
  flex:1;overflow-y:auto;max-height:100vh;background:var(--bg);
}
.proj-page { display:none;padding:2rem; }
.proj-page.on { display:block; }

/* Header de página de projetos */
.proj-ph {
  display:flex;align-items:flex-start;justify-content:space-between;
  margin-bottom:1.6rem;gap:12px;flex-wrap:wrap;
}
.proj-ph-t {
  font-family:var(--f);
  font-size:20px;font-weight:600;color:var(--ink);
}
.proj-ph-s { font-size:12.5px;color:var(--ink3);margin-top:3px; }

/* Dashboard de Início */

/* ═══════════════════════════════════════════════════════════
   PROGRESS MAP — Professional Control Room Design
   ═══════════════════════════════════════════════════════════ */

.proj-launchpad-wrap {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  background: linear-gradient(172deg, #FAFDFF 0%, #F5FAFF 55%, #FFFFFF 100%);
  margin-bottom: 1.2rem;
  box-shadow:
    0 1px 0 0 rgba(255,255,255,.96) inset,
    0 8px 28px rgba(32,77,128,.08);
  border: 1px solid var(--bdr);
}

/* Subtle dot grid overlay instead of stars */
.proj-launchpad-grid-bg {
  position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(circle, rgba(26,93,200,.05) 1px, transparent 1px);
  background-size: 24px 24px;
}

/* Ambient glow at top */
.proj-launchpad-glow {
  position: absolute; top: -60px; left: 50%; transform: translateX(-50%);
  width: 60%; height: 120px;
  background: radial-gradient(ellipse, rgba(64,156,196,.12) 0%, transparent 70%);
  pointer-events: none;
}

.proj-launchpad-header {
  position: relative; z-index: 2;
  display: flex; align-items: center; justify-content: center;
  flex-direction: column;
  padding: 26px 20px 24px; flex-wrap: wrap; gap: 10px;
  text-align: center;
}

.proj-launchpad-title {
  font-family: var(--f);
  font-size: 31px;
  line-height: 1.05;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: 0;
  text-transform: none;
  display: flex; align-items: center; justify-content:center; gap: 10px;
  text-shadow: 0 8px 24px rgba(26,93,200,.08);
}

.proj-launchpad-title-icon {
  width: 34px; height: 34px;
  background: #EEF7FF;
  border: 1px solid #BDD9F7;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
}

.proj-launchpad-legend {
  display: flex; gap: 16px;
  font-size: 10px;
  font-family: var(--fm);
  color: var(--ink3);
  letter-spacing: .02em;
  justify-content:center;
  flex-wrap:wrap;
}

.proj-launchpad-legend span {
  display: flex; align-items: center; gap: 4px;
}

.proj-launchpad-legend-key {
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 2px;
  background: rgba(56,180,120,.5);
}

.proj-launchpad-body {
  position: relative; z-index: 2;
  padding: 0 20px 16px;
}

.proj-launchpad-track {
  position: relative;
  container-type: inline-size;
  --proj-rocket-label-width: 320px;
}

/* ── AXIS (bottom scale) ── */
.proj-launchpad-axis {
  position: relative;
  height: 28px;
  border-top: 1px solid var(--bdr);
  margin-top: 2px;
  display: flex;
}

.proj-launchpad-axis-tick {
  position: absolute;
  top: 0;
  width: 1px;
  height: 6px;
  background: var(--bdr2);
}

.proj-launchpad-axis-lbl {
  position: absolute;
  top: 10px;
  font-size: 9px;
  font-family: var(--fm);
  color: var(--ink3);
  transform: translateX(-50%);
  white-space: nowrap;
  pointer-events: none;
}

/* ── PROGRESS BAR (subtle gradient at bottom of lanes) ── */
.proj-launchpad-progress-line {
  height: 2px;
  background: linear-gradient(90deg,
    rgba(56,180,120,.1) 0%,
    rgba(56,180,120,.35) 50%,
    rgba(56,200,140,.15) 100%);
  border-radius: 1px;
}

/* ── LANE SYSTEM ── */
.proj-launchpad-lanes {
  display: flex;
  flex-direction: column;
}

.proj-launchpad-lane {
  position: relative;
  height: 92px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid rgba(63,117,176,.08);
  transition: background .2s;
}

.proj-launchpad-lane:last-child { border-bottom: none; }

.proj-launchpad-lane:hover {
  background: rgba(26,93,200,.03);
}

/* Vertical grid lines */
.proj-launchpad-lane-grid {
  position: absolute; inset: 0;
  display: flex; pointer-events: none;
}

.proj-launchpad-lane-grid-seg {
  flex: 1;
  border-right: 1px solid rgba(63,117,176,.04);
}

/* ── PROJECT CARD (in lane) ── */
.proj-rocket {
  position: absolute;
  cursor: grab;
  user-select: none;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: left .35s cubic-bezier(.4,0,.2,1);
  z-index: 3;
  touch-action: none;
  height: 100%;
  padding: 8px 0;
}

.proj-rocket:active { cursor: grabbing; z-index: 10; }
.proj-rocket.dragging { transition: none; z-index: 10; }

/* Icon container */
.proj-rocket-icon {
  width: 40px; height: 40px;
  border-radius: 10px;
  flex-shrink: 0;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.1);
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
  transition: transform .2s, box-shadow .2s, border-color .2s;
  position: relative;
  overflow: hidden;
}

.proj-rocket:hover .proj-rocket-icon {
  transform: scale(1.06);
  box-shadow: 0 4px 16px rgba(56,120,200,.35);
  border-color: rgba(56,120,200,.4);
}

/* Label card */
.proj-rocket-label {
  position: relative;
  background: rgba(12,20,35,.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 8px;
  padding: 6px 10px;
  width: var(--proj-rocket-label-width);
  min-width: var(--proj-rocket-label-width);
  max-width: var(--proj-rocket-label-width);
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
}

.proj-rocket-status-flag {
  position: absolute;
  right: 0;
  top: 8px;
  bottom: 8px;
  width: 4px;
  border-radius: 999px;
  opacity: .68;
  box-shadow: 6px 0 14px currentColor;
}

.proj-rocket-status-flag.ok { background: #16a34a; color: #fff; box-shadow: 6px 0 14px rgba(22,163,74,.35); }
.proj-rocket-status-flag.warn { background: #f59e0b; color: #451a03; box-shadow: 6px 0 14px rgba(245,158,11,.35); }
.proj-rocket-status-flag.danger { background: #dc2626; color: #fff; box-shadow: 6px 0 14px rgba(220,38,38,.35); }

.proj-rocket-name {
  font-family: var(--fb);
  font-size: 12px;
  font-weight: 500;
  color: rgba(220,230,255,.9);
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: calc(var(--proj-rocket-label-width) - 20px);
}

.proj-rocket-mgr {
  font-family: var(--fb);
  font-size: 10px;
  color: rgba(235,243,255,.72);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: calc(var(--proj-rocket-label-width) - 20px);
  margin-top: 1px;
}

.proj-rocket-pct {
  font-size: 12px;
  font-weight: 600;
  color: rgba(56,200,130,.85);
  font-family: var(--fm);
  margin-top: 2px;
  letter-spacing: .02em;
}

/* Progress micro-bar inside label */
.proj-rocket-bar {
  margin-top: 4px;
  height: 3px;
  border-radius: 2px;
  background: rgba(255,255,255,.06);
  overflow: hidden;
}

.proj-rocket-bar-fill {
  height: 100%;
  border-radius: 2px;
  background: linear-gradient(90deg, rgba(56,180,120,.6), rgba(56,200,160,.8));
  transition: width .35s cubic-bezier(.4,0,.2,1);
}

/* Lane drag feedback */
.proj-launchpad-lane.lane-dragging {
  background: rgba(56,120,200,.06);
  z-index: 20;
  position: relative;
  box-shadow: 0 0 0 1px rgba(56,120,200,.15) inset;
}

.proj-launchpad-lane.lane-drop-above {
  box-shadow: 0 -2px 0 0 rgba(56,200,130,.45) inset;
}

.proj-launchpad-lane.lane-drop-below {
  box-shadow: 0 2px 0 0 rgba(56,200,130,.45) inset;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .proj-launchpad-lane { height: 78px; }
  .proj-rocket-icon { width: 34px; height: 34px; font-size: 16px; }
  .proj-rocket-label { width: 180px; min-width: 180px; max-width: 180px; padding: 5px 8px; }
  .proj-rocket-name, .proj-rocket-mgr { max-width: 160px; }
  .proj-launchpad-header { padding: 10px 14px 6px; }
  .proj-launchpad-body { padding: 0 14px 12px; }
  .proj-launchpad-legend { display: none; }
}

.proj-dashboard-logos {
  display:flex;align-items:center;gap:10px;margin-bottom:1.8rem;
  padding-bottom:1rem;border-bottom:1px solid #eaecf3;
}
.proj-dash-logo { height:36px; }
.proj-dash-logo-sep { width:1px;height:28px;background:var(--bdr); }
.proj-dash-org {
  font-family:'Syne',system-ui,sans-serif;
  font-size:14px;font-weight:700;color:var(--blue);
}
.proj-dash-org span { color:var(--teal); }
.proj-dashboard-title-wrap {
  position:relative;
  min-height:184px;
  margin:0 0 1.2rem;
  border:1px solid var(--bdr);
  border-radius:16px;
  background:
    radial-gradient(circle at 16% 18%,rgba(72,179,204,.18),transparent 25%),
    radial-gradient(circle at 84% 78%,rgba(26,93,200,.08),transparent 24%),
    linear-gradient(135deg,#ffffff 0%,#F6FBFF 48%,#ffffff 100%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:1.7rem 9.5rem 1.45rem;
  text-align:center;
  overflow:hidden;
  box-shadow:0 1px 3px rgba(23,32,51,.04),0 14px 34px rgba(32,77,128,.08);
}
.proj-dashboard-title-wrap::before,
.proj-dashboard-title-wrap::after {
  content:'';
  position:absolute;
  width:250px;
  height:250px;
  border:1px solid rgba(26,93,200,.1);
  border-radius:50%;
  pointer-events:none;
}
.proj-dashboard-title-wrap::before { left:-108px;top:-118px;box-shadow:0 0 0 28px rgba(72,179,204,.05); }
.proj-dashboard-title-wrap::after { right:-118px;bottom:-128px;box-shadow:0 0 0 28px rgba(26,93,200,.045); }
.proj-dashboard-title-mark {
  position:absolute;
  inset:14px;
  border:1px solid rgba(26,93,200,.12);
  border-radius:12px;
  pointer-events:none;
}
.proj-dashboard-title-mark::before,
.proj-dashboard-title-mark::after {
  content:'';
  position:absolute;
  width:72px;height:30px;
  opacity:.7;
}
.proj-dashboard-title-mark::before { top:-1px;left:-1px;border-top:2px solid var(--blue);border-left:2px solid var(--blue);border-radius:12px 0 0 0; }
.proj-dashboard-title-mark::after { right:-1px;bottom:-1px;border-right:2px solid #00a89a;border-bottom:2px solid #00a89a;border-radius:0 0 12px 0; }
.proj-dashboard-title-kicker {
  position:relative;
  z-index:1;
  margin-bottom:6px;
  font-family:var(--fm);
  font-size:11px;
  font-weight:700;
  color:var(--blue);
  text-transform:uppercase;
}
.proj-dashboard-title {
  position:relative;
  z-index:1;
  max-width:760px;
  font-family:var(--f);
  font-size:42px;
  line-height:1.05;
  font-weight:600;
  color:var(--ink);
  letter-spacing:0;
}
.proj-dashboard-rotator {
  position:relative;
  z-index:1;
  width:min(540px,100%);
  height:44px;
  margin-top:12px;
  border-radius:99px;
  border:1px solid rgba(26,93,200,.16);
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(243,249,255,.92));
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.82),
    0 0 22px rgba(72,179,204,.09),
    0 10px 24px rgba(26,93,200,.08);
  overflow:hidden;
}
.proj-dashboard-rotator::after {
  content:'';
  position:absolute;
  inset:5px;
  border-radius:inherit;
  background:linear-gradient(90deg,transparent,rgba(72,179,204,.08),transparent);
  pointer-events:none;
  z-index:1;
}
.proj-dashboard-rotator::before {
  content:'Gestão de Projetos';
  position:absolute;
  left:18px;
  top:50%;
  transform:translateY(-50%);
  font-size:10px;
  font-weight:800;
  color:#7b879b;
  text-transform:uppercase;
  z-index:2;
}
.proj-dashboard-rotator span {
  position:absolute;
  inset:0 20px 0 190px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  font-family:var(--f);
  font-size:21px;
  font-weight:600;
  color:#27B8B0;
  opacity:0;
  transform:translateY(18px);
  animation:projDashWord 18s infinite;
  text-shadow:0 0 16px rgba(39,184,176,.2);
  z-index:2;
}
.proj-dashboard-rotator span:nth-child(1) { animation-delay:0s; }
.proj-dashboard-rotator span:nth-child(2) { animation-delay:2s; }
.proj-dashboard-rotator span:nth-child(3) { animation-delay:4s; }
.proj-dashboard-rotator span:nth-child(4) { animation-delay:6s; }
.proj-dashboard-rotator span:nth-child(5) { animation-delay:8s; }
.proj-dashboard-rotator span:nth-child(6) { animation-delay:10s; }
.proj-dashboard-rotator span:nth-child(7) { animation-delay:12s; }
.proj-dashboard-rotator span:nth-child(8) { animation-delay:14s; }
.proj-dashboard-rotator span:nth-child(9) { animation-delay:16s; }
@keyframes projDashWord {
  0%,5% { opacity:0;transform:translateY(18px); }
  8%,13% { opacity:1;transform:translateY(0); }
  16%,100% { opacity:0;transform:translateY(-18px); }
}
.proj-dashboard-title-sub {
  position:relative;
  z-index:1;
  margin-top:10px;
  font-size:12px;
  color:#64748b;
  font-weight:500;
}
.proj-dashboard-action {
  position:absolute;
  right:22px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
}

/* Cards do dashboard */
.proj-stat-row {
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px;
  margin-bottom:1.4rem;
}
.proj-stat {
  background:#fff;border:1px solid var(--bdr);border-radius:14px;
  padding:1rem 1.2rem;box-shadow:0 1px 3px rgba(0,0,0,.04),0 4px 16px rgba(0,0,0,.04);
  position:relative;overflow:hidden;
}
.proj-stat::before {
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
}
.proj-stat.s-blue::before { background:var(--blue); }
.proj-stat.s-teal::before { background:var(--teal); }
.proj-stat.s-green::before { background:#28a745; }
.proj-stat.s-amber::before { background:#f59e0b; }
.proj-stat.s-purple::before { background:#7c3aed; }
.proj-stat-n {
  font-family:'Syne',system-ui,sans-serif;font-size:30px;
  font-weight:700;color:var(--ink);line-height:1;
}
.proj-stat-l { font-size:11.5px;color:var(--ink3);margin-top:4px;font-weight:500; }
.proj-stat-icon {
  position:absolute;right:1rem;top:50%;transform:translateY(-50%);
  width:36px;height:36px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;font-size:16px;
}

/* Cards grandes do dashboard */
.proj-dash-grid {
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
  margin-bottom:1.4rem;
}
.proj-card {
  background:#fff;border:1px solid var(--bdr);border-radius:14px;
  padding:1.2rem 1.3rem;box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.proj-card-t {
  font-family:'Syne',system-ui,sans-serif;font-size:13.5px;
  font-weight:700;color:#18243a;margin-bottom:1rem;
  display:flex;align-items:center;gap:7px;
}
.proj-card-t svg { color:var(--blue); }
.proj-card-footer {
  margin-top:.8rem;padding-top:.8rem;
  border-top:1px solid #eaecf3;
  text-align:right;
}

/* Lista de projetos no portfolio */
.proj-list-item {
  background:#fff;border:1px solid var(--bdr);border-radius:12px;
  padding:.9rem 1.1rem;cursor:pointer;transition:all .14s;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  display:grid;grid-template-columns:auto 1fr auto;gap:12px;
  align-items:center;margin-bottom:8px;
}
.proj-list-item:hover {
  border-color:var(--blue);box-shadow:0 2px 12px rgba(26,93,200,.08);
  transform:translateY(-1px);
}
.proj-list-icon {
  width:44px;height:44px;border-radius:12px;
  background:linear-gradient(135deg,var(--blue-l),var(--blue-b));
  display:flex;align-items:center;justify-content:center;
  font-size:18px;flex-shrink:0;overflow:hidden;
}
.proj-list-icon img { width:100%;height:100%;object-fit:cover;border-radius:12px; }
.proj-list-name {
  font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:3px;
}
.proj-list-meta {
  font-size:11.5px;color:var(--ink3);display:flex;gap:10px;flex-wrap:wrap;
}
.proj-list-badge {
  display:inline-flex;align-items:center;padding:2px 9px;
  border-radius:6px;font-size:10.5px;font-weight:600;
  white-space:nowrap;
}
.lb-ideacao { background:var(--blue-l);color:var(--blue); }
.lb-planejamento { background:var(--blue-l);color:var(--blue); }
.lb-execucao { background:#e6f4f0;color:#007a6d; }
.lb-concluido { background:#e6f9f4;color:#0d7a5a; }
.lb-cancelado { background:#fef2f2;color:#b91c1c; }

/* Progress bar */
.proj-prog-bar {
  background:#eaecf3;border-radius:99px;height:6px;margin-top:4px;overflow:hidden;
}
.proj-prog-fill {
  height:100%;border-radius:99px;
  background:linear-gradient(90deg,var(--blue),var(--teal));
  transition:width .3s;
}

/* Reuniões */
.proj-reunion-item {
  display:flex;align-items:center;gap:10px;padding:.6rem 0;
  border-bottom:1px solid #eaecf3;
}
.proj-reunion-item:last-child { border-bottom:none; }
.proj-reunion-done .proj-reunion-text { text-decoration:line-through;color:var(--ink4); }
.proj-reunion-check {
  width:18px;height:18px;border-radius:5px;border:1.5px solid #d0d7e8;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  flex-shrink:0;transition:all .12s;background:#fff;
}
.proj-reunion-check.done { background:var(--teal);border-color:var(--teal); }
.proj-reunion-text { font-size:12.5px;color:var(--ink2);flex:1;line-height:1.4; }
.proj-reunion-proj { font-size:10.5px;color:var(--ink3); }
.proj-reunion-date { font-size:10.5px;color:var(--ink3);white-space:nowrap; }
.proj-meeting-calendar-section {
  background:linear-gradient(180deg,#ffffff,#f7fbff);
}
.proj-meeting-cal-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
  flex-wrap:wrap;
}
.proj-meeting-cal-title {
  font-family:var(--fh);
  font-size:18px;
  font-weight:800;
  color:var(--ink);
  text-transform:capitalize;
}
.proj-meeting-cal-sub {
  font-size:11px;
  color:#7b879b;
  margin-top:2px;
}
.proj-meeting-cal-weekdays,
.proj-meeting-cal-grid {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:6px;
}
.proj-meeting-cal-weekdays {
  margin-bottom:6px;
}
.proj-meeting-cal-weekdays span {
  font-size:10px;
  font-weight:800;
  color:var(--blue);
  text-align:center;
  text-transform:uppercase;
}
.proj-meeting-cal-cell {
  min-height:92px;
  border:1px solid var(--bdr);
  border-radius:8px;
  background:#fff;
  padding:7px;
  overflow:visible;
}
.proj-meeting-cal-cell.empty {
  background:#f2f6fb;
  border-style:dashed;
}
.proj-meeting-cal-day {
  font-family:var(--fm);
  font-size:11px;
  font-weight:800;
  color:var(--ink2);
  margin-bottom:5px;
}
.proj-meeting-cal-item {
  display:flex;
  align-items:center;
  gap:4px;
  min-width:0;
  cursor:grab;
  margin-top:4px;
  padding:3px 5px;
  border-radius:5px;
  background:var(--blue-l);
  color:var(--blue);
  font-size:10px;
  line-height:1.25;
  font-weight:700;
}
.proj-meeting-cal-item.done {
  background:#e0f9f7;
  color:#007a6d;
  text-decoration:line-through;
}
.proj-meeting-cal-item span {
  min-width:0;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.proj-meeting-cal-more {
  margin-top:4px;
  font-size:10px;
  color:#7b879b;
  font-weight:700;
}
.proj-mini-icon {
  display:inline-flex;align-items:center;justify-content:center;
  width:15px;height:15px;border-radius:4px;
  background:var(--blue-l);font-size:11px;line-height:1;
  vertical-align:-2px;overflow:hidden;margin-right:3px;
}
.proj-mini-icon img { width:100%;height:100%;object-fit:cover; }

/* Workflow steps (fases do projeto) */
.proj-workflow {
  display:flex;align-items:center;gap:0;margin-bottom:1.4rem;
  overflow-x:auto;padding-bottom:4px;
}
.proj-wf-step {
  display:flex;flex-direction:column;align-items:center;
  flex:1;min-width:80px;position:relative;
}
.proj-wf-step:not(:last-child)::after {
  content:'';position:absolute;top:15px;
  left:calc(50% + 16px);right:calc(-50% + 16px);
  height:2px;background:var(--bdr);
}
.proj-wf-step.done:not(:last-child)::after { background:var(--teal); }
.proj-wf-dot {
  width:30px;height:30px;border-radius:50%;
  border:2px solid var(--bdr);background:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;color:var(--ink4);z-index:1;flex-shrink:0;
  transition:all .2s;
}
.proj-wf-dot.done { background:var(--teal);border-color:var(--teal);color:#fff; }
.proj-wf-dot.active { border-color:var(--blue);color:var(--blue);background:var(--blue-l); }
.proj-wf-label {
  font-size:9.5px;color:var(--ink3);margin-top:5px;text-align:center;
  max-width:72px;line-height:1.3;
}
.proj-wf-label.active { color:var(--blue);font-weight:600; }

/* Formulários de projetos */
.proj-form-section {
  background:#fff;border:1px solid var(--bdr);border-radius:14px;
  padding:1.3rem 1.4rem;box-shadow:0 1px 3px rgba(0,0,0,.04);
  margin-bottom:1rem;
}
.proj-form-section-title {
  font-family:'Syne',system-ui,sans-serif;font-size:13px;
  font-weight:700;color:var(--blue);margin-bottom:1rem;
  display:flex;align-items:center;gap:8px;
  padding-bottom:.6rem;border-bottom:1px solid #eaecf3;
}

/* Canvas HTML */
.proj-canvas-wrap {
  background:#fff;border:1px solid var(--bdr);border-radius:14px;
  overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.proj-canvas-header {
  background:linear-gradient(135deg,var(--blue),#1248A8);
  padding:1.2rem 1.4rem;
  display:flex;justify-content:space-between;align-items:center;
}
.proj-canvas-title {
  font-family:'Syne',system-ui,sans-serif;font-size:16px;
  font-weight:700;color:#fff;
}
.proj-canvas-grid {
  display:grid;grid-template-columns:1fr 1fr 1fr 1fr;
  gap:0;border-top:none;
}
.proj-canvas-col {
  border-right:1px solid var(--bdr);
  display:flex;flex-direction:column;
}
.proj-canvas-col:last-child { border-right:none; }
.proj-canvas-col-header {
  background:var(--blue-l);padding:.5rem .7rem;
  font-size:10px;font-weight:700;color:var(--blue);
  text-transform:uppercase;letter-spacing:.06em;
  text-align:center;border-bottom:1px solid var(--bdr);
}
.proj-canvas-cell {
  border-bottom:1px solid var(--bdr);padding:.8rem .7rem;
  min-height:112px;position:relative;
  display:flex;flex:1;flex-direction:column;
}
.proj-canvas-cell:last-child { border-bottom:none; }
.proj-canvas-cell-num {
  position:absolute;top:6px;left:6px;
  width:20px;height:20px;border-radius:50%;
  background:var(--teal);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:700;
}
.proj-canvas-cell-label {
  font-size:10px;font-weight:700;color:var(--ink);
  margin-left:26px;margin-bottom:4px;
  text-transform:uppercase;letter-spacing:.04em;
}
.proj-canvas-cell-sub {
  font-size:9.5px;color:var(--ink3);margin-left:26px;
  margin-bottom:6px;
}
.proj-canvas-cell textarea {
  width:100%;border:none;outline:none;resize:none;
  font-family:'DM Sans',sans-serif;font-size:12px;
  color:var(--ink2);background:transparent;
  min-height:84px;line-height:1.5;flex:1;
  margin-top:4px;
}
.proj-canvas-oe-list { display:flex;flex-direction:column;gap:4px;margin-top:2px;margin-bottom:7px; }
.proj-canvas-oe-chip {
  display:flex;align-items:center;gap:6px;padding:4px 8px;
  background:var(--teal-l);border-radius:6px;font-size:12px;color:#1a2540;
}
.proj-canvas-oe-chip span { flex:1; }
.proj-canvas-oe-chip button {
  background:none;border:none;cursor:pointer;color:#b91c1c;
  font-size:14px;line-height:1;padding:0 4px;
}
.proj-canvas-oe-empty { font-size:11px;color:var(--ink3);margin-bottom:2px; }
.proj-canvas-oe-add { display:flex;gap:6px;align-items:center;margin-top:auto; }
.proj-canvas-oe-add select { flex:1;font-size:12px;min-width:0; }
.proj-canvas-oe-add .proj-btn { font-size:11px;padding:4px 10px;white-space:nowrap; }

/* EAP embed */
.proj-eap-embed {
  border:1px solid var(--bdr);border-radius:12px;overflow:hidden;
  background:#fff;margin-bottom:1rem;
}

/* Matriz de riscos */
.proj-risk-table {
  width:100%;border-collapse:collapse;font-size:12px;
}
.proj-risk-table th {
  padding:7px 10px;background:var(--blue-l);border:1px solid var(--bdr);
  font-size:10.5px;font-weight:700;color:var(--blue);text-transform:uppercase;
  letter-spacing:.04em;text-align:left;
}
.proj-risk-table td {
  padding:7px 10px;border:1px solid var(--bdr);color:var(--ink2);
}
.proj-risk-table tr:hover td { background:var(--bg); }
.risk-heat {
  border-radius:5px;padding:2px 8px;font-size:10.5px;
  font-weight:700;text-align:center;white-space:nowrap;
}
.risk-critico { background:#fde8e8;color:#b91c1c; }
.risk-alto { background:#fff3e0;color:#92400e; }
.risk-medio { background:#fef9e0;color:#b45309; }
.risk-baixo { background:#e6f9f0;color:#065f46; }

/* Mapa de calor dos riscos */
.heat-map-grid {
  display:grid;grid-template-columns:40px repeat(5,1fr);
  gap:2px;margin-top:1rem;
}
.heat-cell {
  height:42px;border-radius:5px;display:flex;
  align-items:center;justify-content:center;
  font-size:10px;font-weight:600;text-align:center;
  padding:2px;cursor:default;transition:all .15s;
}
.heat-cell:hover { transform:scale(1.05);z-index:1;position:relative; }
.heat-label { background:none;font-size:9.5px;color:var(--ink3);font-weight:600; }
.heat-1 { background:#d1fae5;color:#065f46; }
.heat-2 { background:#a7f3d0;color:#065f46; }
.heat-3 { background:#fef3c7;color:#92400e; }
.heat-4 { background:#fed7aa;color:#9a3412; }
.heat-5 { background:#fee2e2;color:#991b1b; }

/* Botões projetos */
.proj-btn {
  padding:7px 15px;border-radius:8px;font-size:13px;font-weight:500;
  cursor:pointer;border:1px solid var(--bdr);background:#fff;
  color:var(--ink2);transition:all .12s;font-family:'DM Sans',sans-serif;
}
.proj-btn:hover { background:var(--blue-l);border-color:var(--blue);color:var(--blue); }
.proj-btn:active { transform:scale(.98); }
.proj-btn.primary {
  background:var(--blue);color:#fff;border-color:var(--blue);
}
.proj-btn.primary:hover { background:#1248A8; }
.proj-btn.teal {
  background:var(--teal);color:#fff;border-color:var(--teal);
}
.proj-btn.teal:hover { background:#00a89a; }
.proj-btn.danger {
  background:#fff5f5;color:#b91c1c;border-color:#fca5a5;
}
.proj-btn.danger:hover { background:#fde8e8; }
.proj-btn-row {
  display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;
  padding-top:.8rem;border-top:1px solid #eaecf3;margin-top:.8rem;
}

/* Formulário projetos */
.proj-fg { margin-bottom:.85rem; }
.proj-fl {
  font-size:11px;font-weight:700;color:var(--ink2);
  display:block;margin-bottom:4px;
  text-transform:uppercase;letter-spacing:.04em;
}
.proj-fl span { color:#b91c1c;margin-left:2px; }
.proj-fi {
  width:100%;padding:8px 11px;border-radius:8px;
  border:1.5px solid var(--bdr);font-size:13px;
  color:var(--ink);background:#fff;
  font-family:'DM Sans',sans-serif;transition:border-color .12s;
}
.proj-fi:focus {
  outline:none;border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(26,93,200,.08);
}
textarea.proj-fi { min-height:76px;resize:vertical;line-height:1.5; }
select.proj-fi { cursor:pointer; }
.proj-task-name-input {
  width:100%;
  min-width:160px;
  border:1px solid transparent;
  border-radius:6px;
  padding:3px 6px;
  background:transparent;
  color:var(--ink);
  font-family:'DM Sans',sans-serif;
  font-size:12px;
  font-weight:inherit;
}
.proj-task-name-input:hover { border-color:#d0d7e8;background:#fff; }
.proj-task-name-input:focus {
  outline:none;
  border-color:var(--blue);
  background:#fff;
  box-shadow:0 0 0 3px rgba(26,93,200,.08);
}
.proj-task-flag {
  min-width:48px;
  padding:3px 8px;
  border-radius:6px;
  border:1px solid #d0d7e8;
  background:#fff;
  color:var(--ink2);
  font-family:'DM Sans',sans-serif;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
  transition:all .12s;
}
.proj-task-flag:hover { border-color:var(--blue);color:var(--blue);background:#f8fbff; }
.proj-task-flag.on {
  border-color:#00a89a;
  background:#e0f9f7;
  color:#007a6d;
}
.proj-task-flag.ppe.on {
  border-color:#f59e0b;
  background:#f59e0b;
  color:#451a03;
}
.proj-task-drag-handle {
  width:22px;
  height:22px;
  border:1px solid transparent;
  border-radius:6px;
  background:transparent;
  color:#94a3b8;
  cursor:grab;
  font-size:13px;
  line-height:18px;
  padding:0;
}
.proj-task-drag-handle:active { cursor:grabbing; }
.proj-task-drag-handle:hover,
.proj-task-drag-handle:focus {
  outline:none;
  border-color:#d0d7e8;
  background:#f8fbff;
  color:var(--blue);
}
.proj-task-note-btn {
  width:24px;
  height:24px;
  border:1px solid #d0d7e8;
  border-radius:6px;
  background:#f8f9fb;
  color:#64748b;
  cursor:pointer;
  font-size:13px;
  line-height:20px;
  padding:0;
  transition:all .12s;
}
.proj-task-note-btn:hover {
  border-color:var(--blue);
  color:var(--blue);
  background:#f8fbff;
}
.proj-task-note-btn.on {
  border-color:#00a89a;
  background:#e0f9f7;
  color:#007a6d;
}
.proj-task-order-controls {
  display:flex;
  justify-content:center;
  gap:3px;
}
.proj-task-order-controls button {
  width:22px;
  height:22px;
  border:1px solid #d0d7e8;
  border-radius:6px;
  background:#fff;
  color:#334155;
  cursor:pointer;
  font-size:12px;
  line-height:18px;
  padding:0;
}
.proj-task-order-controls button:hover:not(:disabled) {
  border-color:var(--blue);
  color:var(--blue);
  background:#f8fbff;
}
.proj-task-order-controls button:disabled {
  cursor:not-allowed;
  opacity:.35;
}
.proj-task-notes-backdrop {
  position:fixed;
  inset:0;
  z-index:9000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:rgba(15,23,42,.34);
}
.proj-task-notes-card {
  width:min(560px,100%);
  max-height:min(680px,calc(100vh - 44px));
  display:flex;
  flex-direction:column;
  gap:12px;
  background:#fff;
  border:1px solid var(--bdr);
  border-radius:12px;
  box-shadow:0 24px 70px rgba(15,23,42,.28);
  padding:16px;
}
.proj-task-notes-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.proj-task-notes-title {
  font-weight:800;
  color:var(--ink);
  font-size:16px;
}
.proj-task-notes-subtitle {
  margin-top:3px;
  font-size:12px;
  color:var(--ink3);
}
.proj-task-notes-close {
  width:28px;
  height:28px;
  border:1px solid #d0d7e8;
  border-radius:7px;
  background:#fff;
  color:#64748b;
  cursor:pointer;
  font-size:18px;
  line-height:24px;
}
.proj-task-notes-list {
  display:flex;
  flex-direction:column;
  gap:8px;
  max-height:260px;
  overflow:auto;
  padding-right:3px;
}
.proj-task-note-item {
  border:1px solid #e5e8ef;
  border-radius:8px;
  background:#f8f9fb;
  padding:9px 10px;
}
.proj-task-note-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:4px;
}
.proj-task-note-meta {
  font-size:10.5px;
  font-weight:700;
  color:#64748b;
}
.proj-task-note-delete {
  border:0;
  background:transparent;
  color:#dc2626;
  cursor:pointer;
  font-family:'DM Sans',sans-serif;
  font-size:10.5px;
  font-weight:700;
  padding:2px 4px;
}
.proj-task-note-delete:hover {
  text-decoration:underline;
}
.proj-task-note-text {
  font-size:12.5px;
  color:var(--ink);
  line-height:1.45;
  white-space:pre-wrap;
}
.proj-task-notes-empty {
  border:1px dashed #d0d7e8;
  border-radius:8px;
  color:#94a3b8;
  font-size:12px;
  padding:14px;
  text-align:center;
}
.proj-task-note-textarea { min-height:96px; }
.proj-task-notes-actions {
  display:flex;
  justify-content:flex-end;
  gap:8px;
}
.proj-g2 { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.proj-g3 { display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px; }

/* Info boxes projetos */
.proj-ib {
  padding:9px 13px;border-radius:9px;font-size:12px;
  line-height:1.6;margin-bottom:.9rem;border:1px solid;
}
.proj-ib-blue { background:var(--blue-l);color:#1a3a6e;border-color:#b3cef5; }
.proj-ib-teal { background:#e0f9f7;color:#065f58;border-color:#7fdbd6; }
.proj-ib-amber { background:#fff8e8;color:#78470c;border-color:#f5d47a; }
.proj-ib-green { background:#e6f9f0;color:#065f46;border-color:#6edcb0; }
.proj-ib-red { background:#fde8e8;color:#7f1d1d;border-color:#fca5a5; }

/* Conclusão do projeto */
.proj-conclusao-tipo {
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:1rem;
}
.proj-conclusao-card {
  border:2px solid var(--bdr);border-radius:12px;padding:1rem;
  cursor:pointer;transition:all .15s;text-align:center;
}
.proj-conclusao-card:hover { border-color:var(--blue); }
.proj-conclusao-card.selected-success {
  border-color:var(--teal);background:#e0f9f7;
}
.proj-conclusao-card.selected-cancel {
  border-color:#b91c1c;background:#fde8e8;
}
.proj-conclusao-icon { font-size:28px;margin-bottom:6px; }
.proj-conclusao-label { font-size:13px;font-weight:600;color:var(--ink); }
.proj-conclusao-desc { font-size:11px;color:var(--ink3);margin-top:3px; }

/* Toast de projetos */
.proj-toast {
  position:fixed;bottom:24px;right:24px;
  background:var(--blue);color:#fff;
  padding:10px 18px;border-radius:9px;font-size:13px;font-weight:500;
  z-index:99999;box-shadow:0 4px 16px rgba(0,0,0,.2);
  animation:projToastIn .2s ease;
}
@keyframes projToastIn {
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}

/* Detalhe do projeto — tabs */
.proj-tabs {
  display:flex;gap:0;border-bottom:2px solid #eaecf3;
  margin-bottom:1.4rem;overflow-x:auto;
}
.proj-tab {
  padding:.5rem 1.1rem;font-size:12.5px;font-weight:500;
  color:var(--ink3);cursor:pointer;border-bottom:2.5px solid transparent;
  transition:all .12s;margin-bottom:-2px;white-space:nowrap;
  font-family:'DM Sans',sans-serif;
}
.proj-tab:hover { color:var(--blue); }
.proj-tab.on { color:var(--blue);border-bottom-color:var(--blue);font-weight:600; }
.proj-tab-p { display:none; }
.proj-tab-p.on { display:block; }

/* Status Report */
.proj-status-grid { display:grid;grid-template-columns:1fr;gap:12px; }
.proj-status-card {
  background:#fff;border:1px solid var(--bdr);border-radius:12px;
  padding:1rem 1.1rem;box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.proj-status-head { display:flex;align-items:center;gap:10px; }
.proj-status-icon {
  width:42px;height:42px;border-radius:10px;background:var(--blue-l);
  display:flex;align-items:center;justify-content:center;font-size:20px;
  flex-shrink:0;overflow:hidden;
}
.proj-status-icon img { width:100%;height:100%;object-fit:cover; }
.proj-status-name { font-size:14px;font-weight:700;color:var(--ink);line-height:1.3; }
.proj-status-meta { font-size:11.5px;color:var(--ink3);margin-top:2px; }
.proj-status-pct {
  margin-left:auto;font-family:'DM Mono',monospace;font-size:24px;
  font-weight:700;color:#00a89a;
}
.proj-status-bar {
  height:6px;background:#eaecf3;border-radius:99px;overflow:hidden;margin-top:.8rem;
}
.proj-status-bar div {
  height:100%;background:linear-gradient(90deg,var(--blue),var(--teal));border-radius:99px;
}
.proj-v9-filter-card,
.proj-v9-alert-card,
.proj-v9-chart-card {
  background:#fff;
  border:1px solid var(--bdr);
  border-radius:12px;
  padding:1rem;
  margin-bottom:1.2rem;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.proj-v9-filter-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.proj-v9-alert-project {
  border:1px solid var(--bdr);
  background:#fff;
  border-radius:10px;
  padding:.75rem .85rem;
  margin-top:.7rem;
}
.proj-v9-alert-task {
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:8px;
  align-items:center;
  padding:.45rem 0;
  border-top:1px solid var(--bdr);
  font-size:12px;
}
.proj-v9-alert-task:first-of-type { border-top:none; }
.proj-v9-chart-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.proj-v9-bars { display:flex;flex-direction:column;gap:7px;margin-top:.6rem; }
.proj-v9-bar-row { display:grid;grid-template-columns:170px 1fr 72px;gap:10px;align-items:center;font-size:11px;color:var(--ink3);cursor:pointer;border-radius:8px;padding:3px 4px; }
.proj-v9-bar-row:hover { background:var(--blue-l); }
.proj-v9-bar-row>span { line-height:1.35; }
.proj-v9-bar {
  height:8px;
  background:#edf2f7;
  border-radius:99px;
  overflow:hidden;
}
.proj-v9-bar div {
  height:100%;
  background:linear-gradient(90deg,var(--blue),var(--teal));
  border-radius:99px;
}
.proj-v10-chart-projects {
  grid-column:1 / -1;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:4px 0 6px 170px;
}
.proj-v10-chart-project {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:10.5px;
  color:var(--ink3);
  text-decoration:none;
  line-height:1.25;
}
.proj-v10-chart-project:hover { color:var(--blue);text-decoration:underline; }
.proj-v10-chart-project .proj-icon,
.proj-v10-chart-project img { width:14px;height:14px;flex:0 0 14px; }
.proj-v10-unlinked-btn {
  margin-top:8px;
  border:1px dashed var(--bdr2);
  background:#fbfdff;
  color:var(--blue);
  border-radius:8px;
  padding:6px 9px;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
  width:100%;
  text-align:left;
  font-family:var(--f);
}
.proj-v10-unlinked-btn:hover { background:#f0f6ff;border-color:#9fc1e8; }
.proj-v10-unlinked-list {
  margin-top:6px;
  border:1px solid var(--bdr);
  border-radius:8px;
  background:#fbfdff;
  padding:7px 9px;
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:10.5px;
  color:var(--ink3);
}
.proj-user-summary {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:1.2rem;
}
.proj-user-summary div {
  border:1px solid var(--bdr);
  border-radius:10px;
  background:#fff;
  padding:.85rem 1rem;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.proj-user-summary strong {
  display:block;
  font-size:24px;
  color:var(--blue);
  line-height:1;
}
.proj-user-summary span {
  display:block;
  margin-top:4px;
  font-size:11px;
  color:var(--ink3);
}
.proj-user-bars { display:flex;flex-direction:column;gap:8px;margin-top:.7rem; }
.proj-user-bar-row {
  display:grid;
  grid-template-columns:minmax(120px,170px) 1fr 42px;
  gap:10px;
  align-items:center;
  font-size:11px;
  color:var(--ink3);
}
.proj-user-bar-row span {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.proj-user-bar {
  height:8px;
  border-radius:99px;
  background:#edf2f7;
  overflow:hidden;
}
.proj-user-bar div {
  height:100%;
  border-radius:99px;
  background:linear-gradient(90deg,var(--blue),var(--teal));
}
.proj-user-avatar {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:999px;
  background:var(--blue-l);
  color:var(--blue);
  font-size:9px;
  font-weight:800;
  margin-right:7px;
  vertical-align:middle;
}
.proj-user-row-overdue td { background:#fff7f7; }
.proj-v10-strategy-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  align-items:start;
}
.proj-v10-strategy-text {
  min-height:260px;
  font-family:var(--f);
  line-height:1.45;
}
.proj-strategy-editor-body {
  display:none;
  margin-top:10px;
}
.proj-strategy-editor-body.open {
  display:block;
}
.proj-strategy-editor-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.proj-v10-related {
  margin-top:10px;
  border-top:1px solid var(--bdr);
  padding-top:10px;
}
.proj-readonly-banner {
  margin:0 0 1rem;
  padding:.7rem .9rem;
  border:1px solid #d9e5f5;
  border-radius:10px;
  background:#f8fbff;
  color:#475569;
  font-size:12px;
  font-weight:600;
}
.proj-v10-related-title {
  font-size:11px;
  font-weight:800;
  color:var(--blue);
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:6px;
}
.proj-v10-related-group {
  border:1px solid var(--bdr);
  border-radius:9px;
  padding:8px;
  margin-bottom:8px;
  background:#fbfdff;
}
.proj-v10-related-name {
  font-size:12px;
  font-weight:800;
  color:var(--ink);
  margin-bottom:5px;
}
.proj-v9-meta-list { display:flex;flex-direction:column;gap:16px;margin-top:.9rem; }
.proj-v9-meta-row { display:grid;grid-template-columns:140px 1fr;gap:12px;align-items:center;font-size:12px;color:var(--ink3); }
.proj-v9-meta-name { line-height:1.45; }
.proj-v9-meta-wrap { position:relative;padding:0 0 22px; }
.proj-v9-meta-track { height:10px;background:#edf2f7;border-radius:99px;overflow:hidden;position:relative; }
.proj-v9-meta-fill { height:100%;background:linear-gradient(90deg,var(--blue),var(--teal));border-radius:99px;min-width:3px; }
.proj-v9-meta-target { position:absolute;right:0;top:-2px;transform:translateY(-100%);font-size:11px;font-weight:800;color:var(--ink); }
.proj-v9-meta-current {
  position:absolute;top:15px;transform:translateX(-100%);
  font-size:11px;font-weight:800;color:var(--blue);white-space:nowrap;
}
.proj-v9-meta-current::before {
  content:'';position:absolute;right:0;top:-8px;width:1px;height:7px;background:var(--blue);
}
.proj-v9-meta-pct { position:absolute;right:0;top:15px;font-size:11px;color:var(--ink3);font-weight:700; }
.proj-v9-program-title {
  margin:1.2rem 0 .6rem;
  font-family:var(--fh);
  font-size:15px;
  font-weight:800;
  color:var(--ink);
  border-left:4px solid var(--blue);
  padding-left:.6rem;
}
.proj-v9-ind-grid {
  display:grid;
  grid-template-columns:1fr 110px 110px 110px 40px;
  gap:8px;
  align-items:end;
}
.proj-v9-attach-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:18px;
  margin-top:.9rem;
  align-items:start;
}
.proj-v9-attach-grid a,
.proj-v9-attach-grid > div {
  display:block;
  border:1px solid var(--bdr);
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 10px 28px rgba(15,39,70,.08);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.proj-v9-attach-grid a:hover,
.proj-v9-attach-grid > div:hover {
  transform:translateY(-2px);
  border-color:#b9d4f0;
  box-shadow:0 14px 34px rgba(15,39,70,.12);
}
.proj-v9-attach-grid img {
  width:100%;
  max-height:620px;
  object-fit:contain;
  background:#f8fafc;
  display:block;
  border:0;
}
.proj-v9-attach-grid .proj-btn {
  margin:8px;
}
.proj-image-load-fallback {
  min-height:118px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:16px;
  border:1px dashed #b9c7da;
  border-radius:12px;
  background:#f8fbff;
  color:#334155;
  text-align:center;
  font-size:12px;
}
.proj-image-load-fallback strong {
  color:#172033;
  font-size:13px;
}
.proj-image-load-fallback span {
  color:#64748b;
}
.proj-image-load-fallback a {
  color:var(--blue);
  font-weight:800;
  text-decoration:none;
}
@media(max-width:720px) {
  .proj-v9-attach-grid {
    grid-template-columns:1fr;
    gap:12px;
  }
}
.proj-v9-mini-list { display:flex;flex-direction:column;gap:8px;margin-top:.7rem; }
.proj-v9-mini-ind {
  display:grid;grid-template-columns:1.2fr auto;gap:10px;align-items:center;
  padding:.55rem .65rem;border:1px solid var(--bdr);border-radius:9px;background:#fbfdff;
  font-size:12px;color:var(--ink2);
}
.proj-v9-mini-ind strong { color:var(--ink); }
.proj-v9-bi-grid { display:grid;grid-template-columns:1.35fr .9fr;gap:12px;align-items:start; }
.proj-v9-table { width:100%;border-collapse:collapse;font-size:12px;background:#fff; }
.proj-v9-table th {
  text-align:left;padding:7px 8px;border:1px solid var(--bdr);background:var(--blue-l);
  color:var(--blue);font-size:10px;text-transform:uppercase;letter-spacing:.05em;
}
.proj-v9-table td { padding:7px 8px;border:1px solid var(--bdr);color:var(--ink2);vertical-align:top; }
.proj-v9-table .proj-fi { min-height:30px;padding:5px 7px;font-size:12px; }
.proj-v9-news-card { border:1px solid var(--bdr);border-radius:10px;overflow:hidden;background:#fff;margin-top:.7rem; }
.proj-v9-news-head { display:flex;align-items:center;justify-content:space-between;gap:10px;padding:.65rem .75rem;background:var(--blue-l);font-size:12px;font-weight:700;color:var(--ink); }
.proj-v9-news-frame { width:100%;height:360px;border:0;background:#fff;display:block; }
.proj-v12-news-list {
  display:grid;
  gap:10px;
  margin-top:.7rem;
}
.proj-v12-news-card {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:13px 14px;
  border:1px solid var(--bdr);
  border-radius:12px;
  background:linear-gradient(180deg,#fff,#f8fbff);
  box-shadow:0 8px 22px rgba(15,39,70,.06);
}
.proj-v12-news-copy { min-width:0; }
.proj-v12-news-title {
  font-size:13px;
  font-weight:800;
  color:var(--ink);
  line-height:1.35;
}
.proj-v12-news-url {
  margin-top:3px;
  font-size:11px;
  color:#6b7588;
  word-break:break-word;
}
.proj-v12-single-image {
  border:1px solid var(--bdr);
  border-radius:16px;
  overflow:hidden;
  background:#f8fafc;
  box-shadow:0 16px 38px rgba(15,39,70,.1);
}
.proj-v12-single-image img {
  width:100%;
  max-height:720px;
  object-fit:contain;
  display:block;
}
.proj-v12-carousel {
  position:relative;
  border:1px solid var(--bdr);
  border-radius:18px;
  overflow:hidden;
  background:var(--ink);
  box-shadow:0 18px 44px rgba(15,39,70,.16);
}
.proj-v12-carousel-stage {
  position:relative;
  min-height:520px;
  background:#0b1628;
}
.proj-v12-carousel-slide {
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
  display:flex;
  align-items:center;
  justify-content:center;
}
.proj-v12-carousel-slide.on {
  opacity:1;
  pointer-events:auto;
}
.proj-v12-carousel-slide img {
  width:100%;
  height:100%;
  max-height:720px;
  object-fit:contain;
  display:block;
}
.proj-v12-carousel-btn {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:42px;
  height:42px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:var(--ink);
  font-size:30px;
  line-height:1;
  cursor:pointer;
  z-index:2;
  box-shadow:0 8px 20px rgba(0,0,0,.18);
}
.proj-v12-carousel-btn.prev { left:14px; }
.proj-v12-carousel-btn.next { right:14px; }
.proj-v12-carousel-counter {
  position:absolute;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  padding:5px 10px;
  border-radius:999px;
  background:rgba(15,39,70,.76);
  color:#fff;
  font-size:12px;
  font-weight:800;
  z-index:2;
}
.proj-meeting-cal-item:active {
  cursor:grabbing;
}

.proj-strategy-visual {
  background:#fff;
  border:1px solid var(--bdr);
  border-radius:10px;
  padding:1rem;
  margin-bottom:1rem;
  box-shadow:var(--shadow);
}
.proj-strategy-title {
  font-family:var(--f);
  font-size:31px;
  line-height:1.05;
  font-weight:600;
  color:var(--ink);
  text-align:center;
  margin:4px 0 18px;
}
.proj-strategy-band {
  display:grid;
  grid-template-columns:170px 1fr;
  min-height:130px;
  margin-top:14px;
}
.proj-strategy-side {
  background:#005a83;
  color:#fff;
  border-radius:28px 0 0 28px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:12px;
  text-align:center;
}
.proj-strategy-side-icon {
  width:42px;
  height:42px;
  border:2px solid rgba(255,255,255,.82);
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  color:#fff;
}
.proj-strategy-side-icon svg {
  width:26px;
  height:26px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.proj-strategy-band-title {
  font-family:var(--fh);
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  line-height:1.2;
}
.proj-strategy-band-main {
  background:#ffffff;
  border:1px solid #dbe8f3;
  border-left:0;
}
.proj-strategy-band-head {
  background:#58beb8;
  color:#042f2e;
  font-family:var(--fh);
  font-size:14px;
  font-weight:800;
  text-transform:uppercase;
  padding:10px 18px;
  border-radius:0 0 18px 0;
}
.proj-strategy-visual.macros .proj-strategy-band-main {
  background:#ffffff;
  border-color:#dbe8f3;
}
.proj-strategy-visual.macros .proj-strategy-band {
  margin-top:0;
  min-height:118px;
  border-bottom:1px solid rgba(255,255,255,.78);
}
.proj-strategy-visual.macros .proj-strategy-side {
  background:#005a83;
  color:#fff;
  border-radius:0;
  border:0;
}
.proj-strategy-visual.macros .proj-strategy-side-icon {
  border-color:rgba(255,255,255,.82);
  color:#fff;
}
.proj-strategy-visual.macros .proj-strategy-band-head {
  display:none;
}
.proj-strategy-items {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:0;
  padding:12px 10px;
}
.proj-strategy-node {
  min-height:86px;
  padding:12px 14px;
  border-right:2px solid rgba(0,90,131,.22);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.proj-strategy-node h4 {
  margin:0 0 8px;
  font-family:var(--fh);
  font-size:13px;
  line-height:1.25;
  text-align:center;
  color:#06476d;
}
.proj-strategy-projects {
  display:flex;
  flex-direction:column;
  gap:5px;
}
.proj-strategy-project {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-width:0;
  color:#41516b;
  text-decoration:none;
  font-size:10.8px;
  font-weight:700;
}
.proj-strategy-project span:last-child {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.proj-strategy-empty {
  text-align:center;
  font-size:10.5px;
  color:var(--ink3);
}
@media(max-width:980px) {
  .proj-v9-bi-grid { grid-template-columns:1fr; }
  .proj-v9-chart-grid { grid-template-columns:1fr; }
  .proj-v9-bar-row { grid-template-columns:130px 1fr 64px; }
  .proj-v10-chart-projects { padding-left:130px; }
  .proj-v10-strategy-grid { grid-template-columns:1fr; }
  .proj-strategy-band { grid-template-columns:1fr; }
  .proj-strategy-side { border-radius:18px 18px 0 0; }
}

/* Responsive */
@media(max-width:768px) {
  #proj-aside { position:fixed;top:0;left:0;height:100vh;z-index:200;
    transform:translateX(-100%);transition:transform .24s; }
  #proj-aside.mob-open { transform:translateX(0); }
  .proj-dash-grid { grid-template-columns:1fr; }
  .proj-stat-row { grid-template-columns:1fr 1fr; }
  .proj-canvas-grid { grid-template-columns:1fr 1fr; }
  .proj-g2,.proj-g3 { grid-template-columns:1fr; }
  .proj-dashboard-title-wrap { min-height:220px;padding:1.55rem .9rem 4.2rem; }
  .proj-dashboard-title { font-size:31px; }
  .proj-dashboard-rotator { height:70px;border-radius:14px; }
  .proj-dashboard-rotator::before { left:0;right:0;top:14px;transform:none;text-align:center; }
  .proj-dashboard-rotator span { inset:26px 12px 0;justify-content:center;font-size:21px; }
  .proj-dashboard-action { left:50%;right:auto;top:auto;bottom:18px;transform:translateX(-50%); }
  .proj-v9-filter-grid,
  .proj-v9-chart-grid,
  .proj-v9-ind-grid { grid-template-columns:1fr; }
}

