/* ============================================================
 * oca_PageFormat.css — layout & typography
 * Recreates the s.dtikr.com / NY UCS Attorney Online Services
 * visual rhythm. Clean rewrite; structure follows the original
 * class naming (CONT_, LNAV_, UCS_, APP_, H_, STR_) so the same
 * HTML markup renders 1:1.
 * ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

body {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.4;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

a          { text-decoration: none; }
a:hover    { text-decoration: underline; }
img        { max-width: 100%; display: block; }

/* ---- Demo banner (project-specific, kept minimal) ---- */
.DemoBanner {
    padding: 4px 16px;
    font-size: 11px;
    font-weight: bold;
    text-align: center;
    letter-spacing: 0.1em;
}

/* ---- Accessibility skip links ---- */
#UCS_PS_AccessibilityLinks {
    position: absolute;
    left: -9999px;
    top: auto;
}
#UCS_PS_AccessibilityLinks a:focus {
    position: static;
    background: #000;
    color: #fff;
    padding: 4px 8px;
}

/* ---- Top strip: NYS name bar with Lady Justice image area ---- */
#UCS_PS {
    position: relative;
    min-height: 80px;
    padding: 20px 24px 16px 170px;   /* left space reserved for statue image */
}
#UCS_STR_Name {
    font-family: "Times New Roman", Times, serif;
    font-size: 28px;
    letter-spacing: 0.2em;
    font-weight: normal;
    text-align: center;
}
#UCS_STR_Name a { font-family: inherit; }

/* ---- Secondary strip: App name (silver-metallic gradient) ---- */
#APP_PS {
    padding: 10px 24px;
    min-height: 40px;
    position: relative;
}
#APP_STR_ApplicationName {
    font-family: "Times New Roman", Times, serif;
    font-size: 20px;
    letter-spacing: 0.2em;
    font-weight: normal;
    text-align: center;
    display: block;
}

/* ---- Layout grid: left nav + main content ---- */
#LAYOUT_PS {
    flex: 1;
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 0;
    padding: 16px 20px 32px;
}

/* ---- Left navigation ---- */
#LNAV_PS {
    font-size: 13px;
}
#LNAV_PS ul {
    list-style: none;
    margin: 0 0 12px 0;
    padding: 0;
    border-radius: 6px;
    overflow: hidden;
}
#LNAV_PS .LNAV_SectionHeader {
    padding: 8px 12px;
    font-weight: bold;
    font-size: 13px;
}
#LNAV_PS .LNAV_MenuItem {
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}
#LNAV_PS .LNAV_MenuItem:first-child {
    border-top: none;
}
#LNAV_PS .LNAV_MenuItem a {
    display: block;
    padding: 8px 12px;
    font-size: 13px;
}

/* ---- Main content pane ---- */
#CONT_PS_StaticContent {
    padding: 20px 28px 32px;
    min-height: 420px;
    border-radius: 4px;
}
#CONT_PS_StaticContent.CONT_LARGE_60w { max-width: 960px; }
#CONT_PS_StaticContent.CONT_STANDARD  { max-width: 760px; }

/* ---- Headings ---- */
.H_Title {
    font-size: 20px;
    font-weight: bold;
    padding: 2px 0 6px;
    border-bottom: 2px solid #425C77;
    margin-bottom: 16px;
}
.H_Table {
    font-size: 16px;
    font-weight: bold;
    margin: 14px 0 8px;
}
.H_Full {
    font-size: 15px;
    font-weight: bold;
    padding: 6px 12px;
    margin: 16px 0 10px;
    border-radius: 3px;
}
.H_Partial {
    font-size: 14px;
    font-weight: bold;
    padding: 6px 12px;
    margin: 12px 0 6px;
    border-radius: 3px;
}

.CONT_Default { margin-bottom: 18px; }
.CONT_Note    { margin: 8px 0; font-size: 13px; }
.PAD_Top      { padding-top: 8px; }

.STR_Bold    { font-weight: bold; }
.STR_Italic  { font-style: italic; }
.STR_Normal  { font-weight: normal; }
.STR_Note    { font-size: 12px; }
.ALIGN_Top   { vertical-align: top; }

/* ---- Form (search) ---- */
form {
    padding: 14px 16px 18px;
    margin: 10px 0 14px;
    border-radius: 4px;
}
form .form-row {
    display: inline-block;
    vertical-align: top;
    margin: 4px 16px 8px 0;
}
form label {
    display: block;
    font-size: 12px;
    font-weight: bold;
    margin-bottom: 3px;
}
form input[type="text"] {
    padding: 5px 7px;
    border: 1px solid #8b8b8b;
    font-family: Verdana, Arial, sans-serif;
    font-size: 13px;
    width: 200px;
    box-shadow: inset 1px 1px 2px rgba(0,0,0,0.08);
}
form input[type="text"]:focus {
    outline: none;
    border-color: #425C77;
    box-shadow: 0 0 3px rgba(66,92,119,0.4);
}
.form-buttons {
    display: block;
    text-align: center;
    margin-top: 12px;
}
input[type="submit"],
input[type="reset"],
button {
    font-family: Verdana, Arial, sans-serif;
    font-size: 13px;
    font-weight: bold;
    padding: 6px 22px;
    margin: 0 6px;
    border-radius: 4px;
    border: 1px solid #8b8b8b;
    cursor: pointer;
}

/* ---- Tab strip (Attorney / Legal Consultant / In-House Counsel) ---- */
.TabStrip {
    margin: 12px 0 0;
    padding: 0;
    border-bottom: 1px solid #8DAED5;
    line-height: 1;
}
.TabStrip a {
    display: inline-block;
    padding: 8px 18px 7px;
    margin: 0 2px -1px 0;
    border: 1px solid #8DAED5;
    border-bottom: none;
    border-radius: 6px 6px 0 0;
    font-size: 13px;
    font-weight: normal;
    letter-spacing: 0.02em;
}

/* ---- Results table ---- */
.CONT_Line_Wrapped_Data_Table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 6px;
    font-size: 13px;
    border: 1px solid #bfc7d3;
}
.CONT_Line_Wrapped_Data_Table thead th {
    text-align: left;
    padding: 6px 10px;
    font-weight: bold;
    font-size: 12px;
    line-height: 1.2;
    vertical-align: bottom;
    border-bottom: 1px solid #425C77;
}
.CONT_Line_Wrapped_Data_Table tbody td {
    padding: 7px 10px;
    vertical-align: top;
    border-bottom: 1px solid #e6e3d3;
}
.CONT_Line_Wrapped_Data_Table tr.navigation td {
    padding: 4px 10px;
    border: none;
}

/* Criteria echo block */
.SearchCriteria {
    display: flex;
    gap: 28px;
    padding: 10px 14px;
    border-radius: 3px;
    margin-bottom: 12px;
}
.SearchCriteria div strong {
    display: block;
    font-size: 12px;
    letter-spacing: 0.04em;
    margin-bottom: 2px;
}

/* ---- Pagination footer ---- */
.navigatorLabel {
    padding: 6px 10px;
    font-size: 12px;
}
.navigator {
    padding: 6px 10px;
    font-size: 12px;
}
.navigator a { margin: 0 4px; }

/* ---- Detail page row pattern ---- */
.CONT_Row {
    display: flex;
    gap: 16px;
    padding: 5px 14px;
    align-items: baseline;
}
.CONT_Cell.W18 { flex: 0 0 270px; }
.CONT_Cell.W28 { flex: 1; }

/* ---- Message boxes (icon provided via background-image in theme file) ---- */
.CONT_MsgBox_Info,
.CONT_MsgBox_Error,
.CONT_MsgBox_Warning,
.CONT_MsgBox_Complete {
    position: relative;
    margin-top: 18px;
    padding: 14px 16px 14px 58px;
    border-radius: 4px;
    font-size: 12.5px;
    line-height: 1.55;
    min-height: 48px;
}
.CONT_MsgBox_Info p,
.CONT_MsgBox_Error p,
.CONT_MsgBox_Warning p,
.CONT_MsgBox_Complete p { margin: 4px 0; }

/* ---- Footer ---- */
#FOOT_PS {
    padding: 14px 24px 18px;
    font-size: 12px;
    margin-top: auto;
    display: flex;
    gap: 16px;
    align-items: flex-start;
}
#FOOT_Icon {
    flex: 0 0 auto;
}
#FOOT_Icon img {
    display: block;
    max-height: 44px;
    width: auto;
}
#FOOT_PS_Categories {
    flex: 1;
}
#FOOT_PS strong { margin-right: 10px; }
#FOOT_PS ul {
    list-style: none;
    display: inline;
    margin: 0;
    padding: 0;
}
#FOOT_PS li {
    display: inline;
    margin-right: 14px;
}
#FOOT_PS small {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    opacity: 0.8;
}

/* ---- Responsive fallback (mobile) ---- */
@media (max-width: 768px) {
    #UCS_PS {
        padding: 16px 16px;
        min-height: auto;
    }
    #UCS_STR_Name { font-size: 18px; letter-spacing: 0.1em; }
    #APP_STR_ApplicationName { font-size: 15px; letter-spacing: 0.1em; }
    #LAYOUT_PS {
        grid-template-columns: 1fr;
        padding: 12px;
    }
    #LNAV_PS { display: none; }
    #CONT_PS_StaticContent { padding: 16px; }
    .CONT_Row { flex-direction: column; gap: 2px; padding: 6px 10px; }
    .CONT_Cell.W18, .CONT_Cell.W28 { flex: 1 1 auto; }
    form input[type="text"] { width: 100%; }
    form .form-row { display: block; margin-right: 0; }
}
