/* =========================================================================
   MeusShows · Design System (UI Kit)
   Mobile-first · Roxo · Sora + Plus Jakarta Sans
   -------------------------------------------------------------------------
   Como usar:
   1) No <head> do seu layout/partial, antes do </head>:
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=Sora:wght@500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
        <link rel="stylesheet" href="<?= base_url('public/assets/css/meusshows-ui.css') ?>">
        <meta name="theme-color" content="#6d28d9">
   2) Use as classes com prefixo .ms-* nas suas views.
   3) Componentes principais: .ms-datecard (o card de data da agenda),
      .ms-pill (status), .ms-btn, .ms-field (formulários), .ms-tabbar,
      .ms-appbar, .ms-card, .ms-section.
   ========================================================================= */

/* ---------------------------------------------------------------- TOKENS */
:root{
    /* Roxo — cor do sistema */
    --ms-roxo:#6d28d9;
    --ms-roxo-600:#7c3aed;
    --ms-roxo-bright:#9d5cff;
    --ms-roxo-deep:#2c0f66;
    --ms-roxo-ink:#1b1030;      /* texto quase preto (roxo)  */

    /* Superfícies */
    --ms-bg:#f7f5fd;            /* fundo da página           */
    --ms-surface:#ffffff;       /* cards / caixas            */
    --ms-lilac:#ede9fe;         /* destaque suave            */

    /* Faísca / destaque */
    --ms-lime:#c9f24d;
    --ms-lime-deep:#aee02f;

    /* Texto e linhas */
    --ms-text:#1b1030;
    --ms-muted:#6b6480;
    --ms-line:#eae5f6;

    /* Estados */
    --ms-ok:#16a34a;
    --ms-ok-bg:rgba(34,197,94,.13);
    --ms-warn:#b45309;
    --ms-warn-bg:rgba(245,158,11,.15);
    --ms-danger:#dc2626;
    --ms-danger-bg:rgba(220,38,38,.12);

    /* Formas */
    --ms-radius:16px;
    --ms-radius-lg:22px;
    --ms-radius-pill:999px;

    /* Sombras — desativadas (visual flat, sem elevação) */
    --ms-shadow:none;
    --ms-shadow-lift:none;

    /* Alturas de referência */
    --ms-tabbar-h:64px;
    --ms-appbar-h:64px;
}

/* --------------------------------------------------------------- BASE
   Opcional: aplique .ms-app no <body> para herdar fonte/fundo do kit.
   (Não força nada globalmente pra não quebrar telas existentes.) */
html.ms-app,body.ms-app{margin:0;padding:0;}
.ms-app{
    font-family:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;
    background:var(--ms-bg);
    color:var(--ms-text);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
}
.ms-app *,.ms-app *::before,.ms-app *::after{box-sizing:border-box;}
.ms-app h1,.ms-app h2,.ms-app h3,.ms-heading{
    font-family:'Sora',sans-serif;letter-spacing:-.02em;line-height:1.15;
}
a{color:var(--ms-roxo);text-decoration:none;}
.ms-app :focus-visible{outline:3px solid var(--ms-roxo-bright);outline-offset:2px;border-radius:8px;}

/* container central */
.ms-container{width:100%;max-width:1100px;margin:0 auto;padding:0 16px;}
@media(min-width:768px){.ms-container{padding:0 28px;}}

/* espaço extra no fim da página quando existe a tab bar fixa no mobile */
.ms-has-tabbar{padding-bottom:calc(var(--ms-tabbar-h) + env(safe-area-inset-bottom) + 16px);}
@media(min-width:768px){.ms-has-tabbar{padding-bottom:24px;}}

/* ------------------------------------------------------------- APP BAR
   Header roxo do topo (igual ao do mockup). */
.ms-appbar{
    background:var(--ms-roxo);color:#fff;
    padding:14px 16px 18px;
    border-radius:0 0 20px 20px;
    position:sticky;top:0;z-index:30;
}
.ms-appbar__top{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.ms-appbar__title{font-family:'Sora',sans-serif;font-weight:700;font-size:20px;}
.ms-appbar__sub{font-size:12px;opacity:.8;font-weight:600;margin-bottom:2px;}
.ms-appbar__action{
    background:rgba(255,255,255,.16);color:#fff;border:none;
    font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:13px;
    padding:8px 14px;border-radius:var(--ms-radius-pill);cursor:pointer;
    display:inline-flex;align-items:center;gap:6px;
}
.ms-appbar__action:hover{background:rgba(255,255,255,.26);}

/* --------------------------------------------------------------- SECTION */
.ms-section{padding-top:24px;padding-bottom:24px;}
.ms-section__head{margin-bottom:16px;}
.ms-section__title{font-family:'Sora',sans-serif;font-weight:700;font-size:20px;letter-spacing:-.01em;}
.ms-section__sub{font-size:14px;color:var(--ms-muted);margin-top:4px;}

/* ---------------------------------------------------------------- CARD */
.ms-card{
    background:var(--ms-surface);border:1px solid var(--ms-line);
    border-radius:var(--ms-radius-lg);padding:20px;box-shadow:var(--ms-shadow);
}

/* ============================================================
   DATE CARD — o card de data da agenda (o que você curtiu)
   Estrutura HTML:
   <a class="ms-datecard" href="...">
     <span class="ms-datecard__date">
       <b class="ms-datecard__day">07</b>
       <span class="ms-datecard__mon">Mai</span>
     </span>
     <span class="ms-datecard__info">
       <span class="ms-datecard__title">Arena Music Hall</span>
       <span class="ms-datecard__meta">Fortaleza · CE</span>
     </span>
     <span class="ms-pill ms-pill--ok">Confirmado</span>
   </a>
   ============================================================ */
.ms-list{display:flex;flex-direction:column;gap:12px;}
.ms-datecard{
    display:flex;align-items:center;gap:14px;
    background:var(--ms-surface);border:1px solid var(--ms-line);
    border-radius:var(--ms-radius);padding:12px 14px;
    box-shadow:var(--ms-shadow);color:inherit;
    transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease;
    -webkit-tap-highlight-color:transparent;
}
.ms-datecard:hover{transform:translateY(-2px);box-shadow:var(--ms-shadow-lift);border-color:var(--ms-lilac);}
.ms-datecard:active{transform:scale(.99);}
.ms-datecard__date{
    width:52px;flex-shrink:0;text-align:center;
    background:var(--ms-lilac);border-radius:12px;padding:8px 0;
}
.ms-datecard__day{
    display:block;font-family:'Sora',sans-serif;font-weight:800;
    font-size:19px;color:var(--ms-roxo);line-height:1;
}
.ms-datecard__mon{
    display:block;font-size:9px;font-weight:800;letter-spacing:.06em;
    text-transform:uppercase;color:var(--ms-roxo-bright);margin-top:3px;
}
.ms-datecard__info{flex:1;min-width:0;}
.ms-datecard__title{
    display:block;font-family:'Sora',sans-serif;font-weight:700;font-size:15px;
    color:var(--ms-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ms-datecard__meta{display:block;font-size:12px;color:var(--ms-muted);margin-top:2px;}

/* ---------------------------------------------------------------- PILL
   Badges de status. */
.ms-pill{
    display:inline-flex;align-items:center;
    font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
    padding:5px 9px;border-radius:8px;flex-shrink:0;white-space:nowrap;
}
.ms-pill--ok{background:var(--ms-ok-bg);color:var(--ms-ok);}
.ms-pill--neg{background:rgba(157,92,255,.15);color:var(--ms-roxo);}     /* negociando */
.ms-pill--warn{background:var(--ms-warn-bg);color:var(--ms-warn);}       /* pendente   */
.ms-pill--off{background:#eef0f4;color:#6b7280;}                          /* cancelado  */

/* --------------------------------------------------------------- BUTTON
   Grandes e tocáveis (mín. 48px de altura). Sem sombra. */
.ms-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:15px;
    min-height:48px;padding:0 22px;border:none;border-radius:var(--ms-radius-pill);
    cursor:pointer;-webkit-tap-highlight-color:transparent;text-decoration:none;
    transition:background .16s,color .16s,transform .12s,border-color .16s;
}
.ms-btn:active{transform:scale(.97);}
.ms-btn--roxo{background:var(--ms-roxo);color:#fff;}
.ms-btn--roxo:hover{background:var(--ms-roxo-600);}
.ms-btn--lime{background:var(--ms-lime);color:var(--ms-roxo-ink);}
.ms-btn--lime:hover{background:var(--ms-lime-deep);}
.ms-btn--white{background:#fff;color:var(--ms-roxo);border:1px solid var(--ms-line);}
.ms-btn--white:hover{background:var(--ms-lilac);}
.ms-btn--ghost{background:transparent;color:var(--ms-roxo);min-height:auto;padding:8px 4px;}
.ms-btn--ghost:hover{color:var(--ms-roxo-deep);}
.ms-btn--danger{background:var(--ms-danger-bg);color:var(--ms-danger);}
.ms-btn--danger:hover{background:rgba(220,38,38,.2);}
.ms-btn--block{width:100%;}
.ms-btn--sm{min-height:38px;font-size:13px;padding:0 16px;}

/* botão flutuante (novo show) */
.ms-fab{
    position:fixed;right:18px;bottom:calc(var(--ms-tabbar-h) + env(safe-area-inset-bottom) + 16px);
    width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;z-index:40;
    background:var(--ms-lime);color:var(--ms-roxo-ink);
    display:flex;align-items:center;justify-content:center;
    box-shadow:var(--ms-shadow-lift);
}
.ms-fab:active{transform:scale(.94);}
.ms-fab svg{width:26px;height:26px;stroke:currentColor;stroke-width:2.6;fill:none;}
@media(min-width:768px){.ms-fab{bottom:24px;}}

/* --------------------------------------------------------------- FORMS */
.ms-field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.ms-label{font-size:13px;font-weight:700;color:var(--ms-text);}
.ms-input,.ms-select,.ms-textarea{
    width:100%;font-family:'Plus Jakarta Sans',sans-serif;font-size:16px; /* 16px evita zoom no iOS */
    color:var(--ms-text);background:#fff;
    border:1px solid var(--ms-line);border-radius:12px;
    padding:13px 14px;min-height:48px;outline:none;
    transition:border-color .15s,box-shadow .15s;
}
.ms-textarea{min-height:110px;resize:vertical;line-height:1.5;}
.ms-input:focus,.ms-select:focus,.ms-textarea:focus{
    border-color:var(--ms-roxo-bright);
}
.ms-input::placeholder,.ms-textarea::placeholder{color:#a9a2bd;}
.ms-select{
    appearance:none;-webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b6480' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 14px center;padding-right:40px;
}
.ms-hint{font-size:12px;color:var(--ms-muted);}
.ms-field--error .ms-input,.ms-field--error .ms-select,.ms-field--error .ms-textarea{border-color:var(--ms-danger);}
.ms-error{font-size:12px;color:var(--ms-danger);font-weight:600;}

/* linha de campos lado a lado (vira coluna no mobile) */
.ms-row{display:grid;grid-template-columns:1fr;gap:14px;}
@media(min-width:640px){.ms-row--2{grid-template-columns:1fr 1fr;}}

/* ------------------------------------------------------------- TAB BAR
   Menu inferior fixo no mobile; some no desktop (use seu menu normal lá).
   Marque o item ativo com .is-active. */
.ms-tabbar{
    position:fixed;left:0;right:0;bottom:0;z-index:35;
    display:flex;justify-content:space-around;
    background:rgba(255,255,255,.94);backdrop-filter:blur(12px);
    border-top:1px solid var(--ms-line);
    padding:8px 6px calc(8px + env(safe-area-inset-bottom));
}
.ms-tab{
    display:flex;flex-direction:column;align-items:center;gap:4px;
    font-size:10px;font-weight:700;color:#a49ebb;text-decoration:none;
    flex:1;padding:4px 0;
}
.ms-tab svg{width:22px;height:22px;stroke:#a49ebb;fill:none;stroke-width:2;}
.ms-tab.is-active{color:var(--ms-roxo);}
.ms-tab.is-active svg{stroke:var(--ms-roxo);}
@media(min-width:768px){.ms-tabbar{display:none;}}

/* -------------------------------------------------------- EMPTY STATE */
.ms-empty{text-align:center;padding:48px 20px;color:var(--ms-muted);}
.ms-empty__ic{
    width:64px;height:64px;border-radius:20px;margin:0 auto 16px;
    background:var(--ms-lilac);display:flex;align-items:center;justify-content:center;
}
.ms-empty__ic svg{width:28px;height:28px;stroke:var(--ms-roxo);fill:none;stroke-width:2;}
.ms-empty__title{font-family:'Sora',sans-serif;font-weight:700;font-size:17px;color:var(--ms-text);margin-bottom:6px;}
.ms-empty__text{font-size:14px;max-width:320px;margin:0 auto 20px;line-height:1.5;}

/* -------------------------------------------------------------- FILTERS
   Chips de filtro roláveis (ex.: Todos / Confirmados / Negociando). */
.ms-chips{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px;-webkit-overflow-scrolling:touch;}
.ms-chips::-webkit-scrollbar{display:none;}
.ms-chip{
    flex-shrink:0;font-size:13px;font-weight:700;color:var(--ms-muted);
    background:#fff;border:1px solid var(--ms-line);border-radius:var(--ms-radius-pill);
    padding:8px 14px;cursor:pointer;white-space:nowrap;
}
.ms-chip.is-active{background:var(--ms-roxo);border-color:var(--ms-roxo);color:#fff;}

/* --------------------------------------------------------------- TABLE
   Em telas de gestão (desktop) use tabela; no mobile vire cards.
   Aplique .ms-table no <table> e data-label nos <td>. */
.ms-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--ms-radius);overflow:hidden;box-shadow:var(--ms-shadow);}
.ms-table th{background:var(--ms-lilac);color:var(--ms-roxo-ink);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:12px 14px;}
.ms-table td{padding:14px;border-top:1px solid var(--ms-line);font-size:14px;}
@media(max-width:640px){
    .ms-table,.ms-table tbody,.ms-table tr{display:block;box-shadow:none;background:transparent;}
    .ms-table thead{display:none;}
    .ms-table tr{background:#fff;border:1px solid var(--ms-line);border-radius:var(--ms-radius);margin-bottom:12px;box-shadow:var(--ms-shadow);overflow:hidden;}
    .ms-table td{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--ms-line);}
    .ms-table td:first-child{border-top:none;}
    .ms-table td::before{content:attr(data-label);font-weight:700;color:var(--ms-muted);}
}

/* --------------------------------------------------------- UTILIDADES */
.ms-mt-8{margin-top:8px}.ms-mt-16{margin-top:16px}.ms-mt-24{margin-top:24px}
.ms-mb-8{margin-bottom:8px}.ms-mb-16{margin-bottom:16px}.ms-mb-24{margin-bottom:24px}
.ms-flex{display:flex;gap:12px;align-items:center}
.ms-between{display:flex;gap:12px;align-items:center;justify-content:space-between}
.ms-muted{color:var(--ms-muted)}
.ms-center{text-align:center}

@media(prefers-reduced-motion:reduce){
    .ms-app *,.ms-datecard,.ms-btn,.ms-fab{transition:none!important;}
}
