/* Rivivi · official visual identity, approved desktop edition 03. */
:root{--rivivi-ink:#171717;--rivivi-paper:#fff;--rivivi-muted:#626262;--rivivi-line:#dedede;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;background:#fff;color:#171717}
body{background:#fff;color:#171717}
h1,h2,h3,.couple-card strong,.panel-heading strong{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.035em}
h1{line-height:1.12}h2{line-height:1.2}
p{line-height:1.6}.eyebrow{color:#626262;letter-spacing:.2em}
button,input,select,textarea{font-family:inherit}button{border-radius:10px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #171717;outline-offset:4px}
input,select,textarea{border-color:#d2d2d2;border-radius:9px;accent-color:#171717}
button.primary,.portal-nav button.active,.tabs button.active,.contract-button-primary{background:#111;color:#fff;border-color:#111}
.panel,.content-card,.couple-card,.login-card,.workflow-panel{background:#fff;border-color:#dedede;border-radius:14px}
.portal-shell{max-width:1440px}.portal-shell>.brand{border-color:#dedede;align-items:center;padding-block:12px 24px}.portal-shell>.brand img{max-width:min(65%,440px);height:auto}
body>header{background:#fff;border-color:#dedede;padding-block:22px}.brand{font-weight:500}.staff-account-tools{font-size:14px}
main{max-width:1440px}.login-card,.login-panel{max-width:520px;padding:clamp(24px,5vw,44px);box-shadow:0 16px 60px #00000008;border-radius:14px}
.login-card h1,.login-panel h1{font-size:clamp(30px,4vw,42px)}
body:has(#staffLoginView:not([hidden])),body:has(#loginView:not([hidden])){min-height:100vh;background:linear-gradient(90deg,#fff 15%,#fffffff0 48%,#ffffff70 100%),url('/assets/studio-hero.jpg') center/cover fixed}
body:has(#staffLoginView:not([hidden]))>header,body:has(#loginView:not([hidden])) .brand{background:transparent}
body:has(#staffLoginView:not([hidden])) .staff-account-tools{display:none}
#staffDashboard>.section-heading{padding:clamp(24px,4vw,48px);border:1px solid #dedede;border-radius:16px;margin-bottom:28px;background:linear-gradient(90deg,#fff 30%,#fffffff0 55%,#ffffff55),url('/assets/studio-hero.jpg') right 45%/cover}
.studio-management{background:#ffffffeb}.staff-command-groups{border-color:#dedede}.staff-command-groups button{min-height:44px}
.couples-toolbar{margin-block:24px}.couple-card{padding:24px;gap:18px}.couple-card strong{font-size:27px}.couple-complete,.couple-complete:hover,.couple-year-table .couple-complete{background:#f5f5f5;border-color:#999}
.couple-statuses,.couple-card .couple-statuses,.couple-year-table .couple-statuses{gap:12px;flex-wrap:wrap;padding:5px 3px;margin-block:4px 12px}
.couple-status-icon[data-state]{color:#626262;border:1px solid #ccc;border-radius:50%;background:#fff}.couple-status-icon[data-state=complete],.couple-status-icon[data-state=ready]{color:#171717;border-color:#171717}
.client-progress{gap:16px;padding:6px 4px;margin:16px 0 26px;flex-wrap:wrap}.client-progress-icon{border-radius:50%;background:#fff;color:#626262}.client-progress-icon[data-state=complete]{background:#fff;color:#171717;border-color:#171717}.client-progress-icon[data-state=complete] span{background:#171717;color:#fff}
.portal-nav{background:#fffffff5;border-radius:12px;gap:8px;padding:8px;scroll-padding:8px}.portal-nav button{min-height:44px;border-radius:8px}.couple-header{padding:28px 0}.couple-header h1{font-size:clamp(34px,5vw,60px)}
.workflow-panel h2{font-size:clamp(28px,4vw,40px)}.selection-bar,.confirm-dock{background:#fffffff5}.choice-card.selected{background:#171717;color:#fff}
.wedding-calendar .calendar-days .calendar-event,.wedding-calendar[data-view=month] .calendar-days .calendar-event{justify-self:center;position:relative;width:100%;max-width:36px;height:auto;min-height:0;aspect-ratio:1;border-radius:50%;padding:0;display:grid;place-items:center;line-height:1;background:#171717;color:#fff}
.wedding-calendar .calendar-days .calendar-event:hover,.wedding-calendar .calendar-days .calendar-multiple{background:#171717;color:#fff}.calendar-count{position:absolute;top:-4px;right:-3px;display:grid;place-items:center;min-width:17px;height:17px;margin:0;padding:0 3px;border:1px solid #171717;background:#fff;color:#171717;font-size:10px;line-height:1}
.wedding-calendar .calendar-event[aria-pressed=true]{outline:2px solid #171717;outline-offset:3px}.calendar-months{gap:30px}.calendar-month h3{font-size:24px}.calendar-days{row-gap:10px}.calendar-days>span{color:#171717}.calendar-days .calendar-weekday{color:#626262}
.contract-root{--shell-bg:#fff;--shell-panel:#fff;--shell-border:#dedede;--shell-text:#171717;--shell-muted:#626262}.home-shortcut-footer{border-color:#dedede;background:#fff}
body.rivivi-contract button:not(.secondary){background:#171717;color:#fff}.rivivi-contract main{border:1px solid #dedede}
[hidden]{display:none!important}
@media(max-width:640px){main{padding-inline:16px}.login-card,.login-panel{margin:28px auto}.portal-shell>.brand{gap:16px;flex-wrap:wrap}.portal-shell>.brand strong{font-size:10px}.couple-statuses{gap:12px}.couple-year-table .couple-statuses{gap:8px}#staffDashboard>.section-heading{padding:24px 18px}.couple-header{padding:20px 0}.tabs{gap:8px}.tabs button{min-height:44px;font-size:14px}.client-progress{gap:14px}.portal-nav button{font-size:12px}.calendar-months{grid-template-columns:1fr}}

.photo-modal a:focus-visible{outline:3px solid #fff;outline-offset:3px}
/* Homes and mobile navigation follow the approved reference layout. */
.rv-staff-home,.rv-couple-home{max-width:1040px;margin:12px auto 32px}.rv-staff-home h1,.rv-couple-home h1{font-size:clamp(34px,4.5vw,54px);line-height:1.07;margin:14px 0 20px}.rv-staff-home h1 em,.rv-couple-home h1 em{font-weight:400;color:#343434;overflow-wrap:anywhere}.rv-intro{color:#626262;margin-bottom:28px}.rv-staff-links{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-block:28px}.rv-tile{display:flex;align-items:center;gap:14px;text-align:left;min-width:0;width:100%;padding:18px;background:#fff;color:#171717;border:1px solid #dedede;border-radius:12px;letter-spacing:0}.rv-tile-copy{display:grid;gap:5px;min-width:0}.rv-tile strong{font:400 23px/1.15 Georgia,serif;letter-spacing:-.025em;overflow-wrap:anywhere}.rv-tile small{color:#626262;font-size:13px;font-weight:400;line-height:1.4}.rv-icon{width:48px;height:48px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#f2f2f2}.rv-icon svg{width:26px;height:26px}.rv-chevron{margin-left:auto;color:#626262;font-size:24px}.rv-photo{position:relative;overflow:hidden;border-radius:14px;aspect-ratio:2.2;margin-block:24px;background:#eee}.rv-photo>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.rv-photo::after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,#0008)}.rv-photo>p{position:absolute;left:22px;bottom:18px;z-index:1;color:#fff;font:24px/1.2 Georgia,serif;margin:0}.rv-photo>p>*{display:block}.rv-staff-home>.rv-photo{aspect-ratio:4}.rv-couple-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.rv-couple-links .rv-tile{display:grid;grid-template-columns:1fr auto;align-content:start}.rv-couple-links .rv-tile-copy{grid-column:1/-1;grid-row:2}.rv-couple-links .rv-chevron{grid-column:2;grid-row:1}.rv-wedding-meta{display:flex;gap:24px;margin-top:24px;padding-top:20px;border-top:1px solid #dedede}.rv-wedding-meta>div{flex:1;min-width:0}.rv-wedding-meta dt{font-size:13px;color:#626262}.rv-wedding-meta dd{margin:6px 0 0;font-weight:600;font-size:15px}.rv-bottom-nav{display:flex;justify-content:center;gap:16px;border-top:1px solid #dedede;padding:12px;background:#fff}.rv-bottom-nav button{display:grid;justify-items:center;gap:5px;border:0;background:#fff;color:#626262;font-size:12px;padding:8px 14px;letter-spacing:0;min-height:48px}.rv-bottom-nav svg{width:23px;height:23px}.rv-bottom-nav button[aria-current=page]{color:#111;font-weight:700;background:#f1f1f1;border-radius:8px}.rv-menu-toggle{padding:10px;min-width:44px;min-height:44px;border:0;background:#fff;color:#171717}.rv-menu-toggle svg{width:24px;height:24px}.rv-menu{width:min(680px,calc(100% - 24px));padding:24px;max-height:90dvh}.rv-menu-close{display:block;margin-left:auto;margin-bottom:20px}.rv-menu .studio-management{border:0;padding:0}.rv-menu .studio-management>summary{display:none}.rv-menu .staff-command-groups{margin:0;padding:0;border:0}.rv-menu .staff-account-actions{margin-top:24px;padding-top:16px;border-top:1px solid #dedede}.rv-menu .staff-account-actions .text-button{margin-top:0}.rv-menu .staff-command-groups button{font-size:14px;font-weight:500}
body[data-staff-page=home] #staffDashboard>.section-heading,body[data-staff-page=home] .couples-toolbar,body[data-staff-page=home] #staffCouples,body[data-staff-page=calendar] .couples-toolbar,body[data-staff-page=calendar] #staffCouples{display:none}body[data-portal-page=home] .couple-header,body[data-portal-page=home] #clientProgress,body[data-portal-page=home] #clientProgressDetail,body[data-portal-page=home] #portalNav{display:none}
#staffDashboard>.section-heading{background:#fff;padding:0;border:0;margin:24px 0}.rv-staff-home .eyebrow,.rv-couple-home .eyebrow{font-size:11px}.rv-staff-home .rv-tile:hover,.rv-couple-home .rv-tile:hover{background:#fafafa}
@media(max-width:760px){
 body>header{gap:12px;align-items:center;padding:18px 20px}body>header .brand{flex:1;font-size:13px;letter-spacing:.14em}.staff-account-tools{display:none}main,.portal-shell{padding:20px 20px 110px;max-width:100%;min-width:0}.rv-staff-home,.rv-couple-home{margin-top:8px}.rv-staff-home h1,.rv-couple-home h1{font-size:clamp(31px,8vw,42px)}.rv-staff-links{grid-template-columns:1fr;gap:12px;margin-top:30px}.rv-tile{padding:14px;gap:12px;min-height:78px}.rv-tile strong{font-size:21px}.rv-icon{width:44px;height:44px}.rv-intro{font-size:15px;line-height:1.5}.rv-photo{aspect-ratio:1.48}.rv-staff-home>.rv-photo{aspect-ratio:3.1}.rv-staff-home>.rv-photo>p{font-size:18px;left:16px;bottom:14px}.rv-couple-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rv-couple-links .rv-tile{min-height:140px}.rv-bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;padding:8px 8px calc(8px + env(safe-area-inset-bottom));gap:2px;justify-content:space-around;background:#fffffff7;backdrop-filter:blur(12px)}.rv-bottom-nav button{flex:1;min-width:0;padding:7px 2px;font-size:10px;line-height:1.3}.portal-nav{position:static;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:20px}.portal-nav button{overflow-wrap:anywhere}.home-shortcut-footer{padding-bottom:100px}.confirm-dock{position:static;display:grid;padding:16px 0;margin-top:22px;backdrop-filter:none}.rv-menu .studio-management .actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.rv-menu .studio-management button{width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;padding:10px 8px}.rv-menu .staff-command-groups{gap:20px}.rv-menu{padding:20px}.rv-menu .staff-account-actions{gap:8px}.rv-wedding-meta{gap:16px}.couples-toolbar{position:static;margin-top:12px;background:#fff}.couples-filters{grid-template-columns:90px minmax(0,1fr);gap:12px}.couples-filters label{font-size:12px}.couples-filters input,.couples-filters select{font-size:16px;width:100%}.couples-view-bar{flex-wrap:wrap}.couples-view-toggle{margin-left:auto}.couples-view-toggle button{padding:10px 12px;font-size:13px}
 .couple-year-scroll{overflow:visible;border:0;background:transparent}.couple-year-table{display:block;min-width:0;width:100%;table-layout:auto}.couple-year-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.couple-year-table tbody{display:grid;gap:14px}.couple-year-table .couple-year-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:16px;border:1px solid #dedede;border-radius:12px;min-width:0}.couple-year-table td{display:block;padding:0;border:0;min-width:0;overflow-wrap:anywhere}.couple-year-table td::before{content:attr(data-label);display:block;color:#626262;font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}.couple-year-table td:nth-child(2){grid-column:1/-1;grid-row:1;display:flex;gap:12px;align-items:center;justify-content:space-between}.couple-year-table td:nth-child(2)::before,.couple-year-table td:nth-child(6)::before{display:none}.couple-year-table .couple-info strong{font:400 23px/1.15 Georgia,serif}.couple-year-table td:nth-child(5){grid-column:1/-1}.couple-year-table td:nth-child(6){grid-column:1/-1}.couple-year-table .couple-open{width:100%;min-height:44px}.couple-year-table .couple-statuses{flex-wrap:wrap;gap:12px;margin:0;padding:0}.couple-year-table .couple-status-icon{width:38px;height:38px;flex-shrink:0}.couple-month h2{font-size:24px;margin:24px 0 14px}
}
.rv-menu-link{display:block;width:100%;text-align:left;margin:8px 0;background:#fff;color:#171717;border:1px solid #dedede;min-height:44px}.rv-menu .logout{position:static;margin:20px 0 0;width:100%}body[data-portal-page=login] #coupleMenuToggle{display:none}#logoArea .rv-menu-toggle{margin-left:auto}#logoArea strong{font-size:10px}

.couple-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:20px 0}.couple-edit-form[hidden]{display:none}.couple-edit-form label{display:grid;gap:6px;min-width:0}.couple-edit-form input{width:100%;box-sizing:border-box;min-width:0}.couple-edit-form p{grid-column:1/-1}@media(max-width:600px){.couple-edit-form{grid-template-columns:1fr}}

.album-personalization{display:grid;gap:16px;padding:20px;background:#f3f3f3;border:1px solid #777;border-radius:14px;min-width:0}.album-personalization h3,.album-personalization p{margin:0}.album-personalization p{color:#444;font-size:14px}.album-personalization label{margin:0;min-width:0;gap:8px;font-size:15px}.album-personalization input{display:block;min-width:0;max-width:100%;width:100%;min-height:48px;background:#fff;color:#111;border:1px solid #666;padding:12px;letter-spacing:0;font-size:16px;color-scheme:light}.album-personalization input::placeholder{color:#666;opacity:1}.album-personalization input:focus-visible{outline:2px solid #111;outline-offset:2px}.album-personalization button{justify-self:start;margin-top:4px}

.album-personalization label[hidden]{display:none}.album-personalization select{width:100%;min-width:0;min-height:48px;padding:12px;border:1px solid #666;background:#fff;color:#111;font-size:16px}
