/* Viajario 0.13.0 · gastos por actividad y pasaporte */
.activity-expense-summary {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #edf0f5;
}
.activity-expense-summary > strong { color: #176840; font-size: 11px; }
.activity-expense-list { margin: 7px 0; display: grid; gap: 5px; }
.activity-expense-list span { color: #606a7f; font-size: 11px; line-height: 1.45; }
.activity-expense-list a, .expense-source, .expense-receipt { color: #2249a0; font-weight: 800; }
.activity-expense-add > summary {
    width: max-content;
    color: #eb6255;
    cursor: pointer;
    font-size: 11px;
    font-weight: 850;
}
.activity-expense-add form {
    margin-top: 10px;
    padding: 15px;
    background: #f8f9fc;
    border: 1px solid #e8ebf2;
    border-radius: 12px;
}
.expense-source, .expense-receipt { margin-top: 8px; display: inline-flex; font-size: 11px; text-decoration: none; }
.expense-source { margin-right: 10px; }
.expense-place { color: #606a7f; }

.passport-hero {
    padding: 35px;
    display: flex;
    justify-content: space-between;
    gap: 28px;
    align-items: center;
    color: #fff;
    background: linear-gradient(135deg, #061857, #16388f 72%, #eb6255);
    border-radius: 20px;
}
.passport-hero h1 { margin: 5px 0 8px; color: #fff; }
.passport-hero p { margin: 0; max-width: 700px; color: rgba(255,255,255,.82); line-height: 1.6; }
.passport-hero .eyebrow { color: #ffb2aa; }
.passport-score {
    min-width: 112px;
    padding: 18px;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.13);
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 16px;
}
.passport-score strong { font-size: 28px; }
.passport-score span { font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.passport-progress { margin: 18px 0 28px; padding: 18px 22px; }
.passport-progress > div:first-child { display: flex; justify-content: space-between; gap: 15px; font-size: 12px; }
.passport-progress > div:first-child span { color: #7c8496; }
.passport-progress-track { height: 9px; margin-top: 11px; overflow: hidden; background: #edf0f5; border-radius: 99px; }
.passport-progress-track span { height: 100%; display: block; background: linear-gradient(90deg, #eb6255, #f3a04d); border-radius: inherit; }
.passport-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.passport-card {
    min-width: 0;
    padding: 20px;
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 18px;
    background: #fff;
    border: 1px solid #e7eaf1;
    border-radius: 18px;
    box-shadow: 0 10px 30px rgba(6,24,87,.06);
}
.passport-card.is-stamped { border-color: #a8ddc1; background: linear-gradient(145deg, #fff, #f2fbf6); }
.passport-stamp {
    width: 78px;
    height: 78px;
    display: grid;
    align-content: center;
    justify-items: center;
    color: #8a93a5;
    border: 2px dashed #c6ccd8;
    border-radius: 50%;
    transform: rotate(-5deg);
}
.passport-stamp span { font-size: 25px; font-weight: 900; line-height: 1; }
.passport-stamp small { margin-top: 5px; font-size: 8px; font-weight: 900; letter-spacing: .08em; }
.is-stamped .passport-stamp { color: #176840; border-color: #2e9d65; }
.passport-copy { min-width: 0; }
.passport-date { color: #eb6255; font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.passport-copy h2 { margin: 4px 0 6px; font-size: 20px; overflow-wrap: anywhere; }
.passport-place, .passport-notes { margin: 5px 0; color: #606a7f; font-size: 12px; line-height: 1.55; }
.passport-visited-meta { margin: 13px 0; padding: 11px 13px; display: grid; gap: 3px; color: #176840; background: #e8f7ef; border-radius: 10px; }
.passport-visited-meta strong { font-size: 11px; }
.passport-visited-meta span { font-size: 10px; }
.passport-actions { margin-top: 15px; display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.passport-actions form:first-child { display: grid; gap: 4px; }
.passport-actions small { color: #7c8496; font-size: 9px; }
.passport-no-geo { color: #8a5918; background: #fff0d7; padding: 8px 10px; border-radius: 8px; font-size: 10px; font-weight: 750; }
.passport-settings { margin-top: 15px; padding-top: 12px; border-top: 1px solid #e8ebf2; }
.passport-settings > summary { color: #2249a0; cursor: pointer; font-size: 10px; font-weight: 800; }
.passport-settings form { margin-top: 11px; }
.passport-settings-actions { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }
.passport-empty { padding: 48px 25px; display: grid; justify-items: center; text-align: center; }
.passport-empty > span { width: 56px; height: 56px; display: grid; place-items: center; color: #2249a0; background: #eef3ff; border-radius: 16px; font-size: 26px; }
.passport-empty h2 { margin: 14px 0 5px; }
.passport-empty p { margin: 0 0 17px; color: #69738f; }
.geo-feedback {
    position: fixed;
    z-index: 100;
    right: 20px;
    bottom: 20px;
    max-width: 360px;
    padding: 14px 17px;
    color: #fff;
    background: #061857;
    border-radius: 12px;
    box-shadow: 0 14px 35px rgba(6,24,87,.25);
    font-size: 12px;
}

@media (max-width: 850px) {
    .passport-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
    .passport-hero { padding: 25px 20px; align-items: flex-start; }
    .passport-score { min-width: 82px; padding: 13px; }
    .passport-card { padding: 16px; grid-template-columns: 58px minmax(0, 1fr); gap: 13px; }
    .passport-stamp { width: 56px; height: 56px; }
    .passport-stamp span { font-size: 18px; }
    .passport-stamp small { font-size: 6px; }
    .passport-actions { align-items: stretch; }
    .passport-actions form, .passport-actions .button { width: 100%; }
    .activity-expense-add form { margin-left: -50px; }
    .expense-card { grid-template-columns: auto minmax(0, 1fr) auto; }
    .expense-amount { grid-column: 2; padding-top: 0; }
}
