/* ======================================================================
   SHADOWSKINGS — SEAT PANEL
   MODERN SHADOWMERE MMO INSPECTION HUD
   DESKTOP + TABLET + MOBILE
   ======================================================================

   DESIGN:
   - Obsidian / violet glass
   - Modern MMO inspection panel
   - Strong hierarchy
   - Cleaner force lists
   - Better buttons
   - Responsive mobile presentation
   - iPhone / Android safe-area support
   ====================================================================== */


/* ======================================================================
   MAIN PANEL
   ====================================================================== */

#seat-panel {
    position: absolute;

    top: 76px;
    right: 24px;

    width: min(390px, calc(100vw - 32px));
    max-height: min(82vh, 760px);

    box-sizing: border-box;

    display: none;

    padding: 0;

    overflow-x: hidden;
    overflow-y: auto;

    pointer-events: auto;

    z-index: 99999;

    /* --------------------------------------------------------------
       SHADOWMERE GLASS
       -------------------------------------------------------------- */

    background:
        radial-gradient(
            circle at 15% 0%,
            rgba(103, 61, 181, 0.25) 0%,
            rgba(103, 61, 181, 0.08) 28%,
            transparent 55%
        ),
        linear-gradient(
            145deg,
            rgba(30, 18, 55, 0.97) 0%,
            rgba(14, 9, 29, 0.985) 48%,
            rgba(6, 4, 15, 0.995) 100%
        );

    border:
        1px solid
        rgba(171, 139, 255, 0.70);

    border-radius:
        14px;

    box-shadow:
        0 18px 48px rgba(0, 0, 0, 0.68),
        0 0 30px rgba(117, 73, 220, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.07);

    backdrop-filter:
        blur(16px)
        saturate(125%);

    -webkit-backdrop-filter:
        blur(16px)
        saturate(125%);

    font-family:
        "Cinzel",
        "Trajan Pro",
        Georgia,
        serif;

    font-size: 12px;

    line-height: 1.45;

    color:
        #e9e1fa;

    scrollbar-width:
        thin;

    scrollbar-color:
        rgba(150, 112, 240, 0.65)
        rgba(12, 8, 24, 0.55);

    isolation: isolate;

    -webkit-tap-highlight-color:
        transparent;
}


/* ======================================================================
   PANEL ATMOSPHERE
   ====================================================================== */

#seat-panel::before {
    content: "";

    position: absolute;

    top: 0;
    left: 18px;
    right: 18px;

    height: 1px;

    z-index: 5;

    pointer-events: none;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(220, 205, 255, 0.92),
            rgba(150, 107, 255, 0.95),
            rgba(220, 205, 255, 0.92),
            transparent
        );

    box-shadow:
        0 0 12px
        rgba(145, 101, 255, 0.55);
}


#seat-panel::after {
    content: "";

    position: absolute;

    top: -100px;
    right: -80px;

    width: 240px;
    height: 240px;

    border-radius: 50%;

    pointer-events: none;

    z-index: -1;

    background:
        radial-gradient(
            circle,
            rgba(133, 83, 255, 0.12),
            transparent 68%
        );
}


/* ======================================================================
   SCROLLBAR
   ====================================================================== */

#seat-panel::-webkit-scrollbar {
    width: 7px;
}


#seat-panel::-webkit-scrollbar-track {
    background:
        rgba(7, 4, 15, 0.60);
}


#seat-panel::-webkit-scrollbar-thumb {
    background:
        linear-gradient(
            180deg,
            rgba(164, 126, 255, 0.78),
            rgba(92, 55, 177, 0.72)
        );

    border-radius: 999px;

    border:
        2px solid
        rgba(7, 4, 15, 0.65);
}


#seat-panel::-webkit-scrollbar-thumb:hover {
    background:
        linear-gradient(
            180deg,
            rgba(196, 172, 255, 0.92),
            rgba(119, 77, 213, 0.88)
        );
}


/* ======================================================================
   HEADER
   ====================================================================== */

.seat-panel-header {
    position: sticky;

    top: 0;

    z-index: 20;

    display: flex;

    justify-content: space-between;
    align-items: center;

    min-height: 52px;

    padding:
        12px 14px 11px 17px;

    box-sizing: border-box;

    margin: 0;

    background:
        linear-gradient(
            180deg,
            rgba(42, 25, 76, 0.985),
            rgba(21, 13, 40, 0.97)
        );

    border-bottom:
        1px solid
        rgba(171, 139, 255, 0.38);

    box-shadow:
        0 8px 18px
        rgba(0, 0, 0, 0.24);

    backdrop-filter:
        blur(16px);

    -webkit-backdrop-filter:
        blur(16px);

    color:
        #f7f1ff;

    font-size: 15px;

    font-weight: 700;

    line-height: 1.2;

    letter-spacing:
        0.115em;

    text-transform:
        uppercase;

    text-shadow:
        0 0 10px
        rgba(157, 113, 255, 0.72);
}


/* little MMO title accent */

.seat-panel-header::before {
    content: "";

    width: 4px;
    height: 24px;

    flex: 0 0 auto;

    margin-right: 10px;

    border-radius: 999px;

    background:
        linear-gradient(
            180deg,
            #c7afff,
            #7950dc
        );

    box-shadow:
        0 0 10px
        rgba(158, 112, 255, 0.72);
}


/* ======================================================================
   CLOSE BUTTON
   ====================================================================== */

.seat-close-btn {
    display: flex;

    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    width: 34px;
    height: 34px;

    margin-left: auto;

    padding: 0;

    appearance: none;

    -webkit-appearance: none;

    background:
        linear-gradient(
            180deg,
            rgba(78, 48, 130, 0.60),
            rgba(34, 20, 64, 0.75)
        );

    border:
        1px solid
        rgba(175, 145, 255, 0.42);

    border-radius:
        8px;

    color:
        #d9caff;

    font-family:
        Arial,
        sans-serif;

    font-size: 18px;

    line-height: 1;

    cursor: pointer;

    box-shadow:
        inset 0 1px 0
        rgba(255, 255, 255, 0.07);

    transition:
        transform 120ms ease,
        color 120ms ease,
        border-color 120ms ease,
        background 120ms ease,
        box-shadow 120ms ease;
}


@media (hover: hover) {

    .seat-close-btn:hover {
        color:
            #ffffff;

        border-color:
            rgba(210, 190, 255, 0.82);

        background:
            linear-gradient(
                180deg,
                rgba(109, 67, 181, 0.78),
                rgba(49, 27, 91, 0.88)
            );

        transform:
            translateY(-1px);

        box-shadow:
            0 0 13px
            rgba(151, 104, 255, 0.42);
    }
}


.seat-close-btn:active {
    transform:
        scale(0.94);
}


.seat-close-btn:focus {
    outline: none;
}


.seat-close-btn:focus-visible {
    outline:
        2px solid
        #cdbaff;

    outline-offset:
        2px;
}


/* ======================================================================
   PANEL DIRECT CONTENT
   ====================================================================== */

/*
   Header remains full width.

   Everything else gets comfortable MMO-panel spacing.
*/

#seat-panel > :not(.seat-panel-header) {
    margin-left: 16px;
    margin-right: 16px;
}


#seat-panel > .seat-section:first-of-type {
    margin-top: 14px;
}


/* ======================================================================
   SECTIONS
   ====================================================================== */

.seat-section {
    position: relative;

    margin-top: 12px;

    padding:
        12px 12px 11px;

    box-sizing: border-box;

    border:
        1px solid
        rgba(151, 116, 232, 0.20);

    border-radius:
        10px;

    background:
        linear-gradient(
            145deg,
            rgba(61, 37, 103, 0.18),
            rgba(13, 8, 27, 0.34)
        );

    box-shadow:
        inset 0 1px 0
        rgba(255, 255, 255, 0.025);

    transition:
        border-color 150ms ease,
        background 150ms ease;
}


@media (hover: hover) {

    .seat-section:hover {
        border-color:
            rgba(168, 132, 255, 0.32);

        background:
            linear-gradient(
                145deg,
                rgba(67, 40, 114, 0.23),
                rgba(13, 8, 27, 0.39)
            );
    }
}


/* ======================================================================
   SECTION TITLES
   ====================================================================== */

.seat-section-title {
    display: flex;

    align-items: center;

    gap: 8px;

    margin:
        0 0 9px;

    padding:
        0 0 7px;

    border-bottom:
        1px solid
        rgba(160, 127, 235, 0.20);

    color:
        #f2eaff;

    font-size:
        12px;

    font-weight:
        700;

    line-height:
        1.25;

    letter-spacing:
        0.105em;

    text-transform:
        uppercase;

    text-shadow:
        0 0 8px
        rgba(138, 88, 244, 0.55);
}


.seat-section-title::before {
    content: "";

    display: inline-block;

    width: 5px;
    height: 5px;

    flex: 0 0 auto;

    transform:
        rotate(45deg);

    background:
        #aa89ff;

    box-shadow:
        0 0 7px
        rgba(170, 137, 255, 0.78);
}


/* ======================================================================
   SUBTITLES
   ====================================================================== */

.seat-subtitle {
    display: flex;

    align-items: center;

    gap: 7px;

    margin:
        10px 0 6px;

    color:
        #cdbdF3;

    font-size:
        10px;

    font-weight:
        700;

    line-height:
        1.25;

    letter-spacing:
        0.09em;

    text-transform:
        uppercase;

    text-shadow:
        0 0 5px
        rgba(132, 86, 228, 0.38);
}


.seat-subtitle::after {
    content: "";

    flex:
        1 1 auto;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            rgba(157, 120, 235, 0.25),
            transparent
        );
}


/* ======================================================================
   FORCE LIST
   ====================================================================== */

.seat-force-list {
    position: relative;

    margin:
        5px 0 8px;

    padding:
        4px 6px 4px 10px;

    border-left:
        2px solid
        rgba(145, 103, 235, 0.35);

    border-radius:
        0 7px 7px 0;

    background:
        linear-gradient(
            90deg,
            rgba(101, 63, 172, 0.09),
            transparent 75%
        );
}


/* ======================================================================
   FORCE ROW
   ====================================================================== */

.seat-force-row {
    display: flex;

    justify-content: space-between;
    align-items: center;

    gap: 10px;

    min-height:
        28px;

    margin: 0;

    padding:
        5px 6px;

    box-sizing:
        border-box;

    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.055);

    border-radius:
        5px;

    color:
        #d9d0e9;

    transition:
        background 120ms ease,
        color 120ms ease;
}


.seat-force-row:last-child {
    border-bottom:
        none;
}


@media (hover: hover) {

    .seat-force-row:hover {
        background:
            rgba(129, 85, 219, 0.10);

        color:
            #f3edff;
    }
}


/* first child = unit/force name */

.seat-force-row > :first-child {
    min-width: 0;

    overflow: hidden;

    text-overflow: ellipsis;

    white-space: nowrap;
}


/* last child often quantity/stat */

.seat-force-row > :last-child {
    flex: 0 0 auto;

    color:
        #d4c2ff;

    font-weight:
        700;

    font-family:
        Arial,
        sans-serif;

    font-variant-numeric:
        tabular-nums;
}


/* ======================================================================
   EMPTY FORCE STATE
   ====================================================================== */

.seat-force-empty {
    position: relative;

    padding:
        9px 8px;

    border:
        1px dashed
        rgba(157, 122, 235, 0.20);

    border-radius:
        6px;

    background:
        rgba(38, 22, 69, 0.16);

    color:
        #a99bbb;

    font-size:
        10px;

    font-style:
        italic;

    text-align:
        center;

    opacity:
        0.82;
}


/* ======================================================================
   MESSAGE / ACTION BUTTON
   ====================================================================== */

.seat-message-btn {
    position: relative;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-height:
        36px;

    max-width:
        100%;

    margin:
        6px 0;

    padding:
        8px 13px;

    box-sizing:
        border-box;

    overflow:
        hidden;

    appearance:
        none;

    -webkit-appearance:
        none;

    background:
        linear-gradient(
            180deg,
            rgba(89, 55, 155, 0.96) 0%,
            rgba(56, 31, 108, 0.98) 54%,
            rgba(35, 19, 70, 0.99) 100%
        );

    border:
        1px solid
        rgba(187, 159, 255, 0.78);

    border-radius:
        7px;

    color:
        #f6f0ff;

    font-family:
        inherit;

    font-size:
        10px;

    font-weight:
        700;

    line-height:
        1.1;

    letter-spacing:
        0.075em;

    text-align:
        center;

    text-transform:
        uppercase;

    white-space:
        nowrap;

    cursor:
        pointer;

    text-shadow:
        0 1px 3px
        rgba(0, 0, 0, 0.82);

    box-shadow:
        inset 0 1px 0
        rgba(255, 255, 255, 0.11),

        0 4px 11px
        rgba(0, 0, 0, 0.34),

        0 0 10px
        rgba(140, 96, 241, 0.23);

    transition:
        transform 110ms ease,
        background 110ms ease,
        border-color 110ms ease,
        box-shadow 110ms ease;
}


/* top metallic highlight */

.seat-message-btn::before {
    content: "";

    position: absolute;

    top: 0;
    left: 10%;
    right: 10%;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(234, 223, 255, 0.88),
            transparent
        );

    pointer-events:
        none;
}


@media (hover: hover) {

    .seat-message-btn:hover:not(:disabled) {
        transform:
            translateY(-2px);

        background:
            linear-gradient(
                180deg,
                rgba(119, 75, 200, 0.98),
                rgba(69, 38, 133, 0.99)
            );

        border-color:
            #d0bcff;

        box-shadow:
            inset 0 1px 0
            rgba(255, 255, 255, 0.16),

            0 6px 14px
            rgba(0, 0, 0, 0.42),

            0 0 17px
            rgba(161, 117, 255, 0.48);
    }
}


.seat-message-btn:active:not(:disabled) {
    transform:
        translateY(1px)
        scale(0.98);

    background:
        linear-gradient(
            180deg,
            rgba(48, 26, 94, 0.99),
            rgba(79, 44, 148, 0.99)
        );

    box-shadow:
        inset 0 2px 7px
        rgba(0, 0, 0, 0.55),

        0 0 8px
        rgba(135, 90, 230, 0.30);
}


.seat-message-btn:focus {
    outline:
        none;
}


.seat-message-btn:focus-visible {
    outline:
        2px solid
        #d5c4ff;

    outline-offset:
        2px;
}


.seat-message-btn:disabled {
    opacity:
        0.38;

    cursor:
        not-allowed;

    filter:
        grayscale(0.5);

    transform:
        none;

    box-shadow:
        none;
}


/* ======================================================================
   GENERIC INFORMATION ROWS
   ====================================================================== */

/*
   Gives ordinary div rows inside sections a cleaner information-panel
   appearance without requiring HTML changes.
*/

.seat-section > div:not(
    .seat-section-title
):not(
    .seat-subtitle
):not(
    .seat-force-list
):not(
    .seat-force-row
):not(
    .seat-force-empty
) {
    overflow-wrap:
        anywhere;
}


/* ======================================================================
   OPTIONAL STRONG / VALUE FORMATTING
   ====================================================================== */

#seat-panel strong,
#seat-panel b {
    color:
        #f2ebff;

    font-weight:
        700;
}


#seat-panel small {
    color:
        #aa9cbe;
}


/* ======================================================================
   LINKS
   ====================================================================== */

#seat-panel a {
    color:
        #cbb8ff;

    text-decoration:
        none;
}


@media (hover: hover) {

    #seat-panel a:hover {
        color:
            #ffffff;

        text-shadow:
            0 0 7px
            rgba(166, 122, 255, 0.65);
    }
}


/* ======================================================================
   FOOTER
   ====================================================================== */

.seat-footer {
    position: relative;

    margin-top:
        14px !important;

    margin-bottom:
        14px;

    padding:
        11px 8px 2px;

    border-top:
        1px solid
        rgba(147, 111, 226, 0.20);

    color:
        #988aaa;

    font-size:
        9px;

    line-height:
        1.35;

    letter-spacing:
        0.05em;

    text-align:
        center;

    text-transform:
        uppercase;

    text-shadow:
        0 0 5px
        rgba(128, 82, 219, 0.25);
}


/* ======================================================================
   TABLET
   ====================================================================== */

@media
(max-width: 900px)
and
(min-width: 601px) {

    #seat-panel {
        top:
            max(
                64px,
                calc(
                    env(
                        safe-area-inset-top,
                        0px
                    )
                    +
                    50px
                )
            );

        right:
            max(
                12px,
                env(
                    safe-area-inset-right,
                    0px
                )
            );

        width:
            min(
                370px,
                calc(100vw - 24px)
            );

        max-height:
            calc(
                100dvh -
                90px -
                env(
                    safe-area-inset-bottom,
                    0px
                )
            );
    }
}


/* ======================================================================
   MOBILE — IPHONE / ANDROID
   ====================================================================== */

@media (max-width: 600px) {

    /*
       Mobile becomes a bottom inspection sheet.

       This leaves the upper map visible and feels much more like
       a modern mobile MMO instead of a tiny desktop window.
    */

    #seat-panel {
        position: fixed;

        top: auto;

        left: 0;
        right: 0;

        bottom: 0;

        width:
            100%;

        max-width:
            none;

        max-height:
            min(
                68dvh,
                620px
            );

        padding:
            0;

        border-left:
            none;

        border-right:
            none;

        border-bottom:
            none;

        border-radius:
            18px 18px 0 0;

        background:
            radial-gradient(
                circle at 50% 0%,
                rgba(105, 63, 185, 0.23),
                transparent 36%
            ),
            linear-gradient(
                180deg,
                rgba(28, 17, 52, 0.985),
                rgba(8, 5, 18, 0.998)
            );

        box-shadow:
            0 -16px 40px
            rgba(0, 0, 0, 0.72),

            0 -3px 24px
            rgba(119, 75, 221, 0.28);

        padding-bottom:
            env(
                safe-area-inset-bottom,
                0px
            );

        overscroll-behavior:
            contain;

        -webkit-overflow-scrolling:
            touch;
    }


    /* --------------------------------------------------------------
       MOBILE DRAG-HANDLE APPEARANCE
       -------------------------------------------------------------- */

    #seat-panel::before {
        top:
            7px;

        left:
            50%;

        right:
            auto;

        width:
            42px;

        height:
            4px;

        transform:
            translateX(-50%);

        border-radius:
            999px;

        background:
            rgba(201, 181, 255, 0.52);

        box-shadow:
            0 0 8px
            rgba(148, 104, 255, 0.30);
    }


    /* --------------------------------------------------------------
       MOBILE HEADER
       -------------------------------------------------------------- */

    .seat-panel-header {
        min-height:
            54px;

        padding:
            17px 12px 9px 15px;

        font-size:
            13px;

        letter-spacing:
            0.09em;
    }


    .seat-panel-header::before {
        height:
            20px;

        margin-right:
            8px;
    }


    /* --------------------------------------------------------------
       MOBILE CLOSE
       -------------------------------------------------------------- */

    .seat-close-btn {
        width:
            36px;

        height:
            36px;

        border-radius:
            9px;

        font-size:
            19px;
    }


    /* --------------------------------------------------------------
       MOBILE CONTENT
       -------------------------------------------------------------- */

    #seat-panel > :not(.seat-panel-header) {
        margin-left:
            10px;

        margin-right:
            10px;
    }


    .seat-section {
        margin-top:
            9px;

        padding:
            10px;

        border-radius:
            9px;
    }


    .seat-section-title {
        margin-bottom:
            7px;

        padding-bottom:
            6px;

        font-size:
            11px;
    }


    .seat-subtitle {
        font-size:
            9px;
    }


    /* --------------------------------------------------------------
       MOBILE FORCE ROW
       -------------------------------------------------------------- */

    .seat-force-row {
        min-height:
            31px;

        padding:
            6px;

        font-size:
            11px;
    }


    /* --------------------------------------------------------------
       MOBILE BUTTON
       -------------------------------------------------------------- */

    .seat-message-btn {
        min-height:
            40px;

        padding:
            8px 12px;

        font-size:
            9px;

        touch-action:
            manipulation;
    }


    .seat-footer {
        margin-bottom:
            12px;

        padding-bottom:
            6px;
    }
}


/* ======================================================================
   SMALL MOBILE
   ====================================================================== */

@media (max-width: 390px) {

    #seat-panel {
        max-height:
            72dvh;
    }


    .seat-panel-header {
        font-size:
            12px;
    }


    .seat-section {
        padding:
            9px;
    }


    .seat-force-list {
        padding-left:
            7px;
    }


    .seat-force-row {
        gap:
            6px;

        font-size:
            10px;
    }


    .seat-message-btn {
        width:
            100%;

        white-space:
            normal;
    }
}


/* ======================================================================
   MOBILE LANDSCAPE
   ====================================================================== */

@media
(max-width: 900px)
and
(orientation: landscape)
and
(max-height: 500px) {

    #seat-panel {
        top:
            max(
                8px,
                env(
                    safe-area-inset-top,
                    0px
                )
            );

        right:
            max(
                8px,
                env(
                    safe-area-inset-right,
                    0px
                )
            );

        bottom:
            max(
                8px,
                env(
                    safe-area-inset-bottom,
                    0px
                )
            );

        left:
            auto;

        width:
            min(
                360px,
                48vw
            );

        max-height:
            none;

        border:
            1px solid
            rgba(171, 139, 255, 0.70);

        border-radius:
            13px;

        padding-bottom:
            0;
    }


    #seat-panel::before {
        top:
            0;

        left:
            18px;

        right:
            18px;

        width:
            auto;

        height:
            1px;

        transform:
            none;

        border-radius:
            0;
    }


    .seat-panel-header {
        min-height:
            46px;

        padding:
            9px 10px 8px 13px;
    }


    .seat-section {
        margin-top:
            7px;

        padding:
            8px;
    }


    .seat-force-row {
        min-height:
            26px;

        padding:
            4px 5px;
    }
}


/* ======================================================================
   TOUCH DEVICES
   ====================================================================== */

@media (pointer: coarse) {

    .seat-close-btn,
    .seat-message-btn {
        cursor:
            default;
    }
}


/* ======================================================================
   REDUCED MOTION
   ====================================================================== */

@media (prefers-reduced-motion: reduce) {

    .seat-close-btn,
    .seat-message-btn,
    .seat-section,
    .seat-force-row {
        transition:
            none;
    }
}

/* ======================================================================
   SEAT BONUSES
   ====================================================================== */

.seat-bonuses-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap:
        8px;
}


.seat-bonus-card {
    position: relative;

    min-width:
        0;

    padding:
        9px 10px;

    box-sizing:
        border-box;

    border:
        1px solid
        rgba(160, 127, 235, 0.18);

    border-radius:
        8px;

    background:
        linear-gradient(
            145deg,
            rgba(91, 56, 151, 0.16),
            rgba(19, 11, 37, 0.28)
        );

    box-shadow:
        inset 0 1px 0
        rgba(255, 255, 255, 0.025);
}


.seat-bonus-label {
    margin-bottom:
        4px;

    color:
        #cdbdf3;

    font-size:
        9px;

    font-weight:
        700;

    line-height:
        1.2;

    letter-spacing:
        0.08em;

    text-transform:
        uppercase;
}


.seat-bonus-value {
    color:
        #f4edff;

    font-size:
        16px;

    font-weight:
        800;

    line-height:
        1.15;

    letter-spacing:
        0.025em;

    text-shadow:
        0 0 8px
        rgba(170, 137, 255, 0.52);
}


@media (max-width: 390px) {

    .seat-bonuses-grid {
        gap:
            6px;
    }


    .seat-bonus-card {
        padding:
            8px;
    }


    .seat-bonus-value {
        font-size:
            14px;
    }
}



/* ======================================================================
   HOUSE SIGIL â€” SEAT OWNER
   ====================================================================== */

.seat-owner-sigil-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    width: 100%;

    margin: 4px 0 14px 0;
    padding: 8px 0 10px 0;
}

.seat-owner-sigil {
    display: block;

    width: 86px;
    height: 86px;

    object-fit: contain;

    margin: 0 auto;
}

.seat-owner-sigil-name {
    margin-top: 7px;

    text-align: center;

    font-family: "Cinzel", serif;
    font-size: 13px;
    font-weight: 700;

    letter-spacing: 0.6px;

    color: #e6d9ff;
}
