:root{--bg:#f4f6f8;--surface:#fff;--text:#202124;--muted:#687079;--line:#dfe3e7;--accent:#58155a;--accent-dark:#3f0f41;--danger:#c5221f;--radius:14px}*{box-sizing:border-box}body{margin:0;font-family:Arial,"Helvetica Neue",sans-serif;color:var(--text);background:var(--bg)}a{text-decoration:none;color:inherit}.panel-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.panel-sidebar{background:#202124;color:#fff;padding:22px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.panel-brand{display:flex;align-items:center;gap:10px;padding:0 8px 24px}.panel-brand img{width:38px}.panel-brand span{font-weight:700;display:flex;flex-direction:column}.panel-brand small{color:#9aa0a6;font-weight:400}.panel-sidebar nav{display:grid;gap:5px}.panel-sidebar nav a,.sidebar-footer a{padding:11px 12px;border-radius:9px;color:#e8eaed}.panel-sidebar nav a:hover,.sidebar-footer a:hover{background:#303134}.sidebar-footer{display:grid;gap:4px;margin-top:auto;border-top:1px solid #3c4043;padding-top:14px}.panel-main{min-width:0}.panel-topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:flex-end;align-items:center;padding:0 28px}.panel-topbar div{display:flex;flex-direction:column;text-align:right}.panel-topbar small{color:var(--muted)}.panel-menu-toggle{display:none}.panel-content{padding:30px;max-width:1500px;margin:auto}.panel-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.panel-heading span{color:var(--accent);font-size:13px;text-transform:uppercase;font-weight:700;letter-spacing:.08em}.panel-heading h1{margin:4px 0 0;font-size:32px}.panel-button{display:inline-block;border:0;border-radius:9px;background:var(--accent);color:#fff;padding:12px 18px;font:inherit;font-weight:700;cursor:pointer}.panel-link{color:var(--accent);font-weight:700}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.stat-card,.panel-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.stat-card{padding:22px;display:flex;flex-direction:column}.stat-card span{color:var(--muted)}.stat-card strong{font-size:36px;margin-top:8px}.panel-card{padding:22px;margin-bottom:22px}.panel-card h2{margin-top:0}.card-header{display:flex;justify-content:space-between;align-items:center}.card-header a{color:var(--accent)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase}td small{display:block;color:var(--muted);margin-top:4px}.actions{display:flex;align-items:center;gap:12px;white-space:nowrap}.actions a,.actions button{color:var(--accent);border:0;background:none;padding:0;cursor:pointer;font:inherit}.actions form{display:inline}.actions button{color:var(--danger)}.status{display:inline-block;border-radius:20px;padding:5px 9px;background:#eceff1;font-size:12px}.status.published,.status.approved,.status.active{background:#e6f4ea;color:#137333}.status.draft,.status.pending{background:#fef7e0;color:#b06000}.status.archived,.status.rejected,.status.blocked{background:#fce8e6;color:#a50e0e}.panel-form{max-width:1050px}.panel-form label,.login-card label{display:grid;gap:7px;font-weight:700;margin-bottom:16px}.panel-form input,.panel-form textarea,.panel-form select,.login-card input,.panel-filter input,.claim-actions textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:11px 12px;font:inherit;background:#fff}.panel-form textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.check-label{display:flex!important;align-items:center;gap:8px}.check-label input{width:auto}.form-help,.panel-form small{color:var(--muted);font-weight:400}.form-actions{margin:22px 0}.panel-flash{border-radius:10px;padding:13px 16px;margin-bottom:18px}.panel-flash.success{background:#e6f4ea;color:#137333}.panel-flash.error{background:#fce8e6;color:#a50e0e}.panel-filter{display:flex;gap:10px;margin-bottom:18px}.panel-filter input{max-width:440px}.panel-filter button{border:0;background:#f3e8f4;color:#3f0f41;border-radius:8px;padding:0 16px}.image-manager{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}.image-manager>div{border:1px solid var(--line);border-radius:10px;padding:9px}.image-manager img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:7px}.image-manager label{display:flex;align-items:center;gap:6px;font-size:13px;margin:8px 0 0}.image-manager input{width:auto}.featured-preview{max-width:360px;border-radius:12px}.editor-toolbar{display:flex;flex-wrap:wrap;gap:6px;border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;padding:8px;background:#f8f9fa}.editor-toolbar button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:7px 10px;cursor:pointer}.rich-editor{min-height:440px;background:#fff;border:1px solid var(--line);border-radius:0 0 10px 10px;padding:24px;outline:0;line-height:1.6}.rich-editor img{max-width:100%;height:auto}.tabs{display:flex;gap:8px;margin-bottom:18px}.tabs a{background:#fff;border:1px solid var(--line);border-radius:20px;padding:8px 13px}.claim-actions{display:grid;gap:7px;min-width:220px}.claim-actions button{border:0;border-radius:7px;padding:8px;color:#fff}.claim-actions .approve{background:#188038}.claim-actions .reject{background:#c5221f}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f5f7fa}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 10px 35px rgba(32,33,36,.1)}.login-brand{display:flex;align-items:center;gap:10px}.login-brand img{width:42px}.login-card h1{margin:28px 0 6px}.login-card>p{color:var(--muted);margin-top:0}.login-card .panel-button{width:100%}.back-link{display:block;text-align:center;margin-top:20px;color:var(--accent)}.panel-empty{color:var(--muted)}@media(max-width:1000px){.panel-shell{grid-template-columns:1fr}.panel-sidebar{position:fixed;left:-280px;width:260px;z-index:30;transition:.2s}.panel-sidebar.open{left:0}.panel-topbar{justify-content:space-between}.panel-menu-toggle{display:block}.stats-grid{grid-template-columns:repeat(2,1fr)}.panel-content{padding:22px}}@media(max-width:640px){.stats-grid,.form-grid,.image-manager{grid-template-columns:1fr}.panel-heading{align-items:flex-start;flex-direction:column}.panel-content{padding:16px}.panel-card{padding:16px}.actions{flex-direction:column;align-items:flex-start}.panel-topbar{padding:0 16px}}


/* Patch 002: subcategorias, captcha e ícones */
.panel-heading-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.category-admin-name{display:flex;align-items:center;gap:9px}
.category-admin-name i,.icon-preview i{color:var(--accent);width:22px;text-align:center}
.icon-preview{display:flex;align-items:center;gap:9px;margin:-4px 0 18px;color:var(--muted)}
.panel-menu-toggle{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:9px;color:var(--text);font-size:18px;place-items:center;cursor:pointer}
.captcha-help{display:block;color:var(--muted);font-size:12px;font-weight:400;margin-top:-2px}
.captcha-row{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:10px;align-items:stretch}
.captcha-image{display:block;width:100%;height:58px;border:1px solid var(--line);border-radius:10px;background:#f8f9fa}
.captcha-refresh{border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--accent);font-size:17px;cursor:pointer}
.captcha-refresh:hover{background:#f7eef7}
@media(max-width:1000px){.panel-menu-toggle{display:grid}}
@media(max-width:640px){.panel-heading-actions{align-items:flex-start;flex-direction:column}.panel-heading-actions .panel-button,.panel-heading-actions .panel-link{width:100%;text-align:center}}

.bulk-bar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:0 0 1rem}.bulk-bar select{min-width:170px}.quick-edit-row td{background:#f8fafc}.quick-edit-form{display:grid;grid-template-columns:2fr 1.2fr 1fr 1fr auto;gap:.6rem;align-items:end}.actions button{background:none;border:0;color:#58155a;cursor:pointer;padding:0}.hours-table input,.hours-table select{min-width:130px}.cep-row{max-width:520px}.input-action-row{display:flex;gap:.5rem}.open-now-badge{display:inline-flex;align-items:center;gap:.35rem;background:#e8f5e9;color:#176b2c;border-radius:999px;padding:.35rem .65rem;font-weight:700}.closed-now-badge{display:inline-flex;background:#f1f3f4;color:#5f6368;border-radius:999px;padding:.35rem .65rem}.open-now-filter{display:inline-flex;align-items:center;gap:.45rem;padding:.6rem .85rem;border:1px solid #dadce0;border-radius:999px;background:#fff}.open-now-filter.active{background:#f3e8f4;border-color:#58155a;color:#3f0f41}@media(max-width:760px){.quick-edit-form{grid-template-columns:1fr}.input-action-row{align-items:stretch;flex-direction:column}.hours-table{min-width:650px}}


/* Patch 004 — tabelas administrativas alinhadas ao painel */
.admin-list-card{padding:0;overflow:hidden}
.admin-list-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px 8px}
.admin-list-header h2{margin:0;font-size:21px}
.admin-list-header p{margin:5px 0 0;color:var(--muted);font-size:14px}
.admin-list-filters{display:grid;grid-template-columns:minmax(250px,1.45fr) minmax(175px,.8fr) minmax(190px,.9fr) minmax(145px,.65fr) auto;gap:14px;align-items:end;padding:16px 24px 22px;border-bottom:1px solid var(--line)}
.admin-list-filters label{display:grid;gap:7px;min-width:0;color:#3c4043;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.admin-list-filters input,.admin-list-filters select,.admin-bulk-bar select,.quick-edit-panel input,.quick-edit-panel select{width:100%;height:42px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 11px;font:inherit;color:var(--text);outline:none}
.admin-list-filters input:focus,.admin-list-filters select:focus,.admin-bulk-bar select:focus,.quick-edit-panel input:focus,.quick-edit-panel select:focus{border-color:#a667a8;box-shadow:0 0 0 3px rgba(88,21,90,.12)}
.admin-input-icon{position:relative}.admin-input-icon i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#80868b;font-size:13px}.admin-input-icon input{padding-left:35px}
.admin-filter-actions{display:flex;align-items:center;gap:12px;min-height:42px}.admin-filter-actions .panel-button{height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;padding:0 16px}.admin-clear-filter{color:var(--accent);font-size:13px;font-weight:700}
.admin-bulk-bar{display:flex;align-items:center;gap:10px;min-height:64px;padding:11px 24px;background:#f8fafd;border-bottom:1px solid var(--line)}
.admin-bulk-bar select{width:auto;min-width:180px;height:40px}.admin-selected-count{margin-right:auto;color:var(--muted);font-size:13px}.admin-selected-count strong{color:var(--text)}
.admin-secondary-button{height:40px;border:1px solid #d9b8db;border-radius:9px;background:#f7eef7;color:#3f0f41;padding:0 16px;font:inherit;font-weight:700;cursor:pointer}.admin-secondary-button:hover{background:#ead9eb}
.admin-table-wrap{overflow:auto}.admin-data-table{min-width:850px}.admin-data-table th{padding:12px 14px;background:#fff;color:var(--muted);font-size:11px;letter-spacing:.045em;white-space:nowrap}.admin-data-table td{padding:15px 14px;vertical-align:middle}.admin-data-table tbody tr:not(.quick-edit-row):hover{background:#fafbfd}.admin-data-table .check-column{width:46px;text-align:center}.admin-data-table .check-column input{width:17px;height:17px;accent-color:var(--accent)}
.table-sort{display:inline-flex;align-items:center;gap:7px;color:inherit}.table-sort i{font-size:11px;color:#9aa0a6}.table-sort.active,.table-sort:hover{color:var(--accent)}.table-sort.active i{color:var(--accent)}
.primary-cell{min-width:220px}.primary-cell strong{display:block;color:var(--text);font-size:14px}.primary-cell small{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-cell{white-space:nowrap;color:#5f6368;font-size:13px}.actions-column{width:210px}
.admin-row-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}.admin-row-actions a,.admin-row-actions button{display:inline-flex;align-items:center;gap:6px;height:32px;border:1px solid transparent;border-radius:7px;background:transparent;color:#3c4043;padding:0 8px;font:inherit;font-size:12px;cursor:pointer}.admin-row-actions a:hover,.admin-row-actions button:hover{background:#f7eef7;color:var(--accent);border-color:#e4cde5}.admin-row-actions i{font-size:12px;color:var(--accent)}
.quick-edit-row td{padding:0!important;background:#fcf7fc!important}.quick-edit-panel{display:grid;grid-template-columns:minmax(180px,1.6fr) minmax(170px,1fr) minmax(135px,.65fr) minmax(150px,.8fr) auto;gap:14px;align-items:end;padding:18px 22px;border-left:4px solid var(--accent)}.quick-edit-panel-post{grid-template-columns:minmax(240px,1.8fr) minmax(180px,1fr) minmax(140px,.7fr) auto}.quick-edit-title{grid-column:1/-1;display:flex;align-items:center;gap:8px;color:#3f0f41;font-size:13px}.quick-edit-panel label{display:grid;gap:6px;color:#5f6368;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.quick-edit-actions{display:flex;align-items:center;gap:10px}.quick-edit-actions .panel-button{height:42px;white-space:nowrap;padding:0 14px}.admin-link-button{height:42px;border:0;background:transparent;color:var(--accent);font:inherit;font-weight:700;cursor:pointer}.admin-empty-row{padding:34px;text-align:center}
.admin-list-card.has-selection .admin-bulk-bar{background:#f7eef7}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:1100px){.admin-list-filters{grid-template-columns:1fr 1fr}.admin-filter-search{grid-column:1/-1}.admin-filter-actions{justify-content:flex-end}.quick-edit-panel,.quick-edit-panel-post{grid-template-columns:1fr 1fr}.quick-edit-title,.quick-edit-actions{grid-column:1/-1}.quick-edit-actions{justify-content:flex-end}}
@media(max-width:700px){.admin-list-header{padding:18px 16px 6px}.admin-list-filters{grid-template-columns:1fr;padding:14px 16px 18px}.admin-filter-search{grid-column:auto}.admin-filter-actions{justify-content:flex-start}.admin-bulk-bar{align-items:stretch;flex-direction:column;padding:12px 16px}.admin-bulk-bar select{width:100%;min-width:0}.admin-selected-count{margin:0}.admin-secondary-button{width:100%}.admin-data-table{min-width:760px}.admin-row-actions span{display:none}.admin-row-actions a,.admin-row-actions button{width:32px;justify-content:center;padding:0}.quick-edit-panel,.quick-edit-panel-post{grid-template-columns:1fr;padding:16px}.quick-edit-title,.quick-edit-actions{grid-column:auto}.quick-edit-actions{align-items:stretch;flex-direction:column}.quick-edit-actions .panel-button,.admin-link-button{width:100%}}


/* Patch 007 — endereço na tabela e layout sem rolagem horizontal */
.admin-table-wrap{
    width:100%;
    overflow-x:visible;
}
.admin-data-table{
    width:100%;
    min-width:0;
    table-layout:fixed;
}
.admin-data-table .check-column{
    width:4%;
}
.admin-data-table .name-column{
    width:24%;
}
.admin-data-table .category-column{
    width:18%;
}
.admin-data-table .address-column{
    width:22%;
}
.admin-data-table .status-column{
    width:11%;
}
.admin-data-table .updated-column{
    width:12%;
}
.admin-data-table .actions-column{
    width:19%;
}
.admin-data-table th,
.admin-data-table td{
    min-width:0;
    overflow-wrap:anywhere;
}
.admin-data-table .primary-cell{
    min-width:0;
}
.admin-data-table .primary-cell strong,
.admin-data-table .primary-cell small,
.admin-data-table .category-column span,
.admin-data-table .category-column small,
.business-address{
    display:block;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
}
.admin-data-table .primary-cell strong,
.admin-data-table .category-column span,
.business-address{
    white-space:normal;
}
.admin-data-table .primary-cell small,
.admin-data-table .category-column small{
    white-space:nowrap;
}
.business-address{
    color:var(--text);
    font-size:13px;
    line-height:1.4;
}
.business-address-empty{
    color:var(--muted);
    font-size:12px;
    font-style:italic;
}
.admin-row-actions{
    justify-content:flex-start;
    gap:3px;
    white-space:normal;
    flex-wrap:wrap;
}
.admin-row-actions a,
.admin-row-actions button{
    padding:0 6px;
}
@media(max-width:1250px){
    .admin-data-table .name-column{width:25%}
    .admin-data-table .category-column{width:18%}
    .admin-data-table .address-column{width:23%}
    .admin-data-table .status-column{width:11%}
    .admin-data-table .updated-column{width:13%}
    .admin-data-table .actions-column{width:16%}
    .admin-row-actions span{display:none}
    .admin-row-actions a,
    .admin-row-actions button{
        width:32px;
        justify-content:center;
        padding:0;
    }
}
@media(max-width:900px){
    .admin-data-table .updated-column{
        display:none;
    }
    .admin-data-table .name-column{width:29%}
    .admin-data-table .category-column{width:21%}
    .admin-data-table .address-column{width:27%}
    .admin-data-table .status-column{width:12%}
    .admin-data-table .actions-column{width:11%}
}
@media(max-width:700px){
    .admin-table-wrap{
        overflow:visible;
        padding:0 12px 14px;
    }
    .admin-data-table,
    .admin-data-table tbody{
        display:block;
        width:100%;
    }
    .admin-data-table{
        min-width:0;
    }
    .admin-data-table thead{
        display:none;
    }
    .admin-data-table tbody tr:not(.quick-edit-row){
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
        gap:0;
        width:100%;
        margin:12px 0;
        border:1px solid var(--line);
        border-radius:12px;
        background:#fff;
        overflow:hidden;
    }
    .admin-data-table tbody tr:not(.quick-edit-row) td{
        display:grid;
        grid-template-columns:92px minmax(0,1fr);
        align-items:start;
        gap:10px;
        width:auto!important;
        padding:10px 13px;
        border-bottom:1px solid #eef0f2;
    }
    .admin-data-table tbody tr:not(.quick-edit-row) td::before{
        content:attr(data-label);
        color:var(--muted);
        font-size:10px;
        font-weight:700;
        letter-spacing:.04em;
        text-transform:uppercase;
    }
    .admin-data-table tbody tr:not(.quick-edit-row) .check-column{
        grid-column:2;
        grid-row:1;
        display:flex;
        justify-content:flex-end;
        align-items:center;
        width:auto!important;
        border-bottom:0;
        background:transparent;
        z-index:1;
    }
    .admin-data-table tbody tr:not(.quick-edit-row) .check-column::before{
        display:none;
    }
    .admin-data-table tbody tr:not(.quick-edit-row) .name-column{
        grid-column:1/-1;
        grid-row:1;
        padding-right:54px;
        background:#fafbfd;
    }
    .admin-data-table tbody tr:not(.quick-edit-row) .name-column::before{
        display:none;
    }
    .admin-data-table tbody tr:not(.quick-edit-row) .category-column,
    .admin-data-table tbody tr:not(.quick-edit-row) .address-column,
    .admin-data-table tbody tr:not(.quick-edit-row) .status-column,
    .admin-data-table tbody tr:not(.quick-edit-row) .actions-column{
        grid-column:1/-1;
    }
    .admin-data-table tbody tr:not(.quick-edit-row) .updated-column{
        display:none;
    }
    .admin-data-table tbody tr:not(.quick-edit-row) .actions-column{
        border-bottom:0;
        align-items:center;
    }
    .admin-row-actions{
        justify-content:flex-start;
    }
    .admin-row-actions a,
    .admin-row-actions button{
        width:auto;
        min-width:34px;
        padding:0 9px;
    }
    .admin-row-actions span{
        display:inline;
    }
    .quick-edit-row{
        display:block;
        width:100%;
        margin:-5px 0 12px;
    }
    .quick-edit-row td{
        display:block;
        width:100%;
    }
}

/* Patch 008 — identidade roxa de São Vicente */
.panel-button:hover,
.panel-button:focus-visible{
    background:var(--accent-dark);
}
