@import url("brand.css");
/* Black Rose polish pass: spacing, interaction, mobile portal, guest request UI */
:root{
  --space-1:6px;--space-2:10px;--space-3:14px;--space-4:18px;--space-5:24px;--space-6:32px;--space-7:44px;--space-8:64px;
  --focus:0 0 0 3px rgba(168,91,104,.24);
}
html{scroll-padding-top:90px}
a,button,input,select,textarea{transition:border-color .18s ease,background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #a85b68;outline-offset:3px;box-shadow:var(--focus)}
button:disabled{cursor:not-allowed;opacity:.5}
.button,.nav-cta,.package-card button{min-height:46px}
.button:hover,.nav-cta:hover,.package-card button:hover{transform:translateY(-1px)}

/* Public-site rhythm */
.experience{padding-top:84px;padding-bottom:84px}
.services,.packages,.gallery,.process{padding-top:88px;padding-bottom:88px}
.portal-showcase,.contact{padding-top:88px;padding-bottom:88px}
.section-heading{margin-bottom:42px}
.service-grid,.gallery-grid{gap:14px}
.package-grid{gap:18px}
.contact-form{gap:16px}
.footer-links a,.site-nav a,.text-link{position:relative}
.footer-links a:after,.site-nav>a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:#c69c6a;transition:right .18s ease}
.footer-links a:hover:after,.site-nav>a:hover:after{right:0}

/* Portal layout */
.portal-page{background:#eee7dd}
.portal-main{max-width:1280px;margin:0 auto;padding:32px 36px 56px}
.portal-header{margin-bottom:20px;align-items:center}
.portal-header h1{line-height:1.02}
.portal-tab>.tab-intro{margin-bottom:18px}
.portal-tab>.portal-card,.portal-tab>.portal-two,.portal-tab>.dashboard-grid,.portal-tab>.overview-hero,.portal-tab>.music-planner-pro{margin-top:0}
.dashboard-grid,.portal-two{gap:12px}
.dashboard-grid{margin-top:12px}
.portal-two{margin-top:12px}
.portal-card,.dashboard-grid article{padding:20px}
.portal-card-head{margin-bottom:14px}
.detail-list div,.task-list li,.payment-history li{min-height:46px;align-items:center}
.planner{gap:16px}
.planner input,.planner textarea,.timeline-add input,.message-add input{border-radius:0}
.form-foot{min-height:46px}

/* Real next-step actions */
.task-list li{padding:0;border-top:1px solid #e7ded5}
.task-action{width:100%;border:0;background:transparent;padding:13px 2px;display:flex;justify-content:space-between;gap:18px;align-items:center;text-align:left;color:#231b1f}
.task-action:hover{background:#f5eee6;padding-left:8px;padding-right:8px}
.task-action>span{display:grid;gap:3px}
.task-action strong{font-size:10px;font-weight:700}
.task-action small{font-size:8px;color:#8a7e78}
.task-action b{font-size:8px;color:#7a3b47;white-space:nowrap}

/* Guest request center */
.guest-link-card h3{margin:8px 0 14px;font-size:21px;line-height:1.2}
.guest-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.guest-actions .button{min-height:42px}
.guest-actions a.button{text-decoration:none}
.guest-review{margin-top:12px}
.guest-review-list{list-style:none;margin:0;padding:0}
.guest-request-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:14px 0;border-top:1px solid #e7ded5;align-items:center}
.guest-request-row:first-child{border-top:0}
.guest-request-title{font-family:Georgia,"Times New Roman",serif;font-size:17px;color:#241a1e}
.guest-request-artist{font-size:9px;color:#746b66;margin-top:3px}
.guest-request-note{font-size:8px;color:#93636d;margin-top:5px}
.guest-request-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.guest-request-actions button{border:1px solid #d6c8c0;background:#fff;padding:9px 11px;font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.guest-request-actions button[data-guest-approve]{background:#4f2029;color:#fff;border-color:#71303c}
.guest-request-status{font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:7px 9px;background:#e7ded5;color:#6f625e}
.guest-empty{padding:24px 0;color:#807671;font-size:10px}

/* Generic feedback */
.portal-toast{position:fixed;z-index:500;left:50%;bottom:28px;transform:translate(-50%,18px);opacity:0;pointer-events:none;background:#171214;color:#fff;border:1px solid #633a44;padding:12px 16px;box-shadow:0 18px 55px rgba(0,0,0,.3);font-size:10px;transition:.2s;max-width:min(440px,calc(100vw - 30px));text-align:center}
.portal-toast.show{opacity:1;transform:translate(-50%,0)}

/* Timeline touch targets */
.timeline-list li{min-height:48px;align-items:center}
.timeline-list li button{padding:9px;border:1px solid #e0d5cc;background:#fff}
.message-add button{min-width:92px}

/* Guest public request page */
.guest-page{min-height:100vh;background:radial-gradient(circle at 80% 0,rgba(113,48,60,.2),transparent 36%),#0b090a;color:#f3eee5}
.guest-shell{width:min(760px,calc(100% - 32px));margin:0 auto;padding:34px 0 64px}
.guest-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:54px}
.guest-back{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#9d918b}
.guest-hero{margin-bottom:28px}
.guest-hero h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:clamp(42px,8vw,68px);line-height:.95;margin:10px 0 14px;letter-spacing:-.04em}
.guest-hero p{max-width:620px;color:#a99e99;font-size:12px;line-height:1.7}
.guest-search-card{background:#f6f0e8;color:#1d171a;padding:24px;border:1px solid #9c716c;box-shadow:0 26px 80px rgba(0,0,0,.25)}
.guest-search-card h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:30px;margin:0 0 6px}
.guest-search-card>p{font-size:10px;color:#786f6a;line-height:1.55;margin:0 0 18px}
.guest-search-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.guest-search-row input{width:100%;min-height:48px;border:1px solid #d6c9c0;background:#fff;padding:0 14px}
.guest-search-row button{border:1px solid #71303c;background:#4f2029;color:#fff;padding:0 18px;font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.guest-search-status{font-size:9px;color:#7d736e;min-height:18px;margin-top:10px}
.guest-results{display:grid;gap:8px;margin-top:10px}
.guest-result{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:12px;align-items:center;border-top:1px solid #e2d8cf;padding-top:10px}
.guest-result img{width:54px;height:54px;object-fit:cover;background:#e8ddd4}
.guest-result-title{font-family:Georgia,"Times New Roman",serif;font-size:16px}
.guest-result-artist{font-size:9px;color:#786e69;margin-top:2px}
.guest-result-meta{font-size:8px;color:#9a8f89;margin-top:4px}
.guest-result-actions{display:flex;gap:6px}
.guest-preview,.guest-select{min-height:38px;border:1px solid #d2c3bb;background:#fff;color:#4f3339;padding:0 11px}
.guest-select{background:#54202a;color:#fff;border-color:#74323f;font-size:8px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.guest-selected{margin-top:18px;padding:16px;background:#efe5db;border-left:3px solid #71303c;display:none}
.guest-selected.show{display:block}
.guest-selected strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:18px}
.guest-selected span{font-size:9px;color:#786e69}
.guest-form{display:grid;gap:12px;margin-top:14px}
.guest-form label{display:grid;gap:6px;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#675e59}
.guest-form input,.guest-form textarea{width:100%;border:1px solid #d6c9c0;background:#fff;padding:12px}
.guest-form button{min-height:46px;border:1px solid #71303c;background:#4f2029;color:#fff;font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.guest-success{display:none;padding:20px;background:#e0eadf;color:#315a38;margin-top:16px;font-size:11px;line-height:1.6}
.guest-success.show{display:block}

@media(max-width:1000px){
  .portal-page{display:block}
  .portal-sidebar{position:sticky;top:0;z-index:90;width:100%;height:auto;padding:12px 14px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 14px;align-items:center;box-shadow:0 10px 32px rgba(0,0,0,.16)}
  .portal-brand{margin:0}
  .portal-brand .brand-rose{width:36px;height:36px}
  .portal-brand .brand-type strong{font-size:15px}
  .portal-brand .brand-type small{letter-spacing:.22em}
  .event-block{margin:0;padding:0;border:0;text-align:right}
  .event-block small{display:none}
  .event-block strong{font-size:17px;margin:0}
  .event-block span{font-size:8px}
  .portal-nav{grid-column:1/-1;display:flex;overflow-x:auto;gap:4px;padding-top:8px;border-top:1px solid var(--line);scrollbar-width:none}
  .portal-nav::-webkit-scrollbar{display:none}
  .portal-nav button{flex:0 0 auto;border-left:0;border-bottom:2px solid transparent;padding:10px 12px;white-space:nowrap}
  .portal-nav button.active{border-left:0;border-bottom-color:#a05b65}
  .sidebar-back{display:none}
  .portal-main{padding:22px 18px 52px}
}

@media(max-width:650px){
  html{scroll-padding-top:126px}
  .experience,.portal-showcase,.contact{padding-top:64px;padding-bottom:64px}
  .services,.packages,.gallery,.process{padding-top:68px;padding-bottom:68px}
  .section-heading{margin-bottom:32px}
  .portal-sidebar{padding:10px 12px;gap:6px 10px}
  .portal-brand .brand-type small{display:none}
  .event-block strong{font-size:15px}
  .portal-nav{margin-left:-2px;margin-right:-2px}
  .portal-nav button{padding:9px 10px;font-size:9px}
  .portal-main{padding:18px 12px 42px}
  .portal-header{margin-bottom:14px}
  .portal-header h1{font-size:36px}
  .portal-status{padding:7px 9px}
  .overview-hero{min-height:180px;padding:20px}
  .overview-hero strong{font-size:54px}
  .dashboard-grid,.portal-two{gap:8px;margin-top:8px}
  .portal-card,.dashboard-grid article{padding:17px}
  .tab-intro{margin-bottom:14px}
  .tab-intro h2{font-size:38px}
  .two{gap:10px}
  .task-action{padding:13px 0}
  .guest-request-row{grid-template-columns:1fr;gap:10px}
  .guest-request-actions{justify-content:flex-start}
  .portal-toast{bottom:max(18px,env(safe-area-inset-bottom))}
  .guest-shell{width:min(100% - 24px,760px);padding-top:18px}
  .guest-top{margin-bottom:38px}
  .guest-search-card{padding:18px}
  .guest-search-row{grid-template-columns:1fr}
  .guest-search-row button{min-height:44px}
  .guest-result{grid-template-columns:48px minmax(0,1fr);gap:10px}
  .guest-result img{width:48px;height:48px}
  .guest-result-actions{grid-column:1/-1;justify-content:flex-end}
}
