.portfolio-page{max-width:1380px;margin:auto;padding:30px 28px 60px}.portfolio-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}.portfolio-title h1{margin:0;font-size:40px;line-height:1;letter-spacing:-1.8px}.portfolio-title>div>p:not(.eyebrow){margin:9px 0 0;color:var(--muted);font-size:14px}.save-button{padding:13px 18px;border:0;border-radius:12px;background:linear-gradient(90deg,var(--pink),#ff4f78);color:#fff;font-size:11px;font-weight:900;box-shadow:0 10px 24px rgba(237,11,112,.2);cursor:pointer}.portfolio-panel{padding:20px;border:1px solid var(--line);border-radius:19px;background:rgba(255,255,255,.94);box-shadow:var(--shadow)}.profile-editor{display:grid;grid-template-columns:220px minmax(0,1fr);gap:26px;align-items:center}.cover-editor{text-align:center}.cover-image{position:relative;width:190px;height:190px;margin:auto;border-radius:50%;background:linear-gradient(145deg,#fff0f5,#fff6e9);overflow:visible}.cover-image img{width:100%;height:100%;padding:14px;border-radius:50%;object-fit:contain}.cover-image button{position:absolute;right:5px;bottom:12px;display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--pink);font-size:18px;box-shadow:0 8px 22px #49223920;cursor:pointer}.cover-editor>small{display:block;margin-top:9px;color:var(--muted);font-size:9px}.profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}.profile-fields label{color:var(--navy);font-size:10px;font-weight:850}.profile-fields input,.profile-fields select,.profile-fields textarea,.social-list input{width:100%;margin-top:6px;padding:12px 13px;border:1px solid #eadde3;border-radius:11px;background:#fff;color:var(--navy);outline:0}.profile-fields input:focus,.profile-fields select:focus,.profile-fields textarea:focus,.social-list input:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(237,11,112,.07)}.profile-fields textarea{min-height:94px;resize:vertical}.profile-fields .wide{position:relative;grid-column:1/-1}.profile-fields .wide>span{position:absolute;right:11px;bottom:9px;color:var(--muted);font-size:8px}.profile-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.section-heading h2,.section-heading p{margin:0}.section-heading h2{font-size:17px;letter-spacing:-.3px}.section-heading h2 small{color:var(--muted);font-size:9px;font-weight:700}.section-heading p{margin-top:3px;color:var(--muted);font-size:9px}.section-heading>a{color:var(--pink);font-size:9px;font-weight:850;text-decoration:none}.info-list{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0 2px}.info-list>div{padding:12px;border-radius:13px;background:#fff8fa}.info-list dt{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:9px}.info-list dt span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#ffeaf2;color:var(--pink);font-size:14px}.info-list dd{margin:5px 0 0 32px;font-size:11px;font-weight:850}.social-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.social-list label{position:relative}.social-list label>span{position:absolute;left:11px;top:50%;z-index:1;transform:translateY(-50%);display:grid;place-items:center;width:25px;height:25px;border-radius:8px;color:#fff;font-weight:900}.social-list .instagram{background:linear-gradient(145deg,#9d31c5,#f03d6e,#ff9b2f)}.social-list .facebook{background:#2675dd}.social-list .tiktok{background:#101424}.social-list .website{background:var(--orange)}.social-list input{margin:0;padding-left:45px;font-size:10px}.gallery-section,.services-section{margin-top:14px}.outline-button{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border:1px solid #f5a4c8;border-radius:10px;background:#fff;color:var(--pink);font-size:9px;font-weight:900;cursor:pointer}.gallery-meta{display:flex;justify-content:space-between;margin-top:13px;color:var(--muted);font-size:8px}.portfolio-gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:11px;margin-top:10px}.gallery-item,.gallery-add{position:relative;aspect-ratio:1.15;border-radius:14px;overflow:hidden}.gallery-item{background:#fff6f9}.gallery-item img{width:100%;height:100%;object-fit:cover}.gallery-item button{position:absolute;right:7px;top:7px;display:grid;place-items:center;width:29px;height:29px;border:0;border-radius:50%;background:rgba(255,255,255,.94);color:var(--pink);font-size:15px;box-shadow:0 4px 12px #35132624;cursor:pointer}.gallery-item.cover:after{content:'Capa';position:absolute;left:7px;bottom:7px;padding:4px 7px;border-radius:99px;background:rgba(13,40,82,.85);color:#fff;font-size:7px;font-weight:900}.gallery-add{display:grid;place-items:center;border:1px dashed #bdc9dc;background:#fbfcff;color:#70809b;text-align:center;cursor:pointer}.gallery-add span{display:block;font-size:25px}.gallery-add small{display:block;margin-top:4px;font-size:8px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-top:15px}.service-card{display:flex;align-items:center;gap:11px;min-height:91px;padding:11px;border:1px solid #eee1e6;border-radius:14px;background:#fff}.service-card img{width:64px;height:64px;border-radius:11px;background:#fff6f8;object-fit:contain}.service-card strong,.service-card small{display:block}.service-card strong{font-size:11px}.service-card small{margin-top:4px;color:var(--green);font-size:8px;font-weight:800}.service-card span{margin-left:auto;color:var(--pink);font-size:18px}.empty-services{grid-column:1/-1;padding:25px;border:1px dashed #e4cfda;border-radius:14px;color:var(--muted);text-align:center;font-size:10px}.service-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px;background:rgba(13,40,82,.32);backdrop-filter:blur(5px)}.service-modal[hidden]{display:none}.service-modal>section{position:relative;width:min(650px,100%);padding:27px;border-radius:22px;background:#fff;box-shadow:0 30px 80px rgba(13,40,82,.24)}.service-modal h2{margin:0;font-size:25px}.service-modal>section>p:not(.eyebrow){margin:7px 0 17px;color:var(--muted);font-size:11px}.service-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.service-option{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);font-size:10px;font-weight:800;cursor:pointer}.service-option img{width:37px;height:37px;object-fit:contain}.service-option input{margin-left:auto;accent-color:var(--pink)}.service-option:has(input:checked){border-color:#f08bb7;background:#fff4f8}.section-hidden{display:none}.toast{bottom:24px}
.gallery-item.example:after{display:none}.example-badge{position:absolute;left:7px;bottom:7px;padding:4px 7px;border-radius:99px;background:rgba(255,255,255,.9);color:var(--muted);font-size:7px;font-weight:900}
.section-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.section-actions .outline-button{text-decoration:none}
@media(max-width:620px){.section-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.section-actions>*{justify-content:center;text-align:center;padding-left:7px;padding-right:7px}}
@media(max-width:1180px){.portfolio-gallery{grid-template-columns:repeat(4,1fr)}.service-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.portfolio-page{padding:22px 14px 36px}.profile-editor{grid-template-columns:160px minmax(0,1fr);gap:18px}.cover-image{width:145px;height:145px}.cover-image button{width:40px;height:40px}.profile-columns{grid-template-columns:1fr}.portfolio-gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.portfolio-title{display:block}.portfolio-title h1{font-size:34px}.save-button{width:100%;margin-top:16px}.profile-editor{grid-template-columns:1fr}.cover-image{width:160px;height:160px}.profile-fields{grid-template-columns:1fr}.profile-fields .wide{grid-column:auto}.info-list,.social-list{grid-template-columns:1fr}.portfolio-gallery{grid-template-columns:repeat(2,1fr)}.gallery-meta{display:block}.gallery-meta small{display:block;margin-top:3px}.service-grid{grid-template-columns:1fr}.service-options{grid-template-columns:1fr}.section-heading{align-items:center}.portfolio-panel{padding:16px}}

/* Controlo editorial do perfil público */
.public-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;margin-bottom:14px;padding:18px 20px;border:1px solid #efdce3;border-radius:20px;background:linear-gradient(115deg,#fff8f1,#fff5fa 60%,#f5fbff);box-shadow:0 12px 32px rgba(72,30,50,.06)}.public-control-main{display:flex;align-items:center;gap:13px}.public-status-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:14px;background:#fff;color:var(--pink);box-shadow:0 7px 17px rgba(237,11,112,.11)}.public-control h2{margin:3px 0;color:var(--navy);font-size:18px}.public-control-main p:last-child{margin:0;color:var(--muted);font-size:10px}.public-control-actions{display:flex;align-items:center;gap:10px}.visibility-toggle{display:flex;align-items:center;gap:7px;color:var(--navy);font-size:9px;font-weight:850;cursor:pointer}.visibility-toggle input{position:absolute;opacity:0}.visibility-toggle span{position:relative;width:37px;height:21px;border-radius:99px;background:#d9dce4;transition:.2s}.visibility-toggle span:after{position:absolute;left:3px;top:3px;width:15px;height:15px;border-radius:50%;background:#fff;content:'';transition:.2s}.visibility-toggle input:checked+span{background:#26a879}.visibility-toggle input:checked+span:after{transform:translateX(16px)}.public-address{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 13px;border:1px solid #f1e4e9;border-radius:13px;background:#fff}.public-address span{color:var(--muted);font-size:9px}.public-address strong{overflow:hidden;color:var(--navy);font-size:10px;text-overflow:ellipsis}.public-address button{border:0;background:transparent;color:var(--pink);font-size:9px;font-weight:900;cursor:pointer}.identity-panel{margin-top:14px}.color-controls{display:grid;grid-template-columns:220px 220px minmax(220px,1fr);gap:15px;margin-top:16px}.color-controls>label{display:grid;gap:8px;color:var(--navy);font-size:10px;font-weight:850}.color-controls>label>div{display:flex;align-items:center;gap:10px;padding:9px;border:1px solid #eadde3;border-radius:13px}.color-controls input[type=color]{width:39px;height:34px;padding:0;border:0;border-radius:9px;background:transparent;cursor:pointer}.color-controls b{color:var(--muted);font-size:9px;text-transform:uppercase}.identity-preview{display:flex;align-items:baseline;gap:7px;padding:14px 16px;border-radius:14px;background:linear-gradient(120deg,#fff8fa,#fffaf3)}.identity-preview small{display:block;margin-right:auto;color:var(--muted);font-size:8px}.identity-preview strong{font-size:19px}.identity-preview span{font-size:11px;font-weight:900}.protected-badge{flex:none;padding:6px 8px;border-radius:99px;background:#eaf8f1;color:#187b58;font-size:8px;font-weight:900}.profile-fields label>small{color:var(--muted);font-size:8px;font-weight:700}
@media(max-width:820px){.public-control{grid-template-columns:1fr}.public-control-actions{justify-content:space-between}.color-controls{grid-template-columns:1fr 1fr}.identity-preview{grid-column:1/-1}}
@media(max-width:620px){.public-control{padding:16px}.public-control-actions{align-items:stretch;flex-direction:column}.public-control-actions .outline-button{width:100%}.public-address{grid-template-columns:1fr auto}.public-address span{grid-column:1/-1}.color-controls{grid-template-columns:1fr}.identity-preview{grid-column:auto;display:grid;grid-template-columns:1fr auto}.identity-preview small{grid-column:1/-1}.protected-badge{display:none}}

/* Perfil público: controlo editorial e identidade da marca */
.public-control{position:relative;overflow:hidden;grid-template-columns:minmax(0,1fr) auto;gap:22px;margin-bottom:18px;padding:24px 26px;border:1px solid #f0dce5;border-radius:24px;background:linear-gradient(122deg,#fff 0%,#fff7fa 59%,#fff5e8 100%);box-shadow:0 14px 38px rgba(69,32,57,.07)}
.public-control:after{position:absolute;right:-62px;top:-77px;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,#ffd8e9 0,rgba(255,216,233,0) 70%);content:'';pointer-events:none}
.public-control-main,.public-control-actions,.public-address{position:relative;z-index:1}.public-control-main{gap:15px}.public-status-icon{flex-basis:46px;height:46px;border:1px solid #cfefdf;border-radius:15px;background:#effcf5;color:#149767;font-size:20px;font-weight:950;box-shadow:0 8px 20px rgba(20,151,103,.12)}
.public-control h2{margin:3px 0 4px;font-size:20px;letter-spacing:-.45px}.public-control-main p:last-child{max-width:600px;font-size:11px;line-height:1.5}.public-control-actions{gap:11px}.visibility-toggle{padding:9px 11px;border:1px solid #e4eee8;border-radius:12px;background:rgba(255,255,255,.78);font-size:10px}.visibility-toggle span{width:39px;height:22px}.visibility-toggle span:after{width:16px;height:16px}.visibility-toggle input:checked+span:after{transform:translateX(17px)}.public-control-actions .outline-button{min-height:41px;padding:10px 14px;border-color:#f2a4c6;border-radius:12px;background:#fff;color:var(--pink);text-decoration:none;font-size:10px;box-shadow:0 7px 17px rgba(237,11,112,.08)}
.public-address{gap:13px;padding:13px 14px;border-color:#f0e2e8;border-radius:14px;background:rgba(255,255,255,.9);box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}.public-address-label{font-weight:800}.public-address strong{font-size:11px;letter-spacing:.01em}.public-address button{padding:8px 11px;border:1px solid #f1c4d7;border-radius:9px;background:#fff7fa;color:var(--pink);font-size:9px;transition:background .18s ease,transform .18s ease}.public-address button:hover{background:#ffeaf3;transform:translateY(-1px)}
.cover-image button{right:1px;bottom:8px;width:50px;height:50px;border:2px solid #fff;background:linear-gradient(135deg,#ff4a8c,#ed0b70);color:#fff;box-shadow:0 12px 24px rgba(237,11,112,.25);transition:transform .18s ease,box-shadow .18s ease}.cover-image button:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 15px 28px rgba(237,11,112,.32)}.cover-image button svg{width:20px;height:20px}.cover-editor>small{margin-top:12px;font-size:10px;font-weight:750}
.identity-panel{padding:23px 24px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,249,252,.97))}.identity-panel .section-heading h2{font-size:19px}.identity-panel .section-heading p{font-size:10px}.color-controls{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(250px,1.35fr);gap:14px;margin-top:18px}.color-controls>label{gap:8px;font-size:10px}.color-controls .color-field{position:relative;min-height:54px;gap:11px;padding:8px 12px;border-color:#efdce4;border-radius:14px;background:#fff;transition:border-color .18s ease,box-shadow .18s ease}.color-controls .color-field:focus-within{border-color:#f08ab7;box-shadow:0 0 0 3px rgba(237,11,112,.08)}.color-controls input[type=color]{position:absolute;inset:0;z-index:2;width:100%;height:100%;opacity:0;cursor:pointer}.color-controls .color-field i{display:block;flex:0 0 34px;height:34px;border:2px solid #fff;border-radius:11px;background:var(--pink);box-shadow:0 3px 10px rgba(13,40,82,.16)}.color-controls b{font-size:11px;letter-spacing:.04em}.identity-preview{position:relative;overflow:hidden;min-height:54px;align-items:center;padding:11px 15px;border:1px solid #f0dce5;border-radius:14px;background:linear-gradient(125deg,#fff7fb,#fffdf8)}.identity-preview:before{position:absolute;right:-15px;bottom:-27px;width:104px;height:104px;border-radius:50%;background:var(--preview-accent,#ed0b70);content:'';opacity:.09}.identity-preview>*{position:relative}.identity-preview small{font-size:8px}.identity-preview strong{font-size:20px}.identity-preview span{font-size:11px}
.service-card img{flex:none}.service-card img[src$="category-extras.webp"],.service-card img[src$="category-papelaria-personalizada.webp"]{background:#fff4f8}
@media(max-width:820px){.public-control{grid-template-columns:1fr}.color-controls{grid-template-columns:1fr 1fr}.identity-preview{grid-column:1/-1}}
@media(max-width:620px){.public-control{padding:19px 17px;border-radius:20px}.public-control-main{align-items:flex-start}.public-control h2{font-size:18px}.public-control-actions{display:grid;grid-template-columns:1fr 1fr}.visibility-toggle{justify-content:center}.public-control-actions .outline-button{width:100%}.public-address{grid-template-columns:1fr}.public-address button{justify-self:start}.color-controls{grid-template-columns:1fr}.identity-preview{grid-column:auto}.cover-image button{width:46px;height:46px}}
