*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#123}a{color:#0b6bdc;text-decoration:none}a:hover{text-decoration:underline}.container{max-width:980px;margin:0 auto;padding:16px}
.topbar{position:sticky;top:0;z-index:100;background:#f5f5f5;color:#333;border-bottom:1px solid #e5e7eb}.topbar .brand a{color:#333;font-weight:700;font-size:18px}.topbar nav a{color:#333;margin-left:12px}.topbar nav a:hover{color:#007bff;text-decoration:underline}.topbar .container{display:flex;align-items:center;justify-content:space-between}
h1{font-size:24px;margin:16px 0}h3{margin:8px 0}
.btn{display:inline-block;background:#0b6bdc;color:#fff;padding:8px 14px;border-radius:6px} .btn.secondary{background:#6c757d}
.alert{padding:10px;border-radius:6px;margin:10px 0}.alert.error{background:#ffe8e8;color:#b00020}
.muted{color:#6c757d}.tag{display:inline-block;background:#eef3ff;color:#0b6bdc;padding:2px 8px;border-radius:999px;margin-left:8px}.tag.danger{background:#ffefef;color:#b00020}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:14px;margin:12px 0;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.list{display:flex;flex-direction:column;gap:8px}.list-item{display:flex;align-items:center;justify-content:space-between;border:1px solid #e5e7eb;border-radius:8px;padding:12px;background:#fff}
.flex-between{display:flex;align-items:center;justify-content:space-between}
.form-grid label{display:block;margin:8px 0}.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:8px;border:1px solid #cbd5e1;border-radius:6px}
.actions{margin-top:10px}.actions .btn{margin-right:8px}
.search{display:flex;gap:8px;margin:8px 0}.search input{flex:1;padding:8px;border:1px solid #cbd5e1;border-radius:6px}
.table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}
.table th,.table td{padding:10px;border-bottom:1px solid #eef2f7}
/* Centered table cells for compact admin-like lists */
.table.centered th,
.table.centered td{ text-align:center; }
.footer{border-top:1px solid #e5e7eb;margin-top:24px;padding:16px;color:#6c757d}
.timeline{list-style:none;padding-left:0;margin:0}.timeline li{display:flex;gap:12px;padding:8px 0;border-bottom:1px dashed #e5e7eb}.timeline .time{width:140px;color:#6c757d}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.grid-3 .full{grid-column:1/-1}
.progress{background:#f1f5f9;height:10px;border-radius:6px;overflow:hidden}.progress .bar{background:#0b6bdc;height:100%}
@media(max-width:640px){.grid-3{grid-template-columns:1fr}.timeline .time{width:90px}}

/* Minimal setup page */
.setup-simple{max-width:720px;margin:8px auto;padding:0 8px}
.simple-form{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px}
.simple-form .group{margin:12px 0}
.simple-form label{display:block;margin-bottom:6px;color:#334155}
.simple-form input,.simple-form select{width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}
.simple-form .hint{color:#6c757d;font-size:12px;margin-top:4px}
.simple-form .two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.simple-form .two-col .full{grid-column:1/-1} 

/* Buttons hover/focus */
.btn{transition:background .15s ease, box-shadow .15s ease}
.btn:hover{background:#095dbe}
.btn:active{transform:translateY(0.5px)}
.btn.secondary:hover{background:#5b636a}
.btn.danger{background:#6c757d}
.btn.danger:hover{background:#5b636a}

/* Grid form labels for itinerary edit form */
.grid-3 label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#334155}
.grid-3 input,.grid-3 select,.grid-3 textarea{width:100%;padding:9px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}

/* Day section title */
.day-block h4{margin:16px 0 8px;font-size:14px;color:#334155;padding-left:10px;border-left:3px solid #0b6bdc}

/* Timeline minimal look */
.timeline{list-style:none;margin:0;padding-left:0}
.timeline li{position:relative;display:flex;gap:14px;padding:12px 0;border-bottom:1px dashed #e5e7eb}
.timeline .time{position:relative;width:140px;color:#6c757d;padding-right:14px}
.timeline .time::after{content:"";position:absolute;right:0;top:8px;bottom:8px;width:2px;background:#eef2f7}
.timeline .time::before{content:"";position:absolute;right:-6px;top:14px;width:10px;height:10px;border-radius:50%;background:#0b6bdc;box-shadow:0 0 0 3px #eef3ff}
.timeline .content{flex:1;border:1px solid #eef2f7;border-radius:10px;padding:10px 12px;background:#fff}
.timeline .content strong{display:block;margin-bottom:4px;color:#111827}

/* Day block spacing */
.day-block{margin-bottom:14px}

/* Responsive refinements */
@media(max-width:640px){
  .timeline .time{width:96px}
  .timeline .time::before{right:-7px}
} 

/* Period buttons */
.periods{display:flex;gap:6px}
.periods .btn.active{background:#0b6bdc;color:#fff}

/* Draggable items */
.timeline li.dragging{opacity:.6}

/* Details toggle */
.details{animation:fade .12s ease}
@keyframes fade{from{opacity:.5}to{opacity:1}} 

/* Generic modal */
.modal{position:fixed;inset:0;background:rgba(15,23,42,.5);display:none;align-items:center;justify-content:center;z-index:1000}
.modal .panel{background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.15);width:min(920px,92vw);max-height:min(82vh,860px);display:flex;flex-direction:column}
.modal .panel header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #eef2f7}
.modal .panel .body{padding:12px} 

/* Auth page visual enhancements */
.auth-card{border-radius:16px;padding:28px 28px 22px;box-shadow:0 20px 50px rgba(0,0,0,.12), 0 4px 14px rgba(0,0,0,.06);border:1px solid #ececec;margin:40px auto;width:min(420px,92vw)}
.auth-card h1{font-size:24px;font-weight:700;margin:0 0 14px;color:#111;text-align:center}
.auth-form label{gap:12px}
.auth-form input{height:44px}
.auth-actions .btn{height:44px;border-radius:10px;font-weight:600}
.auth-card .btn{background:#ffd84d;color:#111;border:1px solid #e5c742}
.auth-card .btn:hover{background:#ffdf6e}
.auth-card .btn:active{opacity:.9}
.auth-hint a{color:#0b6bdc}
@media(max-width:640px){.auth-form label span{min-width:58px}.auth-card{padding:22px}.auth-actions .btn{max-width:100%}} 

/* Auth page refinements (override) */
.auth-card{text-align:left}
.auth-form label{display:flex;align-items:center;justify-content:space-between;margin:10px 0;color:#374151}
.auth-form label span{min-width:64px;text-align:right;margin-right:10px}
.auth-form input{width:100%;max-width:320px;padding:10px;border:1px solid #ececec;border-radius:8px;height:44px}
.auth-form input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px rgba(0,123,255,.1)}
.auth-actions .btn{width:min(260px,100%);display:block;margin:0 auto}
/* Auth form centering fix */
.auth-card .auth-form{display:flex;flex-direction:column;align-items:stretch}
.auth-card .auth-actions{align-self:flex-start;display:block;margin:12px 0 0 85px}
.auth-card .auth-actions .btn{width:260px;max-width:100%}
@media(max-width:640px){.auth-form label span{min-width:56px}} 

/* Flat theme overrides */
:root{--flat-bg:#f8fafc;--flat-surface:#ffffff;--flat-text:#111827;--flat-muted:#6b7280;--flat-border:#e5e7eb;--flat-primary:#0ea5e9;--flat-primary-hover:#0284c7}
body{background:var(--flat-bg);color:var(--flat-text)}
.topbar{background:var(--flat-surface);border-bottom:1px solid var(--flat-border)}
.topbar .brand a,.topbar nav a{color:#1f2937}
.container{padding:20px}
.card{background:var(--flat-surface);border:1px solid var(--flat-border);box-shadow:none;border-radius:10px;transition:background .12s ease,border-color .12s ease}
.card:hover{background:#f9fafb;border-color:#dbe3ea}
.grid .card h3{margin:6px 0 8px;font-size:18px;color:#0f172a}
.grid .card p{margin:0;color:var(--flat-muted)}
.btn{background:var(--flat-primary);border:none;border-radius:10px}
.btn:hover{background:var(--flat-primary-hover)}
.btn.secondary{background:#94a3b8}
.btn.secondary:hover{background:#64748b}
.alert{box-shadow:none;border:1px solid var(--flat-border)}
.list-item{box-shadow:none;border:1px solid var(--flat-border)}
.table{border:1px solid var(--flat-border)}
.table th,.table td{border-bottom:1px solid #eef2f7}
.footer{background:transparent;color:var(--flat-muted)}
.search input,.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--flat-border);border-radius:10px}
.timeline .content{box-shadow:none;border:1px solid var(--flat-border)}
/* Dashboard spacing tuning for flat cards */
.grid{gap:16px}
.card{padding:18px} 
.footer .container{text-align:center} 

/* Itinerary item compact UI */
.timeline .content .meta{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:6px;color:#6b7280}
.timeline .content .meta div{display:flex;align-items:center;gap:6px}
.btn.small{padding:4px 8px;font-size:12px;border-radius:8px}
.actions-dropdown{position:relative}
.actions-dropdown .menu{position:absolute;right:0;top:100%;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.06);display:none;min-width:120px;z-index:1000}
.actions-dropdown .menu button{display:block;width:100%;text-align:left;padding:8px 10px;background:none;border:none;color:#334155}
.actions-dropdown .menu button:hover{background:#f3f4f6}
.actions-dropdown.open .menu{display:block !important}
/* Reduce card padding inside timeline items */
.timeline .content{padding:10px}
.timeline li{overflow:visible} 

/* Attachment thumbs */
.attachments{display:flex;flex-wrap:wrap;gap:6px}
.attachments img{max-width:120px;border:1px solid #e5e7eb;border-radius:8px}

/* Toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(10px);background:rgba(17,24,39,.92);color:#fff;padding:8px 14px;border-radius:10px;opacity:0;transition:opacity .2s ease, transform .2s ease;z-index:1600;font-size:14px}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Inline label alignment */
label.inline{display:inline-flex;align-items:center;gap:6px;flex-direction:row !important;white-space:nowrap}
label.inline input[type="checkbox"]{width:auto;padding:0;margin:0 6px 0 0}
/* prevent grid label from forcing block layout */
.form-grid label.inline{grid-column:1/-1;display:inline-flex !important} 

/* Mobile optimizations for settlement modal */
@media(max-width:640px){
  .modal .panel{width:96vw;max-height:92vh;border-radius:10px}
  .modal .panel header{position:sticky;top:0;background:#fff;z-index:2}
  .modal .panel .body{padding:10px;overflow:auto;-webkit-overflow-scrolling:touch}
  /* Make wide tables scroll horizontally inside modal */
  .modal .panel .body .table{display:block;width:100%;overflow-x:auto;white-space:nowrap}
  .modal .panel .body .table th,
  .modal .panel .body .table td{padding:8px;font-size:13px}
  /* Slightly smaller thumbs to fit narrow screens */
  .modal .panel .body .attachments img{max-width:98px}
} 

/* Budget rows responsive */
.budget-row input[type="text"]{min-width:120px}
@media(max-width:640px){
  .budget-row{flex-wrap:wrap}
  .budget-row input[type="text"]{flex:1 1 100%}
  .budget-row input[type="number"]{flex:1 1 150px}
} 

/* Settled watermark */
.wm-host{position:relative}
.wm-settled{position:absolute;inset:auto 0 20px 0;text-align:center;font-size:42px;letter-spacing:8px;color:rgba(20,183,104,.12);font-weight:800;pointer-events:none;user-select:none;transform:rotate(-6deg)}
@media(max-width:640px){.wm-settled{font-size:28px;letter-spacing:6px}} 

/* Tag success */
.tag.success{background:#e6ffed;color:#0a8f3e;border:1px solid #b7f5c7}
.tag.danger{background:#fff1f1;color:#b00020;border:1px solid #ffd4d4}

/* Optional watermark (not used by default) */
.wm-container{position:relative}
.wm-host{position:relative}
.wm-settled{position:absolute;inset:auto 0 20% 0;text-align:center;pointer-events:none;font-weight:700;color:rgba(16,185,129,.08);font-size:72px;transform:rotate(-15deg)} 

/* Desktop/modal scroll improvements */
.modal .panel{width:min(980px,96vw);max-height:92vh;display:flex;flex-direction:column}
.modal .panel header{position:sticky;top:0;background:#fff;z-index:2}
.modal .panel .body{overflow:auto;-webkit-overflow-scrolling:touch}
.modal .panel .body .table{display:block;width:100%;overflow-x:auto;white-space:nowrap} 