:root{--bg:#f6f3fa;--surface:#fff;--border:#e3dcec;--text:#241e2c;--text-muted:#6f6879;--primary:#6e2e90;--primary-dark:#571f75;--primary-soft:#f0e7f8;--success:#1a7f37;--success-soft:#e3f4e8;--warning:#9a6700;--warning-soft:#fff3d1;--neutral-soft:#ece8f1;--danger:#b42318;--danger-soft:#fde8e6;--radius:10px;--shadow:0 1px 3px #2b223314, 0 1px 2px #2b22330a}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0;font-family:Segoe UI,system-ui,-apple-system,Arial,sans-serif;font-size:15px;line-height:1.55}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1080px;margin:0 auto;padding:0 20px}.main{min-height:calc(100vh - 140px);padding-top:28px;padding-bottom:60px}.app-shell{min-height:100vh;display:flex}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-main .main{flex:1;width:100%}.app-shell .container{max-width:1560px;margin:0 auto;padding:0 36px}@media (max-width:700px){.app-shell .container{padding:0 16px}}.dash-grid,.dash-grid-2{grid-template-columns:1fr;gap:20px;margin-bottom:20px;display:grid}.dash-grid>.card,.dash-grid-2>.card{margin-bottom:0}@media (min-width:1150px){.dash-grid{grid-template-columns:3fr 2fr;align-items:stretch}.dash-grid-2{grid-template-columns:1fr 1fr;align-items:start}}.brand{color:#fff;align-items:center;gap:10px;font-size:17px;font-weight:600;display:flex}.brand:hover{text-decoration:none}.brand-badge{background:var(--primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;font-weight:700;display:inline-flex}.brand-sub{opacity:.75;font-weight:400}.sidebar{color:#fff;background:#241e2c;flex-direction:column;flex-shrink:0;width:240px;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;padding:20px 18px;display:flex}.sb-title{font-size:16px;font-weight:700}.sb-sub{color:#c9a6e0;font-size:12px}.sidebar-close{display:none}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:14px 10px;display:flex;overflow-y:auto}.sidebar-section{letter-spacing:.1em;text-transform:uppercase;color:#8d7f9e;padding:16px 14px 6px;font-size:10.5px;font-weight:800}.sidebar-project{padding-top:9px;padding-bottom:9px;font-size:13.5px}.sl-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sidebar-link{color:#cfc4dc;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:11px;width:100%;padding:11px 14px;font-family:inherit;font-size:14.5px;font-weight:500;transition:background .15s,color .15s;display:flex}.sidebar-link:hover{color:#fff;background:#ffffff12;text-decoration:none}.sidebar-link.active{background:var(--primary);color:#fff}.sl-icon{font-size:16px}.sidebar-footer{border-top:1px solid #ffffff14;padding:12px 10px}.sidebar-logout{color:#b9a8ca}.sidebar-overlay{z-index:60;background:#140e1c8c;position:fixed;inset:0}.mobile-topbar{display:none}@media (max-width:900px){.mobile-topbar{color:#fff;z-index:50;background:#241e2c;align-items:center;gap:12px;width:100%;height:56px;padding:0 14px;display:flex;position:sticky;top:0}.hamburger{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff40;border-radius:8px;flex-shrink:0;width:38px;height:38px;font-size:18px}.app-shell{flex-direction:column}.sidebar{z-index:70;height:100dvh;transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:8px 0 30px #00000059}.sidebar.open{transform:translate(0)}.sidebar-close{color:#cfc4dc;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:32px;height:32px;margin-left:auto;font-size:16px;display:inline-flex}}.footer{border-top:1px solid var(--border);color:var(--text-muted);padding:16px 0;font-size:13px}.login-hero{z-index:40;background:radial-gradient(at 50% 120%,#2b1a3a 0%,#16101d 55%,#0c0812 100%);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow:hidden}.login-grid{background-image:linear-gradient(#8b3fb524 1px,#0000 1px),linear-gradient(90deg,#8b3fb524 1px,#0000 1px);background-size:46px 46px;animation:16s linear infinite grid-move;position:absolute;inset:-60%;transform:perspective(600px)rotateX(58deg)translateY(0);-webkit-mask-image:radial-gradient(#000 30%,#0000 72%);mask-image:radial-gradient(#000 30%,#0000 72%)}@keyframes grid-move{0%{background-position:0 0}to{background-position:0 460px}}.login-blob{filter:blur(80px);opacity:.4;border-radius:50%;animation:14s ease-in-out infinite blob-float;position:absolute}.login-blob-1{background:#6e2e90;width:460px;height:460px;top:-140px;left:-120px}.login-blob-2{opacity:.35;background:#3b1f8f;width:380px;height:380px;animation-delay:-6s;bottom:-160px;right:-90px}@keyframes blob-float{0%,to{transform:translate(0)scale(1)}33%{transform:translate(40px,-30px)scale(1.08)}66%{transform:translate(-30px,25px)scale(.95)}}.login-scanline{background:linear-gradient(#0000,#c9a6e00f,#0000);height:140px;animation:7s linear infinite scan;position:absolute;top:-140px;left:0;right:0}@keyframes scan{0%{top:-140px}to{top:110%}}.login-card-modern{z-index:1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center;background:#16101ed1;border:1px solid #c9a6e02e;border-radius:20px;width:100%;max-width:410px;padding:42px 38px 28px;animation:.55s cubic-bezier(.22,1,.36,1) card-enter;position:relative;box-shadow:0 30px 90px #0009,0 0 60px #6e2e9040}.login-card-glow{background:conic-gradient(from var(--glow-angle,0deg), transparent 0%, #c9a6e080 12%, transparent 26%, transparent 100%);-webkit-mask-composite:xor;pointer-events:none;border-radius:20px;padding:1px;animation:5s linear infinite glow-spin;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@property --glow-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes glow-spin{0%{--glow-angle:0deg}to{--glow-angle:360deg}}@keyframes card-enter{0%{opacity:0;transform:translateY(28px)scale(.96)}to{opacity:1;transform:none}}.login-logo{justify-content:center;margin-bottom:16px;display:flex}.login-logo-badge{color:#fff;background:linear-gradient(135deg,#6e2e90,#a44fd4);border-radius:18px;justify-content:center;align-items:center;width:64px;height:64px;font-size:30px;font-weight:800;animation:.6s cubic-bezier(.34,1.56,.64,1) .1s backwards logo-pop,3s ease-in-out 1s infinite logo-pulse;display:flex;position:relative;box-shadow:0 0 30px #a44fd48c,0 10px 26px #0006}@keyframes logo-pop{0%{opacity:0;transform:scale(.5)rotate(-8deg)}to{opacity:1;transform:none}}@keyframes logo-pulse{0%,to{box-shadow:0 0 26px #a44fd473,0 10px 26px #0006}50%{box-shadow:0 0 44px #a44fd4bf,0 10px 26px #0006}}.login-title{color:#f2ecf8;letter-spacing:.01em;margin:0;font-size:27px}.login-title span{color:#c9a6e0;text-shadow:0 0 18px #c9a6e099}.login-subtitle{color:#9d92ab;letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;gap:2px;margin:4px 0 28px;font-family:Consolas,Courier New,monospace;font-size:13px;display:flex}.login-cursor{background:#c9a6e0;width:8px;height:15px;animation:1.1s step-end infinite cursor-blink;display:inline-block}@keyframes cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.login-field{text-align:left;margin-bottom:16px;position:relative}.login-field input{color:#f2ecf8;caret-color:#c9a6e0;background:#0c081299;border:1.5px solid #c9a6e038;border-radius:12px;width:100%;height:54px;padding:22px 14px 10px;font-size:15px;transition:border-color .2s,box-shadow .2s}.login-field label{color:#9d92ab;pointer-events:none;font-size:14px;font-weight:500;transition:all .18s;position:absolute;top:17px;left:14px}.login-field input:focus{border-color:#a44fd4;outline:none;box-shadow:0 0 0 4px #a44fd42e,0 0 24px #a44fd440}.login-field input:focus+label,.login-field input:not(:placeholder-shown)+label{letter-spacing:.1em;text-transform:uppercase;color:#c9a6e0;font-size:10.5px;font-weight:700;top:7px}.login-btn{color:#fff;letter-spacing:.03em;cursor:pointer;background:linear-gradient(135deg,#6e2e90,#a44fd4);border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;height:52px;font-size:15.5px;font-weight:700;transition:transform .15s,box-shadow .15s,filter .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 0 26px #a44fd459,0 10px 22px #00000059}.login-btn:hover{filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 0 40px #a44fd48c,0 14px 28px #0006}.login-btn:active{transform:translateY(0)}.login-btn-arrow{transition:transform .15s}.login-btn:hover .login-btn-arrow{transform:translate(4px)}.login-btn-shine{background:linear-gradient(105deg,#0000,#ffffff59,#0000);width:60px;animation:3.2s ease-in-out infinite btn-shine;position:absolute;top:0;bottom:0;transform:skew(-20deg)}@keyframes btn-shine{0%{left:-80px}55%,to{left:120%}}.login-foot{color:#7d7290;justify-content:center;align-items:center;gap:7px;margin:24px 0 0;font-size:11.5px;display:flex}.login-status-dot{background:#2ecc71;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite dot-pulse;box-shadow:0 0 8px #2ecc71cc}@keyframes dot-pulse{0%,to{opacity:1}50%{opacity:.45}}.login-error{color:#ff8a80;background:#b4231829;border:1px solid #ff8a804d;border-radius:10px;margin-bottom:14px;padding:10px 12px;font-size:13.5px}.login-shake{animation:.4s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(6px)}75%{transform:translate(-3px)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;padding:20px 22px}.card h2{margin:0 0 14px;font-size:17px}.card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.card-header h2{margin:0}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;display:flex}.page-title{margin:0 0 4px;font-size:24px}.page-sub{color:var(--text-muted);margin:0 0 22px}.page-actions{flex-wrap:wrap;gap:10px;margin-bottom:22px;display:flex}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--neutral-soft);text-decoration:none}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-danger{color:var(--danger);border-color:#f0c4c0}.btn-danger:hover{background:var(--danger-soft)}.btn-sm{padding:6px 12px;font-size:13px}.form-grid{grid-template-columns:repeat(12,1fr);gap:14px;display:grid}.field{flex-direction:column;gap:5px;display:flex}.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-6{grid-column:span 6}.col-4{grid-column:span 4}.col-3{grid-column:span 3}@media (max-width:700px){.col-8,.col-6,.col-4,.col-3{grid-column:span 12}}label{color:var(--text-muted);font-size:13px;font-weight:600}input[type=text],input[type=number],textarea,select{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;width:100%;padding:9px 12px;font-family:inherit;font-size:14px}input:focus,textarea:focus,select:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}textarea{resize:vertical}.form-actions{gap:10px;margin-top:18px;display:flex}.checkbox-row{align-items:center;gap:8px;display:flex}.checkbox-row label{color:var(--text);font-weight:500}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px;font-size:14px}.table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12.5px}.table tr:last-child td{border-bottom:none}.table tbody tr:hover{background:#f9f6fc}.project-menu{flex-direction:column;gap:12px;display:flex}.project-menu-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text);align-items:center;gap:12px;padding:16px 18px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.project-menu-item:hover{border-color:var(--primary);text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 14px #2b22331f}.pmi-main{flex:1;min-width:0}.pmi-name{color:var(--primary-dark);margin-bottom:6px;font-size:15.5px;font-weight:700}.pmi-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:10px;font-size:12.5px;display:flex}.pmi-progress{max-width:340px}.pmi-nophase{color:var(--text-muted);font-size:12.5px}.pmi-chevron{color:var(--text-muted);flex-shrink:0;font-size:26px}.project-menu-item:hover .pmi-chevron{color:var(--primary)}.report-list{flex-direction:column;gap:10px;display:flex}.report-item{border:1px solid var(--border);background:#fcfbfd;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s;display:flex}.report-item:hover{border-color:var(--primary)}.ri-icon{flex-shrink:0;font-size:20px}.ri-main{flex:1;min-width:0}.ri-title{margin-bottom:3px;font-size:14.5px;font-weight:600;display:block}.ri-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12px;display:flex}.report-item .btn{white-space:nowrap;flex-shrink:0}.badge{border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:600;display:inline-block}.badge-pendente{background:var(--neutral-soft);color:var(--text-muted)}.badge-em_andamento{background:var(--warning-soft);color:var(--warning)}.badge-concluida{background:var(--success-soft);color:var(--success)}.badge-nao_aplicavel{background:var(--neutral-soft);color:var(--text-muted);text-decoration:line-through}.badge-tipo{background:var(--primary-soft);color:var(--primary-dark)}.progress-track{background:var(--neutral-soft);border-radius:999px;height:10px;overflow:hidden}.progress-fill{background:var(--primary);border-radius:999px;height:100%;transition:width .3s}.progress-fill.done{background:var(--success)}.progress-line{align-items:center;gap:10px;display:flex}.progress-line .progress-track{flex:1}.progress-pct{text-align:right;min-width:40px;font-size:13px;font-weight:600}.info-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 24px;display:grid}.info-item .info-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:12px;font-weight:600}.info-item .info-value{font-size:14.5px}.phase-item{border:1px solid var(--border);border-radius:var(--radius);background:#fff;margin-bottom:12px;overflow:hidden}.phase-body{padding:12px 16px 14px}.phase-banner{color:#fff;background:linear-gradient(120deg,#241e2c,#3d2350 70%,#4a2a63);align-items:center;gap:14px;padding:13px 16px;transition:filter .15s;display:flex}.phase-banner:hover{filter:brightness(1.12)}.pb-num{background:var(--primary);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;font-weight:800;display:inline-flex;box-shadow:0 0 14px #a44fd466}.pb-main{flex:1;min-width:0}.pb-title{font-size:14.5px;font-weight:700}.pb-deadline{color:#d9c8ea;border:1px solid #ffffff40;border-radius:999px;margin-top:4px;padding:2px 10px;font-size:11px;display:inline-block}.pb-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.pb-count{color:#fff;background:#ffffff24;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:700}.pb-progress{align-items:center;gap:8px;width:150px;display:flex}.pb-track{background:#ffffff2e;border-radius:999px;flex:1;height:8px;overflow:hidden}.pb-fill{background:#c9a6e0;border-radius:999px;height:100%;transition:width .3s;display:block}.pb-fill.done{background:#5fd38a}.pb-pct{text-align:right;min-width:34px;font-size:12.5px;font-weight:700}.pb-chevron{opacity:.7;font-size:13px;transition:transform .2s}details[open]>summary .pb-chevron{transform:rotate(180deg)}@media (max-width:800px){.pb-progress{width:110px}.pb-deadline{white-space:normal}}.phase-desc{color:var(--text-muted);margin:4px 0 10px;font-size:13.5px}.phase-edit{grid-template-columns:170px 90px 1fr auto;align-items:end;gap:10px;margin-top:10px;display:grid}@media (max-width:800px){.phase-edit{grid-template-columns:1fr 1fr}}.phase-meta{color:var(--text-muted);margin-top:8px;font-size:12.5px}.overview-card{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.overview-ring{border-radius:50%;justify-content:center;align-items:center;width:116px;height:116px;display:flex}.overview-ring-inner{background:var(--surface);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:92px;height:92px;display:flex}.orv-pct{color:var(--text);font-size:24px;font-weight:800;line-height:1.1}.orv-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:700}.overview-info{flex:1;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:16px 18px;min-width:260px;display:grid}.ovb-value{color:var(--primary);font-size:24px;font-weight:800;line-height:1.2}.ovb-total{color:var(--text-muted);font-size:15px;font-weight:600}.ovb-label{color:var(--text-muted);white-space:nowrap;margin-top:2px;font-size:12.5px}.classe-form{align-items:center;gap:8px;display:flex}.classe-form select{flex:1;min-width:120px;max-width:180px;font-weight:600}.stats-row{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;display:grid}@media (max-width:700px){.stats-row{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.stat-value{color:var(--primary);font-size:26px;font-weight:700;line-height:1.2}.stat-value.stat-etapa{font-size:21px}.stat-label{color:var(--text-muted);margin-top:2px;font-size:12.5px}.phase-count{color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:3px 9px;font-size:12.5px;font-weight:700}.phase-deadline{color:var(--primary-dark);background:var(--primary-soft);border-radius:8px;margin:4px 0 10px;padding:6px 10px;font-size:12.5px;display:inline-block}.req-item{border:1px solid var(--border);background:#fcfbfd;border-radius:10px;margin:10px 0;padding:12px 14px}.req-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.req-title-wrap{align-items:flex-start;gap:10px;display:flex}.req-code{background:var(--primary-soft);min-width:34px;height:26px;color:var(--primary-dark);border-radius:7px;justify-content:center;align-items:center;padding:0 6px;font-size:12.5px;font-weight:700;display:inline-flex}.req-title{font-size:14.5px;font-weight:600}.req-expected{color:var(--text-muted);font-size:12.5px}.req-toggle{border:1px solid var(--border);background:#fff;border-radius:999px;display:inline-flex;overflow:hidden}.toggle-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:6px 14px;font-size:12.5px;font-weight:700}.toggle-btn+.toggle-btn{border-left:1px solid var(--border)}.toggle-btn.toggle-pendente.on{background:var(--danger-soft);color:var(--danger)}.toggle-btn.toggle-concluido.on{background:var(--success-soft);color:var(--success)}.toggle-btn.toggle-na.on{background:var(--neutral-soft);color:var(--text-muted)}.req-fields{grid-template-columns:1fr 1fr auto auto;align-items:end;gap:10px;margin-top:10px;display:grid}@media (max-width:800px){.req-fields{grid-template-columns:1fr}}.add-inline{margin-top:10px}.add-inline>summary{cursor:pointer;color:var(--primary);font-size:13.5px;font-weight:600}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:2px solid var(--border);margin-left:8px;padding:0 0 16px 22px;position:relative}.timeline li:last-child{padding-bottom:0}.timeline li:before{content:"";background:var(--primary);border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;top:4px;left:-6px}.timeline .tl-date{color:var(--text-muted);font-size:12px}.timeline .tl-body{font-size:14px}.editor-toolbar{border:1px solid var(--border);z-index:5;background:#f8f5fb;border-bottom:none;border-radius:8px 8px 0 0;flex-wrap:wrap;gap:4px;padding:8px;display:flex;position:sticky;top:0}.editor-toolbar button{cursor:pointer;color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;min-width:32px;padding:5px 10px;font-size:13.5px}.editor-toolbar button:hover{background:var(--neutral-soft)}.editor-toolbar .sep{background:var(--border);width:1px;margin:2px 6px}.editor-toolbar .font-family-select{border:1px solid var(--border);background:#fff;border-radius:6px;width:auto;max-width:190px;padding:4px 8px;font-size:13px}.editor-toolbar .font-size-input{border:1px solid var(--border);text-align:center;border-radius:6px;width:58px;padding:4px 6px;font-size:13.5px}.editor-toolbar .font-size-unit{color:var(--text-muted);align-self:center;font-size:12px}.editor-toolbar .font-size-apply{color:var(--primary);font-size:12px;font-weight:700;border:1px solid var(--primary)!important}.editor-toolbar .font-size-apply:hover{background:var(--primary-soft)}.editor-surface{border:1px solid var(--border);background:#fff;border-radius:0 0 8px 8px;outline:none;min-height:480px;padding:40px 48px;font-size:15px}.editor-surface:focus{border-color:var(--primary)}.editor-surface h1{font-size:24px}.editor-surface h2{font-size:19px}.editor-surface h3{font-size:16px}.editor-surface table{border-collapse:collapse;width:100%}.editor-surface table td,.editor-surface table th{border:1px solid #b9c2ce;padding:6px 10px}.editor-bar{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.editor-bar input[type=text]{flex:1;min-width:200px}.save-status{color:var(--text-muted);font-size:13px}.rev-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;font-size:14px;display:flex}.rev-item:last-child{border-bottom:none}.rev-current{background:var(--primary-soft);border-radius:8px;padding:10px}.rev-note{color:var(--text-muted);font-size:13px}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#241e2c8c;justify-content:center;align-items:center;padding:20px;animation:.15s ease-out modal-fade;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);text-align:center;border-radius:14px;width:100%;max-width:420px;padding:28px 30px;animation:.18s ease-out modal-pop;box-shadow:0 20px 50px #241e2c59}.modal-icon{background:var(--danger-soft);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin:0 auto 12px;font-size:24px;display:flex}.modal-title{color:var(--text);margin:0 0 8px;font-size:17px}.modal-text{color:var(--text-muted);margin:0 0 20px;font-size:14px;line-height:1.5}.modal-actions{justify-content:center;gap:10px;display:flex}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-solid:hover{background:#99190f}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:scale(.95)translateY(6px)}to{opacity:1;transform:none}}.empty{text-align:center;color:var(--text-muted);padding:40px 20px}.empty .empty-icon{margin-bottom:8px;font-size:34px}.print-sheet{border:1px solid var(--border);border-radius:var(--radius);max-width:800px;box-shadow:var(--shadow);background:#fff;margin:0 auto;padding:48px 56px}.print-header{border-bottom:3px solid var(--primary);justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:14px;display:flex}.print-header .ph-brand{color:#241e2c;font-size:21px;font-weight:700}.ph-logo{width:auto;height:54px}.print-header .ph-brand span{color:var(--primary)}.print-header .ph-meta{text-align:right;color:var(--text-muted);font-size:12.5px}.print-client{border:1px solid var(--border);background:#f8f5fb;border-radius:8px;margin-bottom:22px;padding:12px 16px;font-size:13.5px}.print-client div{margin:2px 0}.print-title{margin:0 0 4px;font-size:19px}.print-subtitle{color:var(--text-muted);margin:0 0 18px;font-size:13px}.print-content{font-size:14.5px}.print-content table{border-collapse:collapse;width:100%}.print-content table td,.print-content table th{border:1px solid #b9c2ce;padding:6px 10px}.print-footer{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;margin-top:40px;padding-top:12px;font-size:12px;display:flex}.print-footer-brand{border-top:3px solid;border-image:linear-gradient(90deg,#6e2e90,#a44fd4,#c9a6e0) 1;align-items:center;gap:14px;margin-top:48px;padding-top:16px;display:flex}.pf-logo{width:auto;height:34px}.pf-text{flex:1}.pf-name{color:#6e2e90;letter-spacing:.02em;font-size:12.5px;font-weight:800}.pf-sub{color:var(--text-muted);font-size:10.5px}.pf-right{text-align:right;color:var(--text-muted);font-size:10.5px}.pf-right div:first-child{color:#55505c;text-overflow:ellipsis;white-space:nowrap;max-width:300px;font-weight:600;overflow:hidden}.cnj-header{border-bottom:3px solid var(--primary);align-items:center;gap:18px;margin-bottom:20px;padding-bottom:14px;display:flex}.cnj-header .ph-brand{color:#241e2c;font-size:22px;font-weight:800}.cnj-header-title{border-left:2px solid var(--border);flex:1;padding-left:18px}.cnj-header-pct{text-align:right}.chp-value{color:var(--primary);font-size:26px;font-weight:800;line-height:1.1}.chp-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:10.5px;font-weight:700}.cnj-section-label{letter-spacing:.05em;text-transform:uppercase;color:var(--primary-dark);margin:18px 0 8px;font-size:12px;font-weight:800}.cnj-id-grid{border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}@media (max-width:700px){.cnj-id-grid{grid-template-columns:1fr}}.cnj-id-grid>div{border:.5px solid var(--border);padding:8px 12px;font-size:13.5px}.cnj-id-grid>div span{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-size:10.5px;font-weight:700;display:block}.cnj-etapa-bars{grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:6px;display:grid}@media (max-width:700px){.cnj-etapa-bars{grid-template-columns:repeat(2,1fr)}}.cnj-etapa-bar{border:1px solid var(--border);border-radius:8px;padding:8px 10px}.cnj-etapa-bar .ceb-head{justify-content:space-between;margin-bottom:6px;font-size:12px;font-weight:700;display:flex}.cnj-etapa-bar .ceb-track{background:var(--neutral-soft);border-radius:999px;height:6px;overflow:hidden}.cnj-etapa-bar .ceb-fill{background:var(--primary);border-radius:999px;height:100%}.cnj-banner{color:#fff;background:#2b2233;border-radius:10px;align-items:center;gap:14px;margin:18px 0 10px;padding:12px 16px;display:flex}.cnj-banner-title{flex:1;font-size:15px;font-weight:700}.cnj-banner-deadline{border:1px solid #ffffff59;border-radius:8px;max-width:320px;padding:4px 10px;font-size:11px}.cnj-banner-pct{font-size:16px;font-weight:800}.cnj-empty{color:var(--text-muted);margin:6px 0 14px;font-size:13.5px}.cnj-req{border:1px solid var(--border);page-break-inside:avoid;border-radius:10px;margin:8px 0;padding:10px 14px}.cnj-req-head{align-items:flex-start;gap:10px;display:flex}.cnj-req-code{background:var(--primary-soft);min-width:32px;height:24px;color:var(--primary-dark);border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.cnj-req-title{font-size:13.5px;font-weight:700}.cnj-req-expected{color:var(--text-muted);font-size:11.5px}.cnj-req-status{text-align:center;border-radius:6px;margin:8px 0 6px;padding:4px 8px;font-size:12px;font-weight:700}.cnj-st-pendente{background:var(--danger-soft);color:var(--danger)}.cnj-st-concluido{background:var(--success-soft);color:var(--success)}.cnj-st-nao_aplicavel{background:var(--neutral-soft);color:var(--text-muted)}.cnj-req-field{min-height:16px;margin:3px 0;font-size:12.5px}.cnj-req-field span{letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-size:10.5px;font-weight:700;display:block}@media print{.no-print{display:none!important}html,body{background:#fff}.main{min-height:0;padding:0}.container{max-width:none;padding:0}.print-sheet{box-shadow:none;border:none;border-radius:0;max-width:none;padding:0}}
