:root{--blue:#075bc8;--dark:#063b7a;--deep:#092b4c;--green:#15803d;--ink:#142238;--muted:#64748b;--pale:#f0fdf4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.65}a{color:inherit;text-decoration:none}.container{max-width:1170px;margin:auto;padding-left:24px;padding-right:24px}.header{background:#fff;position:sticky;top:0;z-index:10;border-bottom:1px solid #e2e8f0}.nav{display:flex;align-items:center;justify-content:space-between;min-height:78px;gap:20px}.brand{display:flex;align-items:center;gap:12px}.brand-icon{display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--green));color:white;width:48px;height:48px;border-radius:14px;font-weight:900}.brand b,.brand small{display:block;line-height:1.35}.brand small{font-size:12px;color:var(--muted)}.nav-links{display:flex;gap:19px;font-weight:650;font-size:13px}.nav-links a:hover{color:var(--green)}.menu-toggle{display:none;border:0;background:transparent;font-size:24px}.hero{background:linear-gradient(110deg,rgba(6,59,122,.98),rgba(7,91,200,.92),rgba(21,128,61,.85));color:#fff}.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:center;padding-top:90px;padding-bottom:110px;min-height:530px}.eyebrow{display:inline-block;background:#ffffff1f;border:1px solid #ffffff3d;border-radius:40px;padding:8px 18px;font-size:12px;font-weight:750;letter-spacing:.7px}.hero h1{font-size:clamp(38px,5vw,64px);line-height:1.12;margin:25px 0 12px}.hero h2{font-size:21px;color:#dbeafe;margin:0}.hero p{color:#e4f1ff;line-height:1.9}.actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-block;padding:12px 21px;border-radius:12px;font-weight:750;border:0;cursor:pointer;font-size:14px}.btn.white{background:white;color:var(--dark)}.btn.outline{border:2px solid white;color:white}.btn.primary{background:linear-gradient(90deg,var(--blue),var(--green));color:#fff}.hero-panel{background:#fff;color:var(--ink);border-radius:25px;padding:32px;box-shadow:0 20px 50px #0002}.hero-logo{width:66px;height:66px;background:#eaf4ff;border-radius:20px;color:var(--blue);font-size:23px;font-weight:900;display:grid;place-items:center}.hero-panel h3{margin-bottom:0}.hero-panel p{color:var(--muted);margin-top:0}.mini{background:#f7fafc;border-radius:12px;margin-top:10px;padding:12px 15px;font-weight:600}.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:-48px;position:relative}.quick-card{background:#fff;border:1px solid #e8eef4;border-radius:18px;box-shadow:0 12px 32px #0f172a14;padding:23px;font-size:25px}.quick-card b,.quick-card span{display:block;font-size:16px}.quick-card span{font-size:12px;color:var(--muted)}.section{padding:90px 0;scroll-margin-top:75px}.section.pale{background:var(--pale)}.two{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.kicker{font-size:12px;color:var(--blue);font-weight:850;letter-spacing:2px}.section h2{font-size:clamp(29px,3vw,41px);line-height:1.2;margin:13px 0 24px}.section h2 em{font-style:normal;background:linear-gradient(90deg,var(--blue),var(--green));background-clip:text;color:transparent}.section p{color:#52637a}.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:white;border-radius:22px;padding:23px;box-shadow:0 12px 30px #0001}.feature-grid>div{background:#f4f8fc;padding:18px;border-radius:15px;font-size:24px}.feature-grid b{display:block;font-size:15px}.feature-grid p{font-size:13px;margin:6px 0}.center{text-align:center}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:35px}.card{padding:27px;border:1px solid #dce5ef;border-radius:19px;background:white;transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-4px);box-shadow:0 16px 35px #0001}.card h3{line-height:1.3}.card strong{font-size:13px;color:var(--blue)}.card p{font-size:14px}.card a{color:var(--blue);font-weight:750}.card-symbol{font-size:30px}.subheading{margin-top:50px}.contact-card{background:#fff;border:1px solid #e2e8f0;box-shadow:0 12px 25px #0001;border-radius:20px;padding:30px}.contact-card a{color:var(--blue)}footer{background:var(--deep);color:#e2e8f0;padding:27px 0}.footer{display:flex;justify-content:space-between;gap:15px;font-size:13px}.footer a{text-decoration:underline}.auth-wrap{min-height:100vh;display:grid;place-items:center;background:#eef5fc;padding:20px}.auth-box{width:min(450px,100%);padding:35px;background:white;border-radius:20px;box-shadow:0 12px 30px #0002}.auth-box label,.admin label{display:block;font-weight:650;font-size:14px;margin:14px 0}.auth-box input,.admin input,.admin textarea{display:block;width:100%;padding:11px;border:1px solid #cbd5e1;border-radius:9px;font:inherit}.auth-box .btn{margin-top:20px}.error{color:#b91c1c}.success{color:#15803d}.admin{padding-top:40px;padding-bottom:100px}.admin-top{display:flex;justify-content:space-between;align-items:center}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.edit-group{margin-top:35px;padding-top:15px;border-top:1px solid #cbd5e1}.edit-item{border:1px solid #e2e8f0;padding:20px;border-radius:13px;margin:15px 0;background:#f8fafc}.add-item,.remove-item{border:0;border-radius:8px;padding:9px 14px;cursor:pointer}.add-item{background:#dbeafe;color:#075bc8}.remove-item{background:#fee2e2;color:#991b1b}.save-bar{position:sticky;bottom:0;background:#fff;border-top:1px solid #e2e8f0;padding:15px;display:flex;gap:25px;align-items:center}@media(max-width:900px){.hero-grid,.two{grid-template-columns:1fr}.hero-grid{gap:25px}.quick{grid-template-columns:repeat(2,1fr)}.cards{grid-template-columns:repeat(2,1fr)}.menu-toggle{display:block}.nav-links{display:none;position:absolute;top:78px;left:0;right:0;background:white;padding:25px;flex-direction:column;box-shadow:0 12px 22px #0002}.nav-links.show{display:flex}}@media(max-width:600px){.hero-grid{padding-top:55px}.quick{margin-top:-25px}.cards,.fields{grid-template-columns:1fr}.feature-grid{grid-template-columns:1fr 1fr}.section{padding:65px 0}.footer{flex-direction:column}}

/* Melhorias profissionais — identidade visual, acessibilidade e gestão de activos */
.brand-image{width:48px;height:48px;object-fit:contain;border-radius:14px;background:#fff;border:1px solid #e2e8f0;padding:4px}.profile-photo{display:block;width:138px;height:138px;object-fit:cover;border-radius:50%;border:5px solid #eaf4ff;box-shadow:0 10px 30px #0f172a20;margin-bottom:20px}.asset-manager{margin:30px 0;padding:24px;border:1px solid #dce5ef;border-radius:18px;background:#f8fbff}.asset-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.asset-grid form{padding:18px;background:white;border:1px solid #e2e8f0;border-radius:14px}.asset-preview{display:block;max-width:100%;object-fit:contain;margin:12px 0;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.asset-preview.portrait{width:130px;height:130px;border-radius:50%;object-fit:cover}.asset-preview.logo-preview{width:180px;height:100px;padding:8px}.admin input[readonly]{background:#f1f5f9;color:#64748b}.admin input[type=file]{padding:10px;background:#f8fafc}.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}
@media(max-width:600px){.asset-grid{grid-template-columns:1fr}.admin-top{align-items:flex-start;gap:12px;flex-direction:column}.profile-photo{width:112px;height:112px}}


/* Actualização 2026-10: navegação e responsividade do painel administrativo */
.admin-shortcuts{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0 30px;padding:16px;background:#f5f9fc;border:1px solid #dce5ef;border-radius:16px}
.admin-shortcuts a{display:inline-flex;align-items:center;min-height:38px;padding:8px 13px;border:1px solid #cbdce8;border-radius:999px;background:#fff;color:#12416b;font-size:13px;font-weight:700;transition:background .15s,border-color .15s}
.admin-shortcuts a:hover,.admin-shortcuts a:focus-visible{background:#e7f5f1;border-color:#15803d}
.admin #dados-pessoais,.admin .asset-manager,.admin .edit-group{scroll-margin-top:24px}
.admin .edit-item{box-shadow:0 3px 10px #0f172a08}
.admin .edit-item textarea{resize:vertical;min-height:85px}
.admin .asset-grid form{min-width:0}
.admin .asset-grid h3{overflow-wrap:anywhere}
.admin .save-bar{z-index:5;box-shadow:0 -8px 25px #0f172a10;border-radius:12px 12px 0 0}
@media(max-width:600px){.admin-shortcuts{padding:12px;gap:7px}.admin-shortcuts a{font-size:12px;padding:7px 10px}.admin .save-bar{flex-wrap:wrap;gap:12px}.admin .save-bar .btn{width:100%}.admin .asset-manager{padding:16px}.admin .edit-item{padding:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}}

/* ===== NOVO DESIGN PÚBLICO - FASE 3 ===== */
:root{color-scheme:dark;--bg:#061e30;--bg2:#082b43;--panel:#0a304b;--teal:#00dfbd;--cyan:#20cbe9;--blue:#2e7eff;--text:#f0f8ff;--muted:#bad0de;--line:rgba(63,201,230,.22)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}a{color:inherit;text-decoration:none}button{font:inherit}.shell{width:min(1390px,calc(100% - 8%));margin:auto}.topbar{position:sticky;top:0;z-index:20;background:rgba(4,26,43,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.topbar-inner{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand,.footer-brand{display:flex;align-items:center;gap:11px}.brand-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,#11e4c6,#29b9e9);color:#06243a;font-weight:900;font-size:18px}.brand strong{display:block;line-height:1.2}.brand small{display:block;color:var(--muted);font-size:11px}.desktop-nav{display:flex;gap:clamp(10px,1.55vw,26px);font-size:12px;font-weight:700}.desktop-nav a:hover,.footer a:hover{color:var(--teal)}.nav-cv{border:1px solid var(--teal);border-radius:30px;padding:8px 20px;font-size:12px;white-space:nowrap}.nav-cv:hover{background:var(--teal);color:#042238}.menu-toggle{display:none;background:none;border:1px solid var(--line);color:white;padding:6px 12px;border-radius:8px}.mobile-nav{display:none}.hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 84% 48%,rgba(0,211,184,.34),transparent 38%),radial-gradient(ellipse at 50% 5%,rgba(41,117,235,.33),transparent 52%),linear-gradient(115deg,#052138,#0b3553 70%,#07546a);border-bottom:1px solid var(--line)}.hero:after{content:"";position:absolute;inset:auto -15% -90px 45%;height:230px;transform:rotate(-20deg);background:linear-gradient(90deg,transparent,rgba(14,173,221,.13),transparent);pointer-events:none}.hero-grid{min-height:405px;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:50px;padding-top:42px;padding-bottom:48px}.eyebrow{display:block;color:var(--cyan);font-size:11px;letter-spacing:1.65px;font-weight:800;margin-bottom:12px}.pill{display:inline-block;border:1px solid var(--teal);color:var(--teal);border-radius:40px;padding:5px 13px;letter-spacing:.8px}.hero h1{font-size:clamp(42px,5.2vw,78px);line-height:1.07;letter-spacing:-2.3px;margin:13px 0 12px}.hero h1 span,h2 em{font-style:normal;color:var(--teal)}.hero h2{font-size:clamp(16px,1.8vw,23px);margin:0 0 12px}.hero p{max-width:590px;color:#d2e7f1;font-size:15px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:30px;padding:11px 20px;font-size:13px;font-weight:750;transition:transform .25s,background .25s,box-shadow .25s}.btn:hover{transform:translateY(-3px)}.btn.primary{background:linear-gradient(110deg,#00e5bd,#12d4df);color:#052638;box-shadow:0 8px 24px rgba(0,215,186,.13)}.btn.primary:hover{box-shadow:0 9px 28px rgba(0,230,190,.35)}.btn.outline{border:1px solid #85d9e9}.btn.outline:hover{background:rgba(28,202,227,.15)}.btn.ghost{border:1px solid rgba(175,225,242,.45)}.btn.small{font-size:12px;padding:8px 16px}.portrait-area{position:relative;display:flex;justify-content:center;align-items:center;min-height:330px}.portrait-halo{width:min(335px,70vw);aspect-ratio:1;border-radius:50%;padding:8px;background:linear-gradient(145deg,var(--teal),var(--cyan),#2368d9);box-shadow:0 0 0 12px rgba(0,220,200,.07),0 0 75px rgba(1,219,193,.3);animation:halo 6s ease-in-out infinite}.portrait-frame{width:100%;height:100%;overflow:hidden;border-radius:50%;background:radial-gradient(circle at 50% 30%,#347b9a,#082e48);display:grid;place-items:center}.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:center 12%;display:block}.portrait-placeholder{font-size:95px;font-weight:900;color:#8bd9eb}.availability{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);white-space:nowrap;background:rgba(3,26,44,.93);border:1px solid var(--line);padding:8px 17px;border-radius:30px;font-size:12px;font-weight:700;color:var(--teal)}.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:#00e9aa;box-shadow:0 0 0 5px rgba(0,233,170,.1);margin-right:7px;animation:pulse 2s infinite}.intro-section,.paired-section,.details-section{border-bottom:1px solid var(--line);background:linear-gradient(115deg,#062237,#082b43)}.intro-grid{display:grid;grid-template-columns:1fr 1.15fr}.intro-about,.intro-skills{padding:36px 28px 40px 0}.intro-skills{padding-left:42px;border-left:1px solid var(--line)}h2{font-size:clamp(24px,2.6vw,36px);line-height:1.2;letter-spacing:-.7px;margin:0 0 13px}p{margin:0 0 17px}.intro-about p,.section-heading p,.services>p,.contact-section p{font-size:14px;color:var(--muted);max-width:670px}.chips{display:flex;flex-wrap:wrap;gap:11px;margin-top:23px}.chip{border:1px solid rgba(0,223,189,.47);background:rgba(0,222,192,.06);border-radius:30px;padding:7px 13px;font-size:12px}.chip:hover{background:rgba(0,222,192,.14)}.section{padding:40px 0}.section-heading{margin-bottom:24px}.section-heading h2{margin-bottom:5px}.expertise-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.expertise-card{position:relative;min-height:208px;padding:18px 16px;border:1px solid rgba(34,177,218,.38);border-radius:10px;background:linear-gradient(150deg,rgba(13,70,101,.95),rgba(5,35,57,.96));overflow:hidden;transition:transform .35s,border-color .35s,box-shadow .35s}.expertise-card:before{content:"";position:absolute;top:0;left:0;width:70px;height:2px;background:var(--teal);box-shadow:0 0 14px var(--teal)}.expertise-card:nth-child(3n):before{background:var(--blue);box-shadow:0 0 14px var(--blue)}.expertise-card:hover,.project-card:hover{transform:translateY(-9px);border-color:var(--teal);box-shadow:0 18px 35px rgba(0,10,25,.34),0 0 23px rgba(0,224,196,.12)}.skill-symbol{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,#086e83,#00b6ad);font-size:25px;margin-bottom:14px;box-shadow:0 5px 20px rgba(0,211,196,.25)}.expertise-card:nth-child(3n) .skill-symbol{background:linear-gradient(135deg,#1753bc,#3d69db)}.expertise-card h3{font-size:14px;line-height:1.25;margin:0 0 8px}.expertise-card p{font-size:12px;color:var(--muted);line-height:1.5}.expertise-card>a{position:absolute;bottom:10px;left:16px;color:var(--teal)}.paired-section{padding:0}.paired-grid{display:grid;grid-template-columns:.82fr 1.45fr}.services,.projects{padding:36px 32px 40px 0}.projects{border-left:1px solid var(--line);padding-left:36px;padding-right:0}.service-list{padding:0;margin:20px 0 23px;list-style:none}.service-list li{display:flex;gap:12px;align-items:flex-start;margin:0 0 14px;font-size:13px}.service-list small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.tick{display:grid;place-items:center;flex:none;width:21px;height:21px;border-radius:50%;background:#32cfca;color:#052f41;font-weight:900}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.project-card{background:linear-gradient(150deg,#0b3a57,#06233b);border:1px solid rgba(31,193,229,.45);border-radius:10px;overflow:hidden;transition:transform .35s,border-color .35s,box-shadow .35s}.project-photo{height:145px;background:#123b54;overflow:hidden}.project-photo img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .5s}.project-card:hover img{transform:scale(1.06)}.project-fallback{height:100%;display:grid;place-items:center;font-size:65px;color:var(--teal)}.project-content{padding:13px}.project-content h3{font-size:14px;line-height:1.3;margin:0 0 8px}.project-content p{font-size:12px;color:var(--muted);margin-top:10px}.project-tag{display:inline-block;border-radius:4px;padding:3px 7px;background:rgba(25,197,210,.17);font-size:10px;color:#a3eff2}.project-content a{font-size:12px;color:var(--teal);font-weight:700}.details-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.details-column{padding:0 20px;border-right:1px solid var(--line)}.details-column:first-child{padding-left:0}.details-column:last-child{padding-right:0;border:0}.details-column h2{font-size:21px;margin-bottom:24px}.detail-item{display:flex;gap:11px;align-items:flex-start;margin-bottom:19px}.detail-icon{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;color:var(--cyan);background:rgba(38,145,224,.17)}.detail-icon.accent{background:rgba(0,224,189,.15);color:var(--teal)}.detail-item strong,.process-item strong{display:block;font-size:12px}.detail-item small,.detail-item p,.process-item p{display:block;color:var(--muted);font-size:11px;margin:3px 0 0}.mini-title{font-size:14px;color:var(--teal)}.process-item{display:flex;gap:10px;align-items:flex-start;margin-bottom:17px}.process-item>span{display:grid;place-items:center;flex:none;width:33px;height:33px;border-radius:50%;border:1px solid var(--teal);color:var(--teal);font-size:12px}.contact-section{position:relative;overflow:hidden;padding:42px 0;background:radial-gradient(ellipse at 90% 80%,rgba(0,196,179,.16),transparent 45%),linear-gradient(115deg,#062339,#082f4b)}.contact-grid{display:grid;grid-template-columns:1fr 1.12fr;gap:60px;align-items:center}.contact-section h2{font-size:clamp(30px,3.2vw,44px)}.location{color:var(--teal);font-size:13px}.contact-card{position:relative;overflow:hidden;border:1px solid rgba(34,200,222,.5);border-radius:12px;padding:25px;background:linear-gradient(115deg,#0a3b57,#073148);min-height:220px}.contact-card h3{font-size:17px;margin:0 0 18px}.contact-card>a:not(.btn){display:block;margin:10px 0;font-size:13px;position:relative;z-index:1}.contact-card .whatsapp{margin-top:13px;position:relative;z-index:1}.contact-art{position:absolute;right:35px;top:0;font-size:190px;color:rgba(0,226,198,.12);transform:rotate(-15deg)}.footer{background:#041a2b;border-top:1px solid var(--line);padding:20px 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:11px;color:var(--muted)}.footer-brand .brand-icon{width:30px;height:30px;font-size:12px;border-radius:6px}.footer-brand strong{color:var(--text)}.footer a{color:var(--teal)}.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes halo{50%{box-shadow:0 0 0 16px rgba(0,220,200,.08),0 0 90px rgba(1,219,193,.38)}}@keyframes pulse{50%{box-shadow:0 0 0 9px rgba(0,233,170,0)}}@media(max-width:1200px){.desktop-nav{gap:10px;font-size:11px}.expertise-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:30px}.details-column:nth-child(2){border-right:0}.details-column:nth-child(3){padding-left:0}}@media(max-width:850px){.desktop-nav,.nav-cv{display:none}.menu-toggle{display:block}.mobile-nav.is-open{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:20px 5%;background:#06273e}.mobile-nav a{font-size:13px}.hero-grid{grid-template-columns:1fr;text-align:center;gap:8px;padding-top:50px}.hero p{margin-left:auto;margin-right:auto}.actions{justify-content:center}.portrait-area{min-height:300px}.portrait-halo{width:260px}.intro-grid,.paired-grid,.contact-grid{grid-template-columns:1fr}.intro-skills,.projects{border-left:0;padding-left:0}.intro-about,.intro-skills,.services,.projects{padding:26px 0}.intro-skills,.projects{border-top:1px solid var(--line)}.contact-grid{gap:22px}.footer-inner{flex-wrap:wrap}}@media(max-width:560px){.shell{width:calc(100% - 36px)}.hero h1{font-size:42px}.expertise-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.expertise-card{padding:13px;min-height:210px}.expertise-card h3{font-size:12px}.expertise-card p{font-size:11px}.details-grid{grid-template-columns:1fr}.details-column,.details-column:nth-child(3){padding:0 0 22px;border:0;border-bottom:1px solid var(--line)}.details-column:last-child{border:0}.footer-inner{flex-direction:column;text-align:center}.footer-brand{flex-wrap:wrap;justify-content:center}.project-grid{grid-template-columns:1fr}.project-photo{height:190px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.portrait-halo,.pulse{animation:none}.expertise-card,.project-card,.btn,.project-photo img{transition:none}}


/* Correcções de contraste para currículo e autenticação */
.auth-wrap{background:radial-gradient(circle at 15% 10%,rgba(0,220,190,.16),transparent 38%),linear-gradient(135deg,#041a2b,#073653 65%,#064b59);color:#f0f8ff}
.auth-box{background:linear-gradient(150deg,#0b3048,#09253a);border:1px solid rgba(57,207,225,.45);color:#f0f8ff;box-shadow:0 22px 60px rgba(0,0,0,.35)}
.auth-box h1,.auth-box p,.auth-box label{color:#f0f8ff}
.auth-box p{color:#c7dce8}
.auth-box input{background:#061c2d;color:#fff;border:1px solid #4e8199}
.auth-box input:focus{outline:2px solid #22d3c5;outline-offset:2px}
.auth-box a{color:#5eead4}
.auth-box .error{color:#fecaca}
.cv-page{color:#203047;background:#edf3f8;min-height:100vh}
.cv-sheet{color:#26364b;background:#fff}
.cv-sheet p,.cv-sheet li{color:#33465e}
.cv-sheet h1,.cv-sheet h3{color:#142d46}
.cv-header h2,.cv-sheet section h2{color:#075b91}
.cv-header p,.cv-item strong{color:#334e68}
.cv-sheet footer{color:#475569}
.cv-actions .btn.outline{color:#075b91;border-color:#075b91}
.cv-header img{object-position:center 12%;}
/* Imagem da secção de contactos: upload opcional ou ilustração de portátil */
.contact-card{padding-right:230px;min-height:245px}
.contact-device-image{position:absolute;right:10px;bottom:8px;width:215px;height:150px;object-fit:contain;object-position:center;filter:drop-shadow(0 12px 20px rgba(0,0,0,.28));z-index:0}
.contact-art{position:absolute;right:18px;top:60px;width:190px;height:130px;font-size:0;color:transparent;transform:none;opacity:.95}
.laptop-screen{position:absolute;right:13px;top:0;width:155px;height:100px;border:4px solid #2bd7d0;border-radius:7px;background:linear-gradient(135deg,#06192b,#0d5670);box-shadow:0 0 28px rgba(0,220,200,.24);padding:13px 10px}
.laptop-screen span{display:block;font-size:17px;font-weight:900;color:#42f3df;letter-spacing:2px;margin-bottom:7px}
.laptop-screen i{display:block;height:4px;width:75%;margin:5px 0;background:linear-gradient(90deg,#17cbbd,#287ad8);border-radius:4px}
.laptop-screen i:nth-of-type(2){width:54%}.laptop-screen i:nth-of-type(3){width:65%}
.laptop-base{position:absolute;right:0;top:101px;width:185px;height:12px;background:linear-gradient(90deg,#3a829a,#b0f7ef,#28667f);clip-path:polygon(8% 0,92% 0,100% 100%,0 100%);border-radius:0 0 7px 7px}
.asset-preview.contact-preview{width:min(100%,340px);height:160px;object-fit:contain;background:#061c2d;border-radius:10px;padding:8px}
@media(max-width:560px){.contact-card{padding-right:22px;padding-bottom:155px}.contact-device-image{right:12px;bottom:8px;width:175px;height:130px}.contact-art{right:18px;top:auto;bottom:22px;transform:scale(.8);transform-origin:bottom right}.cv-header img{object-position:center 10%}}
@media print{.cv-page{background:#fff}.cv-sheet{color:#26364b}.cv-sheet p,.cv-sheet li{color:#33465e}}

/* Contactos: imagem 50% + informações 50% */
.rm-contact-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    overflow: hidden;
    border-radius: 22px;
    border: 1px solid rgba(77, 190, 210, .25);
    background: linear-gradient(135deg, #12283f, #173a49);
}

.rm-contact-visual {
    min-width: 0;
    min-height: 360px;
    overflow: hidden;
}

.rm-contact-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.rm-contact-details {
    min-width: 0;
    padding: clamp(24px, 4vw, 52px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Em telemóveis, colocar imagem por cima */
@media (max-width: 700px) {
    .rm-contact-split {
        grid-template-columns: 1fr;
    }

    .rm-contact-visual {
        min-height: 240px;
        max-height: 320px;
    }

    .rm-contact-details {
        padding: 28px 22px;
    }
}

/* ===== FASE 5: PROJECTOS E CONTACTOS ===== */
.project-content .rm-project-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin-top: 12px;
    padding: 11px 15px;
    max-width: 100%;
    border-radius: 10px;
    background: linear-gradient(120deg, #087f8c, #1769b3);
    color: #fff !important;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    overflow-wrap: anywhere;
    transition: transform .25s ease, box-shadow .25s ease;
}
.project-content .rm-project-link:hover { transform: translateY(-3px); box-shadow: 0 10px 25px rgba(0,190,210,.25); }
.project-content .rm-project-link:focus-visible { outline: 3px solid #7de9f1; outline-offset: 3px; }
.rm-contact-split {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    align-items: stretch;
    min-height: 370px;
    overflow: hidden;
    border: 1px solid rgba(77,190,210,.35);
    border-radius: 18px;
    background: linear-gradient(135deg,#12283f,#173a49);
}
.rm-contact-visual { position: relative; min-width: 0; min-height: 370px; overflow: hidden; background: #0b3048; }
.rm-contact-visual > img {
    position: absolute; inset: 0; width: 100%; height: 100%; display: block;
    object-fit: cover; object-position: center;
}
.rm-contact-details {
    min-width: 0; padding: clamp(24px,4vw,50px); display: flex;
    flex-direction: column; align-items: flex-start; justify-content: center; gap: 12px;
}
.rm-contact-details h3 { font-size: 25px; margin: 0; color: #f0f8ff; }
.rm-contact-details p { color: #c7dce8; font-size: 14px; }
.rm-contact-details > a:not(.btn) { color: #d7f6ff; font-size: 14px; overflow-wrap: anywhere; }
.rm-contact-details > a:not(.btn):hover { color: #00dfbd; }
.rm-contact-details .whatsapp { margin-top: 15px; }
.contact-location { color: #a7f3d0; font-size: 14px; }
.contact-heading { margin-bottom: 25px; }
.rm-contact-visual .contact-art { top: 50%; left: 50%; right: auto; bottom: auto; transform: translate(-50%,-50%); }
@media(max-width:700px) {
    .rm-contact-split { grid-template-columns: 1fr; }
    .rm-contact-visual { min-height: 260px; max-height: none; }
    .rm-contact-details { padding: 28px 22px; }
}
@media(prefers-reduced-motion:reduce) { .project-content .rm-project-link { transition: none; } }

/* FASE 6: contactos compactos, texto à esquerda e cartão à direita */
.contact-section .contact-grid { display:grid; grid-template-columns:1fr 1.12fr; gap:40px; align-items:center; }
.contact-section .contact-intro h2 { margin-bottom:14px; }
.contact-section .contact-card.contact-card-split {
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    min-height:220px; padding:0; border-radius:12px; overflow:hidden;
    background:linear-gradient(115deg,#0a3b57,#073148);
}
.contact-card-info { min-width:0; padding:22px 12px 22px 22px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:8px; }
.contact-card-info h3 { margin:0 0 5px; font-size:17px; }
.contact-card-info > a:not(.btn) { display:block; color:#e4f8ff; font-size:12px; overflow-wrap:anywhere; line-height:1.45; }
.contact-card-info > a:not(.btn):hover { color:#00dfbd; }
.contact-card-info .whatsapp { margin-top:8px; padding:9px 12px; font-size:11px; text-align:center; }
.contact-card-picture { position:relative; min-width:0; min-height:220px; overflow:hidden; background:#0b3048; }
.contact-card-picture > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.contact-card-picture .contact-art { position:absolute; top:50%; left:50%; right:auto; bottom:auto; transform:translate(-50%,-50%) scale(.85); }
@media(max-width:850px) { .contact-section .contact-grid { grid-template-columns:1fr; gap:20px; } }
@media(max-width:560px) { .contact-section .contact-card.contact-card-split { grid-template-columns:minmax(0,1fr) minmax(0,1fr); min-height:200px; padding:0; } .contact-card-info { padding:16px 8px 16px 14px; } .contact-card-picture { min-height:200px; } .contact-card-info .whatsapp { font-size:10px; padding:8px; } }

/* Cor verde-escuro para as etiquetas dos formulários administrativos */
.admin label,
.auth-box label,
.admin .asset-manager label,
.admin .asset-grid label {
    color: #14532d !important;
    font-weight: 600;
}
