:root{--primary:#075f9e;--primary2:#0875bd;--accent:#f36b16;--bg:#f3f6f8;--surface:#fff;--border:#dce4e9;--text:#17242e;--muted:#62727d;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg);font-size:16px;line-height:1.5}a{color:inherit}.skip-link{position:fixed;top:8px;left:8px;z-index:100;padding:10px 14px;color:#fff;background:var(--primary);border-radius:6px;transform:translateY(-150%)}.skip-link:focus{transform:none}
.topbar{position:sticky;top:0;z-index:20;display:flex;min-height:78px;align-items:center;justify-content:space-between;padding:8px 28px;color:#fff;background:var(--primary);border-bottom:4px solid var(--accent);box-shadow:0 1px 3px #12324a14}.brand{display:flex;align-items:center;gap:14px}.brand__logo-wrap{display:flex;align-items:center;padding:4px 8px;border-radius:7px;background:#fff}.brand__logo{display:block;width:148px;height:50px;object-fit:contain}.brand strong,.brand small{display:block}.brand small{color:#ffffffc7;font-size:12px}.badge,.status{display:inline-flex;min-height:30px;align-items:center;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:700}.badge{background:#ffffff1f}.status{color:#8a5d00;background:#fff4d6}
.shell{display:grid;min-height:calc(100vh - 78px);grid-template-columns:248px minmax(0,1fr)}.sidebar{padding:24px 16px;border-right:1px solid var(--border);background:var(--surface)}.sidebar nav{position:sticky;top:102px}.nav-link{display:flex;min-height:42px;align-items:center;margin-bottom:4px;padding:9px 12px;color:#3c4b55;border-radius:8px;text-decoration:none;font-weight:600}.nav-link:hover,.nav-link.active{color:var(--primary);background:#e8f3fa}.nav-link.active{border-left:3px solid var(--accent)}.nav-heading{display:block;margin:24px 12px 8px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.content{width:100%;max-width:1440px;padding:34px;outline:none}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}.page-heading h1,.error-page h1{margin:2px 0 6px;color:var(--primary);font-size:clamp(26px,3vw,36px);line-height:1.2}.page-heading p,.panel p,.error-page p{margin:0;color:var(--muted)}.eyebrow{color:var(--accent)!important;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.metric,.panel{border:1px solid var(--border);background:var(--surface);box-shadow:0 1px 3px #12324a14}.metric{min-height:150px;padding:20px;border-radius:10px}.metric span,.metric small{display:block;color:var(--muted)}.metric strong{display:block;margin:16px 0 6px;color:var(--primary);font-size:32px}.panel{padding:24px;border-radius:16px}.panel h2{margin:0 0 4px;color:var(--primary);font-size:20px}.notice{display:flex;align-items:center;gap:14px;margin-top:22px;padding:18px;border-radius:10px;background:#f1f7f7}.notice b{display:grid;width:38px;height:38px;place-items:center;color:#fff;border-radius:50%;background:var(--accent)}
.error-page{max-width:620px;margin:10vh auto;padding:34px;border:1px solid var(--border);border-radius:16px;background:#fff}.button{display:inline-flex;min-height:42px;align-items:center;margin-top:22px;padding:9px 16px;color:#fff;border-radius:8px;background:var(--primary2);text-decoration:none;font-weight:700}.button:focus-visible,.nav-link:focus-visible{outline:3px solid #69b6d2;outline-offset:2px}
@media(max-width:980px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.topbar{padding:7px 16px}.brand__logo{width:112px;height:40px}.brand__title,.badge{display:none}.shell{display:block}.sidebar{overflow-x:auto;padding:10px 14px;border-right:0;border-bottom:1px solid var(--border)}.sidebar nav{position:static;display:flex;min-width:max-content;gap:4px}.nav-heading{display:none}.nav-link{margin:0}.content{padding:22px 16px}.page-heading{display:block}.status{margin-top:16px}.metrics{grid-template-columns:1fr}}
.shell--public{display:block}.shell--public .content{max-width:none}.login-card{width:min(460px,calc(100% - 32px));margin:8vh auto;padding:32px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:0 12px 30px #12324a1a}.login-card h1{margin:4px 0;color:var(--primary)}.login-card>p:not(.eyebrow){margin:0;color:var(--muted)}.form-stack{display:grid;gap:18px;margin-top:26px}.form-stack label span{display:block;margin-bottom:6px;font-weight:700}.form-stack input{width:100%;min-height:44px;padding:9px 12px;border:1px solid #b9c7d0;border-radius:8px;font:inherit}.form-stack input:focus{outline:3px solid #69b6d266;border-color:var(--primary2)}.button-block{width:100%;justify-content:center;border:0;cursor:pointer}.form-alert{margin-top:18px;padding:12px 14px;color:#7a1f1f;border:1px solid #edb8b8;border-radius:8px;background:#fff2f2}.logout-button{padding:8px 12px;color:#fff;border:1px solid #dc3545;border-radius:8px;background:#b42318;font:inherit;font-weight:700;cursor:pointer}.logout-button:hover{background:#8f1c13}
.search-form{margin-bottom:22px}.search-form label{display:block;margin-bottom:7px;font-weight:700}.search-form>div{display:flex;gap:8px}.search-form input{min-width:280px;flex:1;padding:9px 12px;border:1px solid #b9c7d0;border-radius:8px;font:inherit}.search-form .button{margin-top:0;border:0}.button-secondary{color:var(--primary);border:1px solid var(--border)!important;background:#fff}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:10px}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th,.data-table td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.data-table th{color:#3d4d58;background:#f3f6f8;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.data-table tbody tr:hover{background:#f8fbfc}.table-empty{text-align:center!important;color:var(--muted)}.state{display:inline-flex;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700}.state--assigned{color:#075f9e;background:#e7f3fb}.state--available{color:#176b3a;background:#e8f6ed}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px}.pagination a{color:var(--primary);font-weight:700;text-decoration:none}
@media(max-width:720px){.search-form>div{display:grid}.search-form input{min-width:0;width:100%}}
.table-action,.back-link{color:var(--primary);font-weight:700;text-decoration:none;white-space:nowrap}.table-action:hover,.back-link:hover{text-decoration:underline}.detail-actions{margin-bottom:20px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.definition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;margin:18px 0 0}.definition-grid>div{padding:11px 0;border-bottom:1px solid var(--border)}.definition-grid dt{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.definition-grid dd{margin:3px 0 0;overflow-wrap:anywhere;font-weight:600}.definition-wide{grid-column:1/-1}
@media(max-width:900px){.detail-grid{grid-template-columns:1fr}}@media(max-width:540px){.definition-grid{grid-template-columns:1fr}.definition-wide{grid-column:auto}}
.detail-grid--summary{margin-bottom:18px}.detail-items{margin-top:18px}.panel-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.panel-heading-row p{margin:0;color:var(--muted)}.total-value{color:var(--primary);font-size:22px;white-space:nowrap}@media(max-width:600px){.panel-heading-row{display:block}.total-value{display:block;margin-top:10px}}
.standalone-content{width:100%;max-width:1400px;margin:0 auto;padding:34px}@media(max-width:720px){.standalone-content{padding:22px 16px}}
.modal-back-button{margin-top:0}
.catalog-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.catalog-tabs{display:flex;gap:6px;overflow:auto;margin-bottom:14px}.catalog-tab{padding:10px 15px;color:var(--muted);border:1px solid var(--border);border-radius:8px;background:#fff;font:inherit;font-weight:700;cursor:pointer}.catalog-tab.active{color:#fff;border-color:var(--primary);background:var(--primary)}.catalog-panel{display:none}.catalog-panel.active{display:block}@media(max-width:900px){.catalog-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.catalog-cards{grid-template-columns:1fr}}
.success-alert{margin-bottom:18px;padding:12px 14px;color:#176b3a;border:1px solid #a9d8b9;border-radius:8px;background:#eaf7ee}.form-panel{max-width:900px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.institutional-form label span{display:block;margin-bottom:6px;font-weight:700}.institutional-form label b{color:#b42318}.institutional-form input,.institutional-form select{width:100%;min-height:44px;padding:9px 12px;border:1px solid #b9c7d0;border-radius:8px;background:#fff;font:inherit}.institutional-form input:focus,.institutional-form select:focus{outline:3px solid #69b6d266;border-color:var(--primary2)}.institutional-form input:disabled{color:var(--muted);background:#f3f6f8}.form-wide{grid-column:1/-1}.form-confirmation{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:26px;padding:18px;border-radius:10px;background:#f3f6f8}.form-confirmation p{margin:0}.form-confirmation .button{flex:0 0 auto;margin-top:0;border:0;cursor:pointer}@media(max-width:650px){.form-grid{grid-template-columns:1fr}.form-wide{grid-column:auto}.form-confirmation{display:block}.form-confirmation .button{width:100%;justify-content:center;margin-top:16px}}
.institutional-form textarea{width:100%;padding:9px 12px;border:1px solid #b9c7d0;border-radius:8px;font:inherit;resize:vertical}.detail-heading-actions{display:flex;align-items:center;gap:14px}.detail-heading-actions .button{margin-top:0}@media(max-width:650px){.detail-heading-actions{align-items:flex-start;flex-direction:column}}
.modal-document{background:#fff}.modal-document .standalone-content{padding:24px;max-width:none}.modal-trigger{padding:0;border:0;background:transparent;font:inherit;cursor:pointer}.detail-modal{width:min(1200px,94vw);height:min(850px,90vh);padding:0;border:0;border-radius:14px;background:#fff;box-shadow:0 24px 70px #0b263a4d}.detail-modal::backdrop{background:#071b29a8;backdrop-filter:blur(2px)}.detail-modal__header{display:flex;min-height:56px;align-items:center;justify-content:space-between;padding:10px 16px;color:#fff;background:var(--primary);border-bottom:3px solid var(--accent)}.detail-modal__close{display:grid;width:36px;height:36px;place-items:center;color:#fff;border:1px solid #ffffff59;border-radius:8px;background:transparent;font-size:27px;line-height:1;cursor:pointer}.detail-modal__close:hover{background:#ffffff1a}.detail-modal__frame{display:block;width:100%;height:calc(100% - 56px);border:0;background:#fff}@media(max-width:720px){.detail-modal{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0}.modal-document .standalone-content{padding:16px}}
.success-alert,.form-alert{position:relative;padding-right:48px}.message-close{position:absolute;top:50%;right:12px;width:28px;height:28px;transform:translateY(-50%);border:0;border-radius:6px;background:transparent;color:inherit;font-size:22px;line-height:1;cursor:pointer}.message-close:hover{background:#0000000d}.inline-form{display:inline;margin-left:10px}.table-action--danger{color:#b42318}.button--danger{color:#fff;border:0;background:#b42318}.delete-draft-form{display:flex;justify-content:flex-end;margin-top:14px}.delete-draft-form .button{margin-top:0}
@media print{.topbar,.sidebar,.skip-link,.search-form,.catalog-tabs,.page-heading .button,.message-close{display:none!important}.shell{display:block}.content{max-width:none!important;padding:0!important}.panel,.metric{box-shadow:none!important;break-inside:avoid}.data-table{font-size:10pt}.data-table th,.data-table td{padding:7px}.page-heading{margin-bottom:12px}body{background:#fff;color:#000}}
.official-report-actions{display:flex;justify-content:space-between;margin-bottom:18px}.official-format{padding:10px;background:#fff;color:#111}.official-format__header{display:grid;grid-template-columns:25% 58% 17%;border:1px solid #222}.official-format__header>div{display:grid;align-content:center;min-height:76px;border-right:1px solid #222;text-align:center}.official-format__header>div:last-child{border:0}.official-format__header b,.official-format__header span{display:block;padding:4px;border-top:1px solid #222}.official-format__logo img{width:90%;max-height:68px;object-fit:contain}.official-format__institution{display:grid;gap:7px;padding:18px 5px;text-align:center}.official-format__metadata,.official-format__table{width:100%;border-collapse:collapse;font-size:12px}.official-format__metadata th,.official-format__metadata td,.official-format__table th,.official-format__table td{padding:5px;border:1px solid #333}.official-format__metadata th,.official-format__table th,.official-format__subtotal{background:#c5d9f1}.official-format__table .num{text-align:right;white-space:nowrap}.official-format__subtotal{font-weight:700}@media print{@page{size:letter landscape;margin:8mm}.official-report-actions{display:none}.official-format{padding:0}.official-format__table{font-size:8px}.official-format__table th,.official-format__table td{padding:3px}.official-format__header{break-inside:avoid}}
.transfer-reference{display:flex;justify-content:space-between;padding:18px 2px 10px}.transfer-party{margin:10px 0}.transfer-party h2{font-size:13px}.transfer-party dl{display:grid;gap:7px}.transfer-party dl div{display:grid;grid-template-columns:180px 1fr}.transfer-party dt{text-transform:uppercase;font-weight:700}.transfer-party dd{margin:0;padding:0 6px 3px;border-bottom:1px solid #333}.transfer-observations{margin-top:18px}.transfer-observations p{min-height:42px;border-bottom:1px solid #333}.transfer-signatures{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:50px;text-align:center}.transfer-signatures span{display:block;border-top:1px solid #222}.transfer-signatures strong{display:block;padding-top:6px;font-size:11px}@media print{.official-transfer{font-size:10pt}.official-transfer .official-format__table{font-size:9pt}}
.confirm-dialog{width:min(470px,calc(100% - 32px));padding:0;border:0;border-radius:14px;background:#fff;box-shadow:0 24px 70px #0b263a4d}.confirm-dialog::backdrop{background:#071b29a8;backdrop-filter:blur(2px)}.confirm-dialog__card{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:24px}.confirm-dialog__icon{display:grid;width:42px;height:42px;place-items:center;color:#9b2c20;border-radius:50%;background:#feeceb;font-size:24px;font-weight:800}.confirm-dialog h2{margin:0 0 6px;color:var(--primary);font-size:21px}.confirm-dialog p{margin:0;color:var(--muted)}.confirm-dialog__actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.confirm-dialog__actions .button{margin-top:0;border:0;cursor:pointer}
.quantity-action{display:flex;align-items:center;gap:10px}.quantity-action input{width:120px;min-height:36px;padding:6px 8px;border:1px solid #b9c7d0;border-radius:7px;font:inherit}.quantity-action button{border:0;background:transparent;cursor:pointer}
.official-format__group td{padding:7px;background:#8db3e2;font-weight:700;text-transform:uppercase}.official-format__group{break-after:avoid}
.account-actions{display:flex;align-items:center;gap:12px}.account-actions form{margin:0}.account-link{padding:8px 12px;color:#fff;border:1px solid #ffffff59;border-radius:8px;text-decoration:none;font-weight:700}.account-link:hover{background:#ffffff1a}
.period-badge{padding:7px 11px;color:#fff;border:1px solid #8fd3a8;border-radius:999px;background:#18794e;text-decoration:none;font-size:13px;font-weight:800}.period-badge--warning{border-color:#ffd27a;background:#9a6700}.status--warning{color:#8a3b12;background:#fff1dc}
.role-form{display:flex;align-items:center;gap:6px}.role-form select{min-width:135px;padding:6px;border:1px solid #b9c7d0;border-radius:6px;background:#fff}
.admin-create{margin-bottom:20px;padding:14px;border:1px solid var(--border);border-radius:10px;background:#f8fbfd}.admin-create summary{color:var(--primary);font-weight:800;cursor:pointer}.admin-create form{margin-top:16px}.reset-form{display:flex;gap:5px;margin-top:7px}.reset-form input{width:155px;padding:5px;border:1px solid #b9c7d0;border-radius:5px}
.period-close{display:grid;gap:6px;min-width:190px}.period-close textarea{padding:6px;border:1px solid #b9c7d0;border-radius:6px;font:inherit;resize:vertical}.period-close .button{margin:0}

/* Refinamiento visual institucional */
:root{
    --primary:#075f9e;
    --primary2:#0875bd;
    --primary-dark:#064a7a;
    --accent:#f36b16;
    --accent-soft:#fff2e8;
    --bg:#f4f7f9;
    --surface:#fff;
    --surface-subtle:#f8fafb;
    --border:#d8e2e8;
    --border-strong:#c4d2dc;
    --text:#152936;
    --muted:#607482;
    --shadow-sm:0 2px 8px rgba(18,50,74,.06);
    --shadow-md:0 10px 28px rgba(18,50,74,.09);
    --radius-sm:8px;
    --radius-md:12px;
    --radius-lg:16px
}
html{scroll-behavior:smooth}
body{
    color:var(--text);
    background:
        linear-gradient(180deg,rgba(7,95,158,.025),transparent 260px),
        var(--bg);
    font-size:15px;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility
}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}

.topbar{
    min-height:82px;
    padding:10px 30px;
    background:linear-gradient(115deg,var(--primary-dark),var(--primary) 58%,#086cae);
    border-bottom-width:3px;
    box-shadow:0 5px 18px rgba(5,57,94,.18)
}
.brand{gap:16px}
.brand__logo-wrap{
    padding:5px 10px;
    border:1px solid rgba(255,255,255,.7);
    border-radius:9px;
    box-shadow:0 2px 8px rgba(0,0,0,.1)
}
.brand__title strong{font-size:17px;letter-spacing:.01em}
.brand__title small{margin-top:1px;font-size:12px;letter-spacing:.02em}
.account-actions{gap:10px}
.account-link,.logout-button,.period-badge{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 13px;
    border-radius:9px;
    transition:background-color .18s ease,border-color .18s ease,transform .18s ease
}
.account-link:hover,.period-badge:hover{background:rgba(255,255,255,.16)}
.logout-button{border-color:#e75b63;background:#b42318;box-shadow:0 2px 6px rgba(64,8,8,.15)}
.logout-button:hover{background:#951c14}

.shell{min-height:calc(100vh - 82px);grid-template-columns:256px minmax(0,1fr)}
.sidebar{
    position:relative;
    z-index:5;
    padding:28px 18px;
    border-right-color:var(--border);
    box-shadow:3px 0 14px rgba(18,50,74,.035)
}
.sidebar nav{top:108px}
.nav-heading{
    margin:26px 14px 9px;
    color:#718592;
    font-size:10px;
    letter-spacing:.14em
}
.nav-link{
    position:relative;
    min-height:45px;
    margin-bottom:5px;
    padding:10px 14px;
    color:#3b505e;
    border:1px solid transparent;
    border-radius:9px;
    font-size:14px;
    transition:color .16s ease,background-color .16s ease,border-color .16s ease,transform .16s ease
}
.nav-link:hover{
    color:var(--primary);
    border-color:#d8eaf5;
    background:#f0f7fb;
    transform:translateX(2px)
}
.nav-link.active{
    padding-left:16px;
    color:var(--primary);
    border-color:#cfe4f1;
    border-left:0;
    background:linear-gradient(90deg,#e7f3fa,#f4f9fc);
    box-shadow:0 3px 10px rgba(7,95,158,.07)
}
.nav-link.active::before{
    position:absolute;
    top:8px;
    bottom:8px;
    left:0;
    width:4px;
    border-radius:0 4px 4px 0;
    background:var(--accent);
    content:""
}

.content{max-width:1560px;padding:38px clamp(24px,3vw,46px) 54px}
.page-heading{align-items:center;margin-bottom:26px}
.page-heading h1,.error-page h1{
    margin:3px 0 7px;
    color:var(--primary);
    font-size:clamp(28px,3vw,40px);
    font-weight:750;
    letter-spacing:-.025em
}
.page-heading p{max-width:780px;font-size:16px}
.eyebrow{margin-bottom:4px!important;font-size:11px;letter-spacing:.15em}
.page-heading>.button,.page-heading>div+.button{margin-top:0}

.metrics{gap:18px;margin-bottom:26px}
.metric,.panel{
    border-color:var(--border);
    box-shadow:var(--shadow-sm);
    transition:border-color .18s ease,box-shadow .18s ease
}
.metric{
    position:relative;
    min-height:145px;
    overflow:hidden;
    padding:22px;
    border-radius:var(--radius-md)
}
.metric::before{
    position:absolute;
    top:0;
    right:0;
    left:0;
    height:3px;
    background:linear-gradient(90deg,var(--primary),var(--primary2),var(--accent));
    content:""
}
.metric:hover,.panel:hover{border-color:#cbdbe4;box-shadow:var(--shadow-md)}
.metric strong{margin:13px 0 4px;font-size:34px;letter-spacing:-.025em}
.metric span{font-weight:650}
.panel{padding:26px;border-radius:var(--radius-lg)}
.panel+.panel{margin-top:22px}
.panel h2{margin-bottom:5px;font-size:21px;letter-spacing:-.012em}
.section-heading,.panel-heading-row{margin-bottom:20px}

.button{
    min-height:43px;
    justify-content:center;
    margin-top:20px;
    padding:9px 17px;
    border:1px solid var(--primary2);
    border-radius:9px;
    background:linear-gradient(180deg,#1182c8,var(--primary2));
    box-shadow:0 3px 8px rgba(7,95,158,.14);
    font-size:14px;
    line-height:1.2;
    transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease
}
.button:hover{background:var(--primary);box-shadow:0 5px 12px rgba(7,95,158,.2);transform:translateY(-1px)}
.button:active{box-shadow:none;transform:translateY(0)}
.button-secondary{
    color:var(--primary);
    border-color:#bfd3df!important;
    background:#fff;
    box-shadow:none
}
.button-secondary:hover{border-color:var(--primary)!important;background:#edf6fb}
.button--danger{
    border-color:#a51e15;
    background:linear-gradient(180deg,#c72d22,#aa2118);
    box-shadow:0 3px 8px rgba(143,28,19,.15)
}
.button--danger:hover{background:#941c14;box-shadow:0 5px 12px rgba(143,28,19,.2)}
.button:focus-visible,.nav-link:focus-visible,.account-link:focus-visible,.logout-button:focus-visible,
.table-action:focus-visible,.catalog-tab:focus-visible,.detail-modal__close:focus-visible{
    outline:3px solid rgba(243,107,22,.42);
    outline-offset:2px
}

.search-form{margin-bottom:24px}
.search-form label,.institutional-form label span,.form-stack label span{
    margin-bottom:7px;
    color:#334c5b;
    font-size:13px;
    font-weight:750
}
.search-form input,.institutional-form input,.institutional-form select,
.institutional-form textarea,.form-stack input,.quantity-action input,
.role-form select,.reset-form input,.period-close textarea{
    border-color:var(--border-strong);
    border-radius:9px;
    color:var(--text);
    background:#fff;
    box-shadow:inset 0 1px 2px rgba(18,50,74,.025);
    transition:border-color .16s ease,box-shadow .16s ease
}
.search-form input{min-height:45px}
.search-form input::placeholder,.institutional-form input::placeholder,
.institutional-form textarea::placeholder{color:#8799a4}
.search-form input:focus,.institutional-form input:focus,.institutional-form select:focus,
.institutional-form textarea:focus,.form-stack input:focus,.quantity-action input:focus,
.role-form select:focus,.reset-form input:focus,.period-close textarea:focus{
    border-color:var(--primary2);
    outline:0;
    box-shadow:0 0 0 3px rgba(8,117,189,.14)
}
.form-grid{gap:20px}
.form-confirmation{
    border:1px solid #dce8ee;
    border-left:4px solid var(--primary2);
    border-radius:var(--radius-md);
    background:#f4f9fc
}

.table-wrap{
    border-color:var(--border);
    border-radius:var(--radius-md);
    background:#fff;
    box-shadow:0 1px 2px rgba(18,50,74,.025)
}
.data-table{font-size:13.5px}
.data-table th,.data-table td{padding:13px 14px}
.data-table th{
    color:#385160;
    background:#f1f5f7;
    font-size:11px;
    font-weight:800;
    letter-spacing:.055em
}
.data-table tbody tr{transition:background-color .14s ease}
.data-table tbody tr:nth-child(even){background:#fbfcfd}
.data-table tbody tr:hover{background:#eef7fc}
.data-table tbody tr:last-child td{border-bottom:0}
.data-table td strong{color:#183747}
.data-table small{color:var(--muted)}
.table-action{color:#0869aa}
.table-action--danger{color:#b42318}
.table-empty{padding:28px!important}

.state,.status{
    min-height:27px;
    align-items:center;
    padding:4px 10px;
    border:1px solid #d9e5eb;
    color:#415967;
    background:#eef3f6
}
.state--assigned{border-color:#c7e1f1}
.state--available{border-color:#c7e6d2}
.status--warning{border-color:#f4d6a8}
.success-alert,.form-alert{
    border-radius:10px;
    box-shadow:0 2px 8px rgba(18,50,74,.04)
}

.definition-grid{margin-top:20px}
.definition-grid>div{padding:13px 0}
.definition-grid dt{font-size:11px;letter-spacing:.035em}
.definition-grid dd{margin-top:5px}
.catalog-tabs{
    gap:8px;
    margin-bottom:18px;
    padding:4px;
    border:1px solid var(--border);
    border-radius:11px;
    background:#edf3f6
}
.catalog-tab{border-color:transparent;background:transparent;font-size:14px}
.catalog-tab:hover{color:var(--primary);background:#fff}
.catalog-tab.active{box-shadow:0 3px 8px rgba(7,95,158,.16)}

.detail-modal,.confirm-dialog{
    overflow:hidden;
    border:1px solid rgba(255,255,255,.6);
    border-radius:16px;
    box-shadow:0 30px 85px rgba(5,35,54,.38)
}
.detail-modal__header{
    min-height:60px;
    padding:11px 18px;
    background:linear-gradient(105deg,var(--primary-dark),var(--primary))
}
.detail-modal__close{border-radius:9px}
.confirm-dialog__card{padding:27px}
.confirm-dialog__icon{box-shadow:0 0 0 6px #fff5f4}
.login-card{
    margin:7vh auto;
    padding:36px;
    border-top:4px solid var(--accent);
    box-shadow:0 20px 55px rgba(18,50,74,.14)
}
.login-card h1{font-size:32px;letter-spacing:-.025em}
.notice{border:1px solid #dcebed;border-left:4px solid var(--accent);background:#f5fafb}

@media(max-width:980px){
    .shell{grid-template-columns:224px minmax(0,1fr)}
    .sidebar{padding-right:12px;padding-left:12px}
    .content{padding-right:24px;padding-left:24px}
    .account-actions{gap:6px}
    .account-link,.logout-button,.period-badge{padding-right:10px;padding-left:10px}
}
@media(max-width:720px){
    .topbar{min-height:69px;padding:8px 14px}
    .shell{min-height:calc(100vh - 69px)}
    .brand__logo-wrap{padding:3px 7px}
    .brand__logo{width:104px;height:38px}
    .account-link{display:none}
    .period-badge{min-height:34px;padding:6px 9px;font-size:11px}
    .logout-button{min-height:34px;padding:6px 9px;font-size:12px}
    .sidebar{padding:9px 12px;box-shadow:0 3px 12px rgba(18,50,74,.05)}
    .nav-link{min-height:40px;padding:8px 12px;white-space:nowrap}
    .nav-link:hover{transform:none}
    .content{padding:24px 15px 38px}
    .page-heading{margin-bottom:21px}
    .page-heading h1{font-size:29px}
    .page-heading p{font-size:14px}
    .page-heading>.button{width:100%;margin-top:16px}
    .panel{padding:19px;border-radius:13px}
    .metric{min-height:125px}
    .search-form>div{gap:10px}
    .search-form .button{width:100%}
    .data-table th,.data-table td{padding:11px 12px}
    .detail-modal,.confirm-dialog{border-radius:0}
    .login-card{padding:26px}
}
@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{scroll-behavior:auto!important;transition:none!important}
}
@media print{
    body{background:#fff}
    .panel:hover,.metric:hover{box-shadow:none}
}

/* Menú lateral tipo acordeón */
.nav-group{
    margin-top:10px;
    border:1px solid transparent;
    border-radius:11px;
    overflow:hidden;
    transition:border-color .16s ease,background-color .16s ease
}
.nav-group[open]{
    border-color:#dce9f0;
    background:#f8fbfd
}
.nav-group__title{
    position:relative;
    display:flex;
    min-height:42px;
    align-items:center;
    justify-content:space-between;
    padding:10px 38px 10px 14px;
    color:#607482;
    font-size:11px;
    font-weight:800;
    letter-spacing:.11em;
    text-transform:uppercase;
    cursor:pointer;
    list-style:none;
    user-select:none
}
.nav-group__title::-webkit-details-marker{display:none}
.nav-group__title::after{
    position:absolute;
    top:50%;
    right:15px;
    width:7px;
    height:7px;
    border-right:2px solid #6d8290;
    border-bottom:2px solid #6d8290;
    content:"";
    transform:translateY(-65%) rotate(45deg);
    transition:transform .18s ease
}
.nav-group[open]>.nav-group__title{
    color:var(--primary);
    background:#edf6fb
}
.nav-group[open]>.nav-group__title::after{
    transform:translateY(-35%) rotate(225deg)
}
.nav-group__title:hover{color:var(--primary);background:#f1f7fa}
.nav-group__title:focus-visible{
    outline:3px solid rgba(243,107,22,.42);
    outline-offset:-3px
}
.nav-group__content{padding:6px}
.nav-group__content .nav-link{margin-bottom:3px}
.nav-group__content .nav-link:last-child{margin-bottom:0}

@media(max-width:720px){
    .sidebar{overflow:visible}
    .sidebar nav{display:block;min-width:0}
    .sidebar nav>.nav-link{margin-bottom:6px}
    .nav-group{margin-top:6px}
    .nav-group__content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
    .nav-group__content .nav-link{white-space:normal}
}
@media(max-width:440px){
    .nav-group__content{grid-template-columns:1fr}
}
.disposal-final-actions{display:flex;align-items:center;justify-content:space-between;gap:28px;border-left:4px solid #b42318}
.disposal-final-actions>div:last-child{display:grid;justify-items:end;gap:12px;min-width:180px}
.disposal-final-actions .button{margin-top:0}
@media(max-width:650px){
    .disposal-final-actions{align-items:stretch;flex-direction:column}
    .disposal-final-actions>div:last-child{justify-items:stretch}
}
.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.catalog-form{margin-top:18px}
.catalog-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px}
.catalog-management-grid .admin-create{margin:0}
.catalog-management-grid .institutional-form{display:grid;gap:14px;margin-top:16px}
.catalog-edit{position:relative;min-width:64px}
.catalog-edit>summary{color:var(--primary);font-weight:750;cursor:pointer;list-style:none;white-space:nowrap}
.catalog-edit>summary::-webkit-details-marker{display:none}
.catalog-edit>summary::after{margin-left:5px;content:"▾";font-size:11px}
.catalog-edit[open]>summary::after{content:"▴"}
.catalog-edit>form{
    position:relative;
    z-index:3;
    display:grid;
    width:420px;
    gap:13px;
    margin-top:10px;
    padding:16px;
    transform:translateX(calc(-100% + 64px));
    border:1px solid var(--border);
    border-radius:11px;
    background:#fff;
    box-shadow:var(--shadow-md)
}
.catalog-edit--wide>form{width:min(650px,75vw)}
.catalog-edit .form-grid{gap:13px}
.catalog-edit .button{width:max-content;margin-top:2px}
@media(max-width:760px){
    .catalog-management-grid{grid-template-columns:1fr}
    .catalog-edit>form,.catalog-edit--wide>form{width:78vw;transform:translateX(calc(-100% + 60px))}
    .section-heading{display:block}
}
.inventory-filters{
    display:grid!important;
    grid-template-columns:minmax(260px,.8fr) minmax(320px,1.4fr) auto auto;
    align-items:end;
    gap:12px!important
}
.inventory-filters label{display:block;margin:0}
.inventory-filters label span{display:block;margin-bottom:7px;color:#334c5b;font-size:13px;font-weight:750}
.inventory-filters input,.inventory-filters select{
    width:100%;
    min-width:0;
    min-height:45px;
    padding:9px 12px;
    border:1px solid var(--border-strong);
    border-radius:9px;
    color:var(--text);
    background:#fff
}
.inventory-filters input:focus,.inventory-filters select:focus{
    border-color:var(--primary2);
    outline:0;
    box-shadow:0 0 0 3px rgba(8,117,189,.14)
}
.inventory-filters .button{width:auto;margin:0}
@media(max-width:1050px){
    .inventory-filters{grid-template-columns:1fr 1fr}
    .inventory-filters .button{width:100%}
}
@media(max-width:650px){
    .inventory-filters{grid-template-columns:1fr}
}
