/* ═══════════════════════════════════════════════════════════
   Gia Huy & Khánh Chi — Clean Romantic Theme (Lightweight)
   ═══════════════════════════════════════════════════════════ */

*{margin:0;padding:0;box-sizing:border-box}

:root{
  --primary:#d4748a;
  --primary-light:#e8a4b4;
  --primary-soft:#fdf0f3;
  --accent:#a88bc2;
  --accent-light:#f2ecf7;
  --mint:#5ea88e;
  --mint-light:#edf7f2;
  --text:#3a2e32;
  --text-muted:#9a8a90;
  --border:#f0e4e8;
  --shadow:0 1px 8px rgba(0,0,0,.04);
  --shadow-hover:0 6px 20px rgba(0,0,0,.08);
  --radius:14px;
}

body{
  font-family:'Quicksand','Nunito',system-ui,sans-serif;
  color:var(--text);
  min-height:100vh;
  background:#fff;
  font-size:15px;
}

/* ─── Header ─── */
.header{
  background:linear-gradient(135deg,#fff9fa 0%,#fdf0f3 50%,#f8edf5 100%);
  padding:28px 24px 22px;
  text-align:center;
  position:fixed;top:0;left:0;right:0;z-index:100;
  box-shadow:0 2px 12px rgba(200,140,170,.1);
  border-bottom:1px solid var(--border);
  transition:padding .4s cubic-bezier(.4,0,.2,1);
}
.header::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
  background:rgba(255,255,255,.3);
}
.header-inner{position:relative}

.title-main{
  font-family:'Dancing Script',cursive;
  font-weight:700;
  font-size:2.2rem;color:var(--primary);margin-bottom:2px;
  display:inline-block;
  transition:transform .4s cubic-bezier(.4,0,.2,1);
  transform-origin:left center;
}
.title-sub{
  font-family:'Dancing Script',cursive;
  font-size:1.15rem;color:var(--accent);
  font-weight:500;margin-bottom:6px;
  transition:opacity .3s cubic-bezier(.4,0,.2,1), transform .3s cubic-bezier(.4,0,.2,1);
}
.header .subtitle{
  color:var(--text-muted);font-size:0.75rem;
  font-weight:500;font-style:italic;
  transition:opacity .25s cubic-bezier(.4,0,.2,1), transform .25s cubic-bezier(.4,0,.2,1);
}

/* Shrink-only tagline (right side) */
.shrink-tagline{
  position:absolute;right:24px;top:50%;
  transform:translateY(-50%);
  font-family:'Dancing Script',cursive;
  font-size:1rem;color:var(--accent);
  opacity:0;pointer-events:none;
  transition:opacity .4s cubic-bezier(.4,0,.2,1) .1s;
  white-space:nowrap;
}

/* Shrunk header — fixed pos means no content reflow */
.header.shrink{
  padding:10px 24px 8px;
}
.header.shrink .title-main{
  transform:translateX(calc(-50vw + 50% + 24px)) scale(.75);
  margin-bottom:0;
}
.header.shrink .title-sub{
  opacity:0;transform:translateY(-8px);
  position:absolute;pointer-events:none;
}
.header.shrink .subtitle{
  opacity:0;transform:translateY(-6px);
  position:absolute;pointer-events:none;
}
.header.shrink .shrink-tagline{
  opacity:1;
}

/* ─── Container ─── */
.container{
  max-width:1440px;margin:0 auto;
  padding:28px 20px 20px;
}

/* ─── Controls ─── */
.controls{
  display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;align-items:center;
  background:#fff;
  padding:14px 18px;border-radius:var(--radius);
  border:1px solid var(--border);box-shadow:var(--shadow);
}
.search-box{flex:1;min-width:240px;position:relative}
.search-icon-svg{
  position:absolute;left:13px;top:50%;
  transform:translateY(-50%);
  width:16px;height:16px;color:var(--text-muted);
  pointer-events:none;
}
.search-box input{
  width:100%;padding:11px 16px 11px 38px;
  border-radius:10px;
  border:1px solid var(--border);
  background:#fafafa;
  color:var(--text);font-size:0.9rem;font-family:inherit;
  outline:none;transition:border-color .2s,box-shadow .2s;
}
.search-box input:focus{
  border-color:var(--primary-light);
  box-shadow:0 0 0 3px rgba(212,116,138,.08);
}
.search-box input::placeholder{color:var(--text-muted)}

.filter-group{display:flex;gap:8px;flex-wrap:wrap}
.select-wrap{position:relative}
.select-icon{
  position:absolute;left:11px;top:50%;
  transform:translateY(-50%);width:15px;height:15px;
  color:var(--primary);pointer-events:none;opacity:.7;
}
select{
  padding:10px 32px 10px 32px;border-radius:10px;
  border:1px solid var(--border);
  background:#fafafa;
  color:var(--text);font-size:0.85rem;font-family:inherit;
  cursor:pointer;outline:none;min-width:140px;
  transition:border-color .2s;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='none' stroke='%23d4748a' stroke-width='1.5' stroke-linecap='round' d='M1 1l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 11px center;
}
select:focus{border-color:var(--primary-light)}
select:active{border-color:var(--primary)}
select.has-value{
  border-color:var(--primary);
  background-color:#fef0f3;
  color:var(--primary);
  font-weight:600;
}

.view-toggle{
  display:flex;gap:2px;
  background:#f8f4f5;border-radius:10px;
  padding:3px;border:1px solid var(--border);
}
.view-toggle button{
  padding:7px 16px;border:none;background:transparent;
  color:var(--text-muted);cursor:pointer;border-radius:8px;
  font-size:0.82rem;font-family:inherit;font-weight:600;
  transition:all .2s;
  display:inline-flex;align-items:center;gap:5px;
}
.view-toggle button.active{
  background:var(--primary);
  color:#fff;
}
.view-toggle button:hover:not(.active){
  background:#fdeef2;color:var(--primary);
}
.view-toggle button:active{
  transform:scale(.93);
}

.btn-reset{
  padding:10px 16px;border-radius:10px;
  border:1px solid var(--border);
  background:#fafafa;
  color:var(--text-muted);cursor:pointer;
  font-size:0.85rem;font-family:inherit;font-weight:600;
  transition:all .2s;
  display:inline-flex;align-items:center;gap:5px;
}
.btn-reset:hover{
  background:var(--primary-soft);color:var(--primary);
  border-color:var(--primary-light);
}
.btn-reset:active{
  transform:scale(.93);background:var(--primary-light);color:#fff;
}

/* ─── Stats ─── */
.stats-bar{
  display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;
}
.stat{
  background:#fff;
  padding:7px 14px;border-radius:10px;
  font-size:0.84rem;color:var(--text-muted);font-weight:600;
  border:1px solid var(--border);
  display:inline-flex;align-items:center;gap:6px;
}
.stat strong{color:var(--primary);font-weight:700}
.stat-icon{color:var(--primary-light)}

/* ─── Grid ─── */
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:14px;
}

/* ─── Cards ─── */
.card{
  background:#fff;
  border-radius:var(--radius);padding:20px;
  border:1px solid var(--border);
  border-top:3px solid var(--primary-light);
  transition:transform .2s,box-shadow .2s;
  box-shadow:var(--shadow);
  overflow:hidden;
  word-break:break-word;
  position:relative;
}
.card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-hover);
  border-top-color:var(--primary);
}

.card-header{
  display:flex;justify-content:space-between;
  align-items:flex-start;margin-bottom:6px;gap:8px;
}
.card-name{
  font-size:1.02rem;font-weight:700;
  color:var(--text);line-height:1.35;
  flex:1;min-width:0;
}
.card-price{
  font-size:0.76rem;color:var(--mint);font-weight:700;
  white-space:nowrap;
  background:var(--mint-light);padding:2px 9px;
  border-radius:12px;max-width:50%;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;
}
.card-dish{
  color:var(--primary);font-size:0.84rem;
  margin-bottom:8px;font-weight:500;
  font-style:italic;
}
.card-tags{
  display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px;
}
.tag{
  padding:2px 9px;border-radius:12px;
  font-size:0.72rem;font-weight:600;
}
.tag-cat{background:var(--primary-soft);color:var(--primary)}
.tag-dist{background:var(--accent-light);color:var(--accent)}
.tag-branch{background:#e8f5e9;color:#2e7d32;font-weight:500}

.branch-list{display:flex;flex-direction:column;gap:2px}
.branch-item{display:flex;align-items:flex-start;gap:5px}
.branch-item a{overflow:hidden;text-overflow:ellipsis}
.branch-item strong{color:var(--text);white-space:nowrap}

.card-info{
  font-size:0.8rem;color:var(--text-muted);
  line-height:1.7;
  overflow:hidden;
}
.card-info div{margin-bottom:2px;display:flex;align-items:flex-start;gap:5px;overflow:hidden}
.card-info div span{overflow:hidden;text-overflow:ellipsis}
.info-icon{flex-shrink:0;color:var(--primary-light)}

.card-rating{
  margin-top:8px;font-size:0.78rem;color:var(--text-muted);
  font-style:italic;
  border-top:1px solid var(--border);padding-top:8px;
  line-height:1.5;
  display:flex;align-items:flex-start;gap:5px;
}
.card-rating .info-icon{color:var(--accent);margin-top:2px}

.card-actions{
  display:flex;align-items:center;justify-content:space-between;margin-top:10px;flex-wrap:wrap;gap:8px;
}
.actions-left{
  display:flex;gap:8px;flex-wrap:wrap;
}
.card-links{
  display:flex;gap:8px;margin-top:6px;flex-wrap:wrap;
  padding-top:8px;border-top:1px solid var(--border);
}
.btn-google, .btn-map{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 12px;
  font-size:0.76rem;font-weight:600;
  border-radius:20px;
  text-decoration:none;transition:all .2s;
}
.btn-google{
  color:var(--primary);background:var(--primary-soft);
  border:1px solid var(--primary-light);
}
.btn-google:hover{
  background:var(--primary);color:#fff;
  border-color:var(--primary);
}
.btn-map{
  color:var(--mint);background:#edf7f2;
  border:1px solid #b8dfc9;
}
.btn-map:hover{
  background:var(--mint);color:#fff;
  border-color:var(--mint);
}
.btn-google svg, .btn-map svg{flex-shrink:0}
.btn-sm{padding:4px 8px;gap:0}
.td-actions{white-space:nowrap}
.td-actions .btn-sm{display:inline-flex}
.td-actions .btn-sm + .btn-sm{margin-left:4px}

/* ─── No Results ─── */
.no-results{
  text-align:center;padding:80px 20px;color:var(--text-muted);
}
.no-results .sad-emoji{font-size:2.5rem;margin-bottom:12px;display:block}
.no-results h3{margin-bottom:6px;color:var(--text);font-weight:700}
.no-results p{font-size:.88rem}

/* ─── Table ─── */
.table-view{
  overflow-x:auto;border-radius:var(--radius);
  border:1px solid var(--border);box-shadow:var(--shadow);
}
.table-view table{
  width:100%;border-collapse:collapse;
  font-size:0.84rem;background:#fff;
}
.table-view th{
  padding:12px 14px;text-align:left;
  border-bottom:1px solid var(--border);
  color:var(--text);font-weight:700;
  white-space:nowrap;cursor:pointer;
  background:#fdf8f9;font-size:0.78rem;
  text-transform:uppercase;letter-spacing:.5px;
}
.table-view th:hover{color:var(--primary)}
.table-view td{
  padding:11px 14px;
  border-bottom:1px solid #f8f2f4;
  vertical-align:middle;
}
.table-view tr:hover td{background:#fdf8f9}
.table-view .td-name{font-weight:700;color:var(--text);min-width:140px}
.table-view .td-dist{white-space:nowrap}
.table-view .td-addr{color:var(--text-muted);max-width:250px}
.table-view .tag{font-size:0.7rem;padding:2px 7px}

/* ─── Responsive ─── */

/* Large tablets / small desktops */
@media(max-width:1024px){
  .grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
  .container{padding:24px 16px}
}

/* Tablets */
@media(max-width:768px){
  .title-main{font-size:1.8rem}
  .title-sub{font-size:1rem}
  .header{padding:22px 16px 18px}
  .grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
  .controls{flex-direction:column;padding:12px 14px}
  .search-box{min-width:100%;width:100%}
  .filter-group{width:100%;flex-direction:row}
  .filter-group .select-wrap{flex:1}
  .filter-group select{width:100%}
  .view-toggle{align-self:stretch;justify-content:center}
  .btn-reset{width:100%;justify-content:center}
  .container{padding:16px 10px}
  .stats-bar{gap:6px}
  .stat{font-size:0.78rem;padding:5px 10px}
  .card{padding:16px}
  .table-view th, .table-view td{padding:9px 10px;font-size:0.78rem}
  .shrink-tagline{display:none !important}
  .header.shrink .title-main{
    transform:scale(.8);
    transform-origin:center center;
  }
}

/* Large phones */
@media(max-width:600px){
  .title-main{font-size:1.6rem}
  .grid{grid-template-columns:1fr}
  .card-header{flex-direction:column;gap:4px}
  .card-price{margin-left:0;align-self:flex-start}
  .upcoming-top{flex-direction:column;align-items:flex-start;gap:2px}
}

/* Small phones */
@media(max-width:480px){
  .title-main{font-size:1.4rem}
  .title-sub{font-size:.85rem}
  .header{padding:18px 12px 14px}
  .header .subtitle{font-size:.7rem}
  .container{padding:12px 8px}
  .controls{padding:10px 10px;gap:8px}
  .search-box input{padding:10px 14px 10px 34px;font-size:.84rem}
  select{padding:9px 28px 9px 28px;font-size:.8rem;min-width:0}
  .view-toggle button{padding:6px 12px;font-size:.76rem}
  .grid{gap:10px}
  .card{padding:14px;border-radius:12px}
  .card-name{font-size:.93rem}
  .card-dish{font-size:.8rem}
  .card-info{font-size:.76rem}
  .card-actions{gap:6px}
  .btn-google, .btn-map{padding:4px 10px;font-size:.72rem}
  .stats-bar{flex-direction:column;gap:4px}
  .stat{font-size:.74rem}
  .table-view th, .table-view td{padding:7px 6px;font-size:.72rem}
  .table-view .td-name{min-width:100px}
  .header.shrink{padding:8px 12px 6px}
  .header.shrink .title-main{
    transform:scale(.75);
    transform-origin:center center;
  }
}

/* Very small screens */
@media(max-width:360px){
  .title-main{font-size:1.25rem}
  .title-sub{font-size:.78rem}
  .header{padding:16px 10px 12px}
  .card{padding:12px}
  .card-name{font-size:.88rem}
}

/* Address link */
.addr-link{
  color:var(--text-muted);text-decoration:none;
  border-bottom:1px dashed var(--border);
  transition:color .2s,border-color .2s;
}
.addr-link:hover{color:var(--primary);border-color:var(--primary)}

/* ─── User Display ─── */
.user-display{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 14px;border-radius:10px;
  font-size:0.82rem;font-weight:600;
  background:var(--primary-soft);color:var(--primary);
  border:1px solid var(--primary-light);
  cursor:pointer;transition:all .2s;
}
.user-display:hover{background:var(--primary);color:#fff}

/* ─── Favorite / Eaten / Comment Buttons ─── */
.btn-fav, .btn-eaten, .btn-comment{
  border:none;background:none;cursor:pointer;
  padding:4px 10px;border-radius:20px;
  font-size:0.78rem;font-weight:600;
  transition:all .2s;
  display:inline-flex;align-items:center;gap:4px;
  border:1px solid var(--border);
}
.btn-fav:hover{background:#fef0f3;border-color:var(--primary-light)}
.btn-fav.active{background:#fef0f3;border-color:var(--primary)}
.btn-eaten:hover{background:var(--mint-light);border-color:#b8dfc9}
.btn-eaten.active{background:var(--mint-light);border-color:var(--mint)}
.btn-comment:hover{background:var(--accent-light);border-color:var(--accent)}
.btn-fav.btn-sm, .btn-eaten.btn-sm, .btn-comment.btn-sm{
  padding:3px 6px;font-size:0.72rem;
}

/* Card eaten state */
.card-eaten{
  border-top-color:var(--mint) !important;
  background:#fafffe;
}
.row-eaten td{background:#f8fdfb}

/* ─── Modal ─── */
.modal-overlay{
  position:fixed;top:0;left:0;right:0;bottom:0;
  background:rgba(0,0,0,.4);
  display:flex;align-items:center;justify-content:center;
  z-index:9999;
  backdrop-filter:blur(3px);
}
.modal-box{
  background:#fff;border-radius:16px;
  padding:28px;max-width:420px;width:90%;
  box-shadow:0 20px 60px rgba(0,0,0,.15);
}
.modal-box h3{
  font-size:1.1rem;color:var(--text);margin-bottom:8px;
}
.modal-box p{
  font-size:0.85rem;color:var(--text-muted);margin-bottom:16px;
}
.modal-buttons{
  display:flex;gap:10px;margin-bottom:12px;
}
.modal-btn{
  flex:1;padding:12px;border:1px solid var(--border);
  border-radius:10px;background:#fff;
  font-size:0.9rem;font-weight:600;
  cursor:pointer;transition:all .2s;font-family:inherit;
}
.modal-btn:hover{
  background:var(--primary-soft);border-color:var(--primary-light);color:var(--primary);
}
.modal-custom{
  display:flex;gap:8px;
}
.modal-custom input{
  flex:1;padding:10px 14px;border:1px solid var(--border);
  border-radius:10px;font-size:0.85rem;font-family:inherit;
  outline:none;
}
.modal-custom input:focus{border-color:var(--primary-light)}
.modal-btn-go{
  flex:none;padding:10px 18px;
  background:var(--primary);color:#fff;border-color:var(--primary);
}
.modal-btn-go:hover{background:var(--primary-light)}

/* ─── Comments Modal ─── */
.modal-comments{
  max-width:500px;max-height:80vh;
  display:flex;flex-direction:column;
}
.modal-header{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:14px;
}
.modal-header h3{margin:0;font-size:1rem}
.modal-close{
  border:none;background:none;font-size:1.2rem;
  cursor:pointer;color:var(--text-muted);padding:4px 8px;
  border-radius:6px;
}
.modal-close:hover{background:var(--primary-soft);color:var(--primary)}
.comments-list{
  flex:1;overflow-y:auto;
  margin-bottom:14px;max-height:400px;
  padding-right:4px;
}
.comment-item{
  padding:10px 12px;border-radius:10px;
  background:#fafafa;margin-bottom:8px;
  border:1px solid var(--border);
}
.comment-meta{
  display:flex;justify-content:space-between;
  margin-bottom:4px;
}
.comment-user{
  font-weight:700;font-size:0.8rem;color:var(--primary);
}
.comment-time{
  font-size:0.72rem;color:var(--text-muted);
}
.comment-text{
  font-size:0.84rem;color:var(--text);line-height:1.5;
}
.no-comments{
  text-align:center;padding:30px;color:var(--text-muted);
  font-size:0.85rem;font-style:italic;
}
.comment-form{
  display:flex;gap:8px;
}
.comment-form input{
  flex:1;padding:10px 14px;border:1px solid var(--border);
  border-radius:10px;font-size:0.85rem;font-family:inherit;
  outline:none;
}
.comment-form input:focus{border-color:var(--primary-light)}
.btn-comment-submit{
  padding:10px 18px;border:none;
  background:var(--primary);color:#fff;
  border-radius:10px;font-weight:600;
  font-size:0.84rem;cursor:pointer;
  font-family:inherit;transition:all .2s;
}
.btn-comment-submit:hover{background:var(--primary-light)}
.btn-comment-submit:disabled{opacity:.5;cursor:not-allowed}

/* Loading */
.loading{
  text-align:center;padding:60px 20px;
  color:var(--text-muted);font-size:0.9rem;
}

/* ─── Upcoming / Plans ─── */
.upcoming-section{
  margin-bottom:24px;
}
.upcoming-card{
  background:#fff;
  border-radius:16px;padding:28px;
  border:1px solid var(--border);
  box-shadow:0 2px 16px rgba(212,116,138,.08);
  position:relative;overflow:hidden;
}
.upcoming-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg, var(--primary) 0%, var(--accent) 50%, var(--primary-light) 100%);
}
.upcoming-card + .upcoming-card{margin-top:14px}
.upcoming-top{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:20px;flex-wrap:wrap;gap:4px;
}
.upcoming-label{
  font-size:0.88rem;font-weight:700;color:var(--primary);
  letter-spacing:.5px;
}
.upcoming-time{
  font-size:0.92rem;color:var(--text);font-weight:600;
}

/* Countdown */
.upcoming-countdown{
  margin-bottom:24px;text-align:center;
}
.cd-boxes{
  display:inline-flex;gap:12px;
}
.cd-box{
  display:flex;flex-direction:column;align-items:center;
  background:linear-gradient(135deg, #fff5f7 0%, #fce4ec 100%);
  border:1px solid rgba(212,116,138,.2);
  border-radius:14px;padding:14px 18px;min-width:64px;
  box-shadow:0 2px 8px rgba(212,116,138,.08);
}
.cd-num{
  font-size:2rem;font-weight:800;color:var(--primary);
  line-height:1;
}
.cd-label{
  font-size:0.7rem;color:var(--text-muted);
  font-weight:600;text-transform:uppercase;
  margin-top:4px;letter-spacing:.3px;
}
.cd-done{
  font-size:1.1rem;font-weight:700;color:var(--primary);
  padding:14px 24px;
  background:var(--primary-soft);border-radius:12px;
  display:inline-block;
}

/* Restaurant items */
.upcoming-items{
  display:flex;flex-direction:column;gap:12px;
}
.upcoming-item{
  padding:18px 20px;
  background:#fff;
  border-radius:var(--radius);
  border:1px solid var(--border);
  border-top:3px solid var(--primary-light);
}
.upcoming-item-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:6px;
}
.upcoming-item-name{
  font-weight:700;font-size:1.1rem;color:var(--text);
}
.upcoming-item-price{
  font-size:0.82rem;font-weight:600;color:var(--accent);
  background:#f0f7f0;padding:2px 8px;border-radius:6px;
}
.upcoming-item-dish{
  font-size:0.92rem;color:var(--primary);font-style:italic;
  margin-bottom:6px;
}
.upcoming-item-tags{
  display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;
}
.upcoming-item-addr{
  font-size:0.9rem;color:var(--text);
  margin-bottom:4px;
}
.upcoming-item-hours{
  font-size:0.9rem;color:var(--text);
  margin-bottom:4px;
}
.upcoming-item-review{
  font-size:0.9rem;color:var(--text);font-style:italic;
  margin-bottom:4px;
}
.upcoming-item-note{
  font-size:0.92rem;color:var(--primary);font-weight:500;
  margin-top:8px;
  padding:6px 12px;
  background:var(--primary-soft);border-radius:8px;
  display:inline-block;
}
.upcoming-item-actions{
  display:flex;align-items:center;gap:8px;
  margin-top:12px;padding-top:10px;
  border-top:1px solid var(--border);
}
.upcoming-item-link{
  font-size:0.84rem;font-weight:600;text-decoration:none;
  padding:7px 14px;border-radius:20px;
  background:#fff;border:1px solid var(--border);
  color:var(--text);transition:all .2s;
}
.upcoming-item-link:hover{
  border-color:var(--primary-light);background:var(--primary-soft);color:var(--primary);
}
.upcoming-item-remove{
  margin-left:auto;
  border:none;background:none;font-size:0.8rem;
  cursor:pointer;color:var(--text-muted);opacity:.4;
  padding:6px 10px;border-radius:6px;
  transition:all .2s;
}
.upcoming-item-remove:hover{opacity:1;background:#fee2e2;color:#dc2626}

.upcoming-footer{
  margin-top:14px;font-size:0.82rem;color:var(--primary);
  font-style:italic;text-align:right;opacity:.7;
}

/* Card planned badge */
.card-planned{
  border-color:var(--primary-light);
  border-top-color:var(--primary);
  box-shadow:0 2px 12px rgba(212,116,138,.12);
  overflow:visible;
}
.card-status-badge{
  position:absolute;
  top:0;left:16px;
  transform:translateY(-50%);
  font-size:0.7rem;font-weight:700;color:var(--primary);
  background:var(--primary-soft);
  border:1px solid rgba(212,116,138,.2);
  padding:3px 10px;border-radius:20px;
  letter-spacing:.3px;
  white-space:nowrap;
}

/* Plan button */
.btn-plan{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 12px;font-size:0.76rem;font-weight:600;
  border-radius:20px;border:1px solid var(--primary-light);
  background:var(--primary-soft);color:var(--primary);
  cursor:pointer;transition:all .2s;font-family:inherit;
}
.btn-plan:hover{
  background:var(--primary);color:#fff;border-color:var(--primary);
}

/* Plan modal */
.modal-plan{max-width:380px}
.plan-form{display:flex;flex-direction:column;gap:12px}
.plan-row{display:flex;flex-direction:column;gap:4px}
.plan-row label{font-size:0.82rem;font-weight:600;color:var(--text)}
.plan-row input, .plan-row select{
  padding:10px 14px;border:1px solid var(--border);
  border-radius:10px;font-size:0.88rem;font-family:inherit;
  outline:none;background:#fff;
}
.plan-row input:focus, .plan-row select:focus{border-color:var(--primary-light)}
.time-picker{
  display:flex;align-items:center;gap:6px;
}
.time-picker select{
  flex:1;text-align:center;
}
.time-sep{
  font-size:1.2rem;font-weight:700;color:var(--text);
}
.btn-plan-submit{
  padding:12px;border:none;
  background:linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);
  color:#fff;border-radius:10px;font-weight:700;
  font-size:0.92rem;cursor:pointer;font-family:inherit;
  transition:all .2s;margin-top:4px;
}
.btn-plan-submit:hover{opacity:.9;transform:scale(1.01)}
.btn-plan-submit:disabled{opacity:.5;cursor:not-allowed}
