/* =============================================================================
   Rejee — form controls
   Used by every authenticated page.
   ============================================================================= */

.input{margin-bottom:16px;}

.input label{
    display:block;
    font-family:inherit;
    font-size:10.5px;
    font-weight:600;
    letter-spacing:0.04em;
    text-transform:uppercase;
    color:var(--grey);
    margin-bottom:6px;
}

.input input[type=text],
.input input[type=email],
.input input[type=password]{
    display:block;
    width:100%;
    border:1px solid var(--edge-2);
    border-radius:3px;
    padding:11px 13px;
    font:inherit;
    font-size:15px;
    color:var(--navy-d);
    background:var(--page);
}

.input textarea {
    display: block;
    width: 100%;
    border: 1px solid var(--edge-2);
    border-radius: 3px;
    padding: 11px 13px;
    font: inherit;
    font-size: 15px;
    line-height: 1.6;
    color: var(--navy-d);
    background: var(--page);
    resize: vertical;
}

.input textarea:focus {
    outline: none;
    border-color: var(--sig);
    box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.12);
}

.input input::placeholder{color:var(--grey-2);}

.input input:focus{
    outline:none;
    border-color:var(--sig);
    box-shadow:0 0 0 3px rgba(3,105,161,0.12);
}

/* Server-side validation errors from FormHelper */
.input.error input{border-color:#A32D2D;}
.error-message{
    font-size:13px;
    color:#A32D2D;
    margin-top:5px;
}

/* Flash messages use the same fixed notification treatment as client-side toasts. */
.message,
.alert{
    position:fixed;
    top:86px;
    left:50%;
    z-index:50;
    width:min(360px,calc(100vw - 48px));
    margin:0;
    padding:14px 18px;
    border:1px solid var(--edge-d);
    border-radius:5px;
    box-shadow:var(--lift-2);
    font-size:14.5px;
    line-height:1.45;
    padding-right:42px;
    transform:translateX(-50%);
}
.message.success,
.alert-success{background:#E1F5EE;border-color:#5DCAA5;color:#04342C;}
.message.error,
.alert-danger{background:#FCEBEB;border-color:#F09595;color:#501313;}
.message.warning,
.alert-warning{background:#FFF8D6;border-color:#E5C94A;color:#5C4800;}
.message.info,
.alert-info{background:#E8F3FA;border-color:#8CC7E8;color:#12415A;}
.alert .btn-close{
    position:absolute;
    top:50%;
    right:12px;
    width:16px;
    height:16px;
    padding:0;
    margin:0;
    transform:translateY(-50%);
    opacity:0.65;
}
.alert .btn-close:hover{opacity:1;}


/* CONSENT AND PASSWORD RULES */
.consent{margin:22px 0 8px;padding:18px 20px;background:var(--tint);border:1px solid var(--edge-2);border-radius:4px;}
.consent-head{font-size:14px;font-weight:600;margin-bottom:10px;}
.consent ul{margin:0 0 16px;padding-left:18px;font-size:14px;line-height:1.65;color:var(--grey);}
.consent ul li{margin-bottom:7px;}
.consent .checkbox label{display:flex;gap:9px;align-items:flex-start;font-size:14px;line-height:1.5;
    text-transform:none;letter-spacing:0;font-family:inherit;color:var(--navy-d);cursor:pointer;}
.consent .checkbox input{margin-top:3px;flex:none;}
.decline-link{color:var(--grey);text-decoration:none;border-bottom:1px solid var(--edge-2);
    text-transform:none;letter-spacing:0;font-family:inherit;font-size:13.5px;}
.decline-link:hover{color:var(--navy-d);}

/* NOTICE CARD — expired links, declined invitations, confirmations */
.notice{max-width:440px;margin:0 auto;background:var(--page);border:1px solid var(--edge-2);
    border-radius:4px;box-shadow:var(--lift);padding:34px 36px;}
.notice-ic{width:42px;height:42px;border-radius:50%;background:var(--tint);
    border:1px solid var(--edge);display:flex;align-items:center;justify-content:center;
    color:var(--grey);margin-bottom:20px;}
.notice-ic.ok{background:#E1F5EE;border-color:#9FE1CB;color:#0F6E56;}
.notice h1{font-size:25px;line-height:1.2;margin-bottom:10px;}
.notice p{font-size:14.5px;line-height:1.65;color:var(--grey);margin-bottom:12px;}
.notice-foot{margin-top:8px;padding-top:16px;border-top:1px solid var(--edge);font-size:13.5px;}
.notice-foot a{color:var(--sig);text-decoration:none;border-bottom:1px solid rgba(3,105,161,.35);}
.notice-foot.mono{font-family:inherit;font-size:10.5px;font-weight:600;letter-spacing:0.04em;
    text-transform:uppercase;color:var(--grey-2);}
.notice-page{min-height:calc(100vh - 70px);display:flex;align-items:center;padding:40px 0;}
