/* Hammerkop Agent Portal v1.2.0 */

.hap-login-shell,
.hap-portal-shell {
    --hap-green:#23352B;
    --hap-green-deep:#17251D;
    --hap-ivory:#FAF8F2;
    --hap-sand:#EDE5D8;
    --hap-gold:#B79A68;
    --hap-gold-light:#D3B780;
    --hap-text:#626862;
    box-sizing:border-box;
}

.hap-login-shell *,
.hap-portal-shell * {
    box-sizing:border-box;
}

.hap-login-shell {
    width:100%;
    max-width:560px;
    margin:0 auto;
    padding:46px 44px;
    background:var(--hap-ivory);
    border:1px solid rgba(35,53,43,.12);
    box-shadow:0 18px 55px rgba(23,37,29,.10);
}

.hap-eyebrow {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    margin-bottom:18px;
    font-family:"Manrope",sans-serif;
    font-size:9px;
    font-weight:700;
    letter-spacing:1.8px;
    line-height:1.3;
    text-transform:uppercase;
    color:var(--hap-gold);
}

.hap-eyebrow span {
    width:28px;
    height:1px;
    background:rgba(183,154,104,.70);
}

.hap-login-shell h2,
.hap-portal-shell h2 {
    margin:0 !important;
    font-family:"DM Serif Display",Georgia,serif !important;
    font-size:44px !important;
    font-weight:400 !important;
    line-height:1.05 !important;
    color:var(--hap-green) !important;
}

.hap-login-intro,
.hap-portal-header p {
    margin:14px auto 0 !important;
    font-family:"Manrope",sans-serif !important;
    font-size:14px !important;
    line-height:1.7 !important;
    color:var(--hap-text) !important;
}

.hap-login-intro {
    max-width:420px;
    text-align:center;
}

.hap-login-shell h2 {
    text-align:center;
}

.hap-notice {
    margin-top:22px;
    padding:12px 14px;
    font-family:"Manrope",sans-serif;
    font-size:12px;
    line-height:1.5;
}

.hap-notice-error {
    background:#fff4f1;
    border:1px solid #e6b9ad;
    color:#7a3326;
}

.hap-login-form {
    margin-top:30px;
}

.hap-login-form > label {
    display:block;
    margin:18px 0 7px;
    font-family:"Manrope",sans-serif;
    font-size:9px;
    font-weight:700;
    letter-spacing:1.25px;
    text-transform:uppercase;
    color:var(--hap-green);
}

.hap-login-form input[type="text"],
.hap-login-form input[type="password"] {
    width:100%;
    min-height:50px;
    padding:0 15px;
    border:1px solid rgba(35,53,43,.22);
    border-radius:0;
    background:#fff;
    color:var(--hap-green-deep);
    box-shadow:none;
    outline:none;
    font-family:"Manrope",sans-serif;
    font-size:14px;
}

.hap-login-form input[type="text"]:focus,
.hap-login-form input[type="password"]:focus {
    border-color:var(--hap-gold);
    box-shadow:0 0 0 2px rgba(183,154,104,.12);
}

.hap-login-options {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-top:15px;
    font-family:"Manrope",sans-serif;
    font-size:11px;
}

.hap-login-options a {
    color:var(--hap-green) !important;
    text-decoration:none !important;
}

.hap-login-options a:hover {
    color:var(--hap-gold) !important;
}

.hap-remember {
    display:flex;
    align-items:center;
    gap:7px;
    color:var(--hap-text);
}

.hap-button {
    min-height:50px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:0 24px;
    border:1px solid transparent;
    font-family:"Manrope",sans-serif;
    font-size:9px;
    font-weight:700;
    line-height:1;
    letter-spacing:1.25px;
    text-transform:uppercase;
    text-decoration:none !important;
    cursor:pointer;
    transition:background-color .25s ease,border-color .25s ease,color .25s ease,transform .25s ease;
}

button.hap-button {
    appearance:none;
    -webkit-appearance:none;
}

.hap-button span {
    font-size:14px;
    transition:transform .25s ease;
}

.hap-button:hover {
    transform:translateY(-2px);
}

.hap-button:hover span {
    transform:translateX(3px);
}

.hap-button-primary {
    background:var(--hap-green);
    border-color:var(--hap-green);
    color:var(--hap-ivory) !important;
}

.hap-button-primary:hover {
    background:var(--hap-gold);
    border-color:var(--hap-gold);
    color:var(--hap-green-deep) !important;
}

.hap-button-secondary {
    background:transparent;
    border-color:rgba(35,53,43,.28);
    color:var(--hap-green) !important;
}

.hap-button-secondary:hover {
    background:var(--hap-green);
    border-color:var(--hap-green);
    color:var(--hap-ivory) !important;
}

.hap-login-submit {
    width:100%;
    margin-top:28px;
}

.hap-login-status {
    text-align:center;
}

.hap-portal-shell {
    width:100%;
    max-width:1180px;
    margin:0 auto;
}

.hap-portal-header {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    padding-bottom:34px;
    border-bottom:1px solid rgba(35,53,43,.14);
}

.hap-portal-header .hap-eyebrow {
    justify-content:flex-start;
}

.hap-portal-resources {
    padding-top:35px;
}

.hap-file-list {
    display:grid;
    gap:10px;
}

.hap-file-row {
    min-height:76px;
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto;
    gap:16px;
    align-items:center;
    padding:16px 18px;
    border:1px solid rgba(35,53,43,.12);
    background:var(--hap-ivory);
    text-decoration:none !important;
    transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease;
}

.hap-file-row:hover {
    transform:translateY(-2px);
    border-color:rgba(183,154,104,.7);
    box-shadow:0 12px 30px rgba(23,37,29,.08);
}

.hap-file-icon {
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--hap-green);
    color:var(--hap-ivory);
    font-size:17px;
}

.hap-file-copy {
    min-width:0;
}

.hap-file-copy strong,
.hap-file-copy small {
    display:block;
}

.hap-file-copy strong {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-family:"Manrope",sans-serif;
    font-size:13px;
    color:var(--hap-green);
}

.hap-file-copy small {
    margin-top:4px;
    font-family:"Manrope",sans-serif;
    font-size:9px;
    letter-spacing:1px;
    text-transform:uppercase;
    color:var(--hap-text);
}

.hap-file-arrow {
    color:var(--hap-gold);
    font-size:18px;
}

.hap-empty-state {
    padding:28px;
    border:1px solid rgba(35,53,43,.12);
    background:var(--hap-ivory);
    text-align:center;
}

.hap-empty-state p {
    margin:0 !important;
    font-family:"Manrope",sans-serif !important;
    color:var(--hap-text) !important;
}

@media (max-width:767px) {
    .hap-login-shell {
        padding:36px 22px;
    }

    .hap-login-shell h2,
    .hap-portal-shell h2 {
        font-size:36px !important;
    }

    .hap-login-options {
        align-items:flex-start;
        flex-direction:column;
        gap:10px;
    }

    .hap-portal-header {
        align-items:flex-start;
        flex-direction:column;
    }

    .hap-file-row {
        grid-template-columns:38px minmax(0,1fr) auto;
        gap:12px;
        padding:14px;
    }

    .hap-file-icon {
        width:38px;
        height:38px;
    }
}

/* =========================================================
   Hammerkop Agent Portal v1.2.0 — Branded password reset
   ========================================================= */

.hap-reset-shell,
.hap-reset-shell * {
    box-sizing:border-box;
}

.hap-reset-shell {
    --hap-green:#23352B;
    --hap-green-deep:#17251D;
    --hap-ivory:#FAF8F2;
    --hap-sand:#EDE5D8;
    --hap-gold:#B79A68;
    --hap-gold-light:#D3B780;
    --hap-text:#626862;

    width:100%;
    max-width:620px;
    margin:70px auto;
    padding:52px 48px;
    background:var(--hap-ivory);
    border:1px solid rgba(35,53,43,.12);
    box-shadow:0 18px 55px rgba(23,37,29,.09);
}

.hap-reset-shell h2 {
    margin:0 !important;
    text-align:center;
    font-family:"DM Serif Display",Georgia,serif !important;
    font-size:46px !important;
    font-weight:400 !important;
    line-height:1.05 !important;
    color:var(--hap-green) !important;
}

.hap-reset-intro {
    max-width:480px;
    margin:17px auto 0 !important;
    text-align:center;
    font-family:"Manrope",sans-serif !important;
    font-size:13px !important;
    line-height:1.75 !important;
    color:var(--hap-text) !important;
}

.hap-reset-form {
    margin-top:32px;
}

.hap-reset-form > label {
    display:block;
    margin:20px 0 8px;
    font-family:"Manrope",sans-serif;
    font-size:8px;
    font-weight:700;
    line-height:1.2;
    letter-spacing:1.3px;
    text-transform:uppercase;
    color:var(--hap-green);
}

.hap-reset-form input[type="text"],
.hap-reset-form input[type="password"] {
    width:100%;
    min-height:54px;
    padding:0 16px;
    border:1px solid rgba(35,53,43,.20);
    border-radius:0;
    outline:none;
    background:#fff;
    box-shadow:none;
    font-family:"Manrope",sans-serif;
    font-size:13px;
    color:var(--hap-green);
}

.hap-reset-form input:focus {
    border-color:var(--hap-gold);
    box-shadow:0 0 0 3px rgba(183,154,104,.09);
}

.hap-reset-form small {
    display:block;
    margin-top:7px;
    font-family:"Manrope",sans-serif;
    font-size:10px;
    line-height:1.5;
    color:#7A7E78;
}

.hap-reset-submit {
    width:100%;
    margin-top:28px;
}

.hap-reset-footer {
    margin-top:24px;
    padding-top:22px;
    border-top:1px solid rgba(35,53,43,.12);
    text-align:center;
}

.hap-reset-footer a {
    font-family:"Manrope",sans-serif;
    font-size:10px;
    font-weight:600;
    text-decoration:none !important;
    color:var(--hap-green) !important;
}

.hap-reset-footer a:hover {
    color:var(--hap-gold) !important;
}

.hap-reset-actions {
    display:flex;
    justify-content:center;
    margin-top:30px;
}

.hap-reset-success-mark,
.hap-reset-mail-icon {
    width:58px;
    height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:28px auto 0;
    border:1px solid rgba(183,154,104,.45);
    border-radius:50%;
    font-family:"Manrope",sans-serif;
    font-size:22px;
    color:var(--hap-gold);
}

@media (max-width:767px) {
    .hap-reset-shell {
        max-width:calc(100% - 40px);
        margin:50px auto;
        padding:42px 28px;
    }

    .hap-reset-shell h2 {
        font-size:39px !important;
    }
}

@media (max-width:480px) {
    .hap-reset-shell {
        max-width:calc(100% - 28px);
        margin:36px auto;
        padding:36px 22px;
    }

    .hap-reset-shell h2 {
        font-size:34px !important;
    }

    .hap-reset-actions .hap-button {
        width:100%;
    }
}
